Merged with the 'without_py2_and_pyqt4' branch to make it the default.

Sat, 07 Sep 2019 16:10:29 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 07 Sep 2019 16:10:29 +0200
changeset 7220
5cf645f6daab
parent 7218
eaf2cf171f3a (current diff)
parent 7211
1c97f3142fa8 (diff)
child 7221
0485ccdf7877

Merged with the 'without_py2_and_pyqt4' branch to make it the default.

docs/changelog file | annotate | diff | comparison | revisions
eric6/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
eric6/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Globals.E5ConfigParser.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Globals.compatibility_fixes.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockAccessHandler.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockIcon.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockNetwork.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockPage.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockRule.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockSubscription.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarkNode.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarkPropertiesDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImportDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.__init__.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksMenu.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksModel.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksToolBar.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.NsHtmlReader.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.NsHtmlWriter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.XbelReader.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.XbelWriter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.ClosedTabsManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.CookieJar.CookieDetailsDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.CookieJar.CookieExceptionsModel.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.CookieJar.CookieJar.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.CookieJar.CookieModel.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.CookieJar.CookiesDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Download.DownloadAskActionDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Download.DownloadItem.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Download.DownloadManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Download.DownloadModel.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Download.DownloadUtilities.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Feeds.FeedEditDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Feeds.FeedsDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Feeds.FeedsManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.FlashCookieManager.FlashCookie.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.FlashCookieManager.FlashCookieNotification.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.FlashCookieManager.FlashCookieUtilities.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpBrowserWV.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpClearPrivateDataDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpDocsInstaller.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpIndexWidget.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpInspector.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpLanguagesDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpSearchWidget.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpSingleApplication.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpSnap.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpTabBar.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpTabWidget.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpTocWidget.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpTopicDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpUtilities.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpWebSearchWidget.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.HelpWindow.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.History.HistoryCompleter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.History.HistoryDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.History.HistoryFilterModel.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.History.HistoryManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.History.HistoryMenu.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.History.HistoryModel.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.History.HistoryTreeModel.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.JavaScriptResources.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.AboutAccessHandler.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.EmptyNetworkReply.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.EricAccessHandler.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.FileAccessHandler.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.FileReply.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.FollowRedirectReply.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.FtpAccessHandler.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.FtpReply.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.NetworkAccessManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.NetworkAccessManagerProxy.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.NetworkDiskCache.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.NetworkReply.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.NoCacheHostsDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.QtHelpAccessHandler.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.SchemeAccessHandler.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Network.SendRefererWhitelistDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.OfflineStorage.WebDatabasesDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchEditDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchEngine.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchEngineAction.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchReader.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchWriter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.PageScreenDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Passwords.LoginForm.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Passwords.PasswordManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Passwords.PasswordModel.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Passwords.PasswordReader.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Passwords.PasswordWriter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Passwords.PasswordsDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.PersonalInformationManager.PersonalDataDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.QtHelpDocumentationDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.QtHelpDocumentationSelectionDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.QtHelpFiltersDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.SearchWidget.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.SiteInfo.SiteInfoDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.SpeedDial.Page.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.SpeedDial.PageThumbnailer.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.SpeedDial.SpeedDial.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.SpeedDial.SpeedDialReader.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.SpeedDial.SpeedDialWriter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Sync.DirectorySyncHandler.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Sync.FtpSyncHandler.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncAssistantDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncCheckPage.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncDataPage.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncDirectorySettingsPage.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncEncryptionPage.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncFtpSettingsPage.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncGlobals.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncHandler.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncHostTypePage.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.UrlBar.BookmarkInfoDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.UrlBar.FavIconLabel.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.UrlBar.SslLabel.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.UrlBar.StackedUrlBar.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.UrlBar.UrlBar.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.UserAgent.UserAgentManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.UserAgent.UserAgentMenu.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.UserAgent.UserAgentModel.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.UserAgent.UserAgentReader.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.UserAgent.UserAgentWriter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.UserAgent.UserAgentsDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.VirusTotal.VirusTotalApi.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.VirusTotal.VirusTotalDomainReportDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.VirusTotal.VirusTotalIpReportDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.VirusTotal.VirusTotalWhoisDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.WebPlugins.WebPluginFactory.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.WebPlugins.WebPluginInterface.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.ZoomManager.ZoomManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.ZoomManager.ZoomValuesDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Helpviewer.ZoomManager.ZoomValuesModel.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Plugins.PluginPipInterface.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Plugins.PluginVirtualenvInterface.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Preferences.ConfigurationPages.HelpAppearancePage.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Preferences.ConfigurationPages.HelpInterfacePage.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.Toolbox.PyQt4ImportHook.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.WebBrowser.SafeBrowsing.SafeBrowsingUtilities.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.WebBrowser.Tools.FilePrinter.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.cleanupSource.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.compileUiFiles.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.create_windows_links.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.eric6_webbrowser.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.install-debugclients.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.install-i18n.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.install.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.patch_modpython.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.uninstall-debugclients.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/eric6.uninstall.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.AdBlock.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.Bookmarks.BookmarksImporters.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.Bookmarks.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.CookieJar.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.Download.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.FeaturePermissions.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.Feeds.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.FlashCookieManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.GreaseMonkey.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.History.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.Network.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.OfflineStorage.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.OpenSearch.DefaultSearchEngines.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.OpenSearch.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.Passwords.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.PersonalInformationManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.SiteInfo.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.SpeedDial.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.Sync.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.UrlBar.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.UserAgent.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.VirusTotal.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.WebPlugins.ClickToFlash.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.WebPlugins.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.ZoomManager.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.data.html file | annotate | diff | comparison | revisions
eric6/Documentation/Source/index-eric6.Helpviewer.html file | annotate | diff | comparison | revisions
eric6/Globals/E5ConfigParser.py file | annotate | diff | comparison | revisions
eric6/Globals/compatibility_fixes.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/AdBlock/AdBlockAccessHandler.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/AdBlock/AdBlockBlockedNetworkReply.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/AdBlock/AdBlockDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/AdBlock/AdBlockDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/AdBlock/AdBlockExceptionsDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/AdBlock/AdBlockExceptionsDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/AdBlock/AdBlockIcon.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/AdBlock/AdBlockManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/AdBlock/AdBlockNetwork.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/AdBlock/AdBlockPage.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/AdBlock/AdBlockRule.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/AdBlock/AdBlockSubscription.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/AdBlock/AdBlockTreeWidget.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/AdBlock/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/AddBookmarkDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/AddBookmarkDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarkNode.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarkPropertiesDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarkPropertiesDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksImportDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksImportDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksImporters/BookmarksImporter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksImporters/ChromeImporter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksImporters/HtmlImporter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksImporters/IExplorerImporter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksImporters/OperaImporter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksImporters/SafariImporter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksImporters/XbelImporter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksImporters/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksMenu.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksModel.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/BookmarksToolBar.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/DefaultBookmarks.qrc file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/DefaultBookmarks.xbel file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/DefaultBookmarks_rc.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/NsHtmlReader.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/NsHtmlWriter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/XbelReader.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/XbelWriter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Bookmarks/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/ClosedTabsManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/CookieJar/CookieDetailsDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/CookieJar/CookieDetailsDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/CookieJar/CookieExceptionsModel.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/CookieJar/CookieJar.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/CookieJar/CookieModel.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/CookieJar/CookiesConfigurationDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/CookieJar/CookiesConfigurationDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/CookieJar/CookiesDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/CookieJar/CookiesDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/CookieJar/CookiesExceptionsDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/CookieJar/CookiesExceptionsDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/CookieJar/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Download/DownloadAskActionDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Download/DownloadAskActionDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Download/DownloadItem.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Download/DownloadItem.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Download/DownloadManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Download/DownloadManager.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Download/DownloadModel.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Download/DownloadUtilities.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Download/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/FeaturePermissions/FeaturePermissionBar.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/FeaturePermissions/FeaturePermissionManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/FeaturePermissions/FeaturePermissionsDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/FeaturePermissions/FeaturePermissionsDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/FeaturePermissions/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Feeds/FeedEditDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Feeds/FeedEditDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Feeds/FeedsDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Feeds/FeedsDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Feeds/FeedsManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Feeds/FeedsManager.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Feeds/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/FlashCookieManager/FlashCookie.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/FlashCookieManager/FlashCookieManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/FlashCookieManager/FlashCookieManagerDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/FlashCookieManager/FlashCookieManagerDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/FlashCookieManager/FlashCookieNotification.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/FlashCookieManager/FlashCookieReader.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/FlashCookieManager/FlashCookieUtilities.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/FlashCookieManager/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationListDelegate.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationListWidget.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/GreaseMonkeyDownloader.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/GreaseMonkeyJavaScript.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/GreaseMonkeyManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/GreaseMonkeyScript.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/GreaseMonkeyUrlMatcher.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/GreaseMonkey/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpBrowserWV.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpClearPrivateDataDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpClearPrivateDataDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpDocsInstaller.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpIndexWidget.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpInspector.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpLanguagesDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpLanguagesDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpSearchWidget.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpSingleApplication.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpSnap.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpTabBar.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpTabWidget.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpTocWidget.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpTopicDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpTopicDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpUtilities.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpWebSearchWidget.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/HelpWindow.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/History/HistoryCompleter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/History/HistoryDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/History/HistoryDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/History/HistoryFilterModel.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/History/HistoryManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/History/HistoryMenu.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/History/HistoryModel.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/History/HistoryTreeModel.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/History/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/JavaScriptResources.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/AboutAccessHandler.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/EmptyNetworkReply.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/EricAccessHandler.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/FileAccessHandler.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/FileReply.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/FollowRedirectReply.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/FtpAccessHandler.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/FtpReply.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/NetworkAccessManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/NetworkAccessManagerProxy.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/NetworkDiskCache.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/NetworkProtocolUnknownErrorReply.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/NetworkReply.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/NoCacheHostsDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/NoCacheHostsDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/QtHelpAccessHandler.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/SchemeAccessHandler.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/SendRefererWhitelistDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/SendRefererWhitelistDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Network/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OfflineStorage/OfflineStorageConfigDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OfflineStorage/OfflineStorageConfigDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/OfflineStorage/WebDatabasesDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OfflineStorage/WebDatabasesDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/OfflineStorage/WebDatabasesModel.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OfflineStorage/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Amazoncom.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Bing.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/DeEn_Beolingus.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/DefaultSearchEngines.qrc file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/DefaultSearchEngines_rc.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/DuckDuckGo.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Facebook.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Google.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Google_Im_Feeling_Lucky.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/LEO_DeuEng.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/LinuxMagazin.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/PyPI.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Reddit.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Wikia.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Wikia_en.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Wikipedia.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Wiktionary.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Yahoo.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/YouTube.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/DefaultSearchEngines/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/OpenSearchDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/OpenSearchDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/OpenSearchEditDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/OpenSearchEditDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/OpenSearchEngine.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/OpenSearchEngineAction.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/OpenSearchEngineModel.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/OpenSearchManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/OpenSearchReader.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/OpenSearchWriter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/OpenSearch/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/PageScreenDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/PageScreenDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Passwords/LoginForm.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Passwords/PasswordManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Passwords/PasswordModel.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Passwords/PasswordReader.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Passwords/PasswordWriter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Passwords/PasswordsDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Passwords/PasswordsDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Passwords/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/PersonalInformationManager/PersonalDataDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/PersonalInformationManager/PersonalDataDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/PersonalInformationManager/PersonalInformationManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/PersonalInformationManager/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/QtHelpDocumentationDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/QtHelpDocumentationDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/QtHelpDocumentationSelectionDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/QtHelpDocumentationSelectionDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/QtHelpFiltersDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/QtHelpFiltersDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/SearchWidget.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/SearchWidget.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/SiteInfo/SiteInfoDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/SiteInfo/SiteInfoDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/SiteInfo/SiteInfoNoSslDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/SiteInfo/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/SpeedDial/Page.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/SpeedDial/PageThumbnailer.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/SpeedDial/SpeedDial.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/SpeedDial/SpeedDialReader.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/SpeedDial/SpeedDialWriter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/SpeedDial/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/DirectorySyncHandler.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/FtpSyncHandler.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncAssistantDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncCheckPage.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncCheckPage.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncDataPage.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncDataPage.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncDirectorySettingsPage.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncDirectorySettingsPage.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncEncryptionPage.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncEncryptionPage.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncFtpSettingsPage.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncFtpSettingsPage.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncGlobals.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncHandler.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncHostTypePage.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncHostTypePage.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/SyncManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/Sync/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UrlBar/BookmarkActionSelectionDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UrlBar/BookmarkActionSelectionDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/UrlBar/BookmarkInfoDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UrlBar/BookmarkInfoDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/UrlBar/FavIconLabel.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UrlBar/SslLabel.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UrlBar/StackedUrlBar.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UrlBar/UrlBar.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UrlBar/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UserAgent/UserAgentDefaults.qrc file | annotate | diff | comparison | revisions
eric6/Helpviewer/UserAgent/UserAgentDefaults.xml file | annotate | diff | comparison | revisions
eric6/Helpviewer/UserAgent/UserAgentDefaults_rc.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UserAgent/UserAgentManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UserAgent/UserAgentMenu.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UserAgent/UserAgentModel.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UserAgent/UserAgentReader.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UserAgent/UserAgentWriter.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UserAgent/UserAgentsDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/UserAgent/UserAgentsDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/UserAgent/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/VirusTotal/VirusTotalApi.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/VirusTotal/VirusTotalDomainReportDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/VirusTotal/VirusTotalDomainReportDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/VirusTotal/VirusTotalIpReportDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/VirusTotal/VirusTotalIpReportDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/VirusTotal/VirusTotalWhoisDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/VirusTotal/VirusTotalWhoisDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/VirusTotal/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlash.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlash.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlashPlugin.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlashWhitelistDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlashWhitelistDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/WebPlugins/ClickToFlash/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/WebPlugins/WebPluginFactory.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/WebPlugins/WebPluginInterface.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/WebPlugins/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/ZoomManager/ZoomManager.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/ZoomManager/ZoomValuesDialog.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/ZoomManager/ZoomValuesDialog.ui file | annotate | diff | comparison | revisions
eric6/Helpviewer/ZoomManager/ZoomValuesModel.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/ZoomManager/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/__init__.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/html.qrc file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/html/adblockPage.html file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/html/notFoundPage.html file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/html/speeddialPage.html file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/html/startPage.html file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/html_rc.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/icons.qrc file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/icons/adBlockPlus16.png file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/icons/adBlockPlus64.png file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/icons/box-border-small.png file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/icons/brokenPage.png file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/icons/close.png file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/icons/edit.png file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/icons/ericWeb16.png file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/icons/ericWeb32.png file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/icons/loading.gif file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/icons/plus.png file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/icons/reload.png file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/icons/setting.png file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/icons_rc.py file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/javascript.qrc file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/javascript/jquery-ui.js file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/javascript/jquery.js file | annotate | diff | comparison | revisions
eric6/Helpviewer/data/javascript_rc.py file | annotate | diff | comparison | revisions
eric6/Preferences/ConfigurationPages/HelpAppearancePage.py file | annotate | diff | comparison | revisions
eric6/Preferences/ConfigurationPages/HelpAppearancePage.ui file | annotate | diff | comparison | revisions
eric6/Preferences/ConfigurationPages/HelpFlashCookieManagerPage.py file | annotate | diff | comparison | revisions
eric6/Preferences/ConfigurationPages/HelpFlashCookieManagerPage.ui file | annotate | diff | comparison | revisions
eric6/Preferences/ConfigurationPages/HelpInterfacePage.py file | annotate | diff | comparison | revisions
eric6/Preferences/ConfigurationPages/HelpInterfacePage.ui file | annotate | diff | comparison | revisions
eric6/Preferences/ConfigurationPages/HelpVirusTotalPage.py file | annotate | diff | comparison | revisions
eric6/Preferences/ConfigurationPages/HelpVirusTotalPage.ui file | annotate | diff | comparison | revisions
eric6/Preferences/ConfigurationPages/HelpWebBrowserPage.py file | annotate | diff | comparison | revisions
eric6/Preferences/ConfigurationPages/HelpWebBrowserPage.ui file | annotate | diff | comparison | revisions
eric6/Toolbox/PyQt4ImportHook.py file | annotate | diff | comparison | revisions
eric6/WebBrowser/SafeBrowsing/SafeBrowsingUtilities.py file | annotate | diff | comparison | revisions
eric6/WebBrowser/Tools/FilePrinter.py file | annotate | diff | comparison | revisions
eric6/eric6_webbrowser.py file | annotate | diff | comparison | revisions
eric6/eric6_webbrowser.pyw file | annotate | diff | comparison | revisions
linux/eric6_webbrowser.desktop.in file | annotate | diff | comparison | revisions
scripts/install.py file | annotate | diff | comparison | revisions
scripts/uninstall.py file | annotate | diff | comparison | revisions
setup.py file | annotate | diff | comparison | revisions
--- a/docs/changelog	Sat Sep 07 14:45:27 2019 +0200
+++ b/docs/changelog	Sat Sep 07 16:10:29 2019 +0200
@@ -1,5 +1,13 @@
 Change Log
 ----------
+Version 19.10:
+- bug fixes
+- removed runtime support for Python2 and PyQt4
+- changed minimum Qt/PyQt version required to 5.9.0
+- QFileDialog Wizard:
+  -- added support for the QFileDialog.get...Url() methods
+  -- added support for E5FileDialog
+
 Version 19.9:
 - bug fixes
 - MicroPython
--- a/eric6.e4p	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6.e4p	Sat Sep 07 16:10:29 2019 +0200
@@ -214,9 +214,7 @@
     <Source>eric6/E5XML/XMLStreamWriterBase.py</Source>
     <Source>eric6/E5XML/__init__.py</Source>
     <Source>eric6/Globals/AppInfo.py</Source>
-    <Source>eric6/Globals/E5ConfigParser.py</Source>
     <Source>eric6/Globals/__init__.py</Source>
-    <Source>eric6/Globals/compatibility_fixes.py</Source>
     <Source>eric6/Graphics/ApplicationDiagramBuilder.py</Source>
     <Source>eric6/Graphics/AssociationItem.py</Source>
     <Source>eric6/Graphics/ClassItem.py</Source>
@@ -234,214 +232,6 @@
     <Source>eric6/Graphics/UMLItem.py</Source>
     <Source>eric6/Graphics/UMLSceneSizeDialog.py</Source>
     <Source>eric6/Graphics/__init__.py</Source>
-    <Source>eric6/Helpviewer/AdBlock/AdBlockAccessHandler.py</Source>
-    <Source>eric6/Helpviewer/AdBlock/AdBlockBlockedNetworkReply.py</Source>
-    <Source>eric6/Helpviewer/AdBlock/AdBlockDialog.py</Source>
-    <Source>eric6/Helpviewer/AdBlock/AdBlockExceptionsDialog.py</Source>
-    <Source>eric6/Helpviewer/AdBlock/AdBlockIcon.py</Source>
-    <Source>eric6/Helpviewer/AdBlock/AdBlockManager.py</Source>
-    <Source>eric6/Helpviewer/AdBlock/AdBlockNetwork.py</Source>
-    <Source>eric6/Helpviewer/AdBlock/AdBlockPage.py</Source>
-    <Source>eric6/Helpviewer/AdBlock/AdBlockRule.py</Source>
-    <Source>eric6/Helpviewer/AdBlock/AdBlockSubscription.py</Source>
-    <Source>eric6/Helpviewer/AdBlock/AdBlockTreeWidget.py</Source>
-    <Source>eric6/Helpviewer/AdBlock/__init__.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/AddBookmarkDialog.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarkNode.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarkPropertiesDialog.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksDialog.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksImportDialog.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksImporters/BookmarksImporter.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksImporters/ChromeImporter.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksImporters/HtmlImporter.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksImporters/IExplorerImporter.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksImporters/OperaImporter.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksImporters/SafariImporter.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksImporters/XbelImporter.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksImporters/__init__.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksManager.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksMenu.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksModel.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/BookmarksToolBar.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/DefaultBookmarks_rc.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/NsHtmlReader.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/NsHtmlWriter.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/XbelReader.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/XbelWriter.py</Source>
-    <Source>eric6/Helpviewer/Bookmarks/__init__.py</Source>
-    <Source>eric6/Helpviewer/ClosedTabsManager.py</Source>
-    <Source>eric6/Helpviewer/CookieJar/CookieDetailsDialog.py</Source>
-    <Source>eric6/Helpviewer/CookieJar/CookieExceptionsModel.py</Source>
-    <Source>eric6/Helpviewer/CookieJar/CookieJar.py</Source>
-    <Source>eric6/Helpviewer/CookieJar/CookieModel.py</Source>
-    <Source>eric6/Helpviewer/CookieJar/CookiesConfigurationDialog.py</Source>
-    <Source>eric6/Helpviewer/CookieJar/CookiesDialog.py</Source>
-    <Source>eric6/Helpviewer/CookieJar/CookiesExceptionsDialog.py</Source>
-    <Source>eric6/Helpviewer/CookieJar/__init__.py</Source>
-    <Source>eric6/Helpviewer/Download/DownloadAskActionDialog.py</Source>
-    <Source>eric6/Helpviewer/Download/DownloadItem.py</Source>
-    <Source>eric6/Helpviewer/Download/DownloadManager.py</Source>
-    <Source>eric6/Helpviewer/Download/DownloadModel.py</Source>
-    <Source>eric6/Helpviewer/Download/DownloadUtilities.py</Source>
-    <Source>eric6/Helpviewer/Download/__init__.py</Source>
-    <Source>eric6/Helpviewer/FeaturePermissions/FeaturePermissionBar.py</Source>
-    <Source>eric6/Helpviewer/FeaturePermissions/FeaturePermissionManager.py</Source>
-    <Source>eric6/Helpviewer/FeaturePermissions/FeaturePermissionsDialog.py</Source>
-    <Source>eric6/Helpviewer/FeaturePermissions/__init__.py</Source>
-    <Source>eric6/Helpviewer/Feeds/FeedEditDialog.py</Source>
-    <Source>eric6/Helpviewer/Feeds/FeedsDialog.py</Source>
-    <Source>eric6/Helpviewer/Feeds/FeedsManager.py</Source>
-    <Source>eric6/Helpviewer/Feeds/__init__.py</Source>
-    <Source>eric6/Helpviewer/FlashCookieManager/FlashCookie.py</Source>
-    <Source>eric6/Helpviewer/FlashCookieManager/FlashCookieManager.py</Source>
-    <Source>eric6/Helpviewer/FlashCookieManager/FlashCookieManagerDialog.py</Source>
-    <Source>eric6/Helpviewer/FlashCookieManager/FlashCookieNotification.py</Source>
-    <Source>eric6/Helpviewer/FlashCookieManager/FlashCookieReader.py</Source>
-    <Source>eric6/Helpviewer/FlashCookieManager/FlashCookieUtilities.py</Source>
-    <Source>eric6/Helpviewer/FlashCookieManager/__init__.py</Source>
-    <Source>eric6/Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.py</Source>
-    <Source>eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.py</Source>
-    <Source>eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationListDelegate.py</Source>
-    <Source>eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationListWidget.py</Source>
-    <Source>eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.py</Source>
-    <Source>eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/__init__.py</Source>
-    <Source>eric6/Helpviewer/GreaseMonkey/GreaseMonkeyDownloader.py</Source>
-    <Source>eric6/Helpviewer/GreaseMonkey/GreaseMonkeyJavaScript.py</Source>
-    <Source>eric6/Helpviewer/GreaseMonkey/GreaseMonkeyManager.py</Source>
-    <Source>eric6/Helpviewer/GreaseMonkey/GreaseMonkeyScript.py</Source>
-    <Source>eric6/Helpviewer/GreaseMonkey/GreaseMonkeyUrlMatcher.py</Source>
-    <Source>eric6/Helpviewer/GreaseMonkey/__init__.py</Source>
-    <Source>eric6/Helpviewer/HelpBrowserWV.py</Source>
-    <Source>eric6/Helpviewer/HelpClearPrivateDataDialog.py</Source>
-    <Source>eric6/Helpviewer/HelpDocsInstaller.py</Source>
-    <Source>eric6/Helpviewer/HelpIndexWidget.py</Source>
-    <Source>eric6/Helpviewer/HelpInspector.py</Source>
-    <Source>eric6/Helpviewer/HelpLanguagesDialog.py</Source>
-    <Source>eric6/Helpviewer/HelpSearchWidget.py</Source>
-    <Source>eric6/Helpviewer/HelpSingleApplication.py</Source>
-    <Source>eric6/Helpviewer/HelpSnap.py</Source>
-    <Source>eric6/Helpviewer/HelpTabBar.py</Source>
-    <Source>eric6/Helpviewer/HelpTabWidget.py</Source>
-    <Source>eric6/Helpviewer/HelpTocWidget.py</Source>
-    <Source>eric6/Helpviewer/HelpTopicDialog.py</Source>
-    <Source>eric6/Helpviewer/HelpUtilities.py</Source>
-    <Source>eric6/Helpviewer/HelpWebSearchWidget.py</Source>
-    <Source>eric6/Helpviewer/HelpWindow.py</Source>
-    <Source>eric6/Helpviewer/History/HistoryCompleter.py</Source>
-    <Source>eric6/Helpviewer/History/HistoryDialog.py</Source>
-    <Source>eric6/Helpviewer/History/HistoryFilterModel.py</Source>
-    <Source>eric6/Helpviewer/History/HistoryManager.py</Source>
-    <Source>eric6/Helpviewer/History/HistoryMenu.py</Source>
-    <Source>eric6/Helpviewer/History/HistoryModel.py</Source>
-    <Source>eric6/Helpviewer/History/HistoryTreeModel.py</Source>
-    <Source>eric6/Helpviewer/History/__init__.py</Source>
-    <Source>eric6/Helpviewer/JavaScriptResources.py</Source>
-    <Source>eric6/Helpviewer/Network/AboutAccessHandler.py</Source>
-    <Source>eric6/Helpviewer/Network/EmptyNetworkReply.py</Source>
-    <Source>eric6/Helpviewer/Network/EricAccessHandler.py</Source>
-    <Source>eric6/Helpviewer/Network/FileAccessHandler.py</Source>
-    <Source>eric6/Helpviewer/Network/FileReply.py</Source>
-    <Source>eric6/Helpviewer/Network/FollowRedirectReply.py</Source>
-    <Source>eric6/Helpviewer/Network/FtpAccessHandler.py</Source>
-    <Source>eric6/Helpviewer/Network/FtpReply.py</Source>
-    <Source>eric6/Helpviewer/Network/NetworkAccessManager.py</Source>
-    <Source>eric6/Helpviewer/Network/NetworkAccessManagerProxy.py</Source>
-    <Source>eric6/Helpviewer/Network/NetworkDiskCache.py</Source>
-    <Source>eric6/Helpviewer/Network/NetworkProtocolUnknownErrorReply.py</Source>
-    <Source>eric6/Helpviewer/Network/NetworkReply.py</Source>
-    <Source>eric6/Helpviewer/Network/NoCacheHostsDialog.py</Source>
-    <Source>eric6/Helpviewer/Network/QtHelpAccessHandler.py</Source>
-    <Source>eric6/Helpviewer/Network/SchemeAccessHandler.py</Source>
-    <Source>eric6/Helpviewer/Network/SendRefererWhitelistDialog.py</Source>
-    <Source>eric6/Helpviewer/Network/__init__.py</Source>
-    <Source>eric6/Helpviewer/OfflineStorage/OfflineStorageConfigDialog.py</Source>
-    <Source>eric6/Helpviewer/OfflineStorage/WebDatabasesDialog.py</Source>
-    <Source>eric6/Helpviewer/OfflineStorage/WebDatabasesModel.py</Source>
-    <Source>eric6/Helpviewer/OfflineStorage/__init__.py</Source>
-    <Source>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/DefaultSearchEngines_rc.py</Source>
-    <Source>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/__init__.py</Source>
-    <Source>eric6/Helpviewer/OpenSearch/OpenSearchDialog.py</Source>
-    <Source>eric6/Helpviewer/OpenSearch/OpenSearchEditDialog.py</Source>
-    <Source>eric6/Helpviewer/OpenSearch/OpenSearchEngine.py</Source>
-    <Source>eric6/Helpviewer/OpenSearch/OpenSearchEngineAction.py</Source>
-    <Source>eric6/Helpviewer/OpenSearch/OpenSearchEngineModel.py</Source>
-    <Source>eric6/Helpviewer/OpenSearch/OpenSearchManager.py</Source>
-    <Source>eric6/Helpviewer/OpenSearch/OpenSearchReader.py</Source>
-    <Source>eric6/Helpviewer/OpenSearch/OpenSearchWriter.py</Source>
-    <Source>eric6/Helpviewer/OpenSearch/__init__.py</Source>
-    <Source>eric6/Helpviewer/PageScreenDialog.py</Source>
-    <Source>eric6/Helpviewer/Passwords/LoginForm.py</Source>
-    <Source>eric6/Helpviewer/Passwords/PasswordManager.py</Source>
-    <Source>eric6/Helpviewer/Passwords/PasswordModel.py</Source>
-    <Source>eric6/Helpviewer/Passwords/PasswordReader.py</Source>
-    <Source>eric6/Helpviewer/Passwords/PasswordWriter.py</Source>
-    <Source>eric6/Helpviewer/Passwords/PasswordsDialog.py</Source>
-    <Source>eric6/Helpviewer/Passwords/__init__.py</Source>
-    <Source>eric6/Helpviewer/PersonalInformationManager/PersonalDataDialog.py</Source>
-    <Source>eric6/Helpviewer/PersonalInformationManager/PersonalInformationManager.py</Source>
-    <Source>eric6/Helpviewer/PersonalInformationManager/__init__.py</Source>
-    <Source>eric6/Helpviewer/QtHelpDocumentationDialog.py</Source>
-    <Source>eric6/Helpviewer/QtHelpDocumentationSelectionDialog.py</Source>
-    <Source>eric6/Helpviewer/QtHelpFiltersDialog.py</Source>
-    <Source>eric6/Helpviewer/SearchWidget.py</Source>
-    <Source>eric6/Helpviewer/SiteInfo/SiteInfoDialog.py</Source>
-    <Source>eric6/Helpviewer/SiteInfo/__init__.py</Source>
-    <Source>eric6/Helpviewer/SpeedDial/Page.py</Source>
-    <Source>eric6/Helpviewer/SpeedDial/PageThumbnailer.py</Source>
-    <Source>eric6/Helpviewer/SpeedDial/SpeedDial.py</Source>
-    <Source>eric6/Helpviewer/SpeedDial/SpeedDialReader.py</Source>
-    <Source>eric6/Helpviewer/SpeedDial/SpeedDialWriter.py</Source>
-    <Source>eric6/Helpviewer/SpeedDial/__init__.py</Source>
-    <Source>eric6/Helpviewer/Sync/DirectorySyncHandler.py</Source>
-    <Source>eric6/Helpviewer/Sync/FtpSyncHandler.py</Source>
-    <Source>eric6/Helpviewer/Sync/SyncAssistantDialog.py</Source>
-    <Source>eric6/Helpviewer/Sync/SyncCheckPage.py</Source>
-    <Source>eric6/Helpviewer/Sync/SyncDataPage.py</Source>
-    <Source>eric6/Helpviewer/Sync/SyncDirectorySettingsPage.py</Source>
-    <Source>eric6/Helpviewer/Sync/SyncEncryptionPage.py</Source>
-    <Source>eric6/Helpviewer/Sync/SyncFtpSettingsPage.py</Source>
-    <Source>eric6/Helpviewer/Sync/SyncGlobals.py</Source>
-    <Source>eric6/Helpviewer/Sync/SyncHandler.py</Source>
-    <Source>eric6/Helpviewer/Sync/SyncHostTypePage.py</Source>
-    <Source>eric6/Helpviewer/Sync/SyncManager.py</Source>
-    <Source>eric6/Helpviewer/Sync/__init__.py</Source>
-    <Source>eric6/Helpviewer/UrlBar/BookmarkActionSelectionDialog.py</Source>
-    <Source>eric6/Helpviewer/UrlBar/BookmarkInfoDialog.py</Source>
-    <Source>eric6/Helpviewer/UrlBar/FavIconLabel.py</Source>
-    <Source>eric6/Helpviewer/UrlBar/SslLabel.py</Source>
-    <Source>eric6/Helpviewer/UrlBar/StackedUrlBar.py</Source>
-    <Source>eric6/Helpviewer/UrlBar/UrlBar.py</Source>
-    <Source>eric6/Helpviewer/UrlBar/__init__.py</Source>
-    <Source>eric6/Helpviewer/UserAgent/UserAgentDefaults_rc.py</Source>
-    <Source>eric6/Helpviewer/UserAgent/UserAgentManager.py</Source>
-    <Source>eric6/Helpviewer/UserAgent/UserAgentMenu.py</Source>
-    <Source>eric6/Helpviewer/UserAgent/UserAgentModel.py</Source>
-    <Source>eric6/Helpviewer/UserAgent/UserAgentReader.py</Source>
-    <Source>eric6/Helpviewer/UserAgent/UserAgentWriter.py</Source>
-    <Source>eric6/Helpviewer/UserAgent/UserAgentsDialog.py</Source>
-    <Source>eric6/Helpviewer/UserAgent/__init__.py</Source>
-    <Source>eric6/Helpviewer/VirusTotal/VirusTotalApi.py</Source>
-    <Source>eric6/Helpviewer/VirusTotal/VirusTotalDomainReportDialog.py</Source>
-    <Source>eric6/Helpviewer/VirusTotal/VirusTotalIpReportDialog.py</Source>
-    <Source>eric6/Helpviewer/VirusTotal/VirusTotalWhoisDialog.py</Source>
-    <Source>eric6/Helpviewer/VirusTotal/__init__.py</Source>
-    <Source>eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlash.py</Source>
-    <Source>eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlashPlugin.py</Source>
-    <Source>eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlashWhitelistDialog.py</Source>
-    <Source>eric6/Helpviewer/WebPlugins/ClickToFlash/__init__.py</Source>
-    <Source>eric6/Helpviewer/WebPlugins/WebPluginFactory.py</Source>
-    <Source>eric6/Helpviewer/WebPlugins/WebPluginInterface.py</Source>
-    <Source>eric6/Helpviewer/WebPlugins/__init__.py</Source>
-    <Source>eric6/Helpviewer/ZoomManager/ZoomManager.py</Source>
-    <Source>eric6/Helpviewer/ZoomManager/ZoomValuesDialog.py</Source>
-    <Source>eric6/Helpviewer/ZoomManager/ZoomValuesModel.py</Source>
-    <Source>eric6/Helpviewer/ZoomManager/__init__.py</Source>
-    <Source>eric6/Helpviewer/__init__.py</Source>
-    <Source>eric6/Helpviewer/data/__init__.py</Source>
-    <Source>eric6/Helpviewer/data/html_rc.py</Source>
-    <Source>eric6/Helpviewer/data/icons_rc.py</Source>
-    <Source>eric6/Helpviewer/data/javascript_rc.py</Source>
     <Source>eric6/HexEdit/HexEditChunks.py</Source>
     <Source>eric6/HexEdit/HexEditGotoWidget.py</Source>
     <Source>eric6/HexEdit/HexEditMainWindow.py</Source>
@@ -893,13 +683,8 @@
     <Source>eric6/Preferences/ConfigurationPages/EditorTypingPage.py</Source>
     <Source>eric6/Preferences/ConfigurationPages/EmailPage.py</Source>
     <Source>eric6/Preferences/ConfigurationPages/GraphicsPage.py</Source>
-    <Source>eric6/Preferences/ConfigurationPages/HelpAppearancePage.py</Source>
     <Source>eric6/Preferences/ConfigurationPages/HelpDocumentationPage.py</Source>
-    <Source>eric6/Preferences/ConfigurationPages/HelpFlashCookieManagerPage.py</Source>
-    <Source>eric6/Preferences/ConfigurationPages/HelpInterfacePage.py</Source>
     <Source>eric6/Preferences/ConfigurationPages/HelpViewersPage.py</Source>
-    <Source>eric6/Preferences/ConfigurationPages/HelpVirusTotalPage.py</Source>
-    <Source>eric6/Preferences/ConfigurationPages/HelpWebBrowserPage.py</Source>
     <Source>eric6/Preferences/ConfigurationPages/HexEditorPage.py</Source>
     <Source>eric6/Preferences/ConfigurationPages/IconsPage.py</Source>
     <Source>eric6/Preferences/ConfigurationPages/IconsPreviewDialog.py</Source>
@@ -928,6 +713,7 @@
     <Source>eric6/Preferences/ConfigurationPages/VcsPage.py</Source>
     <Source>eric6/Preferences/ConfigurationPages/ViewmanagerPage.py</Source>
     <Source>eric6/Preferences/ConfigurationPages/WebBrowserAppearancePage.py</Source>
+    <Source>eric6/Preferences/ConfigurationPages/WebBrowserFlashCookieManagerPage.py</Source>
     <Source>eric6/Preferences/ConfigurationPages/WebBrowserPage.py</Source>
     <Source>eric6/Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.py</Source>
     <Source>eric6/Preferences/ConfigurationPages/WebBrowserVirusTotalPage.py</Source>
@@ -1377,7 +1163,6 @@
     <Source>eric6/ThirdParty/asttokens/asttokens/mark_tokens.py</Source>
     <Source>eric6/ThirdParty/asttokens/asttokens/util.py</Source>
     <Source>eric6/ThirdParty/enum/__init__.py</Source>
-    <Source>eric6/Toolbox/PyQt4ImportHook.py</Source>
     <Source>eric6/Toolbox/SingleApplication.py</Source>
     <Source>eric6/Toolbox/Startup.py</Source>
     <Source>eric6/Toolbox/__init__.py</Source>
@@ -1609,7 +1394,6 @@
     <Source>eric6/WebBrowser/SafeBrowsing/SafeBrowsingManager.py</Source>
     <Source>eric6/WebBrowser/SafeBrowsing/SafeBrowsingThreatList.py</Source>
     <Source>eric6/WebBrowser/SafeBrowsing/SafeBrowsingUrl.py</Source>
-    <Source>eric6/WebBrowser/SafeBrowsing/SafeBrowsingUtilities.py</Source>
     <Source>eric6/WebBrowser/SafeBrowsing/__init__.py</Source>
     <Source>eric6/WebBrowser/SearchWidget.py</Source>
     <Source>eric6/WebBrowser/Session/SessionManager.py</Source>
@@ -1647,7 +1431,6 @@
     <Source>eric6/WebBrowser/TabManager/TabManagerWidget.py</Source>
     <Source>eric6/WebBrowser/TabManager/__init__.py</Source>
     <Source>eric6/WebBrowser/Tools/DelayedFileWatcher.py</Source>
-    <Source>eric6/WebBrowser/Tools/FilePrinter.py</Source>
     <Source>eric6/WebBrowser/Tools/PrintToPdfDialog.py</Source>
     <Source>eric6/WebBrowser/Tools/Scripts.py</Source>
     <Source>eric6/WebBrowser/Tools/WebBrowserTools.py</Source>
@@ -1742,8 +1525,6 @@
     <Source>eric6/eric6_uipreviewer.pyw</Source>
     <Source>eric6/eric6_unittest.py</Source>
     <Source>eric6/eric6_unittest.pyw</Source>
-    <Source>eric6/eric6_webbrowser.py</Source>
-    <Source>eric6/eric6_webbrowser.pyw</Source>
     <Source>eric6/eric6config.py</Source>
     <Source>scripts/cleanupSource.py</Source>
     <Source>scripts/compileUiFiles.py</Source>
@@ -1792,61 +1573,6 @@
     <Form>eric6/E5Network/E5SslCertificatesInfoDialog.ui</Form>
     <Form>eric6/E5Network/E5SslCertificatesInfoWidget.ui</Form>
     <Form>eric6/Graphics/UMLSceneSizeDialog.ui</Form>
-    <Form>eric6/Helpviewer/AdBlock/AdBlockDialog.ui</Form>
-    <Form>eric6/Helpviewer/AdBlock/AdBlockExceptionsDialog.ui</Form>
-    <Form>eric6/Helpviewer/Bookmarks/AddBookmarkDialog.ui</Form>
-    <Form>eric6/Helpviewer/Bookmarks/BookmarkPropertiesDialog.ui</Form>
-    <Form>eric6/Helpviewer/Bookmarks/BookmarksDialog.ui</Form>
-    <Form>eric6/Helpviewer/Bookmarks/BookmarksImportDialog.ui</Form>
-    <Form>eric6/Helpviewer/CookieJar/CookieDetailsDialog.ui</Form>
-    <Form>eric6/Helpviewer/CookieJar/CookiesConfigurationDialog.ui</Form>
-    <Form>eric6/Helpviewer/CookieJar/CookiesDialog.ui</Form>
-    <Form>eric6/Helpviewer/CookieJar/CookiesExceptionsDialog.ui</Form>
-    <Form>eric6/Helpviewer/Download/DownloadAskActionDialog.ui</Form>
-    <Form>eric6/Helpviewer/Download/DownloadItem.ui</Form>
-    <Form>eric6/Helpviewer/Download/DownloadManager.ui</Form>
-    <Form>eric6/Helpviewer/FeaturePermissions/FeaturePermissionsDialog.ui</Form>
-    <Form>eric6/Helpviewer/Feeds/FeedEditDialog.ui</Form>
-    <Form>eric6/Helpviewer/Feeds/FeedsDialog.ui</Form>
-    <Form>eric6/Helpviewer/Feeds/FeedsManager.ui</Form>
-    <Form>eric6/Helpviewer/FlashCookieManager/FlashCookieManagerDialog.ui</Form>
-    <Form>eric6/Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.ui</Form>
-    <Form>eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.ui</Form>
-    <Form>eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui</Form>
-    <Form>eric6/Helpviewer/HelpClearPrivateDataDialog.ui</Form>
-    <Form>eric6/Helpviewer/HelpLanguagesDialog.ui</Form>
-    <Form>eric6/Helpviewer/HelpTopicDialog.ui</Form>
-    <Form>eric6/Helpviewer/History/HistoryDialog.ui</Form>
-    <Form>eric6/Helpviewer/Network/NoCacheHostsDialog.ui</Form>
-    <Form>eric6/Helpviewer/Network/SendRefererWhitelistDialog.ui</Form>
-    <Form>eric6/Helpviewer/OfflineStorage/OfflineStorageConfigDialog.ui</Form>
-    <Form>eric6/Helpviewer/OfflineStorage/WebDatabasesDialog.ui</Form>
-    <Form>eric6/Helpviewer/OpenSearch/OpenSearchDialog.ui</Form>
-    <Form>eric6/Helpviewer/OpenSearch/OpenSearchEditDialog.ui</Form>
-    <Form>eric6/Helpviewer/PageScreenDialog.ui</Form>
-    <Form>eric6/Helpviewer/Passwords/PasswordsDialog.ui</Form>
-    <Form>eric6/Helpviewer/PersonalInformationManager/PersonalDataDialog.ui</Form>
-    <Form>eric6/Helpviewer/QtHelpDocumentationDialog.ui</Form>
-    <Form>eric6/Helpviewer/QtHelpDocumentationSelectionDialog.ui</Form>
-    <Form>eric6/Helpviewer/QtHelpFiltersDialog.ui</Form>
-    <Form>eric6/Helpviewer/SearchWidget.ui</Form>
-    <Form>eric6/Helpviewer/SiteInfo/SiteInfoDialog.ui</Form>
-    <Form>eric6/Helpviewer/SiteInfo/SiteInfoNoSslDialog.ui</Form>
-    <Form>eric6/Helpviewer/Sync/SyncCheckPage.ui</Form>
-    <Form>eric6/Helpviewer/Sync/SyncDataPage.ui</Form>
-    <Form>eric6/Helpviewer/Sync/SyncDirectorySettingsPage.ui</Form>
-    <Form>eric6/Helpviewer/Sync/SyncEncryptionPage.ui</Form>
-    <Form>eric6/Helpviewer/Sync/SyncFtpSettingsPage.ui</Form>
-    <Form>eric6/Helpviewer/Sync/SyncHostTypePage.ui</Form>
-    <Form>eric6/Helpviewer/UrlBar/BookmarkActionSelectionDialog.ui</Form>
-    <Form>eric6/Helpviewer/UrlBar/BookmarkInfoDialog.ui</Form>
-    <Form>eric6/Helpviewer/UserAgent/UserAgentsDialog.ui</Form>
-    <Form>eric6/Helpviewer/VirusTotal/VirusTotalDomainReportDialog.ui</Form>
-    <Form>eric6/Helpviewer/VirusTotal/VirusTotalIpReportDialog.ui</Form>
-    <Form>eric6/Helpviewer/VirusTotal/VirusTotalWhoisDialog.ui</Form>
-    <Form>eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlash.ui</Form>
-    <Form>eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlashWhitelistDialog.ui</Form>
-    <Form>eric6/Helpviewer/ZoomManager/ZoomValuesDialog.ui</Form>
     <Form>eric6/HexEdit/HexEditGotoWidget.ui</Form>
     <Form>eric6/HexEdit/HexEditReplaceWidget.ui</Form>
     <Form>eric6/HexEdit/HexEditSearchWidget.ui</Form>
@@ -2094,13 +1820,8 @@
     <Form>eric6/Preferences/ConfigurationPages/EditorTypingPage.ui</Form>
     <Form>eric6/Preferences/ConfigurationPages/EmailPage.ui</Form>
     <Form>eric6/Preferences/ConfigurationPages/GraphicsPage.ui</Form>
-    <Form>eric6/Preferences/ConfigurationPages/HelpAppearancePage.ui</Form>
     <Form>eric6/Preferences/ConfigurationPages/HelpDocumentationPage.ui</Form>
-    <Form>eric6/Preferences/ConfigurationPages/HelpFlashCookieManagerPage.ui</Form>
-    <Form>eric6/Preferences/ConfigurationPages/HelpInterfacePage.ui</Form>
     <Form>eric6/Preferences/ConfigurationPages/HelpViewersPage.ui</Form>
-    <Form>eric6/Preferences/ConfigurationPages/HelpVirusTotalPage.ui</Form>
-    <Form>eric6/Preferences/ConfigurationPages/HelpWebBrowserPage.ui</Form>
     <Form>eric6/Preferences/ConfigurationPages/HexEditorPage.ui</Form>
     <Form>eric6/Preferences/ConfigurationPages/IconsPage.ui</Form>
     <Form>eric6/Preferences/ConfigurationPages/IconsPreviewDialog.ui</Form>
@@ -2129,6 +1850,7 @@
     <Form>eric6/Preferences/ConfigurationPages/VcsPage.ui</Form>
     <Form>eric6/Preferences/ConfigurationPages/ViewmanagerPage.ui</Form>
     <Form>eric6/Preferences/ConfigurationPages/WebBrowserAppearancePage.ui</Form>
+    <Form>eric6/Preferences/ConfigurationPages/WebBrowserFlashCookieManagerPage.ui</Form>
     <Form>eric6/Preferences/ConfigurationPages/WebBrowserPage.ui</Form>
     <Form>eric6/Preferences/ConfigurationPages/WebBrowserSpellCheckingPage.ui</Form>
     <Form>eric6/Preferences/MouseClickDialog.ui</Form>
@@ -2286,12 +2008,6 @@
   </Translations>
   <Resources>
     <Resource>eric6/E5Network/data/tld.qrc</Resource>
-    <Resource>eric6/Helpviewer/Bookmarks/DefaultBookmarks.qrc</Resource>
-    <Resource>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/DefaultSearchEngines.qrc</Resource>
-    <Resource>eric6/Helpviewer/UserAgent/UserAgentDefaults.qrc</Resource>
-    <Resource>eric6/Helpviewer/data/html.qrc</Resource>
-    <Resource>eric6/Helpviewer/data/icons.qrc</Resource>
-    <Resource>eric6/Helpviewer/data/javascript.qrc</Resource>
     <Resource>eric6/IconEditor/cursors/cursors.qrc</Resource>
     <Resource>eric6/UI/data/codeDocumentationViewer.qrc</Resource>
     <Resource>eric6/WebBrowser/Bookmarks/DefaultBookmarks.qrc</Resource>
@@ -2318,9 +2034,6 @@
     <Other>eric6/APIs/MicroPython/circuitpython.api</Other>
     <Other>eric6/APIs/MicroPython/microbit.api</Other>
     <Other>eric6/APIs/MicroPython/micropython.api</Other>
-    <Other>eric6/APIs/Python/zope-2.10.7.api</Other>
-    <Other>eric6/APIs/Python/zope-2.11.2.api</Other>
-    <Other>eric6/APIs/Python/zope-3.3.1.api</Other>
     <Other>eric6/APIs/Python3/PyQt4.bas</Other>
     <Other>eric6/APIs/Python3/PyQt5.bas</Other>
     <Other>eric6/APIs/Python3/PyQtChart.bas</Other>
@@ -2328,6 +2041,9 @@
     <Other>eric6/APIs/Python3/QScintilla2.bas</Other>
     <Other>eric6/APIs/Python3/eric6.api</Other>
     <Other>eric6/APIs/Python3/eric6.bas</Other>
+    <Other>eric6/APIs/Python/zope-2.10.7.api</Other>
+    <Other>eric6/APIs/Python/zope-2.11.2.api</Other>
+    <Other>eric6/APIs/Python/zope-3.3.1.api</Other>
     <Other>eric6/APIs/QSS/qss.api</Other>
     <Other>eric6/APIs/Ruby/Ruby-1.8.7.api</Other>
     <Other>eric6/APIs/Ruby/Ruby-1.8.7.bas</Other>
@@ -2341,43 +2057,6 @@
     <Other>eric6/Documentation/Source</Other>
     <Other>eric6/E5Network/data/effective_tld_names.dat</Other>
     <Other>eric6/E5Network/data/test_psl.txt</Other>
-    <Other>eric6/Helpviewer/Bookmarks/DefaultBookmarks.xbel</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Amazoncom.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Bing.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/DeEn_Beolingus.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/DuckDuckGo.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Facebook.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Google.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Google_Im_Feeling_Lucky.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/LEO_DeuEng.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/LinuxMagazin.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/PyPI.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Reddit.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Wikia.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Wikia_en.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Wikipedia.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Wiktionary.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Yahoo.xml</Other>
-    <Other>eric6/Helpviewer/OpenSearch/DefaultSearchEngines/YouTube.xml</Other>
-    <Other>eric6/Helpviewer/UserAgent/UserAgentDefaults.xml</Other>
-    <Other>eric6/Helpviewer/data/html/adblockPage.html</Other>
-    <Other>eric6/Helpviewer/data/html/notFoundPage.html</Other>
-    <Other>eric6/Helpviewer/data/html/speeddialPage.html</Other>
-    <Other>eric6/Helpviewer/data/html/startPage.html</Other>
-    <Other>eric6/Helpviewer/data/icons/adBlockPlus16.png</Other>
-    <Other>eric6/Helpviewer/data/icons/adBlockPlus64.png</Other>
-    <Other>eric6/Helpviewer/data/icons/box-border-small.png</Other>
-    <Other>eric6/Helpviewer/data/icons/brokenPage.png</Other>
-    <Other>eric6/Helpviewer/data/icons/close.png</Other>
-    <Other>eric6/Helpviewer/data/icons/edit.png</Other>
-    <Other>eric6/Helpviewer/data/icons/ericWeb16.png</Other>
-    <Other>eric6/Helpviewer/data/icons/ericWeb32.png</Other>
-    <Other>eric6/Helpviewer/data/icons/loading.gif</Other>
-    <Other>eric6/Helpviewer/data/icons/plus.png</Other>
-    <Other>eric6/Helpviewer/data/icons/reload.png</Other>
-    <Other>eric6/Helpviewer/data/icons/setting.png</Other>
-    <Other>eric6/Helpviewer/data/javascript/jquery-ui.js</Other>
-    <Other>eric6/Helpviewer/data/javascript/jquery.js</Other>
     <Other>eric6/IconEditor/cursors/aim-cursor.xpm</Other>
     <Other>eric6/IconEditor/cursors/colorpicker-cursor.xpm</Other>
     <Other>eric6/IconEditor/cursors/eraser-cursor.xpm</Other>
@@ -2530,7 +2209,6 @@
     <Other>linux/eric6.desktop.in</Other>
     <Other>linux/eric6_browser.desktop</Other>
     <Other>linux/eric6_browser.desktop.in</Other>
-    <Other>linux/eric6_webbrowser.desktop.in</Other>
     <Other>others/default.e4k</Other>
     <Other>others/default_Mac.e4k</Other>
     <Other>others/pylint.rc</Other>
--- a/eric6/APIs/Python3/eric6.api	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/APIs/Python3/eric6.api	Sat Sep 07 16:10:29 2019 +0200
@@ -2,10 +2,8 @@
 cleanupSource.main?4(argv)
 compileUiFiles.compileUiFiles?4()
 compileUiFiles.main?4(argv)
-create_windows_links.PythonMarkers?7
 create_windows_links.createWindowsShortcut?4(linkPath, targetPath, iconPath)
 create_windows_links.getWinregEntry?4(name, path)
-create_windows_links.includePythonVariant?7
 create_windows_links.main?4(argv)
 create_windows_links.windowsDesktopEntries?4()
 create_windows_links.windowsDesktopNames?4()
@@ -991,7 +989,7 @@
 eric6.E5Gui.E5ErrorMessage._origMsgHandler?8
 eric6.E5Gui.E5ErrorMessage.editMessageFilters?4()
 eric6.E5Gui.E5ErrorMessage.filterMessage?4(message)
-eric6.E5Gui.E5ErrorMessage.messageHandler?4(msgType, *args)
+eric6.E5Gui.E5ErrorMessage.messageHandler?4(msgType, context, message)
 eric6.E5Gui.E5ErrorMessage.messageHandlerInstalled?4()
 eric6.E5Gui.E5ErrorMessage.qtHandler?4()
 eric6.E5Gui.E5ErrorMessageFilterDialog.E5ErrorMessageFilterDialog.getFilters?4()
@@ -1057,7 +1055,6 @@
 eric6.E5Gui.E5LineEdit.E5LineEdit.event?4(evt)
 eric6.E5Gui.E5LineEdit.E5LineEdit.inactiveText?4()
 eric6.E5Gui.E5LineEdit.E5LineEdit.leftMargin?4()
-eric6.E5Gui.E5LineEdit.E5LineEdit.paintEvent?4(evt)
 eric6.E5Gui.E5LineEdit.E5LineEdit.removeWidget?4(widget)
 eric6.E5Gui.E5LineEdit.E5LineEdit.setInactiveText?4(inactiveText)
 eric6.E5Gui.E5LineEdit.E5LineEdit.setLeftMargin?4(margin)
@@ -1803,23 +1800,6 @@
 eric6.E5XML.XMLStreamWriterBase.XMLStreamWriterBase.writeXML?4()
 eric6.E5XML.XMLStreamWriterBase.XMLStreamWriterBase?1(device)
 eric6.Globals.AppInfo.makeAppInfo?4(argv, name, arg, description, options=None)
-eric6.Globals.E5ConfigParser.E5ConfigParser.OPTCRE?7
-eric6.Globals.E5ConfigParser.E5ConfigParser.OPTCRE_NV?7
-eric6.Globals.E5ConfigParser.E5ConfigParser._OPT_NV_TMPL?8
-eric6.Globals.E5ConfigParser.E5ConfigParser._OPT_TMPL?8
-eric6.Globals.E5ConfigParser.E5ConfigParser?1(defaults=None, dict_type=_default_dict, allow_no_value=False, delimiters=('=', ':'))
-eric6.Globals.compatibility_fixes.File.next?4()
-eric6.Globals.compatibility_fixes.File.read?4(n=-1)
-eric6.Globals.compatibility_fixes.File.readline?4(limit=-1)
-eric6.Globals.compatibility_fixes.File.readlines?4(hint=-1)
-eric6.Globals.compatibility_fixes.File.write?4(txt)
-eric6.Globals.compatibility_fixes.File?1(filein, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True)
-eric6.Globals.compatibility_fixes.PlainStrList.insert?4(idx, value)
-eric6.Globals.compatibility_fixes.PlainStrList?1(*args)
-eric6.Globals.compatibility_fixes.find_moduleAsStr?4(*args)
-eric6.Globals.compatibility_fixes.joinAsUnicode?4(*args)
-eric6.Globals.compatibility_fixes.load_sourceAsStr?4(*args)
-eric6.Globals.compatibility_fixes.open?4(filein, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True)
 eric6.Globals.configDir?7
 eric6.Globals.dataString?4(size)
 eric6.Globals.desktopName?4()
@@ -1995,1502 +1975,6 @@
 eric6.Graphics.UMLItem.UMLModel?1(name)
 eric6.Graphics.UMLSceneSizeDialog.UMLSceneSizeDialog.getData?4()
 eric6.Graphics.UMLSceneSizeDialog.UMLSceneSizeDialog?1(w, h, minW, minH, parent=None, name=None)
-eric6.Helpviewer.AdBlock.AdBlockAccessHandler.AdBlockAccessHandler.createRequest?4(op, request, outgoingData=None)
-eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.AdBlockBlockedNetworkReply.abort?4()
-eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.AdBlockBlockedNetworkReply.readData?4(maxlen)
-eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.AdBlockBlockedNetworkReply?1(request, subscription, rule, parent=None)
-eric6.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.addCustomRule?4(filterRule)
-eric6.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.addSubscription?4(subscription, refresh=True)
-eric6.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.on_adBlockGroup_toggled?4(state)
-eric6.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.on_searchEdit_textChanged?4(filterRule)
-eric6.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.on_subscriptionsTabWidget_currentChanged?4(index)
-eric6.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.on_updateSpinBox_valueChanged?4(value)
-eric6.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog.showRule?4(rule)
-eric6.Helpviewer.AdBlock.AdBlockDialog.AdBlockDialog?1(parent=None)
-eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.AdBlockExceptionsDialog.accept?4()
-eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.AdBlockExceptionsDialog.load?4(hosts)
-eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.AdBlockExceptionsDialog.on_addButton_clicked?4()
-eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.AdBlockExceptionsDialog.on_deleteButton_clicked?4()
-eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.AdBlockExceptionsDialog.on_hostEdit_textChanged?4(txt)
-eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.AdBlockExceptionsDialog.on_hostList_itemSelectionChanged?4()
-eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.AdBlockExceptionsDialog?1(parent=None)
-eric6.Helpviewer.AdBlock.AdBlockIcon.AdBlockIcon.currentChanged?4()
-eric6.Helpviewer.AdBlock.AdBlockIcon.AdBlockIcon.menuAction?4()
-eric6.Helpviewer.AdBlock.AdBlockIcon.AdBlockIcon.setEnabled?4(enabled)
-eric6.Helpviewer.AdBlock.AdBlockIcon.AdBlockIcon.sourceChanged?4(browser, url)
-eric6.Helpviewer.AdBlock.AdBlockIcon.AdBlockIcon?1(parent)
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.addException?4(host)
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.addSubscription?4(subscription)
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.close?4()
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.customRules?4()
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.elementHidingRules?4()
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.elementHidingRulesForDomain?4(url)
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.exceptions?4()
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.getRequiresSubscriptions?4(subscription)
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.isEnabled?4()
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.isHostExcepted?4(host)
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.load?4()
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.loadRequiredSubscription?4(location, title)
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.network?4()
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.page?4()
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.removeException?4(host)
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.removeSubscription?4(subscription, emitSignal=True)
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.requiredSubscriptionLoaded?7
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.rulesChanged?7
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.save?4()
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.setEnabled?4(enabled)
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.setExceptions?4(hosts)
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.showDialog?4()
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.showExceptionsDialog?4()
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.showRule?4(act)
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.subscription?4(location)
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.subscriptions?4()
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager.updateAllSubscriptions?4()
-eric6.Helpviewer.AdBlock.AdBlockManager.AdBlockManager?1(parent=None)
-eric6.Helpviewer.AdBlock.AdBlockNetwork.AdBlockNetwork.block?4(request)
-eric6.Helpviewer.AdBlock.AdBlockNetwork.AdBlockNetwork.canRunOnScheme?4(scheme)
-eric6.Helpviewer.AdBlock.AdBlockPage.AdBlockPage.hideBlockedPageEntries?4(page)
-eric6.Helpviewer.AdBlock.AdBlockPage.AdBlockedPageEntry.urlString?4()
-eric6.Helpviewer.AdBlock.AdBlockPage.AdBlockedPageEntry?1(rule, url)
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.cssSelector?4()
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.filter?4()
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.isCSSRule?4()
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.isComment?4()
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.isDocument?4()
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.isDomainRestricted?4()
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.isElementHiding?4()
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.isEnabled?4()
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.isException?4()
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.isHeader?4()
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.isInternalDisabled?4()
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.isSlow?4()
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.matchDomain?4(domain)
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.matchObject?4(req)
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.matchSubdocument?4(req)
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.matchThirdParty?4(req)
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.matchXmlHttpRequest?4(req)
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.networkMatch?4(request, domain, encodedUrl)
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.setEnabled?4(enabled)
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.setException?4(exception)
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.setFilter?4(filterRule)
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.subscription?4()
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule.urlMatch?4(url)
-eric6.Helpviewer.AdBlock.AdBlockRule.AdBlockRule?1(filterRule="", subscription=None)
-eric6.Helpviewer.AdBlock.AdBlockRule.toSecondLevelDomain?4(url)
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.adBlockDisabledForUrl?4(url)
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.addRule?4(rule)
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.allRules?4()
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.canBeRemoved?4()
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.canEditRules?4()
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.changed?7
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.checkForUpdate?4()
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.elemHideDisabledForUrl?4(url)
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.elementHidingRules?4()
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.elementHidingRulesForDomain?4(domain)
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.enabledChanged?7
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.isEnabled?4()
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.lastUpdate?4()
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.location?4()
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.match?4(req, urlDomain, urlString)
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.removeRule?4(offset)
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.replaceRule?4(rule, offset)
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.requiresLocation?4()
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.rule?4(offset)
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.rulesChanged?7
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.rulesFileName?4()
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.saveRules?4()
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.setEnabled?4(enabled)
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.setLocation?4(url)
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.setRuleEnabled?4(offset, enabled)
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.setTitle?4(title)
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.title?4()
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.updateNow?4()
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription.url?4()
-eric6.Helpviewer.AdBlock.AdBlockSubscription.AdBlockSubscription?1(url, custom, parent=None, default=False)
-eric6.Helpviewer.AdBlock.AdBlockTreeWidget.AdBlockTreeWidget.addRule?4(filterRule="")
-eric6.Helpviewer.AdBlock.AdBlockTreeWidget.AdBlockTreeWidget.keyPressEvent?4(evt)
-eric6.Helpviewer.AdBlock.AdBlockTreeWidget.AdBlockTreeWidget.refresh?4()
-eric6.Helpviewer.AdBlock.AdBlockTreeWidget.AdBlockTreeWidget.removeRule?4()
-eric6.Helpviewer.AdBlock.AdBlockTreeWidget.AdBlockTreeWidget.showRule?4(rule)
-eric6.Helpviewer.AdBlock.AdBlockTreeWidget.AdBlockTreeWidget.subscription?4()
-eric6.Helpviewer.AdBlock.AdBlockTreeWidget.AdBlockTreeWidget?1(subscription, parent=None)
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.accept?4()
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.addedNode?4()
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.currentIndex?4()
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.description?4()
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.isFolder?4()
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.setCurrentIndex?4(idx)
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.setDescription?4(description)
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.setFolder?4(folder)
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.setTitle?4(title)
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.setUrl?4(url)
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.title?4()
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog.url?4()
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkDialog?1(parent=None, bookmarksManager=None)
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkProxyModel.columnCount?4(parent)
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkProxyModel.filterAcceptsColumn?4(sourceColumn, sourceParent)
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkProxyModel.filterAcceptsRow?4(sourceRow, sourceParent)
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkProxyModel.hasChildren?4(parent=None)
-eric6.Helpviewer.Bookmarks.AddBookmarkDialog.AddBookmarkProxyModel?1(parent=None)
-eric6.Helpviewer.Bookmarks.BookmarkNode.BookmarkNode.Bookmark?7
-eric6.Helpviewer.Bookmarks.BookmarkNode.BookmarkNode.Folder?7
-eric6.Helpviewer.Bookmarks.BookmarkNode.BookmarkNode.Root?7
-eric6.Helpviewer.Bookmarks.BookmarkNode.BookmarkNode.Separator?7
-eric6.Helpviewer.Bookmarks.BookmarkNode.BookmarkNode.TsAdded?7
-eric6.Helpviewer.Bookmarks.BookmarkNode.BookmarkNode.TsModified?7
-eric6.Helpviewer.Bookmarks.BookmarkNode.BookmarkNode.TsVisited?7
-eric6.Helpviewer.Bookmarks.BookmarkNode.BookmarkNode.add?4(child, offset=-1)
-eric6.Helpviewer.Bookmarks.BookmarkNode.BookmarkNode.children?4()
-eric6.Helpviewer.Bookmarks.BookmarkNode.BookmarkNode.parent?4()
-eric6.Helpviewer.Bookmarks.BookmarkNode.BookmarkNode.remove?4(child)
-eric6.Helpviewer.Bookmarks.BookmarkNode.BookmarkNode.setType?4(type_)
-eric6.Helpviewer.Bookmarks.BookmarkNode.BookmarkNode.type?4()
-eric6.Helpviewer.Bookmarks.BookmarkNode.BookmarkNode?1(type_=Root, parent=None)
-eric6.Helpviewer.Bookmarks.BookmarkPropertiesDialog.BookmarkPropertiesDialog.accept?4()
-eric6.Helpviewer.Bookmarks.BookmarkPropertiesDialog.BookmarkPropertiesDialog?1(node, parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksDialog.BookmarksDialog.closeEvent?4(evt)
-eric6.Helpviewer.Bookmarks.BookmarksDialog.BookmarksDialog.newUrl?7
-eric6.Helpviewer.Bookmarks.BookmarksDialog.BookmarksDialog.openUrl?7
-eric6.Helpviewer.Bookmarks.BookmarksDialog.BookmarksDialog.reject?4()
-eric6.Helpviewer.Bookmarks.BookmarksDialog.BookmarksDialog?1(parent=None, manager=None)
-eric6.Helpviewer.Bookmarks.BookmarksImportDialog.BookmarksImportDialog.SourcesListIdRole?7
-eric6.Helpviewer.Bookmarks.BookmarksImportDialog.BookmarksImportDialog.getImportedBookmarks?4()
-eric6.Helpviewer.Bookmarks.BookmarksImportDialog.BookmarksImportDialog.on_cancelButton_clicked?4()
-eric6.Helpviewer.Bookmarks.BookmarksImportDialog.BookmarksImportDialog.on_filePicker_textChanged?4(txt)
-eric6.Helpviewer.Bookmarks.BookmarksImportDialog.BookmarksImportDialog.on_nextButton_clicked?4()
-eric6.Helpviewer.Bookmarks.BookmarksImportDialog.BookmarksImportDialog.on_sourcesList_itemSelectionChanged?4()
-eric6.Helpviewer.Bookmarks.BookmarksImportDialog.BookmarksImportDialog?1(parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.BookmarksImporter.error?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.BookmarksImporter.errorString?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.BookmarksImporter.importedBookmarks?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.BookmarksImporter.open?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.BookmarksImporter.setPath?4(path)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.BookmarksImporter?1(sourceId="", parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.ChromeImporter.importedBookmarks?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.ChromeImporter.open?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.ChromeImporter.setPath?4(path)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.ChromeImporter?1(sourceId="", parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.getImporterInfo?4(sourceId)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.FirefoxImporter.importedBookmarks?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.FirefoxImporter.open?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.FirefoxImporter.setPath?4(path)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.FirefoxImporter?1(sourceId="", parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.getImporterInfo?4(sourceId)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.HtmlImporter.importedBookmarks?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.HtmlImporter.open?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.HtmlImporter.setPath?4(path)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.HtmlImporter?1(sourceId="", parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.getImporterInfo?4(sourceId)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.IExplorerImporter.importedBookmarks?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.IExplorerImporter.open?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.IExplorerImporter.setPath?4(path)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.IExplorerImporter?1(sourceId="", parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.getImporterInfo?4(sourceId)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.OperaImporter.importedBookmarks?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.OperaImporter.open?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.OperaImporter.setPath?4(path)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.OperaImporter?1(sourceId="", parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.getImporterInfo?4(sourceId)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.SafariImporter.importedBookmarks?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.SafariImporter.open?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.SafariImporter.setPath?4(path)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.SafariImporter?1(sourceId="", parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.getImporterInfo?4(sourceId)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.XbelImporter.importedBookmarks?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.XbelImporter.open?4()
-eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.XbelImporter.setPath?4(path)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.XbelImporter?1(sourceId="", parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.getImporterInfo?4(sourceId)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.getImporter?4(sourceId, parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.getImporterInfo?4(sourceId)
-eric6.Helpviewer.Bookmarks.BookmarksImporters.getImporters?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.BOOKMARKBAR?7
-eric6.Helpviewer.Bookmarks.BookmarksManager.BOOKMARKMENU?7
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.addBookmark?4(parent, node, row=-1)
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.bookmarkForUrl?4(url, start=StartRoot)
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.bookmarks?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.bookmarksForUrl?4(url, start=StartRoot)
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.bookmarksModel?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.bookmarksReloaded?7
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.bookmarksSaved?7
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.changeExpanded?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.close?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.entryAdded?7
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.entryChanged?7
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.entryRemoved?7
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.exportBookmarks?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.getFileName?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.iconChanged?4(url)
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.importBookmarks?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.load?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.menu?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.reload?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.removeBookmark?4(node)
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.save?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.setNodeChanged?4(node)
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.setTimestamp?4(node, timestampType, timestamp)
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.setTitle?4(node, newTitle)
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.setUrl?4(node, newUrl)
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.toolbar?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager.undoRedoStack?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.BookmarksManager?1(parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksManager.ChangeBookmarkCommand.redo?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.ChangeBookmarkCommand.undo?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.ChangeBookmarkCommand?1(bookmarksManager, node, newValue, title)
-eric6.Helpviewer.Bookmarks.BookmarksManager.InsertBookmarksCommand.redo?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.InsertBookmarksCommand.undo?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.InsertBookmarksCommand?1(bookmarksManager, parent, node, row)
-eric6.Helpviewer.Bookmarks.BookmarksManager.RemoveBookmarksCommand.redo?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.RemoveBookmarksCommand.undo?4()
-eric6.Helpviewer.Bookmarks.BookmarksManager.RemoveBookmarksCommand?1(bookmarksManager, parent, row)
-eric6.Helpviewer.Bookmarks.BookmarksManager.StartMenu?7
-eric6.Helpviewer.Bookmarks.BookmarksManager.StartRoot?7
-eric6.Helpviewer.Bookmarks.BookmarksManager.StartToolBar?7
-eric6.Helpviewer.Bookmarks.BookmarksMenu.BookmarksMenu.createBaseMenu?4()
-eric6.Helpviewer.Bookmarks.BookmarksMenu.BookmarksMenu.newUrl?7
-eric6.Helpviewer.Bookmarks.BookmarksMenu.BookmarksMenu.openAll?4(act)
-eric6.Helpviewer.Bookmarks.BookmarksMenu.BookmarksMenu.openUrl?7
-eric6.Helpviewer.Bookmarks.BookmarksMenu.BookmarksMenu.postPopulated?4()
-eric6.Helpviewer.Bookmarks.BookmarksMenu.BookmarksMenu?1(parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksMenu.BookmarksMenuBarMenu.openUrl?7
-eric6.Helpviewer.Bookmarks.BookmarksMenu.BookmarksMenuBarMenu.postPopulated?4()
-eric6.Helpviewer.Bookmarks.BookmarksMenu.BookmarksMenuBarMenu.prePopulated?4()
-eric6.Helpviewer.Bookmarks.BookmarksMenu.BookmarksMenuBarMenu.setInitialActions?4(actions)
-eric6.Helpviewer.Bookmarks.BookmarksMenu.BookmarksMenuBarMenu?1(parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.MIMETYPE?7
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.SeparatorRole?7
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.TypeRole?7
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.UrlRole?7
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.UrlStringRole?7
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.bookmarksManager?4()
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.columnCount?4(parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.data?4(index, role=Qt.DisplayRole)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.dropMimeData?4(data, action, row, column, parent)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.entryAdded?4(node)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.entryChanged?4(node)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.entryRemoved?4(parent, row, node)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.flags?4(index)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.hasChildren?4(parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.headerData?4(section, orientation, role=Qt.DisplayRole)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.index?4(row, column, parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.mimeData?4(indexes)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.mimeTypes?4()
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.node?4(index)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.nodeIndex?4(node)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.parent?4(index=None)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.removeRows?4(row, count, parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.rowCount?4(parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.setData?4(index, value, role=Qt.EditRole)
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel.supportedDropActions?4()
-eric6.Helpviewer.Bookmarks.BookmarksModel.BookmarksModel?1(manager, parent=None)
-eric6.Helpviewer.Bookmarks.BookmarksToolBar.BookmarksToolBar._createMenu?5()
-eric6.Helpviewer.Bookmarks.BookmarksToolBar.BookmarksToolBar.newUrl?7
-eric6.Helpviewer.Bookmarks.BookmarksToolBar.BookmarksToolBar.openUrl?7
-eric6.Helpviewer.Bookmarks.BookmarksToolBar.BookmarksToolBar?1(mainWindow, model, parent=None)
-eric6.Helpviewer.Bookmarks.DefaultBookmarks_rc.qCleanupResources?4()
-eric6.Helpviewer.Bookmarks.DefaultBookmarks_rc.qInitResources?4()
-eric6.Helpviewer.Bookmarks.DefaultBookmarks_rc.qt_resource_data?7
-eric6.Helpviewer.Bookmarks.DefaultBookmarks_rc.qt_resource_name?7
-eric6.Helpviewer.Bookmarks.DefaultBookmarks_rc.qt_resource_struct_v1?7
-eric6.Helpviewer.Bookmarks.DefaultBookmarks_rc.qt_resource_struct_v2?7
-eric6.Helpviewer.Bookmarks.DefaultBookmarks_rc.qt_version?7
-eric6.Helpviewer.Bookmarks.NsHtmlReader.NsHtmlReader.indentSize?7
-eric6.Helpviewer.Bookmarks.NsHtmlReader.NsHtmlReader.read?4(fileNameOrDevice)
-eric6.Helpviewer.Bookmarks.NsHtmlReader.NsHtmlReader?1()
-eric6.Helpviewer.Bookmarks.NsHtmlWriter.NsHtmlWriter.indentSize?7
-eric6.Helpviewer.Bookmarks.NsHtmlWriter.NsHtmlWriter.write?4(fileNameOrDevice, root)
-eric6.Helpviewer.Bookmarks.NsHtmlWriter.NsHtmlWriter?1()
-eric6.Helpviewer.Bookmarks.XbelReader.XbelReader.read?4(fileNameOrDevice)
-eric6.Helpviewer.Bookmarks.XbelReader.XbelReader?1()
-eric6.Helpviewer.Bookmarks.XbelReader.XmlEntityResolver.resolveUndeclaredEntity?4(entity)
-eric6.Helpviewer.Bookmarks.XbelWriter.XbelWriter.write?4(fileNameOrDevice, root)
-eric6.Helpviewer.Bookmarks.XbelWriter.XbelWriter?1()
-eric6.Helpviewer.ClosedTabsManager.ClosedTab?1(url=None, title="", position=-1)
-eric6.Helpviewer.ClosedTabsManager.ClosedTabsManager.allClosedTabs?4()
-eric6.Helpviewer.ClosedTabsManager.ClosedTabsManager.clearList?4()
-eric6.Helpviewer.ClosedTabsManager.ClosedTabsManager.closedTabAvailable?7
-eric6.Helpviewer.ClosedTabsManager.ClosedTabsManager.getClosedTabAt?4(index)
-eric6.Helpviewer.ClosedTabsManager.ClosedTabsManager.isClosedTabAvailable?4()
-eric6.Helpviewer.ClosedTabsManager.ClosedTabsManager.recordBrowser?4(browser, position)
-eric6.Helpviewer.ClosedTabsManager.ClosedTabsManager?1(parent=None)
-eric6.Helpviewer.CookieJar.CookieDetailsDialog.CookieDetailsDialog.setData?4(domain, name, path, secure, expires, value)
-eric6.Helpviewer.CookieJar.CookieDetailsDialog.CookieDetailsDialog?1(parent=None)
-eric6.Helpviewer.CookieJar.CookieExceptionsModel.CookieExceptionsModel.addRule?4(host, rule)
-eric6.Helpviewer.CookieJar.CookieExceptionsModel.CookieExceptionsModel.columnCount?4(parent=None)
-eric6.Helpviewer.CookieJar.CookieExceptionsModel.CookieExceptionsModel.data?4(index, role)
-eric6.Helpviewer.CookieJar.CookieExceptionsModel.CookieExceptionsModel.headerData?4(section, orientation, role)
-eric6.Helpviewer.CookieJar.CookieExceptionsModel.CookieExceptionsModel.removeRows?4(row, count, parent=None)
-eric6.Helpviewer.CookieJar.CookieExceptionsModel.CookieExceptionsModel.rowCount?4(parent=None)
-eric6.Helpviewer.CookieJar.CookieExceptionsModel.CookieExceptionsModel?1(cookieJar, parent=None)
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.AcceptAlways?7
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.AcceptNever?7
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.AcceptOnlyFromSitesNavigatedTo?7
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.Allow?7
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.AllowForSession?7
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.Block?7
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.JAR_VERSION?7
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.KeepUntilExit?7
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.KeepUntilExpire?7
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.KeepUntilTimeLimit?7
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.acceptPolicy?4()
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.allowForSessionCookies?4()
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.allowedCookies?4()
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.blockedCookies?4()
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.clear?4()
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.close?4()
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.cookies?4()
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.cookiesChanged?7
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.cookiesForUrl?4(url)
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.filterTrackingCookies?4()
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.keepPolicy?4()
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.load?4()
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.loadCookies?4(cookies)
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.save?4()
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.saveCookies?4(cookiesList)
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.setAcceptPolicy?4(policy)
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.setAllowForSessionCookies?4(list_)
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.setAllowedCookies?4(list_)
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.setBlockedCookies?4(list_)
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.setCookies?4(cookies)
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.setCookiesFromUrl?4(cookieList, url)
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.setFilterTrackingCookies?4(filterTrackingCookies)
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar.setKeepPolicy?4(policy)
-eric6.Helpviewer.CookieJar.CookieJar.CookieJar?1(parent=None)
-eric6.Helpviewer.CookieJar.CookieModel.CookieModel.columnCount?4(parent=None)
-eric6.Helpviewer.CookieJar.CookieModel.CookieModel.data?4(index, role)
-eric6.Helpviewer.CookieJar.CookieModel.CookieModel.headerData?4(section, orientation, role)
-eric6.Helpviewer.CookieJar.CookieModel.CookieModel.removeRows?4(row, count, parent=None)
-eric6.Helpviewer.CookieJar.CookieModel.CookieModel.rowCount?4(parent=None)
-eric6.Helpviewer.CookieJar.CookieModel.CookieModel?1(cookieJar, parent=None)
-eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.CookiesConfigurationDialog.accept?4()
-eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.CookiesConfigurationDialog.on_cookiesButton_clicked?4()
-eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.CookiesConfigurationDialog.on_exceptionsButton_clicked?4()
-eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.CookiesConfigurationDialog?1(parent)
-eric6.Helpviewer.CookieJar.CookiesDialog.CookiesDialog.on_addButton_clicked?4()
-eric6.Helpviewer.CookieJar.CookiesDialog.CookiesDialog?1(cookieJar, parent=None)
-eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.CookiesExceptionsDialog.on_allowButton_clicked?4()
-eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.CookiesExceptionsDialog.on_allowForSessionButton_clicked?4()
-eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.CookiesExceptionsDialog.on_blockButton_clicked?4()
-eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.CookiesExceptionsDialog.on_domainEdit_textChanged?4(txt)
-eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.CookiesExceptionsDialog.setDomainName?4(domain)
-eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.CookiesExceptionsDialog?1(cookieJar, parent=None)
-eric6.Helpviewer.Download.DownloadAskActionDialog.DownloadAskActionDialog.getAction?4()
-eric6.Helpviewer.Download.DownloadAskActionDialog.DownloadAskActionDialog?1(fileName, mimeType, baseUrl, parent=None)
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.DownloadCancelled?7
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.DownloadSuccessful?7
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.Downloading?7
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.absoluteFilePath?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.bytesReceived?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.bytesTotal?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.cancelDownload?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.canceledFileSelect?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.currentSpeed?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.downloadCanceled?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.downloadFinished?7
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.downloadedSuccessfully?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.downloading?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.fileName?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.getData?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.getInfoData?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.getPageUrl?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.on_openButton_clicked?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.on_pauseButton_clicked?4(checked)
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.on_stopButton_clicked?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.on_tryAgainButton_clicked?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.openFile?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.openFolder?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.progress?7
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.remainingTime?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.retry?4()
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.setData?4(data)
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.setIcon?4(icon)
-eric6.Helpviewer.Download.DownloadItem.DownloadItem.statusChanged?7
-eric6.Helpviewer.Download.DownloadItem.DownloadItem?1(reply=None, requestFilename=False, webPage=None, download=False, parent=None, mainWindow=None)
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.RemoveExit?7
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.RemoveNever?7
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.RemoveSuccessFullDownload?7
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.activeDownloads?4()
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.allowQuit?4()
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.changeOccurred?4()
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.cleanup?4()
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.count?4()
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.download?4(requestOrUrl, requestFileName=False, mainWindow=None)
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.downloadDirectory?4()
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.downloads?4()
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.handleUnsupportedContent?4(reply, requestFileName=False, webPage=None, download=False, mainWindow=None)
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.on_cleanupButton_clicked?4()
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.removePolicy?4()
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.save?4()
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.setDownloadDirectory?4(directory)
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.setRemovePolicy?4(policy)
-eric6.Helpviewer.Download.DownloadManager.DownloadManager.shutdown?4()
-eric6.Helpviewer.Download.DownloadManager.DownloadManager?1(parent=None)
-eric6.Helpviewer.Download.DownloadModel.DownloadModel.data?4(index, role)
-eric6.Helpviewer.Download.DownloadModel.DownloadModel.flags?4(index)
-eric6.Helpviewer.Download.DownloadModel.DownloadModel.mimeData?4(indexes)
-eric6.Helpviewer.Download.DownloadModel.DownloadModel.removeRows?4(row, count, parent=None)
-eric6.Helpviewer.Download.DownloadModel.DownloadModel.rowCount?4(parent=None)
-eric6.Helpviewer.Download.DownloadModel.DownloadModel?1(manager, parent=None)
-eric6.Helpviewer.Download.DownloadUtilities.dataString?4(size)
-eric6.Helpviewer.Download.DownloadUtilities.timeString?4(timeRemaining)
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.FeaturePermissionBar.DefaultHeight?7
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.FeaturePermissionBar.hide?4()
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.FeaturePermissionBar?1(view, frame, feature)
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.FeaturePermissionManager.SettingsKeyFormat?7
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.FeaturePermissionManager.rememberFeaturePermission?4(host, feature, permission)
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.FeaturePermissionManager.requestFeaturePermission?4(page, frame, feature)
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.FeaturePermissionManager.showFeaturePermissionsDialog?4()
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.FeaturePermissionManager?1(parent=None)
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.FeaturePermissionsDialog.getData?4()
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.FeaturePermissionsDialog.on_geoList_itemSelectionChanged?4()
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.FeaturePermissionsDialog.on_geoRemoveAllButton_clicked?4()
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.FeaturePermissionsDialog.on_geoRemoveButton_clicked?4()
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.FeaturePermissionsDialog.on_notifList_itemSelectionChanged?4()
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.FeaturePermissionsDialog.on_notifRemoveAllButton_clicked?4()
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.FeaturePermissionsDialog.on_notifRemoveButton_clicked?4()
-eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.FeaturePermissionsDialog?1(featurePermissions, parent=None)
-eric6.Helpviewer.Feeds.FeedEditDialog.FeedEditDialog.getData?4()
-eric6.Helpviewer.Feeds.FeedEditDialog.FeedEditDialog.on_titleEdit_textChanged?4(txt)
-eric6.Helpviewer.Feeds.FeedEditDialog.FeedEditDialog.on_urlEdit_textChanged?4(txt)
-eric6.Helpviewer.Feeds.FeedEditDialog.FeedEditDialog?1(urlString, title, parent=None)
-eric6.Helpviewer.Feeds.FeedsDialog.FeedsDialog?1(availableFeeds, browser, parent=None)
-eric6.Helpviewer.Feeds.FeedsManager.FeedsManager.ErrorDataRole?7
-eric6.Helpviewer.Feeds.FeedsManager.FeedsManager.UrlStringRole?7
-eric6.Helpviewer.Feeds.FeedsManager.FeedsManager.addFeed?4(urlString, title, icon)
-eric6.Helpviewer.Feeds.FeedsManager.FeedsManager.newUrl?7
-eric6.Helpviewer.Feeds.FeedsManager.FeedsManager.on_deleteButton_clicked?4()
-eric6.Helpviewer.Feeds.FeedsManager.FeedsManager.on_editButton_clicked?4()
-eric6.Helpviewer.Feeds.FeedsManager.FeedsManager.on_feedsTree_itemSelectionChanged?4()
-eric6.Helpviewer.Feeds.FeedsManager.FeedsManager.on_reloadAllButton_clicked?4()
-eric6.Helpviewer.Feeds.FeedsManager.FeedsManager.on_reloadButton_clicked?4()
-eric6.Helpviewer.Feeds.FeedsManager.FeedsManager.openUrl?7
-eric6.Helpviewer.Feeds.FeedsManager.FeedsManager.show?4()
-eric6.Helpviewer.Feeds.FeedsManager.FeedsManager?1(parent=None)
-eric6.Helpviewer.FlashCookieManager.FlashCookie.FlashCookie?1()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManager.FlashCookieManager.RefreshInterval?7
-eric6.Helpviewer.FlashCookieManager.FlashCookieManager.FlashCookieManager.clearCache?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManager.FlashCookieManager.clearNewOrigins?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManager.FlashCookieManager.flashCookies?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManager.FlashCookieManager.flashPlayerDataPath?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManager.FlashCookieManager.newCookiesList?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManager.FlashCookieManager.preferencesChanged?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManager.FlashCookieManager.removeCookie?4(cookie)
-eric6.Helpviewer.FlashCookieManager.FlashCookieManager.FlashCookieManager.setFlashCookies?4(cookies)
-eric6.Helpviewer.FlashCookieManager.FlashCookieManager.FlashCookieManager.showFlashCookieManagerDialog?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManager.FlashCookieManager.shutdown?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManager.FlashCookieManager?1(parent=None)
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog.closeEvent?4(evt)
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog.on_addBlackButton_clicked?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog.on_addWhiteButton_clicked?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog.on_blackList_itemSelectionChanged?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog.on_cookiesList_currentItemChanged?4(current, previous)
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog.on_filterEdit_textChanged?4(filterStr)
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog.on_reloadButton_clicked?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog.on_removeAllButton_clicked?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog.on_removeBlackButton_clicked?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog.on_removeButton_clicked?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog.on_removeWhiteButton_clicked?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog.on_whiteList_itemSelectionChanged?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog.refreshView?4(forceReload=False)
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog.showPage?4(index)
-eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.FlashCookieManagerDialog?1(manager, parent=None)
-eric6.Helpviewer.FlashCookieManager.FlashCookieNotification.FlashCookieNotification.DefaultHeight?7
-eric6.Helpviewer.FlashCookieManager.FlashCookieNotification.FlashCookieNotification?1(view, manager, noCookies)
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.Boolean?7
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.EpochCorrectionMsecs?7
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.Null?7
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.Number?7
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.ObjArr?7
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.ObjCc?7
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.ObjDate?7
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.ObjM?7
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.ObjObj?7
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.ObjXml?7
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.String?7
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.Undef?7
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.parse?4()
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.setBytes?4(solData)
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.setFile?4(solFile)
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.setFileName?4(solFilename)
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader.toString?4(indent=0, parent=None)
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReader?1()
-eric6.Helpviewer.FlashCookieManager.FlashCookieReader.FlashCookieReaderError?1(msg)
-eric6.Helpviewer.FlashCookieManager.FlashCookieUtilities.flashDataPathForOS?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.GreaseMonkeyAddScriptDialog?1(manager, script, parent=None)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.GreaseMonkeyConfigurationDialog.ScriptDescriptionRole?7
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.GreaseMonkeyConfigurationDialog.ScriptRole?7
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.GreaseMonkeyConfigurationDialog.ScriptVersionRole?7
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated?4(link)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked?4(item)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.GreaseMonkeyConfigurationDialog?1(manager, parent=None)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.CheckBoxSize?7
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.IconSize?7
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.ItemWidth?7
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.MinPadding?7
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.RemoveIconSize?7
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.padding?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.paint?4(painter, option, index)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate.sizeHint?4(option, index)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.GreaseMonkeyConfigurationListDelegate?1(parent=None)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent?4(evt)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.GreaseMonkeyConfigurationListWidget.mousePressEvent?4(evt)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.GreaseMonkeyConfigurationListWidget.removeItemRequested?7
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.GreaseMonkeyConfigurationListWidget?1(parent=None)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.GreaseMonkeyConfigurationScriptInfoDialog?1(script, parent=None)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.GreaseMonkeyDownloader.finished?7
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.GreaseMonkeyDownloader?1(request, manager)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript.bootstrap_js?7
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.addScript?4(script)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.allScripts?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.canRunOnScheme?4(scheme)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.connectPage?4(page)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.containsScript?4(fullName)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.createRequest?4(op, request, outgoingData=None)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.disableScript?4(script)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.downloadScript?4(request)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.enableScript?4(script)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.pageLoadStarted?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.removeScript?4(script)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.requireScripts?4(urlList)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.requireScriptsDirectory?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.saveConfiguration?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.scriptsChanged?7
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.scriptsDirectory?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager.showConfigurationDialog?4(parent=None)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.GreaseMonkeyManager?1(parent=None)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.DocumentEnd?7
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.DocumentStart?7
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.description?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.downloadUrl?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.exclude?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.fileName?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.fullName?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.include?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.isEnabled?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.isValid?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.match?4(urlString)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.name?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.nameSpace?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.script?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.setEnabled?4(enable)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.startAt?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript.version?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.GreaseMonkeyScript?1(manager, path)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.GreaseMonkeyUrlMatcher.match?4(urlString)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.GreaseMonkeyUrlMatcher.pattern?4()
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.GreaseMonkeyUrlMatcher?1(pattern)
-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.wildcardMatch?4(string, pattern)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.ZoomLevelDefault?7
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.ZoomLevels?7
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.addBookmark?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.backward?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.backwardAvailable?7
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.checkRSS?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.clearHistory?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.closeWebInspector?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.contextMenuEvent?4(evt)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.copy?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.createWindow?4(windowType)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.documentTitle?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.dragEnterEvent?4(evt)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.dragMoveEvent?4(evt)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.dropEvent?4(evt)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.event?4(evt)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.findNextPrev?4(txt, case, backwards, wrap, highlightAll)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.focusOutEvent?4(evt)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.forward?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.forwardAvailable?7
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.gestureEvent?4(evt)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.getRSS?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.hasRSS?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.hasSelection?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.highlighted?7
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.home?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.isBackwardAvailable?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.isForwardAvailable?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.isLoading?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.keyPressEvent?4(evt)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.keyReleaseEvent?4(evt)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.linkedResources?4(relation="")
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.mousePressEvent?4(evt)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.mouseReleaseEvent?4(evt)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.preferencesChanged?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.progress?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.reload?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.saveAs?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.search?7
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.setSource?4(name, requestData=None)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.setZoomValue?4(value, saveValue=True)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.source?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.sourceChanged?7
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.wheelEvent?4(evt)
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.zoomIn?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.zoomOut?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.zoomReset?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.zoomValue?4()
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser.zoomValueChanged?7
-eric6.Helpviewer.HelpBrowserWV.HelpBrowser?1(mainWindow, parent=None, name="")
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage._webPluginFactory?8
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.acceptNavigationRequest?4(frame, request, type_)
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.addAdBlockRule?4(rule, url)
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.event?4(evt)
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.extension?4(extension, option, output)
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.getAdBlockedPageEntries?4()
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.getSslCertificate?4()
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.getSslCertificateChain?4()
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.getSslConfiguration?4()
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.hasValidSslInfo?4()
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.pageAttributeId?4()
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.populateNetworkRequest?4(request)
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.setUserAgent?4(agent)
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.showSslInfo?4(pos)
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.supportsExtension?4(extension)
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.url?4()
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.userAgent?4(resolveEmpty=False)
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.userAgentForUrl?4(url)
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage.webPluginFactory?4()
-eric6.Helpviewer.HelpBrowserWV.HelpWebPage?1(parent=None)
-eric6.Helpviewer.HelpBrowserWV.JavaScriptEricObject.providerString?4()
-eric6.Helpviewer.HelpBrowserWV.JavaScriptEricObject.searchUrl?4(searchStr)
-eric6.Helpviewer.HelpBrowserWV.JavaScriptEricObject.translate?4(trans)
-eric6.Helpviewer.HelpBrowserWV.JavaScriptEricObject.translations?7
-eric6.Helpviewer.HelpBrowserWV.JavaScriptEricObject?1(mw, parent=None)
-eric6.Helpviewer.HelpBrowserWV.JavaScriptExternalObject.AddSearchProvider?4(url)
-eric6.Helpviewer.HelpBrowserWV.JavaScriptExternalObject?1(mw, parent=None)
-eric6.Helpviewer.HelpBrowserWV.LinkedResource?1()
-eric6.Helpviewer.HelpBrowserWV.contentSniff?4(data)
-eric6.Helpviewer.HelpClearPrivateDataDialog.HelpClearPrivateDataDialog.getData?4()
-eric6.Helpviewer.HelpClearPrivateDataDialog.HelpClearPrivateDataDialog?1(parent=None)
-eric6.Helpviewer.HelpDocsInstaller.HelpDocsInstaller.docsInstalled?7
-eric6.Helpviewer.HelpDocsInstaller.HelpDocsInstaller.errorMessage?7
-eric6.Helpviewer.HelpDocsInstaller.HelpDocsInstaller.installDocs?4()
-eric6.Helpviewer.HelpDocsInstaller.HelpDocsInstaller.run?4()
-eric6.Helpviewer.HelpDocsInstaller.HelpDocsInstaller.stop?4()
-eric6.Helpviewer.HelpDocsInstaller.HelpDocsInstaller?1(collection)
-eric6.Helpviewer.HelpIndexWidget.HelpIndexWidget.escapePressed?7
-eric6.Helpviewer.HelpIndexWidget.HelpIndexWidget.eventFilter?4(watched, event)
-eric6.Helpviewer.HelpIndexWidget.HelpIndexWidget.focusInEvent?4(evt)
-eric6.Helpviewer.HelpIndexWidget.HelpIndexWidget.linkActivated?7
-eric6.Helpviewer.HelpIndexWidget.HelpIndexWidget.linksActivated?7
-eric6.Helpviewer.HelpIndexWidget.HelpIndexWidget?1(engine, mainWindow, parent=None)
-eric6.Helpviewer.HelpInspector.HelpInspector.closeEvent?4(evt)
-eric6.Helpviewer.HelpInspector.HelpInspector?1(parent=None)
-eric6.Helpviewer.HelpLanguagesDialog.HelpLanguagesDialog.accept?4()
-eric6.Helpviewer.HelpLanguagesDialog.HelpLanguagesDialog.defaultAcceptLanguages?4()
-eric6.Helpviewer.HelpLanguagesDialog.HelpLanguagesDialog.expand?4(language)
-eric6.Helpviewer.HelpLanguagesDialog.HelpLanguagesDialog.httpString?4(languages)
-eric6.Helpviewer.HelpLanguagesDialog.HelpLanguagesDialog.on_addButton_clicked?4()
-eric6.Helpviewer.HelpLanguagesDialog.HelpLanguagesDialog.on_downButton_clicked?4()
-eric6.Helpviewer.HelpLanguagesDialog.HelpLanguagesDialog.on_removeButton_clicked?4()
-eric6.Helpviewer.HelpLanguagesDialog.HelpLanguagesDialog.on_upButton_clicked?4()
-eric6.Helpviewer.HelpLanguagesDialog.HelpLanguagesDialog?1(parent=None)
-eric6.Helpviewer.HelpSearchWidget.HelpSearchWidget.contextMenuEvent?4(evt)
-eric6.Helpviewer.HelpSearchWidget.HelpSearchWidget.escapePressed?7
-eric6.Helpviewer.HelpSearchWidget.HelpSearchWidget.keyPressEvent?4(evt)
-eric6.Helpviewer.HelpSearchWidget.HelpSearchWidget.linkActivated?7
-eric6.Helpviewer.HelpSearchWidget.HelpSearchWidget?1(engine, mainWindow, parent=None)
-eric6.Helpviewer.HelpSingleApplication.HelpSingleApplicationClient.processArgs?4(args, disconnect=True)
-eric6.Helpviewer.HelpSingleApplication.HelpSingleApplicationClient?1(name="")
-eric6.Helpviewer.HelpSingleApplication.HelpSingleApplicationServer.handleCommand?4(command, arguments)
-eric6.Helpviewer.HelpSingleApplication.HelpSingleApplicationServer.loadUrl?7
-eric6.Helpviewer.HelpSingleApplication.HelpSingleApplicationServer.newTab?7
-eric6.Helpviewer.HelpSingleApplication.HelpSingleApplicationServer.search?7
-eric6.Helpviewer.HelpSingleApplication.HelpSingleApplicationServer.shutdown?7
-eric6.Helpviewer.HelpSingleApplication.HelpSingleApplicationServer?1(name="")
-eric6.Helpviewer.HelpSingleApplication.SAFile?7
-eric6.Helpviewer.HelpSingleApplication.SALoadUrl?7
-eric6.Helpviewer.HelpSingleApplication.SANewTab?7
-eric6.Helpviewer.HelpSingleApplication.SASearch?7
-eric6.Helpviewer.HelpSingleApplication.SAShutdown?7
-eric6.Helpviewer.HelpSnap.renderTabPreview?4(page, w, h)
-eric6.Helpviewer.HelpTabBar.HelpTabBar.event?4(evt)
-eric6.Helpviewer.HelpTabBar.HelpTabBar.leaveEvent?4(evt)
-eric6.Helpviewer.HelpTabBar.HelpTabBar.mouseMoveEvent?4(evt)
-eric6.Helpviewer.HelpTabBar.HelpTabBar.mousePressEvent?4(evt)
-eric6.Helpviewer.HelpTabBar.HelpTabBar.tabRemoved?4(index)
-eric6.Helpviewer.HelpTabBar.HelpTabBar?1(parent=None)
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.browserAt?4(index)
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.browserClosed?7
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.browserZoomValueChanged?7
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.browsers?4()
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.canRestoreClosedTab?4()
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.clearClosedTabsList?4()
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.closeAllBrowsers?4()
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.closeBrowser?4()
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.closeBrowserAt?4(index)
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.closedTabsManager?4()
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.currentBrowser?4()
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.currentUrlBar?4()
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.getSourceFileList?4()
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.newBrowser?4(link=None, requestData=None, position=-1)
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.newBrowserAfter?4(browser, link=None, requestData=None)
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.preferencesChanged?4()
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.printBrowser?4(browser=None)
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.printBrowserPdf?4(browser=None)
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.printPreviewBrowser?4(browser=None)
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.reloadAllBrowsers?4()
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.restoreAllClosedTabs?4()
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.restoreClosedTab?4(act)
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.shallShutDown?4()
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.showMessage?7
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.sourceChanged?7
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.stackedUrlBar?4()
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget.titleChanged?7
-eric6.Helpviewer.HelpTabWidget.HelpTabWidget?1(parent)
-eric6.Helpviewer.HelpTocWidget.HelpTocWidget.escapePressed?7
-eric6.Helpviewer.HelpTocWidget.HelpTocWidget.expandToDepth?4(depth)
-eric6.Helpviewer.HelpTocWidget.HelpTocWidget.focusInEvent?4(evt)
-eric6.Helpviewer.HelpTocWidget.HelpTocWidget.itemClicked?4(index)
-eric6.Helpviewer.HelpTocWidget.HelpTocWidget.keyPressEvent?4(evt)
-eric6.Helpviewer.HelpTocWidget.HelpTocWidget.linkActivated?7
-eric6.Helpviewer.HelpTocWidget.HelpTocWidget.syncToContent?4(url)
-eric6.Helpviewer.HelpTocWidget.HelpTocWidget?1(engine, mainWindow, parent=None)
-eric6.Helpviewer.HelpTopicDialog.HelpTopicDialog.link?4()
-eric6.Helpviewer.HelpTopicDialog.HelpTopicDialog?1(parent, keyword, links)
-eric6.Helpviewer.HelpUtilities.ensureUniqueFilename?4(name, appendFormat="({0})")
-eric6.Helpviewer.HelpUtilities.filterCharsFromFilename?4(name)
-eric6.Helpviewer.HelpUtilities.getFileNameFromUrl?4(url)
-eric6.Helpviewer.HelpUtilities.parseContentDisposition?4(reply)
-eric6.Helpviewer.HelpWebSearchWidget.HelpWebSearchWidget.clear?4()
-eric6.Helpviewer.HelpWebSearchWidget.HelpWebSearchWidget.mousePressEvent?4(evt)
-eric6.Helpviewer.HelpWebSearchWidget.HelpWebSearchWidget.openSearchManager?4()
-eric6.Helpviewer.HelpWebSearchWidget.HelpWebSearchWidget.preferencesChanged?4()
-eric6.Helpviewer.HelpWebSearchWidget.HelpWebSearchWidget.saveSearches?4()
-eric6.Helpviewer.HelpWebSearchWidget.HelpWebSearchWidget.search?7
-eric6.Helpviewer.HelpWebSearchWidget.HelpWebSearchWidget?1(parent=None)
-eric6.Helpviewer.HelpWindow.HelpWindow._adblockManager?8
-eric6.Helpviewer.HelpWindow.HelpWindow._bookmarksManager?8
-eric6.Helpviewer.HelpWindow.HelpWindow._cookieJar?8
-eric6.Helpviewer.HelpWindow.HelpWindow._downloadManager?8
-eric6.Helpviewer.HelpWindow.HelpWindow._featurePermissionManager?8
-eric6.Helpviewer.HelpWindow.HelpWindow._feedsManager?8
-eric6.Helpviewer.HelpWindow.HelpWindow._flashCookieManager?8
-eric6.Helpviewer.HelpWindow.HelpWindow._greaseMonkeyManager?8
-eric6.Helpviewer.HelpWindow.HelpWindow._helpEngine?8
-eric6.Helpviewer.HelpWindow.HelpWindow._historyManager?8
-eric6.Helpviewer.HelpWindow.HelpWindow._networkAccessManager?8
-eric6.Helpviewer.HelpWindow.HelpWindow._notification?8
-eric6.Helpviewer.HelpWindow.HelpWindow._passwordManager?8
-eric6.Helpviewer.HelpWindow.HelpWindow._personalInformationManager?8
-eric6.Helpviewer.HelpWindow.HelpWindow._speedDial?8
-eric6.Helpviewer.HelpWindow.HelpWindow._syncManager?8
-eric6.Helpviewer.HelpWindow.HelpWindow._useQtHelp?8
-eric6.Helpviewer.HelpWindow.HelpWindow._userAgentsManager?8
-eric6.Helpviewer.HelpWindow.HelpWindow._zoomManager?8
-eric6.Helpviewer.HelpWindow.HelpWindow.adBlockIcon?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.adBlockManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.bookmarkAll?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.bookmarksManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.browserAt?4(index)
-eric6.Helpviewer.HelpWindow.HelpWindow.browsers?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.closeEvent?4(e)
-eric6.Helpviewer.HelpWindow.HelpWindow.cookieJar?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.currentBrowser?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.downloadManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.eventKeyboardModifiers?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.eventMouseButtons?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.featurePermissionManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.feedsManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.flashCookieManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.getActions?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.getActionsCategory?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.getQtHelpCollectionFileName?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.getSourceFileList?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.getWindow?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.greaseMonkeyManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.helpClosed?7
-eric6.Helpviewer.HelpWindow.HelpWindow.helpEngine?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.helpwindows?7
-eric6.Helpviewer.HelpWindow.HelpWindow.historyManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.icon?4(url)
-eric6.Helpviewer.HelpWindow.HelpWindow.keyPressEvent?4(evt)
-eric6.Helpviewer.HelpWindow.HelpWindow.mainWindow?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.mainWindows?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.masterPasswordChanged?4(oldPassword, newPassword, local=False)
-eric6.Helpviewer.HelpWindow.HelpWindow.mousePressEvent?4(evt)
-eric6.Helpviewer.HelpWindow.HelpWindow.networkAccessManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.newTab?4(link=None, requestData=None, addNextTo=None)
-eric6.Helpviewer.HelpWindow.HelpWindow.newWindow?4(link=None)
-eric6.Helpviewer.HelpWindow.HelpWindow.notificationsEnabled?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.openSearchManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.openUrl?4(url, title)
-eric6.Helpviewer.HelpWindow.HelpWindow.openUrlNewTab?4(url, title)
-eric6.Helpviewer.HelpWindow.HelpWindow.passwordManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.personalInformationManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.preferencesChanged?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.privacyChanged?7
-eric6.Helpviewer.HelpWindow.HelpWindow.reloadUserStyleSheet?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.requestVirusTotalScan?4(url)
-eric6.Helpviewer.HelpWindow.HelpWindow.search?4(word)
-eric6.Helpviewer.HelpWindow.HelpWindow.searchEnginesAction?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.setBackwardAvailable?4(b)
-eric6.Helpviewer.HelpWindow.HelpWindow.setEventKeyboardModifiers?4(modifiers)
-eric6.Helpviewer.HelpWindow.HelpWindow.setEventMouseButtons?4(buttons)
-eric6.Helpviewer.HelpWindow.HelpWindow.setForwardAvailable?4(b)
-eric6.Helpviewer.HelpWindow.HelpWindow.setLoadingActions?4(b)
-eric6.Helpviewer.HelpWindow.HelpWindow.setPrivateMode?4(on)
-eric6.Helpviewer.HelpWindow.HelpWindow.setUseQtHelp?4(use)
-eric6.Helpviewer.HelpWindow.HelpWindow.showNotification?4(icon, heading, text)
-eric6.Helpviewer.HelpWindow.HelpWindow.shutdown?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.speedDial?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.syncManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.urlHandler?4(url)
-eric6.Helpviewer.HelpWindow.HelpWindow.userAgentsManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.zoomManager?4()
-eric6.Helpviewer.HelpWindow.HelpWindow.zoomTextOnlyChanged?7
-eric6.Helpviewer.HelpWindow.HelpWindow?1(home, path, parent, name, searchWord=None, qthelp=False, single=False, saname="")
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompleter.pathFromIndex?4(idx)
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompleter.splitPath?4(path)
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompleter?1(model, parent=None)
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompletionModel.HistoryCompletionRole?7
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompletionModel.data?4(index, role=Qt.DisplayRole)
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompletionModel.filterAcceptsRow?4(sourceRow, sourceParent)
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompletionModel.isValid?4()
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompletionModel.lessThan?4(left, right)
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompletionModel.searchString?4()
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompletionModel.setSearchString?4(string)
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompletionModel.setValid?4(valid)
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompletionModel?1(parent=None)
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompletionView.resizeEvent?4(evt)
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompletionView.sizeHintForRow?4(row)
-eric6.Helpviewer.History.HistoryCompleter.HistoryCompletionView?1(parent=None)
-eric6.Helpviewer.History.HistoryDialog.HistoryDialog.newUrl?7
-eric6.Helpviewer.History.HistoryDialog.HistoryDialog.openUrl?7
-eric6.Helpviewer.History.HistoryDialog.HistoryDialog?1(parent=None, manager=None)
-eric6.Helpviewer.History.HistoryFilterModel.HistoryData?1(offset, frequency=0)
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.FrequencyRole?7
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.MaxRole?7
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.columnCount?4(parent=None)
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.data?4(index, role=Qt.DisplayRole)
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.headerData?4(section, orientation, role=Qt.DisplayRole)
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.historyContains?4(url)
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.historyLocation?4(url)
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.index?4(row, column, parent=None)
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.mapFromSource?4(sourceIndex)
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.mapToSource?4(proxyIndex)
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.parent?4(index)
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.recalculateFrequencies?4()
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.removeRows?4(row, count, parent=None)
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.rowCount?4(parent=None)
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel.setSourceModel?4(sourceModel)
-eric6.Helpviewer.History.HistoryFilterModel.HistoryFilterModel?1(sourceModel, parent=None)
-eric6.Helpviewer.History.HistoryManager.HISTORY_VERSION?7
-eric6.Helpviewer.History.HistoryManager.HistoryEntry.userTitle?4()
-eric6.Helpviewer.History.HistoryManager.HistoryEntry?1(url=None, dateTime=None, title=None)
-eric6.Helpviewer.History.HistoryManager.HistoryManager._addHistoryEntry?5(itm)
-eric6.Helpviewer.History.HistoryManager.HistoryManager._removeHistoryEntry?5(itm)
-eric6.Helpviewer.History.HistoryManager.HistoryManager.addHistoryEntry?4(url)
-eric6.Helpviewer.History.HistoryManager.HistoryManager.clear?4(period=0)
-eric6.Helpviewer.History.HistoryManager.HistoryManager.close?4()
-eric6.Helpviewer.History.HistoryManager.HistoryManager.daysToExpire?4()
-eric6.Helpviewer.History.HistoryManager.HistoryManager.entryAdded?7
-eric6.Helpviewer.History.HistoryManager.HistoryManager.entryRemoved?7
-eric6.Helpviewer.History.HistoryManager.HistoryManager.entryUpdated?7
-eric6.Helpviewer.History.HistoryManager.HistoryManager.getFileName?4()
-eric6.Helpviewer.History.HistoryManager.HistoryManager.history?4()
-eric6.Helpviewer.History.HistoryManager.HistoryManager.historyCleared?7
-eric6.Helpviewer.History.HistoryManager.HistoryManager.historyContains?4(url)
-eric6.Helpviewer.History.HistoryManager.HistoryManager.historyFilterModel?4()
-eric6.Helpviewer.History.HistoryManager.HistoryManager.historyModel?4()
-eric6.Helpviewer.History.HistoryManager.HistoryManager.historyReset?7
-eric6.Helpviewer.History.HistoryManager.HistoryManager.historySaved?7
-eric6.Helpviewer.History.HistoryManager.HistoryManager.historyTreeModel?4()
-eric6.Helpviewer.History.HistoryManager.HistoryManager.preferencesChanged?4()
-eric6.Helpviewer.History.HistoryManager.HistoryManager.reload?4()
-eric6.Helpviewer.History.HistoryManager.HistoryManager.removeHistoryEntry?4(url, title="")
-eric6.Helpviewer.History.HistoryManager.HistoryManager.save?4()
-eric6.Helpviewer.History.HistoryManager.HistoryManager.setDaysToExpire?4(limit)
-eric6.Helpviewer.History.HistoryManager.HistoryManager.setHistory?4(history, loadedAndSorted=False)
-eric6.Helpviewer.History.HistoryManager.HistoryManager.updateHistoryEntry?4(url, title)
-eric6.Helpviewer.History.HistoryManager.HistoryManager?1(parent=None)
-eric6.Helpviewer.History.HistoryMenu.HistoryMenu.newUrl?7
-eric6.Helpviewer.History.HistoryMenu.HistoryMenu.openUrl?7
-eric6.Helpviewer.History.HistoryMenu.HistoryMenu.postPopulated?4()
-eric6.Helpviewer.History.HistoryMenu.HistoryMenu.prePopulated?4()
-eric6.Helpviewer.History.HistoryMenu.HistoryMenu.setInitialActions?4(actions)
-eric6.Helpviewer.History.HistoryMenu.HistoryMenu?1(parent=None, tabWidget=None)
-eric6.Helpviewer.History.HistoryMenu.HistoryMenuModel.MOVEDROWS?7
-eric6.Helpviewer.History.HistoryMenu.HistoryMenuModel.bumpedRows?4()
-eric6.Helpviewer.History.HistoryMenu.HistoryMenuModel.columnCount?4(parent=None)
-eric6.Helpviewer.History.HistoryMenu.HistoryMenuModel.index?4(row, column, parent=None)
-eric6.Helpviewer.History.HistoryMenu.HistoryMenuModel.mapFromSource?4(sourceIndex)
-eric6.Helpviewer.History.HistoryMenu.HistoryMenuModel.mapToSource?4(proxyIndex)
-eric6.Helpviewer.History.HistoryMenu.HistoryMenuModel.mimeData?4(indexes)
-eric6.Helpviewer.History.HistoryMenu.HistoryMenuModel.parent?4(index)
-eric6.Helpviewer.History.HistoryMenu.HistoryMenuModel.rowCount?4(parent=None)
-eric6.Helpviewer.History.HistoryMenu.HistoryMenuModel?1(sourceModel, parent=None)
-eric6.Helpviewer.History.HistoryMenu.HistoryMostVisitedMenu.newUrl?7
-eric6.Helpviewer.History.HistoryMenu.HistoryMostVisitedMenu.openUrl?7
-eric6.Helpviewer.History.HistoryMenu.HistoryMostVisitedMenu.prePopulated?4()
-eric6.Helpviewer.History.HistoryMenu.HistoryMostVisitedMenu?1(count, parent=None)
-eric6.Helpviewer.History.HistoryMenu.HistoryMostVisitedMenuModel.lessThan?4(left, right)
-eric6.Helpviewer.History.HistoryMenu.HistoryMostVisitedMenuModel?1(sourceModel, parent=None)
-eric6.Helpviewer.History.HistoryModel.HistoryModel.DateRole?7
-eric6.Helpviewer.History.HistoryModel.HistoryModel.DateTimeRole?7
-eric6.Helpviewer.History.HistoryModel.HistoryModel.MaxRole?7
-eric6.Helpviewer.History.HistoryModel.HistoryModel.TitleRole?7
-eric6.Helpviewer.History.HistoryModel.HistoryModel.UrlRole?7
-eric6.Helpviewer.History.HistoryModel.HistoryModel.UrlStringRole?7
-eric6.Helpviewer.History.HistoryModel.HistoryModel.columnCount?4(parent=None)
-eric6.Helpviewer.History.HistoryModel.HistoryModel.data?4(index, role=Qt.DisplayRole)
-eric6.Helpviewer.History.HistoryModel.HistoryModel.entryAdded?4()
-eric6.Helpviewer.History.HistoryModel.HistoryModel.entryUpdated?4(row)
-eric6.Helpviewer.History.HistoryModel.HistoryModel.headerData?4(section, orientation, role=Qt.DisplayRole)
-eric6.Helpviewer.History.HistoryModel.HistoryModel.historyReset?4()
-eric6.Helpviewer.History.HistoryModel.HistoryModel.removeRows?4(row, count, parent=None)
-eric6.Helpviewer.History.HistoryModel.HistoryModel.rowCount?4(parent=None)
-eric6.Helpviewer.History.HistoryModel.HistoryModel?1(historyManager, parent=None)
-eric6.Helpviewer.History.HistoryTreeModel.HistoryTreeModel.columnCount?4(parent=None)
-eric6.Helpviewer.History.HistoryTreeModel.HistoryTreeModel.data?4(index, role=Qt.DisplayRole)
-eric6.Helpviewer.History.HistoryTreeModel.HistoryTreeModel.flags?4(index)
-eric6.Helpviewer.History.HistoryTreeModel.HistoryTreeModel.hasChildren?4(parent=None)
-eric6.Helpviewer.History.HistoryTreeModel.HistoryTreeModel.headerData?4(section, orientation, role=Qt.DisplayRole)
-eric6.Helpviewer.History.HistoryTreeModel.HistoryTreeModel.index?4(row, column, parent=None)
-eric6.Helpviewer.History.HistoryTreeModel.HistoryTreeModel.mapFromSource?4(sourceIndex)
-eric6.Helpviewer.History.HistoryTreeModel.HistoryTreeModel.mapToSource?4(proxyIndex)
-eric6.Helpviewer.History.HistoryTreeModel.HistoryTreeModel.parent?4(index)
-eric6.Helpviewer.History.HistoryTreeModel.HistoryTreeModel.removeRows?4(row, count, parent=None)
-eric6.Helpviewer.History.HistoryTreeModel.HistoryTreeModel.rowCount?4(parent=None)
-eric6.Helpviewer.History.HistoryTreeModel.HistoryTreeModel.setSourceModel?4(sourceModel)
-eric6.Helpviewer.History.HistoryTreeModel.HistoryTreeModel?1(sourceModel, parent=None)
-eric6.Helpviewer.JavaScriptResources.parseForms_js?7
-eric6.Helpviewer.Network.AboutAccessHandler.AboutAccessHandler.createRequest?4(op, request, outgoingData=None)
-eric6.Helpviewer.Network.EmptyNetworkReply.EmptyNetworkReply.abort?4()
-eric6.Helpviewer.Network.EmptyNetworkReply.EmptyNetworkReply.readData?4(maxlen)
-eric6.Helpviewer.Network.EmptyNetworkReply.EmptyNetworkReply?1(parent=None)
-eric6.Helpviewer.Network.EricAccessHandler.EricAccessHandler._homePage?8
-eric6.Helpviewer.Network.EricAccessHandler.EricAccessHandler._speedDialPage?8
-eric6.Helpviewer.Network.EricAccessHandler.EricAccessHandler.createRequest?4(op, request, outgoingData=None)
-eric6.Helpviewer.Network.FileAccessHandler.FileAccessHandler.createRequest?4(op, request, outgoingData=None)
-eric6.Helpviewer.Network.FileAccessHandler.FileAccessHandler?1(parent=None)
-eric6.Helpviewer.Network.FileReply.FileReply.abort?4()
-eric6.Helpviewer.Network.FileReply.FileReply.bytesAvailable?4()
-eric6.Helpviewer.Network.FileReply.FileReply.isSequential?4()
-eric6.Helpviewer.Network.FileReply.FileReply.readData?4(maxlen)
-eric6.Helpviewer.Network.FileReply.FileReply?1(url, parent=None)
-eric6.Helpviewer.Network.FileReply.dirListPage_html?7
-eric6.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.close?4()
-eric6.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.error?4()
-eric6.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.errorString?4()
-eric6.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.finished?7
-eric6.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.originalUrl?4()
-eric6.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.readAll?4()
-eric6.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.reply?4()
-eric6.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply.url?4()
-eric6.Helpviewer.Network.FollowRedirectReply.FollowRedirectReply?1(url, manager, maxRedirects=5)
-eric6.Helpviewer.Network.FtpAccessHandler.FtpAccessHandler.createRequest?4(op, request, outgoingData=None)
-eric6.Helpviewer.Network.FtpAccessHandler.FtpAccessHandler.getAuthenticator?4(realm)
-eric6.Helpviewer.Network.FtpAccessHandler.FtpAccessHandler.getProxyAuthenticator?4()
-eric6.Helpviewer.Network.FtpAccessHandler.FtpAccessHandler.setAuthenticator?4(realm, authenticator)
-eric6.Helpviewer.Network.FtpAccessHandler.FtpAccessHandler.setProxyAuthenticator?4(authenticator)
-eric6.Helpviewer.Network.FtpAccessHandler.FtpAccessHandler?1(parent=None)
-eric6.Helpviewer.Network.FtpReply.FtpReply.abort?4()
-eric6.Helpviewer.Network.FtpReply.FtpReply.bytesAvailable?4()
-eric6.Helpviewer.Network.FtpReply.FtpReply.isSequential?4()
-eric6.Helpviewer.Network.FtpReply.FtpReply.readData?4(maxlen)
-eric6.Helpviewer.Network.FtpReply.FtpReply?1(url, accessHandler, parent=None)
-eric6.Helpviewer.Network.FtpReply.ftpListPage_html?7
-eric6.Helpviewer.Network.NetworkAccessManager.NetworkAccessManager.createRequest?4(op, request, outgoingData=None)
-eric6.Helpviewer.Network.NetworkAccessManager.NetworkAccessManager.languagesChanged?4()
-eric6.Helpviewer.Network.NetworkAccessManager.NetworkAccessManager.preferencesChanged?4()
-eric6.Helpviewer.Network.NetworkAccessManager.NetworkAccessManager.requestCreated?7
-eric6.Helpviewer.Network.NetworkAccessManager.NetworkAccessManager.setSchemeHandler?4(scheme, handler)
-eric6.Helpviewer.Network.NetworkAccessManager.NetworkAccessManager?1(engine, parent=None)
-eric6.Helpviewer.Network.NetworkAccessManagerProxy.NetworkAccessManagerProxy.createRequest?4(op, request, outgoingData=None)
-eric6.Helpviewer.Network.NetworkAccessManagerProxy.NetworkAccessManagerProxy.primaryManager?7
-eric6.Helpviewer.Network.NetworkAccessManagerProxy.NetworkAccessManagerProxy.setPrimaryNetworkAccessManager?4(manager)
-eric6.Helpviewer.Network.NetworkAccessManagerProxy.NetworkAccessManagerProxy.setWebPage?4(page)
-eric6.Helpviewer.Network.NetworkAccessManagerProxy.NetworkAccessManagerProxy?1(parent=None)
-eric6.Helpviewer.Network.NetworkDiskCache.NetworkDiskCache.prepare?4(metaData)
-eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply.NetworkProtocolUnknownErrorReply.abort?4()
-eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply.NetworkProtocolUnknownErrorReply.bytesAvailable?4()
-eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply.NetworkProtocolUnknownErrorReply?1(protocol, parent=None)
-eric6.Helpviewer.Network.NetworkReply.NetworkReply.abort?4()
-eric6.Helpviewer.Network.NetworkReply.NetworkReply.bytesAvailable?4()
-eric6.Helpviewer.Network.NetworkReply.NetworkReply.isFinished?4()
-eric6.Helpviewer.Network.NetworkReply.NetworkReply.readData?4(maxlen)
-eric6.Helpviewer.Network.NetworkReply.NetworkReply?1(request, fileData, mimeType, parent=None)
-eric6.Helpviewer.Network.NoCacheHostsDialog.NoCacheHostsDialog.accept?4()
-eric6.Helpviewer.Network.NoCacheHostsDialog.NoCacheHostsDialog.on_addButton_clicked?4()
-eric6.Helpviewer.Network.NoCacheHostsDialog.NoCacheHostsDialog?1(parent=None)
-eric6.Helpviewer.Network.QtHelpAccessHandler.ExtensionMap?7
-eric6.Helpviewer.Network.QtHelpAccessHandler.QtDocPath?7
-eric6.Helpviewer.Network.QtHelpAccessHandler.QtHelpAccessHandler.createRequest?4(op, request, outgoingData=None)
-eric6.Helpviewer.Network.QtHelpAccessHandler.QtHelpAccessHandler?1(engine, parent=None)
-eric6.Helpviewer.Network.SchemeAccessHandler.SchemeAccessHandler.createRequest?4(op, request, outgoingData=None)
-eric6.Helpviewer.Network.SchemeAccessHandler.SchemeAccessHandler?1(parent=None)
-eric6.Helpviewer.Network.SendRefererWhitelistDialog.SendRefererWhitelistDialog.accept?4()
-eric6.Helpviewer.Network.SendRefererWhitelistDialog.SendRefererWhitelistDialog.on_addButton_clicked?4()
-eric6.Helpviewer.Network.SendRefererWhitelistDialog.SendRefererWhitelistDialog?1(parent=None)
-eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog.OfflineStorageConfigDialog.on_showDatabasesButton_clicked?4()
-eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog.OfflineStorageConfigDialog.storeData?4()
-eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog.OfflineStorageConfigDialog?1(parent=None)
-eric6.Helpviewer.OfflineStorage.WebDatabasesDialog.WebDatabasesDialog?1(parent=None)
-eric6.Helpviewer.OfflineStorage.WebDatabasesModel.WebDatabasesModel.columnCount?4(parent=None)
-eric6.Helpviewer.OfflineStorage.WebDatabasesModel.WebDatabasesModel.data?4(index, role=Qt.DisplayRole)
-eric6.Helpviewer.OfflineStorage.WebDatabasesModel.WebDatabasesModel.hasChildren?4(parent=None)
-eric6.Helpviewer.OfflineStorage.WebDatabasesModel.WebDatabasesModel.headerData?4(section, orientation, role=Qt.DisplayRole)
-eric6.Helpviewer.OfflineStorage.WebDatabasesModel.WebDatabasesModel.index?4(row, column, parent=None)
-eric6.Helpviewer.OfflineStorage.WebDatabasesModel.WebDatabasesModel.parent?4(index=None)
-eric6.Helpviewer.OfflineStorage.WebDatabasesModel.WebDatabasesModel.removeRows?4(row, count, parent=None)
-eric6.Helpviewer.OfflineStorage.WebDatabasesModel.WebDatabasesModel.rowCount?4(parent=None)
-eric6.Helpviewer.OfflineStorage.WebDatabasesModel.WebDatabasesModel?1(parent=None)
-eric6.Helpviewer.OpenSearch.DefaultSearchEngines.DefaultSearchEngines_rc.qCleanupResources?4()
-eric6.Helpviewer.OpenSearch.DefaultSearchEngines.DefaultSearchEngines_rc.qInitResources?4()
-eric6.Helpviewer.OpenSearch.DefaultSearchEngines.DefaultSearchEngines_rc.qt_resource_data?7
-eric6.Helpviewer.OpenSearch.DefaultSearchEngines.DefaultSearchEngines_rc.qt_resource_name?7
-eric6.Helpviewer.OpenSearch.DefaultSearchEngines.DefaultSearchEngines_rc.qt_resource_struct_v1?7
-eric6.Helpviewer.OpenSearch.DefaultSearchEngines.DefaultSearchEngines_rc.qt_resource_struct_v2?7
-eric6.Helpviewer.OpenSearch.DefaultSearchEngines.DefaultSearchEngines_rc.qt_version?7
-eric6.Helpviewer.OpenSearch.OpenSearchDialog.OpenSearchDialog.on_addButton_clicked?4()
-eric6.Helpviewer.OpenSearch.OpenSearchDialog.OpenSearchDialog.on_deleteButton_clicked?4()
-eric6.Helpviewer.OpenSearch.OpenSearchDialog.OpenSearchDialog.on_editButton_clicked?4()
-eric6.Helpviewer.OpenSearch.OpenSearchDialog.OpenSearchDialog.on_restoreButton_clicked?4()
-eric6.Helpviewer.OpenSearch.OpenSearchDialog.OpenSearchDialog?1(parent=None)
-eric6.Helpviewer.OpenSearch.OpenSearchEditDialog.OpenSearchEditDialog.accept?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEditDialog.OpenSearchEditDialog?1(engine, parent=None)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.description?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.image?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.imageChanged?7
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.imageUrl?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.isValid?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.loadImage?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.name?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.networkAccessManager?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.parseTemplate?4(searchTerm, searchTemplate)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.providesSuggestions?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.requestSuggestions?4(searchTerm)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.searchMethod?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.searchParameters?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.searchUrl?4(searchTerm)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.searchUrlTemplate?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.setDescription?4(description)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.setImage?4(image)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.setImageUrl?4(imageUrl)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.setImageUrlAndLoad?4(imageUrl)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.setName?4(name)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.setNetworkAccessManager?4(networkAccessManager)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.setSearchMethod?4(method)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.setSearchParameters?4(searchParameters)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.setSearchUrlTemplate?4(searchUrlTemplate)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.setSuggestionsMethod?4(method)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.setSuggestionsParameters?4(suggestionsParameters)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.setSuggestionsUrlTemplate?4(suggestionsUrlTemplate)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.suggestions?7
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.suggestionsMethod?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.suggestionsParameters?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.suggestionsUrl?4(searchTerm)
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine.suggestionsUrlTemplate?4()
-eric6.Helpviewer.OpenSearch.OpenSearchEngine.OpenSearchEngine?1(parent=None)
-eric6.Helpviewer.OpenSearch.OpenSearchEngineAction.OpenSearchEngineAction?1(engine, parent=None)
-eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.OpenSearchEngineModel.columnCount?4(parent=None)
-eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.OpenSearchEngineModel.data?4(index, role)
-eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.OpenSearchEngineModel.flags?4(index)
-eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.OpenSearchEngineModel.headerData?4(section, orientation, role=Qt.DisplayRole)
-eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.OpenSearchEngineModel.removeRows?4(row, count, parent=None)
-eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.OpenSearchEngineModel.rowCount?4(parent=None)
-eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.OpenSearchEngineModel.setData?4(index, value, role=Qt.EditRole)
-eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.OpenSearchEngineModel?1(manager, parent=None)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.addEngine?4(engine)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.allEnginesNames?4()
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.changed?7
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.close?4()
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.convertKeywordSearchToUrl?4(keywordSearch)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.currentEngine?4()
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.currentEngineChanged?7
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.currentEngineName?4()
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.engine?4(name)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.engineExists?4(name)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.engineForKeyword?4(keyword)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.enginesChanged?4()
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.enginesCount?4()
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.enginesDirectory?4()
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.generateEngineFileName?4(engineName)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.keywordsForEngine?4(engine)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.load?4()
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.loadDirectory?4(dirName)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.removeEngine?4(name)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.restoreDefaults?4()
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.save?4()
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.saveDirectory?4(dirName)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.setCurrentEngine?4(engine)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.setCurrentEngineName?4(name)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.setEngineForKeyword?4(keyword, engine)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager.setKeywordsForEngine?4(engine, keywords)
-eric6.Helpviewer.OpenSearch.OpenSearchManager.OpenSearchManager?1(parent=None)
-eric6.Helpviewer.OpenSearch.OpenSearchReader.OpenSearchReader.read?4(device)
-eric6.Helpviewer.OpenSearch.OpenSearchWriter.OpenSearchWriter.write?4(device, engine)
-eric6.Helpviewer.OpenSearch.OpenSearchWriter.OpenSearchWriter?1()
-eric6.Helpviewer.PageScreenDialog.PageScreenDialog.on_buttonBox_clicked?4(button)
-eric6.Helpviewer.PageScreenDialog.PageScreenDialog?1(view, visibleOnly=False, parent=None)
-eric6.Helpviewer.Passwords.LoginForm.LoginForm.isValid?4()
-eric6.Helpviewer.Passwords.LoginForm.LoginForm?1()
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.FORMS?7
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.NEVER?7
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.SEPARATOR?7
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.allSiteNames?4()
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.changed?7
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.clear?4()
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.close?4()
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.fill?4(page)
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.getFileName?4()
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.getLogin?4(url, realm)
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.masterPasswordChanged?4(oldPassword, newPassword)
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.passwordsSaved?7
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.post?4(request, data)
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.reload?4()
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.removePassword?4(site)
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.save?4()
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.setLogin?4(url, realm, username, password)
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.siteInfo?4(site)
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager.sitesCount?4()
-eric6.Helpviewer.Passwords.PasswordManager.PasswordManager?1(parent=None)
-eric6.Helpviewer.Passwords.PasswordModel.PasswordModel.columnCount?4(parent=None)
-eric6.Helpviewer.Passwords.PasswordModel.PasswordModel.data?4(index, role)
-eric6.Helpviewer.Passwords.PasswordModel.PasswordModel.headerData?4(section, orientation, role=Qt.DisplayRole)
-eric6.Helpviewer.Passwords.PasswordModel.PasswordModel.removeRows?4(row, count, parent=None)
-eric6.Helpviewer.Passwords.PasswordModel.PasswordModel.rowCount?4(parent=None)
-eric6.Helpviewer.Passwords.PasswordModel.PasswordModel.setShowPasswords?4(on)
-eric6.Helpviewer.Passwords.PasswordModel.PasswordModel.showPasswords?4()
-eric6.Helpviewer.Passwords.PasswordModel.PasswordModel?1(manager, parent=None)
-eric6.Helpviewer.Passwords.PasswordReader.PasswordReader.read?4(fileNameOrDevice)
-eric6.Helpviewer.Passwords.PasswordReader.PasswordReader?1()
-eric6.Helpviewer.Passwords.PasswordWriter.PasswordWriter.write?4(fileNameOrDevice, logins, forms, nevers)
-eric6.Helpviewer.Passwords.PasswordWriter.PasswordWriter?1()
-eric6.Helpviewer.Passwords.PasswordsDialog.PasswordsDialog.on_passwordsButton_clicked?4()
-eric6.Helpviewer.Passwords.PasswordsDialog.PasswordsDialog?1(parent=None)
-eric6.Helpviewer.PersonalInformationManager.PersonalDataDialog.PersonalDataDialog.storeData?4()
-eric6.Helpviewer.PersonalInformationManager.PersonalDataDialog.PersonalDataDialog?1(parent=None)
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.Address?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.City?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.Country?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.Email?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.FirstName?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.FullName?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.HomePage?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.Invalid?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.LastName?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.Max?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.Mobile?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.Phone?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.Special1?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.Special2?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.Special3?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.Special4?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.State?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.Zip?7
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.connectPage?4(page)
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.createSubMenu?4(menu, view, hitTestResult)
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.showConfigurationDialog?4()
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager.viewKeyPressEvent?4(view, evt)
-eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.PersonalInformationManager?1(parent=None)
-eric6.Helpviewer.QtHelpDocumentationDialog.QtHelpDocumentationDialog.getTabsToClose?4()
-eric6.Helpviewer.QtHelpDocumentationDialog.QtHelpDocumentationDialog.hasChanges?4()
-eric6.Helpviewer.QtHelpDocumentationDialog.QtHelpDocumentationDialog.on_addButton_clicked?4()
-eric6.Helpviewer.QtHelpDocumentationDialog.QtHelpDocumentationDialog.on_addPluginButton_clicked?4()
-eric6.Helpviewer.QtHelpDocumentationDialog.QtHelpDocumentationDialog.on_documentsList_itemSelectionChanged?4()
-eric6.Helpviewer.QtHelpDocumentationDialog.QtHelpDocumentationDialog.on_managePluginButton_clicked?4()
-eric6.Helpviewer.QtHelpDocumentationDialog.QtHelpDocumentationDialog.on_removeButton_clicked?4()
-eric6.Helpviewer.QtHelpDocumentationDialog.QtHelpDocumentationDialog?1(engine, parent)
-eric6.Helpviewer.QtHelpDocumentationSelectionDialog.QtHelpDocumentationSelectionDialog.AddMode?7
-eric6.Helpviewer.QtHelpDocumentationSelectionDialog.QtHelpDocumentationSelectionDialog.ManageMode?7
-eric6.Helpviewer.QtHelpDocumentationSelectionDialog.QtHelpDocumentationSelectionDialog.getData?4()
-eric6.Helpviewer.QtHelpDocumentationSelectionDialog.QtHelpDocumentationSelectionDialog.on_deleteAllButton_clicked?4()
-eric6.Helpviewer.QtHelpDocumentationSelectionDialog.QtHelpDocumentationSelectionDialog.on_deleteButton_clicked?4()
-eric6.Helpviewer.QtHelpDocumentationSelectionDialog.QtHelpDocumentationSelectionDialog.on_deleteCategoryButton_clicked?4()
-eric6.Helpviewer.QtHelpDocumentationSelectionDialog.QtHelpDocumentationSelectionDialog.on_documentationList_itemSelectionChanged?4()
-eric6.Helpviewer.QtHelpDocumentationSelectionDialog.QtHelpDocumentationSelectionDialog?1(helpDocuments, mode, parent=None)
-eric6.Helpviewer.QtHelpFiltersDialog.QtHelpFiltersDialog.on_addButton_clicked?4()
-eric6.Helpviewer.QtHelpFiltersDialog.QtHelpFiltersDialog.on_attributesList_itemChanged?4(item, column)
-eric6.Helpviewer.QtHelpFiltersDialog.QtHelpFiltersDialog.on_attributesList_itemSelectionChanged?4()
-eric6.Helpviewer.QtHelpFiltersDialog.QtHelpFiltersDialog.on_buttonBox_accepted?4()
-eric6.Helpviewer.QtHelpFiltersDialog.QtHelpFiltersDialog.on_filtersList_currentItemChanged?4(current, previous)
-eric6.Helpviewer.QtHelpFiltersDialog.QtHelpFiltersDialog.on_filtersList_itemSelectionChanged?4()
-eric6.Helpviewer.QtHelpFiltersDialog.QtHelpFiltersDialog.on_removeAttributeButton_clicked?4()
-eric6.Helpviewer.QtHelpFiltersDialog.QtHelpFiltersDialog.on_removeButton_clicked?4()
-eric6.Helpviewer.QtHelpFiltersDialog.QtHelpFiltersDialog.on_unusedAttributesButton_clicked?4()
-eric6.Helpviewer.QtHelpFiltersDialog.QtHelpFiltersDialog?1(engine, parent=None)
-eric6.Helpviewer.SearchWidget.SearchWidget.findNext?4()
-eric6.Helpviewer.SearchWidget.SearchWidget.findPrevious?4()
-eric6.Helpviewer.SearchWidget.SearchWidget.keyPressEvent?4(event)
-eric6.Helpviewer.SearchWidget.SearchWidget.on_closeButton_clicked?4()
-eric6.Helpviewer.SearchWidget.SearchWidget.on_findNextButton_clicked?4()
-eric6.Helpviewer.SearchWidget.SearchWidget.on_findPrevButton_clicked?4()
-eric6.Helpviewer.SearchWidget.SearchWidget.on_findtextCombo_editTextChanged?4(txt)
-eric6.Helpviewer.SearchWidget.SearchWidget.on_highlightAllCheckBox_toggled?4(checked)
-eric6.Helpviewer.SearchWidget.SearchWidget.showFind?4()
-eric6.Helpviewer.SearchWidget.SearchWidget?1(mainWindow, parent=None)
-eric6.Helpviewer.SiteInfo.SiteInfoDialog.SiteInfoDialog.nokStyle?7
-eric6.Helpviewer.SiteInfo.SiteInfoDialog.SiteInfoDialog.okStyle?7
-eric6.Helpviewer.SiteInfo.SiteInfoDialog.SiteInfoDialog.on_databasesList_currentItemChanged?4(current, previous)
-eric6.Helpviewer.SiteInfo.SiteInfoDialog.SiteInfoDialog.on_imagesTree_currentItemChanged?4(current, previous)
-eric6.Helpviewer.SiteInfo.SiteInfoDialog.SiteInfoDialog.on_securityDetailsButton_clicked?4()
-eric6.Helpviewer.SiteInfo.SiteInfoDialog.SiteInfoDialog?1(browser, parent=None)
-eric6.Helpviewer.SpeedDial.Page.Page?1(url="", title="", broken=False)
-eric6.Helpviewer.SpeedDial.PageThumbnailer.PageThumbnailer.loadTitle?4()
-eric6.Helpviewer.SpeedDial.PageThumbnailer.PageThumbnailer.setLoadTitle?4(load)
-eric6.Helpviewer.SpeedDial.PageThumbnailer.PageThumbnailer.setSize?4(size)
-eric6.Helpviewer.SpeedDial.PageThumbnailer.PageThumbnailer.setUrl?4(url)
-eric6.Helpviewer.SpeedDial.PageThumbnailer.PageThumbnailer.start?4()
-eric6.Helpviewer.SpeedDial.PageThumbnailer.PageThumbnailer.thumbnailCreated?7
-eric6.Helpviewer.SpeedDial.PageThumbnailer.PageThumbnailer.title?4()
-eric6.Helpviewer.SpeedDial.PageThumbnailer.PageThumbnailer.url?4()
-eric6.Helpviewer.SpeedDial.PageThumbnailer.PageThumbnailer?1(parent=None)
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.addPage?4(url, title)
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.addWebFrame?4(frame)
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.changed?4(allPages)
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.close?4()
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.getFileName?4()
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.initialScript?4()
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.loadThumbnail?4(url, loadTitle=False)
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.pageForUrl?4(url)
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.pagesChanged?7
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.pagesInRow?4()
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.reload?4()
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.removeImageForUrl?4(url)
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.removePage?4(url)
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.resetDials?4()
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.save?4()
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.sdSize?4()
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.setPagesInRow?4(count)
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.setSdSize?4(size)
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.speedDialSaved?7
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.unescapeTitle?4(title)
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.urlForShortcut?4(key)
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial.urlFromUserInput?4(url)
-eric6.Helpviewer.SpeedDial.SpeedDial.SpeedDial?1(parent=None)
-eric6.Helpviewer.SpeedDial.SpeedDialReader.SpeedDialReader.read?4(fileNameOrDevice)
-eric6.Helpviewer.SpeedDial.SpeedDialReader.SpeedDialReader?1()
-eric6.Helpviewer.SpeedDial.SpeedDialWriter.SpeedDialWriter.write?4(fileNameOrDevice, pages, pagesPerRow, speedDialSize)
-eric6.Helpviewer.SpeedDial.SpeedDialWriter.SpeedDialWriter?1()
-eric6.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.initialLoadAndCheck?4(forceUpload)
-eric6.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.shutdown?4()
-eric6.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncBookmarks?4()
-eric6.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncError?7
-eric6.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncFinished?7
-eric6.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncHistory?4()
-eric6.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncMessage?7
-eric6.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncPasswords?4()
-eric6.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncSpeedDial?4()
-eric6.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncStatus?7
-eric6.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler.syncUserAgents?4()
-eric6.Helpviewer.Sync.DirectorySyncHandler.DirectorySyncHandler?1(parent=None)
-eric6.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler.initialLoadAndCheck?4(forceUpload)
-eric6.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler.shutdown?4()
-eric6.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler.syncBookmarks?4()
-eric6.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler.syncError?7
-eric6.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler.syncFinished?7
-eric6.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler.syncHistory?4()
-eric6.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler.syncMessage?7
-eric6.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler.syncPasswords?4()
-eric6.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler.syncSpeedDial?4()
-eric6.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler.syncStatus?7
-eric6.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler.syncUserAgents?4()
-eric6.Helpviewer.Sync.FtpSyncHandler.FtpSyncHandler?1(parent=None)
-eric6.Helpviewer.Sync.SyncAssistantDialog.SyncAssistantDialog?1(parent=None)
-eric6.Helpviewer.Sync.SyncCheckPage.SyncCheckPage.initializePage?4()
-eric6.Helpviewer.Sync.SyncCheckPage.SyncCheckPage?1(parent=None)
-eric6.Helpviewer.Sync.SyncDataPage.SyncDataPage.nextId?4()
-eric6.Helpviewer.Sync.SyncDataPage.SyncDataPage?1(parent=None)
-eric6.Helpviewer.Sync.SyncDirectorySettingsPage.SyncDirectorySettingsPage.isComplete?4()
-eric6.Helpviewer.Sync.SyncDirectorySettingsPage.SyncDirectorySettingsPage.nextId?4()
-eric6.Helpviewer.Sync.SyncDirectorySettingsPage.SyncDirectorySettingsPage?1(parent=None)
-eric6.Helpviewer.Sync.SyncEncryptionPage.SyncEncryptionPage.isComplete?4()
-eric6.Helpviewer.Sync.SyncEncryptionPage.SyncEncryptionPage.nextId?4()
-eric6.Helpviewer.Sync.SyncEncryptionPage.SyncEncryptionPage.on_encryptionGroupBox_toggled?4(on)
-eric6.Helpviewer.Sync.SyncEncryptionPage.SyncEncryptionPage.on_encryptionKeyAgainEdit_textChanged?4(txt)
-eric6.Helpviewer.Sync.SyncEncryptionPage.SyncEncryptionPage.on_encryptionKeyEdit_textChanged?4(txt)
-eric6.Helpviewer.Sync.SyncEncryptionPage.SyncEncryptionPage.on_reencryptCheckBox_toggled?4(on)
-eric6.Helpviewer.Sync.SyncEncryptionPage.SyncEncryptionPage?1(parent=None)
-eric6.Helpviewer.Sync.SyncFtpSettingsPage.SyncFtpSettingsPage.isComplete?4()
-eric6.Helpviewer.Sync.SyncFtpSettingsPage.SyncFtpSettingsPage.nextId?4()
-eric6.Helpviewer.Sync.SyncFtpSettingsPage.SyncFtpSettingsPage?1(parent=None)
-eric6.Helpviewer.Sync.SyncGlobals.PageCheck?7
-eric6.Helpviewer.Sync.SyncGlobals.PageData?7
-eric6.Helpviewer.Sync.SyncGlobals.PageDirectorySettings?7
-eric6.Helpviewer.Sync.SyncGlobals.PageEncryption?7
-eric6.Helpviewer.Sync.SyncGlobals.PageFTPSettings?7
-eric6.Helpviewer.Sync.SyncGlobals.PageType?7
-eric6.Helpviewer.Sync.SyncGlobals.SyncTypeDirectory?7
-eric6.Helpviewer.Sync.SyncGlobals.SyncTypeFtp?7
-eric6.Helpviewer.Sync.SyncGlobals.SyncTypeNone?7
-eric6.Helpviewer.Sync.SyncHandler.SyncHandler.initialLoadAndCheck?4(forceUpload)
-eric6.Helpviewer.Sync.SyncHandler.SyncHandler.readFile?4(fileName, type_)
-eric6.Helpviewer.Sync.SyncHandler.SyncHandler.shutdown?4()
-eric6.Helpviewer.Sync.SyncHandler.SyncHandler.syncBookmarks?4()
-eric6.Helpviewer.Sync.SyncHandler.SyncHandler.syncError?7
-eric6.Helpviewer.Sync.SyncHandler.SyncHandler.syncFinished?7
-eric6.Helpviewer.Sync.SyncHandler.SyncHandler.syncHistory?4()
-eric6.Helpviewer.Sync.SyncHandler.SyncHandler.syncMessage?7
-eric6.Helpviewer.Sync.SyncHandler.SyncHandler.syncPasswords?4()
-eric6.Helpviewer.Sync.SyncHandler.SyncHandler.syncSpeedDial?4()
-eric6.Helpviewer.Sync.SyncHandler.SyncHandler.syncStatus?7
-eric6.Helpviewer.Sync.SyncHandler.SyncHandler.syncUserAgents?4()
-eric6.Helpviewer.Sync.SyncHandler.SyncHandler.writeFile?4(data, fileName, type_, timestamp=0)
-eric6.Helpviewer.Sync.SyncHandler.SyncHandler?1(parent=None)
-eric6.Helpviewer.Sync.SyncHostTypePage.SyncHostTypePage.nextId?4()
-eric6.Helpviewer.Sync.SyncHostTypePage.SyncHostTypePage?1(parent=None)
-eric6.Helpviewer.Sync.SyncManager.SyncManager.close?4()
-eric6.Helpviewer.Sync.SyncManager.SyncManager.handler?4()
-eric6.Helpviewer.Sync.SyncManager.SyncManager.loadSettings?4(forceUpload=False)
-eric6.Helpviewer.Sync.SyncManager.SyncManager.showSyncDialog?4()
-eric6.Helpviewer.Sync.SyncManager.SyncManager.syncEnabled?4()
-eric6.Helpviewer.Sync.SyncManager.SyncManager.syncError?7
-eric6.Helpviewer.Sync.SyncManager.SyncManager.syncFinished?7
-eric6.Helpviewer.Sync.SyncManager.SyncManager.syncMessage?7
-eric6.Helpviewer.Sync.SyncManager.SyncManager.syncStatus?7
-eric6.Helpviewer.Sync.SyncManager.SyncManager?1(parent=None)
-eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.BookmarkActionSelectionDialog.AddBookmark?7
-eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.BookmarkActionSelectionDialog.AddSpeeddial?7
-eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.BookmarkActionSelectionDialog.EditBookmark?7
-eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.BookmarkActionSelectionDialog.RemoveSpeeddial?7
-eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.BookmarkActionSelectionDialog.Undefined?7
-eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.BookmarkActionSelectionDialog.getAction?4()
-eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.BookmarkActionSelectionDialog.on_bookmarkPushButton_clicked?4()
-eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.BookmarkActionSelectionDialog.on_speeddialPushButton_clicked?4()
-eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.BookmarkActionSelectionDialog?1(url, parent=None)
-eric6.Helpviewer.UrlBar.BookmarkInfoDialog.BookmarkInfoDialog.accept?4()
-eric6.Helpviewer.UrlBar.BookmarkInfoDialog.BookmarkInfoDialog.on_removeButton_clicked?4()
-eric6.Helpviewer.UrlBar.BookmarkInfoDialog.BookmarkInfoDialog?1(bookmark, parent=None)
-eric6.Helpviewer.UrlBar.FavIconLabel.FavIconLabel.mouseMoveEvent?4(evt)
-eric6.Helpviewer.UrlBar.FavIconLabel.FavIconLabel.mousePressEvent?4(evt)
-eric6.Helpviewer.UrlBar.FavIconLabel.FavIconLabel.setBrowser?4(browser)
-eric6.Helpviewer.UrlBar.FavIconLabel.FavIconLabel?1(parent=None)
-eric6.Helpviewer.UrlBar.SslLabel.SslLabel.clicked?7
-eric6.Helpviewer.UrlBar.SslLabel.SslLabel.mouseDoubleClickEvent?4(evt)
-eric6.Helpviewer.UrlBar.SslLabel.SslLabel.mouseReleaseEvent?4(evt)
-eric6.Helpviewer.UrlBar.SslLabel.SslLabel.nokStyle?7
-eric6.Helpviewer.UrlBar.SslLabel.SslLabel.okStyle?7
-eric6.Helpviewer.UrlBar.SslLabel.SslLabel.setValidity?4(valid)
-eric6.Helpviewer.UrlBar.SslLabel.SslLabel?1(parent=None)
-eric6.Helpviewer.UrlBar.StackedUrlBar.StackedUrlBar.currentUrlBar?4()
-eric6.Helpviewer.UrlBar.StackedUrlBar.StackedUrlBar.moveBar?4(from_, to_)
-eric6.Helpviewer.UrlBar.StackedUrlBar.StackedUrlBar.urlBar?4(index)
-eric6.Helpviewer.UrlBar.StackedUrlBar.StackedUrlBar.urlBars?4()
-eric6.Helpviewer.UrlBar.StackedUrlBar.StackedUrlBar?1(parent=None)
-eric6.Helpviewer.UrlBar.UrlBar.UrlBar.browser?4()
-eric6.Helpviewer.UrlBar.UrlBar.UrlBar.dragEnterEvent?4(evt)
-eric6.Helpviewer.UrlBar.UrlBar.UrlBar.dropEvent?4(evt)
-eric6.Helpviewer.UrlBar.UrlBar.UrlBar.focusOutEvent?4(evt)
-eric6.Helpviewer.UrlBar.UrlBar.UrlBar.keyPressEvent?4(evt)
-eric6.Helpviewer.UrlBar.UrlBar.UrlBar.mouseDoubleClickEvent?4(evt)
-eric6.Helpviewer.UrlBar.UrlBar.UrlBar.mousePressEvent?4(evt)
-eric6.Helpviewer.UrlBar.UrlBar.UrlBar.paintEvent?4(evt)
-eric6.Helpviewer.UrlBar.UrlBar.UrlBar.preferencesChanged?4()
-eric6.Helpviewer.UrlBar.UrlBar.UrlBar.setBrowser?4(browser)
-eric6.Helpviewer.UrlBar.UrlBar.UrlBar.setPrivateMode?4(on)
-eric6.Helpviewer.UrlBar.UrlBar.UrlBar?1(mainWindow, parent=None)
-eric6.Helpviewer.UserAgent.UserAgentDefaults_rc.qCleanupResources?4()
-eric6.Helpviewer.UserAgent.UserAgentDefaults_rc.qInitResources?4()
-eric6.Helpviewer.UserAgent.UserAgentDefaults_rc.qt_resource_data?7
-eric6.Helpviewer.UserAgent.UserAgentDefaults_rc.qt_resource_name?7
-eric6.Helpviewer.UserAgent.UserAgentDefaults_rc.qt_resource_struct_v1?7
-eric6.Helpviewer.UserAgent.UserAgentDefaults_rc.qt_resource_struct_v2?7
-eric6.Helpviewer.UserAgent.UserAgentDefaults_rc.qt_version?7
-eric6.Helpviewer.UserAgent.UserAgentManager.UserAgentManager.allHostNames?4()
-eric6.Helpviewer.UserAgent.UserAgentManager.UserAgentManager.changed?7
-eric6.Helpviewer.UserAgent.UserAgentManager.UserAgentManager.close?4()
-eric6.Helpviewer.UserAgent.UserAgentManager.UserAgentManager.getFileName?4()
-eric6.Helpviewer.UserAgent.UserAgentManager.UserAgentManager.hostsCount?4()
-eric6.Helpviewer.UserAgent.UserAgentManager.UserAgentManager.reload?4()
-eric6.Helpviewer.UserAgent.UserAgentManager.UserAgentManager.removeUserAgent?4(host)
-eric6.Helpviewer.UserAgent.UserAgentManager.UserAgentManager.save?4()
-eric6.Helpviewer.UserAgent.UserAgentManager.UserAgentManager.setUserAgent?4(host, agent)
-eric6.Helpviewer.UserAgent.UserAgentManager.UserAgentManager.setUserAgentForUrl?4(url, agent)
-eric6.Helpviewer.UserAgent.UserAgentManager.UserAgentManager.userAgent?4(host)
-eric6.Helpviewer.UserAgent.UserAgentManager.UserAgentManager.userAgentForUrl?4(url)
-eric6.Helpviewer.UserAgent.UserAgentManager.UserAgentManager.userAgentSettingsSaved?7
-eric6.Helpviewer.UserAgent.UserAgentManager.UserAgentManager?1(parent=None)
-eric6.Helpviewer.UserAgent.UserAgentMenu.UserAgentMenu?1(title, url=None, parent=None)
-eric6.Helpviewer.UserAgent.UserAgentModel.UserAgentModel.columnCount?4(parent=None)
-eric6.Helpviewer.UserAgent.UserAgentModel.UserAgentModel.data?4(index, role)
-eric6.Helpviewer.UserAgent.UserAgentModel.UserAgentModel.headerData?4(section, orientation, role=Qt.DisplayRole)
-eric6.Helpviewer.UserAgent.UserAgentModel.UserAgentModel.removeRows?4(row, count, parent=None)
-eric6.Helpviewer.UserAgent.UserAgentModel.UserAgentModel.rowCount?4(parent=None)
-eric6.Helpviewer.UserAgent.UserAgentModel.UserAgentModel?1(manager, parent=None)
-eric6.Helpviewer.UserAgent.UserAgentReader.UserAgentReader.read?4(fileNameOrDevice)
-eric6.Helpviewer.UserAgent.UserAgentReader.UserAgentReader?1()
-eric6.Helpviewer.UserAgent.UserAgentWriter.UserAgentWriter.write?4(fileNameOrDevice, agents)
-eric6.Helpviewer.UserAgent.UserAgentWriter.UserAgentWriter?1()
-eric6.Helpviewer.UserAgent.UserAgentsDialog.UserAgentsDialog?1(parent=None)
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.GetDomainReportPattern?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.GetFileReportPattern?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.GetIpAddressReportPattern?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.GetUrlReportPattern?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.ScanUrlPattern?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.ServiceCode_InvalidKey?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.ServiceCode_InvalidPrivilege?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.ServiceCode_RateLimitExceeded?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.ServiceResult_ItemNotPresent?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.ServiceResult_ItemPresent?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.ServiceResult_ItemQueued?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.TestServiceKeyScanID?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.checkServiceKeyFinished?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.checkServiceKeyValidity?4(key, protocol="")
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.close?4()
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.fileScanReport?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.getDomainReport?4(domain)
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.getIpAddressReport?4(ipAddress)
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.preferencesChanged?4()
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.submitUrl?4(url)
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.submitUrlError?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI.urlScanReport?7
-eric6.Helpviewer.VirusTotal.VirusTotalApi.VirusTotalAPI?1(parent=None)
-eric6.Helpviewer.VirusTotal.VirusTotalDomainReportDialog.VirusTotalDomainReportDialog.on_whoisButton_clicked?4()
-eric6.Helpviewer.VirusTotal.VirusTotalDomainReportDialog.VirusTotalDomainReportDialog?1(domain, resolutions, urls, subdomains, bdCategory, tmCategory, wtsCategory, whois, parent=None)
-eric6.Helpviewer.VirusTotal.VirusTotalIpReportDialog.VirusTotalIpReportDialog?1(ip, owner, resolutions, urls, parent=None)
-eric6.Helpviewer.VirusTotal.VirusTotalWhoisDialog.VirusTotalWhoisDialog?1(domain, whois, parent=None)
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.ClickToFlash._acceptedArgNames?8
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.ClickToFlash._acceptedArgValues?8
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.ClickToFlash._acceptedUrl?8
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.ClickToFlash.isAlreadyAccepted?4(url, argumentNames, argumentValues)
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.ClickToFlash.on_loadFlashButton_clicked?4()
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.ClickToFlash.swapping?4()
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.ClickToFlash?1(plugin, mimeType, url, argumentNames, argumentValues, parent=None)
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.ClickToFlashPlugin.ClickToFlashData?7
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.ClickToFlashPlugin.addToWhitelist?4(host)
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.ClickToFlashPlugin.configure?4()
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.ClickToFlashPlugin.create?4(mimeType, url, argumentNames, argumentValues)
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.ClickToFlashPlugin.getIconName?4(mimeType)
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.ClickToFlashPlugin.isAnonymous?4()
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.ClickToFlashPlugin.metaPlugin?4()
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.ClickToFlashPlugin.onWhitelist?4(host)
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.ClickToFlashPlugin.removeFromWhitelist?4(host)
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.ClickToFlashPlugin?1()
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog.ClickToFlashWhitelistDialog.getWhitelist?4()
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog.ClickToFlashWhitelistDialog.on_addButton_clicked?4()
-eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog.ClickToFlashWhitelistDialog?1(whitelist, parent=None)
-eric6.Helpviewer.WebPlugins.WebPluginFactory.WebPluginFactory.create?4(mimeType, url, argumentNames, argumentValues)
-eric6.Helpviewer.WebPlugins.WebPluginFactory.WebPluginFactory.plugin?4(name)
-eric6.Helpviewer.WebPlugins.WebPluginFactory.WebPluginFactory.plugins?4()
-eric6.Helpviewer.WebPlugins.WebPluginFactory.WebPluginFactory.refreshPlugins?4()
-eric6.Helpviewer.WebPlugins.WebPluginFactory.WebPluginFactory?1(parent=None)
-eric6.Helpviewer.WebPlugins.WebPluginInterface.WebPluginInterface.configure?4()
-eric6.Helpviewer.WebPlugins.WebPluginInterface.WebPluginInterface.create?4(mimeType, url, argumentNames, argumentValues)
-eric6.Helpviewer.WebPlugins.WebPluginInterface.WebPluginInterface.isAnonymous?4()
-eric6.Helpviewer.WebPlugins.WebPluginInterface.WebPluginInterface.metaPlugin?4()
-eric6.Helpviewer.ZoomManager.ZoomManager.ZoomManager.allSiteNames?4()
-eric6.Helpviewer.ZoomManager.ZoomManager.ZoomManager.changed?7
-eric6.Helpviewer.ZoomManager.ZoomManager.ZoomManager.clear?4()
-eric6.Helpviewer.ZoomManager.ZoomManager.ZoomManager.close?4()
-eric6.Helpviewer.ZoomManager.ZoomManager.ZoomManager.load?4()
-eric6.Helpviewer.ZoomManager.ZoomManager.ZoomManager.removeZoomValue?4(site)
-eric6.Helpviewer.ZoomManager.ZoomManager.ZoomManager.save?4()
-eric6.Helpviewer.ZoomManager.ZoomManager.ZoomManager.setZoomValue?4(url, zoomValue)
-eric6.Helpviewer.ZoomManager.ZoomManager.ZoomManager.siteInfo?4(site)
-eric6.Helpviewer.ZoomManager.ZoomManager.ZoomManager.sitesCount?4()
-eric6.Helpviewer.ZoomManager.ZoomManager.ZoomManager.zoomValue?4(url)
-eric6.Helpviewer.ZoomManager.ZoomManager.ZoomManager?1(parent=None)
-eric6.Helpviewer.ZoomManager.ZoomValuesDialog.ZoomValuesDialog?1(parent=None)
-eric6.Helpviewer.ZoomManager.ZoomValuesModel.ZoomValuesModel.columnCount?4(parent=None)
-eric6.Helpviewer.ZoomManager.ZoomValuesModel.ZoomValuesModel.data?4(index, role)
-eric6.Helpviewer.ZoomManager.ZoomValuesModel.ZoomValuesModel.headerData?4(section, orientation, role=Qt.DisplayRole)
-eric6.Helpviewer.ZoomManager.ZoomValuesModel.ZoomValuesModel.removeRows?4(row, count, parent=None)
-eric6.Helpviewer.ZoomManager.ZoomValuesModel.ZoomValuesModel.rowCount?4(parent=None)
-eric6.Helpviewer.ZoomManager.ZoomValuesModel.ZoomValuesModel?1(manager, parent=None)
 eric6.HexEdit.HexEditChunks.HexEditChunk?1()
 eric6.HexEdit.HexEditChunks.HexEditChunks.BUFFER_SIZE?7
 eric6.HexEdit.HexEditChunks.HexEditChunks.CHUNK_SIZE?7
@@ -4303,7 +2787,6 @@
 eric6.PluginManager.PluginExceptions.PluginModuleFormatError?1(name, missing)
 eric6.PluginManager.PluginExceptions.PluginModulesError?1()
 eric6.PluginManager.PluginExceptions.PluginPathError?1(msg=None)
-eric6.PluginManager.PluginExceptions.PluginPy2IncompatibleError?1(name)
 eric6.PluginManager.PluginInfoDialog.PluginInfoDialog.on_pluginList_itemActivated?4(item, column)
 eric6.PluginManager.PluginInfoDialog.PluginInfoDialog?1(pluginManager, parent=None)
 eric6.PluginManager.PluginInstallDialog.PluginInstallDialog.restartNeeded?4()
@@ -4829,7 +3312,6 @@
 eric6.Plugins.PluginAbout.name?7
 eric6.Plugins.PluginAbout.packageName?7
 eric6.Plugins.PluginAbout.pyqtApi?7
-eric6.Plugins.PluginAbout.python2Compatible?7
 eric6.Plugins.PluginAbout.shortDescription?7
 eric6.Plugins.PluginAbout.version?7
 eric6.Plugins.PluginCodeStyleChecker.CodeStyleCheckerPlugin.activate?4()
@@ -4853,7 +3335,6 @@
 eric6.Plugins.PluginCodeStyleChecker.name?7
 eric6.Plugins.PluginCodeStyleChecker.packageName?7
 eric6.Plugins.PluginCodeStyleChecker.pyqtApi?7
-eric6.Plugins.PluginCodeStyleChecker.python2Compatible?7
 eric6.Plugins.PluginCodeStyleChecker.shortDescription?7
 eric6.Plugins.PluginCodeStyleChecker.version?7
 eric6.Plugins.PluginEricapi.EricapiPlugin.activate?4()
@@ -4869,7 +3350,6 @@
 eric6.Plugins.PluginEricapi.name?7
 eric6.Plugins.PluginEricapi.packageName?7
 eric6.Plugins.PluginEricapi.pyqtApi?7
-eric6.Plugins.PluginEricapi.python2Compatible?7
 eric6.Plugins.PluginEricapi.shortDescription?7
 eric6.Plugins.PluginEricapi.version?7
 eric6.Plugins.PluginEricdoc.EricdocPlugin.activate?4()
@@ -4885,7 +3365,6 @@
 eric6.Plugins.PluginEricdoc.name?7
 eric6.Plugins.PluginEricdoc.packageName?7
 eric6.Plugins.PluginEricdoc.pyqtApi?7
-eric6.Plugins.PluginEricdoc.python2Compatible?7
 eric6.Plugins.PluginEricdoc.shortDescription?7
 eric6.Plugins.PluginEricdoc.version?7
 eric6.Plugins.PluginSyntaxChecker.SyntaxCheckerPlugin.activate?4()
@@ -4900,7 +3379,6 @@
 eric6.Plugins.PluginSyntaxChecker.name?7
 eric6.Plugins.PluginSyntaxChecker.packageName?7
 eric6.Plugins.PluginSyntaxChecker.pyqtApi?7
-eric6.Plugins.PluginSyntaxChecker.python2Compatible?7
 eric6.Plugins.PluginSyntaxChecker.shortDescription?7
 eric6.Plugins.PluginSyntaxChecker.version?7
 eric6.Plugins.PluginTabnanny.TabnannyPlugin.activate?4()
@@ -4924,7 +3402,6 @@
 eric6.Plugins.PluginTabnanny.name?7
 eric6.Plugins.PluginTabnanny.packageName?7
 eric6.Plugins.PluginTabnanny.pyqtApi?7
-eric6.Plugins.PluginTabnanny.python2Compatible?7
 eric6.Plugins.PluginTabnanny.shortDescription?7
 eric6.Plugins.PluginTabnanny.version?7
 eric6.Plugins.PluginTranslator.TranslatorPlugin.PreferencesKey?7
@@ -4948,7 +3425,6 @@
 eric6.Plugins.PluginTranslator.packageName?7
 eric6.Plugins.PluginTranslator.prepareUninstall?4()
 eric6.Plugins.PluginTranslator.pyqtApi?7
-eric6.Plugins.PluginTranslator.python2Compatible?7
 eric6.Plugins.PluginTranslator.shortDescription?7
 eric6.Plugins.PluginTranslator.translatorPluginObject?7
 eric6.Plugins.PluginTranslator.version?7
@@ -4982,7 +3458,6 @@
 eric6.Plugins.PluginVcsGit.pluginTypename?7
 eric6.Plugins.PluginVcsGit.prepareUninstall?4()
 eric6.Plugins.PluginVcsGit.pyqtApi?7
-eric6.Plugins.PluginVcsGit.python2Compatible?7
 eric6.Plugins.PluginVcsGit.shortDescription?7
 eric6.Plugins.PluginVcsGit.version?7
 eric6.Plugins.PluginVcsMercurial.VcsMercurialPlugin.MercurialDefaults?7
@@ -5016,7 +3491,6 @@
 eric6.Plugins.PluginVcsMercurial.pluginTypename?7
 eric6.Plugins.PluginVcsMercurial.prepareUninstall?4()
 eric6.Plugins.PluginVcsMercurial.pyqtApi?7
-eric6.Plugins.PluginVcsMercurial.python2Compatible?7
 eric6.Plugins.PluginVcsMercurial.shortDescription?7
 eric6.Plugins.PluginVcsMercurial.version?7
 eric6.Plugins.PluginVcsPySvn.VcsPySvnPlugin.activate?4()
@@ -5047,7 +3521,6 @@
 eric6.Plugins.PluginVcsPySvn.pluginTypename?7
 eric6.Plugins.PluginVcsPySvn.prepareUninstall?4()
 eric6.Plugins.PluginVcsPySvn.pyqtApi?7
-eric6.Plugins.PluginVcsPySvn.python2Compatible?7
 eric6.Plugins.PluginVcsPySvn.shortDescription?7
 eric6.Plugins.PluginVcsPySvn.subversionCfgPluginObject?7
 eric6.Plugins.PluginVcsPySvn.version?7
@@ -5079,7 +3552,6 @@
 eric6.Plugins.PluginVcsSubversion.pluginTypename?7
 eric6.Plugins.PluginVcsSubversion.prepareUninstall?4()
 eric6.Plugins.PluginVcsSubversion.pyqtApi?7
-eric6.Plugins.PluginVcsSubversion.python2Compatible?7
 eric6.Plugins.PluginVcsSubversion.shortDescription?7
 eric6.Plugins.PluginVcsSubversion.subversionCfgPluginObject?7
 eric6.Plugins.PluginVcsSubversion.version?7
@@ -5099,7 +3571,6 @@
 eric6.Plugins.PluginVmListspace.pluginTypename?7
 eric6.Plugins.PluginVmListspace.previewPix?4()
 eric6.Plugins.PluginVmListspace.pyqtApi?7
-eric6.Plugins.PluginVmListspace.python2Compatible?7
 eric6.Plugins.PluginVmListspace.shortDescription?7
 eric6.Plugins.PluginVmListspace.version?7
 eric6.Plugins.PluginVmTabview.VmTabviewPlugin.activate?4()
@@ -5118,7 +3589,6 @@
 eric6.Plugins.PluginVmTabview.pluginTypename?7
 eric6.Plugins.PluginVmTabview.previewPix?4()
 eric6.Plugins.PluginVmTabview.pyqtApi?7
-eric6.Plugins.PluginVmTabview.python2Compatible?7
 eric6.Plugins.PluginVmTabview.shortDescription?7
 eric6.Plugins.PluginVmTabview.version?7
 eric6.Plugins.PluginWizardDotDesktop.DotDesktopWizard.activate?4()
@@ -5134,7 +3604,6 @@
 eric6.Plugins.PluginWizardDotDesktop.needsRestart?7
 eric6.Plugins.PluginWizardDotDesktop.packageName?7
 eric6.Plugins.PluginWizardDotDesktop.pyqtApi?7
-eric6.Plugins.PluginWizardDotDesktop.python2Compatible?7
 eric6.Plugins.PluginWizardDotDesktop.shortDescription?7
 eric6.Plugins.PluginWizardDotDesktop.version?7
 eric6.Plugins.PluginWizardE5MessageBox.E5MessageBoxWizard.activate?4()
@@ -5149,7 +3618,6 @@
 eric6.Plugins.PluginWizardE5MessageBox.name?7
 eric6.Plugins.PluginWizardE5MessageBox.packageName?7
 eric6.Plugins.PluginWizardE5MessageBox.pyqtApi?7
-eric6.Plugins.PluginWizardE5MessageBox.python2Compatible?7
 eric6.Plugins.PluginWizardE5MessageBox.shortDescription?7
 eric6.Plugins.PluginWizardE5MessageBox.version?7
 eric6.Plugins.PluginWizardEricPlugin.WizardEricPluginWizard.activate?4()
@@ -5165,7 +3633,6 @@
 eric6.Plugins.PluginWizardEricPlugin.needsRestart?7
 eric6.Plugins.PluginWizardEricPlugin.packageName?7
 eric6.Plugins.PluginWizardEricPlugin.pyqtApi?7
-eric6.Plugins.PluginWizardEricPlugin.python2Compatible?7
 eric6.Plugins.PluginWizardEricPlugin.shortDescription?7
 eric6.Plugins.PluginWizardEricPlugin.version?7
 eric6.Plugins.PluginWizardPyRegExp.PyRegExpWizard.activate?4()
@@ -5180,7 +3647,6 @@
 eric6.Plugins.PluginWizardPyRegExp.name?7
 eric6.Plugins.PluginWizardPyRegExp.packageName?7
 eric6.Plugins.PluginWizardPyRegExp.pyqtApi?7
-eric6.Plugins.PluginWizardPyRegExp.python2Compatible?7
 eric6.Plugins.PluginWizardPyRegExp.shortDescription?7
 eric6.Plugins.PluginWizardPyRegExp.version?7
 eric6.Plugins.PluginWizardQColorDialog.ColorDialogWizard.activate?4()
@@ -5195,7 +3661,6 @@
 eric6.Plugins.PluginWizardQColorDialog.name?7
 eric6.Plugins.PluginWizardQColorDialog.packageName?7
 eric6.Plugins.PluginWizardQColorDialog.pyqtApi?7
-eric6.Plugins.PluginWizardQColorDialog.python2Compatible?7
 eric6.Plugins.PluginWizardQColorDialog.shortDescription?7
 eric6.Plugins.PluginWizardQColorDialog.version?7
 eric6.Plugins.PluginWizardQFileDialog.FileDialogWizard.activate?4()
@@ -5210,7 +3675,6 @@
 eric6.Plugins.PluginWizardQFileDialog.name?7
 eric6.Plugins.PluginWizardQFileDialog.packageName?7
 eric6.Plugins.PluginWizardQFileDialog.pyqtApi?7
-eric6.Plugins.PluginWizardQFileDialog.python2Compatible?7
 eric6.Plugins.PluginWizardQFileDialog.shortDescription?7
 eric6.Plugins.PluginWizardQFileDialog.version?7
 eric6.Plugins.PluginWizardQFontDialog.FontDialogWizard.activate?4()
@@ -5225,7 +3689,6 @@
 eric6.Plugins.PluginWizardQFontDialog.name?7
 eric6.Plugins.PluginWizardQFontDialog.packageName?7
 eric6.Plugins.PluginWizardQFontDialog.pyqtApi?7
-eric6.Plugins.PluginWizardQFontDialog.python2Compatible?7
 eric6.Plugins.PluginWizardQFontDialog.shortDescription?7
 eric6.Plugins.PluginWizardQFontDialog.version?7
 eric6.Plugins.PluginWizardQInputDialog.InputDialogWizard.activate?4()
@@ -5240,7 +3703,6 @@
 eric6.Plugins.PluginWizardQInputDialog.name?7
 eric6.Plugins.PluginWizardQInputDialog.packageName?7
 eric6.Plugins.PluginWizardQInputDialog.pyqtApi?7
-eric6.Plugins.PluginWizardQInputDialog.python2Compatible?7
 eric6.Plugins.PluginWizardQInputDialog.shortDescription?7
 eric6.Plugins.PluginWizardQInputDialog.version?7
 eric6.Plugins.PluginWizardQMessageBox.MessageBoxWizard.activate?4()
@@ -5255,7 +3717,6 @@
 eric6.Plugins.PluginWizardQMessageBox.name?7
 eric6.Plugins.PluginWizardQMessageBox.packageName?7
 eric6.Plugins.PluginWizardQMessageBox.pyqtApi?7
-eric6.Plugins.PluginWizardQMessageBox.python2Compatible?7
 eric6.Plugins.PluginWizardQMessageBox.shortDescription?7
 eric6.Plugins.PluginWizardQMessageBox.version?7
 eric6.Plugins.PluginWizardQRegExp.QRegExpWizard.activate?4()
@@ -5270,7 +3731,6 @@
 eric6.Plugins.PluginWizardQRegExp.name?7
 eric6.Plugins.PluginWizardQRegExp.packageName?7
 eric6.Plugins.PluginWizardQRegExp.pyqtApi?7
-eric6.Plugins.PluginWizardQRegExp.python2Compatible?7
 eric6.Plugins.PluginWizardQRegExp.shortDescription?7
 eric6.Plugins.PluginWizardQRegExp.version?7
 eric6.Plugins.PluginWizardQRegularExpression.QRegularExpressionWizard.activate?4()
@@ -5285,7 +3745,6 @@
 eric6.Plugins.PluginWizardQRegularExpression.name?7
 eric6.Plugins.PluginWizardQRegularExpression.packageName?7
 eric6.Plugins.PluginWizardQRegularExpression.pyqtApi?7
-eric6.Plugins.PluginWizardQRegularExpression.python2Compatible?7
 eric6.Plugins.PluginWizardQRegularExpression.shortDescription?7
 eric6.Plugins.PluginWizardQRegularExpression.version?7
 eric6.Plugins.PluginWizardSetup.SetupWizard.activate?4()
@@ -5301,7 +3760,6 @@
 eric6.Plugins.PluginWizardSetup.needsRestart?7
 eric6.Plugins.PluginWizardSetup.packageName?7
 eric6.Plugins.PluginWizardSetup.pyqtApi?7
-eric6.Plugins.PluginWizardSetup.python2Compatible?7
 eric6.Plugins.PluginWizardSetup.shortDescription?7
 eric6.Plugins.PluginWizardSetup.version?7
 eric6.Plugins.UiExtensionPlugins.Translator.ConfigurationPage.TranslatorPage.TranslatorPage.on_defaultButton_clicked?4()
@@ -5528,15 +3986,8 @@
 eric6.Plugins.VcsPlugins.vcsGit.GitDiffGenerator.GitDiffGenerator.start?4(fn, versions=None, diffMode="work2repo", stashName="")
 eric6.Plugins.VcsPlugins.vcsGit.GitDiffGenerator.GitDiffGenerator.stopProcesses?4()
 eric6.Plugins.VcsPlugins.vcsGit.GitDiffGenerator.GitDiffGenerator?1(vcs, parent=None)
-eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.E5GenericDiffHighlighter.createRules?4(*rules)
-eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.E5GenericDiffHighlighter.formats?4(line)
-eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.E5GenericDiffHighlighter.generateRules?4()
-eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.E5GenericDiffHighlighter.highlightBlock?4(text)
-eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.E5GenericDiffHighlighter.makeFormat?4(fg=None, bg=None, bold=False)
-eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.E5GenericDiffHighlighter?1(doc)
 eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.GitDiffHighlighter.generateRules?4()
 eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.GitDiffHighlighter?1(doc, whitespace=True)
-eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.TERMINAL?4(pattern)
 eric6.Plugins.VcsPlugins.vcsGit.GitDiffParser.GitDiffParser.HunkHeaderRegexp?7
 eric6.Plugins.VcsPlugins.vcsGit.GitDiffParser.GitDiffParser.createHunkPatch?4(lineIndex)
 eric6.Plugins.VcsPlugins.vcsGit.GitDiffParser.GitDiffParser.createLinesPatch?4(startIndex, endIndex, reverse=False)
@@ -5783,7 +4234,6 @@
 eric6.Plugins.VcsPlugins.vcsGit.GitUserConfigDataDialog.GitUserConfigDataDialog?1(version=(0, 0), parent=None)
 eric6.Plugins.VcsPlugins.vcsGit.GitUtilities.getConfigPath?4()
 eric6.Plugins.VcsPlugins.vcsGit.GitUtilities.prepareProcess?4(proc, language="")
-eric6.Plugins.VcsPlugins.vcsGit.GitUtilities.strToQByteArray?4(txt)
 eric6.Plugins.VcsPlugins.vcsGit.ProjectBrowserHelper.GitProjectBrowserHelper._addVCSMenu?5(mainMenu)
 eric6.Plugins.VcsPlugins.vcsGit.ProjectBrowserHelper.GitProjectBrowserHelper._addVCSMenuBack?5(mainMenu)
 eric6.Plugins.VcsPlugins.vcsGit.ProjectBrowserHelper.GitProjectBrowserHelper._addVCSMenuDir?5(mainMenu)
@@ -7395,7 +5845,6 @@
 eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.PyRegExpWizardWidget.on_nonwordboundButton_clicked?4()
 eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.PyRegExpWizardWidget.on_poslookaheadButton_clicked?4()
 eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.PyRegExpWizardWidget.on_poslookbehindButton_clicked?4()
-eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.PyRegExpWizardWidget.on_py2Button_toggled?4(checked)
 eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.PyRegExpWizardWidget.on_redoButton_clicked?4()
 eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.PyRegExpWizardWidget.on_regexpTextEdit_textChanged?4()
 eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.PyRegExpWizardWidget.on_repeatButton_clicked?4()
@@ -7764,37 +6213,12 @@
 eric6.Preferences.ConfigurationPages.GraphicsPage.GraphicsPage.save?4()
 eric6.Preferences.ConfigurationPages.GraphicsPage.GraphicsPage?1()
 eric6.Preferences.ConfigurationPages.GraphicsPage.create?4(dlg)
-eric6.Preferences.ConfigurationPages.HelpAppearancePage.HelpAppearancePage.on_fixedFontButton_clicked?4()
-eric6.Preferences.ConfigurationPages.HelpAppearancePage.HelpAppearancePage.on_standardFontButton_clicked?4()
-eric6.Preferences.ConfigurationPages.HelpAppearancePage.HelpAppearancePage.save?4()
-eric6.Preferences.ConfigurationPages.HelpAppearancePage.HelpAppearancePage.setMode?4(displayMode)
-eric6.Preferences.ConfigurationPages.HelpAppearancePage.HelpAppearancePage?1()
-eric6.Preferences.ConfigurationPages.HelpAppearancePage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.HelpDocumentationPage.HelpDocumentationPage.save?4()
 eric6.Preferences.ConfigurationPages.HelpDocumentationPage.HelpDocumentationPage?1()
 eric6.Preferences.ConfigurationPages.HelpDocumentationPage.create?4(dlg)
-eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage.HelpFlashCookieManagerPage.save?4()
-eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage.HelpFlashCookieManagerPage?1()
-eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage.create?4(dlg)
-eric6.Preferences.ConfigurationPages.HelpInterfacePage.HelpInterfacePage.save?4()
-eric6.Preferences.ConfigurationPages.HelpInterfacePage.HelpInterfacePage?1()
-eric6.Preferences.ConfigurationPages.HelpInterfacePage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.HelpViewersPage.HelpViewersPage.save?4()
 eric6.Preferences.ConfigurationPages.HelpViewersPage.HelpViewersPage?1()
 eric6.Preferences.ConfigurationPages.HelpViewersPage.create?4(dlg)
-eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.HelpVirusTotalPage.on_testButton_clicked?4()
-eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.HelpVirusTotalPage.on_vtServiceKeyEdit_textChanged?4(txt)
-eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.HelpVirusTotalPage.save?4()
-eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.HelpVirusTotalPage?1()
-eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.create?4(dlg)
-eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.HelpWebBrowserPage.on_defaultHomeButton_clicked?4()
-eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.HelpWebBrowserPage.on_noCacheHostsButton_clicked?4()
-eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.HelpWebBrowserPage.on_refererWhitelistButton_clicked?4()
-eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.HelpWebBrowserPage.on_setCurrentPageButton_clicked?4()
-eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.HelpWebBrowserPage.on_startupCombo_currentIndexChanged?4(index)
-eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.HelpWebBrowserPage.save?4()
-eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.HelpWebBrowserPage?1(configDialog)
-eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.HexEditorPage.HexEditorPage.on_monospacedFontButton_clicked?4()
 eric6.Preferences.ConfigurationPages.HexEditorPage.HexEditorPage.polishPage?4()
 eric6.Preferences.ConfigurationPages.HexEditorPage.HexEditorPage.save?4()
@@ -7877,8 +6301,8 @@
 eric6.Preferences.ConfigurationPages.PythonPage.PythonPage.save?4()
 eric6.Preferences.ConfigurationPages.PythonPage.PythonPage?1()
 eric6.Preferences.ConfigurationPages.PythonPage.create?4(dlg)
-eric6.Preferences.ConfigurationPages.QtPage.QtPage.on_qt4PostfixEdit_textChanged?4(txt)
-eric6.Preferences.ConfigurationPages.QtPage.QtPage.on_qt4PrefixEdit_textChanged?4(txt)
+eric6.Preferences.ConfigurationPages.QtPage.QtPage.on_qtPostfixEdit_textChanged?4(txt)
+eric6.Preferences.ConfigurationPages.QtPage.QtPage.on_qtPrefixEdit_textChanged?4(txt)
 eric6.Preferences.ConfigurationPages.QtPage.QtPage.save?4()
 eric6.Preferences.ConfigurationPages.QtPage.QtPage?1()
 eric6.Preferences.ConfigurationPages.QtPage.create?4(dlg)
@@ -7915,6 +6339,9 @@
 eric6.Preferences.ConfigurationPages.WebBrowserAppearancePage.WebBrowserAppearancePage.setMode?4(displayMode)
 eric6.Preferences.ConfigurationPages.WebBrowserAppearancePage.WebBrowserAppearancePage?1()
 eric6.Preferences.ConfigurationPages.WebBrowserAppearancePage.create?4(dlg)
+eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage.WebBrowserFlashCookieManagerPage.save?4()
+eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage.WebBrowserFlashCookieManagerPage?1()
+eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage.create?4(dlg)
 eric6.Preferences.ConfigurationPages.WebBrowserPage.WebBrowserPage.on_defaultHomeButton_clicked?4()
 eric6.Preferences.ConfigurationPages.WebBrowserPage.WebBrowserPage.on_refererWhitelistButton_clicked?4()
 eric6.Preferences.ConfigurationPages.WebBrowserPage.WebBrowserPage.on_setCurrentPageButton_clicked?4()
@@ -7984,7 +6411,6 @@
 eric6.Preferences.Prefs.iconEditorDefaults?7
 eric6.Preferences.Prefs.iconsDefaults?7
 eric6.Preferences.Prefs.initWebEngineSettingsDefaults?4()
-eric6.Preferences.Prefs.initWebSettingsDefaults?4()
 eric6.Preferences.Prefs.ircDefaults?7
 eric6.Preferences.Prefs.microPythonDefaults?7
 eric6.Preferences.Prefs.multiProjectDefaults?7
@@ -8009,7 +6435,6 @@
 eric6.Preferences.Prefs.vcsDefaults?7
 eric6.Preferences.Prefs.webBrowserDefaults?7
 eric6.Preferences.Prefs.webEngineSettingsIntitialized?7
-eric6.Preferences.Prefs.webSettingsIntitialized?7
 eric6.Preferences.ProgramsDialog.ProgramsDialog.on_buttonBox_clicked?4(button)
 eric6.Preferences.ProgramsDialog.ProgramsDialog.on_programsSearchButton_clicked?4()
 eric6.Preferences.ProgramsDialog.ProgramsDialog.show?4()
@@ -9580,8 +8005,6 @@
 eric6.QScintilla.QsciScintillaCompat.QsciScintillaCompat.hideFindIndicator?4()
 eric6.QScintilla.QsciScintillaCompat.QsciScintillaCompat.indentationGuideView?4()
 eric6.QScintilla.QsciScintillaCompat.QsciScintillaCompat.indicatorDefine?4(indicator, style, color)
-eric6.QScintilla.QsciScintillaCompat.QsciScintillaCompat.inputMethodEvent?4(evt)
-eric6.QScintilla.QsciScintillaCompat.QsciScintillaCompat.inputMethodQuery?4(query)
 eric6.QScintilla.QsciScintillaCompat.QsciScintillaCompat.insert?4(txt)
 eric6.QScintilla.QsciScintillaCompat.QsciScintillaCompat.isModified?4()
 eric6.QScintilla.QsciScintillaCompat.QsciScintillaCompat.lineAt?4(pos)
@@ -9745,7 +8168,6 @@
 eric6.QScintilla.SpellChecker.SpellChecker.ignoreAlways?4(word=None)
 eric6.QScintilla.SpellChecker.SpellChecker.initCheck?4(startPos, endPos)
 eric6.QScintilla.SpellChecker.SpellChecker.isAvailable?4()
-eric6.QScintilla.SpellChecker.SpellChecker.next?4()
 eric6.QScintilla.SpellChecker.SpellChecker.remove?4(word)
 eric6.QScintilla.SpellChecker.SpellChecker.replace?4(replacement)
 eric6.QScintilla.SpellChecker.SpellChecker.replaceAlways?4(replacement)
@@ -9969,10 +8391,6 @@
 eric6.Templates.TemplateViewer.TemplateViewer.save?4()
 eric6.Templates.TemplateViewer.TemplateViewer.writeTemplates?4(filename=None)
 eric6.Templates.TemplateViewer.TemplateViewer?1(parent, viewmanager)
-eric6.Toolbox.PyQt4ImportHook.PyQt4Importer.QComboBox_currentData?4(role=None)
-eric6.Toolbox.PyQt4ImportHook.PyQt4Importer.find_module?4(fullname, path=None)
-eric6.Toolbox.PyQt4ImportHook.PyQt4Importer.load_module?4(fullname)
-eric6.Toolbox.PyQt4ImportHook.PyQt4Importer?1()
 eric6.Toolbox.SingleApplication.SingleApplicationClient.connect?4(timeout=10000)
 eric6.Toolbox.SingleApplication.SingleApplicationClient.disconnect?4()
 eric6.Toolbox.SingleApplication.SingleApplicationClient.errstr?4()
@@ -10030,7 +8448,7 @@
 eric6.Tools.TRSingleApplication.TRSingleApplicationServer.loadTranslation?7
 eric6.Tools.TRSingleApplication.TRSingleApplicationServer?1(parent)
 eric6.Tools.TrayStarter.TrayStarter.preferencesChanged?4()
-eric6.Tools.TrayStarter.TrayStarter?1(usePyQt4, settingsDir)
+eric6.Tools.TrayStarter.TrayStarter?1(settingsDir)
 eric6.Tools.UIPreviewer.UIPreviewer.eventFilter?4(obj, ev)
 eric6.Tools.UIPreviewer.UIPreviewer.show?4()
 eric6.Tools.UIPreviewer.UIPreviewer?1(filename=None, parent=None, name=None)
@@ -10381,7 +8799,6 @@
 eric6.UI.Previewers.PreviewerHTML.PreviewProcessingThread.run?4()
 eric6.UI.Previewers.PreviewerHTML.PreviewProcessingThread?1(parent=None)
 eric6.UI.Previewers.PreviewerHTML.PreviewerHTML.on_jsCheckBox_clicked?4(checked)
-eric6.UI.Previewers.PreviewerHTML.PreviewerHTML.on_previewView_linkClicked?4(url)
 eric6.UI.Previewers.PreviewerHTML.PreviewerHTML.on_previewView_titleChanged?4(title)
 eric6.UI.Previewers.PreviewerHTML.PreviewerHTML.on_ssiCheckBox_clicked?4(checked)
 eric6.UI.Previewers.PreviewerHTML.PreviewerHTML.processEditor?4(editor=None)
@@ -10856,7 +9273,6 @@
 eric6.Utilities.parseOptionString?4(s)
 eric6.Utilities.parseString?4(s, rx)
 eric6.Utilities.prepareQtMacBundle?4(toolname, version, args)
-eric6.Utilities.quote?4(url)
 eric6.Utilities.readEncodedFile?4(filename)
 eric6.Utilities.readEncodedFileWithEncoding?4(filename, encoding)
 eric6.Utilities.readEncodedFileWithHash?4(filename)
@@ -12433,7 +10849,6 @@
 eric6.WebBrowser.SafeBrowsing.SafeBrowsingUrl.SafeBrowsingUrl.permutations?4()
 eric6.WebBrowser.SafeBrowsing.SafeBrowsingUrl.SafeBrowsingUrl.quote?4()
 eric6.WebBrowser.SafeBrowsing.SafeBrowsingUrl.SafeBrowsingUrl?1(url)
-eric6.WebBrowser.SafeBrowsing.SafeBrowsingUtilities.toHex?4(value)
 eric6.WebBrowser.SearchWidget.SearchWidget.findNext?4()
 eric6.WebBrowser.SearchWidget.SearchWidget.findPrevious?4()
 eric6.WebBrowser.SearchWidget.SearchWidget.keyPressEvent?4(event)
@@ -12643,29 +11058,6 @@
 eric6.WebBrowser.Tools.DelayedFileWatcher.DelayedFileWatcher.delayedDirectoryChanged?7
 eric6.WebBrowser.Tools.DelayedFileWatcher.DelayedFileWatcher.delayedFileChanged?7
 eric6.WebBrowser.Tools.DelayedFileWatcher.DelayedFileWatcher?1(paths=None, parent=None)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter.ApplicationDeletesFiles?7
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter.ApplicationSelectsPages?7
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter.SystemDeletesFiles?7
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter.SystemSelectsPages?7
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._copies?5(printer, variant)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._cupsOptions?5(printer)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._deleteFile?5(printer, fileDeletePolicy, variant)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._destination?5(printer, variant)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._doPrintFile?5(printer, fileName, fileDeletePolicy, pageSelectPolicy, pageRange)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._jobname?5(printer, variant)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._mediaPageSize?5(printer)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._mediaPaperSource?5(printer)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._optionCollateCopies?5(printer)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._optionCupsProperties?5(printer)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._optionDoubleSidedPrinting?5(printer)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._optionMedia?5(printer)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._optionPageOrder?5(printer)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._pages?5(printer, pageSelectPolicy, pageRange, useCupsOptions, variant)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter._printArguments?5(printer, fileDeletePolicy, pageSelectPolicy, useCupsOptions, pageRange, variant)
-eric6.WebBrowser.Tools.FilePrinter.FilePrinter?1()
-eric6.WebBrowser.Tools.FilePrinter._FilePrintJobs?8
-eric6.WebBrowser.Tools.FilePrinter.isCupsAvailable?4()
-eric6.WebBrowser.Tools.FilePrinter.printFile?4(printer, fileName, fileDeletePolicy=FilePrinter.ApplicationDeletesFiles, pageSelectPolicy=FilePrinter.ApplicationSelectsPages, pageRange="")
 eric6.WebBrowser.Tools.PrintToPdfDialog.PrintToPdfDialog.getData?4()
 eric6.WebBrowser.Tools.PrintToPdfDialog.PrintToPdfDialog.on_pageLayoutButton_clicked?4()
 eric6.WebBrowser.Tools.PrintToPdfDialog.PrintToPdfDialog?1(filePath, parent=None)
@@ -12919,6 +11311,7 @@
 eric6.WebBrowser.WebBrowserTabWidget.WebBrowserTabWidget.titleChanged?7
 eric6.WebBrowser.WebBrowserTabWidget.WebBrowserTabWidget.urlBarForView?4(view)
 eric6.WebBrowser.WebBrowserTabWidget.WebBrowserTabWidget?1(parent)
+eric6.WebBrowser.WebBrowserTabWidget.isCupsAvailable?4()
 eric6.WebBrowser.WebBrowserView.WebBrowserView.ZoomLevelDefault?7
 eric6.WebBrowser.WebBrowserView.WebBrowserView.ZoomLevels?7
 eric6.WebBrowser.WebBrowserView.WebBrowserView._contextMenuEvent?5(evt)
@@ -13216,7 +11609,6 @@
 eric6.eric6_snap.main?4()
 eric6.eric6_sqlbrowser.createMainWidget?4(argv)
 eric6.eric6_sqlbrowser.main?4()
-eric6.eric6_tray.PyQt4Option?7
 eric6.eric6_tray.SettingsDir?7
 eric6.eric6_tray.createMainWidget?4(argv)
 eric6.eric6_tray.main?4()
@@ -13227,9 +11619,6 @@
 eric6.eric6_uipreviewer.main?4()
 eric6.eric6_unittest.createMainWidget?4(argv)
 eric6.eric6_unittest.main?4()
-eric6.eric6_webbrowser.app?7
-eric6.eric6_webbrowser.createMainWidget?4(argv)
-eric6.eric6_webbrowser.main?4()
 eric6.eric6config._pkg_config?8
 eric6.eric6config.getConfig?4(name)
 install-debugclients.cleanUp?4()
@@ -13260,8 +11649,6 @@
 install-i18n.usage?4(rcode=2)
 install.BlackLists?7
 install.PlatformsBlackLists?7
-install.PythonMarkers?7
-install.PythonTextMarkers?7
 install.apisDir?7
 install.cfg?7
 install.cleanUp?4()
@@ -13272,8 +11659,8 @@
 install.compileUiFiles?4()
 install.configLength?7
 install.configName?7
-install.copyAppStreamFile?4(src, dst, marker)
-install.copyDesktopFile?4(src, dst, marker)
+install.copyAppStreamFile?4(src, dst)
+install.copyDesktopFile?4(src, dst)
 install.copyToFile?4(name, text)
 install.copyTree?4(src, dst, filters, excludeDirs=None, excludePatterns=None)
 install.createConfig?4()
@@ -13288,7 +11675,6 @@
 install.defaultMacAppBundleName?7
 install.defaultMacAppBundlePath?7
 install.defaultMacPythonExe?7
-install.determinePyQtVariant?4()
 install.distDir?7
 install.doCleanDesktopLinks?7
 install.doCleanup?7
@@ -13298,7 +11684,6 @@
 install.exit?4(rcode=0)
 install.forceCleanDesktopLinks?7
 install.getWinregEntry?4(name, path)
-install.includePythonVariant?7
 install.initGlobals?4()
 install.installApis?7
 install.installEric?4()
@@ -13314,8 +11699,6 @@
 install.progLanguages?7
 install.progName?7
 install.pyModDir?7
-install.pyqtOverride?7
-install.pyqtVariant?7
 install.shutilCopy?4(src, dst, perm=0o644)
 install.sourceDir?7
 install.usage?4(rcode=2)
@@ -13350,14 +11733,12 @@
 uninstall-debugclients.pyModDir?7
 uninstall-debugclients.uninstallEricDebugClients?4()
 uninstall-debugclients.usage?4(rcode=2)
-uninstall.PythonMarkers?7
 uninstall.currDir?7
 uninstall.defaultMacAppBundleName?7
 uninstall.defaultMacAppBundlePath?7
 uninstall.exit?4(rcode=0)
 uninstall.getConfigDir?4()
 uninstall.getWinregEntry?4(name, path)
-uninstall.includePythonVariant?7
 uninstall.initGlobals?4()
 uninstall.main?4(argv)
 uninstall.progLanguages?7
--- a/eric6/APIs/Python3/eric6.bas	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/APIs/Python3/eric6.bas	Sat Sep 07 16:10:29 2019 +0200
@@ -1,16 +1,12 @@
 APIs QObject
 APIsManager QObject
-AboutAccessHandler SchemeAccessHandler
 AboutDialog QDialog Ui_AboutDialog
 AboutPlugin QObject
-AdBlockAccessHandler SchemeAccessHandler
-AdBlockBlockedNetworkReply QNetworkReply
 AdBlockDialog QDialog Ui_AdBlockDialog
 AdBlockExceptionsDialog QDialog Ui_AdBlockExceptionsDialog
 AdBlockIcon E5ClickableLabel
 AdBlockManager QObject
 AdBlockMatcher QObject
-AdBlockNetwork QObject
 AdBlockPage QObject
 AdBlockRuleOption IntEnum
 AdBlockRuleType IntEnum
@@ -77,9 +73,6 @@
 ClassModel UMLModel
 ClbrBase _ClbrBase
 ClearPrivateDataDialog QDialog Ui_ClearPrivateDataDialog
-ClickToFlash QWidget Ui_ClickToFlash
-ClickToFlashPlugin WebPluginInterface
-ClickToFlashWhitelistDialog QDialog Ui_ClickToFlashWhitelistDialog
 ClosedTabsManager QObject
 Closehead HgExtension
 CloseheadProjectHelper HgExtensionProjectHelper
@@ -115,10 +108,8 @@
 ConfigurationWidget QWidget
 ConfigurationWindow E5MainWindow
 Connection QTcpSocket
-CookieDetailsDialog QDialog Ui_CookieDetailsDialog
 CookieExceptionsModel QAbstractTableModel
 CookieJar QNetworkCookieJar
-CookieModel QAbstractTableModel
 CookiesConfigurationDialog QDialog Ui_CookiesConfigurationDialog
 CookiesDialog QDialog Ui_CookiesDialog
 CookiesExceptionsDialog QDialog Ui_CookiesExceptionsDialog
@@ -177,7 +168,6 @@
 E5ClickableLed E5Led
 E5ComboBox QComboBox
 E5ComboPathPicker E5PathPickerBase
-E5ConfigParser SafeConfigParser
 E5DirCompleter QCompleter
 E5DnDTabBar E5WheelTabBar
 E5ErrorMessage QErrorMessage
@@ -274,9 +264,7 @@
 EditorTypingPage ConfigurationPageBase Ui_EditorTypingPage
 EmailDialog QDialog Ui_EmailDialog
 EmailPage ConfigurationPageBase Ui_EmailPage
-EmptyNetworkReply QNetworkReply
 Enum ClbrBaseClasses.Enum VisibilityMixin
-EricAccessHandler SchemeAccessHandler
 EricSchemeHandler QWebEngineUrlSchemeHandler
 EricSchemeReply QIODevice
 EricapiConfigDialog QDialog Ui_EricapiConfigDialog
@@ -308,11 +296,8 @@
 FeedsManager QDialog Ui_FeedsManager
 Fetch HgExtension
 FetchProjectHelper HgExtensionProjectHelper
-File file
-FileAccessHandler SchemeAccessHandler
 FileDialogWizard QObject
 FileDialogWizardDialog QDialog Ui_FileDialogWizardDialog
-FileReply QNetworkReply
 FileReport BaseReport
 FiletypeAssociationDialog QDialog Ui_FiletypeAssociationDialog
 FindFileDialog QDialog Ui_FindFileDialog
@@ -322,14 +307,11 @@
 FlashCookieManagerDialog QDialog Ui_FlashCookieManagerDialog
 FlashCookieNotification E5AnimatedWidget
 FlashCookieReaderError Exception
-FollowRedirectReply QObject
 FontDialogWizard QObject
 FontDialogWizardDialog QDialog Ui_FontDialogWizardDialog
 FrameScroller QObject
-FtpAccessHandler SchemeAccessHandler
 FtpDirLineParser QObject
 FtpDirLineParserError Exception
-FtpReply QNetworkReply
 FtpSyncHandler SyncHandler
 Function ClbrBaseClasses.Function VisibilityMixin
 Git VersionControl
@@ -400,29 +382,13 @@
 GreaseMonkeyJsObject QObject
 GreaseMonkeyManager QObject
 GreaseMonkeyScript QObject
-HelpAppearancePage ConfigurationPageBase Ui_HelpAppearancePage
-HelpBrowser QWebView
-HelpClearPrivateDataDialog QDialog Ui_HelpClearPrivateDataDialog
 HelpDocsInstaller QThread
 HelpDocumentationPage ConfigurationPageBase Ui_HelpDocumentationPage
-HelpFlashCookieManagerPage ConfigurationPageBase Ui_HelpFlashCookieManagerPage
 HelpIndexWidget QWidget
-HelpInspector QWebInspector
-HelpInterfacePage ConfigurationPageBase Ui_HelpInterfacePage
-HelpLanguagesDialog QDialog Ui_HelpLanguagesDialog
 HelpSearchWidget QWidget
-HelpSingleApplicationClient SingleApplicationClient
-HelpSingleApplicationServer SingleApplicationServer
-HelpTabBar E5WheelTabBar
-HelpTabWidget E5TabWidget
 HelpTocWidget QWidget
 HelpTopicDialog QDialog Ui_HelpTopicDialog
 HelpViewersPage ConfigurationPageBase Ui_HelpViewersPage
-HelpVirusTotalPage ConfigurationPageBase Ui_HelpVirusTotalPage
-HelpWebBrowserPage ConfigurationPageBase Ui_HelpWebBrowserPage
-HelpWebPage QWebPage
-HelpWebSearchWidget E5ClearableLineEdit
-HelpWindow E5MainWindow
 HexEditCommand Enum
 HexEditGotoWidget QWidget Ui_HexEditGotoWidget
 HexEditMainWindow E5MainWindow
@@ -556,8 +522,6 @@
 IrcServerEditDialog QDialog Ui_IrcServerEditDialog
 IrcUserItem QListWidgetItem
 IrcWidget QWidget Ui_IrcWidget
-JavaScriptEricObject QObject
-JavaScriptExternalObject QObject
 JavaScriptIcon StatusBarIcon
 JavaScriptSettingsDialog QDialog Ui_JavaScriptSettingsDialog
 Language str
@@ -650,17 +614,11 @@
 NavigationBar QWidget
 NavigationContainer QWidget
 NdArrayResolver BaseResolver
-NetworkAccessManager QNetworkAccessManager
-NetworkAccessManagerProxy QNetworkAccessManager
-NetworkDiskCache QNetworkDiskCache
 NetworkManager QNetworkAccessManager
 NetworkPage ConfigurationPageBase Ui_NetworkPage
-NetworkProtocolUnknownErrorReply QNetworkReply
-NetworkReply QNetworkReply
 NetworkUrlInterceptor QWebEngineUrlRequestInterceptor
 NewDialogClassDialog QDialog Ui_NewDialogClassDialog
 NewPythonPackageDialog QDialog Ui_NewPythonPackageDialog
-NoCacheHostsDialog QDialog Ui_NoCacheHostsDialog
 NoExtToken peg.Symbol
 NotBinaryPlistException Exception
 NotificationWidget QWidget Ui_NotificationWidget
@@ -668,7 +626,6 @@
 NsHtmlReader QObject
 NsHtmlWriter QObject
 NumbersWidget QWidget Ui_NumbersWidget
-OfflineStorageConfigDialog QDialog Ui_OfflineStorageConfigDialog
 OpenSearchDialog QDialog Ui_OpenSearchDialog
 OpenSearchEditDialog QDialog Ui_OpenSearchEditDialog
 OpenSearchEngine QObject
@@ -701,7 +658,6 @@
 PipPackagesWidget QWidget Ui_PipPackagesWidget
 PipPage ConfigurationPageBase Ui_PipPage
 PixmapDiagram E5MainWindow
-PlainStrList list
 PluginActivationError PluginError
 PluginClassFormatError PluginError
 PluginDetailsDialog QDialog Ui_PluginDetailsDialog
@@ -716,7 +672,6 @@
 PluginModuleFormatError PluginError
 PluginModulesError PluginError
 PluginPathError PluginError
-PluginPy2IncompatibleError PluginError
 PluginRepositoryDialog QDialog
 PluginRepositoryReader XMLStreamReaderBase
 PluginRepositoryWidget QWidget Ui_PluginRepositoryDialog
@@ -791,7 +746,6 @@
 QRegularExpressionWizardWindow E5MainWindow
 QThreadWrapper module.QThread
 QsciScintillaCompat QsciScintilla
-QtHelpAccessHandler SchemeAccessHandler
 QtHelpDocumentationDialog QDialog Ui_QtHelpDocumentationDialog
 QtHelpDocumentationSelectionDialog QDialog Ui_QtHelpDocumentationSelectionDialog
 QtHelpFiltersDialog QDialog Ui_QtHelpFiltersDialog
@@ -821,7 +775,6 @@
 SafeBrowsingInfoWidget QMenu
 SafeBrowsingLabel QLabel
 SafeBrowsingManager QObject
-SchemeAccessHandler QObject
 SearchReplaceSlidingWidget QWidget
 SearchReplaceWidget QWidget
 SearchWidget QWidget Ui_SearchWidget
@@ -875,7 +828,6 @@
 SqlConnectionDialog QDialog Ui_SqlConnectionDialog
 SqlConnectionWidget QWidget
 SslErrorExceptionsDialog QDialog Ui_SslErrorExceptionsDialog
-SslLabel QLabel
 StackedUrlBar QStackedWidget
 StackedWidget QStackedWidget
 StandardReport BaseReport
@@ -1040,6 +992,7 @@
 WatchPointViewer QTreeView
 WebBrowserAppearancePage ConfigurationPageBase Ui_WebBrowserAppearancePage
 WebBrowserClearPrivateDataDialog QDialog Ui_WebBrowserClearPrivateDataDialog
+WebBrowserFlashCookieManagerPage ConfigurationPageBase Ui_WebBrowserFlashCookieManagerPage
 WebBrowserJavaScriptConsole QTextEdit
 WebBrowserLanguagesDialog QDialog Ui_WebBrowserLanguagesDialog
 WebBrowserPage QWebEnginePage
@@ -1052,13 +1005,10 @@
 WebBrowserVirusTotalPage ConfigurationPageBase Ui_HelpVirusTotalPage
 WebBrowserWebSearchWidget E5ClearableLineEdit
 WebBrowserWindow E5MainWindow
-WebDatabasesDialog QDialog Ui_WebDatabasesDialog
-WebDatabasesModel QAbstractItemModel
 WebIconDialog QDialog Ui_WebIconDialog
 WebIconLoader QObject
 WebIconProvider QObject
 WebInspector QWebEngineView
-WebPluginFactory QWebPluginFactory
 WidgetArea QMdiArea
 WidgetView QWidget
 WizardEricPluginWizard QObject
--- a/eric6/CondaInterface/Conda.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/CondaInterface/Conda.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import json
 import os
--- a/eric6/CondaInterface/CondaExecDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/CondaInterface/CondaExecDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import json
 
--- a/eric6/CondaInterface/CondaExportDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/CondaInterface/CondaExportDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import os
 
--- a/eric6/CondaInterface/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/CondaInterface/__init__.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import json
 
--- a/eric6/Cooperation/Connection.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Cooperation/Connection.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 from PyQt5.QtCore import pyqtSignal, QTimer, QTime, QByteArray
 from PyQt5.QtNetwork import QTcpSocket, QHostInfo
--- a/eric6/DataViews/CodeMetrics.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/DataViews/CodeMetrics.py	Sat Sep 07 16:10:29 2019 +0200
@@ -18,7 +18,6 @@
 
 import os
 import io
-import sys
 import keyword
 import token
 import tokenize
@@ -68,10 +67,7 @@
         
         source = io.BytesIO(text.encode("utf-8"))
         try:
-            if sys.version_info[0] == 2:
-                gen = tokenize.generate_tokens(source.readline)
-            else:
-                gen = tokenize.tokenize(source.readline)
+            gen = tokenize.tokenize(source.readline)
             for toktype, toktext, start, end, line in gen:
                 (srow, scol) = start
                 (erow, ecol) = end
--- a/eric6/DataViews/CodeMetricsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/DataViews/CodeMetricsDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -20,7 +20,6 @@
 from . import CodeMetrics
 
 import Utilities
-from Globals import qVersionTuple
 
 
 class CodeMetricsDialog(QDialog, Ui_CodeMetricsDialog):
@@ -236,14 +235,8 @@
         self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False)
         self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
         
-        if qVersionTuple() >= (5, 0, 0):
-            self.resultList.header().setSectionResizeMode(
-                QHeaderView.Interactive)
-            self.summaryList.header().setSectionResizeMode(
-                QHeaderView.Interactive)
-        else:
-            self.resultList.header().setResizeMode(QHeaderView.Interactive)
-            self.summaryList.header().setResizeMode(QHeaderView.Interactive)
+        self.resultList.header().setSectionResizeMode(QHeaderView.Interactive)
+        self.summaryList.header().setSectionResizeMode(QHeaderView.Interactive)
         
     def on_buttonBox_clicked(self, button):
         """
--- a/eric6/Debugger/BreakPointViewer.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Debugger/BreakPointViewer.py	Sat Sep 07 16:10:29 2019 +0200
@@ -16,8 +16,7 @@
 
 from E5Gui.E5Application import e5App
 
-from Globals import qVersionTuple, recentNameBreakpointFiles, \
-    recentNameBreakpointConditions
+from Globals import recentNameBreakpointFiles, recentNameBreakpointConditions
 
 import Preferences
 
@@ -80,10 +79,7 @@
         header = self.header()
         header.setSortIndicator(0, Qt.AscendingOrder)
         header.setSortIndicatorShown(True)
-        if qVersionTuple() >= (5, 0, 0):
-            header.setSectionsClickable(True)
-        else:
-            header.setClickable(True)
+        header.setSectionsClickable(True)
         
         self.setSortingEnabled(True)
         
--- a/eric6/Debugger/DebugServer.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Debugger/DebugServer.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import sys
@@ -220,10 +216,7 @@
         self.clientType = \
             Preferences.Prefs.settings.value('DebugClient/Type')
         if self.clientType is None:
-            if sys.version_info[0] == 2:
-                self.clientType = 'Python2'
-            else:
-                self.clientType = 'Python3'
+            self.clientType = 'Python3'
         # Change clientType if dependent interpreter does not exist anymore
         # (maybe deinstalled,...)
         elif self.clientType == 'Python2' and Preferences.getDebugger(
--- a/eric6/Debugger/VariablesViewer.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Debugger/VariablesViewer.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,11 +9,6 @@
 
 from __future__ import unicode_literals
 
-try:
-    str = unicode
-except NameError:
-    pass
-
 import ast
     
 from PyQt5.QtCore import (Qt, QAbstractItemModel, QModelIndex, QRegExp,
--- a/eric6/Debugger/WatchPointViewer.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Debugger/WatchPointViewer.py	Sat Sep 07 16:10:29 2019 +0200
@@ -18,7 +18,6 @@
 from E5Gui import E5MessageBox
 
 import Utilities
-from Globals import qVersionTuple
 
 
 class WatchPointViewer(QTreeView):
@@ -69,10 +68,7 @@
         header = self.header()
         header.setSortIndicator(0, Qt.AscendingOrder)
         header.setSortIndicatorShown(True)
-        if qVersionTuple() >= (5, 0, 0):
-            header.setSectionsClickable(True)
-        else:
-            header.setClickable(True)
+        header.setSectionsClickable(True)
         
         self.setSortingEnabled(True)
         
Binary file eric6/Documentation/Help/source.qch has changed
--- a/eric6/Documentation/Help/source.qhp	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Help/source.qhp	Sat Sep 07 16:10:29 2019 +0200
@@ -190,9 +190,7 @@
           </section>
           <section title="eric6.Globals" ref="index-eric6.Globals.html">
             <section title="eric6.Globals.AppInfo" ref="eric6.Globals.AppInfo.html" />
-            <section title="eric6.Globals.E5ConfigParser" ref="eric6.Globals.E5ConfigParser.html" />
             <section title="eric6.Globals.__init__" ref="eric6.Globals.__init__.html" />
-            <section title="eric6.Globals.compatibility_fixes" ref="eric6.Globals.compatibility_fixes.html" />
           </section>
           <section title="eric6.Graphics" ref="index-eric6.Graphics.html">
             <section title="eric6.Graphics.ApplicationDiagramBuilder" ref="eric6.Graphics.ApplicationDiagramBuilder.html" />
@@ -212,237 +210,6 @@
             <section title="eric6.Graphics.UMLItem" ref="eric6.Graphics.UMLItem.html" />
             <section title="eric6.Graphics.UMLSceneSizeDialog" ref="eric6.Graphics.UMLSceneSizeDialog.html" />
           </section>
-          <section title="eric6.Helpviewer" ref="index-eric6.Helpviewer.html">
-            <section title="eric6.Helpviewer.AdBlock" ref="index-eric6.Helpviewer.AdBlock.html">
-              <section title="eric6.Helpviewer.AdBlock.AdBlockAccessHandler" ref="eric6.Helpviewer.AdBlock.AdBlockAccessHandler.html" />
-              <section title="eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply" ref="eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.html" />
-              <section title="eric6.Helpviewer.AdBlock.AdBlockDialog" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html" />
-              <section title="eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog" ref="eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.html" />
-              <section title="eric6.Helpviewer.AdBlock.AdBlockIcon" ref="eric6.Helpviewer.AdBlock.AdBlockIcon.html" />
-              <section title="eric6.Helpviewer.AdBlock.AdBlockManager" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html" />
-              <section title="eric6.Helpviewer.AdBlock.AdBlockNetwork" ref="eric6.Helpviewer.AdBlock.AdBlockNetwork.html" />
-              <section title="eric6.Helpviewer.AdBlock.AdBlockPage" ref="eric6.Helpviewer.AdBlock.AdBlockPage.html" />
-              <section title="eric6.Helpviewer.AdBlock.AdBlockRule" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html" />
-              <section title="eric6.Helpviewer.AdBlock.AdBlockSubscription" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html" />
-              <section title="eric6.Helpviewer.AdBlock.AdBlockTreeWidget" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html" />
-            </section>
-            <section title="eric6.Helpviewer.Bookmarks" ref="index-eric6.Helpviewer.Bookmarks.html">
-              <section title="eric6.Helpviewer.Bookmarks.BookmarksImporters" ref="index-eric6.Helpviewer.Bookmarks.BookmarksImporters.html">
-                <section title="eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html" />
-                <section title="eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html" />
-                <section title="eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html" />
-                <section title="eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html" />
-                <section title="eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.html" />
-                <section title="eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html" />
-                <section title="eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.html" />
-                <section title="eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html" />
-                <section title="eric6.Helpviewer.Bookmarks.BookmarksImporters.__init__" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.__init__.html" />
-              </section>
-              <section title="eric6.Helpviewer.Bookmarks.AddBookmarkDialog" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html" />
-              <section title="eric6.Helpviewer.Bookmarks.BookmarkNode" ref="eric6.Helpviewer.Bookmarks.BookmarkNode.html" />
-              <section title="eric6.Helpviewer.Bookmarks.BookmarkPropertiesDialog" ref="eric6.Helpviewer.Bookmarks.BookmarkPropertiesDialog.html" />
-              <section title="eric6.Helpviewer.Bookmarks.BookmarksDialog" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html" />
-              <section title="eric6.Helpviewer.Bookmarks.BookmarksImportDialog" ref="eric6.Helpviewer.Bookmarks.BookmarksImportDialog.html" />
-              <section title="eric6.Helpviewer.Bookmarks.BookmarksManager" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html" />
-              <section title="eric6.Helpviewer.Bookmarks.BookmarksMenu" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html" />
-              <section title="eric6.Helpviewer.Bookmarks.BookmarksModel" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html" />
-              <section title="eric6.Helpviewer.Bookmarks.BookmarksToolBar" ref="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html" />
-              <section title="eric6.Helpviewer.Bookmarks.NsHtmlReader" ref="eric6.Helpviewer.Bookmarks.NsHtmlReader.html" />
-              <section title="eric6.Helpviewer.Bookmarks.NsHtmlWriter" ref="eric6.Helpviewer.Bookmarks.NsHtmlWriter.html" />
-              <section title="eric6.Helpviewer.Bookmarks.XbelReader" ref="eric6.Helpviewer.Bookmarks.XbelReader.html" />
-              <section title="eric6.Helpviewer.Bookmarks.XbelWriter" ref="eric6.Helpviewer.Bookmarks.XbelWriter.html" />
-            </section>
-            <section title="eric6.Helpviewer.CookieJar" ref="index-eric6.Helpviewer.CookieJar.html">
-              <section title="eric6.Helpviewer.CookieJar.CookieDetailsDialog" ref="eric6.Helpviewer.CookieJar.CookieDetailsDialog.html" />
-              <section title="eric6.Helpviewer.CookieJar.CookieExceptionsModel" ref="eric6.Helpviewer.CookieJar.CookieExceptionsModel.html" />
-              <section title="eric6.Helpviewer.CookieJar.CookieJar" ref="eric6.Helpviewer.CookieJar.CookieJar.html" />
-              <section title="eric6.Helpviewer.CookieJar.CookieModel" ref="eric6.Helpviewer.CookieJar.CookieModel.html" />
-              <section title="eric6.Helpviewer.CookieJar.CookiesConfigurationDialog" ref="eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.html" />
-              <section title="eric6.Helpviewer.CookieJar.CookiesDialog" ref="eric6.Helpviewer.CookieJar.CookiesDialog.html" />
-              <section title="eric6.Helpviewer.CookieJar.CookiesExceptionsDialog" ref="eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.html" />
-            </section>
-            <section title="eric6.Helpviewer.Download" ref="index-eric6.Helpviewer.Download.html">
-              <section title="eric6.Helpviewer.Download.DownloadAskActionDialog" ref="eric6.Helpviewer.Download.DownloadAskActionDialog.html" />
-              <section title="eric6.Helpviewer.Download.DownloadItem" ref="eric6.Helpviewer.Download.DownloadItem.html" />
-              <section title="eric6.Helpviewer.Download.DownloadManager" ref="eric6.Helpviewer.Download.DownloadManager.html" />
-              <section title="eric6.Helpviewer.Download.DownloadModel" ref="eric6.Helpviewer.Download.DownloadModel.html" />
-              <section title="eric6.Helpviewer.Download.DownloadUtilities" ref="eric6.Helpviewer.Download.DownloadUtilities.html" />
-            </section>
-            <section title="eric6.Helpviewer.FeaturePermissions" ref="index-eric6.Helpviewer.FeaturePermissions.html">
-              <section title="eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.html" />
-              <section title="eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.html" />
-              <section title="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html" />
-            </section>
-            <section title="eric6.Helpviewer.Feeds" ref="index-eric6.Helpviewer.Feeds.html">
-              <section title="eric6.Helpviewer.Feeds.FeedEditDialog" ref="eric6.Helpviewer.Feeds.FeedEditDialog.html" />
-              <section title="eric6.Helpviewer.Feeds.FeedsDialog" ref="eric6.Helpviewer.Feeds.FeedsDialog.html" />
-              <section title="eric6.Helpviewer.Feeds.FeedsManager" ref="eric6.Helpviewer.Feeds.FeedsManager.html" />
-            </section>
-            <section title="eric6.Helpviewer.FlashCookieManager" ref="index-eric6.Helpviewer.FlashCookieManager.html">
-              <section title="eric6.Helpviewer.FlashCookieManager.FlashCookie" ref="eric6.Helpviewer.FlashCookieManager.FlashCookie.html" />
-              <section title="eric6.Helpviewer.FlashCookieManager.FlashCookieManager" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html" />
-              <section title="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html" />
-              <section title="eric6.Helpviewer.FlashCookieManager.FlashCookieNotification" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieNotification.html" />
-              <section title="eric6.Helpviewer.FlashCookieManager.FlashCookieReader" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html" />
-              <section title="eric6.Helpviewer.FlashCookieManager.FlashCookieUtilities" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieUtilities.html" />
-            </section>
-            <section title="eric6.Helpviewer.GreaseMonkey" ref="index-eric6.Helpviewer.GreaseMonkey.html">
-              <section title="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration" ref="index-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.html">
-                <section title="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html" />
-                <section title="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html" />
-                <section title="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html" />
-                <section title="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html" />
-              </section>
-              <section title="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html" />
-              <section title="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html" />
-              <section title="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript.html" />
-              <section title="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html" />
-              <section title="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html" />
-              <section title="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html" />
-            </section>
-            <section title="eric6.Helpviewer.History" ref="index-eric6.Helpviewer.History.html">
-              <section title="eric6.Helpviewer.History.HistoryCompleter" ref="eric6.Helpviewer.History.HistoryCompleter.html" />
-              <section title="eric6.Helpviewer.History.HistoryDialog" ref="eric6.Helpviewer.History.HistoryDialog.html" />
-              <section title="eric6.Helpviewer.History.HistoryFilterModel" ref="eric6.Helpviewer.History.HistoryFilterModel.html" />
-              <section title="eric6.Helpviewer.History.HistoryManager" ref="eric6.Helpviewer.History.HistoryManager.html" />
-              <section title="eric6.Helpviewer.History.HistoryMenu" ref="eric6.Helpviewer.History.HistoryMenu.html" />
-              <section title="eric6.Helpviewer.History.HistoryModel" ref="eric6.Helpviewer.History.HistoryModel.html" />
-              <section title="eric6.Helpviewer.History.HistoryTreeModel" ref="eric6.Helpviewer.History.HistoryTreeModel.html" />
-            </section>
-            <section title="eric6.Helpviewer.Network" ref="index-eric6.Helpviewer.Network.html">
-              <section title="eric6.Helpviewer.Network.AboutAccessHandler" ref="eric6.Helpviewer.Network.AboutAccessHandler.html" />
-              <section title="eric6.Helpviewer.Network.EmptyNetworkReply" ref="eric6.Helpviewer.Network.EmptyNetworkReply.html" />
-              <section title="eric6.Helpviewer.Network.EricAccessHandler" ref="eric6.Helpviewer.Network.EricAccessHandler.html" />
-              <section title="eric6.Helpviewer.Network.FileAccessHandler" ref="eric6.Helpviewer.Network.FileAccessHandler.html" />
-              <section title="eric6.Helpviewer.Network.FileReply" ref="eric6.Helpviewer.Network.FileReply.html" />
-              <section title="eric6.Helpviewer.Network.FollowRedirectReply" ref="eric6.Helpviewer.Network.FollowRedirectReply.html" />
-              <section title="eric6.Helpviewer.Network.FtpAccessHandler" ref="eric6.Helpviewer.Network.FtpAccessHandler.html" />
-              <section title="eric6.Helpviewer.Network.FtpReply" ref="eric6.Helpviewer.Network.FtpReply.html" />
-              <section title="eric6.Helpviewer.Network.NetworkAccessManager" ref="eric6.Helpviewer.Network.NetworkAccessManager.html" />
-              <section title="eric6.Helpviewer.Network.NetworkAccessManagerProxy" ref="eric6.Helpviewer.Network.NetworkAccessManagerProxy.html" />
-              <section title="eric6.Helpviewer.Network.NetworkDiskCache" ref="eric6.Helpviewer.Network.NetworkDiskCache.html" />
-              <section title="eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply" ref="eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply.html" />
-              <section title="eric6.Helpviewer.Network.NetworkReply" ref="eric6.Helpviewer.Network.NetworkReply.html" />
-              <section title="eric6.Helpviewer.Network.NoCacheHostsDialog" ref="eric6.Helpviewer.Network.NoCacheHostsDialog.html" />
-              <section title="eric6.Helpviewer.Network.QtHelpAccessHandler" ref="eric6.Helpviewer.Network.QtHelpAccessHandler.html" />
-              <section title="eric6.Helpviewer.Network.SchemeAccessHandler" ref="eric6.Helpviewer.Network.SchemeAccessHandler.html" />
-              <section title="eric6.Helpviewer.Network.SendRefererWhitelistDialog" ref="eric6.Helpviewer.Network.SendRefererWhitelistDialog.html" />
-            </section>
-            <section title="eric6.Helpviewer.OfflineStorage" ref="index-eric6.Helpviewer.OfflineStorage.html">
-              <section title="eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog" ref="eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog.html" />
-              <section title="eric6.Helpviewer.OfflineStorage.WebDatabasesDialog" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesDialog.html" />
-              <section title="eric6.Helpviewer.OfflineStorage.WebDatabasesModel" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html" />
-            </section>
-            <section title="eric6.Helpviewer.OpenSearch" ref="index-eric6.Helpviewer.OpenSearch.html">
-              <section title="eric6.Helpviewer.OpenSearch.DefaultSearchEngines" ref="index-eric6.Helpviewer.OpenSearch.DefaultSearchEngines.html">
-              </section>
-              <section title="eric6.Helpviewer.OpenSearch.OpenSearchDialog" ref="eric6.Helpviewer.OpenSearch.OpenSearchDialog.html" />
-              <section title="eric6.Helpviewer.OpenSearch.OpenSearchEditDialog" ref="eric6.Helpviewer.OpenSearch.OpenSearchEditDialog.html" />
-              <section title="eric6.Helpviewer.OpenSearch.OpenSearchEngine" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html" />
-              <section title="eric6.Helpviewer.OpenSearch.OpenSearchEngineAction" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineAction.html" />
-              <section title="eric6.Helpviewer.OpenSearch.OpenSearchEngineModel" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html" />
-              <section title="eric6.Helpviewer.OpenSearch.OpenSearchManager" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html" />
-              <section title="eric6.Helpviewer.OpenSearch.OpenSearchReader" ref="eric6.Helpviewer.OpenSearch.OpenSearchReader.html" />
-              <section title="eric6.Helpviewer.OpenSearch.OpenSearchWriter" ref="eric6.Helpviewer.OpenSearch.OpenSearchWriter.html" />
-            </section>
-            <section title="eric6.Helpviewer.Passwords" ref="index-eric6.Helpviewer.Passwords.html">
-              <section title="eric6.Helpviewer.Passwords.LoginForm" ref="eric6.Helpviewer.Passwords.LoginForm.html" />
-              <section title="eric6.Helpviewer.Passwords.PasswordManager" ref="eric6.Helpviewer.Passwords.PasswordManager.html" />
-              <section title="eric6.Helpviewer.Passwords.PasswordModel" ref="eric6.Helpviewer.Passwords.PasswordModel.html" />
-              <section title="eric6.Helpviewer.Passwords.PasswordReader" ref="eric6.Helpviewer.Passwords.PasswordReader.html" />
-              <section title="eric6.Helpviewer.Passwords.PasswordWriter" ref="eric6.Helpviewer.Passwords.PasswordWriter.html" />
-              <section title="eric6.Helpviewer.Passwords.PasswordsDialog" ref="eric6.Helpviewer.Passwords.PasswordsDialog.html" />
-            </section>
-            <section title="eric6.Helpviewer.PersonalInformationManager" ref="index-eric6.Helpviewer.PersonalInformationManager.html">
-              <section title="eric6.Helpviewer.PersonalInformationManager.PersonalDataDialog" ref="eric6.Helpviewer.PersonalInformationManager.PersonalDataDialog.html" />
-              <section title="eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager" ref="eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html" />
-            </section>
-            <section title="eric6.Helpviewer.SiteInfo" ref="index-eric6.Helpviewer.SiteInfo.html">
-              <section title="eric6.Helpviewer.SiteInfo.SiteInfoDialog" ref="eric6.Helpviewer.SiteInfo.SiteInfoDialog.html" />
-            </section>
-            <section title="eric6.Helpviewer.SpeedDial" ref="index-eric6.Helpviewer.SpeedDial.html">
-              <section title="eric6.Helpviewer.SpeedDial.Page" ref="eric6.Helpviewer.SpeedDial.Page.html" />
-              <section title="eric6.Helpviewer.SpeedDial.PageThumbnailer" ref="eric6.Helpviewer.SpeedDial.PageThumbnailer.html" />
-              <section title="eric6.Helpviewer.SpeedDial.SpeedDial" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html" />
-              <section title="eric6.Helpviewer.SpeedDial.SpeedDialReader" ref="eric6.Helpviewer.SpeedDial.SpeedDialReader.html" />
-              <section title="eric6.Helpviewer.SpeedDial.SpeedDialWriter" ref="eric6.Helpviewer.SpeedDial.SpeedDialWriter.html" />
-            </section>
-            <section title="eric6.Helpviewer.Sync" ref="index-eric6.Helpviewer.Sync.html">
-              <section title="eric6.Helpviewer.Sync.DirectorySyncHandler" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html" />
-              <section title="eric6.Helpviewer.Sync.FtpSyncHandler" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html" />
-              <section title="eric6.Helpviewer.Sync.SyncAssistantDialog" ref="eric6.Helpviewer.Sync.SyncAssistantDialog.html" />
-              <section title="eric6.Helpviewer.Sync.SyncCheckPage" ref="eric6.Helpviewer.Sync.SyncCheckPage.html" />
-              <section title="eric6.Helpviewer.Sync.SyncDataPage" ref="eric6.Helpviewer.Sync.SyncDataPage.html" />
-              <section title="eric6.Helpviewer.Sync.SyncDirectorySettingsPage" ref="eric6.Helpviewer.Sync.SyncDirectorySettingsPage.html" />
-              <section title="eric6.Helpviewer.Sync.SyncEncryptionPage" ref="eric6.Helpviewer.Sync.SyncEncryptionPage.html" />
-              <section title="eric6.Helpviewer.Sync.SyncFtpSettingsPage" ref="eric6.Helpviewer.Sync.SyncFtpSettingsPage.html" />
-              <section title="eric6.Helpviewer.Sync.SyncGlobals" ref="eric6.Helpviewer.Sync.SyncGlobals.html" />
-              <section title="eric6.Helpviewer.Sync.SyncHandler" ref="eric6.Helpviewer.Sync.SyncHandler.html" />
-              <section title="eric6.Helpviewer.Sync.SyncHostTypePage" ref="eric6.Helpviewer.Sync.SyncHostTypePage.html" />
-              <section title="eric6.Helpviewer.Sync.SyncManager" ref="eric6.Helpviewer.Sync.SyncManager.html" />
-            </section>
-            <section title="eric6.Helpviewer.UrlBar" ref="index-eric6.Helpviewer.UrlBar.html">
-              <section title="eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog" ref="eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.html" />
-              <section title="eric6.Helpviewer.UrlBar.BookmarkInfoDialog" ref="eric6.Helpviewer.UrlBar.BookmarkInfoDialog.html" />
-              <section title="eric6.Helpviewer.UrlBar.FavIconLabel" ref="eric6.Helpviewer.UrlBar.FavIconLabel.html" />
-              <section title="eric6.Helpviewer.UrlBar.SslLabel" ref="eric6.Helpviewer.UrlBar.SslLabel.html" />
-              <section title="eric6.Helpviewer.UrlBar.StackedUrlBar" ref="eric6.Helpviewer.UrlBar.StackedUrlBar.html" />
-              <section title="eric6.Helpviewer.UrlBar.UrlBar" ref="eric6.Helpviewer.UrlBar.UrlBar.html" />
-            </section>
-            <section title="eric6.Helpviewer.UserAgent" ref="index-eric6.Helpviewer.UserAgent.html">
-              <section title="eric6.Helpviewer.UserAgent.UserAgentManager" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html" />
-              <section title="eric6.Helpviewer.UserAgent.UserAgentMenu" ref="eric6.Helpviewer.UserAgent.UserAgentMenu.html" />
-              <section title="eric6.Helpviewer.UserAgent.UserAgentModel" ref="eric6.Helpviewer.UserAgent.UserAgentModel.html" />
-              <section title="eric6.Helpviewer.UserAgent.UserAgentReader" ref="eric6.Helpviewer.UserAgent.UserAgentReader.html" />
-              <section title="eric6.Helpviewer.UserAgent.UserAgentWriter" ref="eric6.Helpviewer.UserAgent.UserAgentWriter.html" />
-              <section title="eric6.Helpviewer.UserAgent.UserAgentsDialog" ref="eric6.Helpviewer.UserAgent.UserAgentsDialog.html" />
-            </section>
-            <section title="eric6.Helpviewer.VirusTotal" ref="index-eric6.Helpviewer.VirusTotal.html">
-              <section title="eric6.Helpviewer.VirusTotal.VirusTotalApi" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html" />
-              <section title="eric6.Helpviewer.VirusTotal.VirusTotalDomainReportDialog" ref="eric6.Helpviewer.VirusTotal.VirusTotalDomainReportDialog.html" />
-              <section title="eric6.Helpviewer.VirusTotal.VirusTotalIpReportDialog" ref="eric6.Helpviewer.VirusTotal.VirusTotalIpReportDialog.html" />
-              <section title="eric6.Helpviewer.VirusTotal.VirusTotalWhoisDialog" ref="eric6.Helpviewer.VirusTotal.VirusTotalWhoisDialog.html" />
-            </section>
-            <section title="eric6.Helpviewer.WebPlugins" ref="index-eric6.Helpviewer.WebPlugins.html">
-              <section title="eric6.Helpviewer.WebPlugins.ClickToFlash" ref="index-eric6.Helpviewer.WebPlugins.ClickToFlash.html">
-                <section title="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html" />
-                <section title="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html" />
-                <section title="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog.html" />
-              </section>
-              <section title="eric6.Helpviewer.WebPlugins.WebPluginFactory" ref="eric6.Helpviewer.WebPlugins.WebPluginFactory.html" />
-              <section title="eric6.Helpviewer.WebPlugins.WebPluginInterface" ref="eric6.Helpviewer.WebPlugins.WebPluginInterface.html" />
-            </section>
-            <section title="eric6.Helpviewer.ZoomManager" ref="index-eric6.Helpviewer.ZoomManager.html">
-              <section title="eric6.Helpviewer.ZoomManager.ZoomManager" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html" />
-              <section title="eric6.Helpviewer.ZoomManager.ZoomValuesDialog" ref="eric6.Helpviewer.ZoomManager.ZoomValuesDialog.html" />
-              <section title="eric6.Helpviewer.ZoomManager.ZoomValuesModel" ref="eric6.Helpviewer.ZoomManager.ZoomValuesModel.html" />
-            </section>
-            <section title="eric6.Helpviewer.data" ref="index-eric6.Helpviewer.data.html">
-            </section>
-            <section title="eric6.Helpviewer.ClosedTabsManager" ref="eric6.Helpviewer.ClosedTabsManager.html" />
-            <section title="eric6.Helpviewer.HelpBrowserWV" ref="eric6.Helpviewer.HelpBrowserWV.html" />
-            <section title="eric6.Helpviewer.HelpClearPrivateDataDialog" ref="eric6.Helpviewer.HelpClearPrivateDataDialog.html" />
-            <section title="eric6.Helpviewer.HelpDocsInstaller" ref="eric6.Helpviewer.HelpDocsInstaller.html" />
-            <section title="eric6.Helpviewer.HelpIndexWidget" ref="eric6.Helpviewer.HelpIndexWidget.html" />
-            <section title="eric6.Helpviewer.HelpInspector" ref="eric6.Helpviewer.HelpInspector.html" />
-            <section title="eric6.Helpviewer.HelpLanguagesDialog" ref="eric6.Helpviewer.HelpLanguagesDialog.html" />
-            <section title="eric6.Helpviewer.HelpSearchWidget" ref="eric6.Helpviewer.HelpSearchWidget.html" />
-            <section title="eric6.Helpviewer.HelpSingleApplication" ref="eric6.Helpviewer.HelpSingleApplication.html" />
-            <section title="eric6.Helpviewer.HelpSnap" ref="eric6.Helpviewer.HelpSnap.html" />
-            <section title="eric6.Helpviewer.HelpTabBar" ref="eric6.Helpviewer.HelpTabBar.html" />
-            <section title="eric6.Helpviewer.HelpTabWidget" ref="eric6.Helpviewer.HelpTabWidget.html" />
-            <section title="eric6.Helpviewer.HelpTocWidget" ref="eric6.Helpviewer.HelpTocWidget.html" />
-            <section title="eric6.Helpviewer.HelpTopicDialog" ref="eric6.Helpviewer.HelpTopicDialog.html" />
-            <section title="eric6.Helpviewer.HelpUtilities" ref="eric6.Helpviewer.HelpUtilities.html" />
-            <section title="eric6.Helpviewer.HelpWebSearchWidget" ref="eric6.Helpviewer.HelpWebSearchWidget.html" />
-            <section title="eric6.Helpviewer.HelpWindow" ref="eric6.Helpviewer.HelpWindow.html" />
-            <section title="eric6.Helpviewer.JavaScriptResources" ref="eric6.Helpviewer.JavaScriptResources.html" />
-            <section title="eric6.Helpviewer.PageScreenDialog" ref="eric6.Helpviewer.PageScreenDialog.html" />
-            <section title="eric6.Helpviewer.QtHelpDocumentationDialog" ref="eric6.Helpviewer.QtHelpDocumentationDialog.html" />
-            <section title="eric6.Helpviewer.QtHelpDocumentationSelectionDialog" ref="eric6.Helpviewer.QtHelpDocumentationSelectionDialog.html" />
-            <section title="eric6.Helpviewer.QtHelpFiltersDialog" ref="eric6.Helpviewer.QtHelpFiltersDialog.html" />
-            <section title="eric6.Helpviewer.SearchWidget" ref="eric6.Helpviewer.SearchWidget.html" />
-          </section>
           <section title="eric6.HexEdit" ref="index-eric6.HexEdit.html">
             <section title="eric6.HexEdit.HexEditChunks" ref="eric6.HexEdit.HexEditChunks.html" />
             <section title="eric6.HexEdit.HexEditGotoWidget" ref="eric6.HexEdit.HexEditGotoWidget.html" />
@@ -949,13 +716,8 @@
               <section title="eric6.Preferences.ConfigurationPages.EditorTypingPage" ref="eric6.Preferences.ConfigurationPages.EditorTypingPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.EmailPage" ref="eric6.Preferences.ConfigurationPages.EmailPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.GraphicsPage" ref="eric6.Preferences.ConfigurationPages.GraphicsPage.html" />
-              <section title="eric6.Preferences.ConfigurationPages.HelpAppearancePage" ref="eric6.Preferences.ConfigurationPages.HelpAppearancePage.html" />
               <section title="eric6.Preferences.ConfigurationPages.HelpDocumentationPage" ref="eric6.Preferences.ConfigurationPages.HelpDocumentationPage.html" />
-              <section title="eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage" ref="eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage.html" />
-              <section title="eric6.Preferences.ConfigurationPages.HelpInterfacePage" ref="eric6.Preferences.ConfigurationPages.HelpInterfacePage.html" />
               <section title="eric6.Preferences.ConfigurationPages.HelpViewersPage" ref="eric6.Preferences.ConfigurationPages.HelpViewersPage.html" />
-              <section title="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage" ref="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html" />
-              <section title="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage" ref="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.HexEditorPage" ref="eric6.Preferences.ConfigurationPages.HexEditorPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.IconsPage" ref="eric6.Preferences.ConfigurationPages.IconsPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.IconsPreviewDialog" ref="eric6.Preferences.ConfigurationPages.IconsPreviewDialog.html" />
@@ -984,6 +746,7 @@
               <section title="eric6.Preferences.ConfigurationPages.VcsPage" ref="eric6.Preferences.ConfigurationPages.VcsPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.ViewmanagerPage" ref="eric6.Preferences.ConfigurationPages.ViewmanagerPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.WebBrowserAppearancePage" ref="eric6.Preferences.ConfigurationPages.WebBrowserAppearancePage.html" />
+              <section title="eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage" ref="eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.WebBrowserPage" ref="eric6.Preferences.ConfigurationPages.WebBrowserPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.WebBrowserSpellCheckingPage" ref="eric6.Preferences.ConfigurationPages.WebBrowserSpellCheckingPage.html" />
               <section title="eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage" ref="eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html" />
@@ -1158,7 +921,6 @@
             <section title="eric6.Templates.TemplateViewer" ref="eric6.Templates.TemplateViewer.html" />
           </section>
           <section title="eric6.Toolbox" ref="index-eric6.Toolbox.html">
-            <section title="eric6.Toolbox.PyQt4ImportHook" ref="eric6.Toolbox.PyQt4ImportHook.html" />
             <section title="eric6.Toolbox.SingleApplication" ref="eric6.Toolbox.SingleApplication.html" />
             <section title="eric6.Toolbox.Startup" ref="eric6.Toolbox.Startup.html" />
           </section>
@@ -1424,7 +1186,6 @@
               <section title="eric6.WebBrowser.SafeBrowsing.SafeBrowsingManager" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingManager.html" />
               <section title="eric6.WebBrowser.SafeBrowsing.SafeBrowsingThreatList" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingThreatList.html" />
               <section title="eric6.WebBrowser.SafeBrowsing.SafeBrowsingUrl" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingUrl.html" />
-              <section title="eric6.WebBrowser.SafeBrowsing.SafeBrowsingUtilities" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingUtilities.html" />
               <section title="eric6.WebBrowser.SafeBrowsing.__init__" ref="eric6.WebBrowser.SafeBrowsing.__init__.html" />
             </section>
             <section title="eric6.WebBrowser.Session" ref="index-eric6.WebBrowser.Session.html">
@@ -1470,7 +1231,6 @@
             </section>
             <section title="eric6.WebBrowser.Tools" ref="index-eric6.WebBrowser.Tools.html">
               <section title="eric6.WebBrowser.Tools.DelayedFileWatcher" ref="eric6.WebBrowser.Tools.DelayedFileWatcher.html" />
-              <section title="eric6.WebBrowser.Tools.FilePrinter" ref="eric6.WebBrowser.Tools.FilePrinter.html" />
               <section title="eric6.WebBrowser.Tools.PrintToPdfDialog" ref="eric6.WebBrowser.Tools.PrintToPdfDialog.html" />
               <section title="eric6.WebBrowser.Tools.Scripts" ref="eric6.WebBrowser.Tools.Scripts.html" />
               <section title="eric6.WebBrowser.Tools.WebBrowserTools" ref="eric6.WebBrowser.Tools.WebBrowserTools.html" />
@@ -1547,7 +1307,6 @@
           <section title="eric6.eric6_trpreviewer" ref="eric6.eric6_trpreviewer.html" />
           <section title="eric6.eric6_uipreviewer" ref="eric6.eric6_uipreviewer.html" />
           <section title="eric6.eric6_unittest" ref="eric6.eric6_unittest.html" />
-          <section title="eric6.eric6_webbrowser" ref="eric6.eric6_webbrowser.html" />
           <section title="eric6.eric6config" ref="eric6.eric6config.html" />
         </section>
         <section title="cleanupSource" ref="cleanupSource.html" />
@@ -1622,9 +1381,6 @@
       <keyword name="ASTVisitor.default" id="ASTVisitor.default" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.mccabe.html#ASTVisitor.default" />
       <keyword name="ASTVisitor.dispatch" id="ASTVisitor.dispatch" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.mccabe.html#ASTVisitor.dispatch" />
       <keyword name="ASTVisitor.preorder" id="ASTVisitor.preorder" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.mccabe.html#ASTVisitor.preorder" />
-      <keyword name="AboutAccessHandler" id="AboutAccessHandler" ref="eric6.Helpviewer.Network.AboutAccessHandler.html#AboutAccessHandler" />
-      <keyword name="AboutAccessHandler (Module)" id="AboutAccessHandler (Module)" ref="eric6.Helpviewer.Network.AboutAccessHandler.html" />
-      <keyword name="AboutAccessHandler.createRequest" id="AboutAccessHandler.createRequest" ref="eric6.Helpviewer.Network.AboutAccessHandler.html#AboutAccessHandler.createRequest" />
       <keyword name="AboutDialog" id="AboutDialog" ref="eric6.Plugins.AboutPlugin.AboutDialog.html#AboutDialog" />
       <keyword name="AboutDialog (Constructor)" id="AboutDialog (Constructor)" ref="eric6.Plugins.AboutPlugin.AboutDialog.html#AboutDialog.__init__" />
       <keyword name="AboutDialog (Module)" id="AboutDialog (Module)" ref="eric6.Plugins.AboutPlugin.AboutDialog.html" />
@@ -1637,171 +1393,87 @@
       <keyword name="AboutPlugin.__initMenu" id="AboutPlugin.__initMenu" ref="eric6.Plugins.PluginAbout.html#AboutPlugin.__initMenu" />
       <keyword name="AboutPlugin.activate" id="AboutPlugin.activate" ref="eric6.Plugins.PluginAbout.html#AboutPlugin.activate" />
       <keyword name="AboutPlugin.deactivate" id="AboutPlugin.deactivate" ref="eric6.Plugins.PluginAbout.html#AboutPlugin.deactivate" />
-      <keyword name="AdBlock (Package)" id="AdBlock (Package)" ref="index-eric6.Helpviewer.AdBlock.html" />
       <keyword name="AdBlock (Package)" id="AdBlock (Package)" ref="index-eric6.WebBrowser.AdBlock.html" />
-      <keyword name="AdBlockAccessHandler" id="AdBlockAccessHandler" ref="eric6.Helpviewer.AdBlock.AdBlockAccessHandler.html#AdBlockAccessHandler" />
-      <keyword name="AdBlockAccessHandler (Module)" id="AdBlockAccessHandler (Module)" ref="eric6.Helpviewer.AdBlock.AdBlockAccessHandler.html" />
-      <keyword name="AdBlockAccessHandler.createRequest" id="AdBlockAccessHandler.createRequest" ref="eric6.Helpviewer.AdBlock.AdBlockAccessHandler.html#AdBlockAccessHandler.createRequest" />
-      <keyword name="AdBlockBlockedNetworkReply" id="AdBlockBlockedNetworkReply" ref="eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.html#AdBlockBlockedNetworkReply" />
-      <keyword name="AdBlockBlockedNetworkReply (Constructor)" id="AdBlockBlockedNetworkReply (Constructor)" ref="eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.html#AdBlockBlockedNetworkReply.__init__" />
-      <keyword name="AdBlockBlockedNetworkReply (Module)" id="AdBlockBlockedNetworkReply (Module)" ref="eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.html" />
-      <keyword name="AdBlockBlockedNetworkReply.__fireSignals" id="AdBlockBlockedNetworkReply.__fireSignals" ref="eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.html#AdBlockBlockedNetworkReply.__fireSignals" />
-      <keyword name="AdBlockBlockedNetworkReply.abort" id="AdBlockBlockedNetworkReply.abort" ref="eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.html#AdBlockBlockedNetworkReply.abort" />
-      <keyword name="AdBlockBlockedNetworkReply.readData" id="AdBlockBlockedNetworkReply.readData" ref="eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.html#AdBlockBlockedNetworkReply.readData" />
-      <keyword name="AdBlockDialog" id="AdBlockDialog" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog" />
       <keyword name="AdBlockDialog" id="AdBlockDialog" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog" />
-      <keyword name="AdBlockDialog (Constructor)" id="AdBlockDialog (Constructor)" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__init__" />
       <keyword name="AdBlockDialog (Constructor)" id="AdBlockDialog (Constructor)" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.__init__" />
-      <keyword name="AdBlockDialog (Module)" id="AdBlockDialog (Module)" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html" />
       <keyword name="AdBlockDialog (Module)" id="AdBlockDialog (Module)" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html" />
-      <keyword name="AdBlockDialog.__aboutToShowActionMenu" id="AdBlockDialog.__aboutToShowActionMenu" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__aboutToShowActionMenu" />
       <keyword name="AdBlockDialog.__aboutToShowActionMenu" id="AdBlockDialog.__aboutToShowActionMenu" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.__aboutToShowActionMenu" />
-      <keyword name="AdBlockDialog.__addCustomRule" id="AdBlockDialog.__addCustomRule" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__addCustomRule" />
       <keyword name="AdBlockDialog.__addCustomRule" id="AdBlockDialog.__addCustomRule" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.__addCustomRule" />
-      <keyword name="AdBlockDialog.__browseSubscriptions" id="AdBlockDialog.__browseSubscriptions" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__browseSubscriptions" />
       <keyword name="AdBlockDialog.__browseSubscriptions" id="AdBlockDialog.__browseSubscriptions" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.__browseSubscriptions" />
-      <keyword name="AdBlockDialog.__learnAboutWritingFilters" id="AdBlockDialog.__learnAboutWritingFilters" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__learnAboutWritingFilters" />
       <keyword name="AdBlockDialog.__learnAboutWritingFilters" id="AdBlockDialog.__learnAboutWritingFilters" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.__learnAboutWritingFilters" />
-      <keyword name="AdBlockDialog.__load" id="AdBlockDialog.__load" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__load" />
       <keyword name="AdBlockDialog.__load" id="AdBlockDialog.__load" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.__load" />
-      <keyword name="AdBlockDialog.__loadSubscriptions" id="AdBlockDialog.__loadSubscriptions" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__loadSubscriptions" />
       <keyword name="AdBlockDialog.__loadSubscriptions" id="AdBlockDialog.__loadSubscriptions" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.__loadSubscriptions" />
       <keyword name="AdBlockDialog.__managerEnabledChanged" id="AdBlockDialog.__managerEnabledChanged" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.__managerEnabledChanged" />
-      <keyword name="AdBlockDialog.__removeCustomRule" id="AdBlockDialog.__removeCustomRule" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__removeCustomRule" />
       <keyword name="AdBlockDialog.__removeCustomRule" id="AdBlockDialog.__removeCustomRule" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.__removeCustomRule" />
-      <keyword name="AdBlockDialog.__removeSubscription" id="AdBlockDialog.__removeSubscription" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__removeSubscription" />
       <keyword name="AdBlockDialog.__removeSubscription" id="AdBlockDialog.__removeSubscription" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.__removeSubscription" />
-      <keyword name="AdBlockDialog.__setSubscriptionEnabled" id="AdBlockDialog.__setSubscriptionEnabled" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__setSubscriptionEnabled" />
       <keyword name="AdBlockDialog.__setSubscriptionEnabled" id="AdBlockDialog.__setSubscriptionEnabled" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.__setSubscriptionEnabled" />
-      <keyword name="AdBlockDialog.__switchSubscriptionEnabled" id="AdBlockDialog.__switchSubscriptionEnabled" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__switchSubscriptionEnabled" />
       <keyword name="AdBlockDialog.__switchSubscriptionEnabled" id="AdBlockDialog.__switchSubscriptionEnabled" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.__switchSubscriptionEnabled" />
-      <keyword name="AdBlockDialog.__updateAllSubscriptions" id="AdBlockDialog.__updateAllSubscriptions" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__updateAllSubscriptions" />
       <keyword name="AdBlockDialog.__updateAllSubscriptions" id="AdBlockDialog.__updateAllSubscriptions" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.__updateAllSubscriptions" />
-      <keyword name="AdBlockDialog.__updateSubscription" id="AdBlockDialog.__updateSubscription" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.__updateSubscription" />
       <keyword name="AdBlockDialog.__updateSubscription" id="AdBlockDialog.__updateSubscription" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.__updateSubscription" />
-      <keyword name="AdBlockDialog.addCustomRule" id="AdBlockDialog.addCustomRule" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.addCustomRule" />
       <keyword name="AdBlockDialog.addCustomRule" id="AdBlockDialog.addCustomRule" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.addCustomRule" />
-      <keyword name="AdBlockDialog.addSubscription" id="AdBlockDialog.addSubscription" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.addSubscription" />
       <keyword name="AdBlockDialog.addSubscription" id="AdBlockDialog.addSubscription" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.addSubscription" />
-      <keyword name="AdBlockDialog.on_adBlockGroup_toggled" id="AdBlockDialog.on_adBlockGroup_toggled" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.on_adBlockGroup_toggled" />
       <keyword name="AdBlockDialog.on_adBlockGroup_toggled" id="AdBlockDialog.on_adBlockGroup_toggled" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.on_adBlockGroup_toggled" />
-      <keyword name="AdBlockDialog.on_searchEdit_textChanged" id="AdBlockDialog.on_searchEdit_textChanged" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.on_searchEdit_textChanged" />
       <keyword name="AdBlockDialog.on_searchEdit_textChanged" id="AdBlockDialog.on_searchEdit_textChanged" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.on_searchEdit_textChanged" />
-      <keyword name="AdBlockDialog.on_subscriptionsTabWidget_currentChanged" id="AdBlockDialog.on_subscriptionsTabWidget_currentChanged" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.on_subscriptionsTabWidget_currentChanged" />
       <keyword name="AdBlockDialog.on_subscriptionsTabWidget_currentChanged" id="AdBlockDialog.on_subscriptionsTabWidget_currentChanged" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.on_subscriptionsTabWidget_currentChanged" />
-      <keyword name="AdBlockDialog.on_updateSpinBox_valueChanged" id="AdBlockDialog.on_updateSpinBox_valueChanged" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.on_updateSpinBox_valueChanged" />
       <keyword name="AdBlockDialog.on_updateSpinBox_valueChanged" id="AdBlockDialog.on_updateSpinBox_valueChanged" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.on_updateSpinBox_valueChanged" />
       <keyword name="AdBlockDialog.on_useLimitedEasyListCheckBox_clicked" id="AdBlockDialog.on_useLimitedEasyListCheckBox_clicked" ref="eric6.WebBrowser.AdBlock.AdBlockDialog.html#AdBlockDialog.on_useLimitedEasyListCheckBox_clicked" />
-      <keyword name="AdBlockDialog.showRule" id="AdBlockDialog.showRule" ref="eric6.Helpviewer.AdBlock.AdBlockDialog.html#AdBlockDialog.showRule" />
-      <keyword name="AdBlockExceptionsDialog" id="AdBlockExceptionsDialog" ref="eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog" />
       <keyword name="AdBlockExceptionsDialog" id="AdBlockExceptionsDialog" ref="eric6.WebBrowser.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog" />
-      <keyword name="AdBlockExceptionsDialog (Constructor)" id="AdBlockExceptionsDialog (Constructor)" ref="eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog.__init__" />
       <keyword name="AdBlockExceptionsDialog (Constructor)" id="AdBlockExceptionsDialog (Constructor)" ref="eric6.WebBrowser.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog.__init__" />
-      <keyword name="AdBlockExceptionsDialog (Module)" id="AdBlockExceptionsDialog (Module)" ref="eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.html" />
       <keyword name="AdBlockExceptionsDialog (Module)" id="AdBlockExceptionsDialog (Module)" ref="eric6.WebBrowser.AdBlock.AdBlockExceptionsDialog.html" />
-      <keyword name="AdBlockExceptionsDialog.accept" id="AdBlockExceptionsDialog.accept" ref="eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog.accept" />
       <keyword name="AdBlockExceptionsDialog.accept" id="AdBlockExceptionsDialog.accept" ref="eric6.WebBrowser.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog.accept" />
-      <keyword name="AdBlockExceptionsDialog.load" id="AdBlockExceptionsDialog.load" ref="eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog.load" />
       <keyword name="AdBlockExceptionsDialog.load" id="AdBlockExceptionsDialog.load" ref="eric6.WebBrowser.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog.load" />
-      <keyword name="AdBlockExceptionsDialog.on_addButton_clicked" id="AdBlockExceptionsDialog.on_addButton_clicked" ref="eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog.on_addButton_clicked" />
       <keyword name="AdBlockExceptionsDialog.on_addButton_clicked" id="AdBlockExceptionsDialog.on_addButton_clicked" ref="eric6.WebBrowser.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog.on_addButton_clicked" />
-      <keyword name="AdBlockExceptionsDialog.on_deleteButton_clicked" id="AdBlockExceptionsDialog.on_deleteButton_clicked" ref="eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog.on_deleteButton_clicked" />
       <keyword name="AdBlockExceptionsDialog.on_deleteButton_clicked" id="AdBlockExceptionsDialog.on_deleteButton_clicked" ref="eric6.WebBrowser.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog.on_deleteButton_clicked" />
-      <keyword name="AdBlockExceptionsDialog.on_hostEdit_textChanged" id="AdBlockExceptionsDialog.on_hostEdit_textChanged" ref="eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog.on_hostEdit_textChanged" />
       <keyword name="AdBlockExceptionsDialog.on_hostEdit_textChanged" id="AdBlockExceptionsDialog.on_hostEdit_textChanged" ref="eric6.WebBrowser.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog.on_hostEdit_textChanged" />
-      <keyword name="AdBlockExceptionsDialog.on_hostList_itemSelectionChanged" id="AdBlockExceptionsDialog.on_hostList_itemSelectionChanged" ref="eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog.on_hostList_itemSelectionChanged" />
       <keyword name="AdBlockExceptionsDialog.on_hostList_itemSelectionChanged" id="AdBlockExceptionsDialog.on_hostList_itemSelectionChanged" ref="eric6.WebBrowser.AdBlock.AdBlockExceptionsDialog.html#AdBlockExceptionsDialog.on_hostList_itemSelectionChanged" />
-      <keyword name="AdBlockIcon" id="AdBlockIcon" ref="eric6.Helpviewer.AdBlock.AdBlockIcon.html#AdBlockIcon" />
       <keyword name="AdBlockIcon" id="AdBlockIcon" ref="eric6.WebBrowser.AdBlock.AdBlockIcon.html#AdBlockIcon" />
-      <keyword name="AdBlockIcon (Constructor)" id="AdBlockIcon (Constructor)" ref="eric6.Helpviewer.AdBlock.AdBlockIcon.html#AdBlockIcon.__init__" />
       <keyword name="AdBlockIcon (Constructor)" id="AdBlockIcon (Constructor)" ref="eric6.WebBrowser.AdBlock.AdBlockIcon.html#AdBlockIcon.__init__" />
-      <keyword name="AdBlockIcon (Module)" id="AdBlockIcon (Module)" ref="eric6.Helpviewer.AdBlock.AdBlockIcon.html" />
       <keyword name="AdBlockIcon (Module)" id="AdBlockIcon (Module)" ref="eric6.WebBrowser.AdBlock.AdBlockIcon.html" />
-      <keyword name="AdBlockIcon.__createMenu" id="AdBlockIcon.__createMenu" ref="eric6.Helpviewer.AdBlock.AdBlockIcon.html#AdBlockIcon.__createMenu" />
       <keyword name="AdBlockIcon.__createMenu" id="AdBlockIcon.__createMenu" ref="eric6.WebBrowser.AdBlock.AdBlockIcon.html#AdBlockIcon.__createMenu" />
-      <keyword name="AdBlockIcon.__enableAdBlock" id="AdBlockIcon.__enableAdBlock" ref="eric6.Helpviewer.AdBlock.AdBlockIcon.html#AdBlockIcon.__enableAdBlock" />
       <keyword name="AdBlockIcon.__enableAdBlock" id="AdBlockIcon.__enableAdBlock" ref="eric6.WebBrowser.AdBlock.AdBlockIcon.html#AdBlockIcon.__enableAdBlock" />
-      <keyword name="AdBlockIcon.__isCurrentHostExcepted" id="AdBlockIcon.__isCurrentHostExcepted" ref="eric6.Helpviewer.AdBlock.AdBlockIcon.html#AdBlockIcon.__isCurrentHostExcepted" />
       <keyword name="AdBlockIcon.__isCurrentHostExcepted" id="AdBlockIcon.__isCurrentHostExcepted" ref="eric6.WebBrowser.AdBlock.AdBlockIcon.html#AdBlockIcon.__isCurrentHostExcepted" />
-      <keyword name="AdBlockIcon.__setException" id="AdBlockIcon.__setException" ref="eric6.Helpviewer.AdBlock.AdBlockIcon.html#AdBlockIcon.__setException" />
       <keyword name="AdBlockIcon.__setException" id="AdBlockIcon.__setException" ref="eric6.WebBrowser.AdBlock.AdBlockIcon.html#AdBlockIcon.__setException" />
-      <keyword name="AdBlockIcon.__showMenu" id="AdBlockIcon.__showMenu" ref="eric6.Helpviewer.AdBlock.AdBlockIcon.html#AdBlockIcon.__showMenu" />
       <keyword name="AdBlockIcon.__showMenu" id="AdBlockIcon.__showMenu" ref="eric6.WebBrowser.AdBlock.AdBlockIcon.html#AdBlockIcon.__showMenu" />
-      <keyword name="AdBlockIcon.currentChanged" id="AdBlockIcon.currentChanged" ref="eric6.Helpviewer.AdBlock.AdBlockIcon.html#AdBlockIcon.currentChanged" />
       <keyword name="AdBlockIcon.currentChanged" id="AdBlockIcon.currentChanged" ref="eric6.WebBrowser.AdBlock.AdBlockIcon.html#AdBlockIcon.currentChanged" />
-      <keyword name="AdBlockIcon.menuAction" id="AdBlockIcon.menuAction" ref="eric6.Helpviewer.AdBlock.AdBlockIcon.html#AdBlockIcon.menuAction" />
       <keyword name="AdBlockIcon.menuAction" id="AdBlockIcon.menuAction" ref="eric6.WebBrowser.AdBlock.AdBlockIcon.html#AdBlockIcon.menuAction" />
-      <keyword name="AdBlockIcon.setEnabled" id="AdBlockIcon.setEnabled" ref="eric6.Helpviewer.AdBlock.AdBlockIcon.html#AdBlockIcon.setEnabled" />
       <keyword name="AdBlockIcon.setEnabled" id="AdBlockIcon.setEnabled" ref="eric6.WebBrowser.AdBlock.AdBlockIcon.html#AdBlockIcon.setEnabled" />
-      <keyword name="AdBlockIcon.sourceChanged" id="AdBlockIcon.sourceChanged" ref="eric6.Helpviewer.AdBlock.AdBlockIcon.html#AdBlockIcon.sourceChanged" />
       <keyword name="AdBlockIcon.sourceChanged" id="AdBlockIcon.sourceChanged" ref="eric6.WebBrowser.AdBlock.AdBlockIcon.html#AdBlockIcon.sourceChanged" />
-      <keyword name="AdBlockManager" id="AdBlockManager" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager" />
       <keyword name="AdBlockManager" id="AdBlockManager" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager" />
-      <keyword name="AdBlockManager (Constructor)" id="AdBlockManager (Constructor)" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.__init__" />
       <keyword name="AdBlockManager (Constructor)" id="AdBlockManager (Constructor)" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.__init__" />
-      <keyword name="AdBlockManager (Module)" id="AdBlockManager (Module)" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html" />
       <keyword name="AdBlockManager (Module)" id="AdBlockManager (Module)" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html" />
       <keyword name="AdBlockManager.__canBeBlocked" id="AdBlockManager.__canBeBlocked" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.__canBeBlocked" />
-      <keyword name="AdBlockManager.__customSubscriptionLocation" id="AdBlockManager.__customSubscriptionLocation" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.__customSubscriptionLocation" />
       <keyword name="AdBlockManager.__customSubscriptionLocation" id="AdBlockManager.__customSubscriptionLocation" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.__customSubscriptionLocation" />
-      <keyword name="AdBlockManager.__customSubscriptionUrl" id="AdBlockManager.__customSubscriptionUrl" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.__customSubscriptionUrl" />
       <keyword name="AdBlockManager.__customSubscriptionUrl" id="AdBlockManager.__customSubscriptionUrl" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.__customSubscriptionUrl" />
-      <keyword name="AdBlockManager.__loadSubscriptions" id="AdBlockManager.__loadSubscriptions" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.__loadSubscriptions" />
       <keyword name="AdBlockManager.__loadSubscriptions" id="AdBlockManager.__loadSubscriptions" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.__loadSubscriptions" />
       <keyword name="AdBlockManager.__rulesChanged" id="AdBlockManager.__rulesChanged" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.__rulesChanged" />
       <keyword name="AdBlockManager.__updateMatcher" id="AdBlockManager.__updateMatcher" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.__updateMatcher" />
-      <keyword name="AdBlockManager.addException" id="AdBlockManager.addException" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.addException" />
       <keyword name="AdBlockManager.addException" id="AdBlockManager.addException" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.addException" />
-      <keyword name="AdBlockManager.addSubscription" id="AdBlockManager.addSubscription" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.addSubscription" />
       <keyword name="AdBlockManager.addSubscription" id="AdBlockManager.addSubscription" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.addSubscription" />
       <keyword name="AdBlockManager.addSubscriptionFromUrl" id="AdBlockManager.addSubscriptionFromUrl" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.addSubscriptionFromUrl" />
       <keyword name="AdBlockManager.block" id="AdBlockManager.block" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.block" />
       <keyword name="AdBlockManager.canRunOnScheme" id="AdBlockManager.canRunOnScheme" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.canRunOnScheme" />
-      <keyword name="AdBlockManager.close" id="AdBlockManager.close" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.close" />
       <keyword name="AdBlockManager.close" id="AdBlockManager.close" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.close" />
-      <keyword name="AdBlockManager.customRules" id="AdBlockManager.customRules" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.customRules" />
       <keyword name="AdBlockManager.customRules" id="AdBlockManager.customRules" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.customRules" />
-      <keyword name="AdBlockManager.elementHidingRules" id="AdBlockManager.elementHidingRules" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.elementHidingRules" />
       <keyword name="AdBlockManager.elementHidingRules" id="AdBlockManager.elementHidingRules" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.elementHidingRules" />
-      <keyword name="AdBlockManager.elementHidingRulesForDomain" id="AdBlockManager.elementHidingRulesForDomain" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.elementHidingRulesForDomain" />
       <keyword name="AdBlockManager.elementHidingRulesForDomain" id="AdBlockManager.elementHidingRulesForDomain" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.elementHidingRulesForDomain" />
-      <keyword name="AdBlockManager.exceptions" id="AdBlockManager.exceptions" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.exceptions" />
       <keyword name="AdBlockManager.exceptions" id="AdBlockManager.exceptions" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.exceptions" />
       <keyword name="AdBlockManager.getDefaultSubscriptionUrl" id="AdBlockManager.getDefaultSubscriptionUrl" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.getDefaultSubscriptionUrl" />
-      <keyword name="AdBlockManager.getRequiresSubscriptions" id="AdBlockManager.getRequiresSubscriptions" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.getRequiresSubscriptions" />
       <keyword name="AdBlockManager.getRequiresSubscriptions" id="AdBlockManager.getRequiresSubscriptions" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.getRequiresSubscriptions" />
-      <keyword name="AdBlockManager.isEnabled" id="AdBlockManager.isEnabled" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.isEnabled" />
       <keyword name="AdBlockManager.isEnabled" id="AdBlockManager.isEnabled" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.isEnabled" />
-      <keyword name="AdBlockManager.isHostExcepted" id="AdBlockManager.isHostExcepted" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.isHostExcepted" />
       <keyword name="AdBlockManager.isHostExcepted" id="AdBlockManager.isHostExcepted" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.isHostExcepted" />
-      <keyword name="AdBlockManager.load" id="AdBlockManager.load" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.load" />
       <keyword name="AdBlockManager.load" id="AdBlockManager.load" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.load" />
-      <keyword name="AdBlockManager.loadRequiredSubscription" id="AdBlockManager.loadRequiredSubscription" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.loadRequiredSubscription" />
       <keyword name="AdBlockManager.loadRequiredSubscription" id="AdBlockManager.loadRequiredSubscription" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.loadRequiredSubscription" />
-      <keyword name="AdBlockManager.network" id="AdBlockManager.network" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.network" />
-      <keyword name="AdBlockManager.page" id="AdBlockManager.page" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.page" />
       <keyword name="AdBlockManager.page" id="AdBlockManager.page" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.page" />
-      <keyword name="AdBlockManager.removeException" id="AdBlockManager.removeException" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.removeException" />
       <keyword name="AdBlockManager.removeException" id="AdBlockManager.removeException" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.removeException" />
-      <keyword name="AdBlockManager.removeSubscription" id="AdBlockManager.removeSubscription" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.removeSubscription" />
       <keyword name="AdBlockManager.removeSubscription" id="AdBlockManager.removeSubscription" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.removeSubscription" />
-      <keyword name="AdBlockManager.save" id="AdBlockManager.save" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.save" />
       <keyword name="AdBlockManager.save" id="AdBlockManager.save" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.save" />
-      <keyword name="AdBlockManager.setEnabled" id="AdBlockManager.setEnabled" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.setEnabled" />
       <keyword name="AdBlockManager.setEnabled" id="AdBlockManager.setEnabled" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.setEnabled" />
-      <keyword name="AdBlockManager.setExceptions" id="AdBlockManager.setExceptions" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.setExceptions" />
       <keyword name="AdBlockManager.setExceptions" id="AdBlockManager.setExceptions" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.setExceptions" />
       <keyword name="AdBlockManager.setUseLimitedEasyList" id="AdBlockManager.setUseLimitedEasyList" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.setUseLimitedEasyList" />
-      <keyword name="AdBlockManager.showDialog" id="AdBlockManager.showDialog" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.showDialog" />
       <keyword name="AdBlockManager.showDialog" id="AdBlockManager.showDialog" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.showDialog" />
-      <keyword name="AdBlockManager.showExceptionsDialog" id="AdBlockManager.showExceptionsDialog" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.showExceptionsDialog" />
       <keyword name="AdBlockManager.showExceptionsDialog" id="AdBlockManager.showExceptionsDialog" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.showExceptionsDialog" />
-      <keyword name="AdBlockManager.showRule" id="AdBlockManager.showRule" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.showRule" />
-      <keyword name="AdBlockManager.subscription" id="AdBlockManager.subscription" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.subscription" />
       <keyword name="AdBlockManager.subscription" id="AdBlockManager.subscription" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.subscription" />
-      <keyword name="AdBlockManager.subscriptions" id="AdBlockManager.subscriptions" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.subscriptions" />
       <keyword name="AdBlockManager.subscriptions" id="AdBlockManager.subscriptions" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.subscriptions" />
-      <keyword name="AdBlockManager.updateAllSubscriptions" id="AdBlockManager.updateAllSubscriptions" ref="eric6.Helpviewer.AdBlock.AdBlockManager.html#AdBlockManager.updateAllSubscriptions" />
       <keyword name="AdBlockManager.updateAllSubscriptions" id="AdBlockManager.updateAllSubscriptions" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.updateAllSubscriptions" />
       <keyword name="AdBlockManager.useLimitedEasyList" id="AdBlockManager.useLimitedEasyList" ref="eric6.WebBrowser.AdBlock.AdBlockManager.html#AdBlockManager.useLimitedEasyList" />
       <keyword name="AdBlockMatcher" id="AdBlockMatcher" ref="eric6.WebBrowser.AdBlock.AdBlockMatcher.html#AdBlockMatcher" />
@@ -1814,24 +1486,12 @@
       <keyword name="AdBlockMatcher.elementHidingRulesForDomain" id="AdBlockMatcher.elementHidingRulesForDomain" ref="eric6.WebBrowser.AdBlock.AdBlockMatcher.html#AdBlockMatcher.elementHidingRulesForDomain" />
       <keyword name="AdBlockMatcher.match" id="AdBlockMatcher.match" ref="eric6.WebBrowser.AdBlock.AdBlockMatcher.html#AdBlockMatcher.match" />
       <keyword name="AdBlockMatcher.update" id="AdBlockMatcher.update" ref="eric6.WebBrowser.AdBlock.AdBlockMatcher.html#AdBlockMatcher.update" />
-      <keyword name="AdBlockNetwork" id="AdBlockNetwork" ref="eric6.Helpviewer.AdBlock.AdBlockNetwork.html#AdBlockNetwork" />
-      <keyword name="AdBlockNetwork (Module)" id="AdBlockNetwork (Module)" ref="eric6.Helpviewer.AdBlock.AdBlockNetwork.html" />
-      <keyword name="AdBlockNetwork.__canBeBlocked" id="AdBlockNetwork.__canBeBlocked" ref="eric6.Helpviewer.AdBlock.AdBlockNetwork.html#AdBlockNetwork.__canBeBlocked" />
-      <keyword name="AdBlockNetwork.block" id="AdBlockNetwork.block" ref="eric6.Helpviewer.AdBlock.AdBlockNetwork.html#AdBlockNetwork.block" />
-      <keyword name="AdBlockNetwork.canRunOnScheme" id="AdBlockNetwork.canRunOnScheme" ref="eric6.Helpviewer.AdBlock.AdBlockNetwork.html#AdBlockNetwork.canRunOnScheme" />
-      <keyword name="AdBlockPage" id="AdBlockPage" ref="eric6.Helpviewer.AdBlock.AdBlockPage.html#AdBlockPage" />
       <keyword name="AdBlockPage" id="AdBlockPage" ref="eric6.WebBrowser.AdBlock.AdBlockPage.html#AdBlockPage" />
-      <keyword name="AdBlockPage (Module)" id="AdBlockPage (Module)" ref="eric6.Helpviewer.AdBlock.AdBlockPage.html" />
       <keyword name="AdBlockPage (Module)" id="AdBlockPage (Module)" ref="eric6.WebBrowser.AdBlock.AdBlockPage.html" />
-      <keyword name="AdBlockPage.hideBlockedPageEntries" id="AdBlockPage.hideBlockedPageEntries" ref="eric6.Helpviewer.AdBlock.AdBlockPage.html#AdBlockPage.hideBlockedPageEntries" />
       <keyword name="AdBlockPage.hideBlockedPageEntries" id="AdBlockPage.hideBlockedPageEntries" ref="eric6.WebBrowser.AdBlock.AdBlockPage.html#AdBlockPage.hideBlockedPageEntries" />
-      <keyword name="AdBlockRule" id="AdBlockRule" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule" />
       <keyword name="AdBlockRule" id="AdBlockRule" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule" />
-      <keyword name="AdBlockRule (Constructor)" id="AdBlockRule (Constructor)" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.__init__" />
       <keyword name="AdBlockRule (Constructor)" id="AdBlockRule (Constructor)" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.__init__" />
-      <keyword name="AdBlockRule (Module)" id="AdBlockRule (Module)" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html" />
       <keyword name="AdBlockRule (Module)" id="AdBlockRule (Module)" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html" />
-      <keyword name="AdBlockRule.__convertPatternToRegExp" id="AdBlockRule.__convertPatternToRegExp" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.__convertPatternToRegExp" />
       <keyword name="AdBlockRule.__convertPatternToRegExp" id="AdBlockRule.__convertPatternToRegExp" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.__convertPatternToRegExp" />
       <keyword name="AdBlockRule.__filterIsOnlyDomain" id="AdBlockRule.__filterIsOnlyDomain" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.__filterIsOnlyDomain" />
       <keyword name="AdBlockRule.__filterIsOnlyEndsMatch" id="AdBlockRule.__filterIsOnlyEndsMatch" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.__filterIsOnlyEndsMatch" />
@@ -1839,9 +1499,7 @@
       <keyword name="AdBlockRule.__hasOption" id="AdBlockRule.__hasOption" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.__hasOption" />
       <keyword name="AdBlockRule.__isMatchingDomain" id="AdBlockRule.__isMatchingDomain" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.__isMatchingDomain" />
       <keyword name="AdBlockRule.__isMatchingRegExpStrings" id="AdBlockRule.__isMatchingRegExpStrings" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.__isMatchingRegExpStrings" />
-      <keyword name="AdBlockRule.__parseDomains" id="AdBlockRule.__parseDomains" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.__parseDomains" />
       <keyword name="AdBlockRule.__parseDomains" id="AdBlockRule.__parseDomains" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.__parseDomains" />
-      <keyword name="AdBlockRule.__parseFilter" id="AdBlockRule.__parseFilter" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.__parseFilter" />
       <keyword name="AdBlockRule.__parseFilter" id="AdBlockRule.__parseFilter" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.__parseFilter" />
       <keyword name="AdBlockRule.__parseRegExpFilter" id="AdBlockRule.__parseRegExpFilter" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.__parseRegExpFilter" />
       <keyword name="AdBlockRule.__setException" id="AdBlockRule.__setException" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.__setException" />
@@ -1851,37 +1509,23 @@
       <keyword name="AdBlockRule.blockedDomains" id="AdBlockRule.blockedDomains" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.blockedDomains" />
       <keyword name="AdBlockRule.caseSensitivity" id="AdBlockRule.caseSensitivity" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.caseSensitivity" />
       <keyword name="AdBlockRule.copyFrom" id="AdBlockRule.copyFrom" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.copyFrom" />
-      <keyword name="AdBlockRule.cssSelector" id="AdBlockRule.cssSelector" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.cssSelector" />
       <keyword name="AdBlockRule.cssSelector" id="AdBlockRule.cssSelector" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.cssSelector" />
-      <keyword name="AdBlockRule.filter" id="AdBlockRule.filter" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.filter" />
       <keyword name="AdBlockRule.filter" id="AdBlockRule.filter" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.filter" />
       <keyword name="AdBlockRule.getRegExpAndMatchers" id="AdBlockRule.getRegExpAndMatchers" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.getRegExpAndMatchers" />
-      <keyword name="AdBlockRule.isCSSRule" id="AdBlockRule.isCSSRule" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.isCSSRule" />
       <keyword name="AdBlockRule.isCSSRule" id="AdBlockRule.isCSSRule" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.isCSSRule" />
-      <keyword name="AdBlockRule.isComment" id="AdBlockRule.isComment" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.isComment" />
       <keyword name="AdBlockRule.isComment" id="AdBlockRule.isComment" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.isComment" />
-      <keyword name="AdBlockRule.isDocument" id="AdBlockRule.isDocument" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.isDocument" />
       <keyword name="AdBlockRule.isDocument" id="AdBlockRule.isDocument" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.isDocument" />
-      <keyword name="AdBlockRule.isDomainRestricted" id="AdBlockRule.isDomainRestricted" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.isDomainRestricted" />
       <keyword name="AdBlockRule.isDomainRestricted" id="AdBlockRule.isDomainRestricted" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.isDomainRestricted" />
-      <keyword name="AdBlockRule.isElementHiding" id="AdBlockRule.isElementHiding" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.isElementHiding" />
       <keyword name="AdBlockRule.isElementHiding" id="AdBlockRule.isElementHiding" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.isElementHiding" />
-      <keyword name="AdBlockRule.isEnabled" id="AdBlockRule.isEnabled" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.isEnabled" />
       <keyword name="AdBlockRule.isEnabled" id="AdBlockRule.isEnabled" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.isEnabled" />
-      <keyword name="AdBlockRule.isException" id="AdBlockRule.isException" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.isException" />
       <keyword name="AdBlockRule.isException" id="AdBlockRule.isException" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.isException" />
-      <keyword name="AdBlockRule.isHeader" id="AdBlockRule.isHeader" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.isHeader" />
       <keyword name="AdBlockRule.isHeader" id="AdBlockRule.isHeader" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.isHeader" />
-      <keyword name="AdBlockRule.isInternalDisabled" id="AdBlockRule.isInternalDisabled" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.isInternalDisabled" />
       <keyword name="AdBlockRule.isInternalDisabled" id="AdBlockRule.isInternalDisabled" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.isInternalDisabled" />
-      <keyword name="AdBlockRule.isSlow" id="AdBlockRule.isSlow" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.isSlow" />
       <keyword name="AdBlockRule.isSlow" id="AdBlockRule.isSlow" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.isSlow" />
-      <keyword name="AdBlockRule.matchDomain" id="AdBlockRule.matchDomain" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.matchDomain" />
       <keyword name="AdBlockRule.matchDomain" id="AdBlockRule.matchDomain" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.matchDomain" />
       <keyword name="AdBlockRule.matchFont" id="AdBlockRule.matchFont" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.matchFont" />
       <keyword name="AdBlockRule.matchImage" id="AdBlockRule.matchImage" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.matchImage" />
       <keyword name="AdBlockRule.matchMedia" id="AdBlockRule.matchMedia" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.matchMedia" />
-      <keyword name="AdBlockRule.matchObject" id="AdBlockRule.matchObject" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.matchObject" />
       <keyword name="AdBlockRule.matchObject" id="AdBlockRule.matchObject" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.matchObject" />
       <keyword name="AdBlockRule.matchObjectSubrequest" id="AdBlockRule.matchObjectSubrequest" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.matchObjectSubrequest" />
       <keyword name="AdBlockRule.matchOther" id="AdBlockRule.matchOther" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.matchOther" />
@@ -1889,28 +1533,19 @@
       <keyword name="AdBlockRule.matchScript" id="AdBlockRule.matchScript" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.matchScript" />
       <keyword name="AdBlockRule.matchString" id="AdBlockRule.matchString" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.matchString" />
       <keyword name="AdBlockRule.matchStyleSheet" id="AdBlockRule.matchStyleSheet" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.matchStyleSheet" />
-      <keyword name="AdBlockRule.matchSubdocument" id="AdBlockRule.matchSubdocument" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.matchSubdocument" />
       <keyword name="AdBlockRule.matchSubdocument" id="AdBlockRule.matchSubdocument" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.matchSubdocument" />
-      <keyword name="AdBlockRule.matchThirdParty" id="AdBlockRule.matchThirdParty" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.matchThirdParty" />
       <keyword name="AdBlockRule.matchThirdParty" id="AdBlockRule.matchThirdParty" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.matchThirdParty" />
-      <keyword name="AdBlockRule.matchXmlHttpRequest" id="AdBlockRule.matchXmlHttpRequest" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.matchXmlHttpRequest" />
       <keyword name="AdBlockRule.matchXmlHttpRequest" id="AdBlockRule.matchXmlHttpRequest" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.matchXmlHttpRequest" />
-      <keyword name="AdBlockRule.networkMatch" id="AdBlockRule.networkMatch" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.networkMatch" />
       <keyword name="AdBlockRule.networkMatch" id="AdBlockRule.networkMatch" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.networkMatch" />
       <keyword name="AdBlockRule.ruleExceptions" id="AdBlockRule.ruleExceptions" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.ruleExceptions" />
       <keyword name="AdBlockRule.ruleOptions" id="AdBlockRule.ruleOptions" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.ruleOptions" />
       <keyword name="AdBlockRule.ruleType" id="AdBlockRule.ruleType" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.ruleType" />
-      <keyword name="AdBlockRule.setEnabled" id="AdBlockRule.setEnabled" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.setEnabled" />
       <keyword name="AdBlockRule.setEnabled" id="AdBlockRule.setEnabled" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.setEnabled" />
-      <keyword name="AdBlockRule.setException" id="AdBlockRule.setException" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.setException" />
       <keyword name="AdBlockRule.setException" id="AdBlockRule.setException" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.setException" />
-      <keyword name="AdBlockRule.setFilter" id="AdBlockRule.setFilter" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.setFilter" />
       <keyword name="AdBlockRule.setFilter" id="AdBlockRule.setFilter" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.setFilter" />
       <keyword name="AdBlockRule.setOption" id="AdBlockRule.setOption" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.setOption" />
       <keyword name="AdBlockRule.setSubscription" id="AdBlockRule.setSubscription" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.setSubscription" />
-      <keyword name="AdBlockRule.subscription" id="AdBlockRule.subscription" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.subscription" />
       <keyword name="AdBlockRule.subscription" id="AdBlockRule.subscription" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.subscription" />
-      <keyword name="AdBlockRule.urlMatch" id="AdBlockRule.urlMatch" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#AdBlockRule.urlMatch" />
       <keyword name="AdBlockRule.urlMatch" id="AdBlockRule.urlMatch" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRule.urlMatch" />
       <keyword name="AdBlockRuleOption" id="AdBlockRuleOption" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRuleOption" />
       <keyword name="AdBlockRuleType" id="AdBlockRuleType" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#AdBlockRuleType" />
@@ -1924,145 +1559,72 @@
       <keyword name="AdBlockSearchTree.find" id="AdBlockSearchTree.find" ref="eric6.WebBrowser.AdBlock.AdBlockSearchTree.html#AdBlockSearchTree.find" />
       <keyword name="AdBlockSearchTreeNode" id="AdBlockSearchTreeNode" ref="eric6.WebBrowser.AdBlock.AdBlockSearchTree.html#AdBlockSearchTreeNode" />
       <keyword name="AdBlockSearchTreeNode (Constructor)" id="AdBlockSearchTreeNode (Constructor)" ref="eric6.WebBrowser.AdBlock.AdBlockSearchTree.html#AdBlockSearchTreeNode.__init__" />
-      <keyword name="AdBlockSubscription" id="AdBlockSubscription" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription" />
       <keyword name="AdBlockSubscription" id="AdBlockSubscription" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription" />
-      <keyword name="AdBlockSubscription (Constructor)" id="AdBlockSubscription (Constructor)" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.__init__" />
       <keyword name="AdBlockSubscription (Constructor)" id="AdBlockSubscription (Constructor)" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.__init__" />
-      <keyword name="AdBlockSubscription (Module)" id="AdBlockSubscription (Module)" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html" />
       <keyword name="AdBlockSubscription (Module)" id="AdBlockSubscription (Module)" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html" />
-      <keyword name="AdBlockSubscription.__loadRules" id="AdBlockSubscription.__loadRules" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.__loadRules" />
       <keyword name="AdBlockSubscription.__loadRules" id="AdBlockSubscription.__loadRules" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.__loadRules" />
-      <keyword name="AdBlockSubscription.__parseUrl" id="AdBlockSubscription.__parseUrl" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.__parseUrl" />
       <keyword name="AdBlockSubscription.__parseUrl" id="AdBlockSubscription.__parseUrl" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.__parseUrl" />
-      <keyword name="AdBlockSubscription.__populateCache" id="AdBlockSubscription.__populateCache" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.__populateCache" />
-      <keyword name="AdBlockSubscription.__rulesDownloaded" id="AdBlockSubscription.__rulesDownloaded" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.__rulesDownloaded" />
       <keyword name="AdBlockSubscription.__rulesDownloaded" id="AdBlockSubscription.__rulesDownloaded" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.__rulesDownloaded" />
-      <keyword name="AdBlockSubscription.__validateCheckSum" id="AdBlockSubscription.__validateCheckSum" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.__validateCheckSum" />
       <keyword name="AdBlockSubscription.__validateCheckSum" id="AdBlockSubscription.__validateCheckSum" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.__validateCheckSum" />
-      <keyword name="AdBlockSubscription.adBlockDisabledForUrl" id="AdBlockSubscription.adBlockDisabledForUrl" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.adBlockDisabledForUrl" />
-      <keyword name="AdBlockSubscription.addRule" id="AdBlockSubscription.addRule" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.addRule" />
       <keyword name="AdBlockSubscription.addRule" id="AdBlockSubscription.addRule" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.addRule" />
-      <keyword name="AdBlockSubscription.allRules" id="AdBlockSubscription.allRules" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.allRules" />
       <keyword name="AdBlockSubscription.allRules" id="AdBlockSubscription.allRules" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.allRules" />
-      <keyword name="AdBlockSubscription.canBeRemoved" id="AdBlockSubscription.canBeRemoved" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.canBeRemoved" />
       <keyword name="AdBlockSubscription.canBeRemoved" id="AdBlockSubscription.canBeRemoved" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.canBeRemoved" />
-      <keyword name="AdBlockSubscription.canEditRules" id="AdBlockSubscription.canEditRules" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.canEditRules" />
       <keyword name="AdBlockSubscription.canEditRules" id="AdBlockSubscription.canEditRules" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.canEditRules" />
-      <keyword name="AdBlockSubscription.checkForUpdate" id="AdBlockSubscription.checkForUpdate" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.checkForUpdate" />
       <keyword name="AdBlockSubscription.checkForUpdate" id="AdBlockSubscription.checkForUpdate" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.checkForUpdate" />
-      <keyword name="AdBlockSubscription.elemHideDisabledForUrl" id="AdBlockSubscription.elemHideDisabledForUrl" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.elemHideDisabledForUrl" />
-      <keyword name="AdBlockSubscription.elementHidingRules" id="AdBlockSubscription.elementHidingRules" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.elementHidingRules" />
-      <keyword name="AdBlockSubscription.elementHidingRulesForDomain" id="AdBlockSubscription.elementHidingRulesForDomain" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.elementHidingRulesForDomain" />
-      <keyword name="AdBlockSubscription.isEnabled" id="AdBlockSubscription.isEnabled" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.isEnabled" />
       <keyword name="AdBlockSubscription.isEnabled" id="AdBlockSubscription.isEnabled" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.isEnabled" />
-      <keyword name="AdBlockSubscription.lastUpdate" id="AdBlockSubscription.lastUpdate" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.lastUpdate" />
       <keyword name="AdBlockSubscription.lastUpdate" id="AdBlockSubscription.lastUpdate" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.lastUpdate" />
-      <keyword name="AdBlockSubscription.location" id="AdBlockSubscription.location" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.location" />
       <keyword name="AdBlockSubscription.location" id="AdBlockSubscription.location" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.location" />
-      <keyword name="AdBlockSubscription.match" id="AdBlockSubscription.match" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.match" />
-      <keyword name="AdBlockSubscription.removeRule" id="AdBlockSubscription.removeRule" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.removeRule" />
       <keyword name="AdBlockSubscription.removeRule" id="AdBlockSubscription.removeRule" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.removeRule" />
-      <keyword name="AdBlockSubscription.replaceRule" id="AdBlockSubscription.replaceRule" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.replaceRule" />
       <keyword name="AdBlockSubscription.replaceRule" id="AdBlockSubscription.replaceRule" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.replaceRule" />
-      <keyword name="AdBlockSubscription.requiresLocation" id="AdBlockSubscription.requiresLocation" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.requiresLocation" />
       <keyword name="AdBlockSubscription.requiresLocation" id="AdBlockSubscription.requiresLocation" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.requiresLocation" />
-      <keyword name="AdBlockSubscription.rule" id="AdBlockSubscription.rule" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.rule" />
       <keyword name="AdBlockSubscription.rule" id="AdBlockSubscription.rule" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.rule" />
-      <keyword name="AdBlockSubscription.rulesFileName" id="AdBlockSubscription.rulesFileName" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.rulesFileName" />
       <keyword name="AdBlockSubscription.rulesFileName" id="AdBlockSubscription.rulesFileName" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.rulesFileName" />
-      <keyword name="AdBlockSubscription.saveRules" id="AdBlockSubscription.saveRules" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.saveRules" />
       <keyword name="AdBlockSubscription.saveRules" id="AdBlockSubscription.saveRules" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.saveRules" />
-      <keyword name="AdBlockSubscription.setEnabled" id="AdBlockSubscription.setEnabled" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.setEnabled" />
       <keyword name="AdBlockSubscription.setEnabled" id="AdBlockSubscription.setEnabled" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.setEnabled" />
-      <keyword name="AdBlockSubscription.setLocation" id="AdBlockSubscription.setLocation" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.setLocation" />
       <keyword name="AdBlockSubscription.setLocation" id="AdBlockSubscription.setLocation" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.setLocation" />
-      <keyword name="AdBlockSubscription.setRuleEnabled" id="AdBlockSubscription.setRuleEnabled" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.setRuleEnabled" />
       <keyword name="AdBlockSubscription.setRuleEnabled" id="AdBlockSubscription.setRuleEnabled" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.setRuleEnabled" />
-      <keyword name="AdBlockSubscription.setTitle" id="AdBlockSubscription.setTitle" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.setTitle" />
       <keyword name="AdBlockSubscription.setTitle" id="AdBlockSubscription.setTitle" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.setTitle" />
-      <keyword name="AdBlockSubscription.title" id="AdBlockSubscription.title" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.title" />
       <keyword name="AdBlockSubscription.title" id="AdBlockSubscription.title" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.title" />
-      <keyword name="AdBlockSubscription.updateNow" id="AdBlockSubscription.updateNow" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.updateNow" />
       <keyword name="AdBlockSubscription.updateNow" id="AdBlockSubscription.updateNow" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.updateNow" />
-      <keyword name="AdBlockSubscription.url" id="AdBlockSubscription.url" ref="eric6.Helpviewer.AdBlock.AdBlockSubscription.html#AdBlockSubscription.url" />
       <keyword name="AdBlockSubscription.url" id="AdBlockSubscription.url" ref="eric6.WebBrowser.AdBlock.AdBlockSubscription.html#AdBlockSubscription.url" />
-      <keyword name="AdBlockTreeWidget" id="AdBlockTreeWidget" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget" />
       <keyword name="AdBlockTreeWidget" id="AdBlockTreeWidget" ref="eric6.WebBrowser.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget" />
-      <keyword name="AdBlockTreeWidget (Constructor)" id="AdBlockTreeWidget (Constructor)" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__init__" />
       <keyword name="AdBlockTreeWidget (Constructor)" id="AdBlockTreeWidget (Constructor)" ref="eric6.WebBrowser.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__init__" />
-      <keyword name="AdBlockTreeWidget (Module)" id="AdBlockTreeWidget (Module)" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html" />
       <keyword name="AdBlockTreeWidget (Module)" id="AdBlockTreeWidget (Module)" ref="eric6.WebBrowser.AdBlock.AdBlockTreeWidget.html" />
-      <keyword name="AdBlockTreeWidget.__adjustItemFeatures" id="AdBlockTreeWidget.__adjustItemFeatures" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__adjustItemFeatures" />
       <keyword name="AdBlockTreeWidget.__adjustItemFeatures" id="AdBlockTreeWidget.__adjustItemFeatures" ref="eric6.WebBrowser.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__adjustItemFeatures" />
-      <keyword name="AdBlockTreeWidget.__contextMenuRequested" id="AdBlockTreeWidget.__contextMenuRequested" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__contextMenuRequested" />
       <keyword name="AdBlockTreeWidget.__contextMenuRequested" id="AdBlockTreeWidget.__contextMenuRequested" ref="eric6.WebBrowser.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__contextMenuRequested" />
-      <keyword name="AdBlockTreeWidget.__copyFilter" id="AdBlockTreeWidget.__copyFilter" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__copyFilter" />
       <keyword name="AdBlockTreeWidget.__copyFilter" id="AdBlockTreeWidget.__copyFilter" ref="eric6.WebBrowser.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__copyFilter" />
-      <keyword name="AdBlockTreeWidget.__itemChanged" id="AdBlockTreeWidget.__itemChanged" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__itemChanged" />
       <keyword name="AdBlockTreeWidget.__itemChanged" id="AdBlockTreeWidget.__itemChanged" ref="eric6.WebBrowser.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__itemChanged" />
-      <keyword name="AdBlockTreeWidget.__subscriptionChanged" id="AdBlockTreeWidget.__subscriptionChanged" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__subscriptionChanged" />
       <keyword name="AdBlockTreeWidget.__subscriptionChanged" id="AdBlockTreeWidget.__subscriptionChanged" ref="eric6.WebBrowser.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.__subscriptionChanged" />
-      <keyword name="AdBlockTreeWidget.addRule" id="AdBlockTreeWidget.addRule" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.addRule" />
       <keyword name="AdBlockTreeWidget.addRule" id="AdBlockTreeWidget.addRule" ref="eric6.WebBrowser.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.addRule" />
-      <keyword name="AdBlockTreeWidget.keyPressEvent" id="AdBlockTreeWidget.keyPressEvent" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.keyPressEvent" />
       <keyword name="AdBlockTreeWidget.keyPressEvent" id="AdBlockTreeWidget.keyPressEvent" ref="eric6.WebBrowser.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.keyPressEvent" />
-      <keyword name="AdBlockTreeWidget.refresh" id="AdBlockTreeWidget.refresh" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.refresh" />
       <keyword name="AdBlockTreeWidget.refresh" id="AdBlockTreeWidget.refresh" ref="eric6.WebBrowser.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.refresh" />
-      <keyword name="AdBlockTreeWidget.removeRule" id="AdBlockTreeWidget.removeRule" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.removeRule" />
       <keyword name="AdBlockTreeWidget.removeRule" id="AdBlockTreeWidget.removeRule" ref="eric6.WebBrowser.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.removeRule" />
-      <keyword name="AdBlockTreeWidget.showRule" id="AdBlockTreeWidget.showRule" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.showRule" />
       <keyword name="AdBlockTreeWidget.showRule" id="AdBlockTreeWidget.showRule" ref="eric6.WebBrowser.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.showRule" />
-      <keyword name="AdBlockTreeWidget.subscription" id="AdBlockTreeWidget.subscription" ref="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.subscription" />
       <keyword name="AdBlockTreeWidget.subscription" id="AdBlockTreeWidget.subscription" ref="eric6.WebBrowser.AdBlock.AdBlockTreeWidget.html#AdBlockTreeWidget.subscription" />
       <keyword name="AdBlockUrlInterceptor" id="AdBlockUrlInterceptor" ref="eric6.WebBrowser.AdBlock.AdBlockUrlInterceptor.html#AdBlockUrlInterceptor" />
       <keyword name="AdBlockUrlInterceptor (Constructor)" id="AdBlockUrlInterceptor (Constructor)" ref="eric6.WebBrowser.AdBlock.AdBlockUrlInterceptor.html#AdBlockUrlInterceptor.__init__" />
       <keyword name="AdBlockUrlInterceptor (Module)" id="AdBlockUrlInterceptor (Module)" ref="eric6.WebBrowser.AdBlock.AdBlockUrlInterceptor.html" />
       <keyword name="AdBlockUrlInterceptor.interceptRequest" id="AdBlockUrlInterceptor.interceptRequest" ref="eric6.WebBrowser.AdBlock.AdBlockUrlInterceptor.html#AdBlockUrlInterceptor.interceptRequest" />
-      <keyword name="AdBlockedPageEntry" id="AdBlockedPageEntry" ref="eric6.Helpviewer.AdBlock.AdBlockPage.html#AdBlockedPageEntry" />
-      <keyword name="AdBlockedPageEntry (Constructor)" id="AdBlockedPageEntry (Constructor)" ref="eric6.Helpviewer.AdBlock.AdBlockPage.html#AdBlockedPageEntry.__init__" />
-      <keyword name="AdBlockedPageEntry.__eq__" id="AdBlockedPageEntry.__eq__" ref="eric6.Helpviewer.AdBlock.AdBlockPage.html#AdBlockedPageEntry.__eq__" />
-      <keyword name="AdBlockedPageEntry.urlString" id="AdBlockedPageEntry.urlString" ref="eric6.Helpviewer.AdBlock.AdBlockPage.html#AdBlockedPageEntry.urlString" />
-      <keyword name="AddBookmarkDialog" id="AddBookmarkDialog" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog" />
       <keyword name="AddBookmarkDialog" id="AddBookmarkDialog" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog" />
-      <keyword name="AddBookmarkDialog (Constructor)" id="AddBookmarkDialog (Constructor)" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.__init__" />
       <keyword name="AddBookmarkDialog (Constructor)" id="AddBookmarkDialog (Constructor)" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.__init__" />
-      <keyword name="AddBookmarkDialog (Module)" id="AddBookmarkDialog (Module)" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html" />
       <keyword name="AddBookmarkDialog (Module)" id="AddBookmarkDialog (Module)" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html" />
-      <keyword name="AddBookmarkDialog.accept" id="AddBookmarkDialog.accept" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.accept" />
       <keyword name="AddBookmarkDialog.accept" id="AddBookmarkDialog.accept" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.accept" />
-      <keyword name="AddBookmarkDialog.addedNode" id="AddBookmarkDialog.addedNode" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.addedNode" />
       <keyword name="AddBookmarkDialog.addedNode" id="AddBookmarkDialog.addedNode" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.addedNode" />
-      <keyword name="AddBookmarkDialog.currentIndex" id="AddBookmarkDialog.currentIndex" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.currentIndex" />
       <keyword name="AddBookmarkDialog.currentIndex" id="AddBookmarkDialog.currentIndex" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.currentIndex" />
-      <keyword name="AddBookmarkDialog.description" id="AddBookmarkDialog.description" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.description" />
       <keyword name="AddBookmarkDialog.description" id="AddBookmarkDialog.description" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.description" />
-      <keyword name="AddBookmarkDialog.isFolder" id="AddBookmarkDialog.isFolder" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.isFolder" />
       <keyword name="AddBookmarkDialog.isFolder" id="AddBookmarkDialog.isFolder" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.isFolder" />
-      <keyword name="AddBookmarkDialog.setCurrentIndex" id="AddBookmarkDialog.setCurrentIndex" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.setCurrentIndex" />
       <keyword name="AddBookmarkDialog.setCurrentIndex" id="AddBookmarkDialog.setCurrentIndex" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.setCurrentIndex" />
-      <keyword name="AddBookmarkDialog.setDescription" id="AddBookmarkDialog.setDescription" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.setDescription" />
       <keyword name="AddBookmarkDialog.setDescription" id="AddBookmarkDialog.setDescription" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.setDescription" />
-      <keyword name="AddBookmarkDialog.setFolder" id="AddBookmarkDialog.setFolder" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.setFolder" />
       <keyword name="AddBookmarkDialog.setFolder" id="AddBookmarkDialog.setFolder" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.setFolder" />
-      <keyword name="AddBookmarkDialog.setTitle" id="AddBookmarkDialog.setTitle" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.setTitle" />
       <keyword name="AddBookmarkDialog.setTitle" id="AddBookmarkDialog.setTitle" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.setTitle" />
-      <keyword name="AddBookmarkDialog.setUrl" id="AddBookmarkDialog.setUrl" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.setUrl" />
       <keyword name="AddBookmarkDialog.setUrl" id="AddBookmarkDialog.setUrl" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.setUrl" />
-      <keyword name="AddBookmarkDialog.title" id="AddBookmarkDialog.title" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.title" />
       <keyword name="AddBookmarkDialog.title" id="AddBookmarkDialog.title" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.title" />
-      <keyword name="AddBookmarkDialog.url" id="AddBookmarkDialog.url" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.url" />
       <keyword name="AddBookmarkDialog.url" id="AddBookmarkDialog.url" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkDialog.url" />
-      <keyword name="AddBookmarkProxyModel" id="AddBookmarkProxyModel" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkProxyModel" />
       <keyword name="AddBookmarkProxyModel" id="AddBookmarkProxyModel" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkProxyModel" />
-      <keyword name="AddBookmarkProxyModel (Constructor)" id="AddBookmarkProxyModel (Constructor)" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkProxyModel.__init__" />
       <keyword name="AddBookmarkProxyModel (Constructor)" id="AddBookmarkProxyModel (Constructor)" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkProxyModel.__init__" />
-      <keyword name="AddBookmarkProxyModel.columnCount" id="AddBookmarkProxyModel.columnCount" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkProxyModel.columnCount" />
       <keyword name="AddBookmarkProxyModel.columnCount" id="AddBookmarkProxyModel.columnCount" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkProxyModel.columnCount" />
-      <keyword name="AddBookmarkProxyModel.filterAcceptsColumn" id="AddBookmarkProxyModel.filterAcceptsColumn" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkProxyModel.filterAcceptsColumn" />
       <keyword name="AddBookmarkProxyModel.filterAcceptsColumn" id="AddBookmarkProxyModel.filterAcceptsColumn" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkProxyModel.filterAcceptsColumn" />
-      <keyword name="AddBookmarkProxyModel.filterAcceptsRow" id="AddBookmarkProxyModel.filterAcceptsRow" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkProxyModel.filterAcceptsRow" />
       <keyword name="AddBookmarkProxyModel.filterAcceptsRow" id="AddBookmarkProxyModel.filterAcceptsRow" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkProxyModel.filterAcceptsRow" />
-      <keyword name="AddBookmarkProxyModel.hasChildren" id="AddBookmarkProxyModel.hasChildren" ref="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html#AddBookmarkProxyModel.hasChildren" />
       <keyword name="AddBookmarkProxyModel.hasChildren" id="AddBookmarkProxyModel.hasChildren" ref="eric6.WebBrowser.Bookmarks.AddBookmarkDialog.html#AddBookmarkProxyModel.hasChildren" />
       <keyword name="AddDirectoryDialog" id="AddDirectoryDialog" ref="eric6.Project.AddDirectoryDialog.html#AddDirectoryDialog" />
       <keyword name="AddDirectoryDialog (Constructor)" id="AddDirectoryDialog (Constructor)" ref="eric6.Project.AddDirectoryDialog.html#AddDirectoryDialog.__init__" />
@@ -2248,53 +1810,29 @@
       <keyword name="BinaryModel.setBitsAndValue" id="BinaryModel.setBitsAndValue" ref="eric6.UI.NumbersWidget.html#BinaryModel.setBitsAndValue" />
       <keyword name="BinaryModel.setData" id="BinaryModel.setData" ref="eric6.UI.NumbersWidget.html#BinaryModel.setData" />
       <keyword name="BinaryModel.setValue" id="BinaryModel.setValue" ref="eric6.UI.NumbersWidget.html#BinaryModel.setValue" />
-      <keyword name="BookmarkActionSelectionDialog" id="BookmarkActionSelectionDialog" ref="eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.html#BookmarkActionSelectionDialog" />
       <keyword name="BookmarkActionSelectionDialog" id="BookmarkActionSelectionDialog" ref="eric6.WebBrowser.UrlBar.BookmarkActionSelectionDialog.html#BookmarkActionSelectionDialog" />
-      <keyword name="BookmarkActionSelectionDialog (Constructor)" id="BookmarkActionSelectionDialog (Constructor)" ref="eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.html#BookmarkActionSelectionDialog.__init__" />
       <keyword name="BookmarkActionSelectionDialog (Constructor)" id="BookmarkActionSelectionDialog (Constructor)" ref="eric6.WebBrowser.UrlBar.BookmarkActionSelectionDialog.html#BookmarkActionSelectionDialog.__init__" />
-      <keyword name="BookmarkActionSelectionDialog (Module)" id="BookmarkActionSelectionDialog (Module)" ref="eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.html" />
       <keyword name="BookmarkActionSelectionDialog (Module)" id="BookmarkActionSelectionDialog (Module)" ref="eric6.WebBrowser.UrlBar.BookmarkActionSelectionDialog.html" />
-      <keyword name="BookmarkActionSelectionDialog.getAction" id="BookmarkActionSelectionDialog.getAction" ref="eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.html#BookmarkActionSelectionDialog.getAction" />
       <keyword name="BookmarkActionSelectionDialog.getAction" id="BookmarkActionSelectionDialog.getAction" ref="eric6.WebBrowser.UrlBar.BookmarkActionSelectionDialog.html#BookmarkActionSelectionDialog.getAction" />
-      <keyword name="BookmarkActionSelectionDialog.on_bookmarkPushButton_clicked" id="BookmarkActionSelectionDialog.on_bookmarkPushButton_clicked" ref="eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.html#BookmarkActionSelectionDialog.on_bookmarkPushButton_clicked" />
       <keyword name="BookmarkActionSelectionDialog.on_bookmarkPushButton_clicked" id="BookmarkActionSelectionDialog.on_bookmarkPushButton_clicked" ref="eric6.WebBrowser.UrlBar.BookmarkActionSelectionDialog.html#BookmarkActionSelectionDialog.on_bookmarkPushButton_clicked" />
-      <keyword name="BookmarkActionSelectionDialog.on_speeddialPushButton_clicked" id="BookmarkActionSelectionDialog.on_speeddialPushButton_clicked" ref="eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.html#BookmarkActionSelectionDialog.on_speeddialPushButton_clicked" />
       <keyword name="BookmarkActionSelectionDialog.on_speeddialPushButton_clicked" id="BookmarkActionSelectionDialog.on_speeddialPushButton_clicked" ref="eric6.WebBrowser.UrlBar.BookmarkActionSelectionDialog.html#BookmarkActionSelectionDialog.on_speeddialPushButton_clicked" />
-      <keyword name="BookmarkInfoDialog" id="BookmarkInfoDialog" ref="eric6.Helpviewer.UrlBar.BookmarkInfoDialog.html#BookmarkInfoDialog" />
       <keyword name="BookmarkInfoDialog" id="BookmarkInfoDialog" ref="eric6.WebBrowser.UrlBar.BookmarkInfoDialog.html#BookmarkInfoDialog" />
-      <keyword name="BookmarkInfoDialog (Constructor)" id="BookmarkInfoDialog (Constructor)" ref="eric6.Helpviewer.UrlBar.BookmarkInfoDialog.html#BookmarkInfoDialog.__init__" />
       <keyword name="BookmarkInfoDialog (Constructor)" id="BookmarkInfoDialog (Constructor)" ref="eric6.WebBrowser.UrlBar.BookmarkInfoDialog.html#BookmarkInfoDialog.__init__" />
-      <keyword name="BookmarkInfoDialog (Module)" id="BookmarkInfoDialog (Module)" ref="eric6.Helpviewer.UrlBar.BookmarkInfoDialog.html" />
       <keyword name="BookmarkInfoDialog (Module)" id="BookmarkInfoDialog (Module)" ref="eric6.WebBrowser.UrlBar.BookmarkInfoDialog.html" />
-      <keyword name="BookmarkInfoDialog.accept" id="BookmarkInfoDialog.accept" ref="eric6.Helpviewer.UrlBar.BookmarkInfoDialog.html#BookmarkInfoDialog.accept" />
       <keyword name="BookmarkInfoDialog.accept" id="BookmarkInfoDialog.accept" ref="eric6.WebBrowser.UrlBar.BookmarkInfoDialog.html#BookmarkInfoDialog.accept" />
-      <keyword name="BookmarkInfoDialog.on_removeButton_clicked" id="BookmarkInfoDialog.on_removeButton_clicked" ref="eric6.Helpviewer.UrlBar.BookmarkInfoDialog.html#BookmarkInfoDialog.on_removeButton_clicked" />
       <keyword name="BookmarkInfoDialog.on_removeButton_clicked" id="BookmarkInfoDialog.on_removeButton_clicked" ref="eric6.WebBrowser.UrlBar.BookmarkInfoDialog.html#BookmarkInfoDialog.on_removeButton_clicked" />
-      <keyword name="BookmarkNode" id="BookmarkNode" ref="eric6.Helpviewer.Bookmarks.BookmarkNode.html#BookmarkNode" />
       <keyword name="BookmarkNode" id="BookmarkNode" ref="eric6.WebBrowser.Bookmarks.BookmarkNode.html#BookmarkNode" />
-      <keyword name="BookmarkNode (Constructor)" id="BookmarkNode (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarkNode.html#BookmarkNode.__init__" />
       <keyword name="BookmarkNode (Constructor)" id="BookmarkNode (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarkNode.html#BookmarkNode.__init__" />
-      <keyword name="BookmarkNode (Module)" id="BookmarkNode (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarkNode.html" />
       <keyword name="BookmarkNode (Module)" id="BookmarkNode (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarkNode.html" />
-      <keyword name="BookmarkNode.add" id="BookmarkNode.add" ref="eric6.Helpviewer.Bookmarks.BookmarkNode.html#BookmarkNode.add" />
       <keyword name="BookmarkNode.add" id="BookmarkNode.add" ref="eric6.WebBrowser.Bookmarks.BookmarkNode.html#BookmarkNode.add" />
-      <keyword name="BookmarkNode.children" id="BookmarkNode.children" ref="eric6.Helpviewer.Bookmarks.BookmarkNode.html#BookmarkNode.children" />
       <keyword name="BookmarkNode.children" id="BookmarkNode.children" ref="eric6.WebBrowser.Bookmarks.BookmarkNode.html#BookmarkNode.children" />
-      <keyword name="BookmarkNode.parent" id="BookmarkNode.parent" ref="eric6.Helpviewer.Bookmarks.BookmarkNode.html#BookmarkNode.parent" />
       <keyword name="BookmarkNode.parent" id="BookmarkNode.parent" ref="eric6.WebBrowser.Bookmarks.BookmarkNode.html#BookmarkNode.parent" />
-      <keyword name="BookmarkNode.remove" id="BookmarkNode.remove" ref="eric6.Helpviewer.Bookmarks.BookmarkNode.html#BookmarkNode.remove" />
       <keyword name="BookmarkNode.remove" id="BookmarkNode.remove" ref="eric6.WebBrowser.Bookmarks.BookmarkNode.html#BookmarkNode.remove" />
-      <keyword name="BookmarkNode.setType" id="BookmarkNode.setType" ref="eric6.Helpviewer.Bookmarks.BookmarkNode.html#BookmarkNode.setType" />
       <keyword name="BookmarkNode.setType" id="BookmarkNode.setType" ref="eric6.WebBrowser.Bookmarks.BookmarkNode.html#BookmarkNode.setType" />
-      <keyword name="BookmarkNode.type" id="BookmarkNode.type" ref="eric6.Helpviewer.Bookmarks.BookmarkNode.html#BookmarkNode.type" />
       <keyword name="BookmarkNode.type" id="BookmarkNode.type" ref="eric6.WebBrowser.Bookmarks.BookmarkNode.html#BookmarkNode.type" />
-      <keyword name="BookmarkPropertiesDialog" id="BookmarkPropertiesDialog" ref="eric6.Helpviewer.Bookmarks.BookmarkPropertiesDialog.html#BookmarkPropertiesDialog" />
       <keyword name="BookmarkPropertiesDialog" id="BookmarkPropertiesDialog" ref="eric6.WebBrowser.Bookmarks.BookmarkPropertiesDialog.html#BookmarkPropertiesDialog" />
-      <keyword name="BookmarkPropertiesDialog (Constructor)" id="BookmarkPropertiesDialog (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarkPropertiesDialog.html#BookmarkPropertiesDialog.__init__" />
       <keyword name="BookmarkPropertiesDialog (Constructor)" id="BookmarkPropertiesDialog (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarkPropertiesDialog.html#BookmarkPropertiesDialog.__init__" />
-      <keyword name="BookmarkPropertiesDialog (Module)" id="BookmarkPropertiesDialog (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarkPropertiesDialog.html" />
       <keyword name="BookmarkPropertiesDialog (Module)" id="BookmarkPropertiesDialog (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarkPropertiesDialog.html" />
-      <keyword name="BookmarkPropertiesDialog.accept" id="BookmarkPropertiesDialog.accept" ref="eric6.Helpviewer.Bookmarks.BookmarkPropertiesDialog.html#BookmarkPropertiesDialog.accept" />
       <keyword name="BookmarkPropertiesDialog.accept" id="BookmarkPropertiesDialog.accept" ref="eric6.WebBrowser.Bookmarks.BookmarkPropertiesDialog.html#BookmarkPropertiesDialog.accept" />
       <keyword name="BookmarkedFilesDialog" id="BookmarkedFilesDialog" ref="eric6.ViewManager.BookmarkedFilesDialog.html#BookmarkedFilesDialog" />
       <keyword name="BookmarkedFilesDialog (Constructor)" id="BookmarkedFilesDialog (Constructor)" ref="eric6.ViewManager.BookmarkedFilesDialog.html#BookmarkedFilesDialog.__init__" />
@@ -2308,253 +1846,134 @@
       <keyword name="BookmarkedFilesDialog.on_filePicker_textChanged" id="BookmarkedFilesDialog.on_filePicker_textChanged" ref="eric6.ViewManager.BookmarkedFilesDialog.html#BookmarkedFilesDialog.on_filePicker_textChanged" />
       <keyword name="BookmarkedFilesDialog.on_filesList_currentRowChanged" id="BookmarkedFilesDialog.on_filesList_currentRowChanged" ref="eric6.ViewManager.BookmarkedFilesDialog.html#BookmarkedFilesDialog.on_filesList_currentRowChanged" />
       <keyword name="BookmarkedFilesDialog.on_upButton_clicked" id="BookmarkedFilesDialog.on_upButton_clicked" ref="eric6.ViewManager.BookmarkedFilesDialog.html#BookmarkedFilesDialog.on_upButton_clicked" />
-      <keyword name="Bookmarks (Package)" id="Bookmarks (Package)" ref="index-eric6.Helpviewer.Bookmarks.html" />
       <keyword name="Bookmarks (Package)" id="Bookmarks (Package)" ref="index-eric6.WebBrowser.Bookmarks.html" />
-      <keyword name="BookmarksDialog" id="BookmarksDialog" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog" />
       <keyword name="BookmarksDialog" id="BookmarksDialog" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog" />
-      <keyword name="BookmarksDialog (Constructor)" id="BookmarksDialog (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.__init__" />
       <keyword name="BookmarksDialog (Constructor)" id="BookmarksDialog (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__init__" />
-      <keyword name="BookmarksDialog (Module)" id="BookmarksDialog (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html" />
       <keyword name="BookmarksDialog (Module)" id="BookmarksDialog (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html" />
-      <keyword name="BookmarksDialog.__activated" id="BookmarksDialog.__activated" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.__activated" />
       <keyword name="BookmarksDialog.__activated" id="BookmarksDialog.__activated" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__activated" />
-      <keyword name="BookmarksDialog.__customContextMenuRequested" id="BookmarksDialog.__customContextMenuRequested" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.__customContextMenuRequested" />
       <keyword name="BookmarksDialog.__customContextMenuRequested" id="BookmarksDialog.__customContextMenuRequested" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__customContextMenuRequested" />
-      <keyword name="BookmarksDialog.__edit" id="BookmarksDialog.__edit" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.__edit" />
       <keyword name="BookmarksDialog.__edit" id="BookmarksDialog.__edit" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__edit" />
-      <keyword name="BookmarksDialog.__editAddress" id="BookmarksDialog.__editAddress" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.__editAddress" />
       <keyword name="BookmarksDialog.__editAddress" id="BookmarksDialog.__editAddress" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__editAddress" />
-      <keyword name="BookmarksDialog.__editName" id="BookmarksDialog.__editName" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.__editName" />
       <keyword name="BookmarksDialog.__editName" id="BookmarksDialog.__editName" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__editName" />
-      <keyword name="BookmarksDialog.__expandNodes" id="BookmarksDialog.__expandNodes" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.__expandNodes" />
       <keyword name="BookmarksDialog.__expandNodes" id="BookmarksDialog.__expandNodes" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__expandNodes" />
-      <keyword name="BookmarksDialog.__newFolder" id="BookmarksDialog.__newFolder" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.__newFolder" />
       <keyword name="BookmarksDialog.__newFolder" id="BookmarksDialog.__newFolder" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__newFolder" />
-      <keyword name="BookmarksDialog.__openBookmark" id="BookmarksDialog.__openBookmark" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.__openBookmark" />
       <keyword name="BookmarksDialog.__openBookmark" id="BookmarksDialog.__openBookmark" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__openBookmark" />
-      <keyword name="BookmarksDialog.__openBookmarkInCurrentTab" id="BookmarksDialog.__openBookmarkInCurrentTab" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.__openBookmarkInCurrentTab" />
       <keyword name="BookmarksDialog.__openBookmarkInCurrentTab" id="BookmarksDialog.__openBookmarkInCurrentTab" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__openBookmarkInCurrentTab" />
       <keyword name="BookmarksDialog.__openBookmarkInNewBackgroundTab" id="BookmarksDialog.__openBookmarkInNewBackgroundTab" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__openBookmarkInNewBackgroundTab" />
-      <keyword name="BookmarksDialog.__openBookmarkInNewTab" id="BookmarksDialog.__openBookmarkInNewTab" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.__openBookmarkInNewTab" />
       <keyword name="BookmarksDialog.__openBookmarkInNewTab" id="BookmarksDialog.__openBookmarkInNewTab" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__openBookmarkInNewTab" />
       <keyword name="BookmarksDialog.__openBookmarkInNewWindow" id="BookmarksDialog.__openBookmarkInNewWindow" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__openBookmarkInNewWindow" />
       <keyword name="BookmarksDialog.__openBookmarkInPrivateWindow" id="BookmarksDialog.__openBookmarkInPrivateWindow" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__openBookmarkInPrivateWindow" />
-      <keyword name="BookmarksDialog.__saveExpandedNodes" id="BookmarksDialog.__saveExpandedNodes" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.__saveExpandedNodes" />
       <keyword name="BookmarksDialog.__saveExpandedNodes" id="BookmarksDialog.__saveExpandedNodes" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__saveExpandedNodes" />
-      <keyword name="BookmarksDialog.__shutdown" id="BookmarksDialog.__shutdown" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.__shutdown" />
       <keyword name="BookmarksDialog.__shutdown" id="BookmarksDialog.__shutdown" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.__shutdown" />
-      <keyword name="BookmarksDialog.closeEvent" id="BookmarksDialog.closeEvent" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.closeEvent" />
       <keyword name="BookmarksDialog.closeEvent" id="BookmarksDialog.closeEvent" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.closeEvent" />
-      <keyword name="BookmarksDialog.reject" id="BookmarksDialog.reject" ref="eric6.Helpviewer.Bookmarks.BookmarksDialog.html#BookmarksDialog.reject" />
       <keyword name="BookmarksDialog.reject" id="BookmarksDialog.reject" ref="eric6.WebBrowser.Bookmarks.BookmarksDialog.html#BookmarksDialog.reject" />
-      <keyword name="BookmarksImportDialog" id="BookmarksImportDialog" ref="eric6.Helpviewer.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog" />
       <keyword name="BookmarksImportDialog" id="BookmarksImportDialog" ref="eric6.WebBrowser.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog" />
-      <keyword name="BookmarksImportDialog (Constructor)" id="BookmarksImportDialog (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog.__init__" />
       <keyword name="BookmarksImportDialog (Constructor)" id="BookmarksImportDialog (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog.__init__" />
-      <keyword name="BookmarksImportDialog (Module)" id="BookmarksImportDialog (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarksImportDialog.html" />
       <keyword name="BookmarksImportDialog (Module)" id="BookmarksImportDialog (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarksImportDialog.html" />
-      <keyword name="BookmarksImportDialog.__enableNextButton" id="BookmarksImportDialog.__enableNextButton" ref="eric6.Helpviewer.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog.__enableNextButton" />
       <keyword name="BookmarksImportDialog.__enableNextButton" id="BookmarksImportDialog.__enableNextButton" ref="eric6.WebBrowser.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog.__enableNextButton" />
-      <keyword name="BookmarksImportDialog.getImportedBookmarks" id="BookmarksImportDialog.getImportedBookmarks" ref="eric6.Helpviewer.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog.getImportedBookmarks" />
       <keyword name="BookmarksImportDialog.getImportedBookmarks" id="BookmarksImportDialog.getImportedBookmarks" ref="eric6.WebBrowser.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog.getImportedBookmarks" />
-      <keyword name="BookmarksImportDialog.on_cancelButton_clicked" id="BookmarksImportDialog.on_cancelButton_clicked" ref="eric6.Helpviewer.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog.on_cancelButton_clicked" />
       <keyword name="BookmarksImportDialog.on_cancelButton_clicked" id="BookmarksImportDialog.on_cancelButton_clicked" ref="eric6.WebBrowser.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog.on_cancelButton_clicked" />
-      <keyword name="BookmarksImportDialog.on_filePicker_textChanged" id="BookmarksImportDialog.on_filePicker_textChanged" ref="eric6.Helpviewer.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog.on_filePicker_textChanged" />
       <keyword name="BookmarksImportDialog.on_filePicker_textChanged" id="BookmarksImportDialog.on_filePicker_textChanged" ref="eric6.WebBrowser.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog.on_filePicker_textChanged" />
-      <keyword name="BookmarksImportDialog.on_nextButton_clicked" id="BookmarksImportDialog.on_nextButton_clicked" ref="eric6.Helpviewer.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog.on_nextButton_clicked" />
       <keyword name="BookmarksImportDialog.on_nextButton_clicked" id="BookmarksImportDialog.on_nextButton_clicked" ref="eric6.WebBrowser.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog.on_nextButton_clicked" />
-      <keyword name="BookmarksImportDialog.on_sourcesList_itemSelectionChanged" id="BookmarksImportDialog.on_sourcesList_itemSelectionChanged" ref="eric6.Helpviewer.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog.on_sourcesList_itemSelectionChanged" />
       <keyword name="BookmarksImportDialog.on_sourcesList_itemSelectionChanged" id="BookmarksImportDialog.on_sourcesList_itemSelectionChanged" ref="eric6.WebBrowser.Bookmarks.BookmarksImportDialog.html#BookmarksImportDialog.on_sourcesList_itemSelectionChanged" />
-      <keyword name="BookmarksImporter" id="BookmarksImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html#BookmarksImporter" />
       <keyword name="BookmarksImporter" id="BookmarksImporter" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.BookmarksImporter.html#BookmarksImporter" />
-      <keyword name="BookmarksImporter (Constructor)" id="BookmarksImporter (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html#BookmarksImporter.__init__" />
       <keyword name="BookmarksImporter (Constructor)" id="BookmarksImporter (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.BookmarksImporter.html#BookmarksImporter.__init__" />
-      <keyword name="BookmarksImporter (Module)" id="BookmarksImporter (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html" />
       <keyword name="BookmarksImporter (Module)" id="BookmarksImporter (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.BookmarksImporter.html" />
-      <keyword name="BookmarksImporter.error" id="BookmarksImporter.error" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html#BookmarksImporter.error" />
       <keyword name="BookmarksImporter.error" id="BookmarksImporter.error" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.BookmarksImporter.html#BookmarksImporter.error" />
-      <keyword name="BookmarksImporter.errorString" id="BookmarksImporter.errorString" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html#BookmarksImporter.errorString" />
       <keyword name="BookmarksImporter.errorString" id="BookmarksImporter.errorString" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.BookmarksImporter.html#BookmarksImporter.errorString" />
-      <keyword name="BookmarksImporter.importedBookmarks" id="BookmarksImporter.importedBookmarks" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html#BookmarksImporter.importedBookmarks" />
       <keyword name="BookmarksImporter.importedBookmarks" id="BookmarksImporter.importedBookmarks" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.BookmarksImporter.html#BookmarksImporter.importedBookmarks" />
-      <keyword name="BookmarksImporter.open" id="BookmarksImporter.open" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html#BookmarksImporter.open" />
       <keyword name="BookmarksImporter.open" id="BookmarksImporter.open" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.BookmarksImporter.html#BookmarksImporter.open" />
-      <keyword name="BookmarksImporter.setPath" id="BookmarksImporter.setPath" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html#BookmarksImporter.setPath" />
       <keyword name="BookmarksImporter.setPath" id="BookmarksImporter.setPath" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.BookmarksImporter.html#BookmarksImporter.setPath" />
-      <keyword name="BookmarksImporters (Package)" id="BookmarksImporters (Package)" ref="index-eric6.Helpviewer.Bookmarks.BookmarksImporters.html" />
       <keyword name="BookmarksImporters (Package)" id="BookmarksImporters (Package)" ref="index-eric6.WebBrowser.Bookmarks.BookmarksImporters.html" />
-      <keyword name="BookmarksManager" id="BookmarksManager" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager" />
       <keyword name="BookmarksManager" id="BookmarksManager" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager" />
-      <keyword name="BookmarksManager (Constructor)" id="BookmarksManager (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.__init__" />
       <keyword name="BookmarksManager (Constructor)" id="BookmarksManager (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.__init__" />
-      <keyword name="BookmarksManager (Module)" id="BookmarksManager (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html" />
       <keyword name="BookmarksManager (Module)" id="BookmarksManager (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html" />
-      <keyword name="BookmarksManager.__convertFromOldBookmarks" id="BookmarksManager.__convertFromOldBookmarks" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.__convertFromOldBookmarks" />
-      <keyword name="BookmarksManager.__initialize" id="BookmarksManager.__initialize" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.__initialize" />
       <keyword name="BookmarksManager.__initialize" id="BookmarksManager.__initialize" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.__initialize" />
-      <keyword name="BookmarksManager.__searchBookmark" id="BookmarksManager.__searchBookmark" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.__searchBookmark" />
       <keyword name="BookmarksManager.__searchBookmark" id="BookmarksManager.__searchBookmark" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.__searchBookmark" />
-      <keyword name="BookmarksManager.__searchBookmarks" id="BookmarksManager.__searchBookmarks" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.__searchBookmarks" />
       <keyword name="BookmarksManager.__searchBookmarks" id="BookmarksManager.__searchBookmarks" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.__searchBookmarks" />
-      <keyword name="BookmarksManager.addBookmark" id="BookmarksManager.addBookmark" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.addBookmark" />
       <keyword name="BookmarksManager.addBookmark" id="BookmarksManager.addBookmark" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.addBookmark" />
-      <keyword name="BookmarksManager.bookmarkForUrl" id="BookmarksManager.bookmarkForUrl" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.bookmarkForUrl" />
       <keyword name="BookmarksManager.bookmarkForUrl" id="BookmarksManager.bookmarkForUrl" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.bookmarkForUrl" />
-      <keyword name="BookmarksManager.bookmarks" id="BookmarksManager.bookmarks" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.bookmarks" />
       <keyword name="BookmarksManager.bookmarks" id="BookmarksManager.bookmarks" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.bookmarks" />
-      <keyword name="BookmarksManager.bookmarksForUrl" id="BookmarksManager.bookmarksForUrl" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.bookmarksForUrl" />
       <keyword name="BookmarksManager.bookmarksForUrl" id="BookmarksManager.bookmarksForUrl" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.bookmarksForUrl" />
-      <keyword name="BookmarksManager.bookmarksModel" id="BookmarksManager.bookmarksModel" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.bookmarksModel" />
       <keyword name="BookmarksManager.bookmarksModel" id="BookmarksManager.bookmarksModel" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.bookmarksModel" />
-      <keyword name="BookmarksManager.changeExpanded" id="BookmarksManager.changeExpanded" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.changeExpanded" />
       <keyword name="BookmarksManager.changeExpanded" id="BookmarksManager.changeExpanded" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.changeExpanded" />
-      <keyword name="BookmarksManager.close" id="BookmarksManager.close" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.close" />
       <keyword name="BookmarksManager.close" id="BookmarksManager.close" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.close" />
-      <keyword name="BookmarksManager.exportBookmarks" id="BookmarksManager.exportBookmarks" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.exportBookmarks" />
       <keyword name="BookmarksManager.exportBookmarks" id="BookmarksManager.exportBookmarks" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.exportBookmarks" />
       <keyword name="BookmarksManager.faviconChanged" id="BookmarksManager.faviconChanged" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.faviconChanged" />
-      <keyword name="BookmarksManager.getFileName" id="BookmarksManager.getFileName" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.getFileName" />
       <keyword name="BookmarksManager.getFileName" id="BookmarksManager.getFileName" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.getFileName" />
-      <keyword name="BookmarksManager.iconChanged" id="BookmarksManager.iconChanged" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.iconChanged" />
-      <keyword name="BookmarksManager.importBookmarks" id="BookmarksManager.importBookmarks" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.importBookmarks" />
       <keyword name="BookmarksManager.importBookmarks" id="BookmarksManager.importBookmarks" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.importBookmarks" />
       <keyword name="BookmarksManager.incVisitCount" id="BookmarksManager.incVisitCount" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.incVisitCount" />
-      <keyword name="BookmarksManager.load" id="BookmarksManager.load" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.load" />
       <keyword name="BookmarksManager.load" id="BookmarksManager.load" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.load" />
-      <keyword name="BookmarksManager.menu" id="BookmarksManager.menu" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.menu" />
       <keyword name="BookmarksManager.menu" id="BookmarksManager.menu" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.menu" />
-      <keyword name="BookmarksManager.reload" id="BookmarksManager.reload" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.reload" />
       <keyword name="BookmarksManager.reload" id="BookmarksManager.reload" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.reload" />
-      <keyword name="BookmarksManager.removeBookmark" id="BookmarksManager.removeBookmark" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.removeBookmark" />
       <keyword name="BookmarksManager.removeBookmark" id="BookmarksManager.removeBookmark" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.removeBookmark" />
-      <keyword name="BookmarksManager.save" id="BookmarksManager.save" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.save" />
       <keyword name="BookmarksManager.save" id="BookmarksManager.save" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.save" />
-      <keyword name="BookmarksManager.setNodeChanged" id="BookmarksManager.setNodeChanged" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.setNodeChanged" />
       <keyword name="BookmarksManager.setNodeChanged" id="BookmarksManager.setNodeChanged" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.setNodeChanged" />
-      <keyword name="BookmarksManager.setTimestamp" id="BookmarksManager.setTimestamp" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.setTimestamp" />
       <keyword name="BookmarksManager.setTimestamp" id="BookmarksManager.setTimestamp" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.setTimestamp" />
-      <keyword name="BookmarksManager.setTitle" id="BookmarksManager.setTitle" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.setTitle" />
       <keyword name="BookmarksManager.setTitle" id="BookmarksManager.setTitle" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.setTitle" />
-      <keyword name="BookmarksManager.setUrl" id="BookmarksManager.setUrl" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.setUrl" />
       <keyword name="BookmarksManager.setUrl" id="BookmarksManager.setUrl" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.setUrl" />
       <keyword name="BookmarksManager.setVisitCount" id="BookmarksManager.setVisitCount" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.setVisitCount" />
-      <keyword name="BookmarksManager.toolbar" id="BookmarksManager.toolbar" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.toolbar" />
       <keyword name="BookmarksManager.toolbar" id="BookmarksManager.toolbar" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.toolbar" />
-      <keyword name="BookmarksManager.undoRedoStack" id="BookmarksManager.undoRedoStack" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#BookmarksManager.undoRedoStack" />
       <keyword name="BookmarksManager.undoRedoStack" id="BookmarksManager.undoRedoStack" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#BookmarksManager.undoRedoStack" />
-      <keyword name="BookmarksMenu" id="BookmarksMenu" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenu" />
       <keyword name="BookmarksMenu" id="BookmarksMenu" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenu" />
-      <keyword name="BookmarksMenu (Constructor)" id="BookmarksMenu (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenu.__init__" />
       <keyword name="BookmarksMenu (Constructor)" id="BookmarksMenu (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenu.__init__" />
-      <keyword name="BookmarksMenu (Module)" id="BookmarksMenu (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html" />
       <keyword name="BookmarksMenu (Module)" id="BookmarksMenu (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html" />
-      <keyword name="BookmarksMenu.__activated" id="BookmarksMenu.__activated" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenu.__activated" />
       <keyword name="BookmarksMenu.__activated" id="BookmarksMenu.__activated" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenu.__activated" />
-      <keyword name="BookmarksMenu.__contextMenuRequested" id="BookmarksMenu.__contextMenuRequested" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenu.__contextMenuRequested" />
       <keyword name="BookmarksMenu.__contextMenuRequested" id="BookmarksMenu.__contextMenuRequested" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenu.__contextMenuRequested" />
-      <keyword name="BookmarksMenu.__edit" id="BookmarksMenu.__edit" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenu.__edit" />
       <keyword name="BookmarksMenu.__edit" id="BookmarksMenu.__edit" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenu.__edit" />
-      <keyword name="BookmarksMenu.__openBookmark" id="BookmarksMenu.__openBookmark" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenu.__openBookmark" />
       <keyword name="BookmarksMenu.__openBookmark" id="BookmarksMenu.__openBookmark" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenu.__openBookmark" />
-      <keyword name="BookmarksMenu.__openBookmarkInNewTab" id="BookmarksMenu.__openBookmarkInNewTab" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenu.__openBookmarkInNewTab" />
       <keyword name="BookmarksMenu.__openBookmarkInNewTab" id="BookmarksMenu.__openBookmarkInNewTab" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenu.__openBookmarkInNewTab" />
       <keyword name="BookmarksMenu.__openBookmarkInNewWindow" id="BookmarksMenu.__openBookmarkInNewWindow" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenu.__openBookmarkInNewWindow" />
       <keyword name="BookmarksMenu.__openBookmarkInPrivateWindow" id="BookmarksMenu.__openBookmarkInPrivateWindow" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenu.__openBookmarkInPrivateWindow" />
-      <keyword name="BookmarksMenu.__removeBookmark" id="BookmarksMenu.__removeBookmark" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenu.__removeBookmark" />
       <keyword name="BookmarksMenu.__removeBookmark" id="BookmarksMenu.__removeBookmark" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenu.__removeBookmark" />
       <keyword name="BookmarksMenu.__updateVisitCount" id="BookmarksMenu.__updateVisitCount" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenu.__updateVisitCount" />
-      <keyword name="BookmarksMenu.createBaseMenu" id="BookmarksMenu.createBaseMenu" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenu.createBaseMenu" />
       <keyword name="BookmarksMenu.createBaseMenu" id="BookmarksMenu.createBaseMenu" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenu.createBaseMenu" />
-      <keyword name="BookmarksMenu.openAll" id="BookmarksMenu.openAll" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenu.openAll" />
       <keyword name="BookmarksMenu.openAll" id="BookmarksMenu.openAll" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenu.openAll" />
-      <keyword name="BookmarksMenu.postPopulated" id="BookmarksMenu.postPopulated" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenu.postPopulated" />
       <keyword name="BookmarksMenu.postPopulated" id="BookmarksMenu.postPopulated" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenu.postPopulated" />
-      <keyword name="BookmarksMenuBarMenu" id="BookmarksMenuBarMenu" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenuBarMenu" />
       <keyword name="BookmarksMenuBarMenu" id="BookmarksMenuBarMenu" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenuBarMenu" />
-      <keyword name="BookmarksMenuBarMenu (Constructor)" id="BookmarksMenuBarMenu (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenuBarMenu.__init__" />
       <keyword name="BookmarksMenuBarMenu (Constructor)" id="BookmarksMenuBarMenu (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenuBarMenu.__init__" />
-      <keyword name="BookmarksMenuBarMenu.__defaultBookmarkTriggered" id="BookmarksMenuBarMenu.__defaultBookmarkTriggered" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenuBarMenu.__defaultBookmarkTriggered" />
       <keyword name="BookmarksMenuBarMenu.__defaultBookmarkTriggered" id="BookmarksMenuBarMenu.__defaultBookmarkTriggered" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenuBarMenu.__defaultBookmarkTriggered" />
-      <keyword name="BookmarksMenuBarMenu.postPopulated" id="BookmarksMenuBarMenu.postPopulated" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenuBarMenu.postPopulated" />
       <keyword name="BookmarksMenuBarMenu.postPopulated" id="BookmarksMenuBarMenu.postPopulated" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenuBarMenu.postPopulated" />
-      <keyword name="BookmarksMenuBarMenu.prePopulated" id="BookmarksMenuBarMenu.prePopulated" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenuBarMenu.prePopulated" />
       <keyword name="BookmarksMenuBarMenu.prePopulated" id="BookmarksMenuBarMenu.prePopulated" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenuBarMenu.prePopulated" />
-      <keyword name="BookmarksMenuBarMenu.setInitialActions" id="BookmarksMenuBarMenu.setInitialActions" ref="eric6.Helpviewer.Bookmarks.BookmarksMenu.html#BookmarksMenuBarMenu.setInitialActions" />
       <keyword name="BookmarksMenuBarMenu.setInitialActions" id="BookmarksMenuBarMenu.setInitialActions" ref="eric6.WebBrowser.Bookmarks.BookmarksMenu.html#BookmarksMenuBarMenu.setInitialActions" />
-      <keyword name="BookmarksModel" id="BookmarksModel" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel" />
       <keyword name="BookmarksModel" id="BookmarksModel" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel" />
-      <keyword name="BookmarksModel (Constructor)" id="BookmarksModel (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.__init__" />
       <keyword name="BookmarksModel (Constructor)" id="BookmarksModel (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.__init__" />
-      <keyword name="BookmarksModel (Module)" id="BookmarksModel (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html" />
       <keyword name="BookmarksModel (Module)" id="BookmarksModel (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html" />
-      <keyword name="BookmarksModel.bookmarksManager" id="BookmarksModel.bookmarksManager" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.bookmarksManager" />
       <keyword name="BookmarksModel.bookmarksManager" id="BookmarksModel.bookmarksManager" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.bookmarksManager" />
-      <keyword name="BookmarksModel.columnCount" id="BookmarksModel.columnCount" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.columnCount" />
       <keyword name="BookmarksModel.columnCount" id="BookmarksModel.columnCount" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.columnCount" />
-      <keyword name="BookmarksModel.data" id="BookmarksModel.data" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.data" />
       <keyword name="BookmarksModel.data" id="BookmarksModel.data" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.data" />
-      <keyword name="BookmarksModel.dropMimeData" id="BookmarksModel.dropMimeData" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.dropMimeData" />
       <keyword name="BookmarksModel.dropMimeData" id="BookmarksModel.dropMimeData" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.dropMimeData" />
-      <keyword name="BookmarksModel.entryAdded" id="BookmarksModel.entryAdded" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.entryAdded" />
       <keyword name="BookmarksModel.entryAdded" id="BookmarksModel.entryAdded" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.entryAdded" />
-      <keyword name="BookmarksModel.entryChanged" id="BookmarksModel.entryChanged" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.entryChanged" />
       <keyword name="BookmarksModel.entryChanged" id="BookmarksModel.entryChanged" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.entryChanged" />
-      <keyword name="BookmarksModel.entryRemoved" id="BookmarksModel.entryRemoved" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.entryRemoved" />
       <keyword name="BookmarksModel.entryRemoved" id="BookmarksModel.entryRemoved" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.entryRemoved" />
-      <keyword name="BookmarksModel.flags" id="BookmarksModel.flags" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.flags" />
       <keyword name="BookmarksModel.flags" id="BookmarksModel.flags" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.flags" />
-      <keyword name="BookmarksModel.hasChildren" id="BookmarksModel.hasChildren" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.hasChildren" />
       <keyword name="BookmarksModel.hasChildren" id="BookmarksModel.hasChildren" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.hasChildren" />
-      <keyword name="BookmarksModel.headerData" id="BookmarksModel.headerData" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.headerData" />
       <keyword name="BookmarksModel.headerData" id="BookmarksModel.headerData" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.headerData" />
-      <keyword name="BookmarksModel.index" id="BookmarksModel.index" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.index" />
       <keyword name="BookmarksModel.index" id="BookmarksModel.index" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.index" />
-      <keyword name="BookmarksModel.mimeData" id="BookmarksModel.mimeData" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.mimeData" />
       <keyword name="BookmarksModel.mimeData" id="BookmarksModel.mimeData" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.mimeData" />
-      <keyword name="BookmarksModel.mimeTypes" id="BookmarksModel.mimeTypes" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.mimeTypes" />
       <keyword name="BookmarksModel.mimeTypes" id="BookmarksModel.mimeTypes" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.mimeTypes" />
-      <keyword name="BookmarksModel.node" id="BookmarksModel.node" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.node" />
       <keyword name="BookmarksModel.node" id="BookmarksModel.node" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.node" />
-      <keyword name="BookmarksModel.nodeIndex" id="BookmarksModel.nodeIndex" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.nodeIndex" />
       <keyword name="BookmarksModel.nodeIndex" id="BookmarksModel.nodeIndex" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.nodeIndex" />
-      <keyword name="BookmarksModel.parent" id="BookmarksModel.parent" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.parent" />
       <keyword name="BookmarksModel.parent" id="BookmarksModel.parent" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.parent" />
-      <keyword name="BookmarksModel.removeRows" id="BookmarksModel.removeRows" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.removeRows" />
       <keyword name="BookmarksModel.removeRows" id="BookmarksModel.removeRows" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.removeRows" />
-      <keyword name="BookmarksModel.rowCount" id="BookmarksModel.rowCount" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.rowCount" />
       <keyword name="BookmarksModel.rowCount" id="BookmarksModel.rowCount" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.rowCount" />
-      <keyword name="BookmarksModel.setData" id="BookmarksModel.setData" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.setData" />
       <keyword name="BookmarksModel.setData" id="BookmarksModel.setData" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.setData" />
-      <keyword name="BookmarksModel.supportedDropActions" id="BookmarksModel.supportedDropActions" ref="eric6.Helpviewer.Bookmarks.BookmarksModel.html#BookmarksModel.supportedDropActions" />
       <keyword name="BookmarksModel.supportedDropActions" id="BookmarksModel.supportedDropActions" ref="eric6.WebBrowser.Bookmarks.BookmarksModel.html#BookmarksModel.supportedDropActions" />
-      <keyword name="BookmarksToolBar" id="BookmarksToolBar" ref="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html#BookmarksToolBar" />
       <keyword name="BookmarksToolBar" id="BookmarksToolBar" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar" />
-      <keyword name="BookmarksToolBar (Constructor)" id="BookmarksToolBar (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__init__" />
       <keyword name="BookmarksToolBar (Constructor)" id="BookmarksToolBar (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__init__" />
-      <keyword name="BookmarksToolBar (Module)" id="BookmarksToolBar (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html" />
       <keyword name="BookmarksToolBar (Module)" id="BookmarksToolBar (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html" />
-      <keyword name="BookmarksToolBar.__bookmarkActivated" id="BookmarksToolBar.__bookmarkActivated" ref="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__bookmarkActivated" />
       <keyword name="BookmarksToolBar.__bookmarkActivated" id="BookmarksToolBar.__bookmarkActivated" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__bookmarkActivated" />
-      <keyword name="BookmarksToolBar.__contextMenuRequested" id="BookmarksToolBar.__contextMenuRequested" ref="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__contextMenuRequested" />
       <keyword name="BookmarksToolBar.__contextMenuRequested" id="BookmarksToolBar.__contextMenuRequested" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__contextMenuRequested" />
-      <keyword name="BookmarksToolBar.__edit" id="BookmarksToolBar.__edit" ref="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__edit" />
       <keyword name="BookmarksToolBar.__edit" id="BookmarksToolBar.__edit" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__edit" />
-      <keyword name="BookmarksToolBar.__newBookmark" id="BookmarksToolBar.__newBookmark" ref="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__newBookmark" />
       <keyword name="BookmarksToolBar.__newBookmark" id="BookmarksToolBar.__newBookmark" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__newBookmark" />
-      <keyword name="BookmarksToolBar.__newFolder" id="BookmarksToolBar.__newFolder" ref="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__newFolder" />
       <keyword name="BookmarksToolBar.__newFolder" id="BookmarksToolBar.__newFolder" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__newFolder" />
-      <keyword name="BookmarksToolBar.__openBookmark" id="BookmarksToolBar.__openBookmark" ref="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__openBookmark" />
       <keyword name="BookmarksToolBar.__openBookmark" id="BookmarksToolBar.__openBookmark" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__openBookmark" />
-      <keyword name="BookmarksToolBar.__openBookmarkInNewTab" id="BookmarksToolBar.__openBookmarkInNewTab" ref="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__openBookmarkInNewTab" />
       <keyword name="BookmarksToolBar.__openBookmarkInNewTab" id="BookmarksToolBar.__openBookmarkInNewTab" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__openBookmarkInNewTab" />
       <keyword name="BookmarksToolBar.__openBookmarkInNewWindow" id="BookmarksToolBar.__openBookmarkInNewWindow" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__openBookmarkInNewWindow" />
       <keyword name="BookmarksToolBar.__openBookmarkInPrivateWindow" id="BookmarksToolBar.__openBookmarkInPrivateWindow" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__openBookmarkInPrivateWindow" />
-      <keyword name="BookmarksToolBar.__rebuild" id="BookmarksToolBar.__rebuild" ref="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__rebuild" />
       <keyword name="BookmarksToolBar.__rebuild" id="BookmarksToolBar.__rebuild" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__rebuild" />
-      <keyword name="BookmarksToolBar.__removeBookmark" id="BookmarksToolBar.__removeBookmark" ref="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__removeBookmark" />
       <keyword name="BookmarksToolBar.__removeBookmark" id="BookmarksToolBar.__removeBookmark" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__removeBookmark" />
       <keyword name="BookmarksToolBar.__updateVisitCount" id="BookmarksToolBar.__updateVisitCount" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar.__updateVisitCount" />
-      <keyword name="BookmarksToolBar._createMenu" id="BookmarksToolBar._createMenu" ref="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html#BookmarksToolBar._createMenu" />
       <keyword name="BookmarksToolBar._createMenu" id="BookmarksToolBar._createMenu" ref="eric6.WebBrowser.Bookmarks.BookmarksToolBar.html#BookmarksToolBar._createMenu" />
       <keyword name="BoolWrapper" id="BoolWrapper" ref="eric6.Utilities.binplistlib.html#BoolWrapper" />
       <keyword name="BoolWrapper (Constructor)" id="BoolWrapper (Constructor)" ref="eric6.Utilities.binplistlib.html#BoolWrapper.__init__" />
@@ -2834,13 +2253,9 @@
       <keyword name="CallTraceViewer.on_stopCheckBox_clicked" id="CallTraceViewer.on_stopCheckBox_clicked" ref="eric6.Debugger.CallTraceViewer.html#CallTraceViewer.on_stopCheckBox_clicked" />
       <keyword name="CallTraceViewer.on_stopTraceButton_clicked" id="CallTraceViewer.on_stopTraceButton_clicked" ref="eric6.Debugger.CallTraceViewer.html#CallTraceViewer.on_stopTraceButton_clicked" />
       <keyword name="CallTraceViewer.setProjectMode" id="CallTraceViewer.setProjectMode" ref="eric6.Debugger.CallTraceViewer.html#CallTraceViewer.setProjectMode" />
-      <keyword name="ChangeBookmarkCommand" id="ChangeBookmarkCommand" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#ChangeBookmarkCommand" />
       <keyword name="ChangeBookmarkCommand" id="ChangeBookmarkCommand" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#ChangeBookmarkCommand" />
-      <keyword name="ChangeBookmarkCommand (Constructor)" id="ChangeBookmarkCommand (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#ChangeBookmarkCommand.__init__" />
       <keyword name="ChangeBookmarkCommand (Constructor)" id="ChangeBookmarkCommand (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#ChangeBookmarkCommand.__init__" />
-      <keyword name="ChangeBookmarkCommand.redo" id="ChangeBookmarkCommand.redo" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#ChangeBookmarkCommand.redo" />
       <keyword name="ChangeBookmarkCommand.redo" id="ChangeBookmarkCommand.redo" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#ChangeBookmarkCommand.redo" />
-      <keyword name="ChangeBookmarkCommand.undo" id="ChangeBookmarkCommand.undo" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#ChangeBookmarkCommand.undo" />
       <keyword name="ChangeBookmarkCommand.undo" id="ChangeBookmarkCommand.undo" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#ChangeBookmarkCommand.undo" />
       <keyword name="Charset" id="Charset" ref="eric6.E5Network.E5RFC6266.html#Charset" />
       <keyword name="ChatWidget" id="ChatWidget" ref="eric6.Cooperation.ChatWidget.html#ChatWidget" />
@@ -2898,23 +2313,14 @@
       <keyword name="Checker.report_invalid_syntax" id="Checker.report_invalid_syntax" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#Checker.report_invalid_syntax" />
       <keyword name="Checker.run_check" id="Checker.run_check" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#Checker.run_check" />
       <keyword name="CheckerPlugins (Package)" id="CheckerPlugins (Package)" ref="index-eric6.Plugins.CheckerPlugins.html" />
-      <keyword name="ChromeImporter" id="ChromeImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter" />
       <keyword name="ChromeImporter" id="ChromeImporter" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter" />
-      <keyword name="ChromeImporter (Constructor)" id="ChromeImporter (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.__init__" />
       <keyword name="ChromeImporter (Constructor)" id="ChromeImporter (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.__init__" />
-      <keyword name="ChromeImporter (Module)" id="ChromeImporter (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html" />
       <keyword name="ChromeImporter (Module)" id="ChromeImporter (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.ChromeImporter.html" />
-      <keyword name="ChromeImporter.__generateFolderNode" id="ChromeImporter.__generateFolderNode" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.__generateFolderNode" />
       <keyword name="ChromeImporter.__generateFolderNode" id="ChromeImporter.__generateFolderNode" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.__generateFolderNode" />
-      <keyword name="ChromeImporter.__generateUrlNode" id="ChromeImporter.__generateUrlNode" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.__generateUrlNode" />
       <keyword name="ChromeImporter.__generateUrlNode" id="ChromeImporter.__generateUrlNode" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.__generateUrlNode" />
-      <keyword name="ChromeImporter.__processRoots" id="ChromeImporter.__processRoots" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.__processRoots" />
       <keyword name="ChromeImporter.__processRoots" id="ChromeImporter.__processRoots" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.__processRoots" />
-      <keyword name="ChromeImporter.importedBookmarks" id="ChromeImporter.importedBookmarks" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.importedBookmarks" />
       <keyword name="ChromeImporter.importedBookmarks" id="ChromeImporter.importedBookmarks" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.importedBookmarks" />
-      <keyword name="ChromeImporter.open" id="ChromeImporter.open" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.open" />
       <keyword name="ChromeImporter.open" id="ChromeImporter.open" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.open" />
-      <keyword name="ChromeImporter.setPath" id="ChromeImporter.setPath" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.setPath" />
       <keyword name="ChromeImporter.setPath" id="ChromeImporter.setPath" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.ChromeImporter.html#ChromeImporter.setPath" />
       <keyword name="CircuitPythonDevice" id="CircuitPythonDevice" ref="eric6.MicroPython.CircuitPythonDevices.html#CircuitPythonDevice" />
       <keyword name="CircuitPythonDevice (Constructor)" id="CircuitPythonDevice (Constructor)" ref="eric6.MicroPython.CircuitPythonDevices.html#CircuitPythonDevice.__init__" />
@@ -2996,64 +2402,16 @@
       <keyword name="ClearPrivateDataDialog (Constructor)" id="ClearPrivateDataDialog (Constructor)" ref="eric6.UI.ClearPrivateDataDialog.html#ClearPrivateDataDialog.__init__" />
       <keyword name="ClearPrivateDataDialog (Module)" id="ClearPrivateDataDialog (Module)" ref="eric6.UI.ClearPrivateDataDialog.html" />
       <keyword name="ClearPrivateDataDialog.getData" id="ClearPrivateDataDialog.getData" ref="eric6.UI.ClearPrivateDataDialog.html#ClearPrivateDataDialog.getData" />
-      <keyword name="ClickToFlash" id="ClickToFlash" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash" />
-      <keyword name="ClickToFlash (Constructor)" id="ClickToFlash (Constructor)" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.__init__" />
-      <keyword name="ClickToFlash (Module)" id="ClickToFlash (Module)" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html" />
-      <keyword name="ClickToFlash (Package)" id="ClickToFlash (Package)" ref="index-eric6.Helpviewer.WebPlugins.ClickToFlash.html" />
-      <keyword name="ClickToFlash.__addToWhitelist" id="ClickToFlash.__addToWhitelist" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.__addToWhitelist" />
-      <keyword name="ClickToFlash.__checkElement" id="ClickToFlash.__checkElement" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.__checkElement" />
-      <keyword name="ClickToFlash.__checkUrlOnElement" id="ClickToFlash.__checkUrlOnElement" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.__checkUrlOnElement" />
-      <keyword name="ClickToFlash.__configure" id="ClickToFlash.__configure" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.__configure" />
-      <keyword name="ClickToFlash.__elide" id="ClickToFlash.__elide" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.__elide" />
-      <keyword name="ClickToFlash.__findElement" id="ClickToFlash.__findElement" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.__findElement" />
-      <keyword name="ClickToFlash.__hideAdBlocked" id="ClickToFlash.__hideAdBlocked" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.__hideAdBlocked" />
-      <keyword name="ClickToFlash.__load" id="ClickToFlash.__load" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.__load" />
-      <keyword name="ClickToFlash.__removeFromWhitelist" id="ClickToFlash.__removeFromWhitelist" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.__removeFromWhitelist" />
-      <keyword name="ClickToFlash.__showContextMenu" id="ClickToFlash.__showContextMenu" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.__showContextMenu" />
-      <keyword name="ClickToFlash.__showInfo" id="ClickToFlash.__showInfo" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.__showInfo" />
-      <keyword name="ClickToFlash.isAlreadyAccepted" id="ClickToFlash.isAlreadyAccepted" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.isAlreadyAccepted" />
-      <keyword name="ClickToFlash.on_loadFlashButton_clicked" id="ClickToFlash.on_loadFlashButton_clicked" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.on_loadFlashButton_clicked" />
-      <keyword name="ClickToFlash.swapping" id="ClickToFlash.swapping" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html#ClickToFlash.swapping" />
-      <keyword name="ClickToFlashPlugin" id="ClickToFlashPlugin" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html#ClickToFlashPlugin" />
-      <keyword name="ClickToFlashPlugin (Constructor)" id="ClickToFlashPlugin (Constructor)" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html#ClickToFlashPlugin.__init__" />
-      <keyword name="ClickToFlashPlugin (Module)" id="ClickToFlashPlugin (Module)" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html" />
-      <keyword name="ClickToFlashPlugin.__enabled" id="ClickToFlashPlugin.__enabled" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html#ClickToFlashPlugin.__enabled" />
-      <keyword name="ClickToFlashPlugin.__load" id="ClickToFlashPlugin.__load" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html#ClickToFlashPlugin.__load" />
-      <keyword name="ClickToFlashPlugin.__save" id="ClickToFlashPlugin.__save" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html#ClickToFlashPlugin.__save" />
-      <keyword name="ClickToFlashPlugin.addToWhitelist" id="ClickToFlashPlugin.addToWhitelist" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html#ClickToFlashPlugin.addToWhitelist" />
-      <keyword name="ClickToFlashPlugin.configure" id="ClickToFlashPlugin.configure" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html#ClickToFlashPlugin.configure" />
-      <keyword name="ClickToFlashPlugin.create" id="ClickToFlashPlugin.create" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html#ClickToFlashPlugin.create" />
-      <keyword name="ClickToFlashPlugin.getIconName" id="ClickToFlashPlugin.getIconName" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html#ClickToFlashPlugin.getIconName" />
-      <keyword name="ClickToFlashPlugin.isAnonymous" id="ClickToFlashPlugin.isAnonymous" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html#ClickToFlashPlugin.isAnonymous" />
-      <keyword name="ClickToFlashPlugin.metaPlugin" id="ClickToFlashPlugin.metaPlugin" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html#ClickToFlashPlugin.metaPlugin" />
-      <keyword name="ClickToFlashPlugin.onWhitelist" id="ClickToFlashPlugin.onWhitelist" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html#ClickToFlashPlugin.onWhitelist" />
-      <keyword name="ClickToFlashPlugin.removeFromWhitelist" id="ClickToFlashPlugin.removeFromWhitelist" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html#ClickToFlashPlugin.removeFromWhitelist" />
-      <keyword name="ClickToFlashWhitelistDialog" id="ClickToFlashWhitelistDialog" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog.html#ClickToFlashWhitelistDialog" />
-      <keyword name="ClickToFlashWhitelistDialog (Constructor)" id="ClickToFlashWhitelistDialog (Constructor)" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog.html#ClickToFlashWhitelistDialog.__init__" />
-      <keyword name="ClickToFlashWhitelistDialog (Module)" id="ClickToFlashWhitelistDialog (Module)" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog.html" />
-      <keyword name="ClickToFlashWhitelistDialog.getWhitelist" id="ClickToFlashWhitelistDialog.getWhitelist" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog.html#ClickToFlashWhitelistDialog.getWhitelist" />
-      <keyword name="ClickToFlashWhitelistDialog.on_addButton_clicked" id="ClickToFlashWhitelistDialog.on_addButton_clicked" ref="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog.html#ClickToFlashWhitelistDialog.on_addButton_clicked" />
-      <keyword name="ClosedTab" id="ClosedTab" ref="eric6.Helpviewer.ClosedTabsManager.html#ClosedTab" />
       <keyword name="ClosedTab" id="ClosedTab" ref="eric6.WebBrowser.ClosedTabsManager.html#ClosedTab" />
-      <keyword name="ClosedTab (Constructor)" id="ClosedTab (Constructor)" ref="eric6.Helpviewer.ClosedTabsManager.html#ClosedTab.__init__" />
       <keyword name="ClosedTab (Constructor)" id="ClosedTab (Constructor)" ref="eric6.WebBrowser.ClosedTabsManager.html#ClosedTab.__init__" />
-      <keyword name="ClosedTab.__eq__" id="ClosedTab.__eq__" ref="eric6.Helpviewer.ClosedTabsManager.html#ClosedTab.__eq__" />
       <keyword name="ClosedTab.__eq__" id="ClosedTab.__eq__" ref="eric6.WebBrowser.ClosedTabsManager.html#ClosedTab.__eq__" />
-      <keyword name="ClosedTabsManager" id="ClosedTabsManager" ref="eric6.Helpviewer.ClosedTabsManager.html#ClosedTabsManager" />
       <keyword name="ClosedTabsManager" id="ClosedTabsManager" ref="eric6.WebBrowser.ClosedTabsManager.html#ClosedTabsManager" />
-      <keyword name="ClosedTabsManager (Constructor)" id="ClosedTabsManager (Constructor)" ref="eric6.Helpviewer.ClosedTabsManager.html#ClosedTabsManager.__init__" />
       <keyword name="ClosedTabsManager (Constructor)" id="ClosedTabsManager (Constructor)" ref="eric6.WebBrowser.ClosedTabsManager.html#ClosedTabsManager.__init__" />
-      <keyword name="ClosedTabsManager (Module)" id="ClosedTabsManager (Module)" ref="eric6.Helpviewer.ClosedTabsManager.html" />
       <keyword name="ClosedTabsManager (Module)" id="ClosedTabsManager (Module)" ref="eric6.WebBrowser.ClosedTabsManager.html" />
-      <keyword name="ClosedTabsManager.allClosedTabs" id="ClosedTabsManager.allClosedTabs" ref="eric6.Helpviewer.ClosedTabsManager.html#ClosedTabsManager.allClosedTabs" />
       <keyword name="ClosedTabsManager.allClosedTabs" id="ClosedTabsManager.allClosedTabs" ref="eric6.WebBrowser.ClosedTabsManager.html#ClosedTabsManager.allClosedTabs" />
-      <keyword name="ClosedTabsManager.clearList" id="ClosedTabsManager.clearList" ref="eric6.Helpviewer.ClosedTabsManager.html#ClosedTabsManager.clearList" />
       <keyword name="ClosedTabsManager.clearList" id="ClosedTabsManager.clearList" ref="eric6.WebBrowser.ClosedTabsManager.html#ClosedTabsManager.clearList" />
-      <keyword name="ClosedTabsManager.getClosedTabAt" id="ClosedTabsManager.getClosedTabAt" ref="eric6.Helpviewer.ClosedTabsManager.html#ClosedTabsManager.getClosedTabAt" />
       <keyword name="ClosedTabsManager.getClosedTabAt" id="ClosedTabsManager.getClosedTabAt" ref="eric6.WebBrowser.ClosedTabsManager.html#ClosedTabsManager.getClosedTabAt" />
-      <keyword name="ClosedTabsManager.isClosedTabAvailable" id="ClosedTabsManager.isClosedTabAvailable" ref="eric6.Helpviewer.ClosedTabsManager.html#ClosedTabsManager.isClosedTabAvailable" />
       <keyword name="ClosedTabsManager.isClosedTabAvailable" id="ClosedTabsManager.isClosedTabAvailable" ref="eric6.WebBrowser.ClosedTabsManager.html#ClosedTabsManager.isClosedTabAvailable" />
-      <keyword name="ClosedTabsManager.recordBrowser" id="ClosedTabsManager.recordBrowser" ref="eric6.Helpviewer.ClosedTabsManager.html#ClosedTabsManager.recordBrowser" />
       <keyword name="ClosedTabsManager.recordBrowser" id="ClosedTabsManager.recordBrowser" ref="eric6.WebBrowser.ClosedTabsManager.html#ClosedTabsManager.recordBrowser" />
       <keyword name="Closehead" id="Closehead" ref="eric6.Plugins.VcsPlugins.vcsMercurial.CloseheadExtension.closehead.html#Closehead" />
       <keyword name="Closehead (Constructor)" id="Closehead (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.CloseheadExtension.closehead.html#Closehead.__init__" />
@@ -3536,143 +2894,70 @@
       <keyword name="ContentDisposition_1" id="ContentDisposition_1" ref="eric6.E5Network.E5RFC6266.html#ContentDisposition_1" />
       <keyword name="ContentDisposition_1 (Constructor)" id="ContentDisposition_1 (Constructor)" ref="eric6.E5Network.E5RFC6266.html#ContentDisposition_1.__init__" />
       <keyword name="ContentDisposition_1.filename" id="ContentDisposition_1.filename" ref="eric6.E5Network.E5RFC6266.html#ContentDisposition_1.filename" />
-      <keyword name="CookieDetailsDialog" id="CookieDetailsDialog" ref="eric6.Helpviewer.CookieJar.CookieDetailsDialog.html#CookieDetailsDialog" />
-      <keyword name="CookieDetailsDialog (Constructor)" id="CookieDetailsDialog (Constructor)" ref="eric6.Helpviewer.CookieJar.CookieDetailsDialog.html#CookieDetailsDialog.__init__" />
-      <keyword name="CookieDetailsDialog (Module)" id="CookieDetailsDialog (Module)" ref="eric6.Helpviewer.CookieJar.CookieDetailsDialog.html" />
-      <keyword name="CookieDetailsDialog.setData" id="CookieDetailsDialog.setData" ref="eric6.Helpviewer.CookieJar.CookieDetailsDialog.html#CookieDetailsDialog.setData" />
-      <keyword name="CookieExceptionsModel" id="CookieExceptionsModel" ref="eric6.Helpviewer.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel" />
       <keyword name="CookieExceptionsModel" id="CookieExceptionsModel" ref="eric6.WebBrowser.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel" />
-      <keyword name="CookieExceptionsModel (Constructor)" id="CookieExceptionsModel (Constructor)" ref="eric6.Helpviewer.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.__init__" />
       <keyword name="CookieExceptionsModel (Constructor)" id="CookieExceptionsModel (Constructor)" ref="eric6.WebBrowser.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.__init__" />
-      <keyword name="CookieExceptionsModel (Module)" id="CookieExceptionsModel (Module)" ref="eric6.Helpviewer.CookieJar.CookieExceptionsModel.html" />
       <keyword name="CookieExceptionsModel (Module)" id="CookieExceptionsModel (Module)" ref="eric6.WebBrowser.CookieJar.CookieExceptionsModel.html" />
-      <keyword name="CookieExceptionsModel.__addHost" id="CookieExceptionsModel.__addHost" ref="eric6.Helpviewer.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.__addHost" />
       <keyword name="CookieExceptionsModel.__addHost" id="CookieExceptionsModel.__addHost" ref="eric6.WebBrowser.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.__addHost" />
-      <keyword name="CookieExceptionsModel.addRule" id="CookieExceptionsModel.addRule" ref="eric6.Helpviewer.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.addRule" />
       <keyword name="CookieExceptionsModel.addRule" id="CookieExceptionsModel.addRule" ref="eric6.WebBrowser.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.addRule" />
-      <keyword name="CookieExceptionsModel.columnCount" id="CookieExceptionsModel.columnCount" ref="eric6.Helpviewer.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.columnCount" />
       <keyword name="CookieExceptionsModel.columnCount" id="CookieExceptionsModel.columnCount" ref="eric6.WebBrowser.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.columnCount" />
-      <keyword name="CookieExceptionsModel.data" id="CookieExceptionsModel.data" ref="eric6.Helpviewer.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.data" />
       <keyword name="CookieExceptionsModel.data" id="CookieExceptionsModel.data" ref="eric6.WebBrowser.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.data" />
-      <keyword name="CookieExceptionsModel.headerData" id="CookieExceptionsModel.headerData" ref="eric6.Helpviewer.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.headerData" />
       <keyword name="CookieExceptionsModel.headerData" id="CookieExceptionsModel.headerData" ref="eric6.WebBrowser.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.headerData" />
-      <keyword name="CookieExceptionsModel.removeRows" id="CookieExceptionsModel.removeRows" ref="eric6.Helpviewer.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.removeRows" />
       <keyword name="CookieExceptionsModel.removeRows" id="CookieExceptionsModel.removeRows" ref="eric6.WebBrowser.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.removeRows" />
-      <keyword name="CookieExceptionsModel.rowCount" id="CookieExceptionsModel.rowCount" ref="eric6.Helpviewer.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.rowCount" />
       <keyword name="CookieExceptionsModel.rowCount" id="CookieExceptionsModel.rowCount" ref="eric6.WebBrowser.CookieJar.CookieExceptionsModel.html#CookieExceptionsModel.rowCount" />
-      <keyword name="CookieJar" id="CookieJar" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar" />
       <keyword name="CookieJar" id="CookieJar" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar" />
-      <keyword name="CookieJar (Constructor)" id="CookieJar (Constructor)" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.__init__" />
       <keyword name="CookieJar (Constructor)" id="CookieJar (Constructor)" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.__init__" />
-      <keyword name="CookieJar (Module)" id="CookieJar (Module)" ref="eric6.Helpviewer.CookieJar.CookieJar.html" />
       <keyword name="CookieJar (Module)" id="CookieJar (Module)" ref="eric6.WebBrowser.CookieJar.CookieJar.html" />
-      <keyword name="CookieJar (Package)" id="CookieJar (Package)" ref="index-eric6.Helpviewer.CookieJar.html" />
       <keyword name="CookieJar (Package)" id="CookieJar (Package)" ref="index-eric6.WebBrowser.CookieJar.html" />
-      <keyword name="CookieJar.__applyRules" id="CookieJar.__applyRules" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.__applyRules" />
       <keyword name="CookieJar.__cookieAdded" id="CookieJar.__cookieAdded" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.__cookieAdded" />
       <keyword name="CookieJar.__cookieFilter" id="CookieJar.__cookieFilter" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.__cookieFilter" />
       <keyword name="CookieJar.__cookieRemoved" id="CookieJar.__cookieRemoved" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.__cookieRemoved" />
-      <keyword name="CookieJar.__isOnDomainList" id="CookieJar.__isOnDomainList" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.__isOnDomainList" />
       <keyword name="CookieJar.__isOnDomainList" id="CookieJar.__isOnDomainList" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.__isOnDomainList" />
       <keyword name="CookieJar.__load" id="CookieJar.__load" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.__load" />
       <keyword name="CookieJar.__matchDomain" id="CookieJar.__matchDomain" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.__matchDomain" />
-      <keyword name="CookieJar.__purgeOldCookies" id="CookieJar.__purgeOldCookies" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.__purgeOldCookies" />
       <keyword name="CookieJar.__rejectCookie" id="CookieJar.__rejectCookie" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.__rejectCookie" />
       <keyword name="CookieJar.__save" id="CookieJar.__save" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.__save" />
-      <keyword name="CookieJar.acceptPolicy" id="CookieJar.acceptPolicy" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.acceptPolicy" />
       <keyword name="CookieJar.acceptPolicy" id="CookieJar.acceptPolicy" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.acceptPolicy" />
-      <keyword name="CookieJar.allowForSessionCookies" id="CookieJar.allowForSessionCookies" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.allowForSessionCookies" />
       <keyword name="CookieJar.allowForSessionCookies" id="CookieJar.allowForSessionCookies" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.allowForSessionCookies" />
-      <keyword name="CookieJar.allowedCookies" id="CookieJar.allowedCookies" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.allowedCookies" />
       <keyword name="CookieJar.allowedCookies" id="CookieJar.allowedCookies" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.allowedCookies" />
-      <keyword name="CookieJar.blockedCookies" id="CookieJar.blockedCookies" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.blockedCookies" />
       <keyword name="CookieJar.blockedCookies" id="CookieJar.blockedCookies" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.blockedCookies" />
-      <keyword name="CookieJar.clear" id="CookieJar.clear" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.clear" />
       <keyword name="CookieJar.clear" id="CookieJar.clear" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.clear" />
-      <keyword name="CookieJar.close" id="CookieJar.close" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.close" />
       <keyword name="CookieJar.close" id="CookieJar.close" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.close" />
       <keyword name="CookieJar.cookieDomains" id="CookieJar.cookieDomains" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.cookieDomains" />
-      <keyword name="CookieJar.cookies" id="CookieJar.cookies" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.cookies" />
       <keyword name="CookieJar.cookies" id="CookieJar.cookies" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.cookies" />
-      <keyword name="CookieJar.cookiesForUrl" id="CookieJar.cookiesForUrl" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.cookiesForUrl" />
-      <keyword name="CookieJar.filterTrackingCookies" id="CookieJar.filterTrackingCookies" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.filterTrackingCookies" />
       <keyword name="CookieJar.filterTrackingCookies" id="CookieJar.filterTrackingCookies" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.filterTrackingCookies" />
-      <keyword name="CookieJar.keepPolicy" id="CookieJar.keepPolicy" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.keepPolicy" />
       <keyword name="CookieJar.keepPolicy" id="CookieJar.keepPolicy" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.keepPolicy" />
-      <keyword name="CookieJar.load" id="CookieJar.load" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.load" />
-      <keyword name="CookieJar.loadCookies" id="CookieJar.loadCookies" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.loadCookies" />
       <keyword name="CookieJar.removeCookie" id="CookieJar.removeCookie" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.removeCookie" />
       <keyword name="CookieJar.removeCookies" id="CookieJar.removeCookies" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.removeCookies" />
-      <keyword name="CookieJar.save" id="CookieJar.save" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.save" />
-      <keyword name="CookieJar.saveCookies" id="CookieJar.saveCookies" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.saveCookies" />
-      <keyword name="CookieJar.setAcceptPolicy" id="CookieJar.setAcceptPolicy" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.setAcceptPolicy" />
       <keyword name="CookieJar.setAcceptPolicy" id="CookieJar.setAcceptPolicy" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.setAcceptPolicy" />
-      <keyword name="CookieJar.setAllowForSessionCookies" id="CookieJar.setAllowForSessionCookies" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.setAllowForSessionCookies" />
       <keyword name="CookieJar.setAllowForSessionCookies" id="CookieJar.setAllowForSessionCookies" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.setAllowForSessionCookies" />
-      <keyword name="CookieJar.setAllowedCookies" id="CookieJar.setAllowedCookies" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.setAllowedCookies" />
       <keyword name="CookieJar.setAllowedCookies" id="CookieJar.setAllowedCookies" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.setAllowedCookies" />
-      <keyword name="CookieJar.setBlockedCookies" id="CookieJar.setBlockedCookies" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.setBlockedCookies" />
       <keyword name="CookieJar.setBlockedCookies" id="CookieJar.setBlockedCookies" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.setBlockedCookies" />
-      <keyword name="CookieJar.setCookies" id="CookieJar.setCookies" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.setCookies" />
-      <keyword name="CookieJar.setCookiesFromUrl" id="CookieJar.setCookiesFromUrl" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.setCookiesFromUrl" />
-      <keyword name="CookieJar.setFilterTrackingCookies" id="CookieJar.setFilterTrackingCookies" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.setFilterTrackingCookies" />
       <keyword name="CookieJar.setFilterTrackingCookies" id="CookieJar.setFilterTrackingCookies" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.setFilterTrackingCookies" />
-      <keyword name="CookieJar.setKeepPolicy" id="CookieJar.setKeepPolicy" ref="eric6.Helpviewer.CookieJar.CookieJar.html#CookieJar.setKeepPolicy" />
       <keyword name="CookieJar.setKeepPolicy" id="CookieJar.setKeepPolicy" ref="eric6.WebBrowser.CookieJar.CookieJar.html#CookieJar.setKeepPolicy" />
-      <keyword name="CookieModel" id="CookieModel" ref="eric6.Helpviewer.CookieJar.CookieModel.html#CookieModel" />
-      <keyword name="CookieModel (Constructor)" id="CookieModel (Constructor)" ref="eric6.Helpviewer.CookieJar.CookieModel.html#CookieModel.__init__" />
-      <keyword name="CookieModel (Module)" id="CookieModel (Module)" ref="eric6.Helpviewer.CookieJar.CookieModel.html" />
-      <keyword name="CookieModel.__cookiesChanged" id="CookieModel.__cookiesChanged" ref="eric6.Helpviewer.CookieJar.CookieModel.html#CookieModel.__cookiesChanged" />
-      <keyword name="CookieModel.columnCount" id="CookieModel.columnCount" ref="eric6.Helpviewer.CookieJar.CookieModel.html#CookieModel.columnCount" />
-      <keyword name="CookieModel.data" id="CookieModel.data" ref="eric6.Helpviewer.CookieJar.CookieModel.html#CookieModel.data" />
-      <keyword name="CookieModel.headerData" id="CookieModel.headerData" ref="eric6.Helpviewer.CookieJar.CookieModel.html#CookieModel.headerData" />
-      <keyword name="CookieModel.removeRows" id="CookieModel.removeRows" ref="eric6.Helpviewer.CookieJar.CookieModel.html#CookieModel.removeRows" />
-      <keyword name="CookieModel.rowCount" id="CookieModel.rowCount" ref="eric6.Helpviewer.CookieJar.CookieModel.html#CookieModel.rowCount" />
-      <keyword name="CookiesConfigurationDialog" id="CookiesConfigurationDialog" ref="eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.html#CookiesConfigurationDialog" />
       <keyword name="CookiesConfigurationDialog" id="CookiesConfigurationDialog" ref="eric6.WebBrowser.CookieJar.CookiesConfigurationDialog.html#CookiesConfigurationDialog" />
-      <keyword name="CookiesConfigurationDialog (Constructor)" id="CookiesConfigurationDialog (Constructor)" ref="eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.html#CookiesConfigurationDialog.__init__" />
       <keyword name="CookiesConfigurationDialog (Constructor)" id="CookiesConfigurationDialog (Constructor)" ref="eric6.WebBrowser.CookieJar.CookiesConfigurationDialog.html#CookiesConfigurationDialog.__init__" />
-      <keyword name="CookiesConfigurationDialog (Module)" id="CookiesConfigurationDialog (Module)" ref="eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.html" />
       <keyword name="CookiesConfigurationDialog (Module)" id="CookiesConfigurationDialog (Module)" ref="eric6.WebBrowser.CookieJar.CookiesConfigurationDialog.html" />
-      <keyword name="CookiesConfigurationDialog.accept" id="CookiesConfigurationDialog.accept" ref="eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.html#CookiesConfigurationDialog.accept" />
       <keyword name="CookiesConfigurationDialog.accept" id="CookiesConfigurationDialog.accept" ref="eric6.WebBrowser.CookieJar.CookiesConfigurationDialog.html#CookiesConfigurationDialog.accept" />
-      <keyword name="CookiesConfigurationDialog.on_cookiesButton_clicked" id="CookiesConfigurationDialog.on_cookiesButton_clicked" ref="eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.html#CookiesConfigurationDialog.on_cookiesButton_clicked" />
       <keyword name="CookiesConfigurationDialog.on_cookiesButton_clicked" id="CookiesConfigurationDialog.on_cookiesButton_clicked" ref="eric6.WebBrowser.CookieJar.CookiesConfigurationDialog.html#CookiesConfigurationDialog.on_cookiesButton_clicked" />
-      <keyword name="CookiesConfigurationDialog.on_exceptionsButton_clicked" id="CookiesConfigurationDialog.on_exceptionsButton_clicked" ref="eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.html#CookiesConfigurationDialog.on_exceptionsButton_clicked" />
       <keyword name="CookiesConfigurationDialog.on_exceptionsButton_clicked" id="CookiesConfigurationDialog.on_exceptionsButton_clicked" ref="eric6.WebBrowser.CookieJar.CookiesConfigurationDialog.html#CookiesConfigurationDialog.on_exceptionsButton_clicked" />
-      <keyword name="CookiesDialog" id="CookiesDialog" ref="eric6.Helpviewer.CookieJar.CookiesDialog.html#CookiesDialog" />
       <keyword name="CookiesDialog" id="CookiesDialog" ref="eric6.WebBrowser.CookieJar.CookiesDialog.html#CookiesDialog" />
-      <keyword name="CookiesDialog (Constructor)" id="CookiesDialog (Constructor)" ref="eric6.Helpviewer.CookieJar.CookiesDialog.html#CookiesDialog.__init__" />
       <keyword name="CookiesDialog (Constructor)" id="CookiesDialog (Constructor)" ref="eric6.WebBrowser.CookieJar.CookiesDialog.html#CookiesDialog.__init__" />
-      <keyword name="CookiesDialog (Module)" id="CookiesDialog (Module)" ref="eric6.Helpviewer.CookieJar.CookiesDialog.html" />
       <keyword name="CookiesDialog (Module)" id="CookiesDialog (Module)" ref="eric6.WebBrowser.CookieJar.CookiesDialog.html" />
       <keyword name="CookiesDialog.__addCookie" id="CookiesDialog.__addCookie" ref="eric6.WebBrowser.CookieJar.CookiesDialog.html#CookiesDialog.__addCookie" />
       <keyword name="CookiesDialog.__cookieDomain" id="CookiesDialog.__cookieDomain" ref="eric6.WebBrowser.CookieJar.CookiesDialog.html#CookiesDialog.__cookieDomain" />
       <keyword name="CookiesDialog.__resizeColumns" id="CookiesDialog.__resizeColumns" ref="eric6.WebBrowser.CookieJar.CookiesDialog.html#CookiesDialog.__resizeColumns" />
-      <keyword name="CookiesDialog.__showCookieDetails" id="CookiesDialog.__showCookieDetails" ref="eric6.Helpviewer.CookieJar.CookiesDialog.html#CookiesDialog.__showCookieDetails" />
-      <keyword name="CookiesDialog.__tableModelReset" id="CookiesDialog.__tableModelReset" ref="eric6.Helpviewer.CookieJar.CookiesDialog.html#CookiesDialog.__tableModelReset" />
-      <keyword name="CookiesDialog.__tableSelectionChanged" id="CookiesDialog.__tableSelectionChanged" ref="eric6.Helpviewer.CookieJar.CookiesDialog.html#CookiesDialog.__tableSelectionChanged" />
-      <keyword name="CookiesDialog.on_addButton_clicked" id="CookiesDialog.on_addButton_clicked" ref="eric6.Helpviewer.CookieJar.CookiesDialog.html#CookiesDialog.on_addButton_clicked" />
       <keyword name="CookiesDialog.on_addButton_clicked" id="CookiesDialog.on_addButton_clicked" ref="eric6.WebBrowser.CookieJar.CookiesDialog.html#CookiesDialog.on_addButton_clicked" />
       <keyword name="CookiesDialog.on_cookiesTree_currentItemChanged" id="CookiesDialog.on_cookiesTree_currentItemChanged" ref="eric6.WebBrowser.CookieJar.CookiesDialog.html#CookiesDialog.on_cookiesTree_currentItemChanged" />
       <keyword name="CookiesDialog.on_removeAllButton_clicked" id="CookiesDialog.on_removeAllButton_clicked" ref="eric6.WebBrowser.CookieJar.CookiesDialog.html#CookiesDialog.on_removeAllButton_clicked" />
       <keyword name="CookiesDialog.on_removeButton_clicked" id="CookiesDialog.on_removeButton_clicked" ref="eric6.WebBrowser.CookieJar.CookiesDialog.html#CookiesDialog.on_removeButton_clicked" />
       <keyword name="CookiesDialog.on_searchEdit_textChanged" id="CookiesDialog.on_searchEdit_textChanged" ref="eric6.WebBrowser.CookieJar.CookiesDialog.html#CookiesDialog.on_searchEdit_textChanged" />
-      <keyword name="CookiesExceptionsDialog" id="CookiesExceptionsDialog" ref="eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.html#CookiesExceptionsDialog" />
       <keyword name="CookiesExceptionsDialog" id="CookiesExceptionsDialog" ref="eric6.WebBrowser.CookieJar.CookiesExceptionsDialog.html#CookiesExceptionsDialog" />
-      <keyword name="CookiesExceptionsDialog (Constructor)" id="CookiesExceptionsDialog (Constructor)" ref="eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.html#CookiesExceptionsDialog.__init__" />
       <keyword name="CookiesExceptionsDialog (Constructor)" id="CookiesExceptionsDialog (Constructor)" ref="eric6.WebBrowser.CookieJar.CookiesExceptionsDialog.html#CookiesExceptionsDialog.__init__" />
-      <keyword name="CookiesExceptionsDialog (Module)" id="CookiesExceptionsDialog (Module)" ref="eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.html" />
       <keyword name="CookiesExceptionsDialog (Module)" id="CookiesExceptionsDialog (Module)" ref="eric6.WebBrowser.CookieJar.CookiesExceptionsDialog.html" />
-      <keyword name="CookiesExceptionsDialog.on_allowButton_clicked" id="CookiesExceptionsDialog.on_allowButton_clicked" ref="eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.html#CookiesExceptionsDialog.on_allowButton_clicked" />
       <keyword name="CookiesExceptionsDialog.on_allowButton_clicked" id="CookiesExceptionsDialog.on_allowButton_clicked" ref="eric6.WebBrowser.CookieJar.CookiesExceptionsDialog.html#CookiesExceptionsDialog.on_allowButton_clicked" />
-      <keyword name="CookiesExceptionsDialog.on_allowForSessionButton_clicked" id="CookiesExceptionsDialog.on_allowForSessionButton_clicked" ref="eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.html#CookiesExceptionsDialog.on_allowForSessionButton_clicked" />
       <keyword name="CookiesExceptionsDialog.on_allowForSessionButton_clicked" id="CookiesExceptionsDialog.on_allowForSessionButton_clicked" ref="eric6.WebBrowser.CookieJar.CookiesExceptionsDialog.html#CookiesExceptionsDialog.on_allowForSessionButton_clicked" />
-      <keyword name="CookiesExceptionsDialog.on_blockButton_clicked" id="CookiesExceptionsDialog.on_blockButton_clicked" ref="eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.html#CookiesExceptionsDialog.on_blockButton_clicked" />
       <keyword name="CookiesExceptionsDialog.on_blockButton_clicked" id="CookiesExceptionsDialog.on_blockButton_clicked" ref="eric6.WebBrowser.CookieJar.CookiesExceptionsDialog.html#CookiesExceptionsDialog.on_blockButton_clicked" />
-      <keyword name="CookiesExceptionsDialog.on_domainEdit_textChanged" id="CookiesExceptionsDialog.on_domainEdit_textChanged" ref="eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.html#CookiesExceptionsDialog.on_domainEdit_textChanged" />
       <keyword name="CookiesExceptionsDialog.on_domainEdit_textChanged" id="CookiesExceptionsDialog.on_domainEdit_textChanged" ref="eric6.WebBrowser.CookieJar.CookiesExceptionsDialog.html#CookiesExceptionsDialog.on_domainEdit_textChanged" />
-      <keyword name="CookiesExceptionsDialog.setDomainName" id="CookiesExceptionsDialog.setDomainName" ref="eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.html#CookiesExceptionsDialog.setDomainName" />
       <keyword name="CookiesExceptionsDialog.setDomainName" id="CookiesExceptionsDialog.setDomainName" ref="eric6.WebBrowser.CookieJar.CookiesExceptionsDialog.html#CookiesExceptionsDialog.setDomainName" />
       <keyword name="Cooperation (Package)" id="Cooperation (Package)" ref="index-eric6.Cooperation.html" />
       <keyword name="CooperationClient" id="CooperationClient" ref="eric6.Cooperation.CooperationClient.html#CooperationClient" />
@@ -4202,7 +3487,6 @@
       <keyword name="DeepLEngine.supportedLanguages" id="DeepLEngine.supportedLanguages" ref="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorEngines.DeepLEngine.html#DeepLEngine.supportedLanguages" />
       <keyword name="DefaultResolver" id="DefaultResolver" ref="eric6.DebugClients.Python.DebugVariables.html#DefaultResolver" />
       <keyword name="DefaultResolver.getDictionary" id="DefaultResolver.getDictionary" ref="eric6.DebugClients.Python.DebugVariables.html#DefaultResolver.getDictionary" />
-      <keyword name="DefaultSearchEngines (Package)" id="DefaultSearchEngines (Package)" ref="index-eric6.Helpviewer.OpenSearch.DefaultSearchEngines.html" />
       <keyword name="DefaultSearchEngines (Package)" id="DefaultSearchEngines (Package)" ref="index-eric6.WebBrowser.OpenSearch.DefaultSearchEngines.html" />
       <keyword name="DelayedFileWatcher" id="DelayedFileWatcher" ref="eric6.WebBrowser.Tools.DelayedFileWatcher.html#DelayedFileWatcher" />
       <keyword name="DelayedFileWatcher (Constructor)" id="DelayedFileWatcher (Constructor)" ref="eric6.WebBrowser.Tools.DelayedFileWatcher.html#DelayedFileWatcher.__init__" />
@@ -4252,35 +3536,20 @@
       <keyword name="DiffWindow" id="DiffWindow" ref="eric6.UI.DiffDialog.html#DiffWindow" />
       <keyword name="DiffWindow (Constructor)" id="DiffWindow (Constructor)" ref="eric6.UI.DiffDialog.html#DiffWindow.__init__" />
       <keyword name="DiffWindow.eventFilter" id="DiffWindow.eventFilter" ref="eric6.UI.DiffDialog.html#DiffWindow.eventFilter" />
-      <keyword name="DirectorySyncHandler" id="DirectorySyncHandler" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler" />
       <keyword name="DirectorySyncHandler" id="DirectorySyncHandler" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html#DirectorySyncHandler" />
-      <keyword name="DirectorySyncHandler (Constructor)" id="DirectorySyncHandler (Constructor)" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__init__" />
       <keyword name="DirectorySyncHandler (Constructor)" id="DirectorySyncHandler (Constructor)" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__init__" />
-      <keyword name="DirectorySyncHandler (Module)" id="DirectorySyncHandler (Module)" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html" />
       <keyword name="DirectorySyncHandler (Module)" id="DirectorySyncHandler (Module)" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html" />
-      <keyword name="DirectorySyncHandler.__downloadFile" id="DirectorySyncHandler.__downloadFile" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__downloadFile" />
       <keyword name="DirectorySyncHandler.__downloadFile" id="DirectorySyncHandler.__downloadFile" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__downloadFile" />
-      <keyword name="DirectorySyncHandler.__initialSync" id="DirectorySyncHandler.__initialSync" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__initialSync" />
       <keyword name="DirectorySyncHandler.__initialSync" id="DirectorySyncHandler.__initialSync" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__initialSync" />
-      <keyword name="DirectorySyncHandler.__initialSyncFile" id="DirectorySyncHandler.__initialSyncFile" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__initialSyncFile" />
       <keyword name="DirectorySyncHandler.__initialSyncFile" id="DirectorySyncHandler.__initialSyncFile" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__initialSyncFile" />
-      <keyword name="DirectorySyncHandler.__syncFile" id="DirectorySyncHandler.__syncFile" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__syncFile" />
       <keyword name="DirectorySyncHandler.__syncFile" id="DirectorySyncHandler.__syncFile" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__syncFile" />
-      <keyword name="DirectorySyncHandler.__uploadFile" id="DirectorySyncHandler.__uploadFile" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__uploadFile" />
       <keyword name="DirectorySyncHandler.__uploadFile" id="DirectorySyncHandler.__uploadFile" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html#DirectorySyncHandler.__uploadFile" />
-      <keyword name="DirectorySyncHandler.initialLoadAndCheck" id="DirectorySyncHandler.initialLoadAndCheck" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.initialLoadAndCheck" />
       <keyword name="DirectorySyncHandler.initialLoadAndCheck" id="DirectorySyncHandler.initialLoadAndCheck" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html#DirectorySyncHandler.initialLoadAndCheck" />
-      <keyword name="DirectorySyncHandler.shutdown" id="DirectorySyncHandler.shutdown" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.shutdown" />
       <keyword name="DirectorySyncHandler.shutdown" id="DirectorySyncHandler.shutdown" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html#DirectorySyncHandler.shutdown" />
-      <keyword name="DirectorySyncHandler.syncBookmarks" id="DirectorySyncHandler.syncBookmarks" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncBookmarks" />
       <keyword name="DirectorySyncHandler.syncBookmarks" id="DirectorySyncHandler.syncBookmarks" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncBookmarks" />
-      <keyword name="DirectorySyncHandler.syncHistory" id="DirectorySyncHandler.syncHistory" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncHistory" />
       <keyword name="DirectorySyncHandler.syncHistory" id="DirectorySyncHandler.syncHistory" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncHistory" />
-      <keyword name="DirectorySyncHandler.syncPasswords" id="DirectorySyncHandler.syncPasswords" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncPasswords" />
       <keyword name="DirectorySyncHandler.syncPasswords" id="DirectorySyncHandler.syncPasswords" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncPasswords" />
-      <keyword name="DirectorySyncHandler.syncSpeedDial" id="DirectorySyncHandler.syncSpeedDial" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncSpeedDial" />
       <keyword name="DirectorySyncHandler.syncSpeedDial" id="DirectorySyncHandler.syncSpeedDial" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncSpeedDial" />
-      <keyword name="DirectorySyncHandler.syncUserAgents" id="DirectorySyncHandler.syncUserAgents" ref="eric6.Helpviewer.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncUserAgents" />
       <keyword name="DirectorySyncHandler.syncUserAgents" id="DirectorySyncHandler.syncUserAgents" ref="eric6.WebBrowser.Sync.DirectorySyncHandler.html#DirectorySyncHandler.syncUserAgents" />
       <keyword name="DispositionParm" id="DispositionParm" ref="eric6.E5Network.E5RFC6266.html#DispositionParm" />
       <keyword name="DispositionParmList" id="DispositionParmList" ref="eric6.E5Network.E5RFC6266.html#DispositionParmList" />
@@ -4377,157 +3646,81 @@
       <keyword name="DotDesktopWizardDialog.on_projectButton_clicked" id="DotDesktopWizardDialog.on_projectButton_clicked" ref="eric6.Plugins.WizardPlugins.DotDesktopWizard.DotDesktopWizardDialog.html#DotDesktopWizardDialog.on_projectButton_clicked" />
       <keyword name="DotDesktopWizardDialog.on_typeComboBox_currentIndexChanged" id="DotDesktopWizardDialog.on_typeComboBox_currentIndexChanged" ref="eric6.Plugins.WizardPlugins.DotDesktopWizard.DotDesktopWizardDialog.html#DotDesktopWizardDialog.on_typeComboBox_currentIndexChanged" />
       <keyword name="DotDesktopWizardDialog.on_typeEdit_textChanged" id="DotDesktopWizardDialog.on_typeEdit_textChanged" ref="eric6.Plugins.WizardPlugins.DotDesktopWizard.DotDesktopWizardDialog.html#DotDesktopWizardDialog.on_typeEdit_textChanged" />
-      <keyword name="Download (Package)" id="Download (Package)" ref="index-eric6.Helpviewer.Download.html" />
       <keyword name="Download (Package)" id="Download (Package)" ref="index-eric6.WebBrowser.Download.html" />
-      <keyword name="DownloadAskActionDialog" id="DownloadAskActionDialog" ref="eric6.Helpviewer.Download.DownloadAskActionDialog.html#DownloadAskActionDialog" />
       <keyword name="DownloadAskActionDialog" id="DownloadAskActionDialog" ref="eric6.WebBrowser.Download.DownloadAskActionDialog.html#DownloadAskActionDialog" />
-      <keyword name="DownloadAskActionDialog (Constructor)" id="DownloadAskActionDialog (Constructor)" ref="eric6.Helpviewer.Download.DownloadAskActionDialog.html#DownloadAskActionDialog.__init__" />
       <keyword name="DownloadAskActionDialog (Constructor)" id="DownloadAskActionDialog (Constructor)" ref="eric6.WebBrowser.Download.DownloadAskActionDialog.html#DownloadAskActionDialog.__init__" />
-      <keyword name="DownloadAskActionDialog (Module)" id="DownloadAskActionDialog (Module)" ref="eric6.Helpviewer.Download.DownloadAskActionDialog.html" />
       <keyword name="DownloadAskActionDialog (Module)" id="DownloadAskActionDialog (Module)" ref="eric6.WebBrowser.Download.DownloadAskActionDialog.html" />
-      <keyword name="DownloadAskActionDialog.getAction" id="DownloadAskActionDialog.getAction" ref="eric6.Helpviewer.Download.DownloadAskActionDialog.html#DownloadAskActionDialog.getAction" />
       <keyword name="DownloadAskActionDialog.getAction" id="DownloadAskActionDialog.getAction" ref="eric6.WebBrowser.Download.DownloadAskActionDialog.html#DownloadAskActionDialog.getAction" />
-      <keyword name="DownloadItem" id="DownloadItem" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem" />
       <keyword name="DownloadItem" id="DownloadItem" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem" />
-      <keyword name="DownloadItem (Constructor)" id="DownloadItem (Constructor)" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.__init__" />
       <keyword name="DownloadItem (Constructor)" id="DownloadItem (Constructor)" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.__init__" />
-      <keyword name="DownloadItem (Module)" id="DownloadItem (Module)" ref="eric6.Helpviewer.Download.DownloadItem.html" />
       <keyword name="DownloadItem (Module)" id="DownloadItem (Module)" ref="eric6.WebBrowser.Download.DownloadItem.html" />
-      <keyword name="DownloadItem.__adjustSize" id="DownloadItem.__adjustSize" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.__adjustSize" />
       <keyword name="DownloadItem.__adjustSize" id="DownloadItem.__adjustSize" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.__adjustSize" />
-      <keyword name="DownloadItem.__downloadProgress" id="DownloadItem.__downloadProgress" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.__downloadProgress" />
       <keyword name="DownloadItem.__downloadProgress" id="DownloadItem.__downloadProgress" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.__downloadProgress" />
-      <keyword name="DownloadItem.__finished" id="DownloadItem.__finished" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.__finished" />
       <keyword name="DownloadItem.__finished" id="DownloadItem.__finished" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.__finished" />
-      <keyword name="DownloadItem.__getFileName" id="DownloadItem.__getFileName" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.__getFileName" />
       <keyword name="DownloadItem.__getFileName" id="DownloadItem.__getFileName" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.__getFileName" />
-      <keyword name="DownloadItem.__initialize" id="DownloadItem.__initialize" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.__initialize" />
       <keyword name="DownloadItem.__initialize" id="DownloadItem.__initialize" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.__initialize" />
-      <keyword name="DownloadItem.__metaDataChanged" id="DownloadItem.__metaDataChanged" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.__metaDataChanged" />
-      <keyword name="DownloadItem.__networkError" id="DownloadItem.__networkError" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.__networkError" />
-      <keyword name="DownloadItem.__readyRead" id="DownloadItem.__readyRead" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.__readyRead" />
-      <keyword name="DownloadItem.__saveFileName" id="DownloadItem.__saveFileName" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.__saveFileName" />
       <keyword name="DownloadItem.__saveFileName" id="DownloadItem.__saveFileName" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.__saveFileName" />
-      <keyword name="DownloadItem.__setDateTime" id="DownloadItem.__setDateTime" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.__setDateTime" />
       <keyword name="DownloadItem.__setDateTime" id="DownloadItem.__setDateTime" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.__setDateTime" />
       <keyword name="DownloadItem.__setFileName" id="DownloadItem.__setFileName" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.__setFileName" />
-      <keyword name="DownloadItem.__updateInfoLabel" id="DownloadItem.__updateInfoLabel" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.__updateInfoLabel" />
       <keyword name="DownloadItem.__updateInfoLabel" id="DownloadItem.__updateInfoLabel" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.__updateInfoLabel" />
-      <keyword name="DownloadItem.absoluteFilePath" id="DownloadItem.absoluteFilePath" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.absoluteFilePath" />
       <keyword name="DownloadItem.absoluteFilePath" id="DownloadItem.absoluteFilePath" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.absoluteFilePath" />
-      <keyword name="DownloadItem.bytesReceived" id="DownloadItem.bytesReceived" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.bytesReceived" />
       <keyword name="DownloadItem.bytesReceived" id="DownloadItem.bytesReceived" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.bytesReceived" />
-      <keyword name="DownloadItem.bytesTotal" id="DownloadItem.bytesTotal" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.bytesTotal" />
       <keyword name="DownloadItem.bytesTotal" id="DownloadItem.bytesTotal" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.bytesTotal" />
-      <keyword name="DownloadItem.cancelDownload" id="DownloadItem.cancelDownload" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.cancelDownload" />
       <keyword name="DownloadItem.cancelDownload" id="DownloadItem.cancelDownload" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.cancelDownload" />
-      <keyword name="DownloadItem.canceledFileSelect" id="DownloadItem.canceledFileSelect" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.canceledFileSelect" />
       <keyword name="DownloadItem.canceledFileSelect" id="DownloadItem.canceledFileSelect" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.canceledFileSelect" />
-      <keyword name="DownloadItem.currentSpeed" id="DownloadItem.currentSpeed" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.currentSpeed" />
       <keyword name="DownloadItem.currentSpeed" id="DownloadItem.currentSpeed" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.currentSpeed" />
-      <keyword name="DownloadItem.downloadCanceled" id="DownloadItem.downloadCanceled" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.downloadCanceled" />
       <keyword name="DownloadItem.downloadCanceled" id="DownloadItem.downloadCanceled" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.downloadCanceled" />
       <keyword name="DownloadItem.downloadProgress" id="DownloadItem.downloadProgress" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.downloadProgress" />
-      <keyword name="DownloadItem.downloadedSuccessfully" id="DownloadItem.downloadedSuccessfully" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.downloadedSuccessfully" />
       <keyword name="DownloadItem.downloadedSuccessfully" id="DownloadItem.downloadedSuccessfully" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.downloadedSuccessfully" />
-      <keyword name="DownloadItem.downloading" id="DownloadItem.downloading" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.downloading" />
       <keyword name="DownloadItem.downloading" id="DownloadItem.downloading" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.downloading" />
-      <keyword name="DownloadItem.fileName" id="DownloadItem.fileName" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.fileName" />
       <keyword name="DownloadItem.fileName" id="DownloadItem.fileName" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.fileName" />
-      <keyword name="DownloadItem.getData" id="DownloadItem.getData" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.getData" />
       <keyword name="DownloadItem.getData" id="DownloadItem.getData" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.getData" />
-      <keyword name="DownloadItem.getInfoData" id="DownloadItem.getInfoData" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.getInfoData" />
       <keyword name="DownloadItem.getInfoData" id="DownloadItem.getInfoData" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.getInfoData" />
-      <keyword name="DownloadItem.getPageUrl" id="DownloadItem.getPageUrl" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.getPageUrl" />
       <keyword name="DownloadItem.getPageUrl" id="DownloadItem.getPageUrl" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.getPageUrl" />
-      <keyword name="DownloadItem.on_openButton_clicked" id="DownloadItem.on_openButton_clicked" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.on_openButton_clicked" />
       <keyword name="DownloadItem.on_openButton_clicked" id="DownloadItem.on_openButton_clicked" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.on_openButton_clicked" />
-      <keyword name="DownloadItem.on_pauseButton_clicked" id="DownloadItem.on_pauseButton_clicked" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.on_pauseButton_clicked" />
       <keyword name="DownloadItem.on_pauseButton_clicked" id="DownloadItem.on_pauseButton_clicked" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.on_pauseButton_clicked" />
-      <keyword name="DownloadItem.on_stopButton_clicked" id="DownloadItem.on_stopButton_clicked" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.on_stopButton_clicked" />
       <keyword name="DownloadItem.on_stopButton_clicked" id="DownloadItem.on_stopButton_clicked" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.on_stopButton_clicked" />
-      <keyword name="DownloadItem.on_tryAgainButton_clicked" id="DownloadItem.on_tryAgainButton_clicked" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.on_tryAgainButton_clicked" />
-      <keyword name="DownloadItem.openFile" id="DownloadItem.openFile" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.openFile" />
       <keyword name="DownloadItem.openFile" id="DownloadItem.openFile" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.openFile" />
-      <keyword name="DownloadItem.openFolder" id="DownloadItem.openFolder" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.openFolder" />
       <keyword name="DownloadItem.openFolder" id="DownloadItem.openFolder" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.openFolder" />
-      <keyword name="DownloadItem.remainingTime" id="DownloadItem.remainingTime" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.remainingTime" />
       <keyword name="DownloadItem.remainingTime" id="DownloadItem.remainingTime" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.remainingTime" />
-      <keyword name="DownloadItem.retry" id="DownloadItem.retry" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.retry" />
-      <keyword name="DownloadItem.setData" id="DownloadItem.setData" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.setData" />
       <keyword name="DownloadItem.setData" id="DownloadItem.setData" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.setData" />
-      <keyword name="DownloadItem.setIcon" id="DownloadItem.setIcon" ref="eric6.Helpviewer.Download.DownloadItem.html#DownloadItem.setIcon" />
       <keyword name="DownloadItem.setIcon" id="DownloadItem.setIcon" ref="eric6.WebBrowser.Download.DownloadItem.html#DownloadItem.setIcon" />
-      <keyword name="DownloadManager" id="DownloadManager" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager" />
       <keyword name="DownloadManager" id="DownloadManager" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager" />
-      <keyword name="DownloadManager (Constructor)" id="DownloadManager (Constructor)" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__init__" />
       <keyword name="DownloadManager (Constructor)" id="DownloadManager (Constructor)" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__init__" />
-      <keyword name="DownloadManager (Module)" id="DownloadManager (Module)" ref="eric6.Helpviewer.Download.DownloadManager.html" />
       <keyword name="DownloadManager (Module)" id="DownloadManager (Module)" ref="eric6.WebBrowser.Download.DownloadManager.html" />
-      <keyword name="DownloadManager.__addItem" id="DownloadManager.__addItem" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__addItem" />
       <keyword name="DownloadManager.__addItem" id="DownloadManager.__addItem" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__addItem" />
       <keyword name="DownloadManager.__closeDownloadTab" id="DownloadManager.__closeDownloadTab" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__closeDownloadTab" />
-      <keyword name="DownloadManager.__contextMenuCancel" id="DownloadManager.__contextMenuCancel" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__contextMenuCancel" />
       <keyword name="DownloadManager.__contextMenuCancel" id="DownloadManager.__contextMenuCancel" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__contextMenuCancel" />
-      <keyword name="DownloadManager.__contextMenuCopyLink" id="DownloadManager.__contextMenuCopyLink" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__contextMenuCopyLink" />
       <keyword name="DownloadManager.__contextMenuCopyLink" id="DownloadManager.__contextMenuCopyLink" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__contextMenuCopyLink" />
-      <keyword name="DownloadManager.__contextMenuGotoPage" id="DownloadManager.__contextMenuGotoPage" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__contextMenuGotoPage" />
       <keyword name="DownloadManager.__contextMenuGotoPage" id="DownloadManager.__contextMenuGotoPage" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__contextMenuGotoPage" />
-      <keyword name="DownloadManager.__contextMenuOpen" id="DownloadManager.__contextMenuOpen" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__contextMenuOpen" />
       <keyword name="DownloadManager.__contextMenuOpen" id="DownloadManager.__contextMenuOpen" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__contextMenuOpen" />
-      <keyword name="DownloadManager.__contextMenuOpenFolder" id="DownloadManager.__contextMenuOpenFolder" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__contextMenuOpenFolder" />
       <keyword name="DownloadManager.__contextMenuOpenFolder" id="DownloadManager.__contextMenuOpenFolder" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__contextMenuOpenFolder" />
-      <keyword name="DownloadManager.__contextMenuRemoveSelected" id="DownloadManager.__contextMenuRemoveSelected" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__contextMenuRemoveSelected" />
       <keyword name="DownloadManager.__contextMenuRemoveSelected" id="DownloadManager.__contextMenuRemoveSelected" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__contextMenuRemoveSelected" />
-      <keyword name="DownloadManager.__contextMenuRetry" id="DownloadManager.__contextMenuRetry" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__contextMenuRetry" />
-      <keyword name="DownloadManager.__contextMenuSelectAll" id="DownloadManager.__contextMenuSelectAll" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__contextMenuSelectAll" />
       <keyword name="DownloadManager.__contextMenuSelectAll" id="DownloadManager.__contextMenuSelectAll" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__contextMenuSelectAll" />
-      <keyword name="DownloadManager.__currentItem" id="DownloadManager.__currentItem" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__currentItem" />
       <keyword name="DownloadManager.__currentItem" id="DownloadManager.__currentItem" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__currentItem" />
-      <keyword name="DownloadManager.__customContextMenuRequested" id="DownloadManager.__customContextMenuRequested" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__customContextMenuRequested" />
       <keyword name="DownloadManager.__customContextMenuRequested" id="DownloadManager.__customContextMenuRequested" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__customContextMenuRequested" />
-      <keyword name="DownloadManager.__finished" id="DownloadManager.__finished" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__finished" />
       <keyword name="DownloadManager.__finished" id="DownloadManager.__finished" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__finished" />
-      <keyword name="DownloadManager.__load" id="DownloadManager.__load" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__load" />
       <keyword name="DownloadManager.__load" id="DownloadManager.__load" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__load" />
       <keyword name="DownloadManager.__startUpdateTimer" id="DownloadManager.__startUpdateTimer" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__startUpdateTimer" />
       <keyword name="DownloadManager.__stopUpdateTimer" id="DownloadManager.__stopUpdateTimer" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__stopUpdateTimer" />
       <keyword name="DownloadManager.__taskbarButton" id="DownloadManager.__taskbarButton" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__taskbarButton" />
       <keyword name="DownloadManager.__testWebBrowserView" id="DownloadManager.__testWebBrowserView" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__testWebBrowserView" />
-      <keyword name="DownloadManager.__updateActiveItemCount" id="DownloadManager.__updateActiveItemCount" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__updateActiveItemCount" />
-      <keyword name="DownloadManager.__updateItemCount" id="DownloadManager.__updateItemCount" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__updateItemCount" />
-      <keyword name="DownloadManager.__updateRow" id="DownloadManager.__updateRow" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.__updateRow" />
       <keyword name="DownloadManager.__updateRow" id="DownloadManager.__updateRow" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.__updateRow" />
-      <keyword name="DownloadManager.activeDownloads" id="DownloadManager.activeDownloads" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.activeDownloads" />
       <keyword name="DownloadManager.activeDownloadsCount" id="DownloadManager.activeDownloadsCount" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.activeDownloadsCount" />
-      <keyword name="DownloadManager.allowQuit" id="DownloadManager.allowQuit" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.allowQuit" />
       <keyword name="DownloadManager.allowQuit" id="DownloadManager.allowQuit" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.allowQuit" />
-      <keyword name="DownloadManager.changeOccurred" id="DownloadManager.changeOccurred" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.changeOccurred" />
       <keyword name="DownloadManager.changeOccurred" id="DownloadManager.changeOccurred" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.changeOccurred" />
-      <keyword name="DownloadManager.cleanup" id="DownloadManager.cleanup" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.cleanup" />
       <keyword name="DownloadManager.cleanup" id="DownloadManager.cleanup" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.cleanup" />
       <keyword name="DownloadManager.closeEvent" id="DownloadManager.closeEvent" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.closeEvent" />
-      <keyword name="DownloadManager.count" id="DownloadManager.count" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.count" />
-      <keyword name="DownloadManager.download" id="DownloadManager.download" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.download" />
       <keyword name="DownloadManager.download" id="DownloadManager.download" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.download" />
-      <keyword name="DownloadManager.downloadDirectory" id="DownloadManager.downloadDirectory" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.downloadDirectory" />
       <keyword name="DownloadManager.downloadDirectory" id="DownloadManager.downloadDirectory" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.downloadDirectory" />
-      <keyword name="DownloadManager.downloads" id="DownloadManager.downloads" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.downloads" />
       <keyword name="DownloadManager.downloads" id="DownloadManager.downloads" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.downloads" />
       <keyword name="DownloadManager.downloadsCount" id="DownloadManager.downloadsCount" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.downloadsCount" />
-      <keyword name="DownloadManager.handleUnsupportedContent" id="DownloadManager.handleUnsupportedContent" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.handleUnsupportedContent" />
-      <keyword name="DownloadManager.on_cleanupButton_clicked" id="DownloadManager.on_cleanupButton_clicked" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.on_cleanupButton_clicked" />
       <keyword name="DownloadManager.on_cleanupButton_clicked" id="DownloadManager.on_cleanupButton_clicked" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.on_cleanupButton_clicked" />
-      <keyword name="DownloadManager.removePolicy" id="DownloadManager.removePolicy" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.removePolicy" />
       <keyword name="DownloadManager.removePolicy" id="DownloadManager.removePolicy" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.removePolicy" />
-      <keyword name="DownloadManager.save" id="DownloadManager.save" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.save" />
       <keyword name="DownloadManager.save" id="DownloadManager.save" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.save" />
-      <keyword name="DownloadManager.setDownloadDirectory" id="DownloadManager.setDownloadDirectory" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.setDownloadDirectory" />
       <keyword name="DownloadManager.setDownloadDirectory" id="DownloadManager.setDownloadDirectory" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.setDownloadDirectory" />
-      <keyword name="DownloadManager.setRemovePolicy" id="DownloadManager.setRemovePolicy" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.setRemovePolicy" />
       <keyword name="DownloadManager.setRemovePolicy" id="DownloadManager.setRemovePolicy" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.setRemovePolicy" />
       <keyword name="DownloadManager.show" id="DownloadManager.show" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.show" />
-      <keyword name="DownloadManager.shutdown" id="DownloadManager.shutdown" ref="eric6.Helpviewer.Download.DownloadManager.html#DownloadManager.shutdown" />
       <keyword name="DownloadManager.shutdown" id="DownloadManager.shutdown" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.shutdown" />
       <keyword name="DownloadManager.timerEvent" id="DownloadManager.timerEvent" ref="eric6.WebBrowser.Download.DownloadManager.html#DownloadManager.timerEvent" />
       <keyword name="DownloadManagerButton" id="DownloadManagerButton" ref="eric6.WebBrowser.Download.DownloadManagerButton.html#DownloadManagerButton" />
@@ -4535,23 +3728,14 @@
       <keyword name="DownloadManagerButton (Module)" id="DownloadManagerButton (Module)" ref="eric6.WebBrowser.Download.DownloadManagerButton.html" />
       <keyword name="DownloadManagerButton.__buttonClicked" id="DownloadManagerButton.__buttonClicked" ref="eric6.WebBrowser.Download.DownloadManagerButton.html#DownloadManagerButton.__buttonClicked" />
       <keyword name="DownloadManagerButton.__updateState" id="DownloadManagerButton.__updateState" ref="eric6.WebBrowser.Download.DownloadManagerButton.html#DownloadManagerButton.__updateState" />
-      <keyword name="DownloadModel" id="DownloadModel" ref="eric6.Helpviewer.Download.DownloadModel.html#DownloadModel" />
       <keyword name="DownloadModel" id="DownloadModel" ref="eric6.WebBrowser.Download.DownloadModel.html#DownloadModel" />
-      <keyword name="DownloadModel (Constructor)" id="DownloadModel (Constructor)" ref="eric6.Helpviewer.Download.DownloadModel.html#DownloadModel.__init__" />
       <keyword name="DownloadModel (Constructor)" id="DownloadModel (Constructor)" ref="eric6.WebBrowser.Download.DownloadModel.html#DownloadModel.__init__" />
-      <keyword name="DownloadModel (Module)" id="DownloadModel (Module)" ref="eric6.Helpviewer.Download.DownloadModel.html" />
       <keyword name="DownloadModel (Module)" id="DownloadModel (Module)" ref="eric6.WebBrowser.Download.DownloadModel.html" />
-      <keyword name="DownloadModel.data" id="DownloadModel.data" ref="eric6.Helpviewer.Download.DownloadModel.html#DownloadModel.data" />
       <keyword name="DownloadModel.data" id="DownloadModel.data" ref="eric6.WebBrowser.Download.DownloadModel.html#DownloadModel.data" />
-      <keyword name="DownloadModel.flags" id="DownloadModel.flags" ref="eric6.Helpviewer.Download.DownloadModel.html#DownloadModel.flags" />
       <keyword name="DownloadModel.flags" id="DownloadModel.flags" ref="eric6.WebBrowser.Download.DownloadModel.html#DownloadModel.flags" />
-      <keyword name="DownloadModel.mimeData" id="DownloadModel.mimeData" ref="eric6.Helpviewer.Download.DownloadModel.html#DownloadModel.mimeData" />
       <keyword name="DownloadModel.mimeData" id="DownloadModel.mimeData" ref="eric6.WebBrowser.Download.DownloadModel.html#DownloadModel.mimeData" />
-      <keyword name="DownloadModel.removeRows" id="DownloadModel.removeRows" ref="eric6.Helpviewer.Download.DownloadModel.html#DownloadModel.removeRows" />
       <keyword name="DownloadModel.removeRows" id="DownloadModel.removeRows" ref="eric6.WebBrowser.Download.DownloadModel.html#DownloadModel.removeRows" />
-      <keyword name="DownloadModel.rowCount" id="DownloadModel.rowCount" ref="eric6.Helpviewer.Download.DownloadModel.html#DownloadModel.rowCount" />
       <keyword name="DownloadModel.rowCount" id="DownloadModel.rowCount" ref="eric6.WebBrowser.Download.DownloadModel.html#DownloadModel.rowCount" />
-      <keyword name="DownloadUtilities (Module)" id="DownloadUtilities (Module)" ref="eric6.Helpviewer.Download.DownloadUtilities.html" />
       <keyword name="DownloadUtilities (Module)" id="DownloadUtilities (Module)" ref="eric6.WebBrowser.Download.DownloadUtilities.html" />
       <keyword name="DuplicateParamError" id="DuplicateParamError" ref="eric6.E5Network.E5RFC6266.html#DuplicateParamError" />
       <keyword name="E5Action" id="E5Action" ref="eric6.E5Gui.E5Action.html#E5Action" />
@@ -4627,15 +3811,6 @@
       <keyword name="E5ComboPathPicker (Constructor)" id="E5ComboPathPicker (Constructor)" ref="eric6.E5Gui.E5PathPicker.html#E5ComboPathPicker.__init__" />
       <keyword name="E5ComboPathPicker.getPathItems" id="E5ComboPathPicker.getPathItems" ref="eric6.E5Gui.E5PathPicker.html#E5ComboPathPicker.getPathItems" />
       <keyword name="E5Completers (Module)" id="E5Completers (Module)" ref="eric6.E5Gui.E5Completers.html" />
-      <keyword name="E5ConfigParser" id="E5ConfigParser" ref="eric6.Globals.E5ConfigParser.html#E5ConfigParser" />
-      <keyword name="E5ConfigParser (Constructor)" id="E5ConfigParser (Constructor)" ref="eric6.Globals.E5ConfigParser.html#E5ConfigParser.__init__" />
-      <keyword name="E5ConfigParser (Module)" id="E5ConfigParser (Module)" ref="eric6.Globals.E5ConfigParser.html" />
-      <keyword name="E5ConfigParser.__contains__" id="E5ConfigParser.__contains__" ref="eric6.Globals.E5ConfigParser.html#E5ConfigParser.__contains__" />
-      <keyword name="E5ConfigParser.__delitem__" id="E5ConfigParser.__delitem__" ref="eric6.Globals.E5ConfigParser.html#E5ConfigParser.__delitem__" />
-      <keyword name="E5ConfigParser.__getitem__" id="E5ConfigParser.__getitem__" ref="eric6.Globals.E5ConfigParser.html#E5ConfigParser.__getitem__" />
-      <keyword name="E5ConfigParser.__iter__" id="E5ConfigParser.__iter__" ref="eric6.Globals.E5ConfigParser.html#E5ConfigParser.__iter__" />
-      <keyword name="E5ConfigParser.__len__" id="E5ConfigParser.__len__" ref="eric6.Globals.E5ConfigParser.html#E5ConfigParser.__len__" />
-      <keyword name="E5ConfigParser.__setitem__" id="E5ConfigParser.__setitem__" ref="eric6.Globals.E5ConfigParser.html#E5ConfigParser.__setitem__" />
       <keyword name="E5DirCompleter" id="E5DirCompleter" ref="eric6.E5Gui.E5Completers.html#E5DirCompleter" />
       <keyword name="E5DirCompleter (Constructor)" id="E5DirCompleter (Constructor)" ref="eric6.E5Gui.E5Completers.html#E5DirCompleter.__init__" />
       <keyword name="E5DirCompleter.rootPath" id="E5DirCompleter.rootPath" ref="eric6.E5Gui.E5Completers.html#E5DirCompleter.rootPath" />
@@ -4677,21 +3852,14 @@
       <keyword name="E5FtpProxyError" id="E5FtpProxyError" ref="eric6.E5Network.E5Ftp.html#E5FtpProxyError" />
       <keyword name="E5FtpProxyType" id="E5FtpProxyType" ref="eric6.E5Network.E5Ftp.html#E5FtpProxyType" />
       <keyword name="E5GenericDiffHighlighter" id="E5GenericDiffHighlighter" ref="eric6.E5Gui.E5GenericDiffHighlighter.html#E5GenericDiffHighlighter" />
-      <keyword name="E5GenericDiffHighlighter" id="E5GenericDiffHighlighter" ref="eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.html#E5GenericDiffHighlighter" />
       <keyword name="E5GenericDiffHighlighter (Constructor)" id="E5GenericDiffHighlighter (Constructor)" ref="eric6.E5Gui.E5GenericDiffHighlighter.html#E5GenericDiffHighlighter.__init__" />
-      <keyword name="E5GenericDiffHighlighter (Constructor)" id="E5GenericDiffHighlighter (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.html#E5GenericDiffHighlighter.__init__" />
       <keyword name="E5GenericDiffHighlighter (Module)" id="E5GenericDiffHighlighter (Module)" ref="eric6.E5Gui.E5GenericDiffHighlighter.html" />
       <keyword name="E5GenericDiffHighlighter.__initColours" id="E5GenericDiffHighlighter.__initColours" ref="eric6.E5Gui.E5GenericDiffHighlighter.html#E5GenericDiffHighlighter.__initColours" />
       <keyword name="E5GenericDiffHighlighter.createRules" id="E5GenericDiffHighlighter.createRules" ref="eric6.E5Gui.E5GenericDiffHighlighter.html#E5GenericDiffHighlighter.createRules" />
-      <keyword name="E5GenericDiffHighlighter.createRules" id="E5GenericDiffHighlighter.createRules" ref="eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.html#E5GenericDiffHighlighter.createRules" />
       <keyword name="E5GenericDiffHighlighter.formats" id="E5GenericDiffHighlighter.formats" ref="eric6.E5Gui.E5GenericDiffHighlighter.html#E5GenericDiffHighlighter.formats" />
-      <keyword name="E5GenericDiffHighlighter.formats" id="E5GenericDiffHighlighter.formats" ref="eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.html#E5GenericDiffHighlighter.formats" />
       <keyword name="E5GenericDiffHighlighter.generateRules" id="E5GenericDiffHighlighter.generateRules" ref="eric6.E5Gui.E5GenericDiffHighlighter.html#E5GenericDiffHighlighter.generateRules" />
-      <keyword name="E5GenericDiffHighlighter.generateRules" id="E5GenericDiffHighlighter.generateRules" ref="eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.html#E5GenericDiffHighlighter.generateRules" />
       <keyword name="E5GenericDiffHighlighter.highlightBlock" id="E5GenericDiffHighlighter.highlightBlock" ref="eric6.E5Gui.E5GenericDiffHighlighter.html#E5GenericDiffHighlighter.highlightBlock" />
-      <keyword name="E5GenericDiffHighlighter.highlightBlock" id="E5GenericDiffHighlighter.highlightBlock" ref="eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.html#E5GenericDiffHighlighter.highlightBlock" />
       <keyword name="E5GenericDiffHighlighter.makeFormat" id="E5GenericDiffHighlighter.makeFormat" ref="eric6.E5Gui.E5GenericDiffHighlighter.html#E5GenericDiffHighlighter.makeFormat" />
-      <keyword name="E5GenericDiffHighlighter.makeFormat" id="E5GenericDiffHighlighter.makeFormat" ref="eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.html#E5GenericDiffHighlighter.makeFormat" />
       <keyword name="E5GenericDiffHighlighter.regenerateRules" id="E5GenericDiffHighlighter.regenerateRules" ref="eric6.E5Gui.E5GenericDiffHighlighter.html#E5GenericDiffHighlighter.regenerateRules" />
       <keyword name="E5GoogleMail" id="E5GoogleMail" ref="eric6.E5Network.E5GoogleMail.html#E5GoogleMail" />
       <keyword name="E5GoogleMail (Constructor)" id="E5GoogleMail (Constructor)" ref="eric6.E5Network.E5GoogleMail.html#E5GoogleMail.__init__" />
@@ -4699,8 +3867,7 @@
       <keyword name="E5GoogleMail.__credentialsFromSession" id="E5GoogleMail.__credentialsFromSession" ref="eric6.E5Network.E5GoogleMail.html#E5GoogleMail.__credentialsFromSession" />
       <keyword name="E5GoogleMail.__doSendMessages" id="E5GoogleMail.__doSendMessages" ref="eric6.E5Network.E5GoogleMail.html#E5GoogleMail.__doSendMessages" />
       <keyword name="E5GoogleMail.__loadToken" id="E5GoogleMail.__loadToken" ref="eric6.E5Network.E5GoogleMail.html#E5GoogleMail.__loadToken" />
-      <keyword name="E5GoogleMail.__prepareMessage_v2" id="E5GoogleMail.__prepareMessage_v2" ref="eric6.E5Network.E5GoogleMail.html#E5GoogleMail.__prepareMessage_v2" />
-      <keyword name="E5GoogleMail.__prepareMessage_v3" id="E5GoogleMail.__prepareMessage_v3" ref="eric6.E5Network.E5GoogleMail.html#E5GoogleMail.__prepareMessage_v3" />
+      <keyword name="E5GoogleMail.__prepareMessage" id="E5GoogleMail.__prepareMessage" ref="eric6.E5Network.E5GoogleMail.html#E5GoogleMail.__prepareMessage" />
       <keyword name="E5GoogleMail.__processAuthorization" id="E5GoogleMail.__processAuthorization" ref="eric6.E5Network.E5GoogleMail.html#E5GoogleMail.__processAuthorization" />
       <keyword name="E5GoogleMail.__saveToken" id="E5GoogleMail.__saveToken" ref="eric6.E5Network.E5GoogleMail.html#E5GoogleMail.__saveToken" />
       <keyword name="E5GoogleMail.__startSession" id="E5GoogleMail.__startSession" ref="eric6.E5Network.E5GoogleMail.html#E5GoogleMail.__startSession" />
@@ -4770,7 +3937,6 @@
       <keyword name="E5LineEdit.event" id="E5LineEdit.event" ref="eric6.E5Gui.E5LineEdit.html#E5LineEdit.event" />
       <keyword name="E5LineEdit.inactiveText" id="E5LineEdit.inactiveText" ref="eric6.E5Gui.E5LineEdit.html#E5LineEdit.inactiveText" />
       <keyword name="E5LineEdit.leftMargin" id="E5LineEdit.leftMargin" ref="eric6.E5Gui.E5LineEdit.html#E5LineEdit.leftMargin" />
-      <keyword name="E5LineEdit.paintEvent" id="E5LineEdit.paintEvent" ref="eric6.E5Gui.E5LineEdit.html#E5LineEdit.paintEvent" />
       <keyword name="E5LineEdit.removeWidget" id="E5LineEdit.removeWidget" ref="eric6.E5Gui.E5LineEdit.html#E5LineEdit.removeWidget" />
       <keyword name="E5LineEdit.setInactiveText" id="E5LineEdit.setInactiveText" ref="eric6.E5Gui.E5LineEdit.html#E5LineEdit.setInactiveText" />
       <keyword name="E5LineEdit.setLeftMargin" id="E5LineEdit.setLeftMargin" ref="eric6.E5Gui.E5LineEdit.html#E5LineEdit.setLeftMargin" />
@@ -5222,7 +4388,6 @@
       <keyword name="E5TextEditSearchWidget.__findNextPrevCallback" id="E5TextEditSearchWidget.__findNextPrevCallback" ref="eric6.E5Gui.E5TextEditSearchWidget.html#E5TextEditSearchWidget.__findNextPrevCallback" />
       <keyword name="E5TextEditSearchWidget.__findPrevNextQTextEdit" id="E5TextEditSearchWidget.__findPrevNextQTextEdit" ref="eric6.E5Gui.E5TextEditSearchWidget.html#E5TextEditSearchWidget.__findPrevNextQTextEdit" />
       <keyword name="E5TextEditSearchWidget.__findPrevNextQWebEngineView" id="E5TextEditSearchWidget.__findPrevNextQWebEngineView" ref="eric6.E5Gui.E5TextEditSearchWidget.html#E5TextEditSearchWidget.__findPrevNextQWebEngineView" />
-      <keyword name="E5TextEditSearchWidget.__findPrevNextQWebView" id="E5TextEditSearchWidget.__findPrevNextQWebView" ref="eric6.E5Gui.E5TextEditSearchWidget.html#E5TextEditSearchWidget.__findPrevNextQWebView" />
       <keyword name="E5TextEditSearchWidget.__setFindtextComboBackground" id="E5TextEditSearchWidget.__setFindtextComboBackground" ref="eric6.E5Gui.E5TextEditSearchWidget.html#E5TextEditSearchWidget.__setFindtextComboBackground" />
       <keyword name="E5TextEditSearchWidget.__setSearchButtons" id="E5TextEditSearchWidget.__setSearchButtons" ref="eric6.E5Gui.E5TextEditSearchWidget.html#E5TextEditSearchWidget.__setSearchButtons" />
       <keyword name="E5TextEditSearchWidget.__setupUi" id="E5TextEditSearchWidget.__setupUi" ref="eric6.E5Gui.E5TextEditSearchWidget.html#E5TextEditSearchWidget.__setupUi" />
@@ -6058,20 +5223,10 @@
       <keyword name="EmailPage.on_useSslButton_toggled" id="EmailPage.on_useSslButton_toggled" ref="eric6.Preferences.ConfigurationPages.EmailPage.html#EmailPage.on_useSslButton_toggled" />
       <keyword name="EmailPage.on_useTlsButton_toggled" id="EmailPage.on_useTlsButton_toggled" ref="eric6.Preferences.ConfigurationPages.EmailPage.html#EmailPage.on_useTlsButton_toggled" />
       <keyword name="EmailPage.save" id="EmailPage.save" ref="eric6.Preferences.ConfigurationPages.EmailPage.html#EmailPage.save" />
-      <keyword name="EmptyNetworkReply" id="EmptyNetworkReply" ref="eric6.Helpviewer.Network.EmptyNetworkReply.html#EmptyNetworkReply" />
-      <keyword name="EmptyNetworkReply (Constructor)" id="EmptyNetworkReply (Constructor)" ref="eric6.Helpviewer.Network.EmptyNetworkReply.html#EmptyNetworkReply.__init__" />
-      <keyword name="EmptyNetworkReply (Module)" id="EmptyNetworkReply (Module)" ref="eric6.Helpviewer.Network.EmptyNetworkReply.html" />
-      <keyword name="EmptyNetworkReply.abort" id="EmptyNetworkReply.abort" ref="eric6.Helpviewer.Network.EmptyNetworkReply.html#EmptyNetworkReply.abort" />
-      <keyword name="EmptyNetworkReply.readData" id="EmptyNetworkReply.readData" ref="eric6.Helpviewer.Network.EmptyNetworkReply.html#EmptyNetworkReply.readData" />
       <keyword name="Enum" id="Enum" ref="eric6.Utilities.ClassBrowsers.ClbrBaseClasses.html#Enum" />
       <keyword name="Enum" id="Enum" ref="eric6.Utilities.ClassBrowsers.protoclbr.html#Enum" />
       <keyword name="Enum (Constructor)" id="Enum (Constructor)" ref="eric6.Utilities.ClassBrowsers.ClbrBaseClasses.html#Enum.__init__" />
       <keyword name="Enum (Constructor)" id="Enum (Constructor)" ref="eric6.Utilities.ClassBrowsers.protoclbr.html#Enum.__init__" />
-      <keyword name="EricAccessHandler" id="EricAccessHandler" ref="eric6.Helpviewer.Network.EricAccessHandler.html#EricAccessHandler" />
-      <keyword name="EricAccessHandler (Module)" id="EricAccessHandler (Module)" ref="eric6.Helpviewer.Network.EricAccessHandler.html" />
-      <keyword name="EricAccessHandler.__createHomePage" id="EricAccessHandler.__createHomePage" ref="eric6.Helpviewer.Network.EricAccessHandler.html#EricAccessHandler.__createHomePage" />
-      <keyword name="EricAccessHandler.__createSpeedDialPage" id="EricAccessHandler.__createSpeedDialPage" ref="eric6.Helpviewer.Network.EricAccessHandler.html#EricAccessHandler.__createSpeedDialPage" />
-      <keyword name="EricAccessHandler.createRequest" id="EricAccessHandler.createRequest" ref="eric6.Helpviewer.Network.EricAccessHandler.html#EricAccessHandler.createRequest" />
       <keyword name="EricPluginWizard (Package)" id="EricPluginWizard (Package)" ref="index-eric6.Plugins.WizardPlugins.EricPluginWizard.html" />
       <keyword name="EricSchemeHandler" id="EricSchemeHandler" ref="eric6.WebBrowser.Network.EricSchemeHandler.html#EricSchemeHandler" />
       <keyword name="EricSchemeHandler (Constructor)" id="EricSchemeHandler (Constructor)" ref="eric6.WebBrowser.Network.EricSchemeHandler.html#EricSchemeHandler.__init__" />
@@ -6256,149 +5411,78 @@
       <keyword name="ExternalJsObject.speedDial" id="ExternalJsObject.speedDial" ref="eric6.WebBrowser.JavaScript.ExternalJsObject.html#ExternalJsObject.speedDial" />
       <keyword name="ExternalJsObject.startPage" id="ExternalJsObject.startPage" ref="eric6.WebBrowser.JavaScript.ExternalJsObject.html#ExternalJsObject.startPage" />
       <keyword name="ExternalJsObject.unregisterExtraObject" id="ExternalJsObject.unregisterExtraObject" ref="eric6.WebBrowser.JavaScript.ExternalJsObject.html#ExternalJsObject.unregisterExtraObject" />
-      <keyword name="FavIconLabel" id="FavIconLabel" ref="eric6.Helpviewer.UrlBar.FavIconLabel.html#FavIconLabel" />
       <keyword name="FavIconLabel" id="FavIconLabel" ref="eric6.WebBrowser.UrlBar.FavIconLabel.html#FavIconLabel" />
-      <keyword name="FavIconLabel (Constructor)" id="FavIconLabel (Constructor)" ref="eric6.Helpviewer.UrlBar.FavIconLabel.html#FavIconLabel.__init__" />
       <keyword name="FavIconLabel (Constructor)" id="FavIconLabel (Constructor)" ref="eric6.WebBrowser.UrlBar.FavIconLabel.html#FavIconLabel.__init__" />
-      <keyword name="FavIconLabel (Module)" id="FavIconLabel (Module)" ref="eric6.Helpviewer.UrlBar.FavIconLabel.html" />
       <keyword name="FavIconLabel (Module)" id="FavIconLabel (Module)" ref="eric6.WebBrowser.UrlBar.FavIconLabel.html" />
-      <keyword name="FavIconLabel.__browserIconChanged" id="FavIconLabel.__browserIconChanged" ref="eric6.Helpviewer.UrlBar.FavIconLabel.html#FavIconLabel.__browserIconChanged" />
       <keyword name="FavIconLabel.__browserIconChanged" id="FavIconLabel.__browserIconChanged" ref="eric6.WebBrowser.UrlBar.FavIconLabel.html#FavIconLabel.__browserIconChanged" />
-      <keyword name="FavIconLabel.__clearIcon" id="FavIconLabel.__clearIcon" ref="eric6.Helpviewer.UrlBar.FavIconLabel.html#FavIconLabel.__clearIcon" />
       <keyword name="FavIconLabel.__clearIcon" id="FavIconLabel.__clearIcon" ref="eric6.WebBrowser.UrlBar.FavIconLabel.html#FavIconLabel.__clearIcon" />
       <keyword name="FavIconLabel.__showPopup" id="FavIconLabel.__showPopup" ref="eric6.WebBrowser.UrlBar.FavIconLabel.html#FavIconLabel.__showPopup" />
-      <keyword name="FavIconLabel.mouseMoveEvent" id="FavIconLabel.mouseMoveEvent" ref="eric6.Helpviewer.UrlBar.FavIconLabel.html#FavIconLabel.mouseMoveEvent" />
       <keyword name="FavIconLabel.mouseMoveEvent" id="FavIconLabel.mouseMoveEvent" ref="eric6.WebBrowser.UrlBar.FavIconLabel.html#FavIconLabel.mouseMoveEvent" />
-      <keyword name="FavIconLabel.mousePressEvent" id="FavIconLabel.mousePressEvent" ref="eric6.Helpviewer.UrlBar.FavIconLabel.html#FavIconLabel.mousePressEvent" />
       <keyword name="FavIconLabel.mousePressEvent" id="FavIconLabel.mousePressEvent" ref="eric6.WebBrowser.UrlBar.FavIconLabel.html#FavIconLabel.mousePressEvent" />
       <keyword name="FavIconLabel.mouseReleaseEvent" id="FavIconLabel.mouseReleaseEvent" ref="eric6.WebBrowser.UrlBar.FavIconLabel.html#FavIconLabel.mouseReleaseEvent" />
-      <keyword name="FavIconLabel.setBrowser" id="FavIconLabel.setBrowser" ref="eric6.Helpviewer.UrlBar.FavIconLabel.html#FavIconLabel.setBrowser" />
       <keyword name="FavIconLabel.setBrowser" id="FavIconLabel.setBrowser" ref="eric6.WebBrowser.UrlBar.FavIconLabel.html#FavIconLabel.setBrowser" />
-      <keyword name="FeaturePermissionBar" id="FeaturePermissionBar" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.html#FeaturePermissionBar" />
       <keyword name="FeaturePermissionBar" id="FeaturePermissionBar" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionBar.html#FeaturePermissionBar" />
-      <keyword name="FeaturePermissionBar (Constructor)" id="FeaturePermissionBar (Constructor)" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.html#FeaturePermissionBar.__init__" />
       <keyword name="FeaturePermissionBar (Constructor)" id="FeaturePermissionBar (Constructor)" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionBar.html#FeaturePermissionBar.__init__" />
-      <keyword name="FeaturePermissionBar (Module)" id="FeaturePermissionBar (Module)" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.html" />
       <keyword name="FeaturePermissionBar (Module)" id="FeaturePermissionBar (Module)" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionBar.html" />
-      <keyword name="FeaturePermissionBar.__permissionDenied" id="FeaturePermissionBar.__permissionDenied" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.html#FeaturePermissionBar.__permissionDenied" />
       <keyword name="FeaturePermissionBar.__permissionDenied" id="FeaturePermissionBar.__permissionDenied" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionBar.html#FeaturePermissionBar.__permissionDenied" />
-      <keyword name="FeaturePermissionBar.__permissionGranted" id="FeaturePermissionBar.__permissionGranted" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.html#FeaturePermissionBar.__permissionGranted" />
       <keyword name="FeaturePermissionBar.__permissionGranted" id="FeaturePermissionBar.__permissionGranted" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionBar.html#FeaturePermissionBar.__permissionGranted" />
-      <keyword name="FeaturePermissionBar.__permissionUnknown" id="FeaturePermissionBar.__permissionUnknown" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.html#FeaturePermissionBar.__permissionUnknown" />
       <keyword name="FeaturePermissionBar.__permissionUnknown" id="FeaturePermissionBar.__permissionUnknown" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionBar.html#FeaturePermissionBar.__permissionUnknown" />
-      <keyword name="FeaturePermissionBar.hide" id="FeaturePermissionBar.hide" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.html#FeaturePermissionBar.hide" />
       <keyword name="FeaturePermissionBar.hide" id="FeaturePermissionBar.hide" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionBar.html#FeaturePermissionBar.hide" />
-      <keyword name="FeaturePermissionManager" id="FeaturePermissionManager" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.html#FeaturePermissionManager" />
       <keyword name="FeaturePermissionManager" id="FeaturePermissionManager" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionManager.html#FeaturePermissionManager" />
-      <keyword name="FeaturePermissionManager (Constructor)" id="FeaturePermissionManager (Constructor)" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.html#FeaturePermissionManager.__init__" />
       <keyword name="FeaturePermissionManager (Constructor)" id="FeaturePermissionManager (Constructor)" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionManager.html#FeaturePermissionManager.__init__" />
-      <keyword name="FeaturePermissionManager (Module)" id="FeaturePermissionManager (Module)" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.html" />
       <keyword name="FeaturePermissionManager (Module)" id="FeaturePermissionManager (Module)" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionManager.html" />
-      <keyword name="FeaturePermissionManager.__loadSettings" id="FeaturePermissionManager.__loadSettings" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.html#FeaturePermissionManager.__loadSettings" />
       <keyword name="FeaturePermissionManager.__loadSettings" id="FeaturePermissionManager.__loadSettings" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionManager.html#FeaturePermissionManager.__loadSettings" />
-      <keyword name="FeaturePermissionManager.__saveSettings" id="FeaturePermissionManager.__saveSettings" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.html#FeaturePermissionManager.__saveSettings" />
       <keyword name="FeaturePermissionManager.__saveSettings" id="FeaturePermissionManager.__saveSettings" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionManager.html#FeaturePermissionManager.__saveSettings" />
-      <keyword name="FeaturePermissionManager.rememberFeaturePermission" id="FeaturePermissionManager.rememberFeaturePermission" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.html#FeaturePermissionManager.rememberFeaturePermission" />
       <keyword name="FeaturePermissionManager.rememberFeaturePermission" id="FeaturePermissionManager.rememberFeaturePermission" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionManager.html#FeaturePermissionManager.rememberFeaturePermission" />
-      <keyword name="FeaturePermissionManager.requestFeaturePermission" id="FeaturePermissionManager.requestFeaturePermission" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.html#FeaturePermissionManager.requestFeaturePermission" />
       <keyword name="FeaturePermissionManager.requestFeaturePermission" id="FeaturePermissionManager.requestFeaturePermission" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionManager.html#FeaturePermissionManager.requestFeaturePermission" />
-      <keyword name="FeaturePermissionManager.showFeaturePermissionsDialog" id="FeaturePermissionManager.showFeaturePermissionsDialog" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.html#FeaturePermissionManager.showFeaturePermissionsDialog" />
       <keyword name="FeaturePermissionManager.showFeaturePermissionsDialog" id="FeaturePermissionManager.showFeaturePermissionsDialog" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionManager.html#FeaturePermissionManager.showFeaturePermissionsDialog" />
-      <keyword name="FeaturePermissions (Package)" id="FeaturePermissions (Package)" ref="index-eric6.Helpviewer.FeaturePermissions.html" />
       <keyword name="FeaturePermissions (Package)" id="FeaturePermissions (Package)" ref="index-eric6.WebBrowser.FeaturePermissions.html" />
-      <keyword name="FeaturePermissionsDialog" id="FeaturePermissionsDialog" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog" />
       <keyword name="FeaturePermissionsDialog" id="FeaturePermissionsDialog" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog" />
-      <keyword name="FeaturePermissionsDialog (Constructor)" id="FeaturePermissionsDialog (Constructor)" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.__init__" />
       <keyword name="FeaturePermissionsDialog (Constructor)" id="FeaturePermissionsDialog (Constructor)" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.__init__" />
-      <keyword name="FeaturePermissionsDialog (Module)" id="FeaturePermissionsDialog (Module)" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html" />
       <keyword name="FeaturePermissionsDialog (Module)" id="FeaturePermissionsDialog (Module)" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionsDialog.html" />
       <keyword name="FeaturePermissionsDialog.__currentTabChanged" id="FeaturePermissionsDialog.__currentTabChanged" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.__currentTabChanged" />
       <keyword name="FeaturePermissionsDialog.__itemSelectionChanged" id="FeaturePermissionsDialog.__itemSelectionChanged" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.__itemSelectionChanged" />
       <keyword name="FeaturePermissionsDialog.__updateButtons" id="FeaturePermissionsDialog.__updateButtons" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.__updateButtons" />
-      <keyword name="FeaturePermissionsDialog.__updateGeoButtons" id="FeaturePermissionsDialog.__updateGeoButtons" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.__updateGeoButtons" />
-      <keyword name="FeaturePermissionsDialog.__updateNotifButtons" id="FeaturePermissionsDialog.__updateNotifButtons" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.__updateNotifButtons" />
-      <keyword name="FeaturePermissionsDialog.getData" id="FeaturePermissionsDialog.getData" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.getData" />
       <keyword name="FeaturePermissionsDialog.getData" id="FeaturePermissionsDialog.getData" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.getData" />
-      <keyword name="FeaturePermissionsDialog.on_geoList_itemSelectionChanged" id="FeaturePermissionsDialog.on_geoList_itemSelectionChanged" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.on_geoList_itemSelectionChanged" />
-      <keyword name="FeaturePermissionsDialog.on_geoRemoveAllButton_clicked" id="FeaturePermissionsDialog.on_geoRemoveAllButton_clicked" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.on_geoRemoveAllButton_clicked" />
-      <keyword name="FeaturePermissionsDialog.on_geoRemoveButton_clicked" id="FeaturePermissionsDialog.on_geoRemoveButton_clicked" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.on_geoRemoveButton_clicked" />
-      <keyword name="FeaturePermissionsDialog.on_notifList_itemSelectionChanged" id="FeaturePermissionsDialog.on_notifList_itemSelectionChanged" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.on_notifList_itemSelectionChanged" />
-      <keyword name="FeaturePermissionsDialog.on_notifRemoveAllButton_clicked" id="FeaturePermissionsDialog.on_notifRemoveAllButton_clicked" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.on_notifRemoveAllButton_clicked" />
-      <keyword name="FeaturePermissionsDialog.on_notifRemoveButton_clicked" id="FeaturePermissionsDialog.on_notifRemoveButton_clicked" ref="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.on_notifRemoveButton_clicked" />
       <keyword name="FeaturePermissionsDialog.on_removeAllButton_clicked" id="FeaturePermissionsDialog.on_removeAllButton_clicked" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.on_removeAllButton_clicked" />
       <keyword name="FeaturePermissionsDialog.on_removeButton_clicked" id="FeaturePermissionsDialog.on_removeButton_clicked" ref="eric6.WebBrowser.FeaturePermissions.FeaturePermissionsDialog.html#FeaturePermissionsDialog.on_removeButton_clicked" />
-      <keyword name="FeedEditDialog" id="FeedEditDialog" ref="eric6.Helpviewer.Feeds.FeedEditDialog.html#FeedEditDialog" />
       <keyword name="FeedEditDialog" id="FeedEditDialog" ref="eric6.WebBrowser.Feeds.FeedEditDialog.html#FeedEditDialog" />
-      <keyword name="FeedEditDialog (Constructor)" id="FeedEditDialog (Constructor)" ref="eric6.Helpviewer.Feeds.FeedEditDialog.html#FeedEditDialog.__init__" />
       <keyword name="FeedEditDialog (Constructor)" id="FeedEditDialog (Constructor)" ref="eric6.WebBrowser.Feeds.FeedEditDialog.html#FeedEditDialog.__init__" />
-      <keyword name="FeedEditDialog (Module)" id="FeedEditDialog (Module)" ref="eric6.Helpviewer.Feeds.FeedEditDialog.html" />
       <keyword name="FeedEditDialog (Module)" id="FeedEditDialog (Module)" ref="eric6.WebBrowser.Feeds.FeedEditDialog.html" />
-      <keyword name="FeedEditDialog.__setOkButton" id="FeedEditDialog.__setOkButton" ref="eric6.Helpviewer.Feeds.FeedEditDialog.html#FeedEditDialog.__setOkButton" />
       <keyword name="FeedEditDialog.__setOkButton" id="FeedEditDialog.__setOkButton" ref="eric6.WebBrowser.Feeds.FeedEditDialog.html#FeedEditDialog.__setOkButton" />
-      <keyword name="FeedEditDialog.getData" id="FeedEditDialog.getData" ref="eric6.Helpviewer.Feeds.FeedEditDialog.html#FeedEditDialog.getData" />
       <keyword name="FeedEditDialog.getData" id="FeedEditDialog.getData" ref="eric6.WebBrowser.Feeds.FeedEditDialog.html#FeedEditDialog.getData" />
-      <keyword name="FeedEditDialog.on_titleEdit_textChanged" id="FeedEditDialog.on_titleEdit_textChanged" ref="eric6.Helpviewer.Feeds.FeedEditDialog.html#FeedEditDialog.on_titleEdit_textChanged" />
       <keyword name="FeedEditDialog.on_titleEdit_textChanged" id="FeedEditDialog.on_titleEdit_textChanged" ref="eric6.WebBrowser.Feeds.FeedEditDialog.html#FeedEditDialog.on_titleEdit_textChanged" />
-      <keyword name="FeedEditDialog.on_urlEdit_textChanged" id="FeedEditDialog.on_urlEdit_textChanged" ref="eric6.Helpviewer.Feeds.FeedEditDialog.html#FeedEditDialog.on_urlEdit_textChanged" />
       <keyword name="FeedEditDialog.on_urlEdit_textChanged" id="FeedEditDialog.on_urlEdit_textChanged" ref="eric6.WebBrowser.Feeds.FeedEditDialog.html#FeedEditDialog.on_urlEdit_textChanged" />
-      <keyword name="Feeds (Package)" id="Feeds (Package)" ref="index-eric6.Helpviewer.Feeds.html" />
       <keyword name="Feeds (Package)" id="Feeds (Package)" ref="index-eric6.WebBrowser.Feeds.html" />
-      <keyword name="FeedsDialog" id="FeedsDialog" ref="eric6.Helpviewer.Feeds.FeedsDialog.html#FeedsDialog" />
       <keyword name="FeedsDialog" id="FeedsDialog" ref="eric6.WebBrowser.Feeds.FeedsDialog.html#FeedsDialog" />
-      <keyword name="FeedsDialog (Constructor)" id="FeedsDialog (Constructor)" ref="eric6.Helpviewer.Feeds.FeedsDialog.html#FeedsDialog.__init__" />
       <keyword name="FeedsDialog (Constructor)" id="FeedsDialog (Constructor)" ref="eric6.WebBrowser.Feeds.FeedsDialog.html#FeedsDialog.__init__" />
-      <keyword name="FeedsDialog (Module)" id="FeedsDialog (Module)" ref="eric6.Helpviewer.Feeds.FeedsDialog.html" />
       <keyword name="FeedsDialog (Module)" id="FeedsDialog (Module)" ref="eric6.WebBrowser.Feeds.FeedsDialog.html" />
-      <keyword name="FeedsDialog.__addFeed" id="FeedsDialog.__addFeed" ref="eric6.Helpviewer.Feeds.FeedsDialog.html#FeedsDialog.__addFeed" />
       <keyword name="FeedsDialog.__addFeed" id="FeedsDialog.__addFeed" ref="eric6.WebBrowser.Feeds.FeedsDialog.html#FeedsDialog.__addFeed" />
-      <keyword name="FeedsManager" id="FeedsManager" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager" />
       <keyword name="FeedsManager" id="FeedsManager" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager" />
-      <keyword name="FeedsManager (Constructor)" id="FeedsManager (Constructor)" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.__init__" />
       <keyword name="FeedsManager (Constructor)" id="FeedsManager (Constructor)" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__init__" />
-      <keyword name="FeedsManager (Module)" id="FeedsManager (Module)" ref="eric6.Helpviewer.Feeds.FeedsManager.html" />
       <keyword name="FeedsManager (Module)" id="FeedsManager (Module)" ref="eric6.WebBrowser.Feeds.FeedsManager.html" />
-      <keyword name="FeedsManager.__addFeedItem" id="FeedsManager.__addFeedItem" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.__addFeedItem" />
       <keyword name="FeedsManager.__addFeedItem" id="FeedsManager.__addFeedItem" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__addFeedItem" />
-      <keyword name="FeedsManager.__copyUrlToClipboard" id="FeedsManager.__copyUrlToClipboard" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.__copyUrlToClipboard" />
       <keyword name="FeedsManager.__copyUrlToClipboard" id="FeedsManager.__copyUrlToClipboard" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__copyUrlToClipboard" />
-      <keyword name="FeedsManager.__customContextMenuRequested" id="FeedsManager.__customContextMenuRequested" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.__customContextMenuRequested" />
       <keyword name="FeedsManager.__customContextMenuRequested" id="FeedsManager.__customContextMenuRequested" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__customContextMenuRequested" />
-      <keyword name="FeedsManager.__enableButtons" id="FeedsManager.__enableButtons" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.__enableButtons" />
       <keyword name="FeedsManager.__enableButtons" id="FeedsManager.__enableButtons" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__enableButtons" />
-      <keyword name="FeedsManager.__feedLoaded" id="FeedsManager.__feedLoaded" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.__feedLoaded" />
       <keyword name="FeedsManager.__feedLoaded" id="FeedsManager.__feedLoaded" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__feedLoaded" />
-      <keyword name="FeedsManager.__itemActivated" id="FeedsManager.__itemActivated" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.__itemActivated" />
       <keyword name="FeedsManager.__itemActivated" id="FeedsManager.__itemActivated" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__itemActivated" />
-      <keyword name="FeedsManager.__load" id="FeedsManager.__load" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.__load" />
       <keyword name="FeedsManager.__load" id="FeedsManager.__load" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__load" />
-      <keyword name="FeedsManager.__openMessage" id="FeedsManager.__openMessage" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.__openMessage" />
       <keyword name="FeedsManager.__openMessage" id="FeedsManager.__openMessage" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__openMessage" />
-      <keyword name="FeedsManager.__openMessageInCurrentTab" id="FeedsManager.__openMessageInCurrentTab" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.__openMessageInCurrentTab" />
       <keyword name="FeedsManager.__openMessageInCurrentTab" id="FeedsManager.__openMessageInCurrentTab" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__openMessageInCurrentTab" />
       <keyword name="FeedsManager.__openMessageInNewBackgroundTab" id="FeedsManager.__openMessageInNewBackgroundTab" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__openMessageInNewBackgroundTab" />
-      <keyword name="FeedsManager.__openMessageInNewTab" id="FeedsManager.__openMessageInNewTab" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.__openMessageInNewTab" />
       <keyword name="FeedsManager.__openMessageInNewTab" id="FeedsManager.__openMessageInNewTab" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__openMessageInNewTab" />
       <keyword name="FeedsManager.__openMessageInNewWindow" id="FeedsManager.__openMessageInNewWindow" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__openMessageInNewWindow" />
       <keyword name="FeedsManager.__openMessageInPrivateWindow" id="FeedsManager.__openMessageInPrivateWindow" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__openMessageInPrivateWindow" />
-      <keyword name="FeedsManager.__reloadFeed" id="FeedsManager.__reloadFeed" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.__reloadFeed" />
       <keyword name="FeedsManager.__reloadFeed" id="FeedsManager.__reloadFeed" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__reloadFeed" />
-      <keyword name="FeedsManager.__save" id="FeedsManager.__save" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.__save" />
       <keyword name="FeedsManager.__save" id="FeedsManager.__save" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__save" />
-      <keyword name="FeedsManager.__showError" id="FeedsManager.__showError" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.__showError" />
       <keyword name="FeedsManager.__showError" id="FeedsManager.__showError" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.__showError" />
-      <keyword name="FeedsManager.addFeed" id="FeedsManager.addFeed" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.addFeed" />
       <keyword name="FeedsManager.addFeed" id="FeedsManager.addFeed" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.addFeed" />
-      <keyword name="FeedsManager.on_deleteButton_clicked" id="FeedsManager.on_deleteButton_clicked" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.on_deleteButton_clicked" />
       <keyword name="FeedsManager.on_deleteButton_clicked" id="FeedsManager.on_deleteButton_clicked" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.on_deleteButton_clicked" />
-      <keyword name="FeedsManager.on_editButton_clicked" id="FeedsManager.on_editButton_clicked" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.on_editButton_clicked" />
       <keyword name="FeedsManager.on_editButton_clicked" id="FeedsManager.on_editButton_clicked" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.on_editButton_clicked" />
-      <keyword name="FeedsManager.on_feedsTree_itemSelectionChanged" id="FeedsManager.on_feedsTree_itemSelectionChanged" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.on_feedsTree_itemSelectionChanged" />
       <keyword name="FeedsManager.on_feedsTree_itemSelectionChanged" id="FeedsManager.on_feedsTree_itemSelectionChanged" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.on_feedsTree_itemSelectionChanged" />
-      <keyword name="FeedsManager.on_reloadAllButton_clicked" id="FeedsManager.on_reloadAllButton_clicked" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.on_reloadAllButton_clicked" />
       <keyword name="FeedsManager.on_reloadAllButton_clicked" id="FeedsManager.on_reloadAllButton_clicked" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.on_reloadAllButton_clicked" />
-      <keyword name="FeedsManager.on_reloadButton_clicked" id="FeedsManager.on_reloadButton_clicked" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.on_reloadButton_clicked" />
       <keyword name="FeedsManager.on_reloadButton_clicked" id="FeedsManager.on_reloadButton_clicked" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.on_reloadButton_clicked" />
-      <keyword name="FeedsManager.show" id="FeedsManager.show" ref="eric6.Helpviewer.Feeds.FeedsManager.html#FeedsManager.show" />
       <keyword name="FeedsManager.show" id="FeedsManager.show" ref="eric6.WebBrowser.Feeds.FeedsManager.html#FeedsManager.show" />
       <keyword name="Fetch" id="Fetch" ref="eric6.Plugins.VcsPlugins.vcsMercurial.FetchExtension.fetch.html#Fetch" />
       <keyword name="Fetch (Constructor)" id="Fetch (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.FetchExtension.fetch.html#Fetch.__init__" />
@@ -6411,17 +5495,6 @@
       <keyword name="FetchProjectHelper.initActions" id="FetchProjectHelper.initActions" ref="eric6.Plugins.VcsPlugins.vcsMercurial.FetchExtension.ProjectHelper.html#FetchProjectHelper.initActions" />
       <keyword name="FetchProjectHelper.initMenu" id="FetchProjectHelper.initMenu" ref="eric6.Plugins.VcsPlugins.vcsMercurial.FetchExtension.ProjectHelper.html#FetchProjectHelper.initMenu" />
       <keyword name="FetchProjectHelper.menuTitle" id="FetchProjectHelper.menuTitle" ref="eric6.Plugins.VcsPlugins.vcsMercurial.FetchExtension.ProjectHelper.html#FetchProjectHelper.menuTitle" />
-      <keyword name="File" id="File" ref="eric6.Globals.compatibility_fixes.html#File" />
-      <keyword name="File (Constructor)" id="File (Constructor)" ref="eric6.Globals.compatibility_fixes.html#File.__init__" />
-      <keyword name="File.next" id="File.next" ref="eric6.Globals.compatibility_fixes.html#File.next" />
-      <keyword name="File.read" id="File.read" ref="eric6.Globals.compatibility_fixes.html#File.read" />
-      <keyword name="File.readline" id="File.readline" ref="eric6.Globals.compatibility_fixes.html#File.readline" />
-      <keyword name="File.readlines" id="File.readlines" ref="eric6.Globals.compatibility_fixes.html#File.readlines" />
-      <keyword name="File.write" id="File.write" ref="eric6.Globals.compatibility_fixes.html#File.write" />
-      <keyword name="FileAccessHandler" id="FileAccessHandler" ref="eric6.Helpviewer.Network.FileAccessHandler.html#FileAccessHandler" />
-      <keyword name="FileAccessHandler (Constructor)" id="FileAccessHandler (Constructor)" ref="eric6.Helpviewer.Network.FileAccessHandler.html#FileAccessHandler.__init__" />
-      <keyword name="FileAccessHandler (Module)" id="FileAccessHandler (Module)" ref="eric6.Helpviewer.Network.FileAccessHandler.html" />
-      <keyword name="FileAccessHandler.createRequest" id="FileAccessHandler.createRequest" ref="eric6.Helpviewer.Network.FileAccessHandler.html#FileAccessHandler.createRequest" />
       <keyword name="FileDialogWizard" id="FileDialogWizard" ref="eric6.Plugins.PluginWizardQFileDialog.html#FileDialogWizard" />
       <keyword name="FileDialogWizard (Constructor)" id="FileDialogWizard (Constructor)" ref="eric6.Plugins.PluginWizardQFileDialog.html#FileDialogWizard.__init__" />
       <keyword name="FileDialogWizard (Package)" id="FileDialogWizard (Package)" ref="index-eric6.Plugins.WizardPlugins.FileDialogWizard.html" />
@@ -6442,36 +5515,6 @@
       <keyword name="FileDialogWizardDialog.on_bTest_clicked" id="FileDialogWizardDialog.on_bTest_clicked" ref="eric6.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html#FileDialogWizardDialog.on_bTest_clicked" />
       <keyword name="FileDialogWizardDialog.on_buttonBox_clicked" id="FileDialogWizardDialog.on_buttonBox_clicked" ref="eric6.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html#FileDialogWizardDialog.on_buttonBox_clicked" />
       <keyword name="FileDialogWizardDialog.on_pyqtComboBox_currentIndexChanged" id="FileDialogWizardDialog.on_pyqtComboBox_currentIndexChanged" ref="eric6.Plugins.WizardPlugins.FileDialogWizard.FileDialogWizardDialog.html#FileDialogWizardDialog.on_pyqtComboBox_currentIndexChanged" />
-      <keyword name="FilePrinter" id="FilePrinter" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter" />
-      <keyword name="FilePrinter (Constructor)" id="FilePrinter (Constructor)" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter.__init__" />
-      <keyword name="FilePrinter (Module)" id="FilePrinter (Module)" ref="eric6.WebBrowser.Tools.FilePrinter.html" />
-      <keyword name="FilePrinter.__doCleanup" id="FilePrinter.__doCleanup" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter.__doCleanup" />
-      <keyword name="FilePrinter.__processError" id="FilePrinter.__processError" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter.__processError" />
-      <keyword name="FilePrinter.__processFinished" id="FilePrinter.__processFinished" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter.__processFinished" />
-      <keyword name="FilePrinter._copies" id="FilePrinter._copies" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._copies" />
-      <keyword name="FilePrinter._cupsOptions" id="FilePrinter._cupsOptions" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._cupsOptions" />
-      <keyword name="FilePrinter._deleteFile" id="FilePrinter._deleteFile" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._deleteFile" />
-      <keyword name="FilePrinter._destination" id="FilePrinter._destination" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._destination" />
-      <keyword name="FilePrinter._doPrintFile" id="FilePrinter._doPrintFile" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._doPrintFile" />
-      <keyword name="FilePrinter._jobname" id="FilePrinter._jobname" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._jobname" />
-      <keyword name="FilePrinter._mediaPageSize" id="FilePrinter._mediaPageSize" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._mediaPageSize" />
-      <keyword name="FilePrinter._mediaPaperSource" id="FilePrinter._mediaPaperSource" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._mediaPaperSource" />
-      <keyword name="FilePrinter._optionCollateCopies" id="FilePrinter._optionCollateCopies" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._optionCollateCopies" />
-      <keyword name="FilePrinter._optionCupsProperties" id="FilePrinter._optionCupsProperties" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._optionCupsProperties" />
-      <keyword name="FilePrinter._optionDoubleSidedPrinting" id="FilePrinter._optionDoubleSidedPrinting" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._optionDoubleSidedPrinting" />
-      <keyword name="FilePrinter._optionMedia" id="FilePrinter._optionMedia" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._optionMedia" />
-      <keyword name="FilePrinter._optionPageOrder" id="FilePrinter._optionPageOrder" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._optionPageOrder" />
-      <keyword name="FilePrinter._pages" id="FilePrinter._pages" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._pages" />
-      <keyword name="FilePrinter._printArguments" id="FilePrinter._printArguments" ref="eric6.WebBrowser.Tools.FilePrinter.html#FilePrinter._printArguments" />
-      <keyword name="FileReply" id="FileReply" ref="eric6.Helpviewer.Network.FileReply.html#FileReply" />
-      <keyword name="FileReply (Constructor)" id="FileReply (Constructor)" ref="eric6.Helpviewer.Network.FileReply.html#FileReply.__init__" />
-      <keyword name="FileReply (Module)" id="FileReply (Module)" ref="eric6.Helpviewer.Network.FileReply.html" />
-      <keyword name="FileReply.__cssLinkClass" id="FileReply.__cssLinkClass" ref="eric6.Helpviewer.Network.FileReply.html#FileReply.__cssLinkClass" />
-      <keyword name="FileReply.__loadDirectory" id="FileReply.__loadDirectory" ref="eric6.Helpviewer.Network.FileReply.html#FileReply.__loadDirectory" />
-      <keyword name="FileReply.abort" id="FileReply.abort" ref="eric6.Helpviewer.Network.FileReply.html#FileReply.abort" />
-      <keyword name="FileReply.bytesAvailable" id="FileReply.bytesAvailable" ref="eric6.Helpviewer.Network.FileReply.html#FileReply.bytesAvailable" />
-      <keyword name="FileReply.isSequential" id="FileReply.isSequential" ref="eric6.Helpviewer.Network.FileReply.html#FileReply.isSequential" />
-      <keyword name="FileReply.readData" id="FileReply.readData" ref="eric6.Helpviewer.Network.FileReply.html#FileReply.readData" />
       <keyword name="FileReport" id="FileReport" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#FileReport" />
       <keyword name="FiletypeAssociationDialog" id="FiletypeAssociationDialog" ref="eric6.Project.FiletypeAssociationDialog.html#FiletypeAssociationDialog" />
       <keyword name="FiletypeAssociationDialog (Constructor)" id="FiletypeAssociationDialog (Constructor)" ref="eric6.Project.FiletypeAssociationDialog.html#FiletypeAssociationDialog.__init__" />
@@ -6526,181 +5569,89 @@
       <keyword name="FindFileNameDialog.on_searchDirPicker_textChanged" id="FindFileNameDialog.on_searchDirPicker_textChanged" ref="eric6.UI.FindFileNameDialog.html#FindFileNameDialog.on_searchDirPicker_textChanged" />
       <keyword name="FindFileNameDialog.on_syspathCheckBox_toggled" id="FindFileNameDialog.on_syspathCheckBox_toggled" ref="eric6.UI.FindFileNameDialog.html#FindFileNameDialog.on_syspathCheckBox_toggled" />
       <keyword name="FindFileNameDialog.show" id="FindFileNameDialog.show" ref="eric6.UI.FindFileNameDialog.html#FindFileNameDialog.show" />
-      <keyword name="FirefoxImporter" id="FirefoxImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter" />
       <keyword name="FirefoxImporter" id="FirefoxImporter" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter" />
-      <keyword name="FirefoxImporter (Constructor)" id="FirefoxImporter (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter.__init__" />
       <keyword name="FirefoxImporter (Constructor)" id="FirefoxImporter (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter.__init__" />
-      <keyword name="FirefoxImporter (Module)" id="FirefoxImporter (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html" />
       <keyword name="FirefoxImporter (Module)" id="FirefoxImporter (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.FirefoxImporter.html" />
-      <keyword name="FirefoxImporter.importedBookmarks" id="FirefoxImporter.importedBookmarks" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter.importedBookmarks" />
       <keyword name="FirefoxImporter.importedBookmarks" id="FirefoxImporter.importedBookmarks" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter.importedBookmarks" />
-      <keyword name="FirefoxImporter.open" id="FirefoxImporter.open" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter.open" />
       <keyword name="FirefoxImporter.open" id="FirefoxImporter.open" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter.open" />
-      <keyword name="FirefoxImporter.setPath" id="FirefoxImporter.setPath" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter.setPath" />
       <keyword name="FirefoxImporter.setPath" id="FirefoxImporter.setPath" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.FirefoxImporter.html#FirefoxImporter.setPath" />
-      <keyword name="FlashCookie" id="FlashCookie" ref="eric6.Helpviewer.FlashCookieManager.FlashCookie.html#FlashCookie" />
       <keyword name="FlashCookie" id="FlashCookie" ref="eric6.WebBrowser.FlashCookieManager.FlashCookie.html#FlashCookie" />
-      <keyword name="FlashCookie (Constructor)" id="FlashCookie (Constructor)" ref="eric6.Helpviewer.FlashCookieManager.FlashCookie.html#FlashCookie.__init__" />
       <keyword name="FlashCookie (Constructor)" id="FlashCookie (Constructor)" ref="eric6.WebBrowser.FlashCookieManager.FlashCookie.html#FlashCookie.__init__" />
-      <keyword name="FlashCookie (Module)" id="FlashCookie (Module)" ref="eric6.Helpviewer.FlashCookieManager.FlashCookie.html" />
       <keyword name="FlashCookie (Module)" id="FlashCookie (Module)" ref="eric6.WebBrowser.FlashCookieManager.FlashCookie.html" />
-      <keyword name="FlashCookie.__eq__" id="FlashCookie.__eq__" ref="eric6.Helpviewer.FlashCookieManager.FlashCookie.html#FlashCookie.__eq__" />
       <keyword name="FlashCookie.__eq__" id="FlashCookie.__eq__" ref="eric6.WebBrowser.FlashCookieManager.FlashCookie.html#FlashCookie.__eq__" />
-      <keyword name="FlashCookieManager" id="FlashCookieManager" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager" />
       <keyword name="FlashCookieManager" id="FlashCookieManager" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager" />
-      <keyword name="FlashCookieManager (Constructor)" id="FlashCookieManager (Constructor)" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__init__" />
       <keyword name="FlashCookieManager (Constructor)" id="FlashCookieManager (Constructor)" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__init__" />
-      <keyword name="FlashCookieManager (Module)" id="FlashCookieManager (Module)" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html" />
       <keyword name="FlashCookieManager (Module)" id="FlashCookieManager (Module)" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html" />
-      <keyword name="FlashCookieManager (Package)" id="FlashCookieManager (Package)" ref="index-eric6.Helpviewer.FlashCookieManager.html" />
       <keyword name="FlashCookieManager (Package)" id="FlashCookieManager (Package)" ref="index-eric6.WebBrowser.FlashCookieManager.html" />
-      <keyword name="FlashCookieManager.__autoRefresh" id="FlashCookieManager.__autoRefresh" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__autoRefresh" />
       <keyword name="FlashCookieManager.__autoRefresh" id="FlashCookieManager.__autoRefresh" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__autoRefresh" />
-      <keyword name="FlashCookieManager.__extractOriginFrom" id="FlashCookieManager.__extractOriginFrom" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__extractOriginFrom" />
       <keyword name="FlashCookieManager.__extractOriginFrom" id="FlashCookieManager.__extractOriginFrom" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__extractOriginFrom" />
-      <keyword name="FlashCookieManager.__insertFlashCookie" id="FlashCookieManager.__insertFlashCookie" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__insertFlashCookie" />
       <keyword name="FlashCookieManager.__insertFlashCookie" id="FlashCookieManager.__insertFlashCookie" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__insertFlashCookie" />
-      <keyword name="FlashCookieManager.__isBlacklisted" id="FlashCookieManager.__isBlacklisted" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__isBlacklisted" />
       <keyword name="FlashCookieManager.__isBlacklisted" id="FlashCookieManager.__isBlacklisted" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__isBlacklisted" />
-      <keyword name="FlashCookieManager.__isWhitelisted" id="FlashCookieManager.__isWhitelisted" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__isWhitelisted" />
       <keyword name="FlashCookieManager.__isWhitelisted" id="FlashCookieManager.__isWhitelisted" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__isWhitelisted" />
-      <keyword name="FlashCookieManager.__loadFlashCookies" id="FlashCookieManager.__loadFlashCookies" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__loadFlashCookies" />
       <keyword name="FlashCookieManager.__loadFlashCookies" id="FlashCookieManager.__loadFlashCookies" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__loadFlashCookies" />
-      <keyword name="FlashCookieManager.__loadFlashCookiesFromPath" id="FlashCookieManager.__loadFlashCookiesFromPath" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__loadFlashCookiesFromPath" />
       <keyword name="FlashCookieManager.__loadFlashCookiesFromPath" id="FlashCookieManager.__loadFlashCookiesFromPath" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__loadFlashCookiesFromPath" />
-      <keyword name="FlashCookieManager.__removeAllButWhitelisted" id="FlashCookieManager.__removeAllButWhitelisted" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__removeAllButWhitelisted" />
       <keyword name="FlashCookieManager.__removeAllButWhitelisted" id="FlashCookieManager.__removeAllButWhitelisted" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__removeAllButWhitelisted" />
-      <keyword name="FlashCookieManager.__sharedObjectDirName" id="FlashCookieManager.__sharedObjectDirName" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__sharedObjectDirName" />
       <keyword name="FlashCookieManager.__sharedObjectDirName" id="FlashCookieManager.__sharedObjectDirName" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__sharedObjectDirName" />
-      <keyword name="FlashCookieManager.__startStopTimer" id="FlashCookieManager.__startStopTimer" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__startStopTimer" />
       <keyword name="FlashCookieManager.__startStopTimer" id="FlashCookieManager.__startStopTimer" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.__startStopTimer" />
-      <keyword name="FlashCookieManager.clearCache" id="FlashCookieManager.clearCache" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.clearCache" />
       <keyword name="FlashCookieManager.clearCache" id="FlashCookieManager.clearCache" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.clearCache" />
-      <keyword name="FlashCookieManager.clearNewOrigins" id="FlashCookieManager.clearNewOrigins" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.clearNewOrigins" />
       <keyword name="FlashCookieManager.clearNewOrigins" id="FlashCookieManager.clearNewOrigins" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.clearNewOrigins" />
-      <keyword name="FlashCookieManager.flashCookies" id="FlashCookieManager.flashCookies" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.flashCookies" />
       <keyword name="FlashCookieManager.flashCookies" id="FlashCookieManager.flashCookies" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.flashCookies" />
-      <keyword name="FlashCookieManager.flashPlayerDataPath" id="FlashCookieManager.flashPlayerDataPath" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.flashPlayerDataPath" />
       <keyword name="FlashCookieManager.flashPlayerDataPath" id="FlashCookieManager.flashPlayerDataPath" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.flashPlayerDataPath" />
-      <keyword name="FlashCookieManager.newCookiesList" id="FlashCookieManager.newCookiesList" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.newCookiesList" />
       <keyword name="FlashCookieManager.newCookiesList" id="FlashCookieManager.newCookiesList" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.newCookiesList" />
-      <keyword name="FlashCookieManager.preferencesChanged" id="FlashCookieManager.preferencesChanged" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.preferencesChanged" />
       <keyword name="FlashCookieManager.preferencesChanged" id="FlashCookieManager.preferencesChanged" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.preferencesChanged" />
       <keyword name="FlashCookieManager.removeAllCookies" id="FlashCookieManager.removeAllCookies" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.removeAllCookies" />
-      <keyword name="FlashCookieManager.removeCookie" id="FlashCookieManager.removeCookie" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.removeCookie" />
       <keyword name="FlashCookieManager.removeCookie" id="FlashCookieManager.removeCookie" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.removeCookie" />
-      <keyword name="FlashCookieManager.setFlashCookies" id="FlashCookieManager.setFlashCookies" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.setFlashCookies" />
       <keyword name="FlashCookieManager.setFlashCookies" id="FlashCookieManager.setFlashCookies" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.setFlashCookies" />
-      <keyword name="FlashCookieManager.showFlashCookieManagerDialog" id="FlashCookieManager.showFlashCookieManagerDialog" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.showFlashCookieManagerDialog" />
       <keyword name="FlashCookieManager.showFlashCookieManagerDialog" id="FlashCookieManager.showFlashCookieManagerDialog" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.showFlashCookieManagerDialog" />
-      <keyword name="FlashCookieManager.shutdown" id="FlashCookieManager.shutdown" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.shutdown" />
       <keyword name="FlashCookieManager.shutdown" id="FlashCookieManager.shutdown" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManager.html#FlashCookieManager.shutdown" />
-      <keyword name="FlashCookieManagerDialog" id="FlashCookieManagerDialog" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog" />
       <keyword name="FlashCookieManagerDialog" id="FlashCookieManagerDialog" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog" />
-      <keyword name="FlashCookieManagerDialog (Constructor)" id="FlashCookieManagerDialog (Constructor)" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.__init__" />
       <keyword name="FlashCookieManagerDialog (Constructor)" id="FlashCookieManagerDialog (Constructor)" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.__init__" />
-      <keyword name="FlashCookieManagerDialog (Module)" id="FlashCookieManagerDialog (Module)" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html" />
       <keyword name="FlashCookieManagerDialog (Module)" id="FlashCookieManagerDialog (Module)" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html" />
-      <keyword name="FlashCookieManagerDialog.__addBlacklist" id="FlashCookieManagerDialog.__addBlacklist" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.__addBlacklist" />
       <keyword name="FlashCookieManagerDialog.__addBlacklist" id="FlashCookieManagerDialog.__addBlacklist" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.__addBlacklist" />
-      <keyword name="FlashCookieManagerDialog.__addWhitelist" id="FlashCookieManagerDialog.__addWhitelist" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.__addWhitelist" />
       <keyword name="FlashCookieManagerDialog.__addWhitelist" id="FlashCookieManagerDialog.__addWhitelist" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.__addWhitelist" />
-      <keyword name="FlashCookieManagerDialog.__cookiesListContextMenuRequested" id="FlashCookieManagerDialog.__cookiesListContextMenuRequested" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.__cookiesListContextMenuRequested" />
       <keyword name="FlashCookieManagerDialog.__cookiesListContextMenuRequested" id="FlashCookieManagerDialog.__cookiesListContextMenuRequested" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.__cookiesListContextMenuRequested" />
-      <keyword name="FlashCookieManagerDialog.__refreshCookiesList" id="FlashCookieManagerDialog.__refreshCookiesList" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.__refreshCookiesList" />
       <keyword name="FlashCookieManagerDialog.__refreshCookiesList" id="FlashCookieManagerDialog.__refreshCookiesList" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.__refreshCookiesList" />
-      <keyword name="FlashCookieManagerDialog.__refreshFilterLists" id="FlashCookieManagerDialog.__refreshFilterLists" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.__refreshFilterLists" />
       <keyword name="FlashCookieManagerDialog.__refreshFilterLists" id="FlashCookieManagerDialog.__refreshFilterLists" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.__refreshFilterLists" />
-      <keyword name="FlashCookieManagerDialog.closeEvent" id="FlashCookieManagerDialog.closeEvent" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.closeEvent" />
       <keyword name="FlashCookieManagerDialog.closeEvent" id="FlashCookieManagerDialog.closeEvent" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.closeEvent" />
-      <keyword name="FlashCookieManagerDialog.on_addBlackButton_clicked" id="FlashCookieManagerDialog.on_addBlackButton_clicked" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_addBlackButton_clicked" />
       <keyword name="FlashCookieManagerDialog.on_addBlackButton_clicked" id="FlashCookieManagerDialog.on_addBlackButton_clicked" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_addBlackButton_clicked" />
-      <keyword name="FlashCookieManagerDialog.on_addWhiteButton_clicked" id="FlashCookieManagerDialog.on_addWhiteButton_clicked" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_addWhiteButton_clicked" />
       <keyword name="FlashCookieManagerDialog.on_addWhiteButton_clicked" id="FlashCookieManagerDialog.on_addWhiteButton_clicked" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_addWhiteButton_clicked" />
-      <keyword name="FlashCookieManagerDialog.on_blackList_itemSelectionChanged" id="FlashCookieManagerDialog.on_blackList_itemSelectionChanged" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_blackList_itemSelectionChanged" />
       <keyword name="FlashCookieManagerDialog.on_blackList_itemSelectionChanged" id="FlashCookieManagerDialog.on_blackList_itemSelectionChanged" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_blackList_itemSelectionChanged" />
-      <keyword name="FlashCookieManagerDialog.on_cookiesList_currentItemChanged" id="FlashCookieManagerDialog.on_cookiesList_currentItemChanged" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_cookiesList_currentItemChanged" />
       <keyword name="FlashCookieManagerDialog.on_cookiesList_currentItemChanged" id="FlashCookieManagerDialog.on_cookiesList_currentItemChanged" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_cookiesList_currentItemChanged" />
-      <keyword name="FlashCookieManagerDialog.on_filterEdit_textChanged" id="FlashCookieManagerDialog.on_filterEdit_textChanged" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_filterEdit_textChanged" />
       <keyword name="FlashCookieManagerDialog.on_filterEdit_textChanged" id="FlashCookieManagerDialog.on_filterEdit_textChanged" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_filterEdit_textChanged" />
-      <keyword name="FlashCookieManagerDialog.on_reloadButton_clicked" id="FlashCookieManagerDialog.on_reloadButton_clicked" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_reloadButton_clicked" />
       <keyword name="FlashCookieManagerDialog.on_reloadButton_clicked" id="FlashCookieManagerDialog.on_reloadButton_clicked" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_reloadButton_clicked" />
-      <keyword name="FlashCookieManagerDialog.on_removeAllButton_clicked" id="FlashCookieManagerDialog.on_removeAllButton_clicked" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_removeAllButton_clicked" />
       <keyword name="FlashCookieManagerDialog.on_removeAllButton_clicked" id="FlashCookieManagerDialog.on_removeAllButton_clicked" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_removeAllButton_clicked" />
-      <keyword name="FlashCookieManagerDialog.on_removeBlackButton_clicked" id="FlashCookieManagerDialog.on_removeBlackButton_clicked" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_removeBlackButton_clicked" />
       <keyword name="FlashCookieManagerDialog.on_removeBlackButton_clicked" id="FlashCookieManagerDialog.on_removeBlackButton_clicked" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_removeBlackButton_clicked" />
-      <keyword name="FlashCookieManagerDialog.on_removeButton_clicked" id="FlashCookieManagerDialog.on_removeButton_clicked" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_removeButton_clicked" />
       <keyword name="FlashCookieManagerDialog.on_removeButton_clicked" id="FlashCookieManagerDialog.on_removeButton_clicked" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_removeButton_clicked" />
-      <keyword name="FlashCookieManagerDialog.on_removeWhiteButton_clicked" id="FlashCookieManagerDialog.on_removeWhiteButton_clicked" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_removeWhiteButton_clicked" />
       <keyword name="FlashCookieManagerDialog.on_removeWhiteButton_clicked" id="FlashCookieManagerDialog.on_removeWhiteButton_clicked" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_removeWhiteButton_clicked" />
-      <keyword name="FlashCookieManagerDialog.on_whiteList_itemSelectionChanged" id="FlashCookieManagerDialog.on_whiteList_itemSelectionChanged" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_whiteList_itemSelectionChanged" />
       <keyword name="FlashCookieManagerDialog.on_whiteList_itemSelectionChanged" id="FlashCookieManagerDialog.on_whiteList_itemSelectionChanged" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.on_whiteList_itemSelectionChanged" />
-      <keyword name="FlashCookieManagerDialog.refreshView" id="FlashCookieManagerDialog.refreshView" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.refreshView" />
       <keyword name="FlashCookieManagerDialog.refreshView" id="FlashCookieManagerDialog.refreshView" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.refreshView" />
-      <keyword name="FlashCookieManagerDialog.showPage" id="FlashCookieManagerDialog.showPage" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.showPage" />
       <keyword name="FlashCookieManagerDialog.showPage" id="FlashCookieManagerDialog.showPage" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieManagerDialog.html#FlashCookieManagerDialog.showPage" />
-      <keyword name="FlashCookieNotification" id="FlashCookieNotification" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieNotification.html#FlashCookieNotification" />
       <keyword name="FlashCookieNotification" id="FlashCookieNotification" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieNotification.html#FlashCookieNotification" />
-      <keyword name="FlashCookieNotification (Constructor)" id="FlashCookieNotification (Constructor)" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieNotification.html#FlashCookieNotification.__init__" />
       <keyword name="FlashCookieNotification (Constructor)" id="FlashCookieNotification (Constructor)" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieNotification.html#FlashCookieNotification.__init__" />
-      <keyword name="FlashCookieNotification (Module)" id="FlashCookieNotification (Module)" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieNotification.html" />
       <keyword name="FlashCookieNotification (Module)" id="FlashCookieNotification (Module)" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieNotification.html" />
-      <keyword name="FlashCookieReader" id="FlashCookieReader" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader" />
       <keyword name="FlashCookieReader" id="FlashCookieReader" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader" />
-      <keyword name="FlashCookieReader (Constructor)" id="FlashCookieReader (Constructor)" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__init__" />
       <keyword name="FlashCookieReader (Constructor)" id="FlashCookieReader (Constructor)" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__init__" />
-      <keyword name="FlashCookieReader (Module)" id="FlashCookieReader (Module)" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html" />
       <keyword name="FlashCookieReader (Module)" id="FlashCookieReader (Module)" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html" />
-      <keyword name="FlashCookieReader.__parseArray" id="FlashCookieReader.__parseArray" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseArray" />
       <keyword name="FlashCookieReader.__parseArray" id="FlashCookieReader.__parseArray" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseArray" />
-      <keyword name="FlashCookieReader.__parseBoolean" id="FlashCookieReader.__parseBoolean" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseBoolean" />
       <keyword name="FlashCookieReader.__parseBoolean" id="FlashCookieReader.__parseBoolean" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseBoolean" />
-      <keyword name="FlashCookieReader.__parseDate" id="FlashCookieReader.__parseDate" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseDate" />
       <keyword name="FlashCookieReader.__parseDate" id="FlashCookieReader.__parseDate" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseDate" />
-      <keyword name="FlashCookieReader.__parseNull" id="FlashCookieReader.__parseNull" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseNull" />
       <keyword name="FlashCookieReader.__parseNull" id="FlashCookieReader.__parseNull" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseNull" />
-      <keyword name="FlashCookieReader.__parseNumber" id="FlashCookieReader.__parseNumber" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseNumber" />
       <keyword name="FlashCookieReader.__parseNumber" id="FlashCookieReader.__parseNumber" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseNumber" />
-      <keyword name="FlashCookieReader.__parseObject" id="FlashCookieReader.__parseObject" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseObject" />
       <keyword name="FlashCookieReader.__parseObject" id="FlashCookieReader.__parseObject" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseObject" />
-      <keyword name="FlashCookieReader.__parseOcc" id="FlashCookieReader.__parseOcc" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseOcc" />
       <keyword name="FlashCookieReader.__parseOcc" id="FlashCookieReader.__parseOcc" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseOcc" />
-      <keyword name="FlashCookieReader.__parseOjm" id="FlashCookieReader.__parseOjm" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseOjm" />
       <keyword name="FlashCookieReader.__parseOjm" id="FlashCookieReader.__parseOjm" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseOjm" />
-      <keyword name="FlashCookieReader.__parseString" id="FlashCookieReader.__parseString" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseString" />
       <keyword name="FlashCookieReader.__parseString" id="FlashCookieReader.__parseString" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseString" />
-      <keyword name="FlashCookieReader.__parseUndefined" id="FlashCookieReader.__parseUndefined" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseUndefined" />
       <keyword name="FlashCookieReader.__parseUndefined" id="FlashCookieReader.__parseUndefined" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseUndefined" />
-      <keyword name="FlashCookieReader.__parseXml" id="FlashCookieReader.__parseXml" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseXml" />
       <keyword name="FlashCookieReader.__parseXml" id="FlashCookieReader.__parseXml" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.__parseXml" />
-      <keyword name="FlashCookieReader.parse" id="FlashCookieReader.parse" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.parse" />
       <keyword name="FlashCookieReader.parse" id="FlashCookieReader.parse" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.parse" />
-      <keyword name="FlashCookieReader.setBytes" id="FlashCookieReader.setBytes" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.setBytes" />
       <keyword name="FlashCookieReader.setBytes" id="FlashCookieReader.setBytes" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.setBytes" />
-      <keyword name="FlashCookieReader.setFile" id="FlashCookieReader.setFile" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.setFile" />
       <keyword name="FlashCookieReader.setFile" id="FlashCookieReader.setFile" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.setFile" />
-      <keyword name="FlashCookieReader.setFileName" id="FlashCookieReader.setFileName" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.setFileName" />
       <keyword name="FlashCookieReader.setFileName" id="FlashCookieReader.setFileName" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.setFileName" />
-      <keyword name="FlashCookieReader.toString" id="FlashCookieReader.toString" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.toString" />
       <keyword name="FlashCookieReader.toString" id="FlashCookieReader.toString" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReader.toString" />
-      <keyword name="FlashCookieReaderError" id="FlashCookieReaderError" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReaderError" />
       <keyword name="FlashCookieReaderError" id="FlashCookieReaderError" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReaderError" />
-      <keyword name="FlashCookieReaderError (Constructor)" id="FlashCookieReaderError (Constructor)" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html#FlashCookieReaderError.__init__" />
       <keyword name="FlashCookieReaderError (Constructor)" id="FlashCookieReaderError (Constructor)" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieReader.html#FlashCookieReaderError.__init__" />
-      <keyword name="FlashCookieUtilities (Module)" id="FlashCookieUtilities (Module)" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieUtilities.html" />
       <keyword name="FlashCookieUtilities (Module)" id="FlashCookieUtilities (Module)" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieUtilities.html" />
       <keyword name="FlexCompleter (Module)" id="FlexCompleter (Module)" ref="eric6.DebugClients.Python.FlexCompleter.html" />
-      <keyword name="FollowRedirectReply" id="FollowRedirectReply" ref="eric6.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply" />
-      <keyword name="FollowRedirectReply (Constructor)" id="FollowRedirectReply (Constructor)" ref="eric6.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.__init__" />
-      <keyword name="FollowRedirectReply (Module)" id="FollowRedirectReply (Module)" ref="eric6.Helpviewer.Network.FollowRedirectReply.html" />
-      <keyword name="FollowRedirectReply.__replyFinished" id="FollowRedirectReply.__replyFinished" ref="eric6.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.__replyFinished" />
-      <keyword name="FollowRedirectReply.close" id="FollowRedirectReply.close" ref="eric6.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.close" />
-      <keyword name="FollowRedirectReply.error" id="FollowRedirectReply.error" ref="eric6.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.error" />
-      <keyword name="FollowRedirectReply.errorString" id="FollowRedirectReply.errorString" ref="eric6.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.errorString" />
-      <keyword name="FollowRedirectReply.originalUrl" id="FollowRedirectReply.originalUrl" ref="eric6.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.originalUrl" />
-      <keyword name="FollowRedirectReply.readAll" id="FollowRedirectReply.readAll" ref="eric6.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.readAll" />
-      <keyword name="FollowRedirectReply.reply" id="FollowRedirectReply.reply" ref="eric6.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.reply" />
-      <keyword name="FollowRedirectReply.url" id="FollowRedirectReply.url" ref="eric6.Helpviewer.Network.FollowRedirectReply.html#FollowRedirectReply.url" />
       <keyword name="FontDialogWizard" id="FontDialogWizard" ref="eric6.Plugins.PluginWizardQFontDialog.html#FontDialogWizard" />
       <keyword name="FontDialogWizard (Constructor)" id="FontDialogWizard (Constructor)" ref="eric6.Plugins.PluginWizardQFontDialog.html#FontDialogWizard.__init__" />
       <keyword name="FontDialogWizard (Package)" id="FontDialogWizard (Package)" ref="index-eric6.Plugins.WizardPlugins.FontDialogWizard.html" />
@@ -6727,14 +5678,6 @@
       <keyword name="FrameScroller.setScrollDivider" id="FrameScroller.setScrollDivider" ref="eric6.WebBrowser.AutoScroll.FrameScroller.html#FrameScroller.setScrollDivider" />
       <keyword name="FrameScroller.startScrolling" id="FrameScroller.startScrolling" ref="eric6.WebBrowser.AutoScroll.FrameScroller.html#FrameScroller.startScrolling" />
       <keyword name="FrameScroller.stopScrolling" id="FrameScroller.stopScrolling" ref="eric6.WebBrowser.AutoScroll.FrameScroller.html#FrameScroller.stopScrolling" />
-      <keyword name="FtpAccessHandler" id="FtpAccessHandler" ref="eric6.Helpviewer.Network.FtpAccessHandler.html#FtpAccessHandler" />
-      <keyword name="FtpAccessHandler (Constructor)" id="FtpAccessHandler (Constructor)" ref="eric6.Helpviewer.Network.FtpAccessHandler.html#FtpAccessHandler.__init__" />
-      <keyword name="FtpAccessHandler (Module)" id="FtpAccessHandler (Module)" ref="eric6.Helpviewer.Network.FtpAccessHandler.html" />
-      <keyword name="FtpAccessHandler.createRequest" id="FtpAccessHandler.createRequest" ref="eric6.Helpviewer.Network.FtpAccessHandler.html#FtpAccessHandler.createRequest" />
-      <keyword name="FtpAccessHandler.getAuthenticator" id="FtpAccessHandler.getAuthenticator" ref="eric6.Helpviewer.Network.FtpAccessHandler.html#FtpAccessHandler.getAuthenticator" />
-      <keyword name="FtpAccessHandler.getProxyAuthenticator" id="FtpAccessHandler.getProxyAuthenticator" ref="eric6.Helpviewer.Network.FtpAccessHandler.html#FtpAccessHandler.getProxyAuthenticator" />
-      <keyword name="FtpAccessHandler.setAuthenticator" id="FtpAccessHandler.setAuthenticator" ref="eric6.Helpviewer.Network.FtpAccessHandler.html#FtpAccessHandler.setAuthenticator" />
-      <keyword name="FtpAccessHandler.setProxyAuthenticator" id="FtpAccessHandler.setProxyAuthenticator" ref="eric6.Helpviewer.Network.FtpAccessHandler.html#FtpAccessHandler.setProxyAuthenticator" />
       <keyword name="FtpDirLineParser" id="FtpDirLineParser" ref="eric6.Utilities.FtpUtilities.html#FtpDirLineParser" />
       <keyword name="FtpDirLineParser (Constructor)" id="FtpDirLineParser (Constructor)" ref="eric6.Utilities.FtpUtilities.html#FtpDirLineParser.__init__" />
       <keyword name="FtpDirLineParser.__ignoreLine" id="FtpDirLineParser.__ignoreLine" ref="eric6.Utilities.FtpUtilities.html#FtpDirLineParser.__ignoreLine" />
@@ -6746,61 +5689,26 @@
       <keyword name="FtpDirLineParser.__splitUnixLine" id="FtpDirLineParser.__splitUnixLine" ref="eric6.Utilities.FtpUtilities.html#FtpDirLineParser.__splitUnixLine" />
       <keyword name="FtpDirLineParser.parseLine" id="FtpDirLineParser.parseLine" ref="eric6.Utilities.FtpUtilities.html#FtpDirLineParser.parseLine" />
       <keyword name="FtpDirLineParserError" id="FtpDirLineParserError" ref="eric6.Utilities.FtpUtilities.html#FtpDirLineParserError" />
-      <keyword name="FtpReply" id="FtpReply" ref="eric6.Helpviewer.Network.FtpReply.html#FtpReply" />
-      <keyword name="FtpReply (Constructor)" id="FtpReply (Constructor)" ref="eric6.Helpviewer.Network.FtpReply.html#FtpReply.__init__" />
-      <keyword name="FtpReply (Module)" id="FtpReply (Module)" ref="eric6.Helpviewer.Network.FtpReply.html" />
-      <keyword name="FtpReply.__cssLinkClass" id="FtpReply.__cssLinkClass" ref="eric6.Helpviewer.Network.FtpReply.html#FtpReply.__cssLinkClass" />
-      <keyword name="FtpReply.__dirCallback" id="FtpReply.__dirCallback" ref="eric6.Helpviewer.Network.FtpReply.html#FtpReply.__dirCallback" />
-      <keyword name="FtpReply.__doFtpCommands" id="FtpReply.__doFtpCommands" ref="eric6.Helpviewer.Network.FtpReply.html#FtpReply.__doFtpCommands" />
-      <keyword name="FtpReply.__doFtpLogin" id="FtpReply.__doFtpLogin" ref="eric6.Helpviewer.Network.FtpReply.html#FtpReply.__doFtpLogin" />
-      <keyword name="FtpReply.__retrCallback" id="FtpReply.__retrCallback" ref="eric6.Helpviewer.Network.FtpReply.html#FtpReply.__retrCallback" />
-      <keyword name="FtpReply.__setContent" id="FtpReply.__setContent" ref="eric6.Helpviewer.Network.FtpReply.html#FtpReply.__setContent" />
-      <keyword name="FtpReply.__setListContent" id="FtpReply.__setListContent" ref="eric6.Helpviewer.Network.FtpReply.html#FtpReply.__setListContent" />
-      <keyword name="FtpReply.abort" id="FtpReply.abort" ref="eric6.Helpviewer.Network.FtpReply.html#FtpReply.abort" />
-      <keyword name="FtpReply.bytesAvailable" id="FtpReply.bytesAvailable" ref="eric6.Helpviewer.Network.FtpReply.html#FtpReply.bytesAvailable" />
-      <keyword name="FtpReply.isSequential" id="FtpReply.isSequential" ref="eric6.Helpviewer.Network.FtpReply.html#FtpReply.isSequential" />
-      <keyword name="FtpReply.readData" id="FtpReply.readData" ref="eric6.Helpviewer.Network.FtpReply.html#FtpReply.readData" />
-      <keyword name="FtpSyncHandler" id="FtpSyncHandler" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler" />
       <keyword name="FtpSyncHandler" id="FtpSyncHandler" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler" />
-      <keyword name="FtpSyncHandler (Constructor)" id="FtpSyncHandler (Constructor)" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.__init__" />
       <keyword name="FtpSyncHandler (Constructor)" id="FtpSyncHandler (Constructor)" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.__init__" />
-      <keyword name="FtpSyncHandler (Module)" id="FtpSyncHandler (Module)" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html" />
       <keyword name="FtpSyncHandler (Module)" id="FtpSyncHandler (Module)" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html" />
-      <keyword name="FtpSyncHandler.__changeToStore" id="FtpSyncHandler.__changeToStore" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.__changeToStore" />
       <keyword name="FtpSyncHandler.__changeToStore" id="FtpSyncHandler.__changeToStore" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.__changeToStore" />
-      <keyword name="FtpSyncHandler.__connectAndLogin" id="FtpSyncHandler.__connectAndLogin" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.__connectAndLogin" />
       <keyword name="FtpSyncHandler.__connectAndLogin" id="FtpSyncHandler.__connectAndLogin" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.__connectAndLogin" />
-      <keyword name="FtpSyncHandler.__dirListCallback" id="FtpSyncHandler.__dirListCallback" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.__dirListCallback" />
       <keyword name="FtpSyncHandler.__dirListCallback" id="FtpSyncHandler.__dirListCallback" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.__dirListCallback" />
-      <keyword name="FtpSyncHandler.__doFtpCommands" id="FtpSyncHandler.__doFtpCommands" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.__doFtpCommands" />
       <keyword name="FtpSyncHandler.__doFtpCommands" id="FtpSyncHandler.__doFtpCommands" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.__doFtpCommands" />
-      <keyword name="FtpSyncHandler.__downloadFile" id="FtpSyncHandler.__downloadFile" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.__downloadFile" />
       <keyword name="FtpSyncHandler.__downloadFile" id="FtpSyncHandler.__downloadFile" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.__downloadFile" />
-      <keyword name="FtpSyncHandler.__downloadFileCallback" id="FtpSyncHandler.__downloadFileCallback" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.__downloadFileCallback" />
       <keyword name="FtpSyncHandler.__downloadFileCallback" id="FtpSyncHandler.__downloadFileCallback" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.__downloadFileCallback" />
-      <keyword name="FtpSyncHandler.__idleTimeout" id="FtpSyncHandler.__idleTimeout" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.__idleTimeout" />
       <keyword name="FtpSyncHandler.__idleTimeout" id="FtpSyncHandler.__idleTimeout" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.__idleTimeout" />
-      <keyword name="FtpSyncHandler.__initialSync" id="FtpSyncHandler.__initialSync" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.__initialSync" />
       <keyword name="FtpSyncHandler.__initialSync" id="FtpSyncHandler.__initialSync" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.__initialSync" />
-      <keyword name="FtpSyncHandler.__initialSyncFile" id="FtpSyncHandler.__initialSyncFile" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.__initialSyncFile" />
       <keyword name="FtpSyncHandler.__initialSyncFile" id="FtpSyncHandler.__initialSyncFile" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.__initialSyncFile" />
-      <keyword name="FtpSyncHandler.__syncFile" id="FtpSyncHandler.__syncFile" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.__syncFile" />
       <keyword name="FtpSyncHandler.__syncFile" id="FtpSyncHandler.__syncFile" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.__syncFile" />
-      <keyword name="FtpSyncHandler.__uploadFile" id="FtpSyncHandler.__uploadFile" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.__uploadFile" />
       <keyword name="FtpSyncHandler.__uploadFile" id="FtpSyncHandler.__uploadFile" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.__uploadFile" />
-      <keyword name="FtpSyncHandler.initialLoadAndCheck" id="FtpSyncHandler.initialLoadAndCheck" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.initialLoadAndCheck" />
       <keyword name="FtpSyncHandler.initialLoadAndCheck" id="FtpSyncHandler.initialLoadAndCheck" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.initialLoadAndCheck" />
-      <keyword name="FtpSyncHandler.shutdown" id="FtpSyncHandler.shutdown" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.shutdown" />
       <keyword name="FtpSyncHandler.shutdown" id="FtpSyncHandler.shutdown" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.shutdown" />
-      <keyword name="FtpSyncHandler.syncBookmarks" id="FtpSyncHandler.syncBookmarks" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.syncBookmarks" />
       <keyword name="FtpSyncHandler.syncBookmarks" id="FtpSyncHandler.syncBookmarks" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.syncBookmarks" />
-      <keyword name="FtpSyncHandler.syncHistory" id="FtpSyncHandler.syncHistory" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.syncHistory" />
       <keyword name="FtpSyncHandler.syncHistory" id="FtpSyncHandler.syncHistory" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.syncHistory" />
-      <keyword name="FtpSyncHandler.syncPasswords" id="FtpSyncHandler.syncPasswords" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.syncPasswords" />
       <keyword name="FtpSyncHandler.syncPasswords" id="FtpSyncHandler.syncPasswords" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.syncPasswords" />
-      <keyword name="FtpSyncHandler.syncSpeedDial" id="FtpSyncHandler.syncSpeedDial" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.syncSpeedDial" />
       <keyword name="FtpSyncHandler.syncSpeedDial" id="FtpSyncHandler.syncSpeedDial" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.syncSpeedDial" />
-      <keyword name="FtpSyncHandler.syncUserAgents" id="FtpSyncHandler.syncUserAgents" ref="eric6.Helpviewer.Sync.FtpSyncHandler.html#FtpSyncHandler.syncUserAgents" />
       <keyword name="FtpSyncHandler.syncUserAgents" id="FtpSyncHandler.syncUserAgents" ref="eric6.WebBrowser.Sync.FtpSyncHandler.html#FtpSyncHandler.syncUserAgents" />
       <keyword name="FtpUtilities (Module)" id="FtpUtilities (Module)" ref="eric6.Utilities.FtpUtilities.html" />
       <keyword name="Function" id="Function" ref="eric6.Utilities.ClassBrowsers.ClbrBaseClasses.html#Function" />
@@ -7159,7 +6067,6 @@
       <keyword name="GitLogBrowserDialog (Constructor)" id="GitLogBrowserDialog (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitLogBrowserDialog.html#GitLogBrowserDialog.__init__" />
       <keyword name="GitLogBrowserDialog (Module)" id="GitLogBrowserDialog (Module)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitLogBrowserDialog.html" />
       <keyword name="GitLogBrowserDialog.__actionMode" id="GitLogBrowserDialog.__actionMode" ref="eric6.Plugins.VcsPlugins.vcsGit.GitLogBrowserDialog.html#GitLogBrowserDialog.__actionMode" />
-      <keyword name="GitLogBrowserDialog.__actionsMenuHovered" id="GitLogBrowserDialog.__actionsMenuHovered" ref="eric6.Plugins.VcsPlugins.vcsGit.GitLogBrowserDialog.html#GitLogBrowserDialog.__actionsMenuHovered" />
       <keyword name="GitLogBrowserDialog.__addFinishCallback" id="GitLogBrowserDialog.__addFinishCallback" ref="eric6.Plugins.VcsPlugins.vcsGit.GitLogBrowserDialog.html#GitLogBrowserDialog.__addFinishCallback" />
       <keyword name="GitLogBrowserDialog.__branchActTriggered" id="GitLogBrowserDialog.__branchActTriggered" ref="eric6.Plugins.VcsPlugins.vcsGit.GitLogBrowserDialog.html#GitLogBrowserDialog.__branchActTriggered" />
       <keyword name="GitLogBrowserDialog.__branchSwitchActTriggered" id="GitLogBrowserDialog.__branchSwitchActTriggered" ref="eric6.Plugins.VcsPlugins.vcsGit.GitLogBrowserDialog.html#GitLogBrowserDialog.__branchSwitchActTriggered" />
@@ -7539,7 +6446,6 @@
       <keyword name="GitStatusDialog" id="GitStatusDialog" ref="eric6.Plugins.VcsPlugins.vcsGit.GitStatusDialog.html#GitStatusDialog" />
       <keyword name="GitStatusDialog (Constructor)" id="GitStatusDialog (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitStatusDialog.html#GitStatusDialog.__init__" />
       <keyword name="GitStatusDialog (Module)" id="GitStatusDialog (Module)" ref="eric6.Plugins.VcsPlugins.vcsGit.GitStatusDialog.html" />
-      <keyword name="GitStatusDialog.__actionsMenuHovered" id="GitStatusDialog.__actionsMenuHovered" ref="eric6.Plugins.VcsPlugins.vcsGit.GitStatusDialog.html#GitStatusDialog.__actionsMenuHovered" />
       <keyword name="GitStatusDialog.__add" id="GitStatusDialog.__add" ref="eric6.Plugins.VcsPlugins.vcsGit.GitStatusDialog.html#GitStatusDialog.__add" />
       <keyword name="GitStatusDialog.__amend" id="GitStatusDialog.__amend" ref="eric6.Plugins.VcsPlugins.vcsGit.GitStatusDialog.html#GitStatusDialog.__amend" />
       <keyword name="GitStatusDialog.__commit" id="GitStatusDialog.__commit" ref="eric6.Plugins.VcsPlugins.vcsGit.GitStatusDialog.html#GitStatusDialog.__commit" />
@@ -7720,85 +6626,45 @@
       <keyword name="GraphicsPage.polishPage" id="GraphicsPage.polishPage" ref="eric6.Preferences.ConfigurationPages.GraphicsPage.html#GraphicsPage.polishPage" />
       <keyword name="GraphicsPage.save" id="GraphicsPage.save" ref="eric6.Preferences.ConfigurationPages.GraphicsPage.html#GraphicsPage.save" />
       <keyword name="GraphicsUtilities (Module)" id="GraphicsUtilities (Module)" ref="eric6.Graphics.GraphicsUtilities.html" />
-      <keyword name="GreaseMonkey (Package)" id="GreaseMonkey (Package)" ref="index-eric6.Helpviewer.GreaseMonkey.html" />
       <keyword name="GreaseMonkey (Package)" id="GreaseMonkey (Package)" ref="index-eric6.WebBrowser.GreaseMonkey.html" />
-      <keyword name="GreaseMonkeyAddScriptDialog" id="GreaseMonkeyAddScriptDialog" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html#GreaseMonkeyAddScriptDialog" />
       <keyword name="GreaseMonkeyAddScriptDialog" id="GreaseMonkeyAddScriptDialog" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyAddScriptDialog.html#GreaseMonkeyAddScriptDialog" />
-      <keyword name="GreaseMonkeyAddScriptDialog (Constructor)" id="GreaseMonkeyAddScriptDialog (Constructor)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html#GreaseMonkeyAddScriptDialog.__init__" />
       <keyword name="GreaseMonkeyAddScriptDialog (Constructor)" id="GreaseMonkeyAddScriptDialog (Constructor)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyAddScriptDialog.html#GreaseMonkeyAddScriptDialog.__init__" />
-      <keyword name="GreaseMonkeyAddScriptDialog (Module)" id="GreaseMonkeyAddScriptDialog (Module)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html" />
       <keyword name="GreaseMonkeyAddScriptDialog (Module)" id="GreaseMonkeyAddScriptDialog (Module)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyAddScriptDialog.html" />
-      <keyword name="GreaseMonkeyAddScriptDialog.__accepted" id="GreaseMonkeyAddScriptDialog.__accepted" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html#GreaseMonkeyAddScriptDialog.__accepted" />
       <keyword name="GreaseMonkeyAddScriptDialog.__accepted" id="GreaseMonkeyAddScriptDialog.__accepted" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyAddScriptDialog.html#GreaseMonkeyAddScriptDialog.__accepted" />
-      <keyword name="GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked" id="GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html#GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked" />
       <keyword name="GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked" id="GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyAddScriptDialog.html#GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked" />
-      <keyword name="GreaseMonkeyConfiguration (Package)" id="GreaseMonkeyConfiguration (Package)" ref="index-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.html" />
       <keyword name="GreaseMonkeyConfiguration (Package)" id="GreaseMonkeyConfiguration (Package)" ref="index-eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.html" />
-      <keyword name="GreaseMonkeyConfigurationDialog" id="GreaseMonkeyConfigurationDialog" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog" />
       <keyword name="GreaseMonkeyConfigurationDialog" id="GreaseMonkeyConfigurationDialog" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog" />
-      <keyword name="GreaseMonkeyConfigurationDialog (Constructor)" id="GreaseMonkeyConfigurationDialog (Constructor)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__init__" />
       <keyword name="GreaseMonkeyConfigurationDialog (Constructor)" id="GreaseMonkeyConfigurationDialog (Constructor)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__init__" />
-      <keyword name="GreaseMonkeyConfigurationDialog (Module)" id="GreaseMonkeyConfigurationDialog (Module)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html" />
       <keyword name="GreaseMonkeyConfigurationDialog (Module)" id="GreaseMonkeyConfigurationDialog (Module)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html" />
-      <keyword name="GreaseMonkeyConfigurationDialog.__getScript" id="GreaseMonkeyConfigurationDialog.__getScript" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__getScript" />
       <keyword name="GreaseMonkeyConfigurationDialog.__getScript" id="GreaseMonkeyConfigurationDialog.__getScript" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__getScript" />
-      <keyword name="GreaseMonkeyConfigurationDialog.__itemChanged" id="GreaseMonkeyConfigurationDialog.__itemChanged" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__itemChanged" />
       <keyword name="GreaseMonkeyConfigurationDialog.__itemChanged" id="GreaseMonkeyConfigurationDialog.__itemChanged" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__itemChanged" />
-      <keyword name="GreaseMonkeyConfigurationDialog.__loadScripts" id="GreaseMonkeyConfigurationDialog.__loadScripts" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__loadScripts" />
       <keyword name="GreaseMonkeyConfigurationDialog.__loadScripts" id="GreaseMonkeyConfigurationDialog.__loadScripts" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__loadScripts" />
-      <keyword name="GreaseMonkeyConfigurationDialog.__removeItem" id="GreaseMonkeyConfigurationDialog.__removeItem" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__removeItem" />
       <keyword name="GreaseMonkeyConfigurationDialog.__removeItem" id="GreaseMonkeyConfigurationDialog.__removeItem" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.__removeItem" />
-      <keyword name="GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated" id="GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated" />
       <keyword name="GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated" id="GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated" />
-      <keyword name="GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked" id="GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked" />
       <keyword name="GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked" id="GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked" />
-      <keyword name="GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked" id="GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked" />
       <keyword name="GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked" id="GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html#GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked" />
-      <keyword name="GreaseMonkeyConfigurationListDelegate" id="GreaseMonkeyConfigurationListDelegate" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate" />
       <keyword name="GreaseMonkeyConfigurationListDelegate" id="GreaseMonkeyConfigurationListDelegate" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate" />
-      <keyword name="GreaseMonkeyConfigurationListDelegate (Constructor)" id="GreaseMonkeyConfigurationListDelegate (Constructor)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate.__init__" />
       <keyword name="GreaseMonkeyConfigurationListDelegate (Constructor)" id="GreaseMonkeyConfigurationListDelegate (Constructor)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate.__init__" />
-      <keyword name="GreaseMonkeyConfigurationListDelegate (Module)" id="GreaseMonkeyConfigurationListDelegate (Module)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html" />
       <keyword name="GreaseMonkeyConfigurationListDelegate (Module)" id="GreaseMonkeyConfigurationListDelegate (Module)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html" />
-      <keyword name="GreaseMonkeyConfigurationListDelegate.padding" id="GreaseMonkeyConfigurationListDelegate.padding" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate.padding" />
       <keyword name="GreaseMonkeyConfigurationListDelegate.padding" id="GreaseMonkeyConfigurationListDelegate.padding" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate.padding" />
-      <keyword name="GreaseMonkeyConfigurationListDelegate.paint" id="GreaseMonkeyConfigurationListDelegate.paint" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate.paint" />
       <keyword name="GreaseMonkeyConfigurationListDelegate.paint" id="GreaseMonkeyConfigurationListDelegate.paint" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate.paint" />
-      <keyword name="GreaseMonkeyConfigurationListDelegate.sizeHint" id="GreaseMonkeyConfigurationListDelegate.sizeHint" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate.sizeHint" />
       <keyword name="GreaseMonkeyConfigurationListDelegate.sizeHint" id="GreaseMonkeyConfigurationListDelegate.sizeHint" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html#GreaseMonkeyConfigurationListDelegate.sizeHint" />
-      <keyword name="GreaseMonkeyConfigurationListWidget" id="GreaseMonkeyConfigurationListWidget" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget" />
       <keyword name="GreaseMonkeyConfigurationListWidget" id="GreaseMonkeyConfigurationListWidget" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget" />
-      <keyword name="GreaseMonkeyConfigurationListWidget (Constructor)" id="GreaseMonkeyConfigurationListWidget (Constructor)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget.__init__" />
       <keyword name="GreaseMonkeyConfigurationListWidget (Constructor)" id="GreaseMonkeyConfigurationListWidget (Constructor)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget.__init__" />
-      <keyword name="GreaseMonkeyConfigurationListWidget (Module)" id="GreaseMonkeyConfigurationListWidget (Module)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html" />
       <keyword name="GreaseMonkeyConfigurationListWidget (Module)" id="GreaseMonkeyConfigurationListWidget (Module)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html" />
-      <keyword name="GreaseMonkeyConfigurationListWidget.__containsRemoveIcon" id="GreaseMonkeyConfigurationListWidget.__containsRemoveIcon" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget.__containsRemoveIcon" />
       <keyword name="GreaseMonkeyConfigurationListWidget.__containsRemoveIcon" id="GreaseMonkeyConfigurationListWidget.__containsRemoveIcon" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget.__containsRemoveIcon" />
-      <keyword name="GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent" id="GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent" />
       <keyword name="GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent" id="GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent" />
-      <keyword name="GreaseMonkeyConfigurationListWidget.mousePressEvent" id="GreaseMonkeyConfigurationListWidget.mousePressEvent" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget.mousePressEvent" />
       <keyword name="GreaseMonkeyConfigurationListWidget.mousePressEvent" id="GreaseMonkeyConfigurationListWidget.mousePressEvent" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html#GreaseMonkeyConfigurationListWidget.mousePressEvent" />
-      <keyword name="GreaseMonkeyConfigurationScriptInfoDialog" id="GreaseMonkeyConfigurationScriptInfoDialog" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html#GreaseMonkeyConfigurationScriptInfoDialog" />
       <keyword name="GreaseMonkeyConfigurationScriptInfoDialog" id="GreaseMonkeyConfigurationScriptInfoDialog" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html#GreaseMonkeyConfigurationScriptInfoDialog" />
-      <keyword name="GreaseMonkeyConfigurationScriptInfoDialog (Constructor)" id="GreaseMonkeyConfigurationScriptInfoDialog (Constructor)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html#GreaseMonkeyConfigurationScriptInfoDialog.__init__" />
       <keyword name="GreaseMonkeyConfigurationScriptInfoDialog (Constructor)" id="GreaseMonkeyConfigurationScriptInfoDialog (Constructor)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html#GreaseMonkeyConfigurationScriptInfoDialog.__init__" />
-      <keyword name="GreaseMonkeyConfigurationScriptInfoDialog (Module)" id="GreaseMonkeyConfigurationScriptInfoDialog (Module)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html" />
       <keyword name="GreaseMonkeyConfigurationScriptInfoDialog (Module)" id="GreaseMonkeyConfigurationScriptInfoDialog (Module)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html" />
-      <keyword name="GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked" id="GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html#GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked" />
       <keyword name="GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked" id="GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html#GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked" />
-      <keyword name="GreaseMonkeyDownloader" id="GreaseMonkeyDownloader" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader" />
       <keyword name="GreaseMonkeyDownloader" id="GreaseMonkeyDownloader" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader" />
-      <keyword name="GreaseMonkeyDownloader (Constructor)" id="GreaseMonkeyDownloader (Constructor)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader.__init__" />
       <keyword name="GreaseMonkeyDownloader (Constructor)" id="GreaseMonkeyDownloader (Constructor)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader.__init__" />
-      <keyword name="GreaseMonkeyDownloader (Module)" id="GreaseMonkeyDownloader (Module)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html" />
       <keyword name="GreaseMonkeyDownloader (Module)" id="GreaseMonkeyDownloader (Module)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyDownloader.html" />
-      <keyword name="GreaseMonkeyDownloader.__downloadRequires" id="GreaseMonkeyDownloader.__downloadRequires" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader.__downloadRequires" />
-      <keyword name="GreaseMonkeyDownloader.__requireDownloaded" id="GreaseMonkeyDownloader.__requireDownloaded" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader.__requireDownloaded" />
       <keyword name="GreaseMonkeyDownloader.__requireDownloaded" id="GreaseMonkeyDownloader.__requireDownloaded" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader.__requireDownloaded" />
-      <keyword name="GreaseMonkeyDownloader.__scriptDownloaded" id="GreaseMonkeyDownloader.__scriptDownloaded" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader.__scriptDownloaded" />
       <keyword name="GreaseMonkeyDownloader.__scriptDownloaded" id="GreaseMonkeyDownloader.__scriptDownloaded" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader.__scriptDownloaded" />
       <keyword name="GreaseMonkeyDownloader.updateScript" id="GreaseMonkeyDownloader.updateScript" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyDownloader.html#GreaseMonkeyDownloader.updateScript" />
-      <keyword name="GreaseMonkeyJavaScript (Module)" id="GreaseMonkeyJavaScript (Module)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript.html" />
       <keyword name="GreaseMonkeyJavaScript (Module)" id="GreaseMonkeyJavaScript (Module)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyJavaScript.html" />
       <keyword name="GreaseMonkeyJsObject" id="GreaseMonkeyJsObject" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyJsObject.html#GreaseMonkeyJsObject" />
       <keyword name="GreaseMonkeyJsObject (Constructor)" id="GreaseMonkeyJsObject (Constructor)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyJsObject.html#GreaseMonkeyJsObject.__init__" />
@@ -7809,107 +6675,61 @@
       <keyword name="GreaseMonkeyJsObject.setClipboard" id="GreaseMonkeyJsObject.setClipboard" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyJsObject.html#GreaseMonkeyJsObject.setClipboard" />
       <keyword name="GreaseMonkeyJsObject.setSettingsFile" id="GreaseMonkeyJsObject.setSettingsFile" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyJsObject.html#GreaseMonkeyJsObject.setSettingsFile" />
       <keyword name="GreaseMonkeyJsObject.setValue" id="GreaseMonkeyJsObject.setValue" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyJsObject.html#GreaseMonkeyJsObject.setValue" />
-      <keyword name="GreaseMonkeyManager" id="GreaseMonkeyManager" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager" />
       <keyword name="GreaseMonkeyManager" id="GreaseMonkeyManager" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager" />
-      <keyword name="GreaseMonkeyManager (Constructor)" id="GreaseMonkeyManager (Constructor)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.__init__" />
       <keyword name="GreaseMonkeyManager (Constructor)" id="GreaseMonkeyManager (Constructor)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.__init__" />
-      <keyword name="GreaseMonkeyManager (Module)" id="GreaseMonkeyManager (Module)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html" />
       <keyword name="GreaseMonkeyManager (Module)" id="GreaseMonkeyManager (Module)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html" />
-      <keyword name="GreaseMonkeyManager.__downloaderFinished" id="GreaseMonkeyManager.__downloaderFinished" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.__downloaderFinished" />
       <keyword name="GreaseMonkeyManager.__downloaderFinished" id="GreaseMonkeyManager.__downloaderFinished" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.__downloaderFinished" />
-      <keyword name="GreaseMonkeyManager.__load" id="GreaseMonkeyManager.__load" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.__load" />
       <keyword name="GreaseMonkeyManager.__load" id="GreaseMonkeyManager.__load" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.__load" />
       <keyword name="GreaseMonkeyManager.__scriptChanged" id="GreaseMonkeyManager.__scriptChanged" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.__scriptChanged" />
-      <keyword name="GreaseMonkeyManager.addScript" id="GreaseMonkeyManager.addScript" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.addScript" />
       <keyword name="GreaseMonkeyManager.addScript" id="GreaseMonkeyManager.addScript" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.addScript" />
-      <keyword name="GreaseMonkeyManager.allScripts" id="GreaseMonkeyManager.allScripts" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.allScripts" />
       <keyword name="GreaseMonkeyManager.allScripts" id="GreaseMonkeyManager.allScripts" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.allScripts" />
-      <keyword name="GreaseMonkeyManager.canRunOnScheme" id="GreaseMonkeyManager.canRunOnScheme" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.canRunOnScheme" />
       <keyword name="GreaseMonkeyManager.canRunOnScheme" id="GreaseMonkeyManager.canRunOnScheme" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.canRunOnScheme" />
-      <keyword name="GreaseMonkeyManager.connectPage" id="GreaseMonkeyManager.connectPage" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.connectPage" />
-      <keyword name="GreaseMonkeyManager.containsScript" id="GreaseMonkeyManager.containsScript" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.containsScript" />
       <keyword name="GreaseMonkeyManager.containsScript" id="GreaseMonkeyManager.containsScript" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.containsScript" />
-      <keyword name="GreaseMonkeyManager.createRequest" id="GreaseMonkeyManager.createRequest" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.createRequest" />
-      <keyword name="GreaseMonkeyManager.disableScript" id="GreaseMonkeyManager.disableScript" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.disableScript" />
       <keyword name="GreaseMonkeyManager.disableScript" id="GreaseMonkeyManager.disableScript" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.disableScript" />
       <keyword name="GreaseMonkeyManager.doDownloadScript" id="GreaseMonkeyManager.doDownloadScript" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.doDownloadScript" />
-      <keyword name="GreaseMonkeyManager.downloadScript" id="GreaseMonkeyManager.downloadScript" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.downloadScript" />
       <keyword name="GreaseMonkeyManager.downloadScript" id="GreaseMonkeyManager.downloadScript" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.downloadScript" />
-      <keyword name="GreaseMonkeyManager.enableScript" id="GreaseMonkeyManager.enableScript" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.enableScript" />
       <keyword name="GreaseMonkeyManager.enableScript" id="GreaseMonkeyManager.enableScript" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.enableScript" />
-      <keyword name="GreaseMonkeyManager.pageLoadStarted" id="GreaseMonkeyManager.pageLoadStarted" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.pageLoadStarted" />
-      <keyword name="GreaseMonkeyManager.removeScript" id="GreaseMonkeyManager.removeScript" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.removeScript" />
       <keyword name="GreaseMonkeyManager.removeScript" id="GreaseMonkeyManager.removeScript" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.removeScript" />
-      <keyword name="GreaseMonkeyManager.requireScripts" id="GreaseMonkeyManager.requireScripts" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.requireScripts" />
       <keyword name="GreaseMonkeyManager.requireScripts" id="GreaseMonkeyManager.requireScripts" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.requireScripts" />
-      <keyword name="GreaseMonkeyManager.requireScriptsDirectory" id="GreaseMonkeyManager.requireScriptsDirectory" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.requireScriptsDirectory" />
       <keyword name="GreaseMonkeyManager.requireScriptsDirectory" id="GreaseMonkeyManager.requireScriptsDirectory" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.requireScriptsDirectory" />
-      <keyword name="GreaseMonkeyManager.saveConfiguration" id="GreaseMonkeyManager.saveConfiguration" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.saveConfiguration" />
       <keyword name="GreaseMonkeyManager.saveConfiguration" id="GreaseMonkeyManager.saveConfiguration" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.saveConfiguration" />
-      <keyword name="GreaseMonkeyManager.scriptsDirectory" id="GreaseMonkeyManager.scriptsDirectory" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.scriptsDirectory" />
       <keyword name="GreaseMonkeyManager.scriptsDirectory" id="GreaseMonkeyManager.scriptsDirectory" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.scriptsDirectory" />
-      <keyword name="GreaseMonkeyManager.showConfigurationDialog" id="GreaseMonkeyManager.showConfigurationDialog" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.showConfigurationDialog" />
       <keyword name="GreaseMonkeyManager.showConfigurationDialog" id="GreaseMonkeyManager.showConfigurationDialog" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyManager.html#GreaseMonkeyManager.showConfigurationDialog" />
-      <keyword name="GreaseMonkeyScript" id="GreaseMonkeyScript" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript" />
       <keyword name="GreaseMonkeyScript" id="GreaseMonkeyScript" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript" />
-      <keyword name="GreaseMonkeyScript (Constructor)" id="GreaseMonkeyScript (Constructor)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__init__" />
       <keyword name="GreaseMonkeyScript (Constructor)" id="GreaseMonkeyScript (Constructor)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__init__" />
-      <keyword name="GreaseMonkeyScript (Module)" id="GreaseMonkeyScript (Module)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html" />
       <keyword name="GreaseMonkeyScript (Module)" id="GreaseMonkeyScript (Module)" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html" />
       <keyword name="GreaseMonkeyScript.__downloadIcon" id="GreaseMonkeyScript.__downloadIcon" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__downloadIcon" />
       <keyword name="GreaseMonkeyScript.__downloadRequires" id="GreaseMonkeyScript.__downloadRequires" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__downloadRequires" />
       <keyword name="GreaseMonkeyScript.__downloaderError" id="GreaseMonkeyScript.__downloaderError" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__downloaderError" />
       <keyword name="GreaseMonkeyScript.__downloaderFinished" id="GreaseMonkeyScript.__downloaderFinished" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__downloaderFinished" />
       <keyword name="GreaseMonkeyScript.__iconDownloaded" id="GreaseMonkeyScript.__iconDownloaded" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__iconDownloaded" />
-      <keyword name="GreaseMonkeyScript.__parseScript" id="GreaseMonkeyScript.__parseScript" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__parseScript" />
       <keyword name="GreaseMonkeyScript.__parseScript" id="GreaseMonkeyScript.__parseScript" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__parseScript" />
       <keyword name="GreaseMonkeyScript.__reloadScript" id="GreaseMonkeyScript.__reloadScript" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__reloadScript" />
       <keyword name="GreaseMonkeyScript.__requireDownloadError" id="GreaseMonkeyScript.__requireDownloadError" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__requireDownloadError" />
       <keyword name="GreaseMonkeyScript.__requireDownloaded" id="GreaseMonkeyScript.__requireDownloaded" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__requireDownloaded" />
       <keyword name="GreaseMonkeyScript.__toJavaScriptList" id="GreaseMonkeyScript.__toJavaScriptList" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__toJavaScriptList" />
       <keyword name="GreaseMonkeyScript.__watchedFileChanged" id="GreaseMonkeyScript.__watchedFileChanged" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.__watchedFileChanged" />
-      <keyword name="GreaseMonkeyScript.description" id="GreaseMonkeyScript.description" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.description" />
       <keyword name="GreaseMonkeyScript.description" id="GreaseMonkeyScript.description" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.description" />
-      <keyword name="GreaseMonkeyScript.downloadUrl" id="GreaseMonkeyScript.downloadUrl" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.downloadUrl" />
       <keyword name="GreaseMonkeyScript.downloadUrl" id="GreaseMonkeyScript.downloadUrl" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.downloadUrl" />
-      <keyword name="GreaseMonkeyScript.exclude" id="GreaseMonkeyScript.exclude" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.exclude" />
       <keyword name="GreaseMonkeyScript.exclude" id="GreaseMonkeyScript.exclude" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.exclude" />
-      <keyword name="GreaseMonkeyScript.fileName" id="GreaseMonkeyScript.fileName" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.fileName" />
       <keyword name="GreaseMonkeyScript.fileName" id="GreaseMonkeyScript.fileName" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.fileName" />
-      <keyword name="GreaseMonkeyScript.fullName" id="GreaseMonkeyScript.fullName" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.fullName" />
       <keyword name="GreaseMonkeyScript.fullName" id="GreaseMonkeyScript.fullName" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.fullName" />
       <keyword name="GreaseMonkeyScript.icon" id="GreaseMonkeyScript.icon" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.icon" />
       <keyword name="GreaseMonkeyScript.iconUrl" id="GreaseMonkeyScript.iconUrl" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.iconUrl" />
-      <keyword name="GreaseMonkeyScript.include" id="GreaseMonkeyScript.include" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.include" />
       <keyword name="GreaseMonkeyScript.include" id="GreaseMonkeyScript.include" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.include" />
-      <keyword name="GreaseMonkeyScript.isEnabled" id="GreaseMonkeyScript.isEnabled" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.isEnabled" />
       <keyword name="GreaseMonkeyScript.isEnabled" id="GreaseMonkeyScript.isEnabled" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.isEnabled" />
       <keyword name="GreaseMonkeyScript.isUpdating" id="GreaseMonkeyScript.isUpdating" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.isUpdating" />
-      <keyword name="GreaseMonkeyScript.isValid" id="GreaseMonkeyScript.isValid" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.isValid" />
       <keyword name="GreaseMonkeyScript.isValid" id="GreaseMonkeyScript.isValid" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.isValid" />
-      <keyword name="GreaseMonkeyScript.match" id="GreaseMonkeyScript.match" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.match" />
-      <keyword name="GreaseMonkeyScript.name" id="GreaseMonkeyScript.name" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.name" />
       <keyword name="GreaseMonkeyScript.name" id="GreaseMonkeyScript.name" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.name" />
-      <keyword name="GreaseMonkeyScript.nameSpace" id="GreaseMonkeyScript.nameSpace" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.nameSpace" />
       <keyword name="GreaseMonkeyScript.nameSpace" id="GreaseMonkeyScript.nameSpace" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.nameSpace" />
       <keyword name="GreaseMonkeyScript.noFrames" id="GreaseMonkeyScript.noFrames" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.noFrames" />
       <keyword name="GreaseMonkeyScript.require" id="GreaseMonkeyScript.require" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.require" />
-      <keyword name="GreaseMonkeyScript.script" id="GreaseMonkeyScript.script" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.script" />
-      <keyword name="GreaseMonkeyScript.setEnabled" id="GreaseMonkeyScript.setEnabled" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.setEnabled" />
       <keyword name="GreaseMonkeyScript.setEnabled" id="GreaseMonkeyScript.setEnabled" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.setEnabled" />
-      <keyword name="GreaseMonkeyScript.startAt" id="GreaseMonkeyScript.startAt" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.startAt" />
       <keyword name="GreaseMonkeyScript.startAt" id="GreaseMonkeyScript.startAt" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.startAt" />
       <keyword name="GreaseMonkeyScript.updateScript" id="GreaseMonkeyScript.updateScript" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.updateScript" />
       <keyword name="GreaseMonkeyScript.updateUrl" id="GreaseMonkeyScript.updateUrl" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.updateUrl" />
-      <keyword name="GreaseMonkeyScript.version" id="GreaseMonkeyScript.version" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.version" />
       <keyword name="GreaseMonkeyScript.version" id="GreaseMonkeyScript.version" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.version" />
       <keyword name="GreaseMonkeyScript.webScript" id="GreaseMonkeyScript.webScript" ref="eric6.WebBrowser.GreaseMonkey.GreaseMonkeyScript.html#GreaseMonkeyScript.webScript" />
-      <keyword name="GreaseMonkeyUrlMatcher" id="GreaseMonkeyUrlMatcher" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html#GreaseMonkeyUrlMatcher" />
-      <keyword name="GreaseMonkeyUrlMatcher (Constructor)" id="GreaseMonkeyUrlMatcher (Constructor)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html#GreaseMonkeyUrlMatcher.__init__" />
-      <keyword name="GreaseMonkeyUrlMatcher (Module)" id="GreaseMonkeyUrlMatcher (Module)" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html" />
-      <keyword name="GreaseMonkeyUrlMatcher.__parsePattern" id="GreaseMonkeyUrlMatcher.__parsePattern" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html#GreaseMonkeyUrlMatcher.__parsePattern" />
-      <keyword name="GreaseMonkeyUrlMatcher.match" id="GreaseMonkeyUrlMatcher.match" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html#GreaseMonkeyUrlMatcher.match" />
-      <keyword name="GreaseMonkeyUrlMatcher.pattern" id="GreaseMonkeyUrlMatcher.pattern" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html#GreaseMonkeyUrlMatcher.pattern" />
       <keyword name="HTMLGenerator" id="HTMLGenerator" ref="eric6.QScintilla.Exporters.ExporterHTML.html#HTMLGenerator" />
       <keyword name="HTMLGenerator (Constructor)" id="HTMLGenerator (Constructor)" ref="eric6.QScintilla.Exporters.ExporterHTML.html#HTMLGenerator.__init__" />
       <keyword name="HTMLGenerator.generate" id="HTMLGenerator.generate" ref="eric6.QScintilla.Exporters.ExporterHTML.html#HTMLGenerator.generate" />
@@ -7920,547 +6740,58 @@
       <keyword name="HashableWrapper" id="HashableWrapper" ref="eric6.Utilities.binplistlib.html#HashableWrapper" />
       <keyword name="HashableWrapper (Constructor)" id="HashableWrapper (Constructor)" ref="eric6.Utilities.binplistlib.html#HashableWrapper.__init__" />
       <keyword name="HashableWrapper.__repr__" id="HashableWrapper.__repr__" ref="eric6.Utilities.binplistlib.html#HashableWrapper.__repr__" />
-      <keyword name="HelpAppearancePage" id="HelpAppearancePage" ref="eric6.Preferences.ConfigurationPages.HelpAppearancePage.html#HelpAppearancePage" />
-      <keyword name="HelpAppearancePage (Constructor)" id="HelpAppearancePage (Constructor)" ref="eric6.Preferences.ConfigurationPages.HelpAppearancePage.html#HelpAppearancePage.__init__" />
-      <keyword name="HelpAppearancePage (Module)" id="HelpAppearancePage (Module)" ref="eric6.Preferences.ConfigurationPages.HelpAppearancePage.html" />
-      <keyword name="HelpAppearancePage.on_fixedFontButton_clicked" id="HelpAppearancePage.on_fixedFontButton_clicked" ref="eric6.Preferences.ConfigurationPages.HelpAppearancePage.html#HelpAppearancePage.on_fixedFontButton_clicked" />
-      <keyword name="HelpAppearancePage.on_standardFontButton_clicked" id="HelpAppearancePage.on_standardFontButton_clicked" ref="eric6.Preferences.ConfigurationPages.HelpAppearancePage.html#HelpAppearancePage.on_standardFontButton_clicked" />
-      <keyword name="HelpAppearancePage.save" id="HelpAppearancePage.save" ref="eric6.Preferences.ConfigurationPages.HelpAppearancePage.html#HelpAppearancePage.save" />
-      <keyword name="HelpAppearancePage.setMode" id="HelpAppearancePage.setMode" ref="eric6.Preferences.ConfigurationPages.HelpAppearancePage.html#HelpAppearancePage.setMode" />
-      <keyword name="HelpBrowser" id="HelpBrowser" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser" />
-      <keyword name="HelpBrowser (Constructor)" id="HelpBrowser (Constructor)" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__init__" />
-      <keyword name="HelpBrowser.__accessKeyShortcut" id="HelpBrowser.__accessKeyShortcut" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__accessKeyShortcut" />
-      <keyword name="HelpBrowser.__addExternalBinding" id="HelpBrowser.__addExternalBinding" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__addExternalBinding" />
-      <keyword name="HelpBrowser.__addSearchEngine" id="HelpBrowser.__addSearchEngine" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__addSearchEngine" />
-      <keyword name="HelpBrowser.__addSpeedDial" id="HelpBrowser.__addSpeedDial" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__addSpeedDial" />
-      <keyword name="HelpBrowser.__applyZoom" id="HelpBrowser.__applyZoom" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__applyZoom" />
-      <keyword name="HelpBrowser.__blockImage" id="HelpBrowser.__blockImage" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__blockImage" />
-      <keyword name="HelpBrowser.__bookmarkLink" id="HelpBrowser.__bookmarkLink" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__bookmarkLink" />
-      <keyword name="HelpBrowser.__checkForAccessKey" id="HelpBrowser.__checkForAccessKey" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__checkForAccessKey" />
-      <keyword name="HelpBrowser.__configureSpeedDial" id="HelpBrowser.__configureSpeedDial" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__configureSpeedDial" />
-      <keyword name="HelpBrowser.__copyImage" id="HelpBrowser.__copyImage" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__copyImage" />
-      <keyword name="HelpBrowser.__copyLink" id="HelpBrowser.__copyLink" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__copyLink" />
-      <keyword name="HelpBrowser.__copyLocation" id="HelpBrowser.__copyLocation" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__copyLocation" />
-      <keyword name="HelpBrowser.__currentEngineChanged" id="HelpBrowser.__currentEngineChanged" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__currentEngineChanged" />
-      <keyword name="HelpBrowser.__dataString" id="HelpBrowser.__dataString" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__dataString" />
-      <keyword name="HelpBrowser.__databaseQuotaExceeded" id="HelpBrowser.__databaseQuotaExceeded" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__databaseQuotaExceeded" />
-      <keyword name="HelpBrowser.__downloadImage" id="HelpBrowser.__downloadImage" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__downloadImage" />
-      <keyword name="HelpBrowser.__downloadLink" id="HelpBrowser.__downloadLink" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__downloadLink" />
-      <keyword name="HelpBrowser.__downloadMedia" id="HelpBrowser.__downloadMedia" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__downloadMedia" />
-      <keyword name="HelpBrowser.__downloadRequested" id="HelpBrowser.__downloadRequested" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__downloadRequested" />
-      <keyword name="HelpBrowser.__featurePermissionRequested" id="HelpBrowser.__featurePermissionRequested" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__featurePermissionRequested" />
-      <keyword name="HelpBrowser.__generatePrintPreviewClickedFrame" id="HelpBrowser.__generatePrintPreviewClickedFrame" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__generatePrintPreviewClickedFrame" />
-      <keyword name="HelpBrowser.__hideAccessKeys" id="HelpBrowser.__hideAccessKeys" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__hideAccessKeys" />
-      <keyword name="HelpBrowser.__isMediaElement" id="HelpBrowser.__isMediaElement" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__isMediaElement" />
-      <keyword name="HelpBrowser.__isUrlValid" id="HelpBrowser.__isUrlValid" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__isUrlValid" />
-      <keyword name="HelpBrowser.__levelForZoom" id="HelpBrowser.__levelForZoom" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__levelForZoom" />
-      <keyword name="HelpBrowser.__linkHovered" id="HelpBrowser.__linkHovered" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__linkHovered" />
-      <keyword name="HelpBrowser.__loadClickedFrame" id="HelpBrowser.__loadClickedFrame" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__loadClickedFrame" />
-      <keyword name="HelpBrowser.__loadFinished" id="HelpBrowser.__loadFinished" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__loadFinished" />
-      <keyword name="HelpBrowser.__loadProgress" id="HelpBrowser.__loadProgress" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__loadProgress" />
-      <keyword name="HelpBrowser.__loadStarted" id="HelpBrowser.__loadStarted" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__loadStarted" />
-      <keyword name="HelpBrowser.__makeAccessLabel" id="HelpBrowser.__makeAccessLabel" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__makeAccessLabel" />
-      <keyword name="HelpBrowser.__muteMedia" id="HelpBrowser.__muteMedia" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__muteMedia" />
-      <keyword name="HelpBrowser.__openLinkInNewTab" id="HelpBrowser.__openLinkInNewTab" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__openLinkInNewTab" />
-      <keyword name="HelpBrowser.__pauseMedia" id="HelpBrowser.__pauseMedia" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__pauseMedia" />
-      <keyword name="HelpBrowser.__printClickedFrame" id="HelpBrowser.__printClickedFrame" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__printClickedFrame" />
-      <keyword name="HelpBrowser.__printPdfClickedFrame" id="HelpBrowser.__printPdfClickedFrame" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__printPdfClickedFrame" />
-      <keyword name="HelpBrowser.__printPreviewClickedFrame" id="HelpBrowser.__printPreviewClickedFrame" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__printPreviewClickedFrame" />
-      <keyword name="HelpBrowser.__reloadAllSpeedDials" id="HelpBrowser.__reloadAllSpeedDials" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__reloadAllSpeedDials" />
-      <keyword name="HelpBrowser.__resetSpeedDials" id="HelpBrowser.__resetSpeedDials" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__resetSpeedDials" />
-      <keyword name="HelpBrowser.__searchRequested" id="HelpBrowser.__searchRequested" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__searchRequested" />
-      <keyword name="HelpBrowser.__sendLink" id="HelpBrowser.__sendLink" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__sendLink" />
-      <keyword name="HelpBrowser.__showAccessKeys" id="HelpBrowser.__showAccessKeys" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__showAccessKeys" />
-      <keyword name="HelpBrowser.__showClickedFrameSource" id="HelpBrowser.__showClickedFrameSource" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__showClickedFrameSource" />
-      <keyword name="HelpBrowser.__statusBarMessage" id="HelpBrowser.__statusBarMessage" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__statusBarMessage" />
-      <keyword name="HelpBrowser.__unsupportedContent" id="HelpBrowser.__unsupportedContent" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__unsupportedContent" />
-      <keyword name="HelpBrowser.__urlChanged" id="HelpBrowser.__urlChanged" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__urlChanged" />
-      <keyword name="HelpBrowser.__virusTotal" id="HelpBrowser.__virusTotal" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__virusTotal" />
-      <keyword name="HelpBrowser.__webInspector" id="HelpBrowser.__webInspector" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__webInspector" />
-      <keyword name="HelpBrowser.__zoomInClickedFrame" id="HelpBrowser.__zoomInClickedFrame" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__zoomInClickedFrame" />
-      <keyword name="HelpBrowser.__zoomOutClickedFrame" id="HelpBrowser.__zoomOutClickedFrame" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__zoomOutClickedFrame" />
-      <keyword name="HelpBrowser.__zoomResetClickedFrame" id="HelpBrowser.__zoomResetClickedFrame" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.__zoomResetClickedFrame" />
-      <keyword name="HelpBrowser.addBookmark" id="HelpBrowser.addBookmark" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.addBookmark" />
-      <keyword name="HelpBrowser.backward" id="HelpBrowser.backward" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.backward" />
-      <keyword name="HelpBrowser.checkRSS" id="HelpBrowser.checkRSS" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.checkRSS" />
-      <keyword name="HelpBrowser.clearHistory" id="HelpBrowser.clearHistory" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.clearHistory" />
-      <keyword name="HelpBrowser.closeWebInspector" id="HelpBrowser.closeWebInspector" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.closeWebInspector" />
-      <keyword name="HelpBrowser.contextMenuEvent" id="HelpBrowser.contextMenuEvent" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.contextMenuEvent" />
-      <keyword name="HelpBrowser.copy" id="HelpBrowser.copy" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.copy" />
-      <keyword name="HelpBrowser.createWindow" id="HelpBrowser.createWindow" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.createWindow" />
-      <keyword name="HelpBrowser.documentTitle" id="HelpBrowser.documentTitle" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.documentTitle" />
-      <keyword name="HelpBrowser.dragEnterEvent" id="HelpBrowser.dragEnterEvent" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.dragEnterEvent" />
-      <keyword name="HelpBrowser.dragMoveEvent" id="HelpBrowser.dragMoveEvent" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.dragMoveEvent" />
-      <keyword name="HelpBrowser.dropEvent" id="HelpBrowser.dropEvent" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.dropEvent" />
-      <keyword name="HelpBrowser.event" id="HelpBrowser.event" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.event" />
-      <keyword name="HelpBrowser.findNextPrev" id="HelpBrowser.findNextPrev" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.findNextPrev" />
-      <keyword name="HelpBrowser.focusOutEvent" id="HelpBrowser.focusOutEvent" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.focusOutEvent" />
-      <keyword name="HelpBrowser.forward" id="HelpBrowser.forward" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.forward" />
-      <keyword name="HelpBrowser.gestureEvent" id="HelpBrowser.gestureEvent" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.gestureEvent" />
-      <keyword name="HelpBrowser.getRSS" id="HelpBrowser.getRSS" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.getRSS" />
-      <keyword name="HelpBrowser.hasRSS" id="HelpBrowser.hasRSS" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.hasRSS" />
-      <keyword name="HelpBrowser.hasSelection" id="HelpBrowser.hasSelection" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.hasSelection" />
-      <keyword name="HelpBrowser.home" id="HelpBrowser.home" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.home" />
-      <keyword name="HelpBrowser.isBackwardAvailable" id="HelpBrowser.isBackwardAvailable" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.isBackwardAvailable" />
-      <keyword name="HelpBrowser.isForwardAvailable" id="HelpBrowser.isForwardAvailable" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.isForwardAvailable" />
-      <keyword name="HelpBrowser.isLoading" id="HelpBrowser.isLoading" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.isLoading" />
-      <keyword name="HelpBrowser.keyPressEvent" id="HelpBrowser.keyPressEvent" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.keyPressEvent" />
-      <keyword name="HelpBrowser.keyReleaseEvent" id="HelpBrowser.keyReleaseEvent" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.keyReleaseEvent" />
-      <keyword name="HelpBrowser.linkedResources" id="HelpBrowser.linkedResources" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.linkedResources" />
-      <keyword name="HelpBrowser.mousePressEvent" id="HelpBrowser.mousePressEvent" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.mousePressEvent" />
-      <keyword name="HelpBrowser.mouseReleaseEvent" id="HelpBrowser.mouseReleaseEvent" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.mouseReleaseEvent" />
-      <keyword name="HelpBrowser.preferencesChanged" id="HelpBrowser.preferencesChanged" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.preferencesChanged" />
-      <keyword name="HelpBrowser.progress" id="HelpBrowser.progress" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.progress" />
-      <keyword name="HelpBrowser.reload" id="HelpBrowser.reload" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.reload" />
-      <keyword name="HelpBrowser.saveAs" id="HelpBrowser.saveAs" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.saveAs" />
-      <keyword name="HelpBrowser.setSource" id="HelpBrowser.setSource" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.setSource" />
-      <keyword name="HelpBrowser.setZoomValue" id="HelpBrowser.setZoomValue" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.setZoomValue" />
-      <keyword name="HelpBrowser.source" id="HelpBrowser.source" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.source" />
-      <keyword name="HelpBrowser.wheelEvent" id="HelpBrowser.wheelEvent" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.wheelEvent" />
-      <keyword name="HelpBrowser.zoomIn" id="HelpBrowser.zoomIn" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.zoomIn" />
-      <keyword name="HelpBrowser.zoomOut" id="HelpBrowser.zoomOut" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.zoomOut" />
-      <keyword name="HelpBrowser.zoomReset" id="HelpBrowser.zoomReset" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.zoomReset" />
-      <keyword name="HelpBrowser.zoomValue" id="HelpBrowser.zoomValue" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpBrowser.zoomValue" />
-      <keyword name="HelpBrowserWV (Module)" id="HelpBrowserWV (Module)" ref="eric6.Helpviewer.HelpBrowserWV.html" />
-      <keyword name="HelpClearPrivateDataDialog" id="HelpClearPrivateDataDialog" ref="eric6.Helpviewer.HelpClearPrivateDataDialog.html#HelpClearPrivateDataDialog" />
-      <keyword name="HelpClearPrivateDataDialog (Constructor)" id="HelpClearPrivateDataDialog (Constructor)" ref="eric6.Helpviewer.HelpClearPrivateDataDialog.html#HelpClearPrivateDataDialog.__init__" />
-      <keyword name="HelpClearPrivateDataDialog (Module)" id="HelpClearPrivateDataDialog (Module)" ref="eric6.Helpviewer.HelpClearPrivateDataDialog.html" />
-      <keyword name="HelpClearPrivateDataDialog.getData" id="HelpClearPrivateDataDialog.getData" ref="eric6.Helpviewer.HelpClearPrivateDataDialog.html#HelpClearPrivateDataDialog.getData" />
-      <keyword name="HelpDocsInstaller" id="HelpDocsInstaller" ref="eric6.Helpviewer.HelpDocsInstaller.html#HelpDocsInstaller" />
       <keyword name="HelpDocsInstaller" id="HelpDocsInstaller" ref="eric6.WebBrowser.QtHelp.HelpDocsInstaller.html#HelpDocsInstaller" />
-      <keyword name="HelpDocsInstaller (Constructor)" id="HelpDocsInstaller (Constructor)" ref="eric6.Helpviewer.HelpDocsInstaller.html#HelpDocsInstaller.__init__" />
       <keyword name="HelpDocsInstaller (Constructor)" id="HelpDocsInstaller (Constructor)" ref="eric6.WebBrowser.QtHelp.HelpDocsInstaller.html#HelpDocsInstaller.__init__" />
-      <keyword name="HelpDocsInstaller (Module)" id="HelpDocsInstaller (Module)" ref="eric6.Helpviewer.HelpDocsInstaller.html" />
       <keyword name="HelpDocsInstaller (Module)" id="HelpDocsInstaller (Module)" ref="eric6.WebBrowser.QtHelp.HelpDocsInstaller.html" />
-      <keyword name="HelpDocsInstaller.__installEric6Doc" id="HelpDocsInstaller.__installEric6Doc" ref="eric6.Helpviewer.HelpDocsInstaller.html#HelpDocsInstaller.__installEric6Doc" />
       <keyword name="HelpDocsInstaller.__installEric6Doc" id="HelpDocsInstaller.__installEric6Doc" ref="eric6.WebBrowser.QtHelp.HelpDocsInstaller.html#HelpDocsInstaller.__installEric6Doc" />
-      <keyword name="HelpDocsInstaller.__installQtDoc" id="HelpDocsInstaller.__installQtDoc" ref="eric6.Helpviewer.HelpDocsInstaller.html#HelpDocsInstaller.__installQtDoc" />
       <keyword name="HelpDocsInstaller.__installQtDoc" id="HelpDocsInstaller.__installQtDoc" ref="eric6.WebBrowser.QtHelp.HelpDocsInstaller.html#HelpDocsInstaller.__installQtDoc" />
-      <keyword name="HelpDocsInstaller.installDocs" id="HelpDocsInstaller.installDocs" ref="eric6.Helpviewer.HelpDocsInstaller.html#HelpDocsInstaller.installDocs" />
       <keyword name="HelpDocsInstaller.installDocs" id="HelpDocsInstaller.installDocs" ref="eric6.WebBrowser.QtHelp.HelpDocsInstaller.html#HelpDocsInstaller.installDocs" />
-      <keyword name="HelpDocsInstaller.run" id="HelpDocsInstaller.run" ref="eric6.Helpviewer.HelpDocsInstaller.html#HelpDocsInstaller.run" />
       <keyword name="HelpDocsInstaller.run" id="HelpDocsInstaller.run" ref="eric6.WebBrowser.QtHelp.HelpDocsInstaller.html#HelpDocsInstaller.run" />
-      <keyword name="HelpDocsInstaller.stop" id="HelpDocsInstaller.stop" ref="eric6.Helpviewer.HelpDocsInstaller.html#HelpDocsInstaller.stop" />
       <keyword name="HelpDocsInstaller.stop" id="HelpDocsInstaller.stop" ref="eric6.WebBrowser.QtHelp.HelpDocsInstaller.html#HelpDocsInstaller.stop" />
       <keyword name="HelpDocumentationPage" id="HelpDocumentationPage" ref="eric6.Preferences.ConfigurationPages.HelpDocumentationPage.html#HelpDocumentationPage" />
       <keyword name="HelpDocumentationPage (Constructor)" id="HelpDocumentationPage (Constructor)" ref="eric6.Preferences.ConfigurationPages.HelpDocumentationPage.html#HelpDocumentationPage.__init__" />
       <keyword name="HelpDocumentationPage (Module)" id="HelpDocumentationPage (Module)" ref="eric6.Preferences.ConfigurationPages.HelpDocumentationPage.html" />
       <keyword name="HelpDocumentationPage.save" id="HelpDocumentationPage.save" ref="eric6.Preferences.ConfigurationPages.HelpDocumentationPage.html#HelpDocumentationPage.save" />
-      <keyword name="HelpFlashCookieManagerPage" id="HelpFlashCookieManagerPage" ref="eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage.html#HelpFlashCookieManagerPage" />
-      <keyword name="HelpFlashCookieManagerPage (Constructor)" id="HelpFlashCookieManagerPage (Constructor)" ref="eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage.html#HelpFlashCookieManagerPage.__init__" />
-      <keyword name="HelpFlashCookieManagerPage (Module)" id="HelpFlashCookieManagerPage (Module)" ref="eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage.html" />
-      <keyword name="HelpFlashCookieManagerPage.save" id="HelpFlashCookieManagerPage.save" ref="eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage.html#HelpFlashCookieManagerPage.save" />
-      <keyword name="HelpIndexWidget" id="HelpIndexWidget" ref="eric6.Helpviewer.HelpIndexWidget.html#HelpIndexWidget" />
       <keyword name="HelpIndexWidget" id="HelpIndexWidget" ref="eric6.WebBrowser.QtHelp.HelpIndexWidget.html#HelpIndexWidget" />
-      <keyword name="HelpIndexWidget (Constructor)" id="HelpIndexWidget (Constructor)" ref="eric6.Helpviewer.HelpIndexWidget.html#HelpIndexWidget.__init__" />
       <keyword name="HelpIndexWidget (Constructor)" id="HelpIndexWidget (Constructor)" ref="eric6.WebBrowser.QtHelp.HelpIndexWidget.html#HelpIndexWidget.__init__" />
-      <keyword name="HelpIndexWidget (Module)" id="HelpIndexWidget (Module)" ref="eric6.Helpviewer.HelpIndexWidget.html" />
       <keyword name="HelpIndexWidget (Module)" id="HelpIndexWidget (Module)" ref="eric6.WebBrowser.QtHelp.HelpIndexWidget.html" />
-      <keyword name="HelpIndexWidget.__disableSearchEdit" id="HelpIndexWidget.__disableSearchEdit" ref="eric6.Helpviewer.HelpIndexWidget.html#HelpIndexWidget.__disableSearchEdit" />
       <keyword name="HelpIndexWidget.__disableSearchEdit" id="HelpIndexWidget.__disableSearchEdit" ref="eric6.WebBrowser.QtHelp.HelpIndexWidget.html#HelpIndexWidget.__disableSearchEdit" />
-      <keyword name="HelpIndexWidget.__enableSearchEdit" id="HelpIndexWidget.__enableSearchEdit" ref="eric6.Helpviewer.HelpIndexWidget.html#HelpIndexWidget.__enableSearchEdit" />
       <keyword name="HelpIndexWidget.__enableSearchEdit" id="HelpIndexWidget.__enableSearchEdit" ref="eric6.WebBrowser.QtHelp.HelpIndexWidget.html#HelpIndexWidget.__enableSearchEdit" />
-      <keyword name="HelpIndexWidget.__filterIndices" id="HelpIndexWidget.__filterIndices" ref="eric6.Helpviewer.HelpIndexWidget.html#HelpIndexWidget.__filterIndices" />
       <keyword name="HelpIndexWidget.__filterIndices" id="HelpIndexWidget.__filterIndices" ref="eric6.WebBrowser.QtHelp.HelpIndexWidget.html#HelpIndexWidget.__filterIndices" />
-      <keyword name="HelpIndexWidget.__linkActivated" id="HelpIndexWidget.__linkActivated" ref="eric6.Helpviewer.HelpIndexWidget.html#HelpIndexWidget.__linkActivated" />
       <keyword name="HelpIndexWidget.__linkActivated" id="HelpIndexWidget.__linkActivated" ref="eric6.WebBrowser.QtHelp.HelpIndexWidget.html#HelpIndexWidget.__linkActivated" />
-      <keyword name="HelpIndexWidget.__linksActivated" id="HelpIndexWidget.__linksActivated" ref="eric6.Helpviewer.HelpIndexWidget.html#HelpIndexWidget.__linksActivated" />
       <keyword name="HelpIndexWidget.__linksActivated" id="HelpIndexWidget.__linksActivated" ref="eric6.WebBrowser.QtHelp.HelpIndexWidget.html#HelpIndexWidget.__linksActivated" />
-      <keyword name="HelpIndexWidget.__selectLink" id="HelpIndexWidget.__selectLink" ref="eric6.Helpviewer.HelpIndexWidget.html#HelpIndexWidget.__selectLink" />
       <keyword name="HelpIndexWidget.__selectLink" id="HelpIndexWidget.__selectLink" ref="eric6.WebBrowser.QtHelp.HelpIndexWidget.html#HelpIndexWidget.__selectLink" />
-      <keyword name="HelpIndexWidget.__showContextMenu" id="HelpIndexWidget.__showContextMenu" ref="eric6.Helpviewer.HelpIndexWidget.html#HelpIndexWidget.__showContextMenu" />
       <keyword name="HelpIndexWidget.__showContextMenu" id="HelpIndexWidget.__showContextMenu" ref="eric6.WebBrowser.QtHelp.HelpIndexWidget.html#HelpIndexWidget.__showContextMenu" />
-      <keyword name="HelpIndexWidget.eventFilter" id="HelpIndexWidget.eventFilter" ref="eric6.Helpviewer.HelpIndexWidget.html#HelpIndexWidget.eventFilter" />
       <keyword name="HelpIndexWidget.eventFilter" id="HelpIndexWidget.eventFilter" ref="eric6.WebBrowser.QtHelp.HelpIndexWidget.html#HelpIndexWidget.eventFilter" />
-      <keyword name="HelpIndexWidget.focusInEvent" id="HelpIndexWidget.focusInEvent" ref="eric6.Helpviewer.HelpIndexWidget.html#HelpIndexWidget.focusInEvent" />
       <keyword name="HelpIndexWidget.focusInEvent" id="HelpIndexWidget.focusInEvent" ref="eric6.WebBrowser.QtHelp.HelpIndexWidget.html#HelpIndexWidget.focusInEvent" />
-      <keyword name="HelpInspector" id="HelpInspector" ref="eric6.Helpviewer.HelpInspector.html#HelpInspector" />
-      <keyword name="HelpInspector (Constructor)" id="HelpInspector (Constructor)" ref="eric6.Helpviewer.HelpInspector.html#HelpInspector.__init__" />
-      <keyword name="HelpInspector (Module)" id="HelpInspector (Module)" ref="eric6.Helpviewer.HelpInspector.html" />
-      <keyword name="HelpInspector.__reloadGeometry" id="HelpInspector.__reloadGeometry" ref="eric6.Helpviewer.HelpInspector.html#HelpInspector.__reloadGeometry" />
-      <keyword name="HelpInspector.closeEvent" id="HelpInspector.closeEvent" ref="eric6.Helpviewer.HelpInspector.html#HelpInspector.closeEvent" />
-      <keyword name="HelpInterfacePage" id="HelpInterfacePage" ref="eric6.Preferences.ConfigurationPages.HelpInterfacePage.html#HelpInterfacePage" />
-      <keyword name="HelpInterfacePage (Constructor)" id="HelpInterfacePage (Constructor)" ref="eric6.Preferences.ConfigurationPages.HelpInterfacePage.html#HelpInterfacePage.__init__" />
-      <keyword name="HelpInterfacePage (Module)" id="HelpInterfacePage (Module)" ref="eric6.Preferences.ConfigurationPages.HelpInterfacePage.html" />
-      <keyword name="HelpInterfacePage.__populateStyleCombo" id="HelpInterfacePage.__populateStyleCombo" ref="eric6.Preferences.ConfigurationPages.HelpInterfacePage.html#HelpInterfacePage.__populateStyleCombo" />
-      <keyword name="HelpInterfacePage.save" id="HelpInterfacePage.save" ref="eric6.Preferences.ConfigurationPages.HelpInterfacePage.html#HelpInterfacePage.save" />
-      <keyword name="HelpLanguagesDialog" id="HelpLanguagesDialog" ref="eric6.Helpviewer.HelpLanguagesDialog.html#HelpLanguagesDialog" />
-      <keyword name="HelpLanguagesDialog (Constructor)" id="HelpLanguagesDialog (Constructor)" ref="eric6.Helpviewer.HelpLanguagesDialog.html#HelpLanguagesDialog.__init__" />
-      <keyword name="HelpLanguagesDialog (Module)" id="HelpLanguagesDialog (Module)" ref="eric6.Helpviewer.HelpLanguagesDialog.html" />
-      <keyword name="HelpLanguagesDialog.__currentChanged" id="HelpLanguagesDialog.__currentChanged" ref="eric6.Helpviewer.HelpLanguagesDialog.html#HelpLanguagesDialog.__currentChanged" />
-      <keyword name="HelpLanguagesDialog.accept" id="HelpLanguagesDialog.accept" ref="eric6.Helpviewer.HelpLanguagesDialog.html#HelpLanguagesDialog.accept" />
-      <keyword name="HelpLanguagesDialog.defaultAcceptLanguages" id="HelpLanguagesDialog.defaultAcceptLanguages" ref="eric6.Helpviewer.HelpLanguagesDialog.html#HelpLanguagesDialog.defaultAcceptLanguages" />
-      <keyword name="HelpLanguagesDialog.expand" id="HelpLanguagesDialog.expand" ref="eric6.Helpviewer.HelpLanguagesDialog.html#HelpLanguagesDialog.expand" />
-      <keyword name="HelpLanguagesDialog.httpString" id="HelpLanguagesDialog.httpString" ref="eric6.Helpviewer.HelpLanguagesDialog.html#HelpLanguagesDialog.httpString" />
-      <keyword name="HelpLanguagesDialog.on_addButton_clicked" id="HelpLanguagesDialog.on_addButton_clicked" ref="eric6.Helpviewer.HelpLanguagesDialog.html#HelpLanguagesDialog.on_addButton_clicked" />
-      <keyword name="HelpLanguagesDialog.on_downButton_clicked" id="HelpLanguagesDialog.on_downButton_clicked" ref="eric6.Helpviewer.HelpLanguagesDialog.html#HelpLanguagesDialog.on_downButton_clicked" />
-      <keyword name="HelpLanguagesDialog.on_removeButton_clicked" id="HelpLanguagesDialog.on_removeButton_clicked" ref="eric6.Helpviewer.HelpLanguagesDialog.html#HelpLanguagesDialog.on_removeButton_clicked" />
-      <keyword name="HelpLanguagesDialog.on_upButton_clicked" id="HelpLanguagesDialog.on_upButton_clicked" ref="eric6.Helpviewer.HelpLanguagesDialog.html#HelpLanguagesDialog.on_upButton_clicked" />
-      <keyword name="HelpSearchWidget" id="HelpSearchWidget" ref="eric6.Helpviewer.HelpSearchWidget.html#HelpSearchWidget" />
       <keyword name="HelpSearchWidget" id="HelpSearchWidget" ref="eric6.WebBrowser.QtHelp.HelpSearchWidget.html#HelpSearchWidget" />
-      <keyword name="HelpSearchWidget (Constructor)" id="HelpSearchWidget (Constructor)" ref="eric6.Helpviewer.HelpSearchWidget.html#HelpSearchWidget.__init__" />
       <keyword name="HelpSearchWidget (Constructor)" id="HelpSearchWidget (Constructor)" ref="eric6.WebBrowser.QtHelp.HelpSearchWidget.html#HelpSearchWidget.__init__" />
-      <keyword name="HelpSearchWidget (Module)" id="HelpSearchWidget (Module)" ref="eric6.Helpviewer.HelpSearchWidget.html" />
       <keyword name="HelpSearchWidget (Module)" id="HelpSearchWidget (Module)" ref="eric6.WebBrowser.QtHelp.HelpSearchWidget.html" />
-      <keyword name="HelpSearchWidget.__linkActivated" id="HelpSearchWidget.__linkActivated" ref="eric6.Helpviewer.HelpSearchWidget.html#HelpSearchWidget.__linkActivated" />
       <keyword name="HelpSearchWidget.__linkActivated" id="HelpSearchWidget.__linkActivated" ref="eric6.WebBrowser.QtHelp.HelpSearchWidget.html#HelpSearchWidget.__linkActivated" />
-      <keyword name="HelpSearchWidget.__search" id="HelpSearchWidget.__search" ref="eric6.Helpviewer.HelpSearchWidget.html#HelpSearchWidget.__search" />
       <keyword name="HelpSearchWidget.__search" id="HelpSearchWidget.__search" ref="eric6.WebBrowser.QtHelp.HelpSearchWidget.html#HelpSearchWidget.__search" />
-      <keyword name="HelpSearchWidget.__searchingFinished" id="HelpSearchWidget.__searchingFinished" ref="eric6.Helpviewer.HelpSearchWidget.html#HelpSearchWidget.__searchingFinished" />
       <keyword name="HelpSearchWidget.__searchingFinished" id="HelpSearchWidget.__searchingFinished" ref="eric6.WebBrowser.QtHelp.HelpSearchWidget.html#HelpSearchWidget.__searchingFinished" />
-      <keyword name="HelpSearchWidget.__searchingStarted" id="HelpSearchWidget.__searchingStarted" ref="eric6.Helpviewer.HelpSearchWidget.html#HelpSearchWidget.__searchingStarted" />
       <keyword name="HelpSearchWidget.__searchingStarted" id="HelpSearchWidget.__searchingStarted" ref="eric6.WebBrowser.QtHelp.HelpSearchWidget.html#HelpSearchWidget.__searchingStarted" />
-      <keyword name="HelpSearchWidget.contextMenuEvent" id="HelpSearchWidget.contextMenuEvent" ref="eric6.Helpviewer.HelpSearchWidget.html#HelpSearchWidget.contextMenuEvent" />
       <keyword name="HelpSearchWidget.contextMenuEvent" id="HelpSearchWidget.contextMenuEvent" ref="eric6.WebBrowser.QtHelp.HelpSearchWidget.html#HelpSearchWidget.contextMenuEvent" />
-      <keyword name="HelpSearchWidget.keyPressEvent" id="HelpSearchWidget.keyPressEvent" ref="eric6.Helpviewer.HelpSearchWidget.html#HelpSearchWidget.keyPressEvent" />
       <keyword name="HelpSearchWidget.keyPressEvent" id="HelpSearchWidget.keyPressEvent" ref="eric6.WebBrowser.QtHelp.HelpSearchWidget.html#HelpSearchWidget.keyPressEvent" />
-      <keyword name="HelpSingleApplication (Module)" id="HelpSingleApplication (Module)" ref="eric6.Helpviewer.HelpSingleApplication.html" />
-      <keyword name="HelpSingleApplicationClient" id="HelpSingleApplicationClient" ref="eric6.Helpviewer.HelpSingleApplication.html#HelpSingleApplicationClient" />
-      <keyword name="HelpSingleApplicationClient (Constructor)" id="HelpSingleApplicationClient (Constructor)" ref="eric6.Helpviewer.HelpSingleApplication.html#HelpSingleApplicationClient.__init__" />
-      <keyword name="HelpSingleApplicationClient.__loadUrl" id="HelpSingleApplicationClient.__loadUrl" ref="eric6.Helpviewer.HelpSingleApplication.html#HelpSingleApplicationClient.__loadUrl" />
-      <keyword name="HelpSingleApplicationClient.__newTab" id="HelpSingleApplicationClient.__newTab" ref="eric6.Helpviewer.HelpSingleApplication.html#HelpSingleApplicationClient.__newTab" />
-      <keyword name="HelpSingleApplicationClient.__search" id="HelpSingleApplicationClient.__search" ref="eric6.Helpviewer.HelpSingleApplication.html#HelpSingleApplicationClient.__search" />
-      <keyword name="HelpSingleApplicationClient.__shutdown" id="HelpSingleApplicationClient.__shutdown" ref="eric6.Helpviewer.HelpSingleApplication.html#HelpSingleApplicationClient.__shutdown" />
-      <keyword name="HelpSingleApplicationClient.processArgs" id="HelpSingleApplicationClient.processArgs" ref="eric6.Helpviewer.HelpSingleApplication.html#HelpSingleApplicationClient.processArgs" />
-      <keyword name="HelpSingleApplicationServer" id="HelpSingleApplicationServer" ref="eric6.Helpviewer.HelpSingleApplication.html#HelpSingleApplicationServer" />
-      <keyword name="HelpSingleApplicationServer (Constructor)" id="HelpSingleApplicationServer (Constructor)" ref="eric6.Helpviewer.HelpSingleApplication.html#HelpSingleApplicationServer.__init__" />
-      <keyword name="HelpSingleApplicationServer.__saLoadUrl" id="HelpSingleApplicationServer.__saLoadUrl" ref="eric6.Helpviewer.HelpSingleApplication.html#HelpSingleApplicationServer.__saLoadUrl" />
-      <keyword name="HelpSingleApplicationServer.__saNewTab" id="HelpSingleApplicationServer.__saNewTab" ref="eric6.Helpviewer.HelpSingleApplication.html#HelpSingleApplicationServer.__saNewTab" />
-      <keyword name="HelpSingleApplicationServer.__saSearch" id="HelpSingleApplicationServer.__saSearch" ref="eric6.Helpviewer.HelpSingleApplication.html#HelpSingleApplicationServer.__saSearch" />
-      <keyword name="HelpSingleApplicationServer.__saShutdown" id="HelpSingleApplicationServer.__saShutdown" ref="eric6.Helpviewer.HelpSingleApplication.html#HelpSingleApplicationServer.__saShutdown" />
-      <keyword name="HelpSingleApplicationServer.handleCommand" id="HelpSingleApplicationServer.handleCommand" ref="eric6.Helpviewer.HelpSingleApplication.html#HelpSingleApplicationServer.handleCommand" />
-      <keyword name="HelpSnap (Module)" id="HelpSnap (Module)" ref="eric6.Helpviewer.HelpSnap.html" />
-      <keyword name="HelpTabBar" id="HelpTabBar" ref="eric6.Helpviewer.HelpTabBar.html#HelpTabBar" />
-      <keyword name="HelpTabBar (Constructor)" id="HelpTabBar (Constructor)" ref="eric6.Helpviewer.HelpTabBar.html#HelpTabBar.__init__" />
-      <keyword name="HelpTabBar (Module)" id="HelpTabBar (Module)" ref="eric6.Helpviewer.HelpTabBar.html" />
-      <keyword name="HelpTabBar.__hidePreview" id="HelpTabBar.__hidePreview" ref="eric6.Helpviewer.HelpTabBar.html#HelpTabBar.__hidePreview" />
-      <keyword name="HelpTabBar.__showTabPreview" id="HelpTabBar.__showTabPreview" ref="eric6.Helpviewer.HelpTabBar.html#HelpTabBar.__showTabPreview" />
-      <keyword name="HelpTabBar.event" id="HelpTabBar.event" ref="eric6.Helpviewer.HelpTabBar.html#HelpTabBar.event" />
-      <keyword name="HelpTabBar.leaveEvent" id="HelpTabBar.leaveEvent" ref="eric6.Helpviewer.HelpTabBar.html#HelpTabBar.leaveEvent" />
-      <keyword name="HelpTabBar.mouseMoveEvent" id="HelpTabBar.mouseMoveEvent" ref="eric6.Helpviewer.HelpTabBar.html#HelpTabBar.mouseMoveEvent" />
-      <keyword name="HelpTabBar.mousePressEvent" id="HelpTabBar.mousePressEvent" ref="eric6.Helpviewer.HelpTabBar.html#HelpTabBar.mousePressEvent" />
-      <keyword name="HelpTabBar.tabRemoved" id="HelpTabBar.tabRemoved" ref="eric6.Helpviewer.HelpTabBar.html#HelpTabBar.tabRemoved" />
-      <keyword name="HelpTabWidget" id="HelpTabWidget" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget" />
-      <keyword name="HelpTabWidget (Constructor)" id="HelpTabWidget (Constructor)" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__init__" />
-      <keyword name="HelpTabWidget (Module)" id="HelpTabWidget (Module)" ref="eric6.Helpviewer.HelpTabWidget.html" />
-      <keyword name="HelpTabWidget.__aboutToShowClosedTabsMenu" id="HelpTabWidget.__aboutToShowClosedTabsMenu" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__aboutToShowClosedTabsMenu" />
-      <keyword name="HelpTabWidget.__closedTabAvailable" id="HelpTabWidget.__closedTabAvailable" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__closedTabAvailable" />
-      <keyword name="HelpTabWidget.__currentChanged" id="HelpTabWidget.__currentChanged" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__currentChanged" />
-      <keyword name="HelpTabWidget.__elide" id="HelpTabWidget.__elide" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__elide" />
-      <keyword name="HelpTabWidget.__guessUrlFromPath" id="HelpTabWidget.__guessUrlFromPath" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__guessUrlFromPath" />
-      <keyword name="HelpTabWidget.__iconChanged" id="HelpTabWidget.__iconChanged" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__iconChanged" />
-      <keyword name="HelpTabWidget.__initTabContextMenu" id="HelpTabWidget.__initTabContextMenu" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__initTabContextMenu" />
-      <keyword name="HelpTabWidget.__lineEditReturnPressed" id="HelpTabWidget.__lineEditReturnPressed" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__lineEditReturnPressed" />
-      <keyword name="HelpTabWidget.__loadFinished" id="HelpTabWidget.__loadFinished" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__loadFinished" />
-      <keyword name="HelpTabWidget.__loadStarted" id="HelpTabWidget.__loadStarted" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__loadStarted" />
-      <keyword name="HelpTabWidget.__navigationMenuTriggered" id="HelpTabWidget.__navigationMenuTriggered" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__navigationMenuTriggered" />
-      <keyword name="HelpTabWidget.__newBrowser" id="HelpTabWidget.__newBrowser" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__newBrowser" />
-      <keyword name="HelpTabWidget.__pathSelected" id="HelpTabWidget.__pathSelected" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__pathSelected" />
-      <keyword name="HelpTabWidget.__printPdfRequested" id="HelpTabWidget.__printPdfRequested" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__printPdfRequested" />
-      <keyword name="HelpTabWidget.__printPreview" id="HelpTabWidget.__printPreview" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__printPreview" />
-      <keyword name="HelpTabWidget.__printRequested" id="HelpTabWidget.__printRequested" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__printRequested" />
-      <keyword name="HelpTabWidget.__showContextMenu" id="HelpTabWidget.__showContextMenu" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__showContextMenu" />
-      <keyword name="HelpTabWidget.__showNavigationMenu" id="HelpTabWidget.__showNavigationMenu" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__showNavigationMenu" />
-      <keyword name="HelpTabWidget.__sourceChanged" id="HelpTabWidget.__sourceChanged" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__sourceChanged" />
-      <keyword name="HelpTabWidget.__tabContextMenuClone" id="HelpTabWidget.__tabContextMenuClone" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__tabContextMenuClone" />
-      <keyword name="HelpTabWidget.__tabContextMenuClose" id="HelpTabWidget.__tabContextMenuClose" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__tabContextMenuClose" />
-      <keyword name="HelpTabWidget.__tabContextMenuCloseOthers" id="HelpTabWidget.__tabContextMenuCloseOthers" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__tabContextMenuCloseOthers" />
-      <keyword name="HelpTabWidget.__tabContextMenuMoveLeft" id="HelpTabWidget.__tabContextMenuMoveLeft" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__tabContextMenuMoveLeft" />
-      <keyword name="HelpTabWidget.__tabContextMenuMoveRight" id="HelpTabWidget.__tabContextMenuMoveRight" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__tabContextMenuMoveRight" />
-      <keyword name="HelpTabWidget.__tabContextMenuPrint" id="HelpTabWidget.__tabContextMenuPrint" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__tabContextMenuPrint" />
-      <keyword name="HelpTabWidget.__tabContextMenuPrintPdf" id="HelpTabWidget.__tabContextMenuPrintPdf" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__tabContextMenuPrintPdf" />
-      <keyword name="HelpTabWidget.__tabContextMenuPrintPreview" id="HelpTabWidget.__tabContextMenuPrintPreview" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__tabContextMenuPrintPreview" />
-      <keyword name="HelpTabWidget.__titleChanged" id="HelpTabWidget.__titleChanged" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__titleChanged" />
-      <keyword name="HelpTabWidget.__windowCloseRequested" id="HelpTabWidget.__windowCloseRequested" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.__windowCloseRequested" />
-      <keyword name="HelpTabWidget.browserAt" id="HelpTabWidget.browserAt" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.browserAt" />
-      <keyword name="HelpTabWidget.browsers" id="HelpTabWidget.browsers" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.browsers" />
-      <keyword name="HelpTabWidget.canRestoreClosedTab" id="HelpTabWidget.canRestoreClosedTab" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.canRestoreClosedTab" />
-      <keyword name="HelpTabWidget.clearClosedTabsList" id="HelpTabWidget.clearClosedTabsList" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.clearClosedTabsList" />
-      <keyword name="HelpTabWidget.closeAllBrowsers" id="HelpTabWidget.closeAllBrowsers" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.closeAllBrowsers" />
-      <keyword name="HelpTabWidget.closeBrowser" id="HelpTabWidget.closeBrowser" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.closeBrowser" />
-      <keyword name="HelpTabWidget.closeBrowserAt" id="HelpTabWidget.closeBrowserAt" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.closeBrowserAt" />
-      <keyword name="HelpTabWidget.closedTabsManager" id="HelpTabWidget.closedTabsManager" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.closedTabsManager" />
-      <keyword name="HelpTabWidget.currentBrowser" id="HelpTabWidget.currentBrowser" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.currentBrowser" />
-      <keyword name="HelpTabWidget.currentUrlBar" id="HelpTabWidget.currentUrlBar" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.currentUrlBar" />
-      <keyword name="HelpTabWidget.getSourceFileList" id="HelpTabWidget.getSourceFileList" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.getSourceFileList" />
-      <keyword name="HelpTabWidget.newBrowser" id="HelpTabWidget.newBrowser" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.newBrowser" />
-      <keyword name="HelpTabWidget.newBrowserAfter" id="HelpTabWidget.newBrowserAfter" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.newBrowserAfter" />
-      <keyword name="HelpTabWidget.preferencesChanged" id="HelpTabWidget.preferencesChanged" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.preferencesChanged" />
-      <keyword name="HelpTabWidget.printBrowser" id="HelpTabWidget.printBrowser" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.printBrowser" />
-      <keyword name="HelpTabWidget.printBrowserPdf" id="HelpTabWidget.printBrowserPdf" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.printBrowserPdf" />
-      <keyword name="HelpTabWidget.printPreviewBrowser" id="HelpTabWidget.printPreviewBrowser" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.printPreviewBrowser" />
-      <keyword name="HelpTabWidget.reloadAllBrowsers" id="HelpTabWidget.reloadAllBrowsers" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.reloadAllBrowsers" />
-      <keyword name="HelpTabWidget.restoreAllClosedTabs" id="HelpTabWidget.restoreAllClosedTabs" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.restoreAllClosedTabs" />
-      <keyword name="HelpTabWidget.restoreClosedTab" id="HelpTabWidget.restoreClosedTab" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.restoreClosedTab" />
-      <keyword name="HelpTabWidget.shallShutDown" id="HelpTabWidget.shallShutDown" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.shallShutDown" />
-      <keyword name="HelpTabWidget.stackedUrlBar" id="HelpTabWidget.stackedUrlBar" ref="eric6.Helpviewer.HelpTabWidget.html#HelpTabWidget.stackedUrlBar" />
-      <keyword name="HelpTocWidget" id="HelpTocWidget" ref="eric6.Helpviewer.HelpTocWidget.html#HelpTocWidget" />
       <keyword name="HelpTocWidget" id="HelpTocWidget" ref="eric6.WebBrowser.QtHelp.HelpTocWidget.html#HelpTocWidget" />
-      <keyword name="HelpTocWidget (Constructor)" id="HelpTocWidget (Constructor)" ref="eric6.Helpviewer.HelpTocWidget.html#HelpTocWidget.__init__" />
       <keyword name="HelpTocWidget (Constructor)" id="HelpTocWidget (Constructor)" ref="eric6.WebBrowser.QtHelp.HelpTocWidget.html#HelpTocWidget.__init__" />
-      <keyword name="HelpTocWidget (Module)" id="HelpTocWidget (Module)" ref="eric6.Helpviewer.HelpTocWidget.html" />
       <keyword name="HelpTocWidget (Module)" id="HelpTocWidget (Module)" ref="eric6.WebBrowser.QtHelp.HelpTocWidget.html" />
       <keyword name="HelpTocWidget.__contentsCreated" id="HelpTocWidget.__contentsCreated" ref="eric6.WebBrowser.QtHelp.HelpTocWidget.html#HelpTocWidget.__contentsCreated" />
-      <keyword name="HelpTocWidget.__expandTOC" id="HelpTocWidget.__expandTOC" ref="eric6.Helpviewer.HelpTocWidget.html#HelpTocWidget.__expandTOC" />
       <keyword name="HelpTocWidget.__expandTOC" id="HelpTocWidget.__expandTOC" ref="eric6.WebBrowser.QtHelp.HelpTocWidget.html#HelpTocWidget.__expandTOC" />
-      <keyword name="HelpTocWidget.__linkActivated" id="HelpTocWidget.__linkActivated" ref="eric6.Helpviewer.HelpTocWidget.html#HelpTocWidget.__linkActivated" />
       <keyword name="HelpTocWidget.__linkActivated" id="HelpTocWidget.__linkActivated" ref="eric6.WebBrowser.QtHelp.HelpTocWidget.html#HelpTocWidget.__linkActivated" />
-      <keyword name="HelpTocWidget.__showContextMenu" id="HelpTocWidget.__showContextMenu" ref="eric6.Helpviewer.HelpTocWidget.html#HelpTocWidget.__showContextMenu" />
       <keyword name="HelpTocWidget.__showContextMenu" id="HelpTocWidget.__showContextMenu" ref="eric6.WebBrowser.QtHelp.HelpTocWidget.html#HelpTocWidget.__showContextMenu" />
-      <keyword name="HelpTocWidget.expandToDepth" id="HelpTocWidget.expandToDepth" ref="eric6.Helpviewer.HelpTocWidget.html#HelpTocWidget.expandToDepth" />
       <keyword name="HelpTocWidget.expandToDepth" id="HelpTocWidget.expandToDepth" ref="eric6.WebBrowser.QtHelp.HelpTocWidget.html#HelpTocWidget.expandToDepth" />
-      <keyword name="HelpTocWidget.focusInEvent" id="HelpTocWidget.focusInEvent" ref="eric6.Helpviewer.HelpTocWidget.html#HelpTocWidget.focusInEvent" />
       <keyword name="HelpTocWidget.focusInEvent" id="HelpTocWidget.focusInEvent" ref="eric6.WebBrowser.QtHelp.HelpTocWidget.html#HelpTocWidget.focusInEvent" />
-      <keyword name="HelpTocWidget.itemClicked" id="HelpTocWidget.itemClicked" ref="eric6.Helpviewer.HelpTocWidget.html#HelpTocWidget.itemClicked" />
-      <keyword name="HelpTocWidget.keyPressEvent" id="HelpTocWidget.keyPressEvent" ref="eric6.Helpviewer.HelpTocWidget.html#HelpTocWidget.keyPressEvent" />
       <keyword name="HelpTocWidget.keyPressEvent" id="HelpTocWidget.keyPressEvent" ref="eric6.WebBrowser.QtHelp.HelpTocWidget.html#HelpTocWidget.keyPressEvent" />
-      <keyword name="HelpTocWidget.syncToContent" id="HelpTocWidget.syncToContent" ref="eric6.Helpviewer.HelpTocWidget.html#HelpTocWidget.syncToContent" />
       <keyword name="HelpTocWidget.syncToContent" id="HelpTocWidget.syncToContent" ref="eric6.WebBrowser.QtHelp.HelpTocWidget.html#HelpTocWidget.syncToContent" />
-      <keyword name="HelpTopicDialog" id="HelpTopicDialog" ref="eric6.Helpviewer.HelpTopicDialog.html#HelpTopicDialog" />
       <keyword name="HelpTopicDialog" id="HelpTopicDialog" ref="eric6.WebBrowser.QtHelp.HelpTopicDialog.html#HelpTopicDialog" />
-      <keyword name="HelpTopicDialog (Constructor)" id="HelpTopicDialog (Constructor)" ref="eric6.Helpviewer.HelpTopicDialog.html#HelpTopicDialog.__init__" />
       <keyword name="HelpTopicDialog (Constructor)" id="HelpTopicDialog (Constructor)" ref="eric6.WebBrowser.QtHelp.HelpTopicDialog.html#HelpTopicDialog.__init__" />
-      <keyword name="HelpTopicDialog (Module)" id="HelpTopicDialog (Module)" ref="eric6.Helpviewer.HelpTopicDialog.html" />
       <keyword name="HelpTopicDialog (Module)" id="HelpTopicDialog (Module)" ref="eric6.WebBrowser.QtHelp.HelpTopicDialog.html" />
-      <keyword name="HelpTopicDialog.link" id="HelpTopicDialog.link" ref="eric6.Helpviewer.HelpTopicDialog.html#HelpTopicDialog.link" />
       <keyword name="HelpTopicDialog.link" id="HelpTopicDialog.link" ref="eric6.WebBrowser.QtHelp.HelpTopicDialog.html#HelpTopicDialog.link" />
-      <keyword name="HelpUtilities (Module)" id="HelpUtilities (Module)" ref="eric6.Helpviewer.HelpUtilities.html" />
       <keyword name="HelpViewersPage" id="HelpViewersPage" ref="eric6.Preferences.ConfigurationPages.HelpViewersPage.html#HelpViewersPage" />
       <keyword name="HelpViewersPage (Constructor)" id="HelpViewersPage (Constructor)" ref="eric6.Preferences.ConfigurationPages.HelpViewersPage.html#HelpViewersPage.__init__" />
       <keyword name="HelpViewersPage (Module)" id="HelpViewersPage (Module)" ref="eric6.Preferences.ConfigurationPages.HelpViewersPage.html" />
       <keyword name="HelpViewersPage.save" id="HelpViewersPage.save" ref="eric6.Preferences.ConfigurationPages.HelpViewersPage.html#HelpViewersPage.save" />
-      <keyword name="HelpVirusTotalPage" id="HelpVirusTotalPage" ref="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html#HelpVirusTotalPage" />
-      <keyword name="HelpVirusTotalPage (Constructor)" id="HelpVirusTotalPage (Constructor)" ref="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html#HelpVirusTotalPage.__init__" />
-      <keyword name="HelpVirusTotalPage (Module)" id="HelpVirusTotalPage (Module)" ref="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html" />
-      <keyword name="HelpVirusTotalPage.__checkServiceKeyFinished" id="HelpVirusTotalPage.__checkServiceKeyFinished" ref="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html#HelpVirusTotalPage.__checkServiceKeyFinished" />
-      <keyword name="HelpVirusTotalPage.on_testButton_clicked" id="HelpVirusTotalPage.on_testButton_clicked" ref="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html#HelpVirusTotalPage.on_testButton_clicked" />
-      <keyword name="HelpVirusTotalPage.on_vtServiceKeyEdit_textChanged" id="HelpVirusTotalPage.on_vtServiceKeyEdit_textChanged" ref="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html#HelpVirusTotalPage.on_vtServiceKeyEdit_textChanged" />
-      <keyword name="HelpVirusTotalPage.save" id="HelpVirusTotalPage.save" ref="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html#HelpVirusTotalPage.save" />
-      <keyword name="HelpWebBrowserPage" id="HelpWebBrowserPage" ref="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html#HelpWebBrowserPage" />
-      <keyword name="HelpWebBrowserPage (Constructor)" id="HelpWebBrowserPage (Constructor)" ref="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html#HelpWebBrowserPage.__init__" />
-      <keyword name="HelpWebBrowserPage (Module)" id="HelpWebBrowserPage (Module)" ref="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html" />
-      <keyword name="HelpWebBrowserPage.on_defaultHomeButton_clicked" id="HelpWebBrowserPage.on_defaultHomeButton_clicked" ref="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html#HelpWebBrowserPage.on_defaultHomeButton_clicked" />
-      <keyword name="HelpWebBrowserPage.on_noCacheHostsButton_clicked" id="HelpWebBrowserPage.on_noCacheHostsButton_clicked" ref="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html#HelpWebBrowserPage.on_noCacheHostsButton_clicked" />
-      <keyword name="HelpWebBrowserPage.on_refererWhitelistButton_clicked" id="HelpWebBrowserPage.on_refererWhitelistButton_clicked" ref="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html#HelpWebBrowserPage.on_refererWhitelistButton_clicked" />
-      <keyword name="HelpWebBrowserPage.on_setCurrentPageButton_clicked" id="HelpWebBrowserPage.on_setCurrentPageButton_clicked" ref="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html#HelpWebBrowserPage.on_setCurrentPageButton_clicked" />
-      <keyword name="HelpWebBrowserPage.on_startupCombo_currentIndexChanged" id="HelpWebBrowserPage.on_startupCombo_currentIndexChanged" ref="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html#HelpWebBrowserPage.on_startupCombo_currentIndexChanged" />
-      <keyword name="HelpWebBrowserPage.save" id="HelpWebBrowserPage.save" ref="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html#HelpWebBrowserPage.save" />
-      <keyword name="HelpWebPage" id="HelpWebPage" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage" />
-      <keyword name="HelpWebPage (Constructor)" id="HelpWebPage (Constructor)" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.__init__" />
-      <keyword name="HelpWebPage.__loadStarted" id="HelpWebPage.__loadStarted" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.__loadStarted" />
-      <keyword name="HelpWebPage.__managerFinished" id="HelpWebPage.__managerFinished" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.__managerFinished" />
-      <keyword name="HelpWebPage.__restoreFrameStateRequested" id="HelpWebPage.__restoreFrameStateRequested" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.__restoreFrameStateRequested" />
-      <keyword name="HelpWebPage.__saveFrameStateRequested" id="HelpWebPage.__saveFrameStateRequested" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.__saveFrameStateRequested" />
-      <keyword name="HelpWebPage.acceptNavigationRequest" id="HelpWebPage.acceptNavigationRequest" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.acceptNavigationRequest" />
-      <keyword name="HelpWebPage.addAdBlockRule" id="HelpWebPage.addAdBlockRule" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.addAdBlockRule" />
-      <keyword name="HelpWebPage.event" id="HelpWebPage.event" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.event" />
-      <keyword name="HelpWebPage.extension" id="HelpWebPage.extension" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.extension" />
-      <keyword name="HelpWebPage.getAdBlockedPageEntries" id="HelpWebPage.getAdBlockedPageEntries" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.getAdBlockedPageEntries" />
-      <keyword name="HelpWebPage.getSslCertificate" id="HelpWebPage.getSslCertificate" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.getSslCertificate" />
-      <keyword name="HelpWebPage.getSslCertificateChain" id="HelpWebPage.getSslCertificateChain" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.getSslCertificateChain" />
-      <keyword name="HelpWebPage.getSslConfiguration" id="HelpWebPage.getSslConfiguration" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.getSslConfiguration" />
-      <keyword name="HelpWebPage.hasValidSslInfo" id="HelpWebPage.hasValidSslInfo" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.hasValidSslInfo" />
-      <keyword name="HelpWebPage.pageAttributeId" id="HelpWebPage.pageAttributeId" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.pageAttributeId" />
-      <keyword name="HelpWebPage.populateNetworkRequest" id="HelpWebPage.populateNetworkRequest" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.populateNetworkRequest" />
-      <keyword name="HelpWebPage.setUserAgent" id="HelpWebPage.setUserAgent" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.setUserAgent" />
-      <keyword name="HelpWebPage.showSslInfo" id="HelpWebPage.showSslInfo" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.showSslInfo" />
-      <keyword name="HelpWebPage.supportsExtension" id="HelpWebPage.supportsExtension" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.supportsExtension" />
-      <keyword name="HelpWebPage.url" id="HelpWebPage.url" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.url" />
-      <keyword name="HelpWebPage.userAgent" id="HelpWebPage.userAgent" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.userAgent" />
-      <keyword name="HelpWebPage.userAgentForUrl" id="HelpWebPage.userAgentForUrl" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.userAgentForUrl" />
-      <keyword name="HelpWebPage.webPluginFactory" id="HelpWebPage.webPluginFactory" ref="eric6.Helpviewer.HelpBrowserWV.html#HelpWebPage.webPluginFactory" />
-      <keyword name="HelpWebSearchWidget" id="HelpWebSearchWidget" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget" />
-      <keyword name="HelpWebSearchWidget (Constructor)" id="HelpWebSearchWidget (Constructor)" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__init__" />
-      <keyword name="HelpWebSearchWidget (Module)" id="HelpWebSearchWidget (Module)" ref="eric6.Helpviewer.HelpWebSearchWidget.html" />
-      <keyword name="HelpWebSearchWidget.__completerActivated" id="HelpWebSearchWidget.__completerActivated" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__completerActivated" />
-      <keyword name="HelpWebSearchWidget.__completerHighlighted" id="HelpWebSearchWidget.__completerHighlighted" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__completerHighlighted" />
-      <keyword name="HelpWebSearchWidget.__currentEngineChanged" id="HelpWebSearchWidget.__currentEngineChanged" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__currentEngineChanged" />
-      <keyword name="HelpWebSearchWidget.__engineImageChanged" id="HelpWebSearchWidget.__engineImageChanged" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__engineImageChanged" />
-      <keyword name="HelpWebSearchWidget.__getSuggestions" id="HelpWebSearchWidget.__getSuggestions" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__getSuggestions" />
-      <keyword name="HelpWebSearchWidget.__handleEnginesMenuActionTriggered" id="HelpWebSearchWidget.__handleEnginesMenuActionTriggered" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__handleEnginesMenuActionTriggered" />
-      <keyword name="HelpWebSearchWidget.__loadSearches" id="HelpWebSearchWidget.__loadSearches" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__loadSearches" />
-      <keyword name="HelpWebSearchWidget.__newSuggestions" id="HelpWebSearchWidget.__newSuggestions" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__newSuggestions" />
-      <keyword name="HelpWebSearchWidget.__searchButtonClicked" id="HelpWebSearchWidget.__searchButtonClicked" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__searchButtonClicked" />
-      <keyword name="HelpWebSearchWidget.__searchNow" id="HelpWebSearchWidget.__searchNow" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__searchNow" />
-      <keyword name="HelpWebSearchWidget.__setupCompleterMenu" id="HelpWebSearchWidget.__setupCompleterMenu" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__setupCompleterMenu" />
-      <keyword name="HelpWebSearchWidget.__showEnginesMenu" id="HelpWebSearchWidget.__showEnginesMenu" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__showEnginesMenu" />
-      <keyword name="HelpWebSearchWidget.__textEdited" id="HelpWebSearchWidget.__textEdited" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.__textEdited" />
-      <keyword name="HelpWebSearchWidget.clear" id="HelpWebSearchWidget.clear" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.clear" />
-      <keyword name="HelpWebSearchWidget.mousePressEvent" id="HelpWebSearchWidget.mousePressEvent" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.mousePressEvent" />
-      <keyword name="HelpWebSearchWidget.openSearchManager" id="HelpWebSearchWidget.openSearchManager" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.openSearchManager" />
-      <keyword name="HelpWebSearchWidget.preferencesChanged" id="HelpWebSearchWidget.preferencesChanged" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.preferencesChanged" />
-      <keyword name="HelpWebSearchWidget.saveSearches" id="HelpWebSearchWidget.saveSearches" ref="eric6.Helpviewer.HelpWebSearchWidget.html#HelpWebSearchWidget.saveSearches" />
-      <keyword name="HelpWindow" id="HelpWindow" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow" />
-      <keyword name="HelpWindow (Constructor)" id="HelpWindow (Constructor)" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__init__" />
-      <keyword name="HelpWindow (Module)" id="HelpWindow (Module)" ref="eric6.Helpviewer.HelpWindow.html" />
-      <keyword name="HelpWindow.__about" id="HelpWindow.__about" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__about" />
-      <keyword name="HelpWindow.__aboutQt" id="HelpWindow.__aboutQt" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__aboutQt" />
-      <keyword name="HelpWindow.__aboutToShowSettingsMenu" id="HelpWindow.__aboutToShowSettingsMenu" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__aboutToShowSettingsMenu" />
-      <keyword name="HelpWindow.__aboutToShowTextEncodingMenu" id="HelpWindow.__aboutToShowTextEncodingMenu" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__aboutToShowTextEncodingMenu" />
-      <keyword name="HelpWindow.__activateCurrentBrowser" id="HelpWindow.__activateCurrentBrowser" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__activateCurrentBrowser" />
-      <keyword name="HelpWindow.__activateDock" id="HelpWindow.__activateDock" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__activateDock" />
-      <keyword name="HelpWindow.__addBookmark" id="HelpWindow.__addBookmark" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__addBookmark" />
-      <keyword name="HelpWindow.__addBookmarkFolder" id="HelpWindow.__addBookmarkFolder" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__addBookmarkFolder" />
-      <keyword name="HelpWindow.__appFocusChanged" id="HelpWindow.__appFocusChanged" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__appFocusChanged" />
-      <keyword name="HelpWindow.__backward" id="HelpWindow.__backward" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__backward" />
-      <keyword name="HelpWindow.__clearIconsDatabase" id="HelpWindow.__clearIconsDatabase" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__clearIconsDatabase" />
-      <keyword name="HelpWindow.__clearPrivateData" id="HelpWindow.__clearPrivateData" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__clearPrivateData" />
-      <keyword name="HelpWindow.__closeAllWindows" id="HelpWindow.__closeAllWindows" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__closeAllWindows" />
-      <keyword name="HelpWindow.__closeNetworkMonitor" id="HelpWindow.__closeNetworkMonitor" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__closeNetworkMonitor" />
-      <keyword name="HelpWindow.__configShortcuts" id="HelpWindow.__configShortcuts" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__configShortcuts" />
-      <keyword name="HelpWindow.__copy" id="HelpWindow.__copy" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__copy" />
-      <keyword name="HelpWindow.__createTextEncodingAction" id="HelpWindow.__createTextEncodingAction" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__createTextEncodingAction" />
-      <keyword name="HelpWindow.__createTextEncodingSubmenu" id="HelpWindow.__createTextEncodingSubmenu" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__createTextEncodingSubmenu" />
-      <keyword name="HelpWindow.__currentChanged" id="HelpWindow.__currentChanged" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__currentChanged" />
-      <keyword name="HelpWindow.__del__" id="HelpWindow.__del__" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__del__" />
-      <keyword name="HelpWindow.__docsInstalled" id="HelpWindow.__docsInstalled" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__docsInstalled" />
-      <keyword name="HelpWindow.__exportShortcuts" id="HelpWindow.__exportShortcuts" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__exportShortcuts" />
-      <keyword name="HelpWindow.__feedsManagerClosed" id="HelpWindow.__feedsManagerClosed" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__feedsManagerClosed" />
-      <keyword name="HelpWindow.__filterQtHelpDocumentation" id="HelpWindow.__filterQtHelpDocumentation" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__filterQtHelpDocumentation" />
-      <keyword name="HelpWindow.__find" id="HelpWindow.__find" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__find" />
-      <keyword name="HelpWindow.__forward" id="HelpWindow.__forward" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__forward" />
-      <keyword name="HelpWindow.__getWebIcon" id="HelpWindow.__getWebIcon" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__getWebIcon" />
-      <keyword name="HelpWindow.__hideIndexWindow" id="HelpWindow.__hideIndexWindow" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__hideIndexWindow" />
-      <keyword name="HelpWindow.__hideSearchWindow" id="HelpWindow.__hideSearchWindow" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__hideSearchWindow" />
-      <keyword name="HelpWindow.__hideTocWindow" id="HelpWindow.__hideTocWindow" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__hideTocWindow" />
-      <keyword name="HelpWindow.__home" id="HelpWindow.__home" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__home" />
-      <keyword name="HelpWindow.__importShortcuts" id="HelpWindow.__importShortcuts" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__importShortcuts" />
-      <keyword name="HelpWindow.__indexingFinished" id="HelpWindow.__indexingFinished" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__indexingFinished" />
-      <keyword name="HelpWindow.__indexingStarted" id="HelpWindow.__indexingStarted" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__indexingStarted" />
-      <keyword name="HelpWindow.__initActions" id="HelpWindow.__initActions" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__initActions" />
-      <keyword name="HelpWindow.__initHelpDb" id="HelpWindow.__initHelpDb" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__initHelpDb" />
-      <keyword name="HelpWindow.__initMenus" id="HelpWindow.__initMenus" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__initMenus" />
-      <keyword name="HelpWindow.__initToolbars" id="HelpWindow.__initToolbars" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__initToolbars" />
-      <keyword name="HelpWindow.__initWebSettings" id="HelpWindow.__initWebSettings" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__initWebSettings" />
-      <keyword name="HelpWindow.__isFullScreen" id="HelpWindow.__isFullScreen" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__isFullScreen" />
-      <keyword name="HelpWindow.__linkActivated" id="HelpWindow.__linkActivated" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__linkActivated" />
-      <keyword name="HelpWindow.__linksActivated" id="HelpWindow.__linksActivated" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__linksActivated" />
-      <keyword name="HelpWindow.__lookForNewDocumentation" id="HelpWindow.__lookForNewDocumentation" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__lookForNewDocumentation" />
-      <keyword name="HelpWindow.__manageQtHelpDocumentation" id="HelpWindow.__manageQtHelpDocumentation" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__manageQtHelpDocumentation" />
-      <keyword name="HelpWindow.__manageQtHelpFilters" id="HelpWindow.__manageQtHelpFilters" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__manageQtHelpFilters" />
-      <keyword name="HelpWindow.__navigationMenuActionTriggered" id="HelpWindow.__navigationMenuActionTriggered" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__navigationMenuActionTriggered" />
-      <keyword name="HelpWindow.__nextTab" id="HelpWindow.__nextTab" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__nextTab" />
-      <keyword name="HelpWindow.__openFile" id="HelpWindow.__openFile" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__openFile" />
-      <keyword name="HelpWindow.__openFileNewTab" id="HelpWindow.__openFileNewTab" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__openFileNewTab" />
-      <keyword name="HelpWindow.__prevTab" id="HelpWindow.__prevTab" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__prevTab" />
-      <keyword name="HelpWindow.__privateBrowsing" id="HelpWindow.__privateBrowsing" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__privateBrowsing" />
-      <keyword name="HelpWindow.__reload" id="HelpWindow.__reload" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__reload" />
-      <keyword name="HelpWindow.__removeOldDocumentation" id="HelpWindow.__removeOldDocumentation" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__removeOldDocumentation" />
-      <keyword name="HelpWindow.__saLoadUrl" id="HelpWindow.__saLoadUrl" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__saLoadUrl" />
-      <keyword name="HelpWindow.__saNewTab" id="HelpWindow.__saNewTab" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__saNewTab" />
-      <keyword name="HelpWindow.__saSearchWord" id="HelpWindow.__saSearchWord" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__saSearchWord" />
-      <keyword name="HelpWindow.__savePageAs" id="HelpWindow.__savePageAs" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__savePageAs" />
-      <keyword name="HelpWindow.__savePageScreen" id="HelpWindow.__savePageScreen" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__savePageScreen" />
-      <keyword name="HelpWindow.__saveVisiblePageScreen" id="HelpWindow.__saveVisiblePageScreen" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__saveVisiblePageScreen" />
-      <keyword name="HelpWindow.__searchForWord" id="HelpWindow.__searchForWord" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__searchForWord" />
-      <keyword name="HelpWindow.__setIconDatabasePath" id="HelpWindow.__setIconDatabasePath" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__setIconDatabasePath" />
-      <keyword name="HelpWindow.__setTextEncoding" id="HelpWindow.__setTextEncoding" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__setTextEncoding" />
-      <keyword name="HelpWindow.__setupFilterCombo" id="HelpWindow.__setupFilterCombo" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__setupFilterCombo" />
-      <keyword name="HelpWindow.__showAcceptedLanguages" id="HelpWindow.__showAcceptedLanguages" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showAcceptedLanguages" />
-      <keyword name="HelpWindow.__showAdBlockDialog" id="HelpWindow.__showAdBlockDialog" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showAdBlockDialog" />
-      <keyword name="HelpWindow.__showBackMenu" id="HelpWindow.__showBackMenu" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showBackMenu" />
-      <keyword name="HelpWindow.__showBookmarksDialog" id="HelpWindow.__showBookmarksDialog" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showBookmarksDialog" />
-      <keyword name="HelpWindow.__showCertificatesDialog" id="HelpWindow.__showCertificatesDialog" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showCertificatesDialog" />
-      <keyword name="HelpWindow.__showClickToFlashDialog" id="HelpWindow.__showClickToFlashDialog" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showClickToFlashDialog" />
-      <keyword name="HelpWindow.__showCookiesConfiguration" id="HelpWindow.__showCookiesConfiguration" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showCookiesConfiguration" />
-      <keyword name="HelpWindow.__showDownloadsWindow" id="HelpWindow.__showDownloadsWindow" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showDownloadsWindow" />
-      <keyword name="HelpWindow.__showEnginesConfigurationDialog" id="HelpWindow.__showEnginesConfigurationDialog" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showEnginesConfigurationDialog" />
-      <keyword name="HelpWindow.__showFeaturePermissionDialog" id="HelpWindow.__showFeaturePermissionDialog" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showFeaturePermissionDialog" />
-      <keyword name="HelpWindow.__showFeedsManager" id="HelpWindow.__showFeedsManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showFeedsManager" />
-      <keyword name="HelpWindow.__showFlashCookiesManagement" id="HelpWindow.__showFlashCookiesManagement" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showFlashCookiesManagement" />
-      <keyword name="HelpWindow.__showForwardMenu" id="HelpWindow.__showForwardMenu" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showForwardMenu" />
-      <keyword name="HelpWindow.__showGreaseMonkeyConfigDialog" id="HelpWindow.__showGreaseMonkeyConfigDialog" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showGreaseMonkeyConfigDialog" />
-      <keyword name="HelpWindow.__showIndexWindow" id="HelpWindow.__showIndexWindow" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showIndexWindow" />
-      <keyword name="HelpWindow.__showInstallationError" id="HelpWindow.__showInstallationError" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showInstallationError" />
-      <keyword name="HelpWindow.__showNetworkMonitor" id="HelpWindow.__showNetworkMonitor" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showNetworkMonitor" />
-      <keyword name="HelpWindow.__showOfflineStorageConfiguration" id="HelpWindow.__showOfflineStorageConfiguration" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showOfflineStorageConfiguration" />
-      <keyword name="HelpWindow.__showPageSource" id="HelpWindow.__showPageSource" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showPageSource" />
-      <keyword name="HelpWindow.__showPasswordsDialog" id="HelpWindow.__showPasswordsDialog" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showPasswordsDialog" />
-      <keyword name="HelpWindow.__showPersonalInformationDialog" id="HelpWindow.__showPersonalInformationDialog" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showPersonalInformationDialog" />
-      <keyword name="HelpWindow.__showPreferences" id="HelpWindow.__showPreferences" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showPreferences" />
-      <keyword name="HelpWindow.__showSearchWindow" id="HelpWindow.__showSearchWindow" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showSearchWindow" />
-      <keyword name="HelpWindow.__showSiteinfoDialog" id="HelpWindow.__showSiteinfoDialog" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showSiteinfoDialog" />
-      <keyword name="HelpWindow.__showSyncDialog" id="HelpWindow.__showSyncDialog" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showSyncDialog" />
-      <keyword name="HelpWindow.__showTocWindow" id="HelpWindow.__showTocWindow" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showTocWindow" />
-      <keyword name="HelpWindow.__showUserAgentsDialog" id="HelpWindow.__showUserAgentsDialog" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showUserAgentsDialog" />
-      <keyword name="HelpWindow.__showZoomValuesDialog" id="HelpWindow.__showZoomValuesDialog" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__showZoomValuesDialog" />
-      <keyword name="HelpWindow.__stopLoading" id="HelpWindow.__stopLoading" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__stopLoading" />
-      <keyword name="HelpWindow.__switchTab" id="HelpWindow.__switchTab" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__switchTab" />
-      <keyword name="HelpWindow.__syncTOC" id="HelpWindow.__syncTOC" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__syncTOC" />
-      <keyword name="HelpWindow.__titleChanged" id="HelpWindow.__titleChanged" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__titleChanged" />
-      <keyword name="HelpWindow.__userStyleSheet" id="HelpWindow.__userStyleSheet" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__userStyleSheet" />
-      <keyword name="HelpWindow.__viewFullScreen" id="HelpWindow.__viewFullScreen" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__viewFullScreen" />
-      <keyword name="HelpWindow.__virusTotalDomainReport" id="HelpWindow.__virusTotalDomainReport" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__virusTotalDomainReport" />
-      <keyword name="HelpWindow.__virusTotalFileScanReport" id="HelpWindow.__virusTotalFileScanReport" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__virusTotalFileScanReport" />
-      <keyword name="HelpWindow.__virusTotalIpAddressReport" id="HelpWindow.__virusTotalIpAddressReport" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__virusTotalIpAddressReport" />
-      <keyword name="HelpWindow.__virusTotalScanCurrentSite" id="HelpWindow.__virusTotalScanCurrentSite" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__virusTotalScanCurrentSite" />
-      <keyword name="HelpWindow.__virusTotalSubmitUrlError" id="HelpWindow.__virusTotalSubmitUrlError" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__virusTotalSubmitUrlError" />
-      <keyword name="HelpWindow.__virusTotalUrlScanReport" id="HelpWindow.__virusTotalUrlScanReport" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__virusTotalUrlScanReport" />
-      <keyword name="HelpWindow.__warning" id="HelpWindow.__warning" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__warning" />
-      <keyword name="HelpWindow.__whatsThis" id="HelpWindow.__whatsThis" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__whatsThis" />
-      <keyword name="HelpWindow.__zoomIn" id="HelpWindow.__zoomIn" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__zoomIn" />
-      <keyword name="HelpWindow.__zoomOut" id="HelpWindow.__zoomOut" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__zoomOut" />
-      <keyword name="HelpWindow.__zoomReset" id="HelpWindow.__zoomReset" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__zoomReset" />
-      <keyword name="HelpWindow.__zoomTextOnly" id="HelpWindow.__zoomTextOnly" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__zoomTextOnly" />
-      <keyword name="HelpWindow.__zoomValueChanged" id="HelpWindow.__zoomValueChanged" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.__zoomValueChanged" />
-      <keyword name="HelpWindow.adBlockIcon" id="HelpWindow.adBlockIcon" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.adBlockIcon" />
-      <keyword name="HelpWindow.adBlockManager" id="HelpWindow.adBlockManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.adBlockManager" />
-      <keyword name="HelpWindow.bookmarkAll" id="HelpWindow.bookmarkAll" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.bookmarkAll" />
-      <keyword name="HelpWindow.bookmarksManager" id="HelpWindow.bookmarksManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.bookmarksManager" />
-      <keyword name="HelpWindow.browserAt" id="HelpWindow.browserAt" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.browserAt" />
-      <keyword name="HelpWindow.browsers" id="HelpWindow.browsers" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.browsers" />
-      <keyword name="HelpWindow.closeEvent" id="HelpWindow.closeEvent" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.closeEvent" />
-      <keyword name="HelpWindow.cookieJar" id="HelpWindow.cookieJar" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.cookieJar" />
-      <keyword name="HelpWindow.currentBrowser" id="HelpWindow.currentBrowser" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.currentBrowser" />
-      <keyword name="HelpWindow.downloadManager" id="HelpWindow.downloadManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.downloadManager" />
-      <keyword name="HelpWindow.eventKeyboardModifiers" id="HelpWindow.eventKeyboardModifiers" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.eventKeyboardModifiers" />
-      <keyword name="HelpWindow.eventMouseButtons" id="HelpWindow.eventMouseButtons" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.eventMouseButtons" />
-      <keyword name="HelpWindow.featurePermissionManager" id="HelpWindow.featurePermissionManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.featurePermissionManager" />
-      <keyword name="HelpWindow.feedsManager" id="HelpWindow.feedsManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.feedsManager" />
-      <keyword name="HelpWindow.flashCookieManager" id="HelpWindow.flashCookieManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.flashCookieManager" />
-      <keyword name="HelpWindow.getActions" id="HelpWindow.getActions" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.getActions" />
-      <keyword name="HelpWindow.getActionsCategory" id="HelpWindow.getActionsCategory" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.getActionsCategory" />
-      <keyword name="HelpWindow.getQtHelpCollectionFileName" id="HelpWindow.getQtHelpCollectionFileName" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.getQtHelpCollectionFileName" />
-      <keyword name="HelpWindow.getSourceFileList" id="HelpWindow.getSourceFileList" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.getSourceFileList" />
-      <keyword name="HelpWindow.getWindow" id="HelpWindow.getWindow" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.getWindow" />
-      <keyword name="HelpWindow.greaseMonkeyManager" id="HelpWindow.greaseMonkeyManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.greaseMonkeyManager" />
-      <keyword name="HelpWindow.helpEngine" id="HelpWindow.helpEngine" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.helpEngine" />
-      <keyword name="HelpWindow.historyManager" id="HelpWindow.historyManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.historyManager" />
-      <keyword name="HelpWindow.icon" id="HelpWindow.icon" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.icon" />
-      <keyword name="HelpWindow.keyPressEvent" id="HelpWindow.keyPressEvent" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.keyPressEvent" />
-      <keyword name="HelpWindow.mainWindow" id="HelpWindow.mainWindow" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.mainWindow" />
-      <keyword name="HelpWindow.mainWindows" id="HelpWindow.mainWindows" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.mainWindows" />
-      <keyword name="HelpWindow.masterPasswordChanged" id="HelpWindow.masterPasswordChanged" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.masterPasswordChanged" />
-      <keyword name="HelpWindow.mousePressEvent" id="HelpWindow.mousePressEvent" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.mousePressEvent" />
-      <keyword name="HelpWindow.networkAccessManager" id="HelpWindow.networkAccessManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.networkAccessManager" />
-      <keyword name="HelpWindow.newTab" id="HelpWindow.newTab" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.newTab" />
-      <keyword name="HelpWindow.newWindow" id="HelpWindow.newWindow" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.newWindow" />
-      <keyword name="HelpWindow.notificationsEnabled" id="HelpWindow.notificationsEnabled" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.notificationsEnabled" />
-      <keyword name="HelpWindow.openSearchManager" id="HelpWindow.openSearchManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.openSearchManager" />
-      <keyword name="HelpWindow.openUrl" id="HelpWindow.openUrl" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.openUrl" />
-      <keyword name="HelpWindow.openUrlNewTab" id="HelpWindow.openUrlNewTab" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.openUrlNewTab" />
-      <keyword name="HelpWindow.passwordManager" id="HelpWindow.passwordManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.passwordManager" />
-      <keyword name="HelpWindow.personalInformationManager" id="HelpWindow.personalInformationManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.personalInformationManager" />
-      <keyword name="HelpWindow.preferencesChanged" id="HelpWindow.preferencesChanged" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.preferencesChanged" />
-      <keyword name="HelpWindow.reloadUserStyleSheet" id="HelpWindow.reloadUserStyleSheet" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.reloadUserStyleSheet" />
-      <keyword name="HelpWindow.requestVirusTotalScan" id="HelpWindow.requestVirusTotalScan" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.requestVirusTotalScan" />
-      <keyword name="HelpWindow.search" id="HelpWindow.search" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.search" />
-      <keyword name="HelpWindow.searchEnginesAction" id="HelpWindow.searchEnginesAction" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.searchEnginesAction" />
-      <keyword name="HelpWindow.setBackwardAvailable" id="HelpWindow.setBackwardAvailable" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.setBackwardAvailable" />
-      <keyword name="HelpWindow.setEventKeyboardModifiers" id="HelpWindow.setEventKeyboardModifiers" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.setEventKeyboardModifiers" />
-      <keyword name="HelpWindow.setEventMouseButtons" id="HelpWindow.setEventMouseButtons" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.setEventMouseButtons" />
-      <keyword name="HelpWindow.setForwardAvailable" id="HelpWindow.setForwardAvailable" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.setForwardAvailable" />
-      <keyword name="HelpWindow.setLoadingActions" id="HelpWindow.setLoadingActions" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.setLoadingActions" />
-      <keyword name="HelpWindow.setPrivateMode" id="HelpWindow.setPrivateMode" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.setPrivateMode" />
-      <keyword name="HelpWindow.setUseQtHelp" id="HelpWindow.setUseQtHelp" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.setUseQtHelp" />
-      <keyword name="HelpWindow.showNotification" id="HelpWindow.showNotification" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.showNotification" />
-      <keyword name="HelpWindow.shutdown" id="HelpWindow.shutdown" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.shutdown" />
-      <keyword name="HelpWindow.speedDial" id="HelpWindow.speedDial" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.speedDial" />
-      <keyword name="HelpWindow.syncManager" id="HelpWindow.syncManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.syncManager" />
-      <keyword name="HelpWindow.urlHandler" id="HelpWindow.urlHandler" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.urlHandler" />
-      <keyword name="HelpWindow.userAgentsManager" id="HelpWindow.userAgentsManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.userAgentsManager" />
-      <keyword name="HelpWindow.zoomManager" id="HelpWindow.zoomManager" ref="eric6.Helpviewer.HelpWindow.html#HelpWindow.zoomManager" />
-      <keyword name="Helpviewer (Package)" id="Helpviewer (Package)" ref="index-eric6.Helpviewer.html" />
       <keyword name="HexEdit (Package)" id="HexEdit (Package)" ref="index-eric6.HexEdit.html" />
       <keyword name="HexEditChunk" id="HexEditChunk" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunk" />
       <keyword name="HexEditChunk (Constructor)" id="HexEditChunk (Constructor)" ref="eric6.HexEdit.HexEditChunks.html#HexEditChunk.__init__" />
@@ -9200,7 +7531,6 @@
       <keyword name="HgLogBrowserDialog (Constructor)" id="HgLogBrowserDialog (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__init__" />
       <keyword name="HgLogBrowserDialog (Module)" id="HgLogBrowserDialog (Module)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html" />
       <keyword name="HgLogBrowserDialog.__actionMode" id="HgLogBrowserDialog.__actionMode" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__actionMode" />
-      <keyword name="HgLogBrowserDialog.__actionsMenuHovered" id="HgLogBrowserDialog.__actionsMenuHovered" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__actionsMenuHovered" />
       <keyword name="HgLogBrowserDialog.__addFinishCallback" id="HgLogBrowserDialog.__addFinishCallback" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__addFinishCallback" />
       <keyword name="HgLogBrowserDialog.__bookmarkActTriggered" id="HgLogBrowserDialog.__bookmarkActTriggered" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__bookmarkActTriggered" />
       <keyword name="HgLogBrowserDialog.__bookmarkMoveActTriggered" id="HgLogBrowserDialog.__bookmarkMoveActTriggered" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html#HgLogBrowserDialog.__bookmarkMoveActTriggered" />
@@ -9644,7 +7974,6 @@
       <keyword name="HgStatusDialog (Constructor)" id="HgStatusDialog (Constructor)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__init__" />
       <keyword name="HgStatusDialog (Module)" id="HgStatusDialog (Module)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html" />
       <keyword name="HgStatusDialog.__abortMerge" id="HgStatusDialog.__abortMerge" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__abortMerge" />
-      <keyword name="HgStatusDialog.__actionsMenuHovered" id="HgStatusDialog.__actionsMenuHovered" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__actionsMenuHovered" />
       <keyword name="HgStatusDialog.__add" id="HgStatusDialog.__add" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__add" />
       <keyword name="HgStatusDialog.__commit" id="HgStatusDialog.__commit" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__commit" />
       <keyword name="HgStatusDialog.__commitDeselectAll" id="HgStatusDialog.__commitDeselectAll" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html#HgStatusDialog.__commitDeselectAll" />
@@ -9825,318 +8154,167 @@
       <keyword name="HisteditProjectHelper.initActions" id="HisteditProjectHelper.initActions" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.ProjectHelper.html#HisteditProjectHelper.initActions" />
       <keyword name="HisteditProjectHelper.initMenu" id="HisteditProjectHelper.initMenu" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.ProjectHelper.html#HisteditProjectHelper.initMenu" />
       <keyword name="HisteditProjectHelper.menuTitle" id="HisteditProjectHelper.menuTitle" ref="eric6.Plugins.VcsPlugins.vcsMercurial.HisteditExtension.ProjectHelper.html#HisteditProjectHelper.menuTitle" />
-      <keyword name="History (Package)" id="History (Package)" ref="index-eric6.Helpviewer.History.html" />
       <keyword name="History (Package)" id="History (Package)" ref="index-eric6.WebBrowser.History.html" />
-      <keyword name="HistoryCompleter" id="HistoryCompleter" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompleter" />
       <keyword name="HistoryCompleter" id="HistoryCompleter" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompleter" />
-      <keyword name="HistoryCompleter (Constructor)" id="HistoryCompleter (Constructor)" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompleter.__init__" />
       <keyword name="HistoryCompleter (Constructor)" id="HistoryCompleter (Constructor)" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompleter.__init__" />
-      <keyword name="HistoryCompleter (Module)" id="HistoryCompleter (Module)" ref="eric6.Helpviewer.History.HistoryCompleter.html" />
       <keyword name="HistoryCompleter (Module)" id="HistoryCompleter (Module)" ref="eric6.WebBrowser.History.HistoryCompleter.html" />
-      <keyword name="HistoryCompleter.__updateFilter" id="HistoryCompleter.__updateFilter" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompleter.__updateFilter" />
       <keyword name="HistoryCompleter.__updateFilter" id="HistoryCompleter.__updateFilter" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompleter.__updateFilter" />
-      <keyword name="HistoryCompleter.pathFromIndex" id="HistoryCompleter.pathFromIndex" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompleter.pathFromIndex" />
       <keyword name="HistoryCompleter.pathFromIndex" id="HistoryCompleter.pathFromIndex" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompleter.pathFromIndex" />
-      <keyword name="HistoryCompleter.splitPath" id="HistoryCompleter.splitPath" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompleter.splitPath" />
       <keyword name="HistoryCompleter.splitPath" id="HistoryCompleter.splitPath" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompleter.splitPath" />
-      <keyword name="HistoryCompletionModel" id="HistoryCompletionModel" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompletionModel" />
       <keyword name="HistoryCompletionModel" id="HistoryCompletionModel" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompletionModel" />
-      <keyword name="HistoryCompletionModel (Constructor)" id="HistoryCompletionModel (Constructor)" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompletionModel.__init__" />
       <keyword name="HistoryCompletionModel (Constructor)" id="HistoryCompletionModel (Constructor)" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompletionModel.__init__" />
-      <keyword name="HistoryCompletionModel.data" id="HistoryCompletionModel.data" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompletionModel.data" />
       <keyword name="HistoryCompletionModel.data" id="HistoryCompletionModel.data" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompletionModel.data" />
-      <keyword name="HistoryCompletionModel.filterAcceptsRow" id="HistoryCompletionModel.filterAcceptsRow" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompletionModel.filterAcceptsRow" />
       <keyword name="HistoryCompletionModel.filterAcceptsRow" id="HistoryCompletionModel.filterAcceptsRow" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompletionModel.filterAcceptsRow" />
-      <keyword name="HistoryCompletionModel.isValid" id="HistoryCompletionModel.isValid" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompletionModel.isValid" />
       <keyword name="HistoryCompletionModel.isValid" id="HistoryCompletionModel.isValid" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompletionModel.isValid" />
-      <keyword name="HistoryCompletionModel.lessThan" id="HistoryCompletionModel.lessThan" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompletionModel.lessThan" />
       <keyword name="HistoryCompletionModel.lessThan" id="HistoryCompletionModel.lessThan" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompletionModel.lessThan" />
-      <keyword name="HistoryCompletionModel.searchString" id="HistoryCompletionModel.searchString" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompletionModel.searchString" />
       <keyword name="HistoryCompletionModel.searchString" id="HistoryCompletionModel.searchString" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompletionModel.searchString" />
-      <keyword name="HistoryCompletionModel.setSearchString" id="HistoryCompletionModel.setSearchString" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompletionModel.setSearchString" />
       <keyword name="HistoryCompletionModel.setSearchString" id="HistoryCompletionModel.setSearchString" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompletionModel.setSearchString" />
-      <keyword name="HistoryCompletionModel.setValid" id="HistoryCompletionModel.setValid" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompletionModel.setValid" />
       <keyword name="HistoryCompletionModel.setValid" id="HistoryCompletionModel.setValid" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompletionModel.setValid" />
-      <keyword name="HistoryCompletionView" id="HistoryCompletionView" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompletionView" />
       <keyword name="HistoryCompletionView" id="HistoryCompletionView" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompletionView" />
-      <keyword name="HistoryCompletionView (Constructor)" id="HistoryCompletionView (Constructor)" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompletionView.__init__" />
       <keyword name="HistoryCompletionView (Constructor)" id="HistoryCompletionView (Constructor)" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompletionView.__init__" />
-      <keyword name="HistoryCompletionView.resizeEvent" id="HistoryCompletionView.resizeEvent" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompletionView.resizeEvent" />
       <keyword name="HistoryCompletionView.resizeEvent" id="HistoryCompletionView.resizeEvent" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompletionView.resizeEvent" />
-      <keyword name="HistoryCompletionView.sizeHintForRow" id="HistoryCompletionView.sizeHintForRow" ref="eric6.Helpviewer.History.HistoryCompleter.html#HistoryCompletionView.sizeHintForRow" />
       <keyword name="HistoryCompletionView.sizeHintForRow" id="HistoryCompletionView.sizeHintForRow" ref="eric6.WebBrowser.History.HistoryCompleter.html#HistoryCompletionView.sizeHintForRow" />
-      <keyword name="HistoryData" id="HistoryData" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryData" />
       <keyword name="HistoryData" id="HistoryData" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryData" />
-      <keyword name="HistoryData (Constructor)" id="HistoryData (Constructor)" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryData.__init__" />
       <keyword name="HistoryData (Constructor)" id="HistoryData (Constructor)" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryData.__init__" />
-      <keyword name="HistoryData.__eq__" id="HistoryData.__eq__" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryData.__eq__" />
       <keyword name="HistoryData.__eq__" id="HistoryData.__eq__" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryData.__eq__" />
-      <keyword name="HistoryData.__lt__" id="HistoryData.__lt__" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryData.__lt__" />
       <keyword name="HistoryData.__lt__" id="HistoryData.__lt__" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryData.__lt__" />
-      <keyword name="HistoryDialog" id="HistoryDialog" ref="eric6.Helpviewer.History.HistoryDialog.html#HistoryDialog" />
       <keyword name="HistoryDialog" id="HistoryDialog" ref="eric6.WebBrowser.History.HistoryDialog.html#HistoryDialog" />
-      <keyword name="HistoryDialog (Constructor)" id="HistoryDialog (Constructor)" ref="eric6.Helpviewer.History.HistoryDialog.html#HistoryDialog.__init__" />
       <keyword name="HistoryDialog (Constructor)" id="HistoryDialog (Constructor)" ref="eric6.WebBrowser.History.HistoryDialog.html#HistoryDialog.__init__" />
-      <keyword name="HistoryDialog (Module)" id="HistoryDialog (Module)" ref="eric6.Helpviewer.History.HistoryDialog.html" />
       <keyword name="HistoryDialog (Module)" id="HistoryDialog (Module)" ref="eric6.WebBrowser.History.HistoryDialog.html" />
-      <keyword name="HistoryDialog.__activated" id="HistoryDialog.__activated" ref="eric6.Helpviewer.History.HistoryDialog.html#HistoryDialog.__activated" />
       <keyword name="HistoryDialog.__activated" id="HistoryDialog.__activated" ref="eric6.WebBrowser.History.HistoryDialog.html#HistoryDialog.__activated" />
-      <keyword name="HistoryDialog.__copyHistory" id="HistoryDialog.__copyHistory" ref="eric6.Helpviewer.History.HistoryDialog.html#HistoryDialog.__copyHistory" />
       <keyword name="HistoryDialog.__copyHistory" id="HistoryDialog.__copyHistory" ref="eric6.WebBrowser.History.HistoryDialog.html#HistoryDialog.__copyHistory" />
-      <keyword name="HistoryDialog.__customContextMenuRequested" id="HistoryDialog.__customContextMenuRequested" ref="eric6.Helpviewer.History.HistoryDialog.html#HistoryDialog.__customContextMenuRequested" />
       <keyword name="HistoryDialog.__customContextMenuRequested" id="HistoryDialog.__customContextMenuRequested" ref="eric6.WebBrowser.History.HistoryDialog.html#HistoryDialog.__customContextMenuRequested" />
-      <keyword name="HistoryDialog.__modelReset" id="HistoryDialog.__modelReset" ref="eric6.Helpviewer.History.HistoryDialog.html#HistoryDialog.__modelReset" />
       <keyword name="HistoryDialog.__modelReset" id="HistoryDialog.__modelReset" ref="eric6.WebBrowser.History.HistoryDialog.html#HistoryDialog.__modelReset" />
-      <keyword name="HistoryDialog.__openHistory" id="HistoryDialog.__openHistory" ref="eric6.Helpviewer.History.HistoryDialog.html#HistoryDialog.__openHistory" />
       <keyword name="HistoryDialog.__openHistory" id="HistoryDialog.__openHistory" ref="eric6.WebBrowser.History.HistoryDialog.html#HistoryDialog.__openHistory" />
-      <keyword name="HistoryDialog.__openHistoryInCurrentTab" id="HistoryDialog.__openHistoryInCurrentTab" ref="eric6.Helpviewer.History.HistoryDialog.html#HistoryDialog.__openHistoryInCurrentTab" />
       <keyword name="HistoryDialog.__openHistoryInCurrentTab" id="HistoryDialog.__openHistoryInCurrentTab" ref="eric6.WebBrowser.History.HistoryDialog.html#HistoryDialog.__openHistoryInCurrentTab" />
       <keyword name="HistoryDialog.__openHistoryInNewBackgroundTab" id="HistoryDialog.__openHistoryInNewBackgroundTab" ref="eric6.WebBrowser.History.HistoryDialog.html#HistoryDialog.__openHistoryInNewBackgroundTab" />
-      <keyword name="HistoryDialog.__openHistoryInNewTab" id="HistoryDialog.__openHistoryInNewTab" ref="eric6.Helpviewer.History.HistoryDialog.html#HistoryDialog.__openHistoryInNewTab" />
       <keyword name="HistoryDialog.__openHistoryInNewTab" id="HistoryDialog.__openHistoryInNewTab" ref="eric6.WebBrowser.History.HistoryDialog.html#HistoryDialog.__openHistoryInNewTab" />
       <keyword name="HistoryDialog.__openHistoryInNewWindow" id="HistoryDialog.__openHistoryInNewWindow" ref="eric6.WebBrowser.History.HistoryDialog.html#HistoryDialog.__openHistoryInNewWindow" />
       <keyword name="HistoryDialog.__openHistoryInPrivateWindow" id="HistoryDialog.__openHistoryInPrivateWindow" ref="eric6.WebBrowser.History.HistoryDialog.html#HistoryDialog.__openHistoryInPrivateWindow" />
-      <keyword name="HistoryEntry" id="HistoryEntry" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryEntry" />
       <keyword name="HistoryEntry" id="HistoryEntry" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryEntry" />
-      <keyword name="HistoryEntry (Constructor)" id="HistoryEntry (Constructor)" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryEntry.__init__" />
       <keyword name="HistoryEntry (Constructor)" id="HistoryEntry (Constructor)" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryEntry.__init__" />
-      <keyword name="HistoryEntry.__eq__" id="HistoryEntry.__eq__" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryEntry.__eq__" />
       <keyword name="HistoryEntry.__eq__" id="HistoryEntry.__eq__" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryEntry.__eq__" />
-      <keyword name="HistoryEntry.__lt__" id="HistoryEntry.__lt__" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryEntry.__lt__" />
       <keyword name="HistoryEntry.__lt__" id="HistoryEntry.__lt__" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryEntry.__lt__" />
       <keyword name="HistoryEntry.isValid" id="HistoryEntry.isValid" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryEntry.isValid" />
-      <keyword name="HistoryEntry.userTitle" id="HistoryEntry.userTitle" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryEntry.userTitle" />
       <keyword name="HistoryEntry.userTitle" id="HistoryEntry.userTitle" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryEntry.userTitle" />
-      <keyword name="HistoryFilterModel" id="HistoryFilterModel" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel" />
       <keyword name="HistoryFilterModel" id="HistoryFilterModel" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel" />
-      <keyword name="HistoryFilterModel (Constructor)" id="HistoryFilterModel (Constructor)" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.__init__" />
       <keyword name="HistoryFilterModel (Constructor)" id="HistoryFilterModel (Constructor)" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.__init__" />
-      <keyword name="HistoryFilterModel (Module)" id="HistoryFilterModel (Module)" ref="eric6.Helpviewer.History.HistoryFilterModel.html" />
       <keyword name="HistoryFilterModel (Module)" id="HistoryFilterModel (Module)" ref="eric6.WebBrowser.History.HistoryFilterModel.html" />
-      <keyword name="HistoryFilterModel.__frequencyScore" id="HistoryFilterModel.__frequencyScore" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.__frequencyScore" />
       <keyword name="HistoryFilterModel.__frequencyScore" id="HistoryFilterModel.__frequencyScore" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.__frequencyScore" />
-      <keyword name="HistoryFilterModel.__load" id="HistoryFilterModel.__load" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.__load" />
       <keyword name="HistoryFilterModel.__load" id="HistoryFilterModel.__load" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.__load" />
-      <keyword name="HistoryFilterModel.__sourceDataChanged" id="HistoryFilterModel.__sourceDataChanged" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.__sourceDataChanged" />
       <keyword name="HistoryFilterModel.__sourceDataChanged" id="HistoryFilterModel.__sourceDataChanged" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.__sourceDataChanged" />
-      <keyword name="HistoryFilterModel.__sourceReset" id="HistoryFilterModel.__sourceReset" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.__sourceReset" />
       <keyword name="HistoryFilterModel.__sourceReset" id="HistoryFilterModel.__sourceReset" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.__sourceReset" />
-      <keyword name="HistoryFilterModel.__sourceRowsInserted" id="HistoryFilterModel.__sourceRowsInserted" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.__sourceRowsInserted" />
       <keyword name="HistoryFilterModel.__sourceRowsInserted" id="HistoryFilterModel.__sourceRowsInserted" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.__sourceRowsInserted" />
-      <keyword name="HistoryFilterModel.__sourceRowsRemoved" id="HistoryFilterModel.__sourceRowsRemoved" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.__sourceRowsRemoved" />
       <keyword name="HistoryFilterModel.__sourceRowsRemoved" id="HistoryFilterModel.__sourceRowsRemoved" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.__sourceRowsRemoved" />
-      <keyword name="HistoryFilterModel.columnCount" id="HistoryFilterModel.columnCount" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.columnCount" />
       <keyword name="HistoryFilterModel.columnCount" id="HistoryFilterModel.columnCount" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.columnCount" />
-      <keyword name="HistoryFilterModel.data" id="HistoryFilterModel.data" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.data" />
       <keyword name="HistoryFilterModel.data" id="HistoryFilterModel.data" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.data" />
-      <keyword name="HistoryFilterModel.headerData" id="HistoryFilterModel.headerData" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.headerData" />
       <keyword name="HistoryFilterModel.headerData" id="HistoryFilterModel.headerData" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.headerData" />
-      <keyword name="HistoryFilterModel.historyContains" id="HistoryFilterModel.historyContains" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.historyContains" />
       <keyword name="HistoryFilterModel.historyContains" id="HistoryFilterModel.historyContains" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.historyContains" />
-      <keyword name="HistoryFilterModel.historyLocation" id="HistoryFilterModel.historyLocation" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.historyLocation" />
       <keyword name="HistoryFilterModel.historyLocation" id="HistoryFilterModel.historyLocation" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.historyLocation" />
-      <keyword name="HistoryFilterModel.index" id="HistoryFilterModel.index" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.index" />
       <keyword name="HistoryFilterModel.index" id="HistoryFilterModel.index" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.index" />
-      <keyword name="HistoryFilterModel.mapFromSource" id="HistoryFilterModel.mapFromSource" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.mapFromSource" />
       <keyword name="HistoryFilterModel.mapFromSource" id="HistoryFilterModel.mapFromSource" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.mapFromSource" />
-      <keyword name="HistoryFilterModel.mapToSource" id="HistoryFilterModel.mapToSource" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.mapToSource" />
       <keyword name="HistoryFilterModel.mapToSource" id="HistoryFilterModel.mapToSource" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.mapToSource" />
-      <keyword name="HistoryFilterModel.parent" id="HistoryFilterModel.parent" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.parent" />
       <keyword name="HistoryFilterModel.parent" id="HistoryFilterModel.parent" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.parent" />
-      <keyword name="HistoryFilterModel.recalculateFrequencies" id="HistoryFilterModel.recalculateFrequencies" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.recalculateFrequencies" />
       <keyword name="HistoryFilterModel.recalculateFrequencies" id="HistoryFilterModel.recalculateFrequencies" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.recalculateFrequencies" />
-      <keyword name="HistoryFilterModel.removeRows" id="HistoryFilterModel.removeRows" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.removeRows" />
       <keyword name="HistoryFilterModel.removeRows" id="HistoryFilterModel.removeRows" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.removeRows" />
-      <keyword name="HistoryFilterModel.rowCount" id="HistoryFilterModel.rowCount" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.rowCount" />
       <keyword name="HistoryFilterModel.rowCount" id="HistoryFilterModel.rowCount" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.rowCount" />
-      <keyword name="HistoryFilterModel.setSourceModel" id="HistoryFilterModel.setSourceModel" ref="eric6.Helpviewer.History.HistoryFilterModel.html#HistoryFilterModel.setSourceModel" />
       <keyword name="HistoryFilterModel.setSourceModel" id="HistoryFilterModel.setSourceModel" ref="eric6.WebBrowser.History.HistoryFilterModel.html#HistoryFilterModel.setSourceModel" />
-      <keyword name="HistoryManager" id="HistoryManager" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager" />
       <keyword name="HistoryManager" id="HistoryManager" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager" />
-      <keyword name="HistoryManager (Constructor)" id="HistoryManager (Constructor)" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.__init__" />
       <keyword name="HistoryManager (Constructor)" id="HistoryManager (Constructor)" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.__init__" />
-      <keyword name="HistoryManager (Module)" id="HistoryManager (Module)" ref="eric6.Helpviewer.History.HistoryManager.html" />
       <keyword name="HistoryManager (Module)" id="HistoryManager (Module)" ref="eric6.WebBrowser.History.HistoryManager.html" />
-      <keyword name="HistoryManager.__checkForExpired" id="HistoryManager.__checkForExpired" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.__checkForExpired" />
       <keyword name="HistoryManager.__checkForExpired" id="HistoryManager.__checkForExpired" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.__checkForExpired" />
       <keyword name="HistoryManager.__cleanUrl" id="HistoryManager.__cleanUrl" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.__cleanUrl" />
       <keyword name="HistoryManager.__cleanUrlStr" id="HistoryManager.__cleanUrlStr" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.__cleanUrlStr" />
       <keyword name="HistoryManager.__findFirstHistoryEntry" id="HistoryManager.__findFirstHistoryEntry" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.__findFirstHistoryEntry" />
-      <keyword name="HistoryManager.__load" id="HistoryManager.__load" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.__load" />
       <keyword name="HistoryManager.__load" id="HistoryManager.__load" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.__load" />
-      <keyword name="HistoryManager.__refreshFrequencies" id="HistoryManager.__refreshFrequencies" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.__refreshFrequencies" />
       <keyword name="HistoryManager.__refreshFrequencies" id="HistoryManager.__refreshFrequencies" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.__refreshFrequencies" />
-      <keyword name="HistoryManager.__startFrequencyTimer" id="HistoryManager.__startFrequencyTimer" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.__startFrequencyTimer" />
       <keyword name="HistoryManager.__startFrequencyTimer" id="HistoryManager.__startFrequencyTimer" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.__startFrequencyTimer" />
       <keyword name="HistoryManager.__updateVisitCount" id="HistoryManager.__updateVisitCount" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.__updateVisitCount" />
-      <keyword name="HistoryManager._addHistoryEntry" id="HistoryManager._addHistoryEntry" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager._addHistoryEntry" />
-      <keyword name="HistoryManager._removeHistoryEntry" id="HistoryManager._removeHistoryEntry" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager._removeHistoryEntry" />
-      <keyword name="HistoryManager.addHistoryEntry" id="HistoryManager.addHistoryEntry" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.addHistoryEntry" />
       <keyword name="HistoryManager.addHistoryEntry" id="HistoryManager.addHistoryEntry" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.addHistoryEntry" />
-      <keyword name="HistoryManager.clear" id="HistoryManager.clear" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.clear" />
       <keyword name="HistoryManager.clear" id="HistoryManager.clear" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.clear" />
-      <keyword name="HistoryManager.close" id="HistoryManager.close" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.close" />
       <keyword name="HistoryManager.close" id="HistoryManager.close" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.close" />
-      <keyword name="HistoryManager.daysToExpire" id="HistoryManager.daysToExpire" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.daysToExpire" />
       <keyword name="HistoryManager.daysToExpire" id="HistoryManager.daysToExpire" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.daysToExpire" />
-      <keyword name="HistoryManager.getFileName" id="HistoryManager.getFileName" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.getFileName" />
       <keyword name="HistoryManager.getFileName" id="HistoryManager.getFileName" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.getFileName" />
-      <keyword name="HistoryManager.history" id="HistoryManager.history" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.history" />
       <keyword name="HistoryManager.history" id="HistoryManager.history" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.history" />
-      <keyword name="HistoryManager.historyContains" id="HistoryManager.historyContains" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.historyContains" />
-      <keyword name="HistoryManager.historyFilterModel" id="HistoryManager.historyFilterModel" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.historyFilterModel" />
       <keyword name="HistoryManager.historyFilterModel" id="HistoryManager.historyFilterModel" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.historyFilterModel" />
-      <keyword name="HistoryManager.historyModel" id="HistoryManager.historyModel" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.historyModel" />
       <keyword name="HistoryManager.historyModel" id="HistoryManager.historyModel" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.historyModel" />
-      <keyword name="HistoryManager.historyTreeModel" id="HistoryManager.historyTreeModel" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.historyTreeModel" />
       <keyword name="HistoryManager.historyTreeModel" id="HistoryManager.historyTreeModel" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.historyTreeModel" />
-      <keyword name="HistoryManager.preferencesChanged" id="HistoryManager.preferencesChanged" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.preferencesChanged" />
       <keyword name="HistoryManager.preferencesChanged" id="HistoryManager.preferencesChanged" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.preferencesChanged" />
-      <keyword name="HistoryManager.reload" id="HistoryManager.reload" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.reload" />
       <keyword name="HistoryManager.reload" id="HistoryManager.reload" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.reload" />
-      <keyword name="HistoryManager.removeHistoryEntry" id="HistoryManager.removeHistoryEntry" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.removeHistoryEntry" />
       <keyword name="HistoryManager.removeHistoryEntry" id="HistoryManager.removeHistoryEntry" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.removeHistoryEntry" />
-      <keyword name="HistoryManager.save" id="HistoryManager.save" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.save" />
       <keyword name="HistoryManager.save" id="HistoryManager.save" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.save" />
-      <keyword name="HistoryManager.setDaysToExpire" id="HistoryManager.setDaysToExpire" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.setDaysToExpire" />
       <keyword name="HistoryManager.setDaysToExpire" id="HistoryManager.setDaysToExpire" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.setDaysToExpire" />
-      <keyword name="HistoryManager.setHistory" id="HistoryManager.setHistory" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.setHistory" />
       <keyword name="HistoryManager.setHistory" id="HistoryManager.setHistory" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.setHistory" />
       <keyword name="HistoryManager.siteVisitsCount" id="HistoryManager.siteVisitsCount" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.siteVisitsCount" />
-      <keyword name="HistoryManager.updateHistoryEntry" id="HistoryManager.updateHistoryEntry" ref="eric6.Helpviewer.History.HistoryManager.html#HistoryManager.updateHistoryEntry" />
       <keyword name="HistoryManager.updateHistoryEntry" id="HistoryManager.updateHistoryEntry" ref="eric6.WebBrowser.History.HistoryManager.html#HistoryManager.updateHistoryEntry" />
-      <keyword name="HistoryMenu" id="HistoryMenu" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenu" />
       <keyword name="HistoryMenu" id="HistoryMenu" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenu" />
-      <keyword name="HistoryMenu (Constructor)" id="HistoryMenu (Constructor)" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenu.__init__" />
       <keyword name="HistoryMenu (Constructor)" id="HistoryMenu (Constructor)" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenu.__init__" />
-      <keyword name="HistoryMenu (Module)" id="HistoryMenu (Module)" ref="eric6.Helpviewer.History.HistoryMenu.html" />
       <keyword name="HistoryMenu (Module)" id="HistoryMenu (Module)" ref="eric6.WebBrowser.History.HistoryMenu.html" />
-      <keyword name="HistoryMenu.__aboutToShowClosedTabsMenu" id="HistoryMenu.__aboutToShowClosedTabsMenu" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenu.__aboutToShowClosedTabsMenu" />
       <keyword name="HistoryMenu.__aboutToShowClosedTabsMenu" id="HistoryMenu.__aboutToShowClosedTabsMenu" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenu.__aboutToShowClosedTabsMenu" />
-      <keyword name="HistoryMenu.__activated" id="HistoryMenu.__activated" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenu.__activated" />
       <keyword name="HistoryMenu.__activated" id="HistoryMenu.__activated" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenu.__activated" />
-      <keyword name="HistoryMenu.__clearHistoryDialog" id="HistoryMenu.__clearHistoryDialog" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenu.__clearHistoryDialog" />
       <keyword name="HistoryMenu.__clearHistoryDialog" id="HistoryMenu.__clearHistoryDialog" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenu.__clearHistoryDialog" />
-      <keyword name="HistoryMenu.__closedTabAvailable" id="HistoryMenu.__closedTabAvailable" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenu.__closedTabAvailable" />
       <keyword name="HistoryMenu.__closedTabAvailable" id="HistoryMenu.__closedTabAvailable" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenu.__closedTabAvailable" />
-      <keyword name="HistoryMenu.__showHistoryDialog" id="HistoryMenu.__showHistoryDialog" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenu.__showHistoryDialog" />
-      <keyword name="HistoryMenu.postPopulated" id="HistoryMenu.postPopulated" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenu.postPopulated" />
       <keyword name="HistoryMenu.postPopulated" id="HistoryMenu.postPopulated" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenu.postPopulated" />
-      <keyword name="HistoryMenu.prePopulated" id="HistoryMenu.prePopulated" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenu.prePopulated" />
       <keyword name="HistoryMenu.prePopulated" id="HistoryMenu.prePopulated" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenu.prePopulated" />
-      <keyword name="HistoryMenu.setInitialActions" id="HistoryMenu.setInitialActions" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenu.setInitialActions" />
       <keyword name="HistoryMenu.setInitialActions" id="HistoryMenu.setInitialActions" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenu.setInitialActions" />
       <keyword name="HistoryMenu.showHistoryDialog" id="HistoryMenu.showHistoryDialog" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenu.showHistoryDialog" />
-      <keyword name="HistoryMenuModel" id="HistoryMenuModel" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenuModel" />
       <keyword name="HistoryMenuModel" id="HistoryMenuModel" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenuModel" />
-      <keyword name="HistoryMenuModel (Constructor)" id="HistoryMenuModel (Constructor)" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenuModel.__init__" />
       <keyword name="HistoryMenuModel (Constructor)" id="HistoryMenuModel (Constructor)" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenuModel.__init__" />
-      <keyword name="HistoryMenuModel.bumpedRows" id="HistoryMenuModel.bumpedRows" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenuModel.bumpedRows" />
       <keyword name="HistoryMenuModel.bumpedRows" id="HistoryMenuModel.bumpedRows" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenuModel.bumpedRows" />
-      <keyword name="HistoryMenuModel.columnCount" id="HistoryMenuModel.columnCount" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenuModel.columnCount" />
       <keyword name="HistoryMenuModel.columnCount" id="HistoryMenuModel.columnCount" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenuModel.columnCount" />
-      <keyword name="HistoryMenuModel.index" id="HistoryMenuModel.index" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenuModel.index" />
       <keyword name="HistoryMenuModel.index" id="HistoryMenuModel.index" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenuModel.index" />
-      <keyword name="HistoryMenuModel.mapFromSource" id="HistoryMenuModel.mapFromSource" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenuModel.mapFromSource" />
       <keyword name="HistoryMenuModel.mapFromSource" id="HistoryMenuModel.mapFromSource" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenuModel.mapFromSource" />
-      <keyword name="HistoryMenuModel.mapToSource" id="HistoryMenuModel.mapToSource" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenuModel.mapToSource" />
       <keyword name="HistoryMenuModel.mapToSource" id="HistoryMenuModel.mapToSource" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenuModel.mapToSource" />
-      <keyword name="HistoryMenuModel.mimeData" id="HistoryMenuModel.mimeData" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenuModel.mimeData" />
       <keyword name="HistoryMenuModel.mimeData" id="HistoryMenuModel.mimeData" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenuModel.mimeData" />
-      <keyword name="HistoryMenuModel.parent" id="HistoryMenuModel.parent" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenuModel.parent" />
       <keyword name="HistoryMenuModel.parent" id="HistoryMenuModel.parent" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenuModel.parent" />
-      <keyword name="HistoryMenuModel.rowCount" id="HistoryMenuModel.rowCount" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMenuModel.rowCount" />
       <keyword name="HistoryMenuModel.rowCount" id="HistoryMenuModel.rowCount" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMenuModel.rowCount" />
-      <keyword name="HistoryModel" id="HistoryModel" ref="eric6.Helpviewer.History.HistoryModel.html#HistoryModel" />
       <keyword name="HistoryModel" id="HistoryModel" ref="eric6.WebBrowser.History.HistoryModel.html#HistoryModel" />
-      <keyword name="HistoryModel (Constructor)" id="HistoryModel (Constructor)" ref="eric6.Helpviewer.History.HistoryModel.html#HistoryModel.__init__" />
       <keyword name="HistoryModel (Constructor)" id="HistoryModel (Constructor)" ref="eric6.WebBrowser.History.HistoryModel.html#HistoryModel.__init__" />
-      <keyword name="HistoryModel (Module)" id="HistoryModel (Module)" ref="eric6.Helpviewer.History.HistoryModel.html" />
       <keyword name="HistoryModel (Module)" id="HistoryModel (Module)" ref="eric6.WebBrowser.History.HistoryModel.html" />
-      <keyword name="HistoryModel.columnCount" id="HistoryModel.columnCount" ref="eric6.Helpviewer.History.HistoryModel.html#HistoryModel.columnCount" />
       <keyword name="HistoryModel.columnCount" id="HistoryModel.columnCount" ref="eric6.WebBrowser.History.HistoryModel.html#HistoryModel.columnCount" />
-      <keyword name="HistoryModel.data" id="HistoryModel.data" ref="eric6.Helpviewer.History.HistoryModel.html#HistoryModel.data" />
       <keyword name="HistoryModel.data" id="HistoryModel.data" ref="eric6.WebBrowser.History.HistoryModel.html#HistoryModel.data" />
-      <keyword name="HistoryModel.entryAdded" id="HistoryModel.entryAdded" ref="eric6.Helpviewer.History.HistoryModel.html#HistoryModel.entryAdded" />
       <keyword name="HistoryModel.entryAdded" id="HistoryModel.entryAdded" ref="eric6.WebBrowser.History.HistoryModel.html#HistoryModel.entryAdded" />
-      <keyword name="HistoryModel.entryUpdated" id="HistoryModel.entryUpdated" ref="eric6.Helpviewer.History.HistoryModel.html#HistoryModel.entryUpdated" />
       <keyword name="HistoryModel.entryUpdated" id="HistoryModel.entryUpdated" ref="eric6.WebBrowser.History.HistoryModel.html#HistoryModel.entryUpdated" />
-      <keyword name="HistoryModel.headerData" id="HistoryModel.headerData" ref="eric6.Helpviewer.History.HistoryModel.html#HistoryModel.headerData" />
       <keyword name="HistoryModel.headerData" id="HistoryModel.headerData" ref="eric6.WebBrowser.History.HistoryModel.html#HistoryModel.headerData" />
-      <keyword name="HistoryModel.historyReset" id="HistoryModel.historyReset" ref="eric6.Helpviewer.History.HistoryModel.html#HistoryModel.historyReset" />
       <keyword name="HistoryModel.historyReset" id="HistoryModel.historyReset" ref="eric6.WebBrowser.History.HistoryModel.html#HistoryModel.historyReset" />
-      <keyword name="HistoryModel.removeRows" id="HistoryModel.removeRows" ref="eric6.Helpviewer.History.HistoryModel.html#HistoryModel.removeRows" />
       <keyword name="HistoryModel.removeRows" id="HistoryModel.removeRows" ref="eric6.WebBrowser.History.HistoryModel.html#HistoryModel.removeRows" />
-      <keyword name="HistoryModel.rowCount" id="HistoryModel.rowCount" ref="eric6.Helpviewer.History.HistoryModel.html#HistoryModel.rowCount" />
       <keyword name="HistoryModel.rowCount" id="HistoryModel.rowCount" ref="eric6.WebBrowser.History.HistoryModel.html#HistoryModel.rowCount" />
-      <keyword name="HistoryMostVisitedMenu" id="HistoryMostVisitedMenu" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMostVisitedMenu" />
       <keyword name="HistoryMostVisitedMenu" id="HistoryMostVisitedMenu" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMostVisitedMenu" />
-      <keyword name="HistoryMostVisitedMenu (Constructor)" id="HistoryMostVisitedMenu (Constructor)" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMostVisitedMenu.__init__" />
       <keyword name="HistoryMostVisitedMenu (Constructor)" id="HistoryMostVisitedMenu (Constructor)" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMostVisitedMenu.__init__" />
-      <keyword name="HistoryMostVisitedMenu.__activated" id="HistoryMostVisitedMenu.__activated" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMostVisitedMenu.__activated" />
       <keyword name="HistoryMostVisitedMenu.__activated" id="HistoryMostVisitedMenu.__activated" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMostVisitedMenu.__activated" />
-      <keyword name="HistoryMostVisitedMenu.prePopulated" id="HistoryMostVisitedMenu.prePopulated" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMostVisitedMenu.prePopulated" />
       <keyword name="HistoryMostVisitedMenu.prePopulated" id="HistoryMostVisitedMenu.prePopulated" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMostVisitedMenu.prePopulated" />
-      <keyword name="HistoryMostVisitedMenuModel" id="HistoryMostVisitedMenuModel" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMostVisitedMenuModel" />
       <keyword name="HistoryMostVisitedMenuModel" id="HistoryMostVisitedMenuModel" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMostVisitedMenuModel" />
-      <keyword name="HistoryMostVisitedMenuModel (Constructor)" id="HistoryMostVisitedMenuModel (Constructor)" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMostVisitedMenuModel.__init__" />
       <keyword name="HistoryMostVisitedMenuModel (Constructor)" id="HistoryMostVisitedMenuModel (Constructor)" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMostVisitedMenuModel.__init__" />
-      <keyword name="HistoryMostVisitedMenuModel.lessThan" id="HistoryMostVisitedMenuModel.lessThan" ref="eric6.Helpviewer.History.HistoryMenu.html#HistoryMostVisitedMenuModel.lessThan" />
       <keyword name="HistoryMostVisitedMenuModel.lessThan" id="HistoryMostVisitedMenuModel.lessThan" ref="eric6.WebBrowser.History.HistoryMenu.html#HistoryMostVisitedMenuModel.lessThan" />
-      <keyword name="HistoryTreeModel" id="HistoryTreeModel" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel" />
       <keyword name="HistoryTreeModel" id="HistoryTreeModel" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel" />
-      <keyword name="HistoryTreeModel (Constructor)" id="HistoryTreeModel (Constructor)" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.__init__" />
       <keyword name="HistoryTreeModel (Constructor)" id="HistoryTreeModel (Constructor)" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.__init__" />
-      <keyword name="HistoryTreeModel (Module)" id="HistoryTreeModel (Module)" ref="eric6.Helpviewer.History.HistoryTreeModel.html" />
       <keyword name="HistoryTreeModel (Module)" id="HistoryTreeModel (Module)" ref="eric6.WebBrowser.History.HistoryTreeModel.html" />
-      <keyword name="HistoryTreeModel.__sourceDateRow" id="HistoryTreeModel.__sourceDateRow" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.__sourceDateRow" />
       <keyword name="HistoryTreeModel.__sourceDateRow" id="HistoryTreeModel.__sourceDateRow" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.__sourceDateRow" />
-      <keyword name="HistoryTreeModel.__sourceReset" id="HistoryTreeModel.__sourceReset" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.__sourceReset" />
       <keyword name="HistoryTreeModel.__sourceReset" id="HistoryTreeModel.__sourceReset" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.__sourceReset" />
-      <keyword name="HistoryTreeModel.__sourceRowsInserted" id="HistoryTreeModel.__sourceRowsInserted" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.__sourceRowsInserted" />
       <keyword name="HistoryTreeModel.__sourceRowsInserted" id="HistoryTreeModel.__sourceRowsInserted" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.__sourceRowsInserted" />
-      <keyword name="HistoryTreeModel.__sourceRowsRemoved" id="HistoryTreeModel.__sourceRowsRemoved" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.__sourceRowsRemoved" />
       <keyword name="HistoryTreeModel.__sourceRowsRemoved" id="HistoryTreeModel.__sourceRowsRemoved" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.__sourceRowsRemoved" />
-      <keyword name="HistoryTreeModel.columnCount" id="HistoryTreeModel.columnCount" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.columnCount" />
       <keyword name="HistoryTreeModel.columnCount" id="HistoryTreeModel.columnCount" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.columnCount" />
-      <keyword name="HistoryTreeModel.data" id="HistoryTreeModel.data" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.data" />
       <keyword name="HistoryTreeModel.data" id="HistoryTreeModel.data" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.data" />
-      <keyword name="HistoryTreeModel.flags" id="HistoryTreeModel.flags" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.flags" />
       <keyword name="HistoryTreeModel.flags" id="HistoryTreeModel.flags" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.flags" />
-      <keyword name="HistoryTreeModel.hasChildren" id="HistoryTreeModel.hasChildren" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.hasChildren" />
       <keyword name="HistoryTreeModel.hasChildren" id="HistoryTreeModel.hasChildren" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.hasChildren" />
-      <keyword name="HistoryTreeModel.headerData" id="HistoryTreeModel.headerData" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.headerData" />
       <keyword name="HistoryTreeModel.headerData" id="HistoryTreeModel.headerData" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.headerData" />
-      <keyword name="HistoryTreeModel.index" id="HistoryTreeModel.index" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.index" />
       <keyword name="HistoryTreeModel.index" id="HistoryTreeModel.index" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.index" />
-      <keyword name="HistoryTreeModel.mapFromSource" id="HistoryTreeModel.mapFromSource" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.mapFromSource" />
       <keyword name="HistoryTreeModel.mapFromSource" id="HistoryTreeModel.mapFromSource" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.mapFromSource" />
-      <keyword name="HistoryTreeModel.mapToSource" id="HistoryTreeModel.mapToSource" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.mapToSource" />
       <keyword name="HistoryTreeModel.mapToSource" id="HistoryTreeModel.mapToSource" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.mapToSource" />
-      <keyword name="HistoryTreeModel.parent" id="HistoryTreeModel.parent" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.parent" />
       <keyword name="HistoryTreeModel.parent" id="HistoryTreeModel.parent" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.parent" />
-      <keyword name="HistoryTreeModel.removeRows" id="HistoryTreeModel.removeRows" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.removeRows" />
       <keyword name="HistoryTreeModel.removeRows" id="HistoryTreeModel.removeRows" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.removeRows" />
-      <keyword name="HistoryTreeModel.rowCount" id="HistoryTreeModel.rowCount" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.rowCount" />
       <keyword name="HistoryTreeModel.rowCount" id="HistoryTreeModel.rowCount" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.rowCount" />
-      <keyword name="HistoryTreeModel.setSourceModel" id="HistoryTreeModel.setSourceModel" ref="eric6.Helpviewer.History.HistoryTreeModel.html#HistoryTreeModel.setSourceModel" />
       <keyword name="HistoryTreeModel.setSourceModel" id="HistoryTreeModel.setSourceModel" ref="eric6.WebBrowser.History.HistoryTreeModel.html#HistoryTreeModel.setSourceModel" />
       <keyword name="HostnameMatcher" id="HostnameMatcher" ref="eric6.E5Network.E5NetworkProxyFactory.html#HostnameMatcher" />
       <keyword name="HostnameMatcher (Constructor)" id="HostnameMatcher (Constructor)" ref="eric6.E5Network.E5NetworkProxyFactory.html#HostnameMatcher.__init__" />
       <keyword name="HostnameMatcher.match" id="HostnameMatcher.match" ref="eric6.E5Network.E5NetworkProxyFactory.html#HostnameMatcher.match" />
       <keyword name="HostnameMatcher.pattern" id="HostnameMatcher.pattern" ref="eric6.E5Network.E5NetworkProxyFactory.html#HostnameMatcher.pattern" />
       <keyword name="HostnameMatcher.setPattern" id="HostnameMatcher.setPattern" ref="eric6.E5Network.E5NetworkProxyFactory.html#HostnameMatcher.setPattern" />
-      <keyword name="HtmlImporter" id="HtmlImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html#HtmlImporter" />
       <keyword name="HtmlImporter" id="HtmlImporter" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.HtmlImporter.html#HtmlImporter" />
-      <keyword name="HtmlImporter (Constructor)" id="HtmlImporter (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html#HtmlImporter.__init__" />
       <keyword name="HtmlImporter (Constructor)" id="HtmlImporter (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.HtmlImporter.html#HtmlImporter.__init__" />
-      <keyword name="HtmlImporter (Module)" id="HtmlImporter (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html" />
       <keyword name="HtmlImporter (Module)" id="HtmlImporter (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.HtmlImporter.html" />
-      <keyword name="HtmlImporter.importedBookmarks" id="HtmlImporter.importedBookmarks" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html#HtmlImporter.importedBookmarks" />
       <keyword name="HtmlImporter.importedBookmarks" id="HtmlImporter.importedBookmarks" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.HtmlImporter.html#HtmlImporter.importedBookmarks" />
-      <keyword name="HtmlImporter.open" id="HtmlImporter.open" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html#HtmlImporter.open" />
       <keyword name="HtmlImporter.open" id="HtmlImporter.open" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.HtmlImporter.html#HtmlImporter.open" />
-      <keyword name="HtmlImporter.setPath" id="HtmlImporter.setPath" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html#HtmlImporter.setPath" />
       <keyword name="HtmlImporter.setPath" id="HtmlImporter.setPath" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.HtmlImporter.html#HtmlImporter.setPath" />
       <keyword name="HtmlProvider" id="HtmlProvider" ref="eric6.QScintilla.MarkupProviders.HtmlProvider.html#HtmlProvider" />
       <keyword name="HtmlProvider (Constructor)" id="HtmlProvider (Constructor)" ref="eric6.QScintilla.MarkupProviders.HtmlProvider.html#HtmlProvider.__init__" />
@@ -10175,17 +8353,11 @@
       <keyword name="HyperlinkMarkupDialog.getData" id="HyperlinkMarkupDialog.getData" ref="eric6.QScintilla.MarkupProviders.HyperlinkMarkupDialog.html#HyperlinkMarkupDialog.getData" />
       <keyword name="HyperlinkMarkupDialog.on_targetEdit_textChanged" id="HyperlinkMarkupDialog.on_targetEdit_textChanged" ref="eric6.QScintilla.MarkupProviders.HyperlinkMarkupDialog.html#HyperlinkMarkupDialog.on_targetEdit_textChanged" />
       <keyword name="HyperlinkMarkupDialog.on_textEdit_textChanged" id="HyperlinkMarkupDialog.on_textEdit_textChanged" ref="eric6.QScintilla.MarkupProviders.HyperlinkMarkupDialog.html#HyperlinkMarkupDialog.on_textEdit_textChanged" />
-      <keyword name="IExplorerImporter" id="IExplorerImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.html#IExplorerImporter" />
       <keyword name="IExplorerImporter" id="IExplorerImporter" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.IExplorerImporter.html#IExplorerImporter" />
-      <keyword name="IExplorerImporter (Constructor)" id="IExplorerImporter (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.html#IExplorerImporter.__init__" />
       <keyword name="IExplorerImporter (Constructor)" id="IExplorerImporter (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.IExplorerImporter.html#IExplorerImporter.__init__" />
-      <keyword name="IExplorerImporter (Module)" id="IExplorerImporter (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.html" />
       <keyword name="IExplorerImporter (Module)" id="IExplorerImporter (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.IExplorerImporter.html" />
-      <keyword name="IExplorerImporter.importedBookmarks" id="IExplorerImporter.importedBookmarks" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.html#IExplorerImporter.importedBookmarks" />
       <keyword name="IExplorerImporter.importedBookmarks" id="IExplorerImporter.importedBookmarks" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.IExplorerImporter.html#IExplorerImporter.importedBookmarks" />
-      <keyword name="IExplorerImporter.open" id="IExplorerImporter.open" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.html#IExplorerImporter.open" />
       <keyword name="IExplorerImporter.open" id="IExplorerImporter.open" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.IExplorerImporter.html#IExplorerImporter.open" />
-      <keyword name="IExplorerImporter.setPath" id="IExplorerImporter.setPath" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.html#IExplorerImporter.setPath" />
       <keyword name="IExplorerImporter.setPath" id="IExplorerImporter.setPath" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.IExplorerImporter.html#IExplorerImporter.setPath" />
       <keyword name="IRC (Package)" id="IRC (Package)" ref="index-eric6.Network.IRC.html" />
       <keyword name="IbmWatsonEngine" id="IbmWatsonEngine" ref="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorEngines.IbmWatsonEngine.html#IbmWatsonEngine" />
@@ -10436,13 +8608,9 @@
       <keyword name="InputDialogWizardDialog.on_bTest_clicked" id="InputDialogWizardDialog.on_bTest_clicked" ref="eric6.Plugins.WizardPlugins.InputDialogWizard.InputDialogWizardDialog.html#InputDialogWizardDialog.on_bTest_clicked" />
       <keyword name="InputDialogWizardDialog.on_buttonBox_clicked" id="InputDialogWizardDialog.on_buttonBox_clicked" ref="eric6.Plugins.WizardPlugins.InputDialogWizard.InputDialogWizardDialog.html#InputDialogWizardDialog.on_buttonBox_clicked" />
       <keyword name="InputDialogWizardDialog.on_rItem_toggled" id="InputDialogWizardDialog.on_rItem_toggled" ref="eric6.Plugins.WizardPlugins.InputDialogWizard.InputDialogWizardDialog.html#InputDialogWizardDialog.on_rItem_toggled" />
-      <keyword name="InsertBookmarksCommand" id="InsertBookmarksCommand" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#InsertBookmarksCommand" />
       <keyword name="InsertBookmarksCommand" id="InsertBookmarksCommand" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#InsertBookmarksCommand" />
-      <keyword name="InsertBookmarksCommand (Constructor)" id="InsertBookmarksCommand (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#InsertBookmarksCommand.__init__" />
       <keyword name="InsertBookmarksCommand (Constructor)" id="InsertBookmarksCommand (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#InsertBookmarksCommand.__init__" />
-      <keyword name="InsertBookmarksCommand.redo" id="InsertBookmarksCommand.redo" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#InsertBookmarksCommand.redo" />
       <keyword name="InsertBookmarksCommand.redo" id="InsertBookmarksCommand.redo" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#InsertBookmarksCommand.redo" />
-      <keyword name="InsertBookmarksCommand.undo" id="InsertBookmarksCommand.undo" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#InsertBookmarksCommand.undo" />
       <keyword name="InsertBookmarksCommand.undo" id="InsertBookmarksCommand.undo" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#InsertBookmarksCommand.undo" />
       <keyword name="Interface" id="Interface" ref="eric6.Utilities.ClassBrowsers.idlclbr.html#Interface" />
       <keyword name="Interface (Constructor)" id="Interface (Constructor)" ref="eric6.Utilities.ClassBrowsers.idlclbr.html#Interface.__init__" />
@@ -10796,14 +8964,6 @@
       <keyword name="IrcWidget.on_channelsWidget_tabCloseRequested" id="IrcWidget.on_channelsWidget_tabCloseRequested" ref="eric6.Network.IRC.IrcWidget.html#IrcWidget.on_channelsWidget_tabCloseRequested" />
       <keyword name="IrcWidget.shutdown" id="IrcWidget.shutdown" ref="eric6.Network.IRC.IrcWidget.html#IrcWidget.shutdown" />
       <keyword name="JavaScript (Package)" id="JavaScript (Package)" ref="index-eric6.WebBrowser.JavaScript.html" />
-      <keyword name="JavaScriptEricObject" id="JavaScriptEricObject" ref="eric6.Helpviewer.HelpBrowserWV.html#JavaScriptEricObject" />
-      <keyword name="JavaScriptEricObject (Constructor)" id="JavaScriptEricObject (Constructor)" ref="eric6.Helpviewer.HelpBrowserWV.html#JavaScriptEricObject.__init__" />
-      <keyword name="JavaScriptEricObject.providerString" id="JavaScriptEricObject.providerString" ref="eric6.Helpviewer.HelpBrowserWV.html#JavaScriptEricObject.providerString" />
-      <keyword name="JavaScriptEricObject.searchUrl" id="JavaScriptEricObject.searchUrl" ref="eric6.Helpviewer.HelpBrowserWV.html#JavaScriptEricObject.searchUrl" />
-      <keyword name="JavaScriptEricObject.translate" id="JavaScriptEricObject.translate" ref="eric6.Helpviewer.HelpBrowserWV.html#JavaScriptEricObject.translate" />
-      <keyword name="JavaScriptExternalObject" id="JavaScriptExternalObject" ref="eric6.Helpviewer.HelpBrowserWV.html#JavaScriptExternalObject" />
-      <keyword name="JavaScriptExternalObject (Constructor)" id="JavaScriptExternalObject (Constructor)" ref="eric6.Helpviewer.HelpBrowserWV.html#JavaScriptExternalObject.__init__" />
-      <keyword name="JavaScriptExternalObject.AddSearchProvider" id="JavaScriptExternalObject.AddSearchProvider" ref="eric6.Helpviewer.HelpBrowserWV.html#JavaScriptExternalObject.AddSearchProvider" />
       <keyword name="JavaScriptIcon" id="JavaScriptIcon" ref="eric6.WebBrowser.StatusBar.JavaScriptIcon.html#JavaScriptIcon" />
       <keyword name="JavaScriptIcon (Constructor)" id="JavaScriptIcon (Constructor)" ref="eric6.WebBrowser.StatusBar.JavaScriptIcon.html#JavaScriptIcon.__init__" />
       <keyword name="JavaScriptIcon (Module)" id="JavaScriptIcon (Module)" ref="eric6.WebBrowser.StatusBar.JavaScriptIcon.html" />
@@ -10813,7 +8973,6 @@
       <keyword name="JavaScriptIcon.__toggleJavaScript" id="JavaScriptIcon.__toggleJavaScript" ref="eric6.WebBrowser.StatusBar.JavaScriptIcon.html#JavaScriptIcon.__toggleJavaScript" />
       <keyword name="JavaScriptIcon.__updateIcon" id="JavaScriptIcon.__updateIcon" ref="eric6.WebBrowser.StatusBar.JavaScriptIcon.html#JavaScriptIcon.__updateIcon" />
       <keyword name="JavaScriptIcon.preferencesChanged" id="JavaScriptIcon.preferencesChanged" ref="eric6.WebBrowser.StatusBar.JavaScriptIcon.html#JavaScriptIcon.preferencesChanged" />
-      <keyword name="JavaScriptResources (Module)" id="JavaScriptResources (Module)" ref="eric6.Helpviewer.JavaScriptResources.html" />
       <keyword name="JavaScriptSettingsDialog" id="JavaScriptSettingsDialog" ref="eric6.WebBrowser.StatusBar.JavaScriptSettingsDialog.html#JavaScriptSettingsDialog" />
       <keyword name="JavaScriptSettingsDialog (Constructor)" id="JavaScriptSettingsDialog (Constructor)" ref="eric6.WebBrowser.StatusBar.JavaScriptSettingsDialog.html#JavaScriptSettingsDialog.__init__" />
       <keyword name="JavaScriptSettingsDialog (Module)" id="JavaScriptSettingsDialog (Module)" ref="eric6.WebBrowser.StatusBar.JavaScriptSettingsDialog.html" />
@@ -11198,8 +9357,6 @@
       <keyword name="LineShortener.__shortenComment" id="LineShortener.__shortenComment" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#LineShortener.__shortenComment" />
       <keyword name="LineShortener.__shortenLine" id="LineShortener.__shortenLine" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#LineShortener.__shortenLine" />
       <keyword name="LineShortener.shorten" id="LineShortener.shorten" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.CodeStyleFixer.html#LineShortener.shorten" />
-      <keyword name="LinkedResource" id="LinkedResource" ref="eric6.Helpviewer.HelpBrowserWV.html#LinkedResource" />
-      <keyword name="LinkedResource (Constructor)" id="LinkedResource (Constructor)" ref="eric6.Helpviewer.HelpBrowserWV.html#LinkedResource.__init__" />
       <keyword name="ListResolver" id="ListResolver" ref="eric6.DebugClients.Python.DebugVariables.html#ListResolver" />
       <keyword name="ListResolver.getDictionary" id="ListResolver.getDictionary" ref="eric6.DebugClients.Python.DebugVariables.html#ListResolver.getDictionary" />
       <keyword name="ListResolver.resolve" id="ListResolver.resolve" ref="eric6.DebugClients.Python.DebugVariables.html#ListResolver.resolve" />
@@ -11282,13 +9439,9 @@
       <keyword name="LoggingVisitor.visit_BinOp" id="LoggingVisitor.visit_BinOp" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#LoggingVisitor.visit_BinOp" />
       <keyword name="LoggingVisitor.visit_Call" id="LoggingVisitor.visit_Call" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#LoggingVisitor.visit_Call" />
       <keyword name="LoggingVisitor.visit_JoinedStr" id="LoggingVisitor.visit_JoinedStr" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#LoggingVisitor.visit_JoinedStr" />
-      <keyword name="LoginForm" id="LoginForm" ref="eric6.Helpviewer.Passwords.LoginForm.html#LoginForm" />
       <keyword name="LoginForm" id="LoginForm" ref="eric6.WebBrowser.Passwords.LoginForm.html#LoginForm" />
-      <keyword name="LoginForm (Constructor)" id="LoginForm (Constructor)" ref="eric6.Helpviewer.Passwords.LoginForm.html#LoginForm.__init__" />
       <keyword name="LoginForm (Constructor)" id="LoginForm (Constructor)" ref="eric6.WebBrowser.Passwords.LoginForm.html#LoginForm.__init__" />
-      <keyword name="LoginForm (Module)" id="LoginForm (Module)" ref="eric6.Helpviewer.Passwords.LoginForm.html" />
       <keyword name="LoginForm (Module)" id="LoginForm (Module)" ref="eric6.WebBrowser.Passwords.LoginForm.html" />
-      <keyword name="LoginForm.isValid" id="LoginForm.isValid" ref="eric6.Helpviewer.Passwords.LoginForm.html#LoginForm.isValid" />
       <keyword name="LoginForm.isValid" id="LoginForm.isValid" ref="eric6.WebBrowser.Passwords.LoginForm.html#LoginForm.isValid" />
       <keyword name="MakePropertiesDialog" id="MakePropertiesDialog" ref="eric6.Project.MakePropertiesDialog.html#MakePropertiesDialog" />
       <keyword name="MakePropertiesDialog (Constructor)" id="MakePropertiesDialog (Constructor)" ref="eric6.Project.MakePropertiesDialog.html#MakePropertiesDialog.__init__" />
@@ -11405,7 +9558,7 @@
       <keyword name="MessageBoxWizardDialog (Module)" id="MessageBoxWizardDialog (Module)" ref="eric6.Plugins.WizardPlugins.MessageBoxWizard.MessageBoxWizardDialog.html" />
       <keyword name="MessageBoxWizardDialog.__enabledGroups" id="MessageBoxWizardDialog.__enabledGroups" ref="eric6.Plugins.WizardPlugins.MessageBoxWizard.MessageBoxWizardDialog.html#MessageBoxWizardDialog.__enabledGroups" />
       <keyword name="MessageBoxWizardDialog.__getButtonCode" id="MessageBoxWizardDialog.__getButtonCode" ref="eric6.Plugins.WizardPlugins.MessageBoxWizard.MessageBoxWizardDialog.html#MessageBoxWizardDialog.__getButtonCode" />
-      <keyword name="MessageBoxWizardDialog.__testQt42" id="MessageBoxWizardDialog.__testQt42" ref="eric6.Plugins.WizardPlugins.MessageBoxWizard.MessageBoxWizardDialog.html#MessageBoxWizardDialog.__testQt42" />
+      <keyword name="MessageBoxWizardDialog.__testSelectedOptions" id="MessageBoxWizardDialog.__testSelectedOptions" ref="eric6.Plugins.WizardPlugins.MessageBoxWizard.MessageBoxWizardDialog.html#MessageBoxWizardDialog.__testSelectedOptions" />
       <keyword name="MessageBoxWizardDialog.getCode" id="MessageBoxWizardDialog.getCode" ref="eric6.Plugins.WizardPlugins.MessageBoxWizard.MessageBoxWizardDialog.html#MessageBoxWizardDialog.getCode" />
       <keyword name="MessageBoxWizardDialog.on_bTest_clicked" id="MessageBoxWizardDialog.on_bTest_clicked" ref="eric6.Plugins.WizardPlugins.MessageBoxWizard.MessageBoxWizardDialog.html#MessageBoxWizardDialog.on_bTest_clicked" />
       <keyword name="MessageBoxWizardDialog.on_buttonBox_clicked" id="MessageBoxWizardDialog.on_buttonBox_clicked" ref="eric6.Plugins.WizardPlugins.MessageBoxWizard.MessageBoxWizardDialog.html#MessageBoxWizardDialog.on_buttonBox_clicked" />
@@ -11983,27 +10136,8 @@
       <keyword name="NdArrayResolver.__isNumeric" id="NdArrayResolver.__isNumeric" ref="eric6.DebugClients.Python.DebugVariables.html#NdArrayResolver.__isNumeric" />
       <keyword name="NdArrayResolver.getDictionary" id="NdArrayResolver.getDictionary" ref="eric6.DebugClients.Python.DebugVariables.html#NdArrayResolver.getDictionary" />
       <keyword name="NdArrayResolver.resolve" id="NdArrayResolver.resolve" ref="eric6.DebugClients.Python.DebugVariables.html#NdArrayResolver.resolve" />
-      <keyword name="Network (Package)" id="Network (Package)" ref="index-eric6.Helpviewer.Network.html" />
       <keyword name="Network (Package)" id="Network (Package)" ref="index-eric6.Network.html" />
       <keyword name="Network (Package)" id="Network (Package)" ref="index-eric6.WebBrowser.Network.html" />
-      <keyword name="NetworkAccessManager" id="NetworkAccessManager" ref="eric6.Helpviewer.Network.NetworkAccessManager.html#NetworkAccessManager" />
-      <keyword name="NetworkAccessManager (Constructor)" id="NetworkAccessManager (Constructor)" ref="eric6.Helpviewer.Network.NetworkAccessManager.html#NetworkAccessManager.__init__" />
-      <keyword name="NetworkAccessManager (Module)" id="NetworkAccessManager (Module)" ref="eric6.Helpviewer.Network.NetworkAccessManager.html" />
-      <keyword name="NetworkAccessManager.__authenticationRequired" id="NetworkAccessManager.__authenticationRequired" ref="eric6.Helpviewer.Network.NetworkAccessManager.html#NetworkAccessManager.__authenticationRequired" />
-      <keyword name="NetworkAccessManager.__setDiskCache" id="NetworkAccessManager.__setDiskCache" ref="eric6.Helpviewer.Network.NetworkAccessManager.html#NetworkAccessManager.__setDiskCache" />
-      <keyword name="NetworkAccessManager.createRequest" id="NetworkAccessManager.createRequest" ref="eric6.Helpviewer.Network.NetworkAccessManager.html#NetworkAccessManager.createRequest" />
-      <keyword name="NetworkAccessManager.languagesChanged" id="NetworkAccessManager.languagesChanged" ref="eric6.Helpviewer.Network.NetworkAccessManager.html#NetworkAccessManager.languagesChanged" />
-      <keyword name="NetworkAccessManager.preferencesChanged" id="NetworkAccessManager.preferencesChanged" ref="eric6.Helpviewer.Network.NetworkAccessManager.html#NetworkAccessManager.preferencesChanged" />
-      <keyword name="NetworkAccessManager.setSchemeHandler" id="NetworkAccessManager.setSchemeHandler" ref="eric6.Helpviewer.Network.NetworkAccessManager.html#NetworkAccessManager.setSchemeHandler" />
-      <keyword name="NetworkAccessManagerProxy" id="NetworkAccessManagerProxy" ref="eric6.Helpviewer.Network.NetworkAccessManagerProxy.html#NetworkAccessManagerProxy" />
-      <keyword name="NetworkAccessManagerProxy (Constructor)" id="NetworkAccessManagerProxy (Constructor)" ref="eric6.Helpviewer.Network.NetworkAccessManagerProxy.html#NetworkAccessManagerProxy.__init__" />
-      <keyword name="NetworkAccessManagerProxy (Module)" id="NetworkAccessManagerProxy (Module)" ref="eric6.Helpviewer.Network.NetworkAccessManagerProxy.html" />
-      <keyword name="NetworkAccessManagerProxy.createRequest" id="NetworkAccessManagerProxy.createRequest" ref="eric6.Helpviewer.Network.NetworkAccessManagerProxy.html#NetworkAccessManagerProxy.createRequest" />
-      <keyword name="NetworkAccessManagerProxy.setPrimaryNetworkAccessManager" id="NetworkAccessManagerProxy.setPrimaryNetworkAccessManager" ref="eric6.Helpviewer.Network.NetworkAccessManagerProxy.html#NetworkAccessManagerProxy.setPrimaryNetworkAccessManager" />
-      <keyword name="NetworkAccessManagerProxy.setWebPage" id="NetworkAccessManagerProxy.setWebPage" ref="eric6.Helpviewer.Network.NetworkAccessManagerProxy.html#NetworkAccessManagerProxy.setWebPage" />
-      <keyword name="NetworkDiskCache" id="NetworkDiskCache" ref="eric6.Helpviewer.Network.NetworkDiskCache.html#NetworkDiskCache" />
-      <keyword name="NetworkDiskCache (Module)" id="NetworkDiskCache (Module)" ref="eric6.Helpviewer.Network.NetworkDiskCache.html" />
-      <keyword name="NetworkDiskCache.prepare" id="NetworkDiskCache.prepare" ref="eric6.Helpviewer.Network.NetworkDiskCache.html#NetworkDiskCache.prepare" />
       <keyword name="NetworkManager" id="NetworkManager" ref="eric6.WebBrowser.Network.NetworkManager.html#NetworkManager" />
       <keyword name="NetworkManager (Constructor)" id="NetworkManager (Constructor)" ref="eric6.WebBrowser.Network.NetworkManager.html#NetworkManager.__init__" />
       <keyword name="NetworkManager (Module)" id="NetworkManager (Module)" ref="eric6.WebBrowser.Network.NetworkManager.html" />
@@ -12028,19 +10162,6 @@
       <keyword name="NetworkPage.on_ftpProxyTypeCombo_currentIndexChanged" id="NetworkPage.on_ftpProxyTypeCombo_currentIndexChanged" ref="eric6.Preferences.ConfigurationPages.NetworkPage.html#NetworkPage.on_ftpProxyTypeCombo_currentIndexChanged" />
       <keyword name="NetworkPage.save" id="NetworkPage.save" ref="eric6.Preferences.ConfigurationPages.NetworkPage.html#NetworkPage.save" />
       <keyword name="NetworkPage.setMode" id="NetworkPage.setMode" ref="eric6.Preferences.ConfigurationPages.NetworkPage.html#NetworkPage.setMode" />
-      <keyword name="NetworkProtocolUnknownErrorReply" id="NetworkProtocolUnknownErrorReply" ref="eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply.html#NetworkProtocolUnknownErrorReply" />
-      <keyword name="NetworkProtocolUnknownErrorReply (Constructor)" id="NetworkProtocolUnknownErrorReply (Constructor)" ref="eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply.html#NetworkProtocolUnknownErrorReply.__init__" />
-      <keyword name="NetworkProtocolUnknownErrorReply (Module)" id="NetworkProtocolUnknownErrorReply (Module)" ref="eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply.html" />
-      <keyword name="NetworkProtocolUnknownErrorReply.__fireSignals" id="NetworkProtocolUnknownErrorReply.__fireSignals" ref="eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply.html#NetworkProtocolUnknownErrorReply.__fireSignals" />
-      <keyword name="NetworkProtocolUnknownErrorReply.abort" id="NetworkProtocolUnknownErrorReply.abort" ref="eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply.html#NetworkProtocolUnknownErrorReply.abort" />
-      <keyword name="NetworkProtocolUnknownErrorReply.bytesAvailable" id="NetworkProtocolUnknownErrorReply.bytesAvailable" ref="eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply.html#NetworkProtocolUnknownErrorReply.bytesAvailable" />
-      <keyword name="NetworkReply" id="NetworkReply" ref="eric6.Helpviewer.Network.NetworkReply.html#NetworkReply" />
-      <keyword name="NetworkReply (Constructor)" id="NetworkReply (Constructor)" ref="eric6.Helpviewer.Network.NetworkReply.html#NetworkReply.__init__" />
-      <keyword name="NetworkReply (Module)" id="NetworkReply (Module)" ref="eric6.Helpviewer.Network.NetworkReply.html" />
-      <keyword name="NetworkReply.abort" id="NetworkReply.abort" ref="eric6.Helpviewer.Network.NetworkReply.html#NetworkReply.abort" />
-      <keyword name="NetworkReply.bytesAvailable" id="NetworkReply.bytesAvailable" ref="eric6.Helpviewer.Network.NetworkReply.html#NetworkReply.bytesAvailable" />
-      <keyword name="NetworkReply.isFinished" id="NetworkReply.isFinished" ref="eric6.Helpviewer.Network.NetworkReply.html#NetworkReply.isFinished" />
-      <keyword name="NetworkReply.readData" id="NetworkReply.readData" ref="eric6.Helpviewer.Network.NetworkReply.html#NetworkReply.readData" />
       <keyword name="NetworkUrlInterceptor" id="NetworkUrlInterceptor" ref="eric6.WebBrowser.Network.NetworkUrlInterceptor.html#NetworkUrlInterceptor" />
       <keyword name="NetworkUrlInterceptor (Constructor)" id="NetworkUrlInterceptor (Constructor)" ref="eric6.WebBrowser.Network.NetworkUrlInterceptor.html#NetworkUrlInterceptor.__init__" />
       <keyword name="NetworkUrlInterceptor (Module)" id="NetworkUrlInterceptor (Module)" ref="eric6.WebBrowser.Network.NetworkUrlInterceptor.html" />
@@ -12067,11 +10188,6 @@
       <keyword name="NewPythonPackageDialog (Module)" id="NewPythonPackageDialog (Module)" ref="eric6.Project.NewPythonPackageDialog.html" />
       <keyword name="NewPythonPackageDialog.getData" id="NewPythonPackageDialog.getData" ref="eric6.Project.NewPythonPackageDialog.html#NewPythonPackageDialog.getData" />
       <keyword name="NewPythonPackageDialog.on_packageEdit_textChanged" id="NewPythonPackageDialog.on_packageEdit_textChanged" ref="eric6.Project.NewPythonPackageDialog.html#NewPythonPackageDialog.on_packageEdit_textChanged" />
-      <keyword name="NoCacheHostsDialog" id="NoCacheHostsDialog" ref="eric6.Helpviewer.Network.NoCacheHostsDialog.html#NoCacheHostsDialog" />
-      <keyword name="NoCacheHostsDialog (Constructor)" id="NoCacheHostsDialog (Constructor)" ref="eric6.Helpviewer.Network.NoCacheHostsDialog.html#NoCacheHostsDialog.__init__" />
-      <keyword name="NoCacheHostsDialog (Module)" id="NoCacheHostsDialog (Module)" ref="eric6.Helpviewer.Network.NoCacheHostsDialog.html" />
-      <keyword name="NoCacheHostsDialog.accept" id="NoCacheHostsDialog.accept" ref="eric6.Helpviewer.Network.NoCacheHostsDialog.html#NoCacheHostsDialog.accept" />
-      <keyword name="NoCacheHostsDialog.on_addButton_clicked" id="NoCacheHostsDialog.on_addButton_clicked" ref="eric6.Helpviewer.Network.NoCacheHostsDialog.html#NoCacheHostsDialog.on_addButton_clicked" />
       <keyword name="NoExtToken" id="NoExtToken" ref="eric6.E5Network.E5RFC6266.html#NoExtToken" />
       <keyword name="NoExtToken.__str__" id="NoExtToken.__str__" ref="eric6.E5Network.E5RFC6266.html#NoExtToken.__str__" />
       <keyword name="NoneSplashScreen" id="NoneSplashScreen" ref="eric6.UI.SplashScreen.html#NoneSplashScreen" />
@@ -12096,31 +10212,18 @@
       <keyword name="NotificationsPage (Module)" id="NotificationsPage (Module)" ref="eric6.Preferences.ConfigurationPages.NotificationsPage.html" />
       <keyword name="NotificationsPage.on_visualButton_clicked" id="NotificationsPage.on_visualButton_clicked" ref="eric6.Preferences.ConfigurationPages.NotificationsPage.html#NotificationsPage.on_visualButton_clicked" />
       <keyword name="NotificationsPage.save" id="NotificationsPage.save" ref="eric6.Preferences.ConfigurationPages.NotificationsPage.html#NotificationsPage.save" />
-      <keyword name="NsHtmlReader" id="NsHtmlReader" ref="eric6.Helpviewer.Bookmarks.NsHtmlReader.html#NsHtmlReader" />
       <keyword name="NsHtmlReader" id="NsHtmlReader" ref="eric6.WebBrowser.Bookmarks.NsHtmlReader.html#NsHtmlReader" />
-      <keyword name="NsHtmlReader (Constructor)" id="NsHtmlReader (Constructor)" ref="eric6.Helpviewer.Bookmarks.NsHtmlReader.html#NsHtmlReader.__init__" />
       <keyword name="NsHtmlReader (Constructor)" id="NsHtmlReader (Constructor)" ref="eric6.WebBrowser.Bookmarks.NsHtmlReader.html#NsHtmlReader.__init__" />
-      <keyword name="NsHtmlReader (Module)" id="NsHtmlReader (Module)" ref="eric6.Helpviewer.Bookmarks.NsHtmlReader.html" />
       <keyword name="NsHtmlReader (Module)" id="NsHtmlReader (Module)" ref="eric6.WebBrowser.Bookmarks.NsHtmlReader.html" />
-      <keyword name="NsHtmlReader.read" id="NsHtmlReader.read" ref="eric6.Helpviewer.Bookmarks.NsHtmlReader.html#NsHtmlReader.read" />
       <keyword name="NsHtmlReader.read" id="NsHtmlReader.read" ref="eric6.WebBrowser.Bookmarks.NsHtmlReader.html#NsHtmlReader.read" />
-      <keyword name="NsHtmlWriter" id="NsHtmlWriter" ref="eric6.Helpviewer.Bookmarks.NsHtmlWriter.html#NsHtmlWriter" />
       <keyword name="NsHtmlWriter" id="NsHtmlWriter" ref="eric6.WebBrowser.Bookmarks.NsHtmlWriter.html#NsHtmlWriter" />
-      <keyword name="NsHtmlWriter (Constructor)" id="NsHtmlWriter (Constructor)" ref="eric6.Helpviewer.Bookmarks.NsHtmlWriter.html#NsHtmlWriter.__init__" />
       <keyword name="NsHtmlWriter (Constructor)" id="NsHtmlWriter (Constructor)" ref="eric6.WebBrowser.Bookmarks.NsHtmlWriter.html#NsHtmlWriter.__init__" />
-      <keyword name="NsHtmlWriter (Module)" id="NsHtmlWriter (Module)" ref="eric6.Helpviewer.Bookmarks.NsHtmlWriter.html" />
       <keyword name="NsHtmlWriter (Module)" id="NsHtmlWriter (Module)" ref="eric6.WebBrowser.Bookmarks.NsHtmlWriter.html" />
-      <keyword name="NsHtmlWriter.__write" id="NsHtmlWriter.__write" ref="eric6.Helpviewer.Bookmarks.NsHtmlWriter.html#NsHtmlWriter.__write" />
       <keyword name="NsHtmlWriter.__write" id="NsHtmlWriter.__write" ref="eric6.WebBrowser.Bookmarks.NsHtmlWriter.html#NsHtmlWriter.__write" />
-      <keyword name="NsHtmlWriter.__writeBookmark" id="NsHtmlWriter.__writeBookmark" ref="eric6.Helpviewer.Bookmarks.NsHtmlWriter.html#NsHtmlWriter.__writeBookmark" />
       <keyword name="NsHtmlWriter.__writeBookmark" id="NsHtmlWriter.__writeBookmark" ref="eric6.WebBrowser.Bookmarks.NsHtmlWriter.html#NsHtmlWriter.__writeBookmark" />
-      <keyword name="NsHtmlWriter.__writeFolder" id="NsHtmlWriter.__writeFolder" ref="eric6.Helpviewer.Bookmarks.NsHtmlWriter.html#NsHtmlWriter.__writeFolder" />
       <keyword name="NsHtmlWriter.__writeFolder" id="NsHtmlWriter.__writeFolder" ref="eric6.WebBrowser.Bookmarks.NsHtmlWriter.html#NsHtmlWriter.__writeFolder" />
-      <keyword name="NsHtmlWriter.__writeItem" id="NsHtmlWriter.__writeItem" ref="eric6.Helpviewer.Bookmarks.NsHtmlWriter.html#NsHtmlWriter.__writeItem" />
       <keyword name="NsHtmlWriter.__writeItem" id="NsHtmlWriter.__writeItem" ref="eric6.WebBrowser.Bookmarks.NsHtmlWriter.html#NsHtmlWriter.__writeItem" />
-      <keyword name="NsHtmlWriter.__writeSeparator" id="NsHtmlWriter.__writeSeparator" ref="eric6.Helpviewer.Bookmarks.NsHtmlWriter.html#NsHtmlWriter.__writeSeparator" />
       <keyword name="NsHtmlWriter.__writeSeparator" id="NsHtmlWriter.__writeSeparator" ref="eric6.WebBrowser.Bookmarks.NsHtmlWriter.html#NsHtmlWriter.__writeSeparator" />
-      <keyword name="NsHtmlWriter.write" id="NsHtmlWriter.write" ref="eric6.Helpviewer.Bookmarks.NsHtmlWriter.html#NsHtmlWriter.write" />
       <keyword name="NsHtmlWriter.write" id="NsHtmlWriter.write" ref="eric6.WebBrowser.Bookmarks.NsHtmlWriter.html#NsHtmlWriter.write" />
       <keyword name="NumbersWidget" id="NumbersWidget" ref="eric6.UI.NumbersWidget.html#NumbersWidget" />
       <keyword name="NumbersWidget (Constructor)" id="NumbersWidget (Constructor)" ref="eric6.UI.NumbersWidget.html#NumbersWidget.__init__" />
@@ -12142,236 +10245,118 @@
       <keyword name="NumbersWidget.on_octInButton_clicked" id="NumbersWidget.on_octInButton_clicked" ref="eric6.UI.NumbersWidget.html#NumbersWidget.on_octInButton_clicked" />
       <keyword name="NumbersWidget.on_octOutButton_clicked" id="NumbersWidget.on_octOutButton_clicked" ref="eric6.UI.NumbersWidget.html#NumbersWidget.on_octOutButton_clicked" />
       <keyword name="NumbersWidget.on_sizeBox_valueChanged" id="NumbersWidget.on_sizeBox_valueChanged" ref="eric6.UI.NumbersWidget.html#NumbersWidget.on_sizeBox_valueChanged" />
-      <keyword name="OfflineStorage (Package)" id="OfflineStorage (Package)" ref="index-eric6.Helpviewer.OfflineStorage.html" />
-      <keyword name="OfflineStorageConfigDialog" id="OfflineStorageConfigDialog" ref="eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog.html#OfflineStorageConfigDialog" />
-      <keyword name="OfflineStorageConfigDialog (Constructor)" id="OfflineStorageConfigDialog (Constructor)" ref="eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog.html#OfflineStorageConfigDialog.__init__" />
-      <keyword name="OfflineStorageConfigDialog (Module)" id="OfflineStorageConfigDialog (Module)" ref="eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog.html" />
-      <keyword name="OfflineStorageConfigDialog.on_showDatabasesButton_clicked" id="OfflineStorageConfigDialog.on_showDatabasesButton_clicked" ref="eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog.html#OfflineStorageConfigDialog.on_showDatabasesButton_clicked" />
-      <keyword name="OfflineStorageConfigDialog.storeData" id="OfflineStorageConfigDialog.storeData" ref="eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog.html#OfflineStorageConfigDialog.storeData" />
-      <keyword name="OpenSearch (Package)" id="OpenSearch (Package)" ref="index-eric6.Helpviewer.OpenSearch.html" />
       <keyword name="OpenSearch (Package)" id="OpenSearch (Package)" ref="index-eric6.WebBrowser.OpenSearch.html" />
-      <keyword name="OpenSearchDialog" id="OpenSearchDialog" ref="eric6.Helpviewer.OpenSearch.OpenSearchDialog.html#OpenSearchDialog" />
       <keyword name="OpenSearchDialog" id="OpenSearchDialog" ref="eric6.WebBrowser.OpenSearch.OpenSearchDialog.html#OpenSearchDialog" />
-      <keyword name="OpenSearchDialog (Constructor)" id="OpenSearchDialog (Constructor)" ref="eric6.Helpviewer.OpenSearch.OpenSearchDialog.html#OpenSearchDialog.__init__" />
       <keyword name="OpenSearchDialog (Constructor)" id="OpenSearchDialog (Constructor)" ref="eric6.WebBrowser.OpenSearch.OpenSearchDialog.html#OpenSearchDialog.__init__" />
-      <keyword name="OpenSearchDialog (Module)" id="OpenSearchDialog (Module)" ref="eric6.Helpviewer.OpenSearch.OpenSearchDialog.html" />
       <keyword name="OpenSearchDialog (Module)" id="OpenSearchDialog (Module)" ref="eric6.WebBrowser.OpenSearch.OpenSearchDialog.html" />
-      <keyword name="OpenSearchDialog.__selectionChanged" id="OpenSearchDialog.__selectionChanged" ref="eric6.Helpviewer.OpenSearch.OpenSearchDialog.html#OpenSearchDialog.__selectionChanged" />
       <keyword name="OpenSearchDialog.__selectionChanged" id="OpenSearchDialog.__selectionChanged" ref="eric6.WebBrowser.OpenSearch.OpenSearchDialog.html#OpenSearchDialog.__selectionChanged" />
-      <keyword name="OpenSearchDialog.on_addButton_clicked" id="OpenSearchDialog.on_addButton_clicked" ref="eric6.Helpviewer.OpenSearch.OpenSearchDialog.html#OpenSearchDialog.on_addButton_clicked" />
       <keyword name="OpenSearchDialog.on_addButton_clicked" id="OpenSearchDialog.on_addButton_clicked" ref="eric6.WebBrowser.OpenSearch.OpenSearchDialog.html#OpenSearchDialog.on_addButton_clicked" />
-      <keyword name="OpenSearchDialog.on_deleteButton_clicked" id="OpenSearchDialog.on_deleteButton_clicked" ref="eric6.Helpviewer.OpenSearch.OpenSearchDialog.html#OpenSearchDialog.on_deleteButton_clicked" />
       <keyword name="OpenSearchDialog.on_deleteButton_clicked" id="OpenSearchDialog.on_deleteButton_clicked" ref="eric6.WebBrowser.OpenSearch.OpenSearchDialog.html#OpenSearchDialog.on_deleteButton_clicked" />
-      <keyword name="OpenSearchDialog.on_editButton_clicked" id="OpenSearchDialog.on_editButton_clicked" ref="eric6.Helpviewer.OpenSearch.OpenSearchDialog.html#OpenSearchDialog.on_editButton_clicked" />
       <keyword name="OpenSearchDialog.on_editButton_clicked" id="OpenSearchDialog.on_editButton_clicked" ref="eric6.WebBrowser.OpenSearch.OpenSearchDialog.html#OpenSearchDialog.on_editButton_clicked" />
-      <keyword name="OpenSearchDialog.on_restoreButton_clicked" id="OpenSearchDialog.on_restoreButton_clicked" ref="eric6.Helpviewer.OpenSearch.OpenSearchDialog.html#OpenSearchDialog.on_restoreButton_clicked" />
       <keyword name="OpenSearchDialog.on_restoreButton_clicked" id="OpenSearchDialog.on_restoreButton_clicked" ref="eric6.WebBrowser.OpenSearch.OpenSearchDialog.html#OpenSearchDialog.on_restoreButton_clicked" />
-      <keyword name="OpenSearchEditDialog" id="OpenSearchEditDialog" ref="eric6.Helpviewer.OpenSearch.OpenSearchEditDialog.html#OpenSearchEditDialog" />
       <keyword name="OpenSearchEditDialog" id="OpenSearchEditDialog" ref="eric6.WebBrowser.OpenSearch.OpenSearchEditDialog.html#OpenSearchEditDialog" />
-      <keyword name="OpenSearchEditDialog (Constructor)" id="OpenSearchEditDialog (Constructor)" ref="eric6.Helpviewer.OpenSearch.OpenSearchEditDialog.html#OpenSearchEditDialog.__init__" />
       <keyword name="OpenSearchEditDialog (Constructor)" id="OpenSearchEditDialog (Constructor)" ref="eric6.WebBrowser.OpenSearch.OpenSearchEditDialog.html#OpenSearchEditDialog.__init__" />
-      <keyword name="OpenSearchEditDialog (Module)" id="OpenSearchEditDialog (Module)" ref="eric6.Helpviewer.OpenSearch.OpenSearchEditDialog.html" />
       <keyword name="OpenSearchEditDialog (Module)" id="OpenSearchEditDialog (Module)" ref="eric6.WebBrowser.OpenSearch.OpenSearchEditDialog.html" />
-      <keyword name="OpenSearchEditDialog.accept" id="OpenSearchEditDialog.accept" ref="eric6.Helpviewer.OpenSearch.OpenSearchEditDialog.html#OpenSearchEditDialog.accept" />
       <keyword name="OpenSearchEditDialog.accept" id="OpenSearchEditDialog.accept" ref="eric6.WebBrowser.OpenSearch.OpenSearchEditDialog.html#OpenSearchEditDialog.accept" />
-      <keyword name="OpenSearchEngine" id="OpenSearchEngine" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine" />
       <keyword name="OpenSearchEngine" id="OpenSearchEngine" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine" />
-      <keyword name="OpenSearchEngine (Constructor)" id="OpenSearchEngine (Constructor)" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.__init__" />
       <keyword name="OpenSearchEngine (Constructor)" id="OpenSearchEngine (Constructor)" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.__init__" />
-      <keyword name="OpenSearchEngine (Module)" id="OpenSearchEngine (Module)" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html" />
       <keyword name="OpenSearchEngine (Module)" id="OpenSearchEngine (Module)" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html" />
-      <keyword name="OpenSearchEngine.__eq__" id="OpenSearchEngine.__eq__" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.__eq__" />
       <keyword name="OpenSearchEngine.__eq__" id="OpenSearchEngine.__eq__" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.__eq__" />
-      <keyword name="OpenSearchEngine.__imageObtained" id="OpenSearchEngine.__imageObtained" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.__imageObtained" />
       <keyword name="OpenSearchEngine.__imageObtained" id="OpenSearchEngine.__imageObtained" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.__imageObtained" />
-      <keyword name="OpenSearchEngine.__lt__" id="OpenSearchEngine.__lt__" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.__lt__" />
       <keyword name="OpenSearchEngine.__lt__" id="OpenSearchEngine.__lt__" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.__lt__" />
-      <keyword name="OpenSearchEngine.__suggestionsObtained" id="OpenSearchEngine.__suggestionsObtained" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.__suggestionsObtained" />
       <keyword name="OpenSearchEngine.__suggestionsObtained" id="OpenSearchEngine.__suggestionsObtained" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.__suggestionsObtained" />
-      <keyword name="OpenSearchEngine.description" id="OpenSearchEngine.description" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.description" />
       <keyword name="OpenSearchEngine.description" id="OpenSearchEngine.description" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.description" />
-      <keyword name="OpenSearchEngine.image" id="OpenSearchEngine.image" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.image" />
       <keyword name="OpenSearchEngine.image" id="OpenSearchEngine.image" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.image" />
-      <keyword name="OpenSearchEngine.imageUrl" id="OpenSearchEngine.imageUrl" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.imageUrl" />
       <keyword name="OpenSearchEngine.imageUrl" id="OpenSearchEngine.imageUrl" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.imageUrl" />
-      <keyword name="OpenSearchEngine.isValid" id="OpenSearchEngine.isValid" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.isValid" />
       <keyword name="OpenSearchEngine.isValid" id="OpenSearchEngine.isValid" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.isValid" />
-      <keyword name="OpenSearchEngine.loadImage" id="OpenSearchEngine.loadImage" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.loadImage" />
       <keyword name="OpenSearchEngine.loadImage" id="OpenSearchEngine.loadImage" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.loadImage" />
-      <keyword name="OpenSearchEngine.name" id="OpenSearchEngine.name" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.name" />
       <keyword name="OpenSearchEngine.name" id="OpenSearchEngine.name" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.name" />
-      <keyword name="OpenSearchEngine.networkAccessManager" id="OpenSearchEngine.networkAccessManager" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.networkAccessManager" />
       <keyword name="OpenSearchEngine.networkAccessManager" id="OpenSearchEngine.networkAccessManager" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.networkAccessManager" />
-      <keyword name="OpenSearchEngine.parseTemplate" id="OpenSearchEngine.parseTemplate" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.parseTemplate" />
       <keyword name="OpenSearchEngine.parseTemplate" id="OpenSearchEngine.parseTemplate" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.parseTemplate" />
-      <keyword name="OpenSearchEngine.providesSuggestions" id="OpenSearchEngine.providesSuggestions" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.providesSuggestions" />
       <keyword name="OpenSearchEngine.providesSuggestions" id="OpenSearchEngine.providesSuggestions" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.providesSuggestions" />
-      <keyword name="OpenSearchEngine.requestSuggestions" id="OpenSearchEngine.requestSuggestions" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.requestSuggestions" />
       <keyword name="OpenSearchEngine.requestSuggestions" id="OpenSearchEngine.requestSuggestions" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.requestSuggestions" />
-      <keyword name="OpenSearchEngine.searchMethod" id="OpenSearchEngine.searchMethod" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.searchMethod" />
       <keyword name="OpenSearchEngine.searchMethod" id="OpenSearchEngine.searchMethod" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.searchMethod" />
-      <keyword name="OpenSearchEngine.searchParameters" id="OpenSearchEngine.searchParameters" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.searchParameters" />
       <keyword name="OpenSearchEngine.searchParameters" id="OpenSearchEngine.searchParameters" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.searchParameters" />
-      <keyword name="OpenSearchEngine.searchUrl" id="OpenSearchEngine.searchUrl" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.searchUrl" />
       <keyword name="OpenSearchEngine.searchUrl" id="OpenSearchEngine.searchUrl" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.searchUrl" />
-      <keyword name="OpenSearchEngine.searchUrlTemplate" id="OpenSearchEngine.searchUrlTemplate" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.searchUrlTemplate" />
       <keyword name="OpenSearchEngine.searchUrlTemplate" id="OpenSearchEngine.searchUrlTemplate" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.searchUrlTemplate" />
-      <keyword name="OpenSearchEngine.setDescription" id="OpenSearchEngine.setDescription" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setDescription" />
       <keyword name="OpenSearchEngine.setDescription" id="OpenSearchEngine.setDescription" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setDescription" />
-      <keyword name="OpenSearchEngine.setImage" id="OpenSearchEngine.setImage" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setImage" />
       <keyword name="OpenSearchEngine.setImage" id="OpenSearchEngine.setImage" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setImage" />
-      <keyword name="OpenSearchEngine.setImageUrl" id="OpenSearchEngine.setImageUrl" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setImageUrl" />
       <keyword name="OpenSearchEngine.setImageUrl" id="OpenSearchEngine.setImageUrl" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setImageUrl" />
-      <keyword name="OpenSearchEngine.setImageUrlAndLoad" id="OpenSearchEngine.setImageUrlAndLoad" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setImageUrlAndLoad" />
       <keyword name="OpenSearchEngine.setImageUrlAndLoad" id="OpenSearchEngine.setImageUrlAndLoad" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setImageUrlAndLoad" />
-      <keyword name="OpenSearchEngine.setName" id="OpenSearchEngine.setName" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setName" />
       <keyword name="OpenSearchEngine.setName" id="OpenSearchEngine.setName" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setName" />
-      <keyword name="OpenSearchEngine.setNetworkAccessManager" id="OpenSearchEngine.setNetworkAccessManager" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setNetworkAccessManager" />
       <keyword name="OpenSearchEngine.setNetworkAccessManager" id="OpenSearchEngine.setNetworkAccessManager" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setNetworkAccessManager" />
-      <keyword name="OpenSearchEngine.setSearchMethod" id="OpenSearchEngine.setSearchMethod" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setSearchMethod" />
       <keyword name="OpenSearchEngine.setSearchMethod" id="OpenSearchEngine.setSearchMethod" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setSearchMethod" />
-      <keyword name="OpenSearchEngine.setSearchParameters" id="OpenSearchEngine.setSearchParameters" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setSearchParameters" />
       <keyword name="OpenSearchEngine.setSearchParameters" id="OpenSearchEngine.setSearchParameters" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setSearchParameters" />
-      <keyword name="OpenSearchEngine.setSearchUrlTemplate" id="OpenSearchEngine.setSearchUrlTemplate" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setSearchUrlTemplate" />
       <keyword name="OpenSearchEngine.setSearchUrlTemplate" id="OpenSearchEngine.setSearchUrlTemplate" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setSearchUrlTemplate" />
-      <keyword name="OpenSearchEngine.setSuggestionsMethod" id="OpenSearchEngine.setSuggestionsMethod" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setSuggestionsMethod" />
       <keyword name="OpenSearchEngine.setSuggestionsMethod" id="OpenSearchEngine.setSuggestionsMethod" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setSuggestionsMethod" />
-      <keyword name="OpenSearchEngine.setSuggestionsParameters" id="OpenSearchEngine.setSuggestionsParameters" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setSuggestionsParameters" />
       <keyword name="OpenSearchEngine.setSuggestionsParameters" id="OpenSearchEngine.setSuggestionsParameters" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setSuggestionsParameters" />
-      <keyword name="OpenSearchEngine.setSuggestionsUrlTemplate" id="OpenSearchEngine.setSuggestionsUrlTemplate" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setSuggestionsUrlTemplate" />
       <keyword name="OpenSearchEngine.setSuggestionsUrlTemplate" id="OpenSearchEngine.setSuggestionsUrlTemplate" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.setSuggestionsUrlTemplate" />
-      <keyword name="OpenSearchEngine.suggestionsMethod" id="OpenSearchEngine.suggestionsMethod" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.suggestionsMethod" />
       <keyword name="OpenSearchEngine.suggestionsMethod" id="OpenSearchEngine.suggestionsMethod" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.suggestionsMethod" />
-      <keyword name="OpenSearchEngine.suggestionsParameters" id="OpenSearchEngine.suggestionsParameters" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.suggestionsParameters" />
       <keyword name="OpenSearchEngine.suggestionsParameters" id="OpenSearchEngine.suggestionsParameters" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.suggestionsParameters" />
-      <keyword name="OpenSearchEngine.suggestionsUrl" id="OpenSearchEngine.suggestionsUrl" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.suggestionsUrl" />
       <keyword name="OpenSearchEngine.suggestionsUrl" id="OpenSearchEngine.suggestionsUrl" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.suggestionsUrl" />
-      <keyword name="OpenSearchEngine.suggestionsUrlTemplate" id="OpenSearchEngine.suggestionsUrlTemplate" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.suggestionsUrlTemplate" />
       <keyword name="OpenSearchEngine.suggestionsUrlTemplate" id="OpenSearchEngine.suggestionsUrlTemplate" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngine.html#OpenSearchEngine.suggestionsUrlTemplate" />
-      <keyword name="OpenSearchEngineAction" id="OpenSearchEngineAction" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineAction.html#OpenSearchEngineAction" />
       <keyword name="OpenSearchEngineAction" id="OpenSearchEngineAction" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineAction.html#OpenSearchEngineAction" />
-      <keyword name="OpenSearchEngineAction (Constructor)" id="OpenSearchEngineAction (Constructor)" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineAction.html#OpenSearchEngineAction.__init__" />
       <keyword name="OpenSearchEngineAction (Constructor)" id="OpenSearchEngineAction (Constructor)" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineAction.html#OpenSearchEngineAction.__init__" />
-      <keyword name="OpenSearchEngineAction (Module)" id="OpenSearchEngineAction (Module)" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineAction.html" />
       <keyword name="OpenSearchEngineAction (Module)" id="OpenSearchEngineAction (Module)" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineAction.html" />
-      <keyword name="OpenSearchEngineAction.__imageChanged" id="OpenSearchEngineAction.__imageChanged" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineAction.html#OpenSearchEngineAction.__imageChanged" />
       <keyword name="OpenSearchEngineAction.__imageChanged" id="OpenSearchEngineAction.__imageChanged" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineAction.html#OpenSearchEngineAction.__imageChanged" />
-      <keyword name="OpenSearchEngineModel" id="OpenSearchEngineModel" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel" />
       <keyword name="OpenSearchEngineModel" id="OpenSearchEngineModel" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel" />
-      <keyword name="OpenSearchEngineModel (Constructor)" id="OpenSearchEngineModel (Constructor)" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.__init__" />
       <keyword name="OpenSearchEngineModel (Constructor)" id="OpenSearchEngineModel (Constructor)" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.__init__" />
-      <keyword name="OpenSearchEngineModel (Module)" id="OpenSearchEngineModel (Module)" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html" />
       <keyword name="OpenSearchEngineModel (Module)" id="OpenSearchEngineModel (Module)" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineModel.html" />
-      <keyword name="OpenSearchEngineModel.__enginesChanged" id="OpenSearchEngineModel.__enginesChanged" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.__enginesChanged" />
       <keyword name="OpenSearchEngineModel.__enginesChanged" id="OpenSearchEngineModel.__enginesChanged" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.__enginesChanged" />
-      <keyword name="OpenSearchEngineModel.columnCount" id="OpenSearchEngineModel.columnCount" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.columnCount" />
       <keyword name="OpenSearchEngineModel.columnCount" id="OpenSearchEngineModel.columnCount" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.columnCount" />
-      <keyword name="OpenSearchEngineModel.data" id="OpenSearchEngineModel.data" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.data" />
       <keyword name="OpenSearchEngineModel.data" id="OpenSearchEngineModel.data" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.data" />
-      <keyword name="OpenSearchEngineModel.flags" id="OpenSearchEngineModel.flags" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.flags" />
       <keyword name="OpenSearchEngineModel.flags" id="OpenSearchEngineModel.flags" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.flags" />
-      <keyword name="OpenSearchEngineModel.headerData" id="OpenSearchEngineModel.headerData" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.headerData" />
       <keyword name="OpenSearchEngineModel.headerData" id="OpenSearchEngineModel.headerData" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.headerData" />
-      <keyword name="OpenSearchEngineModel.removeRows" id="OpenSearchEngineModel.removeRows" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.removeRows" />
       <keyword name="OpenSearchEngineModel.removeRows" id="OpenSearchEngineModel.removeRows" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.removeRows" />
-      <keyword name="OpenSearchEngineModel.rowCount" id="OpenSearchEngineModel.rowCount" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.rowCount" />
       <keyword name="OpenSearchEngineModel.rowCount" id="OpenSearchEngineModel.rowCount" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.rowCount" />
-      <keyword name="OpenSearchEngineModel.setData" id="OpenSearchEngineModel.setData" ref="eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.setData" />
       <keyword name="OpenSearchEngineModel.setData" id="OpenSearchEngineModel.setData" ref="eric6.WebBrowser.OpenSearch.OpenSearchEngineModel.html#OpenSearchEngineModel.setData" />
-      <keyword name="OpenSearchManager" id="OpenSearchManager" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager" />
       <keyword name="OpenSearchManager" id="OpenSearchManager" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager" />
-      <keyword name="OpenSearchManager (Constructor)" id="OpenSearchManager (Constructor)" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.__init__" />
       <keyword name="OpenSearchManager (Constructor)" id="OpenSearchManager (Constructor)" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.__init__" />
-      <keyword name="OpenSearchManager (Module)" id="OpenSearchManager (Module)" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html" />
       <keyword name="OpenSearchManager (Module)" id="OpenSearchManager (Module)" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html" />
-      <keyword name="OpenSearchManager.__addEngineByEngine" id="OpenSearchManager.__addEngineByEngine" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.__addEngineByEngine" />
       <keyword name="OpenSearchManager.__addEngineByEngine" id="OpenSearchManager.__addEngineByEngine" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.__addEngineByEngine" />
-      <keyword name="OpenSearchManager.__addEngineByFile" id="OpenSearchManager.__addEngineByFile" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.__addEngineByFile" />
       <keyword name="OpenSearchManager.__addEngineByFile" id="OpenSearchManager.__addEngineByFile" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.__addEngineByFile" />
-      <keyword name="OpenSearchManager.__addEngineByUrl" id="OpenSearchManager.__addEngineByUrl" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.__addEngineByUrl" />
       <keyword name="OpenSearchManager.__addEngineByUrl" id="OpenSearchManager.__addEngineByUrl" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.__addEngineByUrl" />
-      <keyword name="OpenSearchManager.__confirmAddition" id="OpenSearchManager.__confirmAddition" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.__confirmAddition" />
       <keyword name="OpenSearchManager.__confirmAddition" id="OpenSearchManager.__confirmAddition" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.__confirmAddition" />
-      <keyword name="OpenSearchManager.__engineFromUrlAvailable" id="OpenSearchManager.__engineFromUrlAvailable" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.__engineFromUrlAvailable" />
       <keyword name="OpenSearchManager.__engineFromUrlAvailable" id="OpenSearchManager.__engineFromUrlAvailable" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.__engineFromUrlAvailable" />
-      <keyword name="OpenSearchManager.addEngine" id="OpenSearchManager.addEngine" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.addEngine" />
       <keyword name="OpenSearchManager.addEngine" id="OpenSearchManager.addEngine" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.addEngine" />
       <keyword name="OpenSearchManager.addEngineFromForm" id="OpenSearchManager.addEngineFromForm" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.addEngineFromForm" />
-      <keyword name="OpenSearchManager.allEnginesNames" id="OpenSearchManager.allEnginesNames" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.allEnginesNames" />
       <keyword name="OpenSearchManager.allEnginesNames" id="OpenSearchManager.allEnginesNames" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.allEnginesNames" />
-      <keyword name="OpenSearchManager.close" id="OpenSearchManager.close" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.close" />
       <keyword name="OpenSearchManager.close" id="OpenSearchManager.close" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.close" />
-      <keyword name="OpenSearchManager.convertKeywordSearchToUrl" id="OpenSearchManager.convertKeywordSearchToUrl" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.convertKeywordSearchToUrl" />
       <keyword name="OpenSearchManager.convertKeywordSearchToUrl" id="OpenSearchManager.convertKeywordSearchToUrl" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.convertKeywordSearchToUrl" />
-      <keyword name="OpenSearchManager.currentEngine" id="OpenSearchManager.currentEngine" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.currentEngine" />
       <keyword name="OpenSearchManager.currentEngine" id="OpenSearchManager.currentEngine" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.currentEngine" />
-      <keyword name="OpenSearchManager.currentEngineName" id="OpenSearchManager.currentEngineName" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.currentEngineName" />
       <keyword name="OpenSearchManager.currentEngineName" id="OpenSearchManager.currentEngineName" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.currentEngineName" />
-      <keyword name="OpenSearchManager.engine" id="OpenSearchManager.engine" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.engine" />
       <keyword name="OpenSearchManager.engine" id="OpenSearchManager.engine" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.engine" />
-      <keyword name="OpenSearchManager.engineExists" id="OpenSearchManager.engineExists" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.engineExists" />
       <keyword name="OpenSearchManager.engineExists" id="OpenSearchManager.engineExists" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.engineExists" />
-      <keyword name="OpenSearchManager.engineForKeyword" id="OpenSearchManager.engineForKeyword" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.engineForKeyword" />
       <keyword name="OpenSearchManager.engineForKeyword" id="OpenSearchManager.engineForKeyword" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.engineForKeyword" />
-      <keyword name="OpenSearchManager.enginesChanged" id="OpenSearchManager.enginesChanged" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.enginesChanged" />
       <keyword name="OpenSearchManager.enginesChanged" id="OpenSearchManager.enginesChanged" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.enginesChanged" />
-      <keyword name="OpenSearchManager.enginesCount" id="OpenSearchManager.enginesCount" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.enginesCount" />
       <keyword name="OpenSearchManager.enginesCount" id="OpenSearchManager.enginesCount" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.enginesCount" />
-      <keyword name="OpenSearchManager.enginesDirectory" id="OpenSearchManager.enginesDirectory" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.enginesDirectory" />
       <keyword name="OpenSearchManager.enginesDirectory" id="OpenSearchManager.enginesDirectory" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.enginesDirectory" />
-      <keyword name="OpenSearchManager.generateEngineFileName" id="OpenSearchManager.generateEngineFileName" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.generateEngineFileName" />
       <keyword name="OpenSearchManager.generateEngineFileName" id="OpenSearchManager.generateEngineFileName" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.generateEngineFileName" />
-      <keyword name="OpenSearchManager.keywordsForEngine" id="OpenSearchManager.keywordsForEngine" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.keywordsForEngine" />
       <keyword name="OpenSearchManager.keywordsForEngine" id="OpenSearchManager.keywordsForEngine" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.keywordsForEngine" />
-      <keyword name="OpenSearchManager.load" id="OpenSearchManager.load" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.load" />
       <keyword name="OpenSearchManager.load" id="OpenSearchManager.load" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.load" />
-      <keyword name="OpenSearchManager.loadDirectory" id="OpenSearchManager.loadDirectory" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.loadDirectory" />
       <keyword name="OpenSearchManager.loadDirectory" id="OpenSearchManager.loadDirectory" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.loadDirectory" />
-      <keyword name="OpenSearchManager.removeEngine" id="OpenSearchManager.removeEngine" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.removeEngine" />
       <keyword name="OpenSearchManager.removeEngine" id="OpenSearchManager.removeEngine" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.removeEngine" />
-      <keyword name="OpenSearchManager.restoreDefaults" id="OpenSearchManager.restoreDefaults" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.restoreDefaults" />
       <keyword name="OpenSearchManager.restoreDefaults" id="OpenSearchManager.restoreDefaults" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.restoreDefaults" />
-      <keyword name="OpenSearchManager.save" id="OpenSearchManager.save" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.save" />
       <keyword name="OpenSearchManager.save" id="OpenSearchManager.save" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.save" />
-      <keyword name="OpenSearchManager.saveDirectory" id="OpenSearchManager.saveDirectory" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.saveDirectory" />
       <keyword name="OpenSearchManager.saveDirectory" id="OpenSearchManager.saveDirectory" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.saveDirectory" />
-      <keyword name="OpenSearchManager.setCurrentEngine" id="OpenSearchManager.setCurrentEngine" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.setCurrentEngine" />
       <keyword name="OpenSearchManager.setCurrentEngine" id="OpenSearchManager.setCurrentEngine" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.setCurrentEngine" />
-      <keyword name="OpenSearchManager.setCurrentEngineName" id="OpenSearchManager.setCurrentEngineName" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.setCurrentEngineName" />
       <keyword name="OpenSearchManager.setCurrentEngineName" id="OpenSearchManager.setCurrentEngineName" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.setCurrentEngineName" />
-      <keyword name="OpenSearchManager.setEngineForKeyword" id="OpenSearchManager.setEngineForKeyword" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.setEngineForKeyword" />
       <keyword name="OpenSearchManager.setEngineForKeyword" id="OpenSearchManager.setEngineForKeyword" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.setEngineForKeyword" />
-      <keyword name="OpenSearchManager.setKeywordsForEngine" id="OpenSearchManager.setKeywordsForEngine" ref="eric6.Helpviewer.OpenSearch.OpenSearchManager.html#OpenSearchManager.setKeywordsForEngine" />
       <keyword name="OpenSearchManager.setKeywordsForEngine" id="OpenSearchManager.setKeywordsForEngine" ref="eric6.WebBrowser.OpenSearch.OpenSearchManager.html#OpenSearchManager.setKeywordsForEngine" />
-      <keyword name="OpenSearchReader" id="OpenSearchReader" ref="eric6.Helpviewer.OpenSearch.OpenSearchReader.html#OpenSearchReader" />
       <keyword name="OpenSearchReader" id="OpenSearchReader" ref="eric6.WebBrowser.OpenSearch.OpenSearchReader.html#OpenSearchReader" />
-      <keyword name="OpenSearchReader (Module)" id="OpenSearchReader (Module)" ref="eric6.Helpviewer.OpenSearch.OpenSearchReader.html" />
       <keyword name="OpenSearchReader (Module)" id="OpenSearchReader (Module)" ref="eric6.WebBrowser.OpenSearch.OpenSearchReader.html" />
-      <keyword name="OpenSearchReader.__read" id="OpenSearchReader.__read" ref="eric6.Helpviewer.OpenSearch.OpenSearchReader.html#OpenSearchReader.__read" />
       <keyword name="OpenSearchReader.__read" id="OpenSearchReader.__read" ref="eric6.WebBrowser.OpenSearch.OpenSearchReader.html#OpenSearchReader.__read" />
-      <keyword name="OpenSearchReader.read" id="OpenSearchReader.read" ref="eric6.Helpviewer.OpenSearch.OpenSearchReader.html#OpenSearchReader.read" />
       <keyword name="OpenSearchReader.read" id="OpenSearchReader.read" ref="eric6.WebBrowser.OpenSearch.OpenSearchReader.html#OpenSearchReader.read" />
-      <keyword name="OpenSearchWriter" id="OpenSearchWriter" ref="eric6.Helpviewer.OpenSearch.OpenSearchWriter.html#OpenSearchWriter" />
       <keyword name="OpenSearchWriter" id="OpenSearchWriter" ref="eric6.WebBrowser.OpenSearch.OpenSearchWriter.html#OpenSearchWriter" />
-      <keyword name="OpenSearchWriter (Constructor)" id="OpenSearchWriter (Constructor)" ref="eric6.Helpviewer.OpenSearch.OpenSearchWriter.html#OpenSearchWriter.__init__" />
       <keyword name="OpenSearchWriter (Constructor)" id="OpenSearchWriter (Constructor)" ref="eric6.WebBrowser.OpenSearch.OpenSearchWriter.html#OpenSearchWriter.__init__" />
-      <keyword name="OpenSearchWriter (Module)" id="OpenSearchWriter (Module)" ref="eric6.Helpviewer.OpenSearch.OpenSearchWriter.html" />
       <keyword name="OpenSearchWriter (Module)" id="OpenSearchWriter (Module)" ref="eric6.WebBrowser.OpenSearch.OpenSearchWriter.html" />
-      <keyword name="OpenSearchWriter.__write" id="OpenSearchWriter.__write" ref="eric6.Helpviewer.OpenSearch.OpenSearchWriter.html#OpenSearchWriter.__write" />
       <keyword name="OpenSearchWriter.__write" id="OpenSearchWriter.__write" ref="eric6.WebBrowser.OpenSearch.OpenSearchWriter.html#OpenSearchWriter.__write" />
-      <keyword name="OpenSearchWriter.write" id="OpenSearchWriter.write" ref="eric6.Helpviewer.OpenSearch.OpenSearchWriter.html#OpenSearchWriter.write" />
       <keyword name="OpenSearchWriter.write" id="OpenSearchWriter.write" ref="eric6.WebBrowser.OpenSearch.OpenSearchWriter.html#OpenSearchWriter.write" />
-      <keyword name="OperaImporter" id="OperaImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html#OperaImporter" />
       <keyword name="OperaImporter" id="OperaImporter" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.OperaImporter.html#OperaImporter" />
-      <keyword name="OperaImporter (Constructor)" id="OperaImporter (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html#OperaImporter.__init__" />
       <keyword name="OperaImporter (Constructor)" id="OperaImporter (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.OperaImporter.html#OperaImporter.__init__" />
-      <keyword name="OperaImporter (Module)" id="OperaImporter (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html" />
       <keyword name="OperaImporter (Module)" id="OperaImporter (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.OperaImporter.html" />
-      <keyword name="OperaImporter.importedBookmarks" id="OperaImporter.importedBookmarks" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html#OperaImporter.importedBookmarks" />
       <keyword name="OperaImporter.importedBookmarks" id="OperaImporter.importedBookmarks" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.OperaImporter.html#OperaImporter.importedBookmarks" />
-      <keyword name="OperaImporter.open" id="OperaImporter.open" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html#OperaImporter.open" />
       <keyword name="OperaImporter.open" id="OperaImporter.open" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.OperaImporter.html#OperaImporter.open" />
-      <keyword name="OperaImporter.setPath" id="OperaImporter.setPath" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html#OperaImporter.setPath" />
       <keyword name="OperaImporter.setPath" id="OperaImporter.setPath" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.OperaImporter.html#OperaImporter.setPath" />
       <keyword name="PDFObjectTracker" id="PDFObjectTracker" ref="eric6.QScintilla.Exporters.ExporterPDF.html#PDFObjectTracker" />
       <keyword name="PDFObjectTracker (Constructor)" id="PDFObjectTracker (Constructor)" ref="eric6.QScintilla.Exporters.ExporterPDF.html#PDFObjectTracker.__init__" />
@@ -12419,49 +10404,28 @@
       <keyword name="PackageModel (Constructor)" id="PackageModel (Constructor)" ref="eric6.Graphics.PackageItem.html#PackageModel.__init__" />
       <keyword name="PackageModel.addModule" id="PackageModel.addModule" ref="eric6.Graphics.PackageItem.html#PackageModel.addModule" />
       <keyword name="PackageModel.getModules" id="PackageModel.getModules" ref="eric6.Graphics.PackageItem.html#PackageModel.getModules" />
-      <keyword name="Page" id="Page" ref="eric6.Helpviewer.SpeedDial.Page.html#Page" />
       <keyword name="Page" id="Page" ref="eric6.WebBrowser.SpeedDial.Page.html#Page" />
-      <keyword name="Page (Constructor)" id="Page (Constructor)" ref="eric6.Helpviewer.SpeedDial.Page.html#Page.__init__" />
       <keyword name="Page (Constructor)" id="Page (Constructor)" ref="eric6.WebBrowser.SpeedDial.Page.html#Page.__init__" />
-      <keyword name="Page (Module)" id="Page (Module)" ref="eric6.Helpviewer.SpeedDial.Page.html" />
       <keyword name="Page (Module)" id="Page (Module)" ref="eric6.WebBrowser.SpeedDial.Page.html" />
-      <keyword name="Page.__eq__" id="Page.__eq__" ref="eric6.Helpviewer.SpeedDial.Page.html#Page.__eq__" />
       <keyword name="Page.__eq__" id="Page.__eq__" ref="eric6.WebBrowser.SpeedDial.Page.html#Page.__eq__" />
       <keyword name="Page.isValid" id="Page.isValid" ref="eric6.WebBrowser.SpeedDial.Page.html#Page.isValid" />
-      <keyword name="PageScreenDialog" id="PageScreenDialog" ref="eric6.Helpviewer.PageScreenDialog.html#PageScreenDialog" />
       <keyword name="PageScreenDialog" id="PageScreenDialog" ref="eric6.WebBrowser.PageScreenDialog.html#PageScreenDialog" />
-      <keyword name="PageScreenDialog (Constructor)" id="PageScreenDialog (Constructor)" ref="eric6.Helpviewer.PageScreenDialog.html#PageScreenDialog.__init__" />
       <keyword name="PageScreenDialog (Constructor)" id="PageScreenDialog (Constructor)" ref="eric6.WebBrowser.PageScreenDialog.html#PageScreenDialog.__init__" />
-      <keyword name="PageScreenDialog (Module)" id="PageScreenDialog (Module)" ref="eric6.Helpviewer.PageScreenDialog.html" />
       <keyword name="PageScreenDialog (Module)" id="PageScreenDialog (Module)" ref="eric6.WebBrowser.PageScreenDialog.html" />
-      <keyword name="PageScreenDialog.__createPixmap" id="PageScreenDialog.__createPixmap" ref="eric6.Helpviewer.PageScreenDialog.html#PageScreenDialog.__createPixmap" />
       <keyword name="PageScreenDialog.__createPixmap" id="PageScreenDialog.__createPixmap" ref="eric6.WebBrowser.PageScreenDialog.html#PageScreenDialog.__createPixmap" />
-      <keyword name="PageScreenDialog.__savePageScreen" id="PageScreenDialog.__savePageScreen" ref="eric6.Helpviewer.PageScreenDialog.html#PageScreenDialog.__savePageScreen" />
       <keyword name="PageScreenDialog.__savePageScreen" id="PageScreenDialog.__savePageScreen" ref="eric6.WebBrowser.PageScreenDialog.html#PageScreenDialog.__savePageScreen" />
-      <keyword name="PageScreenDialog.on_buttonBox_clicked" id="PageScreenDialog.on_buttonBox_clicked" ref="eric6.Helpviewer.PageScreenDialog.html#PageScreenDialog.on_buttonBox_clicked" />
       <keyword name="PageScreenDialog.on_buttonBox_clicked" id="PageScreenDialog.on_buttonBox_clicked" ref="eric6.WebBrowser.PageScreenDialog.html#PageScreenDialog.on_buttonBox_clicked" />
-      <keyword name="PageThumbnailer" id="PageThumbnailer" ref="eric6.Helpviewer.SpeedDial.PageThumbnailer.html#PageThumbnailer" />
       <keyword name="PageThumbnailer" id="PageThumbnailer" ref="eric6.WebBrowser.SpeedDial.PageThumbnailer.html#PageThumbnailer" />
-      <keyword name="PageThumbnailer (Constructor)" id="PageThumbnailer (Constructor)" ref="eric6.Helpviewer.SpeedDial.PageThumbnailer.html#PageThumbnailer.__init__" />
       <keyword name="PageThumbnailer (Constructor)" id="PageThumbnailer (Constructor)" ref="eric6.WebBrowser.SpeedDial.PageThumbnailer.html#PageThumbnailer.__init__" />
-      <keyword name="PageThumbnailer (Module)" id="PageThumbnailer (Module)" ref="eric6.Helpviewer.SpeedDial.PageThumbnailer.html" />
       <keyword name="PageThumbnailer (Module)" id="PageThumbnailer (Module)" ref="eric6.WebBrowser.SpeedDial.PageThumbnailer.html" />
-      <keyword name="PageThumbnailer.__createThumbnail" id="PageThumbnailer.__createThumbnail" ref="eric6.Helpviewer.SpeedDial.PageThumbnailer.html#PageThumbnailer.__createThumbnail" />
       <keyword name="PageThumbnailer.__createThumbnail" id="PageThumbnailer.__createThumbnail" ref="eric6.WebBrowser.SpeedDial.PageThumbnailer.html#PageThumbnailer.__createThumbnail" />
       <keyword name="PageThumbnailer.__grabThumbnail" id="PageThumbnailer.__grabThumbnail" ref="eric6.WebBrowser.SpeedDial.PageThumbnailer.html#PageThumbnailer.__grabThumbnail" />
-      <keyword name="PageThumbnailer.loadTitle" id="PageThumbnailer.loadTitle" ref="eric6.Helpviewer.SpeedDial.PageThumbnailer.html#PageThumbnailer.loadTitle" />
       <keyword name="PageThumbnailer.loadTitle" id="PageThumbnailer.loadTitle" ref="eric6.WebBrowser.SpeedDial.PageThumbnailer.html#PageThumbnailer.loadTitle" />
-      <keyword name="PageThumbnailer.setLoadTitle" id="PageThumbnailer.setLoadTitle" ref="eric6.Helpviewer.SpeedDial.PageThumbnailer.html#PageThumbnailer.setLoadTitle" />
       <keyword name="PageThumbnailer.setLoadTitle" id="PageThumbnailer.setLoadTitle" ref="eric6.WebBrowser.SpeedDial.PageThumbnailer.html#PageThumbnailer.setLoadTitle" />
-      <keyword name="PageThumbnailer.setSize" id="PageThumbnailer.setSize" ref="eric6.Helpviewer.SpeedDial.PageThumbnailer.html#PageThumbnailer.setSize" />
       <keyword name="PageThumbnailer.setSize" id="PageThumbnailer.setSize" ref="eric6.WebBrowser.SpeedDial.PageThumbnailer.html#PageThumbnailer.setSize" />
-      <keyword name="PageThumbnailer.setUrl" id="PageThumbnailer.setUrl" ref="eric6.Helpviewer.SpeedDial.PageThumbnailer.html#PageThumbnailer.setUrl" />
       <keyword name="PageThumbnailer.setUrl" id="PageThumbnailer.setUrl" ref="eric6.WebBrowser.SpeedDial.PageThumbnailer.html#PageThumbnailer.setUrl" />
-      <keyword name="PageThumbnailer.start" id="PageThumbnailer.start" ref="eric6.Helpviewer.SpeedDial.PageThumbnailer.html#PageThumbnailer.start" />
       <keyword name="PageThumbnailer.start" id="PageThumbnailer.start" ref="eric6.WebBrowser.SpeedDial.PageThumbnailer.html#PageThumbnailer.start" />
-      <keyword name="PageThumbnailer.title" id="PageThumbnailer.title" ref="eric6.Helpviewer.SpeedDial.PageThumbnailer.html#PageThumbnailer.title" />
       <keyword name="PageThumbnailer.title" id="PageThumbnailer.title" ref="eric6.WebBrowser.SpeedDial.PageThumbnailer.html#PageThumbnailer.title" />
-      <keyword name="PageThumbnailer.url" id="PageThumbnailer.url" ref="eric6.Helpviewer.SpeedDial.PageThumbnailer.html#PageThumbnailer.url" />
       <keyword name="PageThumbnailer.url" id="PageThumbnailer.url" ref="eric6.WebBrowser.SpeedDial.PageThumbnailer.html#PageThumbnailer.url" />
       <keyword name="Parser" id="Parser" ref="eric6.DataViews.CodeMetrics.html#Parser" />
       <keyword name="Parser.__addToken" id="Parser.__addToken" ref="eric6.DataViews.CodeMetrics.html#Parser.__addToken" />
@@ -12473,120 +10437,63 @@
       <keyword name="PasswordChecker.__determineStatus" id="PasswordChecker.__determineStatus" ref="eric6.Utilities.PasswordChecker.html#PasswordChecker.__determineStatus" />
       <keyword name="PasswordChecker.__strReverse" id="PasswordChecker.__strReverse" ref="eric6.Utilities.PasswordChecker.html#PasswordChecker.__strReverse" />
       <keyword name="PasswordChecker.checkPassword" id="PasswordChecker.checkPassword" ref="eric6.Utilities.PasswordChecker.html#PasswordChecker.checkPassword" />
-      <keyword name="PasswordManager" id="PasswordManager" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager" />
       <keyword name="PasswordManager" id="PasswordManager" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager" />
-      <keyword name="PasswordManager (Constructor)" id="PasswordManager (Constructor)" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.__init__" />
       <keyword name="PasswordManager (Constructor)" id="PasswordManager (Constructor)" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.__init__" />
-      <keyword name="PasswordManager (Module)" id="PasswordManager (Module)" ref="eric6.Helpviewer.Passwords.PasswordManager.html" />
       <keyword name="PasswordManager (Module)" id="PasswordManager (Module)" ref="eric6.WebBrowser.Passwords.PasswordManager.html" />
-      <keyword name="PasswordManager.__createKey" id="PasswordManager.__createKey" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.__createKey" />
       <keyword name="PasswordManager.__createKey" id="PasswordManager.__createKey" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.__createKey" />
-      <keyword name="PasswordManager.__extractMultipartQueryItems" id="PasswordManager.__extractMultipartQueryItems" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.__extractMultipartQueryItems" />
-      <keyword name="PasswordManager.__findForm" id="PasswordManager.__findForm" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.__findForm" />
-      <keyword name="PasswordManager.__load" id="PasswordManager.__load" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.__load" />
       <keyword name="PasswordManager.__load" id="PasswordManager.__load" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.__load" />
-      <keyword name="PasswordManager.__loadNonXml" id="PasswordManager.__loadNonXml" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.__loadNonXml" />
-      <keyword name="PasswordManager.__stripUrl" id="PasswordManager.__stripUrl" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.__stripUrl" />
       <keyword name="PasswordManager.__stripUrl" id="PasswordManager.__stripUrl" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.__stripUrl" />
-      <keyword name="PasswordManager.allSiteNames" id="PasswordManager.allSiteNames" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.allSiteNames" />
       <keyword name="PasswordManager.allSiteNames" id="PasswordManager.allSiteNames" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.allSiteNames" />
-      <keyword name="PasswordManager.clear" id="PasswordManager.clear" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.clear" />
       <keyword name="PasswordManager.clear" id="PasswordManager.clear" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.clear" />
-      <keyword name="PasswordManager.close" id="PasswordManager.close" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.close" />
       <keyword name="PasswordManager.close" id="PasswordManager.close" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.close" />
       <keyword name="PasswordManager.completePage" id="PasswordManager.completePage" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.completePage" />
-      <keyword name="PasswordManager.fill" id="PasswordManager.fill" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.fill" />
       <keyword name="PasswordManager.formSubmitted" id="PasswordManager.formSubmitted" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.formSubmitted" />
-      <keyword name="PasswordManager.getFileName" id="PasswordManager.getFileName" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.getFileName" />
       <keyword name="PasswordManager.getFileName" id="PasswordManager.getFileName" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.getFileName" />
-      <keyword name="PasswordManager.getLogin" id="PasswordManager.getLogin" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.getLogin" />
       <keyword name="PasswordManager.getLogin" id="PasswordManager.getLogin" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.getLogin" />
-      <keyword name="PasswordManager.masterPasswordChanged" id="PasswordManager.masterPasswordChanged" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.masterPasswordChanged" />
       <keyword name="PasswordManager.masterPasswordChanged" id="PasswordManager.masterPasswordChanged" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.masterPasswordChanged" />
-      <keyword name="PasswordManager.post" id="PasswordManager.post" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.post" />
-      <keyword name="PasswordManager.reload" id="PasswordManager.reload" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.reload" />
       <keyword name="PasswordManager.reload" id="PasswordManager.reload" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.reload" />
-      <keyword name="PasswordManager.removePassword" id="PasswordManager.removePassword" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.removePassword" />
       <keyword name="PasswordManager.removePassword" id="PasswordManager.removePassword" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.removePassword" />
-      <keyword name="PasswordManager.save" id="PasswordManager.save" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.save" />
       <keyword name="PasswordManager.save" id="PasswordManager.save" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.save" />
-      <keyword name="PasswordManager.setLogin" id="PasswordManager.setLogin" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.setLogin" />
       <keyword name="PasswordManager.setLogin" id="PasswordManager.setLogin" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.setLogin" />
-      <keyword name="PasswordManager.siteInfo" id="PasswordManager.siteInfo" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.siteInfo" />
       <keyword name="PasswordManager.siteInfo" id="PasswordManager.siteInfo" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.siteInfo" />
-      <keyword name="PasswordManager.sitesCount" id="PasswordManager.sitesCount" ref="eric6.Helpviewer.Passwords.PasswordManager.html#PasswordManager.sitesCount" />
       <keyword name="PasswordManager.sitesCount" id="PasswordManager.sitesCount" ref="eric6.WebBrowser.Passwords.PasswordManager.html#PasswordManager.sitesCount" />
       <keyword name="PasswordManagerJsObject" id="PasswordManagerJsObject" ref="eric6.WebBrowser.JavaScript.PasswordManagerJsObject.html#PasswordManagerJsObject" />
       <keyword name="PasswordManagerJsObject (Constructor)" id="PasswordManagerJsObject (Constructor)" ref="eric6.WebBrowser.JavaScript.PasswordManagerJsObject.html#PasswordManagerJsObject.__init__" />
       <keyword name="PasswordManagerJsObject (Module)" id="PasswordManagerJsObject (Module)" ref="eric6.WebBrowser.JavaScript.PasswordManagerJsObject.html" />
       <keyword name="PasswordManagerJsObject.formSubmitted" id="PasswordManagerJsObject.formSubmitted" ref="eric6.WebBrowser.JavaScript.PasswordManagerJsObject.html#PasswordManagerJsObject.formSubmitted" />
-      <keyword name="PasswordModel" id="PasswordModel" ref="eric6.Helpviewer.Passwords.PasswordModel.html#PasswordModel" />
       <keyword name="PasswordModel" id="PasswordModel" ref="eric6.WebBrowser.Passwords.PasswordModel.html#PasswordModel" />
-      <keyword name="PasswordModel (Constructor)" id="PasswordModel (Constructor)" ref="eric6.Helpviewer.Passwords.PasswordModel.html#PasswordModel.__init__" />
       <keyword name="PasswordModel (Constructor)" id="PasswordModel (Constructor)" ref="eric6.WebBrowser.Passwords.PasswordModel.html#PasswordModel.__init__" />
-      <keyword name="PasswordModel (Module)" id="PasswordModel (Module)" ref="eric6.Helpviewer.Passwords.PasswordModel.html" />
       <keyword name="PasswordModel (Module)" id="PasswordModel (Module)" ref="eric6.WebBrowser.Passwords.PasswordModel.html" />
-      <keyword name="PasswordModel.__passwordsChanged" id="PasswordModel.__passwordsChanged" ref="eric6.Helpviewer.Passwords.PasswordModel.html#PasswordModel.__passwordsChanged" />
       <keyword name="PasswordModel.__passwordsChanged" id="PasswordModel.__passwordsChanged" ref="eric6.WebBrowser.Passwords.PasswordModel.html#PasswordModel.__passwordsChanged" />
-      <keyword name="PasswordModel.columnCount" id="PasswordModel.columnCount" ref="eric6.Helpviewer.Passwords.PasswordModel.html#PasswordModel.columnCount" />
       <keyword name="PasswordModel.columnCount" id="PasswordModel.columnCount" ref="eric6.WebBrowser.Passwords.PasswordModel.html#PasswordModel.columnCount" />
-      <keyword name="PasswordModel.data" id="PasswordModel.data" ref="eric6.Helpviewer.Passwords.PasswordModel.html#PasswordModel.data" />
       <keyword name="PasswordModel.data" id="PasswordModel.data" ref="eric6.WebBrowser.Passwords.PasswordModel.html#PasswordModel.data" />
-      <keyword name="PasswordModel.headerData" id="PasswordModel.headerData" ref="eric6.Helpviewer.Passwords.PasswordModel.html#PasswordModel.headerData" />
       <keyword name="PasswordModel.headerData" id="PasswordModel.headerData" ref="eric6.WebBrowser.Passwords.PasswordModel.html#PasswordModel.headerData" />
-      <keyword name="PasswordModel.removeRows" id="PasswordModel.removeRows" ref="eric6.Helpviewer.Passwords.PasswordModel.html#PasswordModel.removeRows" />
       <keyword name="PasswordModel.removeRows" id="PasswordModel.removeRows" ref="eric6.WebBrowser.Passwords.PasswordModel.html#PasswordModel.removeRows" />
-      <keyword name="PasswordModel.rowCount" id="PasswordModel.rowCount" ref="eric6.Helpviewer.Passwords.PasswordModel.html#PasswordModel.rowCount" />
       <keyword name="PasswordModel.rowCount" id="PasswordModel.rowCount" ref="eric6.WebBrowser.Passwords.PasswordModel.html#PasswordModel.rowCount" />
-      <keyword name="PasswordModel.setShowPasswords" id="PasswordModel.setShowPasswords" ref="eric6.Helpviewer.Passwords.PasswordModel.html#PasswordModel.setShowPasswords" />
       <keyword name="PasswordModel.setShowPasswords" id="PasswordModel.setShowPasswords" ref="eric6.WebBrowser.Passwords.PasswordModel.html#PasswordModel.setShowPasswords" />
-      <keyword name="PasswordModel.showPasswords" id="PasswordModel.showPasswords" ref="eric6.Helpviewer.Passwords.PasswordModel.html#PasswordModel.showPasswords" />
       <keyword name="PasswordModel.showPasswords" id="PasswordModel.showPasswords" ref="eric6.WebBrowser.Passwords.PasswordModel.html#PasswordModel.showPasswords" />
-      <keyword name="PasswordReader" id="PasswordReader" ref="eric6.Helpviewer.Passwords.PasswordReader.html#PasswordReader" />
       <keyword name="PasswordReader" id="PasswordReader" ref="eric6.WebBrowser.Passwords.PasswordReader.html#PasswordReader" />
-      <keyword name="PasswordReader (Constructor)" id="PasswordReader (Constructor)" ref="eric6.Helpviewer.Passwords.PasswordReader.html#PasswordReader.__init__" />
       <keyword name="PasswordReader (Constructor)" id="PasswordReader (Constructor)" ref="eric6.WebBrowser.Passwords.PasswordReader.html#PasswordReader.__init__" />
-      <keyword name="PasswordReader (Module)" id="PasswordReader (Module)" ref="eric6.Helpviewer.Passwords.PasswordReader.html" />
       <keyword name="PasswordReader (Module)" id="PasswordReader (Module)" ref="eric6.WebBrowser.Passwords.PasswordReader.html" />
-      <keyword name="PasswordReader.__readForms" id="PasswordReader.__readForms" ref="eric6.Helpviewer.Passwords.PasswordReader.html#PasswordReader.__readForms" />
       <keyword name="PasswordReader.__readForms" id="PasswordReader.__readForms" ref="eric6.WebBrowser.Passwords.PasswordReader.html#PasswordReader.__readForms" />
-      <keyword name="PasswordReader.__readLogins" id="PasswordReader.__readLogins" ref="eric6.Helpviewer.Passwords.PasswordReader.html#PasswordReader.__readLogins" />
       <keyword name="PasswordReader.__readLogins" id="PasswordReader.__readLogins" ref="eric6.WebBrowser.Passwords.PasswordReader.html#PasswordReader.__readLogins" />
-      <keyword name="PasswordReader.__readNevers" id="PasswordReader.__readNevers" ref="eric6.Helpviewer.Passwords.PasswordReader.html#PasswordReader.__readNevers" />
       <keyword name="PasswordReader.__readNevers" id="PasswordReader.__readNevers" ref="eric6.WebBrowser.Passwords.PasswordReader.html#PasswordReader.__readNevers" />
-      <keyword name="PasswordReader.__readPasswords" id="PasswordReader.__readPasswords" ref="eric6.Helpviewer.Passwords.PasswordReader.html#PasswordReader.__readPasswords" />
       <keyword name="PasswordReader.__readPasswords" id="PasswordReader.__readPasswords" ref="eric6.WebBrowser.Passwords.PasswordReader.html#PasswordReader.__readPasswords" />
-      <keyword name="PasswordReader.__skipUnknownElement" id="PasswordReader.__skipUnknownElement" ref="eric6.Helpviewer.Passwords.PasswordReader.html#PasswordReader.__skipUnknownElement" />
       <keyword name="PasswordReader.__skipUnknownElement" id="PasswordReader.__skipUnknownElement" ref="eric6.WebBrowser.Passwords.PasswordReader.html#PasswordReader.__skipUnknownElement" />
-      <keyword name="PasswordReader.read" id="PasswordReader.read" ref="eric6.Helpviewer.Passwords.PasswordReader.html#PasswordReader.read" />
       <keyword name="PasswordReader.read" id="PasswordReader.read" ref="eric6.WebBrowser.Passwords.PasswordReader.html#PasswordReader.read" />
-      <keyword name="PasswordWriter" id="PasswordWriter" ref="eric6.Helpviewer.Passwords.PasswordWriter.html#PasswordWriter" />
       <keyword name="PasswordWriter" id="PasswordWriter" ref="eric6.WebBrowser.Passwords.PasswordWriter.html#PasswordWriter" />
-      <keyword name="PasswordWriter (Constructor)" id="PasswordWriter (Constructor)" ref="eric6.Helpviewer.Passwords.PasswordWriter.html#PasswordWriter.__init__" />
       <keyword name="PasswordWriter (Constructor)" id="PasswordWriter (Constructor)" ref="eric6.WebBrowser.Passwords.PasswordWriter.html#PasswordWriter.__init__" />
-      <keyword name="PasswordWriter (Module)" id="PasswordWriter (Module)" ref="eric6.Helpviewer.Passwords.PasswordWriter.html" />
       <keyword name="PasswordWriter (Module)" id="PasswordWriter (Module)" ref="eric6.WebBrowser.Passwords.PasswordWriter.html" />
-      <keyword name="PasswordWriter.__write" id="PasswordWriter.__write" ref="eric6.Helpviewer.Passwords.PasswordWriter.html#PasswordWriter.__write" />
       <keyword name="PasswordWriter.__write" id="PasswordWriter.__write" ref="eric6.WebBrowser.Passwords.PasswordWriter.html#PasswordWriter.__write" />
-      <keyword name="PasswordWriter.__writeForms" id="PasswordWriter.__writeForms" ref="eric6.Helpviewer.Passwords.PasswordWriter.html#PasswordWriter.__writeForms" />
       <keyword name="PasswordWriter.__writeForms" id="PasswordWriter.__writeForms" ref="eric6.WebBrowser.Passwords.PasswordWriter.html#PasswordWriter.__writeForms" />
-      <keyword name="PasswordWriter.__writeLogins" id="PasswordWriter.__writeLogins" ref="eric6.Helpviewer.Passwords.PasswordWriter.html#PasswordWriter.__writeLogins" />
       <keyword name="PasswordWriter.__writeLogins" id="PasswordWriter.__writeLogins" ref="eric6.WebBrowser.Passwords.PasswordWriter.html#PasswordWriter.__writeLogins" />
-      <keyword name="PasswordWriter.__writeNevers" id="PasswordWriter.__writeNevers" ref="eric6.Helpviewer.Passwords.PasswordWriter.html#PasswordWriter.__writeNevers" />
       <keyword name="PasswordWriter.__writeNevers" id="PasswordWriter.__writeNevers" ref="eric6.WebBrowser.Passwords.PasswordWriter.html#PasswordWriter.__writeNevers" />
-      <keyword name="PasswordWriter.write" id="PasswordWriter.write" ref="eric6.Helpviewer.Passwords.PasswordWriter.html#PasswordWriter.write" />
       <keyword name="PasswordWriter.write" id="PasswordWriter.write" ref="eric6.WebBrowser.Passwords.PasswordWriter.html#PasswordWriter.write" />
-      <keyword name="Passwords (Package)" id="Passwords (Package)" ref="index-eric6.Helpviewer.Passwords.html" />
       <keyword name="Passwords (Package)" id="Passwords (Package)" ref="index-eric6.WebBrowser.Passwords.html" />
-      <keyword name="PasswordsDialog" id="PasswordsDialog" ref="eric6.Helpviewer.Passwords.PasswordsDialog.html#PasswordsDialog" />
       <keyword name="PasswordsDialog" id="PasswordsDialog" ref="eric6.WebBrowser.Passwords.PasswordsDialog.html#PasswordsDialog" />
-      <keyword name="PasswordsDialog (Constructor)" id="PasswordsDialog (Constructor)" ref="eric6.Helpviewer.Passwords.PasswordsDialog.html#PasswordsDialog.__init__" />
       <keyword name="PasswordsDialog (Constructor)" id="PasswordsDialog (Constructor)" ref="eric6.WebBrowser.Passwords.PasswordsDialog.html#PasswordsDialog.__init__" />
-      <keyword name="PasswordsDialog (Module)" id="PasswordsDialog (Module)" ref="eric6.Helpviewer.Passwords.PasswordsDialog.html" />
       <keyword name="PasswordsDialog (Module)" id="PasswordsDialog (Module)" ref="eric6.WebBrowser.Passwords.PasswordsDialog.html" />
-      <keyword name="PasswordsDialog.__calculateHeaderSizes" id="PasswordsDialog.__calculateHeaderSizes" ref="eric6.Helpviewer.Passwords.PasswordsDialog.html#PasswordsDialog.__calculateHeaderSizes" />
       <keyword name="PasswordsDialog.__calculateHeaderSizes" id="PasswordsDialog.__calculateHeaderSizes" ref="eric6.WebBrowser.Passwords.PasswordsDialog.html#PasswordsDialog.__calculateHeaderSizes" />
-      <keyword name="PasswordsDialog.on_passwordsButton_clicked" id="PasswordsDialog.on_passwordsButton_clicked" ref="eric6.Helpviewer.Passwords.PasswordsDialog.html#PasswordsDialog.on_passwordsButton_clicked" />
       <keyword name="PasswordsDialog.on_passwordsButton_clicked" id="PasswordsDialog.on_passwordsButton_clicked" ref="eric6.WebBrowser.Passwords.PasswordsDialog.html#PasswordsDialog.on_passwordsButton_clicked" />
       <keyword name="PathGraph" id="PathGraph" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.mccabe.html#PathGraph" />
       <keyword name="PathGraph (Constructor)" id="PathGraph (Constructor)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.mccabe.html#PathGraph.__init__" />
@@ -12612,37 +10519,21 @@
       <keyword name="PathNode (Constructor)" id="PathNode (Constructor)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.mccabe.html#PathNode.__init__" />
       <keyword name="PathNode.dot_id" id="PathNode.dot_id" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.mccabe.html#PathNode.dot_id" />
       <keyword name="PathNode.to_dot" id="PathNode.to_dot" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.mccabe.html#PathNode.to_dot" />
-      <keyword name="PersonalDataDialog" id="PersonalDataDialog" ref="eric6.Helpviewer.PersonalInformationManager.PersonalDataDialog.html#PersonalDataDialog" />
       <keyword name="PersonalDataDialog" id="PersonalDataDialog" ref="eric6.WebBrowser.PersonalInformationManager.PersonalDataDialog.html#PersonalDataDialog" />
-      <keyword name="PersonalDataDialog (Constructor)" id="PersonalDataDialog (Constructor)" ref="eric6.Helpviewer.PersonalInformationManager.PersonalDataDialog.html#PersonalDataDialog.__init__" />
       <keyword name="PersonalDataDialog (Constructor)" id="PersonalDataDialog (Constructor)" ref="eric6.WebBrowser.PersonalInformationManager.PersonalDataDialog.html#PersonalDataDialog.__init__" />
-      <keyword name="PersonalDataDialog (Module)" id="PersonalDataDialog (Module)" ref="eric6.Helpviewer.PersonalInformationManager.PersonalDataDialog.html" />
       <keyword name="PersonalDataDialog (Module)" id="PersonalDataDialog (Module)" ref="eric6.WebBrowser.PersonalInformationManager.PersonalDataDialog.html" />
-      <keyword name="PersonalDataDialog.storeData" id="PersonalDataDialog.storeData" ref="eric6.Helpviewer.PersonalInformationManager.PersonalDataDialog.html#PersonalDataDialog.storeData" />
       <keyword name="PersonalDataDialog.storeData" id="PersonalDataDialog.storeData" ref="eric6.WebBrowser.PersonalInformationManager.PersonalDataDialog.html#PersonalDataDialog.storeData" />
-      <keyword name="PersonalInformationManager" id="PersonalInformationManager" ref="eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager" />
       <keyword name="PersonalInformationManager" id="PersonalInformationManager" ref="eric6.WebBrowser.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager" />
-      <keyword name="PersonalInformationManager (Constructor)" id="PersonalInformationManager (Constructor)" ref="eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.__init__" />
       <keyword name="PersonalInformationManager (Constructor)" id="PersonalInformationManager (Constructor)" ref="eric6.WebBrowser.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.__init__" />
-      <keyword name="PersonalInformationManager (Module)" id="PersonalInformationManager (Module)" ref="eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html" />
       <keyword name="PersonalInformationManager (Module)" id="PersonalInformationManager (Module)" ref="eric6.WebBrowser.PersonalInformationManager.PersonalInformationManager.html" />
-      <keyword name="PersonalInformationManager (Package)" id="PersonalInformationManager (Package)" ref="index-eric6.Helpviewer.PersonalInformationManager.html" />
       <keyword name="PersonalInformationManager (Package)" id="PersonalInformationManager (Package)" ref="index-eric6.WebBrowser.PersonalInformationManager.html" />
-      <keyword name="PersonalInformationManager.__insertData" id="PersonalInformationManager.__insertData" ref="eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.__insertData" />
       <keyword name="PersonalInformationManager.__insertData" id="PersonalInformationManager.__insertData" ref="eric6.WebBrowser.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.__insertData" />
-      <keyword name="PersonalInformationManager.__loadSettings" id="PersonalInformationManager.__loadSettings" ref="eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.__loadSettings" />
       <keyword name="PersonalInformationManager.__loadSettings" id="PersonalInformationManager.__loadSettings" ref="eric6.WebBrowser.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.__loadSettings" />
       <keyword name="PersonalInformationManager.__matchingJsTable" id="PersonalInformationManager.__matchingJsTable" ref="eric6.WebBrowser.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.__matchingJsTable" />
-      <keyword name="PersonalInformationManager.__nameMatch" id="PersonalInformationManager.__nameMatch" ref="eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.__nameMatch" />
-      <keyword name="PersonalInformationManager.__pageLoadFinished" id="PersonalInformationManager.__pageLoadFinished" ref="eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.__pageLoadFinished" />
       <keyword name="PersonalInformationManager.__pageLoadFinished" id="PersonalInformationManager.__pageLoadFinished" ref="eric6.WebBrowser.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.__pageLoadFinished" />
-      <keyword name="PersonalInformationManager.connectPage" id="PersonalInformationManager.connectPage" ref="eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.connectPage" />
       <keyword name="PersonalInformationManager.connectPage" id="PersonalInformationManager.connectPage" ref="eric6.WebBrowser.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.connectPage" />
-      <keyword name="PersonalInformationManager.createSubMenu" id="PersonalInformationManager.createSubMenu" ref="eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.createSubMenu" />
       <keyword name="PersonalInformationManager.createSubMenu" id="PersonalInformationManager.createSubMenu" ref="eric6.WebBrowser.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.createSubMenu" />
-      <keyword name="PersonalInformationManager.showConfigurationDialog" id="PersonalInformationManager.showConfigurationDialog" ref="eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.showConfigurationDialog" />
       <keyword name="PersonalInformationManager.showConfigurationDialog" id="PersonalInformationManager.showConfigurationDialog" ref="eric6.WebBrowser.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.showConfigurationDialog" />
-      <keyword name="PersonalInformationManager.viewKeyPressEvent" id="PersonalInformationManager.viewKeyPressEvent" ref="eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.viewKeyPressEvent" />
       <keyword name="PersonalInformationManager.viewKeyPressEvent" id="PersonalInformationManager.viewKeyPressEvent" ref="eric6.WebBrowser.PersonalInformationManager.PersonalInformationManager.html#PersonalInformationManager.viewKeyPressEvent" />
       <keyword name="Pip" id="Pip" ref="eric6.PipInterface.Pip.html#Pip" />
       <keyword name="Pip (Constructor)" id="Pip (Constructor)" ref="eric6.PipInterface.Pip.html#Pip.__init__" />
@@ -12807,11 +10698,6 @@
       <keyword name="PixmapDiagram.getDiagramName" id="PixmapDiagram.getDiagramName" ref="eric6.Graphics.PixmapDiagram.html#PixmapDiagram.getDiagramName" />
       <keyword name="PixmapDiagram.getStatus" id="PixmapDiagram.getStatus" ref="eric6.Graphics.PixmapDiagram.html#PixmapDiagram.getStatus" />
       <keyword name="PixmapDiagram.wheelEvent" id="PixmapDiagram.wheelEvent" ref="eric6.Graphics.PixmapDiagram.html#PixmapDiagram.wheelEvent" />
-      <keyword name="PlainStrList" id="PlainStrList" ref="eric6.Globals.compatibility_fixes.html#PlainStrList" />
-      <keyword name="PlainStrList (Constructor)" id="PlainStrList (Constructor)" ref="eric6.Globals.compatibility_fixes.html#PlainStrList.__init__" />
-      <keyword name="PlainStrList.__convert" id="PlainStrList.__convert" ref="eric6.Globals.compatibility_fixes.html#PlainStrList.__convert" />
-      <keyword name="PlainStrList.__setitem__" id="PlainStrList.__setitem__" ref="eric6.Globals.compatibility_fixes.html#PlainStrList.__setitem__" />
-      <keyword name="PlainStrList.insert" id="PlainStrList.insert" ref="eric6.Globals.compatibility_fixes.html#PlainStrList.insert" />
       <keyword name="PlistReader" id="PlistReader" ref="eric6.Utilities.binplistlib.html#PlistReader" />
       <keyword name="PlistReader (Constructor)" id="PlistReader (Constructor)" ref="eric6.Utilities.binplistlib.html#PlistReader.__init__" />
       <keyword name="PlistReader.getSizedInteger" id="PlistReader.getSizedInteger" ref="eric6.Utilities.binplistlib.html#PlistReader.getSizedInteger" />
@@ -12957,8 +10843,6 @@
       <keyword name="PluginModulesError (Constructor)" id="PluginModulesError (Constructor)" ref="eric6.PluginManager.PluginExceptions.html#PluginModulesError.__init__" />
       <keyword name="PluginPathError" id="PluginPathError" ref="eric6.PluginManager.PluginExceptions.html#PluginPathError" />
       <keyword name="PluginPathError (Constructor)" id="PluginPathError (Constructor)" ref="eric6.PluginManager.PluginExceptions.html#PluginPathError.__init__" />
-      <keyword name="PluginPy2IncompatibleError" id="PluginPy2IncompatibleError" ref="eric6.PluginManager.PluginExceptions.html#PluginPy2IncompatibleError" />
-      <keyword name="PluginPy2IncompatibleError (Constructor)" id="PluginPy2IncompatibleError (Constructor)" ref="eric6.PluginManager.PluginExceptions.html#PluginPy2IncompatibleError.__init__" />
       <keyword name="PluginRepositoryDialog" id="PluginRepositoryDialog" ref="eric6.PluginManager.PluginRepositoryDialog.html#PluginRepositoryDialog" />
       <keyword name="PluginRepositoryDialog (Constructor)" id="PluginRepositoryDialog (Constructor)" ref="eric6.PluginManager.PluginRepositoryDialog.html#PluginRepositoryDialog.__init__" />
       <keyword name="PluginRepositoryDialog (Module)" id="PluginRepositoryDialog (Module)" ref="eric6.PluginManager.PluginRepositoryDialog.html" />
@@ -13087,7 +10971,6 @@
       <keyword name="PreferencesLexerLanguageError (Constructor)" id="PreferencesLexerLanguageError (Constructor)" ref="eric6.Preferences.PreferencesLexer.html#PreferencesLexerLanguageError.__init__" />
       <keyword name="Prefs" id="Prefs" ref="eric6.Preferences.__init__.html#Prefs" />
       <keyword name="Prefs.initWebEngineSettingsDefaults" id="Prefs.initWebEngineSettingsDefaults" ref="eric6.Preferences.__init__.html#Prefs.initWebEngineSettingsDefaults" />
-      <keyword name="Prefs.initWebSettingsDefaults" id="Prefs.initWebSettingsDefaults" ref="eric6.Preferences.__init__.html#Prefs.initWebSettingsDefaults" />
       <keyword name="PreviewModel" id="PreviewModel" ref="eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.html#PreviewModel" />
       <keyword name="PreviewModel (Constructor)" id="PreviewModel (Constructor)" ref="eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.html#PreviewModel.__init__" />
       <keyword name="PreviewModel.columnCount" id="PreviewModel.columnCount" ref="eric6.Preferences.ConfigurationPages.DebuggerGeneralPage.html#PreviewModel.columnCount" />
@@ -13131,7 +11014,6 @@
       <keyword name="PreviewerHTML.__setJavaScriptEnabled" id="PreviewerHTML.__setJavaScriptEnabled" ref="eric6.UI.Previewers.PreviewerHTML.html#PreviewerHTML.__setJavaScriptEnabled" />
       <keyword name="PreviewerHTML.__showLink" id="PreviewerHTML.__showLink" ref="eric6.UI.Previewers.PreviewerHTML.html#PreviewerHTML.__showLink" />
       <keyword name="PreviewerHTML.on_jsCheckBox_clicked" id="PreviewerHTML.on_jsCheckBox_clicked" ref="eric6.UI.Previewers.PreviewerHTML.html#PreviewerHTML.on_jsCheckBox_clicked" />
-      <keyword name="PreviewerHTML.on_previewView_linkClicked" id="PreviewerHTML.on_previewView_linkClicked" ref="eric6.UI.Previewers.PreviewerHTML.html#PreviewerHTML.on_previewView_linkClicked" />
       <keyword name="PreviewerHTML.on_previewView_titleChanged" id="PreviewerHTML.on_previewView_titleChanged" ref="eric6.UI.Previewers.PreviewerHTML.html#PreviewerHTML.on_previewView_titleChanged" />
       <keyword name="PreviewerHTML.on_ssiCheckBox_clicked" id="PreviewerHTML.on_ssiCheckBox_clicked" ref="eric6.UI.Previewers.PreviewerHTML.html#PreviewerHTML.on_ssiCheckBox_clicked" />
       <keyword name="PreviewerHTML.processEditor" id="PreviewerHTML.processEditor" ref="eric6.UI.Previewers.PreviewerHTML.html#PreviewerHTML.processEditor" />
@@ -13833,12 +11715,6 @@
       <keyword name="PyProfileDialog.__unfinish" id="PyProfileDialog.__unfinish" ref="eric6.DataViews.PyProfileDialog.html#PyProfileDialog.__unfinish" />
       <keyword name="PyProfileDialog.on_buttonBox_clicked" id="PyProfileDialog.on_buttonBox_clicked" ref="eric6.DataViews.PyProfileDialog.html#PyProfileDialog.on_buttonBox_clicked" />
       <keyword name="PyProfileDialog.start" id="PyProfileDialog.start" ref="eric6.DataViews.PyProfileDialog.html#PyProfileDialog.start" />
-      <keyword name="PyQt4ImportHook (Module)" id="PyQt4ImportHook (Module)" ref="eric6.Toolbox.PyQt4ImportHook.html" />
-      <keyword name="PyQt4Importer" id="PyQt4Importer" ref="eric6.Toolbox.PyQt4ImportHook.html#PyQt4Importer" />
-      <keyword name="PyQt4Importer (Constructor)" id="PyQt4Importer (Constructor)" ref="eric6.Toolbox.PyQt4ImportHook.html#PyQt4Importer.__init__" />
-      <keyword name="PyQt4Importer.QComboBox_currentData" id="PyQt4Importer.QComboBox_currentData" ref="eric6.Toolbox.PyQt4ImportHook.html#PyQt4Importer.QComboBox_currentData" />
-      <keyword name="PyQt4Importer.find_module" id="PyQt4Importer.find_module" ref="eric6.Toolbox.PyQt4ImportHook.html#PyQt4Importer.find_module" />
-      <keyword name="PyQt4Importer.load_module" id="PyQt4Importer.load_module" ref="eric6.Toolbox.PyQt4ImportHook.html#PyQt4Importer.load_module" />
       <keyword name="PyRegExpWizard" id="PyRegExpWizard" ref="eric6.Plugins.PluginWizardPyRegExp.html#PyRegExpWizard" />
       <keyword name="PyRegExpWizard (Constructor)" id="PyRegExpWizard (Constructor)" ref="eric6.Plugins.PluginWizardPyRegExp.html#PyRegExpWizard.__init__" />
       <keyword name="PyRegExpWizard (Package)" id="PyRegExpWizard (Package)" ref="index-eric6.Plugins.WizardPlugins.PyRegExpWizard.html" />
@@ -13892,7 +11768,6 @@
       <keyword name="PyRegExpWizardWidget.on_nonwordboundButton_clicked" id="PyRegExpWizardWidget.on_nonwordboundButton_clicked" ref="eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.html#PyRegExpWizardWidget.on_nonwordboundButton_clicked" />
       <keyword name="PyRegExpWizardWidget.on_poslookaheadButton_clicked" id="PyRegExpWizardWidget.on_poslookaheadButton_clicked" ref="eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.html#PyRegExpWizardWidget.on_poslookaheadButton_clicked" />
       <keyword name="PyRegExpWizardWidget.on_poslookbehindButton_clicked" id="PyRegExpWizardWidget.on_poslookbehindButton_clicked" ref="eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.html#PyRegExpWizardWidget.on_poslookbehindButton_clicked" />
-      <keyword name="PyRegExpWizardWidget.on_py2Button_toggled" id="PyRegExpWizardWidget.on_py2Button_toggled" ref="eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.html#PyRegExpWizardWidget.on_py2Button_toggled" />
       <keyword name="PyRegExpWizardWidget.on_redoButton_clicked" id="PyRegExpWizardWidget.on_redoButton_clicked" ref="eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.html#PyRegExpWizardWidget.on_redoButton_clicked" />
       <keyword name="PyRegExpWizardWidget.on_regexpTextEdit_textChanged" id="PyRegExpWizardWidget.on_regexpTextEdit_textChanged" ref="eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.html#PyRegExpWizardWidget.on_regexpTextEdit_textChanged" />
       <keyword name="PyRegExpWizardWidget.on_repeatButton_clicked" id="PyRegExpWizardWidget.on_repeatButton_clicked" ref="eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.html#PyRegExpWizardWidget.on_repeatButton_clicked" />
@@ -14172,8 +12047,6 @@
       <keyword name="QsciScintillaCompat.hideFindIndicator" id="QsciScintillaCompat.hideFindIndicator" ref="eric6.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.hideFindIndicator" />
       <keyword name="QsciScintillaCompat.indentationGuideView" id="QsciScintillaCompat.indentationGuideView" ref="eric6.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.indentationGuideView" />
       <keyword name="QsciScintillaCompat.indicatorDefine" id="QsciScintillaCompat.indicatorDefine" ref="eric6.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.indicatorDefine" />
-      <keyword name="QsciScintillaCompat.inputMethodEvent" id="QsciScintillaCompat.inputMethodEvent" ref="eric6.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.inputMethodEvent" />
-      <keyword name="QsciScintillaCompat.inputMethodQuery" id="QsciScintillaCompat.inputMethodQuery" ref="eric6.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.inputMethodQuery" />
       <keyword name="QsciScintillaCompat.insert" id="QsciScintillaCompat.insert" ref="eric6.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.insert" />
       <keyword name="QsciScintillaCompat.isModified" id="QsciScintillaCompat.isModified" ref="eric6.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.isModified" />
       <keyword name="QsciScintillaCompat.lineAt" id="QsciScintillaCompat.lineAt" ref="eric6.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.lineAt" />
@@ -14220,76 +12093,38 @@
       <keyword name="QsciScintillaCompat.zoomOut" id="QsciScintillaCompat.zoomOut" ref="eric6.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.zoomOut" />
       <keyword name="QsciScintillaCompat.zoomTo" id="QsciScintillaCompat.zoomTo" ref="eric6.QScintilla.QsciScintillaCompat.html#QsciScintillaCompat.zoomTo" />
       <keyword name="QtHelp (Package)" id="QtHelp (Package)" ref="index-eric6.WebBrowser.QtHelp.html" />
-      <keyword name="QtHelpAccessHandler" id="QtHelpAccessHandler" ref="eric6.Helpviewer.Network.QtHelpAccessHandler.html#QtHelpAccessHandler" />
-      <keyword name="QtHelpAccessHandler (Constructor)" id="QtHelpAccessHandler (Constructor)" ref="eric6.Helpviewer.Network.QtHelpAccessHandler.html#QtHelpAccessHandler.__init__" />
-      <keyword name="QtHelpAccessHandler (Module)" id="QtHelpAccessHandler (Module)" ref="eric6.Helpviewer.Network.QtHelpAccessHandler.html" />
-      <keyword name="QtHelpAccessHandler.__mimeFromUrl" id="QtHelpAccessHandler.__mimeFromUrl" ref="eric6.Helpviewer.Network.QtHelpAccessHandler.html#QtHelpAccessHandler.__mimeFromUrl" />
-      <keyword name="QtHelpAccessHandler.createRequest" id="QtHelpAccessHandler.createRequest" ref="eric6.Helpviewer.Network.QtHelpAccessHandler.html#QtHelpAccessHandler.createRequest" />
-      <keyword name="QtHelpDocumentationDialog" id="QtHelpDocumentationDialog" ref="eric6.Helpviewer.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog" />
       <keyword name="QtHelpDocumentationDialog" id="QtHelpDocumentationDialog" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog" />
-      <keyword name="QtHelpDocumentationDialog (Constructor)" id="QtHelpDocumentationDialog (Constructor)" ref="eric6.Helpviewer.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.__init__" />
       <keyword name="QtHelpDocumentationDialog (Constructor)" id="QtHelpDocumentationDialog (Constructor)" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.__init__" />
-      <keyword name="QtHelpDocumentationDialog (Module)" id="QtHelpDocumentationDialog (Module)" ref="eric6.Helpviewer.QtHelpDocumentationDialog.html" />
       <keyword name="QtHelpDocumentationDialog (Module)" id="QtHelpDocumentationDialog (Module)" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationDialog.html" />
-      <keyword name="QtHelpDocumentationDialog.__registerDocumentations" id="QtHelpDocumentationDialog.__registerDocumentations" ref="eric6.Helpviewer.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.__registerDocumentations" />
       <keyword name="QtHelpDocumentationDialog.__registerDocumentations" id="QtHelpDocumentationDialog.__registerDocumentations" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.__registerDocumentations" />
-      <keyword name="QtHelpDocumentationDialog.getTabsToClose" id="QtHelpDocumentationDialog.getTabsToClose" ref="eric6.Helpviewer.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.getTabsToClose" />
       <keyword name="QtHelpDocumentationDialog.getTabsToClose" id="QtHelpDocumentationDialog.getTabsToClose" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.getTabsToClose" />
-      <keyword name="QtHelpDocumentationDialog.hasChanges" id="QtHelpDocumentationDialog.hasChanges" ref="eric6.Helpviewer.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.hasChanges" />
       <keyword name="QtHelpDocumentationDialog.hasChanges" id="QtHelpDocumentationDialog.hasChanges" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.hasChanges" />
-      <keyword name="QtHelpDocumentationDialog.on_addButton_clicked" id="QtHelpDocumentationDialog.on_addButton_clicked" ref="eric6.Helpviewer.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.on_addButton_clicked" />
       <keyword name="QtHelpDocumentationDialog.on_addButton_clicked" id="QtHelpDocumentationDialog.on_addButton_clicked" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.on_addButton_clicked" />
-      <keyword name="QtHelpDocumentationDialog.on_addPluginButton_clicked" id="QtHelpDocumentationDialog.on_addPluginButton_clicked" ref="eric6.Helpviewer.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.on_addPluginButton_clicked" />
       <keyword name="QtHelpDocumentationDialog.on_addPluginButton_clicked" id="QtHelpDocumentationDialog.on_addPluginButton_clicked" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.on_addPluginButton_clicked" />
-      <keyword name="QtHelpDocumentationDialog.on_documentsList_itemSelectionChanged" id="QtHelpDocumentationDialog.on_documentsList_itemSelectionChanged" ref="eric6.Helpviewer.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.on_documentsList_itemSelectionChanged" />
       <keyword name="QtHelpDocumentationDialog.on_documentsList_itemSelectionChanged" id="QtHelpDocumentationDialog.on_documentsList_itemSelectionChanged" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.on_documentsList_itemSelectionChanged" />
-      <keyword name="QtHelpDocumentationDialog.on_managePluginButton_clicked" id="QtHelpDocumentationDialog.on_managePluginButton_clicked" ref="eric6.Helpviewer.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.on_managePluginButton_clicked" />
       <keyword name="QtHelpDocumentationDialog.on_managePluginButton_clicked" id="QtHelpDocumentationDialog.on_managePluginButton_clicked" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.on_managePluginButton_clicked" />
-      <keyword name="QtHelpDocumentationDialog.on_removeButton_clicked" id="QtHelpDocumentationDialog.on_removeButton_clicked" ref="eric6.Helpviewer.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.on_removeButton_clicked" />
       <keyword name="QtHelpDocumentationDialog.on_removeButton_clicked" id="QtHelpDocumentationDialog.on_removeButton_clicked" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationDialog.html#QtHelpDocumentationDialog.on_removeButton_clicked" />
-      <keyword name="QtHelpDocumentationSelectionDialog" id="QtHelpDocumentationSelectionDialog" ref="eric6.Helpviewer.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog" />
       <keyword name="QtHelpDocumentationSelectionDialog" id="QtHelpDocumentationSelectionDialog" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog" />
-      <keyword name="QtHelpDocumentationSelectionDialog (Constructor)" id="QtHelpDocumentationSelectionDialog (Constructor)" ref="eric6.Helpviewer.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog.__init__" />
       <keyword name="QtHelpDocumentationSelectionDialog (Constructor)" id="QtHelpDocumentationSelectionDialog (Constructor)" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog.__init__" />
-      <keyword name="QtHelpDocumentationSelectionDialog (Module)" id="QtHelpDocumentationSelectionDialog (Module)" ref="eric6.Helpviewer.QtHelpDocumentationSelectionDialog.html" />
       <keyword name="QtHelpDocumentationSelectionDialog (Module)" id="QtHelpDocumentationSelectionDialog (Module)" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationSelectionDialog.html" />
-      <keyword name="QtHelpDocumentationSelectionDialog.__deleteCategory" id="QtHelpDocumentationSelectionDialog.__deleteCategory" ref="eric6.Helpviewer.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog.__deleteCategory" />
       <keyword name="QtHelpDocumentationSelectionDialog.__deleteCategory" id="QtHelpDocumentationSelectionDialog.__deleteCategory" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog.__deleteCategory" />
-      <keyword name="QtHelpDocumentationSelectionDialog.getData" id="QtHelpDocumentationSelectionDialog.getData" ref="eric6.Helpviewer.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog.getData" />
       <keyword name="QtHelpDocumentationSelectionDialog.getData" id="QtHelpDocumentationSelectionDialog.getData" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog.getData" />
-      <keyword name="QtHelpDocumentationSelectionDialog.on_deleteAllButton_clicked" id="QtHelpDocumentationSelectionDialog.on_deleteAllButton_clicked" ref="eric6.Helpviewer.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog.on_deleteAllButton_clicked" />
       <keyword name="QtHelpDocumentationSelectionDialog.on_deleteAllButton_clicked" id="QtHelpDocumentationSelectionDialog.on_deleteAllButton_clicked" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog.on_deleteAllButton_clicked" />
-      <keyword name="QtHelpDocumentationSelectionDialog.on_deleteButton_clicked" id="QtHelpDocumentationSelectionDialog.on_deleteButton_clicked" ref="eric6.Helpviewer.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog.on_deleteButton_clicked" />
       <keyword name="QtHelpDocumentationSelectionDialog.on_deleteButton_clicked" id="QtHelpDocumentationSelectionDialog.on_deleteButton_clicked" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog.on_deleteButton_clicked" />
-      <keyword name="QtHelpDocumentationSelectionDialog.on_deleteCategoryButton_clicked" id="QtHelpDocumentationSelectionDialog.on_deleteCategoryButton_clicked" ref="eric6.Helpviewer.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog.on_deleteCategoryButton_clicked" />
       <keyword name="QtHelpDocumentationSelectionDialog.on_deleteCategoryButton_clicked" id="QtHelpDocumentationSelectionDialog.on_deleteCategoryButton_clicked" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog.on_deleteCategoryButton_clicked" />
-      <keyword name="QtHelpDocumentationSelectionDialog.on_documentationList_itemSelectionChanged" id="QtHelpDocumentationSelectionDialog.on_documentationList_itemSelectionChanged" ref="eric6.Helpviewer.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog.on_documentationList_itemSelectionChanged" />
       <keyword name="QtHelpDocumentationSelectionDialog.on_documentationList_itemSelectionChanged" id="QtHelpDocumentationSelectionDialog.on_documentationList_itemSelectionChanged" ref="eric6.WebBrowser.QtHelp.QtHelpDocumentationSelectionDialog.html#QtHelpDocumentationSelectionDialog.on_documentationList_itemSelectionChanged" />
-      <keyword name="QtHelpFiltersDialog" id="QtHelpFiltersDialog" ref="eric6.Helpviewer.QtHelpFiltersDialog.html#QtHelpFiltersDialog" />
       <keyword name="QtHelpFiltersDialog" id="QtHelpFiltersDialog" ref="eric6.WebBrowser.QtHelp.QtHelpFiltersDialog.html#QtHelpFiltersDialog" />
-      <keyword name="QtHelpFiltersDialog (Constructor)" id="QtHelpFiltersDialog (Constructor)" ref="eric6.Helpviewer.QtHelpFiltersDialog.html#QtHelpFiltersDialog.__init__" />
       <keyword name="QtHelpFiltersDialog (Constructor)" id="QtHelpFiltersDialog (Constructor)" ref="eric6.WebBrowser.QtHelp.QtHelpFiltersDialog.html#QtHelpFiltersDialog.__init__" />
-      <keyword name="QtHelpFiltersDialog (Module)" id="QtHelpFiltersDialog (Module)" ref="eric6.Helpviewer.QtHelpFiltersDialog.html" />
       <keyword name="QtHelpFiltersDialog (Module)" id="QtHelpFiltersDialog (Module)" ref="eric6.WebBrowser.QtHelp.QtHelpFiltersDialog.html" />
-      <keyword name="QtHelpFiltersDialog.__removeAttributes" id="QtHelpFiltersDialog.__removeAttributes" ref="eric6.Helpviewer.QtHelpFiltersDialog.html#QtHelpFiltersDialog.__removeAttributes" />
       <keyword name="QtHelpFiltersDialog.__removeAttributes" id="QtHelpFiltersDialog.__removeAttributes" ref="eric6.WebBrowser.QtHelp.QtHelpFiltersDialog.html#QtHelpFiltersDialog.__removeAttributes" />
-      <keyword name="QtHelpFiltersDialog.on_addButton_clicked" id="QtHelpFiltersDialog.on_addButton_clicked" ref="eric6.Helpviewer.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_addButton_clicked" />
       <keyword name="QtHelpFiltersDialog.on_addButton_clicked" id="QtHelpFiltersDialog.on_addButton_clicked" ref="eric6.WebBrowser.QtHelp.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_addButton_clicked" />
-      <keyword name="QtHelpFiltersDialog.on_attributesList_itemChanged" id="QtHelpFiltersDialog.on_attributesList_itemChanged" ref="eric6.Helpviewer.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_attributesList_itemChanged" />
       <keyword name="QtHelpFiltersDialog.on_attributesList_itemChanged" id="QtHelpFiltersDialog.on_attributesList_itemChanged" ref="eric6.WebBrowser.QtHelp.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_attributesList_itemChanged" />
-      <keyword name="QtHelpFiltersDialog.on_attributesList_itemSelectionChanged" id="QtHelpFiltersDialog.on_attributesList_itemSelectionChanged" ref="eric6.Helpviewer.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_attributesList_itemSelectionChanged" />
       <keyword name="QtHelpFiltersDialog.on_attributesList_itemSelectionChanged" id="QtHelpFiltersDialog.on_attributesList_itemSelectionChanged" ref="eric6.WebBrowser.QtHelp.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_attributesList_itemSelectionChanged" />
-      <keyword name="QtHelpFiltersDialog.on_buttonBox_accepted" id="QtHelpFiltersDialog.on_buttonBox_accepted" ref="eric6.Helpviewer.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_buttonBox_accepted" />
       <keyword name="QtHelpFiltersDialog.on_buttonBox_accepted" id="QtHelpFiltersDialog.on_buttonBox_accepted" ref="eric6.WebBrowser.QtHelp.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_buttonBox_accepted" />
-      <keyword name="QtHelpFiltersDialog.on_filtersList_currentItemChanged" id="QtHelpFiltersDialog.on_filtersList_currentItemChanged" ref="eric6.Helpviewer.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_filtersList_currentItemChanged" />
       <keyword name="QtHelpFiltersDialog.on_filtersList_currentItemChanged" id="QtHelpFiltersDialog.on_filtersList_currentItemChanged" ref="eric6.WebBrowser.QtHelp.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_filtersList_currentItemChanged" />
-      <keyword name="QtHelpFiltersDialog.on_filtersList_itemSelectionChanged" id="QtHelpFiltersDialog.on_filtersList_itemSelectionChanged" ref="eric6.Helpviewer.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_filtersList_itemSelectionChanged" />
       <keyword name="QtHelpFiltersDialog.on_filtersList_itemSelectionChanged" id="QtHelpFiltersDialog.on_filtersList_itemSelectionChanged" ref="eric6.WebBrowser.QtHelp.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_filtersList_itemSelectionChanged" />
-      <keyword name="QtHelpFiltersDialog.on_removeAttributeButton_clicked" id="QtHelpFiltersDialog.on_removeAttributeButton_clicked" ref="eric6.Helpviewer.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_removeAttributeButton_clicked" />
       <keyword name="QtHelpFiltersDialog.on_removeAttributeButton_clicked" id="QtHelpFiltersDialog.on_removeAttributeButton_clicked" ref="eric6.WebBrowser.QtHelp.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_removeAttributeButton_clicked" />
-      <keyword name="QtHelpFiltersDialog.on_removeButton_clicked" id="QtHelpFiltersDialog.on_removeButton_clicked" ref="eric6.Helpviewer.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_removeButton_clicked" />
       <keyword name="QtHelpFiltersDialog.on_removeButton_clicked" id="QtHelpFiltersDialog.on_removeButton_clicked" ref="eric6.WebBrowser.QtHelp.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_removeButton_clicked" />
-      <keyword name="QtHelpFiltersDialog.on_unusedAttributesButton_clicked" id="QtHelpFiltersDialog.on_unusedAttributesButton_clicked" ref="eric6.Helpviewer.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_unusedAttributesButton_clicked" />
       <keyword name="QtHelpFiltersDialog.on_unusedAttributesButton_clicked" id="QtHelpFiltersDialog.on_unusedAttributesButton_clicked" ref="eric6.WebBrowser.QtHelp.QtHelpFiltersDialog.html#QtHelpFiltersDialog.on_unusedAttributesButton_clicked" />
       <keyword name="QtHelpGenerator" id="QtHelpGenerator" ref="eric6.DocumentationTools.QtHelpGenerator.html#QtHelpGenerator" />
       <keyword name="QtHelpGenerator (Constructor)" id="QtHelpGenerator (Constructor)" ref="eric6.DocumentationTools.QtHelpGenerator.html#QtHelpGenerator.__init__" />
@@ -14314,9 +12149,9 @@
       <keyword name="QtPage" id="QtPage" ref="eric6.Preferences.ConfigurationPages.QtPage.html#QtPage" />
       <keyword name="QtPage (Constructor)" id="QtPage (Constructor)" ref="eric6.Preferences.ConfigurationPages.QtPage.html#QtPage.__init__" />
       <keyword name="QtPage (Module)" id="QtPage (Module)" ref="eric6.Preferences.ConfigurationPages.QtPage.html" />
-      <keyword name="QtPage.__updateQt4Sample" id="QtPage.__updateQt4Sample" ref="eric6.Preferences.ConfigurationPages.QtPage.html#QtPage.__updateQt4Sample" />
-      <keyword name="QtPage.on_qt4PostfixEdit_textChanged" id="QtPage.on_qt4PostfixEdit_textChanged" ref="eric6.Preferences.ConfigurationPages.QtPage.html#QtPage.on_qt4PostfixEdit_textChanged" />
-      <keyword name="QtPage.on_qt4PrefixEdit_textChanged" id="QtPage.on_qt4PrefixEdit_textChanged" ref="eric6.Preferences.ConfigurationPages.QtPage.html#QtPage.on_qt4PrefixEdit_textChanged" />
+      <keyword name="QtPage.__updateQtSample" id="QtPage.__updateQtSample" ref="eric6.Preferences.ConfigurationPages.QtPage.html#QtPage.__updateQtSample" />
+      <keyword name="QtPage.on_qtPostfixEdit_textChanged" id="QtPage.on_qtPostfixEdit_textChanged" ref="eric6.Preferences.ConfigurationPages.QtPage.html#QtPage.on_qtPostfixEdit_textChanged" />
+      <keyword name="QtPage.on_qtPrefixEdit_textChanged" id="QtPage.on_qtPrefixEdit_textChanged" ref="eric6.Preferences.ConfigurationPages.QtPage.html#QtPage.on_qtPrefixEdit_textChanged" />
       <keyword name="QtPage.save" id="QtPage.save" ref="eric6.Preferences.ConfigurationPages.QtPage.html#QtPage.save" />
       <keyword name="QtTestResult" id="QtTestResult" ref="eric6.PyUnit.UnittestDialog.html#QtTestResult" />
       <keyword name="QtTestResult (Constructor)" id="QtTestResult (Constructor)" ref="eric6.PyUnit.UnittestDialog.html#QtTestResult.__init__" />
@@ -14469,13 +12304,9 @@
       <keyword name="ReloadStopButton.__buttonClicked" id="ReloadStopButton.__buttonClicked" ref="eric6.WebBrowser.Navigation.ReloadStopButton.html#ReloadStopButton.__buttonClicked" />
       <keyword name="ReloadStopButton.__updateButton" id="ReloadStopButton.__updateButton" ref="eric6.WebBrowser.Navigation.ReloadStopButton.html#ReloadStopButton.__updateButton" />
       <keyword name="ReloadStopButton.setLoading" id="ReloadStopButton.setLoading" ref="eric6.WebBrowser.Navigation.ReloadStopButton.html#ReloadStopButton.setLoading" />
-      <keyword name="RemoveBookmarksCommand" id="RemoveBookmarksCommand" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#RemoveBookmarksCommand" />
       <keyword name="RemoveBookmarksCommand" id="RemoveBookmarksCommand" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#RemoveBookmarksCommand" />
-      <keyword name="RemoveBookmarksCommand (Constructor)" id="RemoveBookmarksCommand (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#RemoveBookmarksCommand.__init__" />
       <keyword name="RemoveBookmarksCommand (Constructor)" id="RemoveBookmarksCommand (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#RemoveBookmarksCommand.__init__" />
-      <keyword name="RemoveBookmarksCommand.redo" id="RemoveBookmarksCommand.redo" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#RemoveBookmarksCommand.redo" />
       <keyword name="RemoveBookmarksCommand.redo" id="RemoveBookmarksCommand.redo" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#RemoveBookmarksCommand.redo" />
-      <keyword name="RemoveBookmarksCommand.undo" id="RemoveBookmarksCommand.undo" ref="eric6.Helpviewer.Bookmarks.BookmarksManager.html#RemoveBookmarksCommand.undo" />
       <keyword name="RemoveBookmarksCommand.undo" id="RemoveBookmarksCommand.undo" ref="eric6.WebBrowser.Bookmarks.BookmarksManager.html#RemoveBookmarksCommand.undo" />
       <keyword name="RepositoryInfoDialog (Module)" id="RepositoryInfoDialog (Module)" ref="eric6.VCS.RepositoryInfoDialog.html" />
       <keyword name="RestructuredTextProvider" id="RestructuredTextProvider" ref="eric6.QScintilla.MarkupProviders.RestructuredTextProvider.html#RestructuredTextProvider" />
@@ -14526,19 +12357,12 @@
       <keyword name="ReturnVisitor.visit_FunctionDef" id="ReturnVisitor.visit_FunctionDef" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#ReturnVisitor.visit_FunctionDef" />
       <keyword name="ReturnVisitor.visit_Name" id="ReturnVisitor.visit_Name" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#ReturnVisitor.visit_Name" />
       <keyword name="ReturnVisitor.visit_Return" id="ReturnVisitor.visit_Return" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.MiscellaneousChecker.html#ReturnVisitor.visit_Return" />
-      <keyword name="SafariImporter" id="SafariImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.html#SafariImporter" />
       <keyword name="SafariImporter" id="SafariImporter" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.SafariImporter.html#SafariImporter" />
-      <keyword name="SafariImporter (Constructor)" id="SafariImporter (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.html#SafariImporter.__init__" />
       <keyword name="SafariImporter (Constructor)" id="SafariImporter (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.SafariImporter.html#SafariImporter.__init__" />
-      <keyword name="SafariImporter (Module)" id="SafariImporter (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.html" />
       <keyword name="SafariImporter (Module)" id="SafariImporter (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.SafariImporter.html" />
-      <keyword name="SafariImporter.__processChildren" id="SafariImporter.__processChildren" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.html#SafariImporter.__processChildren" />
       <keyword name="SafariImporter.__processChildren" id="SafariImporter.__processChildren" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.SafariImporter.html#SafariImporter.__processChildren" />
-      <keyword name="SafariImporter.importedBookmarks" id="SafariImporter.importedBookmarks" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.html#SafariImporter.importedBookmarks" />
       <keyword name="SafariImporter.importedBookmarks" id="SafariImporter.importedBookmarks" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.SafariImporter.html#SafariImporter.importedBookmarks" />
-      <keyword name="SafariImporter.open" id="SafariImporter.open" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.html#SafariImporter.open" />
       <keyword name="SafariImporter.open" id="SafariImporter.open" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.SafariImporter.html#SafariImporter.open" />
-      <keyword name="SafariImporter.setPath" id="SafariImporter.setPath" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.html#SafariImporter.setPath" />
       <keyword name="SafariImporter.setPath" id="SafariImporter.setPath" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.SafariImporter.html#SafariImporter.setPath" />
       <keyword name="SafeBrowsing (Package)" id="SafeBrowsing (Package)" ref="index-eric6.WebBrowser.SafeBrowsing.html" />
       <keyword name="SafeBrowsingAPIClient" id="SafeBrowsingAPIClient" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingAPIClient.html#SafeBrowsingAPIClient" />
@@ -14652,11 +12476,6 @@
       <keyword name="SafeBrowsingUrl.pathPermutations" id="SafeBrowsingUrl.pathPermutations" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingUrl.html#SafeBrowsingUrl.pathPermutations" />
       <keyword name="SafeBrowsingUrl.permutations" id="SafeBrowsingUrl.permutations" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingUrl.html#SafeBrowsingUrl.permutations" />
       <keyword name="SafeBrowsingUrl.quote" id="SafeBrowsingUrl.quote" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingUrl.html#SafeBrowsingUrl.quote" />
-      <keyword name="SafeBrowsingUtilities (Module)" id="SafeBrowsingUtilities (Module)" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingUtilities.html" />
-      <keyword name="SchemeAccessHandler" id="SchemeAccessHandler" ref="eric6.Helpviewer.Network.SchemeAccessHandler.html#SchemeAccessHandler" />
-      <keyword name="SchemeAccessHandler (Constructor)" id="SchemeAccessHandler (Constructor)" ref="eric6.Helpviewer.Network.SchemeAccessHandler.html#SchemeAccessHandler.__init__" />
-      <keyword name="SchemeAccessHandler (Module)" id="SchemeAccessHandler (Module)" ref="eric6.Helpviewer.Network.SchemeAccessHandler.html" />
-      <keyword name="SchemeAccessHandler.createRequest" id="SchemeAccessHandler.createRequest" ref="eric6.Helpviewer.Network.SchemeAccessHandler.html#SchemeAccessHandler.createRequest" />
       <keyword name="Scripts (Module)" id="Scripts (Module)" ref="eric6.WebBrowser.Tools.Scripts.html" />
       <keyword name="SearchReplaceSlidingWidget" id="SearchReplaceSlidingWidget" ref="eric6.QScintilla.SearchReplaceWidget.html#SearchReplaceSlidingWidget" />
       <keyword name="SearchReplaceSlidingWidget (Constructor)" id="SearchReplaceSlidingWidget (Constructor)" ref="eric6.QScintilla.SearchReplaceWidget.html#SearchReplaceSlidingWidget.__init__" />
@@ -14707,49 +12526,33 @@
       <keyword name="SearchReplaceWidget.selectionChanged" id="SearchReplaceWidget.selectionChanged" ref="eric6.QScintilla.SearchReplaceWidget.html#SearchReplaceWidget.selectionChanged" />
       <keyword name="SearchReplaceWidget.show" id="SearchReplaceWidget.show" ref="eric6.QScintilla.SearchReplaceWidget.html#SearchReplaceWidget.show" />
       <keyword name="SearchReplaceWidget.updateSelectionCheckBox" id="SearchReplaceWidget.updateSelectionCheckBox" ref="eric6.QScintilla.SearchReplaceWidget.html#SearchReplaceWidget.updateSelectionCheckBox" />
-      <keyword name="SearchWidget" id="SearchWidget" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget" />
       <keyword name="SearchWidget" id="SearchWidget" ref="eric6.UI.SearchWidget.html#SearchWidget" />
       <keyword name="SearchWidget" id="SearchWidget" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget" />
-      <keyword name="SearchWidget (Constructor)" id="SearchWidget (Constructor)" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget.__init__" />
       <keyword name="SearchWidget (Constructor)" id="SearchWidget (Constructor)" ref="eric6.UI.SearchWidget.html#SearchWidget.__init__" />
       <keyword name="SearchWidget (Constructor)" id="SearchWidget (Constructor)" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.__init__" />
-      <keyword name="SearchWidget (Module)" id="SearchWidget (Module)" ref="eric6.Helpviewer.SearchWidget.html" />
       <keyword name="SearchWidget (Module)" id="SearchWidget (Module)" ref="eric6.UI.SearchWidget.html" />
       <keyword name="SearchWidget (Module)" id="SearchWidget (Module)" ref="eric6.WebBrowser.SearchWidget.html" />
-      <keyword name="SearchWidget.__findByReturnPressed" id="SearchWidget.__findByReturnPressed" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget.__findByReturnPressed" />
       <keyword name="SearchWidget.__findByReturnPressed" id="SearchWidget.__findByReturnPressed" ref="eric6.UI.SearchWidget.html#SearchWidget.__findByReturnPressed" />
       <keyword name="SearchWidget.__findByReturnPressed" id="SearchWidget.__findByReturnPressed" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.__findByReturnPressed" />
-      <keyword name="SearchWidget.__findNextPrev" id="SearchWidget.__findNextPrev" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget.__findNextPrev" />
       <keyword name="SearchWidget.__findNextPrev" id="SearchWidget.__findNextPrev" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.__findNextPrev" />
       <keyword name="SearchWidget.__findNextPrevCallback" id="SearchWidget.__findNextPrevCallback" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.__findNextPrevCallback" />
       <keyword name="SearchWidget.__resetSearch" id="SearchWidget.__resetSearch" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.__resetSearch" />
-      <keyword name="SearchWidget.__searchTextEdited" id="SearchWidget.__searchTextEdited" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget.__searchTextEdited" />
       <keyword name="SearchWidget.__searchTextEdited" id="SearchWidget.__searchTextEdited" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.__searchTextEdited" />
-      <keyword name="SearchWidget.__setFindtextComboBackground" id="SearchWidget.__setFindtextComboBackground" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget.__setFindtextComboBackground" />
       <keyword name="SearchWidget.__setFindtextComboBackground" id="SearchWidget.__setFindtextComboBackground" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.__setFindtextComboBackground" />
       <keyword name="SearchWidget.__setSearchButtons" id="SearchWidget.__setSearchButtons" ref="eric6.UI.SearchWidget.html#SearchWidget.__setSearchButtons" />
-      <keyword name="SearchWidget.findNext" id="SearchWidget.findNext" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget.findNext" />
       <keyword name="SearchWidget.findNext" id="SearchWidget.findNext" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.findNext" />
-      <keyword name="SearchWidget.findPrevious" id="SearchWidget.findPrevious" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget.findPrevious" />
       <keyword name="SearchWidget.findPrevious" id="SearchWidget.findPrevious" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.findPrevious" />
-      <keyword name="SearchWidget.keyPressEvent" id="SearchWidget.keyPressEvent" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget.keyPressEvent" />
       <keyword name="SearchWidget.keyPressEvent" id="SearchWidget.keyPressEvent" ref="eric6.UI.SearchWidget.html#SearchWidget.keyPressEvent" />
       <keyword name="SearchWidget.keyPressEvent" id="SearchWidget.keyPressEvent" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.keyPressEvent" />
-      <keyword name="SearchWidget.on_closeButton_clicked" id="SearchWidget.on_closeButton_clicked" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget.on_closeButton_clicked" />
       <keyword name="SearchWidget.on_closeButton_clicked" id="SearchWidget.on_closeButton_clicked" ref="eric6.UI.SearchWidget.html#SearchWidget.on_closeButton_clicked" />
       <keyword name="SearchWidget.on_closeButton_clicked" id="SearchWidget.on_closeButton_clicked" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.on_closeButton_clicked" />
-      <keyword name="SearchWidget.on_findNextButton_clicked" id="SearchWidget.on_findNextButton_clicked" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget.on_findNextButton_clicked" />
       <keyword name="SearchWidget.on_findNextButton_clicked" id="SearchWidget.on_findNextButton_clicked" ref="eric6.UI.SearchWidget.html#SearchWidget.on_findNextButton_clicked" />
       <keyword name="SearchWidget.on_findNextButton_clicked" id="SearchWidget.on_findNextButton_clicked" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.on_findNextButton_clicked" />
-      <keyword name="SearchWidget.on_findPrevButton_clicked" id="SearchWidget.on_findPrevButton_clicked" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget.on_findPrevButton_clicked" />
       <keyword name="SearchWidget.on_findPrevButton_clicked" id="SearchWidget.on_findPrevButton_clicked" ref="eric6.UI.SearchWidget.html#SearchWidget.on_findPrevButton_clicked" />
       <keyword name="SearchWidget.on_findPrevButton_clicked" id="SearchWidget.on_findPrevButton_clicked" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.on_findPrevButton_clicked" />
-      <keyword name="SearchWidget.on_findtextCombo_editTextChanged" id="SearchWidget.on_findtextCombo_editTextChanged" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget.on_findtextCombo_editTextChanged" />
       <keyword name="SearchWidget.on_findtextCombo_editTextChanged" id="SearchWidget.on_findtextCombo_editTextChanged" ref="eric6.UI.SearchWidget.html#SearchWidget.on_findtextCombo_editTextChanged" />
       <keyword name="SearchWidget.on_findtextCombo_editTextChanged" id="SearchWidget.on_findtextCombo_editTextChanged" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.on_findtextCombo_editTextChanged" />
-      <keyword name="SearchWidget.on_highlightAllCheckBox_toggled" id="SearchWidget.on_highlightAllCheckBox_toggled" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget.on_highlightAllCheckBox_toggled" />
       <keyword name="SearchWidget.searchStringFound" id="SearchWidget.searchStringFound" ref="eric6.UI.SearchWidget.html#SearchWidget.searchStringFound" />
-      <keyword name="SearchWidget.showFind" id="SearchWidget.showFind" ref="eric6.Helpviewer.SearchWidget.html#SearchWidget.showFind" />
       <keyword name="SearchWidget.showFind" id="SearchWidget.showFind" ref="eric6.UI.SearchWidget.html#SearchWidget.showFind" />
       <keyword name="SearchWidget.showFind" id="SearchWidget.showFind" ref="eric6.WebBrowser.SearchWidget.html#SearchWidget.showFind" />
       <keyword name="SecurityPage" id="SecurityPage" ref="eric6.Preferences.ConfigurationPages.SecurityPage.html#SecurityPage" />
@@ -14759,15 +12562,10 @@
       <keyword name="SecurityPage.on_masterPasswordCheckBox_clicked" id="SecurityPage.on_masterPasswordCheckBox_clicked" ref="eric6.Preferences.ConfigurationPages.SecurityPage.html#SecurityPage.on_masterPasswordCheckBox_clicked" />
       <keyword name="SecurityPage.save" id="SecurityPage.save" ref="eric6.Preferences.ConfigurationPages.SecurityPage.html#SecurityPage.save" />
       <keyword name="SecurityPage.setMode" id="SecurityPage.setMode" ref="eric6.Preferences.ConfigurationPages.SecurityPage.html#SecurityPage.setMode" />
-      <keyword name="SendRefererWhitelistDialog" id="SendRefererWhitelistDialog" ref="eric6.Helpviewer.Network.SendRefererWhitelistDialog.html#SendRefererWhitelistDialog" />
       <keyword name="SendRefererWhitelistDialog" id="SendRefererWhitelistDialog" ref="eric6.WebBrowser.Network.SendRefererWhitelistDialog.html#SendRefererWhitelistDialog" />
-      <keyword name="SendRefererWhitelistDialog (Constructor)" id="SendRefererWhitelistDialog (Constructor)" ref="eric6.Helpviewer.Network.SendRefererWhitelistDialog.html#SendRefererWhitelistDialog.__init__" />
       <keyword name="SendRefererWhitelistDialog (Constructor)" id="SendRefererWhitelistDialog (Constructor)" ref="eric6.WebBrowser.Network.SendRefererWhitelistDialog.html#SendRefererWhitelistDialog.__init__" />
-      <keyword name="SendRefererWhitelistDialog (Module)" id="SendRefererWhitelistDialog (Module)" ref="eric6.Helpviewer.Network.SendRefererWhitelistDialog.html" />
       <keyword name="SendRefererWhitelistDialog (Module)" id="SendRefererWhitelistDialog (Module)" ref="eric6.WebBrowser.Network.SendRefererWhitelistDialog.html" />
-      <keyword name="SendRefererWhitelistDialog.accept" id="SendRefererWhitelistDialog.accept" ref="eric6.Helpviewer.Network.SendRefererWhitelistDialog.html#SendRefererWhitelistDialog.accept" />
       <keyword name="SendRefererWhitelistDialog.accept" id="SendRefererWhitelistDialog.accept" ref="eric6.WebBrowser.Network.SendRefererWhitelistDialog.html#SendRefererWhitelistDialog.accept" />
-      <keyword name="SendRefererWhitelistDialog.on_addButton_clicked" id="SendRefererWhitelistDialog.on_addButton_clicked" ref="eric6.Helpviewer.Network.SendRefererWhitelistDialog.html#SendRefererWhitelistDialog.on_addButton_clicked" />
       <keyword name="SendRefererWhitelistDialog.on_addButton_clicked" id="SendRefererWhitelistDialog.on_addButton_clicked" ref="eric6.WebBrowser.Network.SendRefererWhitelistDialog.html#SendRefererWhitelistDialog.on_addButton_clicked" />
       <keyword name="Service" id="Service" ref="eric6.Utilities.ClassBrowsers.protoclbr.html#Service" />
       <keyword name="Service (Constructor)" id="Service (Constructor)" ref="eric6.Utilities.ClassBrowsers.protoclbr.html#Service.__init__" />
@@ -15153,29 +12951,19 @@
       <keyword name="SingleApplicationServer.__receiveJson" id="SingleApplicationServer.__receiveJson" ref="eric6.Toolbox.SingleApplication.html#SingleApplicationServer.__receiveJson" />
       <keyword name="SingleApplicationServer.handleCommand" id="SingleApplicationServer.handleCommand" ref="eric6.Toolbox.SingleApplication.html#SingleApplicationServer.handleCommand" />
       <keyword name="SingleApplicationServer.shutdown" id="SingleApplicationServer.shutdown" ref="eric6.Toolbox.SingleApplication.html#SingleApplicationServer.shutdown" />
-      <keyword name="SiteInfo (Package)" id="SiteInfo (Package)" ref="index-eric6.Helpviewer.SiteInfo.html" />
       <keyword name="SiteInfo (Package)" id="SiteInfo (Package)" ref="index-eric6.WebBrowser.SiteInfo.html" />
-      <keyword name="SiteInfoDialog" id="SiteInfoDialog" ref="eric6.Helpviewer.SiteInfo.SiteInfoDialog.html#SiteInfoDialog" />
       <keyword name="SiteInfoDialog" id="SiteInfoDialog" ref="eric6.WebBrowser.SiteInfo.SiteInfoDialog.html#SiteInfoDialog" />
-      <keyword name="SiteInfoDialog (Constructor)" id="SiteInfoDialog (Constructor)" ref="eric6.Helpviewer.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.__init__" />
       <keyword name="SiteInfoDialog (Constructor)" id="SiteInfoDialog (Constructor)" ref="eric6.WebBrowser.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.__init__" />
-      <keyword name="SiteInfoDialog (Module)" id="SiteInfoDialog (Module)" ref="eric6.Helpviewer.SiteInfo.SiteInfoDialog.html" />
       <keyword name="SiteInfoDialog (Module)" id="SiteInfoDialog (Module)" ref="eric6.WebBrowser.SiteInfo.SiteInfoDialog.html" />
-      <keyword name="SiteInfoDialog.__copyAction" id="SiteInfoDialog.__copyAction" ref="eric6.Helpviewer.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.__copyAction" />
       <keyword name="SiteInfoDialog.__copyAction" id="SiteInfoDialog.__copyAction" ref="eric6.WebBrowser.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.__copyAction" />
       <keyword name="SiteInfoDialog.__imageReplyFinished" id="SiteInfoDialog.__imageReplyFinished" ref="eric6.WebBrowser.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.__imageReplyFinished" />
-      <keyword name="SiteInfoDialog.__imagesTreeContextMenuRequested" id="SiteInfoDialog.__imagesTreeContextMenuRequested" ref="eric6.Helpviewer.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.__imagesTreeContextMenuRequested" />
       <keyword name="SiteInfoDialog.__imagesTreeContextMenuRequested" id="SiteInfoDialog.__imagesTreeContextMenuRequested" ref="eric6.WebBrowser.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.__imagesTreeContextMenuRequested" />
       <keyword name="SiteInfoDialog.__processImageTags" id="SiteInfoDialog.__processImageTags" ref="eric6.WebBrowser.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.__processImageTags" />
       <keyword name="SiteInfoDialog.__processMetaAttributes" id="SiteInfoDialog.__processMetaAttributes" ref="eric6.WebBrowser.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.__processMetaAttributes" />
-      <keyword name="SiteInfoDialog.__saveImage" id="SiteInfoDialog.__saveImage" ref="eric6.Helpviewer.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.__saveImage" />
       <keyword name="SiteInfoDialog.__saveImage" id="SiteInfoDialog.__saveImage" ref="eric6.WebBrowser.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.__saveImage" />
       <keyword name="SiteInfoDialog.__showLoadingText" id="SiteInfoDialog.__showLoadingText" ref="eric6.WebBrowser.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.__showLoadingText" />
       <keyword name="SiteInfoDialog.__showPixmap" id="SiteInfoDialog.__showPixmap" ref="eric6.WebBrowser.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.__showPixmap" />
-      <keyword name="SiteInfoDialog.on_databasesList_currentItemChanged" id="SiteInfoDialog.on_databasesList_currentItemChanged" ref="eric6.Helpviewer.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.on_databasesList_currentItemChanged" />
-      <keyword name="SiteInfoDialog.on_imagesTree_currentItemChanged" id="SiteInfoDialog.on_imagesTree_currentItemChanged" ref="eric6.Helpviewer.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.on_imagesTree_currentItemChanged" />
       <keyword name="SiteInfoDialog.on_imagesTree_currentItemChanged" id="SiteInfoDialog.on_imagesTree_currentItemChanged" ref="eric6.WebBrowser.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.on_imagesTree_currentItemChanged" />
-      <keyword name="SiteInfoDialog.on_securityDetailsButton_clicked" id="SiteInfoDialog.on_securityDetailsButton_clicked" ref="eric6.Helpviewer.SiteInfo.SiteInfoDialog.html#SiteInfoDialog.on_securityDetailsButton_clicked" />
       <keyword name="SiteInfoWidget" id="SiteInfoWidget" ref="eric6.WebBrowser.SiteInfo.SiteInfoWidget.html#SiteInfoWidget" />
       <keyword name="SiteInfoWidget (Constructor)" id="SiteInfoWidget (Constructor)" ref="eric6.WebBrowser.SiteInfo.SiteInfoWidget.html#SiteInfoWidget.__init__" />
       <keyword name="SiteInfoWidget (Module)" id="SiteInfoWidget (Module)" ref="eric6.WebBrowser.SiteInfo.SiteInfoWidget.html" />
@@ -15284,85 +13072,44 @@
       <keyword name="SourceStat.inc" id="SourceStat.inc" ref="eric6.DataViews.CodeMetrics.html#SourceStat.inc" />
       <keyword name="SourceStat.indent" id="SourceStat.indent" ref="eric6.DataViews.CodeMetrics.html#SourceStat.indent" />
       <keyword name="SourceStat.push" id="SourceStat.push" ref="eric6.DataViews.CodeMetrics.html#SourceStat.push" />
-      <keyword name="SpeedDial" id="SpeedDial" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial" />
       <keyword name="SpeedDial" id="SpeedDial" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial" />
-      <keyword name="SpeedDial (Constructor)" id="SpeedDial (Constructor)" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.__init__" />
       <keyword name="SpeedDial (Constructor)" id="SpeedDial (Constructor)" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.__init__" />
-      <keyword name="SpeedDial (Module)" id="SpeedDial (Module)" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html" />
       <keyword name="SpeedDial (Module)" id="SpeedDial (Module)" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html" />
-      <keyword name="SpeedDial (Package)" id="SpeedDial (Package)" ref="index-eric6.Helpviewer.SpeedDial.html" />
       <keyword name="SpeedDial (Package)" id="SpeedDial (Package)" ref="index-eric6.WebBrowser.SpeedDial.html" />
-      <keyword name="SpeedDial.__cleanFrames" id="SpeedDial.__cleanFrames" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.__cleanFrames" />
       <keyword name="SpeedDial.__escapeTitle" id="SpeedDial.__escapeTitle" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.__escapeTitle" />
       <keyword name="SpeedDial.__escapeUrl" id="SpeedDial.__escapeUrl" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.__escapeUrl" />
-      <keyword name="SpeedDial.__imageFileName" id="SpeedDial.__imageFileName" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.__imageFileName" />
       <keyword name="SpeedDial.__imageFileName" id="SpeedDial.__imageFileName" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.__imageFileName" />
-      <keyword name="SpeedDial.__initialize" id="SpeedDial.__initialize" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.__initialize" />
       <keyword name="SpeedDial.__initialize" id="SpeedDial.__initialize" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.__initialize" />
-      <keyword name="SpeedDial.__load" id="SpeedDial.__load" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.__load" />
       <keyword name="SpeedDial.__load" id="SpeedDial.__load" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.__load" />
-      <keyword name="SpeedDial.__pagesChanged" id="SpeedDial.__pagesChanged" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.__pagesChanged" />
-      <keyword name="SpeedDial.__thumbnailCreated" id="SpeedDial.__thumbnailCreated" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.__thumbnailCreated" />
       <keyword name="SpeedDial.__thumbnailCreated" id="SpeedDial.__thumbnailCreated" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.__thumbnailCreated" />
-      <keyword name="SpeedDial.addPage" id="SpeedDial.addPage" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.addPage" />
       <keyword name="SpeedDial.addPage" id="SpeedDial.addPage" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.addPage" />
-      <keyword name="SpeedDial.addWebFrame" id="SpeedDial.addWebFrame" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.addWebFrame" />
-      <keyword name="SpeedDial.changed" id="SpeedDial.changed" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.changed" />
       <keyword name="SpeedDial.changed" id="SpeedDial.changed" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.changed" />
-      <keyword name="SpeedDial.close" id="SpeedDial.close" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.close" />
       <keyword name="SpeedDial.close" id="SpeedDial.close" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.close" />
-      <keyword name="SpeedDial.getFileName" id="SpeedDial.getFileName" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.getFileName" />
       <keyword name="SpeedDial.getFileName" id="SpeedDial.getFileName" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.getFileName" />
-      <keyword name="SpeedDial.initialScript" id="SpeedDial.initialScript" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.initialScript" />
       <keyword name="SpeedDial.initialScript" id="SpeedDial.initialScript" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.initialScript" />
-      <keyword name="SpeedDial.loadThumbnail" id="SpeedDial.loadThumbnail" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.loadThumbnail" />
       <keyword name="SpeedDial.loadThumbnail" id="SpeedDial.loadThumbnail" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.loadThumbnail" />
-      <keyword name="SpeedDial.pageForUrl" id="SpeedDial.pageForUrl" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.pageForUrl" />
       <keyword name="SpeedDial.pageForUrl" id="SpeedDial.pageForUrl" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.pageForUrl" />
-      <keyword name="SpeedDial.pagesInRow" id="SpeedDial.pagesInRow" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.pagesInRow" />
       <keyword name="SpeedDial.pagesInRow" id="SpeedDial.pagesInRow" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.pagesInRow" />
-      <keyword name="SpeedDial.reload" id="SpeedDial.reload" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.reload" />
       <keyword name="SpeedDial.reload" id="SpeedDial.reload" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.reload" />
-      <keyword name="SpeedDial.removeImageForUrl" id="SpeedDial.removeImageForUrl" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.removeImageForUrl" />
       <keyword name="SpeedDial.removeImageForUrl" id="SpeedDial.removeImageForUrl" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.removeImageForUrl" />
-      <keyword name="SpeedDial.removePage" id="SpeedDial.removePage" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.removePage" />
       <keyword name="SpeedDial.removePage" id="SpeedDial.removePage" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.removePage" />
-      <keyword name="SpeedDial.resetDials" id="SpeedDial.resetDials" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.resetDials" />
       <keyword name="SpeedDial.resetDials" id="SpeedDial.resetDials" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.resetDials" />
-      <keyword name="SpeedDial.save" id="SpeedDial.save" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.save" />
       <keyword name="SpeedDial.save" id="SpeedDial.save" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.save" />
-      <keyword name="SpeedDial.sdSize" id="SpeedDial.sdSize" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.sdSize" />
       <keyword name="SpeedDial.sdSize" id="SpeedDial.sdSize" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.sdSize" />
-      <keyword name="SpeedDial.setPagesInRow" id="SpeedDial.setPagesInRow" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.setPagesInRow" />
       <keyword name="SpeedDial.setPagesInRow" id="SpeedDial.setPagesInRow" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.setPagesInRow" />
-      <keyword name="SpeedDial.setSdSize" id="SpeedDial.setSdSize" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.setSdSize" />
       <keyword name="SpeedDial.setSdSize" id="SpeedDial.setSdSize" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.setSdSize" />
-      <keyword name="SpeedDial.unescapeTitle" id="SpeedDial.unescapeTitle" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.unescapeTitle" />
-      <keyword name="SpeedDial.urlForShortcut" id="SpeedDial.urlForShortcut" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.urlForShortcut" />
       <keyword name="SpeedDial.urlForShortcut" id="SpeedDial.urlForShortcut" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.urlForShortcut" />
-      <keyword name="SpeedDial.urlFromUserInput" id="SpeedDial.urlFromUserInput" ref="eric6.Helpviewer.SpeedDial.SpeedDial.html#SpeedDial.urlFromUserInput" />
       <keyword name="SpeedDial.urlFromUserInput" id="SpeedDial.urlFromUserInput" ref="eric6.WebBrowser.SpeedDial.SpeedDial.html#SpeedDial.urlFromUserInput" />
-      <keyword name="SpeedDialReader" id="SpeedDialReader" ref="eric6.Helpviewer.SpeedDial.SpeedDialReader.html#SpeedDialReader" />
       <keyword name="SpeedDialReader" id="SpeedDialReader" ref="eric6.WebBrowser.SpeedDial.SpeedDialReader.html#SpeedDialReader" />
-      <keyword name="SpeedDialReader (Constructor)" id="SpeedDialReader (Constructor)" ref="eric6.Helpviewer.SpeedDial.SpeedDialReader.html#SpeedDialReader.__init__" />
       <keyword name="SpeedDialReader (Constructor)" id="SpeedDialReader (Constructor)" ref="eric6.WebBrowser.SpeedDial.SpeedDialReader.html#SpeedDialReader.__init__" />
-      <keyword name="SpeedDialReader (Module)" id="SpeedDialReader (Module)" ref="eric6.Helpviewer.SpeedDial.SpeedDialReader.html" />
       <keyword name="SpeedDialReader (Module)" id="SpeedDialReader (Module)" ref="eric6.WebBrowser.SpeedDial.SpeedDialReader.html" />
-      <keyword name="SpeedDialReader.__readSpeedDial" id="SpeedDialReader.__readSpeedDial" ref="eric6.Helpviewer.SpeedDial.SpeedDialReader.html#SpeedDialReader.__readSpeedDial" />
       <keyword name="SpeedDialReader.__readSpeedDial" id="SpeedDialReader.__readSpeedDial" ref="eric6.WebBrowser.SpeedDial.SpeedDialReader.html#SpeedDialReader.__readSpeedDial" />
-      <keyword name="SpeedDialReader.__skipUnknownElement" id="SpeedDialReader.__skipUnknownElement" ref="eric6.Helpviewer.SpeedDial.SpeedDialReader.html#SpeedDialReader.__skipUnknownElement" />
       <keyword name="SpeedDialReader.__skipUnknownElement" id="SpeedDialReader.__skipUnknownElement" ref="eric6.WebBrowser.SpeedDial.SpeedDialReader.html#SpeedDialReader.__skipUnknownElement" />
-      <keyword name="SpeedDialReader.read" id="SpeedDialReader.read" ref="eric6.Helpviewer.SpeedDial.SpeedDialReader.html#SpeedDialReader.read" />
       <keyword name="SpeedDialReader.read" id="SpeedDialReader.read" ref="eric6.WebBrowser.SpeedDial.SpeedDialReader.html#SpeedDialReader.read" />
-      <keyword name="SpeedDialWriter" id="SpeedDialWriter" ref="eric6.Helpviewer.SpeedDial.SpeedDialWriter.html#SpeedDialWriter" />
       <keyword name="SpeedDialWriter" id="SpeedDialWriter" ref="eric6.WebBrowser.SpeedDial.SpeedDialWriter.html#SpeedDialWriter" />
-      <keyword name="SpeedDialWriter (Constructor)" id="SpeedDialWriter (Constructor)" ref="eric6.Helpviewer.SpeedDial.SpeedDialWriter.html#SpeedDialWriter.__init__" />
       <keyword name="SpeedDialWriter (Constructor)" id="SpeedDialWriter (Constructor)" ref="eric6.WebBrowser.SpeedDial.SpeedDialWriter.html#SpeedDialWriter.__init__" />
-      <keyword name="SpeedDialWriter (Module)" id="SpeedDialWriter (Module)" ref="eric6.Helpviewer.SpeedDial.SpeedDialWriter.html" />
       <keyword name="SpeedDialWriter (Module)" id="SpeedDialWriter (Module)" ref="eric6.WebBrowser.SpeedDial.SpeedDialWriter.html" />
-      <keyword name="SpeedDialWriter.__write" id="SpeedDialWriter.__write" ref="eric6.Helpviewer.SpeedDial.SpeedDialWriter.html#SpeedDialWriter.__write" />
       <keyword name="SpeedDialWriter.__write" id="SpeedDialWriter.__write" ref="eric6.WebBrowser.SpeedDial.SpeedDialWriter.html#SpeedDialWriter.__write" />
-      <keyword name="SpeedDialWriter.write" id="SpeedDialWriter.write" ref="eric6.Helpviewer.SpeedDial.SpeedDialWriter.html#SpeedDialWriter.write" />
       <keyword name="SpeedDialWriter.write" id="SpeedDialWriter.write" ref="eric6.WebBrowser.SpeedDial.SpeedDialWriter.html#SpeedDialWriter.write" />
       <keyword name="SpellCheck (Package)" id="SpellCheck (Package)" ref="index-eric6.WebBrowser.SpellCheck.html" />
       <keyword name="SpellCheckDictionariesReader" id="SpellCheckDictionariesReader" ref="eric6.E5XML.SpellCheckDictionariesReader.html#SpellCheckDictionariesReader" />
@@ -15397,7 +13144,6 @@
       <keyword name="SpellChecker.ignoreAlways" id="SpellChecker.ignoreAlways" ref="eric6.QScintilla.SpellChecker.html#SpellChecker.ignoreAlways" />
       <keyword name="SpellChecker.initCheck" id="SpellChecker.initCheck" ref="eric6.QScintilla.SpellChecker.html#SpellChecker.initCheck" />
       <keyword name="SpellChecker.isAvailable" id="SpellChecker.isAvailable" ref="eric6.QScintilla.SpellChecker.html#SpellChecker.isAvailable" />
-      <keyword name="SpellChecker.next" id="SpellChecker.next" ref="eric6.QScintilla.SpellChecker.html#SpellChecker.next" />
       <keyword name="SpellChecker.remove" id="SpellChecker.remove" ref="eric6.QScintilla.SpellChecker.html#SpellChecker.remove" />
       <keyword name="SpellChecker.replace" id="SpellChecker.replace" ref="eric6.QScintilla.SpellChecker.html#SpellChecker.replace" />
       <keyword name="SpellChecker.replaceAlways" id="SpellChecker.replaceAlways" ref="eric6.QScintilla.SpellChecker.html#SpellChecker.replaceAlways" />
@@ -15487,25 +13233,12 @@
       <keyword name="SslErrorExceptionsDialog.on_errorsTree_itemSelectionChanged" id="SslErrorExceptionsDialog.on_errorsTree_itemSelectionChanged" ref="eric6.WebBrowser.Network.SslErrorExceptionsDialog.html#SslErrorExceptionsDialog.on_errorsTree_itemSelectionChanged" />
       <keyword name="SslErrorExceptionsDialog.on_removeAllButton_clicked" id="SslErrorExceptionsDialog.on_removeAllButton_clicked" ref="eric6.WebBrowser.Network.SslErrorExceptionsDialog.html#SslErrorExceptionsDialog.on_removeAllButton_clicked" />
       <keyword name="SslErrorExceptionsDialog.on_removeButton_clicked" id="SslErrorExceptionsDialog.on_removeButton_clicked" ref="eric6.WebBrowser.Network.SslErrorExceptionsDialog.html#SslErrorExceptionsDialog.on_removeButton_clicked" />
-      <keyword name="SslLabel" id="SslLabel" ref="eric6.Helpviewer.UrlBar.SslLabel.html#SslLabel" />
-      <keyword name="SslLabel (Constructor)" id="SslLabel (Constructor)" ref="eric6.Helpviewer.UrlBar.SslLabel.html#SslLabel.__init__" />
-      <keyword name="SslLabel (Module)" id="SslLabel (Module)" ref="eric6.Helpviewer.UrlBar.SslLabel.html" />
-      <keyword name="SslLabel.mouseDoubleClickEvent" id="SslLabel.mouseDoubleClickEvent" ref="eric6.Helpviewer.UrlBar.SslLabel.html#SslLabel.mouseDoubleClickEvent" />
-      <keyword name="SslLabel.mouseReleaseEvent" id="SslLabel.mouseReleaseEvent" ref="eric6.Helpviewer.UrlBar.SslLabel.html#SslLabel.mouseReleaseEvent" />
-      <keyword name="SslLabel.setValidity" id="SslLabel.setValidity" ref="eric6.Helpviewer.UrlBar.SslLabel.html#SslLabel.setValidity" />
-      <keyword name="StackedUrlBar" id="StackedUrlBar" ref="eric6.Helpviewer.UrlBar.StackedUrlBar.html#StackedUrlBar" />
       <keyword name="StackedUrlBar" id="StackedUrlBar" ref="eric6.WebBrowser.UrlBar.StackedUrlBar.html#StackedUrlBar" />
-      <keyword name="StackedUrlBar (Constructor)" id="StackedUrlBar (Constructor)" ref="eric6.Helpviewer.UrlBar.StackedUrlBar.html#StackedUrlBar.__init__" />
       <keyword name="StackedUrlBar (Constructor)" id="StackedUrlBar (Constructor)" ref="eric6.WebBrowser.UrlBar.StackedUrlBar.html#StackedUrlBar.__init__" />
-      <keyword name="StackedUrlBar (Module)" id="StackedUrlBar (Module)" ref="eric6.Helpviewer.UrlBar.StackedUrlBar.html" />
       <keyword name="StackedUrlBar (Module)" id="StackedUrlBar (Module)" ref="eric6.WebBrowser.UrlBar.StackedUrlBar.html" />
-      <keyword name="StackedUrlBar.currentUrlBar" id="StackedUrlBar.currentUrlBar" ref="eric6.Helpviewer.UrlBar.StackedUrlBar.html#StackedUrlBar.currentUrlBar" />
       <keyword name="StackedUrlBar.currentUrlBar" id="StackedUrlBar.currentUrlBar" ref="eric6.WebBrowser.UrlBar.StackedUrlBar.html#StackedUrlBar.currentUrlBar" />
-      <keyword name="StackedUrlBar.moveBar" id="StackedUrlBar.moveBar" ref="eric6.Helpviewer.UrlBar.StackedUrlBar.html#StackedUrlBar.moveBar" />
       <keyword name="StackedUrlBar.moveBar" id="StackedUrlBar.moveBar" ref="eric6.WebBrowser.UrlBar.StackedUrlBar.html#StackedUrlBar.moveBar" />
-      <keyword name="StackedUrlBar.urlBar" id="StackedUrlBar.urlBar" ref="eric6.Helpviewer.UrlBar.StackedUrlBar.html#StackedUrlBar.urlBar" />
       <keyword name="StackedUrlBar.urlBar" id="StackedUrlBar.urlBar" ref="eric6.WebBrowser.UrlBar.StackedUrlBar.html#StackedUrlBar.urlBar" />
-      <keyword name="StackedUrlBar.urlBars" id="StackedUrlBar.urlBars" ref="eric6.Helpviewer.UrlBar.StackedUrlBar.html#StackedUrlBar.urlBars" />
       <keyword name="StackedUrlBar.urlBars" id="StackedUrlBar.urlBars" ref="eric6.WebBrowser.UrlBar.StackedUrlBar.html#StackedUrlBar.urlBars" />
       <keyword name="StackedWidget" id="StackedWidget" ref="eric6.Plugins.ViewManagerPlugins.Listspace.Listspace.html#StackedWidget" />
       <keyword name="StackedWidget (Constructor)" id="StackedWidget (Constructor)" ref="eric6.Plugins.ViewManagerPlugins.Listspace.Listspace.html#StackedWidget.__init__" />
@@ -16471,143 +14204,74 @@
       <keyword name="SymbolsWidget.on_symbolSpinBox_editingFinished" id="SymbolsWidget.on_symbolSpinBox_editingFinished" ref="eric6.UI.SymbolsWidget.html#SymbolsWidget.on_symbolSpinBox_editingFinished" />
       <keyword name="SymbolsWidget.on_symbolsTable_activated" id="SymbolsWidget.on_symbolsTable_activated" ref="eric6.UI.SymbolsWidget.html#SymbolsWidget.on_symbolsTable_activated" />
       <keyword name="SymbolsWidget.on_tableCombo_currentIndexChanged" id="SymbolsWidget.on_tableCombo_currentIndexChanged" ref="eric6.UI.SymbolsWidget.html#SymbolsWidget.on_tableCombo_currentIndexChanged" />
-      <keyword name="Sync (Package)" id="Sync (Package)" ref="index-eric6.Helpviewer.Sync.html" />
       <keyword name="Sync (Package)" id="Sync (Package)" ref="index-eric6.WebBrowser.Sync.html" />
-      <keyword name="SyncAssistantDialog" id="SyncAssistantDialog" ref="eric6.Helpviewer.Sync.SyncAssistantDialog.html#SyncAssistantDialog" />
       <keyword name="SyncAssistantDialog" id="SyncAssistantDialog" ref="eric6.WebBrowser.Sync.SyncAssistantDialog.html#SyncAssistantDialog" />
-      <keyword name="SyncAssistantDialog (Constructor)" id="SyncAssistantDialog (Constructor)" ref="eric6.Helpviewer.Sync.SyncAssistantDialog.html#SyncAssistantDialog.__init__" />
       <keyword name="SyncAssistantDialog (Constructor)" id="SyncAssistantDialog (Constructor)" ref="eric6.WebBrowser.Sync.SyncAssistantDialog.html#SyncAssistantDialog.__init__" />
-      <keyword name="SyncAssistantDialog (Module)" id="SyncAssistantDialog (Module)" ref="eric6.Helpviewer.Sync.SyncAssistantDialog.html" />
       <keyword name="SyncAssistantDialog (Module)" id="SyncAssistantDialog (Module)" ref="eric6.WebBrowser.Sync.SyncAssistantDialog.html" />
-      <keyword name="SyncCheckPage" id="SyncCheckPage" ref="eric6.Helpviewer.Sync.SyncCheckPage.html#SyncCheckPage" />
       <keyword name="SyncCheckPage" id="SyncCheckPage" ref="eric6.WebBrowser.Sync.SyncCheckPage.html#SyncCheckPage" />
-      <keyword name="SyncCheckPage (Constructor)" id="SyncCheckPage (Constructor)" ref="eric6.Helpviewer.Sync.SyncCheckPage.html#SyncCheckPage.__init__" />
       <keyword name="SyncCheckPage (Constructor)" id="SyncCheckPage (Constructor)" ref="eric6.WebBrowser.Sync.SyncCheckPage.html#SyncCheckPage.__init__" />
-      <keyword name="SyncCheckPage (Module)" id="SyncCheckPage (Module)" ref="eric6.Helpviewer.Sync.SyncCheckPage.html" />
       <keyword name="SyncCheckPage (Module)" id="SyncCheckPage (Module)" ref="eric6.WebBrowser.Sync.SyncCheckPage.html" />
-      <keyword name="SyncCheckPage.__makeAnimatedLabel" id="SyncCheckPage.__makeAnimatedLabel" ref="eric6.Helpviewer.Sync.SyncCheckPage.html#SyncCheckPage.__makeAnimatedLabel" />
       <keyword name="SyncCheckPage.__makeAnimatedLabel" id="SyncCheckPage.__makeAnimatedLabel" ref="eric6.WebBrowser.Sync.SyncCheckPage.html#SyncCheckPage.__makeAnimatedLabel" />
-      <keyword name="SyncCheckPage.__syncError" id="SyncCheckPage.__syncError" ref="eric6.Helpviewer.Sync.SyncCheckPage.html#SyncCheckPage.__syncError" />
       <keyword name="SyncCheckPage.__syncError" id="SyncCheckPage.__syncError" ref="eric6.WebBrowser.Sync.SyncCheckPage.html#SyncCheckPage.__syncError" />
-      <keyword name="SyncCheckPage.__updateLabels" id="SyncCheckPage.__updateLabels" ref="eric6.Helpviewer.Sync.SyncCheckPage.html#SyncCheckPage.__updateLabels" />
       <keyword name="SyncCheckPage.__updateLabels" id="SyncCheckPage.__updateLabels" ref="eric6.WebBrowser.Sync.SyncCheckPage.html#SyncCheckPage.__updateLabels" />
-      <keyword name="SyncCheckPage.__updateMessages" id="SyncCheckPage.__updateMessages" ref="eric6.Helpviewer.Sync.SyncCheckPage.html#SyncCheckPage.__updateMessages" />
       <keyword name="SyncCheckPage.__updateMessages" id="SyncCheckPage.__updateMessages" ref="eric6.WebBrowser.Sync.SyncCheckPage.html#SyncCheckPage.__updateMessages" />
-      <keyword name="SyncCheckPage.initializePage" id="SyncCheckPage.initializePage" ref="eric6.Helpviewer.Sync.SyncCheckPage.html#SyncCheckPage.initializePage" />
       <keyword name="SyncCheckPage.initializePage" id="SyncCheckPage.initializePage" ref="eric6.WebBrowser.Sync.SyncCheckPage.html#SyncCheckPage.initializePage" />
-      <keyword name="SyncDataPage" id="SyncDataPage" ref="eric6.Helpviewer.Sync.SyncDataPage.html#SyncDataPage" />
       <keyword name="SyncDataPage" id="SyncDataPage" ref="eric6.WebBrowser.Sync.SyncDataPage.html#SyncDataPage" />
-      <keyword name="SyncDataPage (Constructor)" id="SyncDataPage (Constructor)" ref="eric6.Helpviewer.Sync.SyncDataPage.html#SyncDataPage.__init__" />
       <keyword name="SyncDataPage (Constructor)" id="SyncDataPage (Constructor)" ref="eric6.WebBrowser.Sync.SyncDataPage.html#SyncDataPage.__init__" />
-      <keyword name="SyncDataPage (Module)" id="SyncDataPage (Module)" ref="eric6.Helpviewer.Sync.SyncDataPage.html" />
       <keyword name="SyncDataPage (Module)" id="SyncDataPage (Module)" ref="eric6.WebBrowser.Sync.SyncDataPage.html" />
-      <keyword name="SyncDataPage.nextId" id="SyncDataPage.nextId" ref="eric6.Helpviewer.Sync.SyncDataPage.html#SyncDataPage.nextId" />
       <keyword name="SyncDataPage.nextId" id="SyncDataPage.nextId" ref="eric6.WebBrowser.Sync.SyncDataPage.html#SyncDataPage.nextId" />
-      <keyword name="SyncDirectorySettingsPage" id="SyncDirectorySettingsPage" ref="eric6.Helpviewer.Sync.SyncDirectorySettingsPage.html#SyncDirectorySettingsPage" />
       <keyword name="SyncDirectorySettingsPage" id="SyncDirectorySettingsPage" ref="eric6.WebBrowser.Sync.SyncDirectorySettingsPage.html#SyncDirectorySettingsPage" />
-      <keyword name="SyncDirectorySettingsPage (Constructor)" id="SyncDirectorySettingsPage (Constructor)" ref="eric6.Helpviewer.Sync.SyncDirectorySettingsPage.html#SyncDirectorySettingsPage.__init__" />
       <keyword name="SyncDirectorySettingsPage (Constructor)" id="SyncDirectorySettingsPage (Constructor)" ref="eric6.WebBrowser.Sync.SyncDirectorySettingsPage.html#SyncDirectorySettingsPage.__init__" />
-      <keyword name="SyncDirectorySettingsPage (Module)" id="SyncDirectorySettingsPage (Module)" ref="eric6.Helpviewer.Sync.SyncDirectorySettingsPage.html" />
       <keyword name="SyncDirectorySettingsPage (Module)" id="SyncDirectorySettingsPage (Module)" ref="eric6.WebBrowser.Sync.SyncDirectorySettingsPage.html" />
-      <keyword name="SyncDirectorySettingsPage.isComplete" id="SyncDirectorySettingsPage.isComplete" ref="eric6.Helpviewer.Sync.SyncDirectorySettingsPage.html#SyncDirectorySettingsPage.isComplete" />
       <keyword name="SyncDirectorySettingsPage.isComplete" id="SyncDirectorySettingsPage.isComplete" ref="eric6.WebBrowser.Sync.SyncDirectorySettingsPage.html#SyncDirectorySettingsPage.isComplete" />
-      <keyword name="SyncDirectorySettingsPage.nextId" id="SyncDirectorySettingsPage.nextId" ref="eric6.Helpviewer.Sync.SyncDirectorySettingsPage.html#SyncDirectorySettingsPage.nextId" />
       <keyword name="SyncDirectorySettingsPage.nextId" id="SyncDirectorySettingsPage.nextId" ref="eric6.WebBrowser.Sync.SyncDirectorySettingsPage.html#SyncDirectorySettingsPage.nextId" />
-      <keyword name="SyncEncryptionPage" id="SyncEncryptionPage" ref="eric6.Helpviewer.Sync.SyncEncryptionPage.html#SyncEncryptionPage" />
       <keyword name="SyncEncryptionPage" id="SyncEncryptionPage" ref="eric6.WebBrowser.Sync.SyncEncryptionPage.html#SyncEncryptionPage" />
-      <keyword name="SyncEncryptionPage (Constructor)" id="SyncEncryptionPage (Constructor)" ref="eric6.Helpviewer.Sync.SyncEncryptionPage.html#SyncEncryptionPage.__init__" />
       <keyword name="SyncEncryptionPage (Constructor)" id="SyncEncryptionPage (Constructor)" ref="eric6.WebBrowser.Sync.SyncEncryptionPage.html#SyncEncryptionPage.__init__" />
-      <keyword name="SyncEncryptionPage (Module)" id="SyncEncryptionPage (Module)" ref="eric6.Helpviewer.Sync.SyncEncryptionPage.html" />
       <keyword name="SyncEncryptionPage (Module)" id="SyncEncryptionPage (Module)" ref="eric6.WebBrowser.Sync.SyncEncryptionPage.html" />
-      <keyword name="SyncEncryptionPage.__updateUI" id="SyncEncryptionPage.__updateUI" ref="eric6.Helpviewer.Sync.SyncEncryptionPage.html#SyncEncryptionPage.__updateUI" />
       <keyword name="SyncEncryptionPage.__updateUI" id="SyncEncryptionPage.__updateUI" ref="eric6.WebBrowser.Sync.SyncEncryptionPage.html#SyncEncryptionPage.__updateUI" />
-      <keyword name="SyncEncryptionPage.isComplete" id="SyncEncryptionPage.isComplete" ref="eric6.Helpviewer.Sync.SyncEncryptionPage.html#SyncEncryptionPage.isComplete" />
       <keyword name="SyncEncryptionPage.isComplete" id="SyncEncryptionPage.isComplete" ref="eric6.WebBrowser.Sync.SyncEncryptionPage.html#SyncEncryptionPage.isComplete" />
-      <keyword name="SyncEncryptionPage.nextId" id="SyncEncryptionPage.nextId" ref="eric6.Helpviewer.Sync.SyncEncryptionPage.html#SyncEncryptionPage.nextId" />
       <keyword name="SyncEncryptionPage.nextId" id="SyncEncryptionPage.nextId" ref="eric6.WebBrowser.Sync.SyncEncryptionPage.html#SyncEncryptionPage.nextId" />
-      <keyword name="SyncEncryptionPage.on_encryptionGroupBox_toggled" id="SyncEncryptionPage.on_encryptionGroupBox_toggled" ref="eric6.Helpviewer.Sync.SyncEncryptionPage.html#SyncEncryptionPage.on_encryptionGroupBox_toggled" />
       <keyword name="SyncEncryptionPage.on_encryptionGroupBox_toggled" id="SyncEncryptionPage.on_encryptionGroupBox_toggled" ref="eric6.WebBrowser.Sync.SyncEncryptionPage.html#SyncEncryptionPage.on_encryptionGroupBox_toggled" />
-      <keyword name="SyncEncryptionPage.on_encryptionKeyAgainEdit_textChanged" id="SyncEncryptionPage.on_encryptionKeyAgainEdit_textChanged" ref="eric6.Helpviewer.Sync.SyncEncryptionPage.html#SyncEncryptionPage.on_encryptionKeyAgainEdit_textChanged" />
       <keyword name="SyncEncryptionPage.on_encryptionKeyAgainEdit_textChanged" id="SyncEncryptionPage.on_encryptionKeyAgainEdit_textChanged" ref="eric6.WebBrowser.Sync.SyncEncryptionPage.html#SyncEncryptionPage.on_encryptionKeyAgainEdit_textChanged" />
-      <keyword name="SyncEncryptionPage.on_encryptionKeyEdit_textChanged" id="SyncEncryptionPage.on_encryptionKeyEdit_textChanged" ref="eric6.Helpviewer.Sync.SyncEncryptionPage.html#SyncEncryptionPage.on_encryptionKeyEdit_textChanged" />
       <keyword name="SyncEncryptionPage.on_encryptionKeyEdit_textChanged" id="SyncEncryptionPage.on_encryptionKeyEdit_textChanged" ref="eric6.WebBrowser.Sync.SyncEncryptionPage.html#SyncEncryptionPage.on_encryptionKeyEdit_textChanged" />
-      <keyword name="SyncEncryptionPage.on_reencryptCheckBox_toggled" id="SyncEncryptionPage.on_reencryptCheckBox_toggled" ref="eric6.Helpviewer.Sync.SyncEncryptionPage.html#SyncEncryptionPage.on_reencryptCheckBox_toggled" />
       <keyword name="SyncEncryptionPage.on_reencryptCheckBox_toggled" id="SyncEncryptionPage.on_reencryptCheckBox_toggled" ref="eric6.WebBrowser.Sync.SyncEncryptionPage.html#SyncEncryptionPage.on_reencryptCheckBox_toggled" />
-      <keyword name="SyncFtpSettingsPage" id="SyncFtpSettingsPage" ref="eric6.Helpviewer.Sync.SyncFtpSettingsPage.html#SyncFtpSettingsPage" />
       <keyword name="SyncFtpSettingsPage" id="SyncFtpSettingsPage" ref="eric6.WebBrowser.Sync.SyncFtpSettingsPage.html#SyncFtpSettingsPage" />
-      <keyword name="SyncFtpSettingsPage (Constructor)" id="SyncFtpSettingsPage (Constructor)" ref="eric6.Helpviewer.Sync.SyncFtpSettingsPage.html#SyncFtpSettingsPage.__init__" />
       <keyword name="SyncFtpSettingsPage (Constructor)" id="SyncFtpSettingsPage (Constructor)" ref="eric6.WebBrowser.Sync.SyncFtpSettingsPage.html#SyncFtpSettingsPage.__init__" />
-      <keyword name="SyncFtpSettingsPage (Module)" id="SyncFtpSettingsPage (Module)" ref="eric6.Helpviewer.Sync.SyncFtpSettingsPage.html" />
       <keyword name="SyncFtpSettingsPage (Module)" id="SyncFtpSettingsPage (Module)" ref="eric6.WebBrowser.Sync.SyncFtpSettingsPage.html" />
-      <keyword name="SyncFtpSettingsPage.isComplete" id="SyncFtpSettingsPage.isComplete" ref="eric6.Helpviewer.Sync.SyncFtpSettingsPage.html#SyncFtpSettingsPage.isComplete" />
       <keyword name="SyncFtpSettingsPage.isComplete" id="SyncFtpSettingsPage.isComplete" ref="eric6.WebBrowser.Sync.SyncFtpSettingsPage.html#SyncFtpSettingsPage.isComplete" />
-      <keyword name="SyncFtpSettingsPage.nextId" id="SyncFtpSettingsPage.nextId" ref="eric6.Helpviewer.Sync.SyncFtpSettingsPage.html#SyncFtpSettingsPage.nextId" />
       <keyword name="SyncFtpSettingsPage.nextId" id="SyncFtpSettingsPage.nextId" ref="eric6.WebBrowser.Sync.SyncFtpSettingsPage.html#SyncFtpSettingsPage.nextId" />
-      <keyword name="SyncGlobals (Module)" id="SyncGlobals (Module)" ref="eric6.Helpviewer.Sync.SyncGlobals.html" />
       <keyword name="SyncGlobals (Module)" id="SyncGlobals (Module)" ref="eric6.WebBrowser.Sync.SyncGlobals.html" />
-      <keyword name="SyncHandler" id="SyncHandler" ref="eric6.Helpviewer.Sync.SyncHandler.html#SyncHandler" />
       <keyword name="SyncHandler" id="SyncHandler" ref="eric6.WebBrowser.Sync.SyncHandler.html#SyncHandler" />
-      <keyword name="SyncHandler (Constructor)" id="SyncHandler (Constructor)" ref="eric6.Helpviewer.Sync.SyncHandler.html#SyncHandler.__init__" />
       <keyword name="SyncHandler (Constructor)" id="SyncHandler (Constructor)" ref="eric6.WebBrowser.Sync.SyncHandler.html#SyncHandler.__init__" />
-      <keyword name="SyncHandler (Module)" id="SyncHandler (Module)" ref="eric6.Helpviewer.Sync.SyncHandler.html" />
       <keyword name="SyncHandler (Module)" id="SyncHandler (Module)" ref="eric6.WebBrowser.Sync.SyncHandler.html" />
-      <keyword name="SyncHandler.initialLoadAndCheck" id="SyncHandler.initialLoadAndCheck" ref="eric6.Helpviewer.Sync.SyncHandler.html#SyncHandler.initialLoadAndCheck" />
       <keyword name="SyncHandler.initialLoadAndCheck" id="SyncHandler.initialLoadAndCheck" ref="eric6.WebBrowser.Sync.SyncHandler.html#SyncHandler.initialLoadAndCheck" />
-      <keyword name="SyncHandler.readFile" id="SyncHandler.readFile" ref="eric6.Helpviewer.Sync.SyncHandler.html#SyncHandler.readFile" />
       <keyword name="SyncHandler.readFile" id="SyncHandler.readFile" ref="eric6.WebBrowser.Sync.SyncHandler.html#SyncHandler.readFile" />
-      <keyword name="SyncHandler.shutdown" id="SyncHandler.shutdown" ref="eric6.Helpviewer.Sync.SyncHandler.html#SyncHandler.shutdown" />
       <keyword name="SyncHandler.shutdown" id="SyncHandler.shutdown" ref="eric6.WebBrowser.Sync.SyncHandler.html#SyncHandler.shutdown" />
-      <keyword name="SyncHandler.syncBookmarks" id="SyncHandler.syncBookmarks" ref="eric6.Helpviewer.Sync.SyncHandler.html#SyncHandler.syncBookmarks" />
       <keyword name="SyncHandler.syncBookmarks" id="SyncHandler.syncBookmarks" ref="eric6.WebBrowser.Sync.SyncHandler.html#SyncHandler.syncBookmarks" />
-      <keyword name="SyncHandler.syncHistory" id="SyncHandler.syncHistory" ref="eric6.Helpviewer.Sync.SyncHandler.html#SyncHandler.syncHistory" />
       <keyword name="SyncHandler.syncHistory" id="SyncHandler.syncHistory" ref="eric6.WebBrowser.Sync.SyncHandler.html#SyncHandler.syncHistory" />
-      <keyword name="SyncHandler.syncPasswords" id="SyncHandler.syncPasswords" ref="eric6.Helpviewer.Sync.SyncHandler.html#SyncHandler.syncPasswords" />
       <keyword name="SyncHandler.syncPasswords" id="SyncHandler.syncPasswords" ref="eric6.WebBrowser.Sync.SyncHandler.html#SyncHandler.syncPasswords" />
-      <keyword name="SyncHandler.syncSpeedDial" id="SyncHandler.syncSpeedDial" ref="eric6.Helpviewer.Sync.SyncHandler.html#SyncHandler.syncSpeedDial" />
       <keyword name="SyncHandler.syncSpeedDial" id="SyncHandler.syncSpeedDial" ref="eric6.WebBrowser.Sync.SyncHandler.html#SyncHandler.syncSpeedDial" />
-      <keyword name="SyncHandler.syncUserAgents" id="SyncHandler.syncUserAgents" ref="eric6.Helpviewer.Sync.SyncHandler.html#SyncHandler.syncUserAgents" />
       <keyword name="SyncHandler.syncUserAgents" id="SyncHandler.syncUserAgents" ref="eric6.WebBrowser.Sync.SyncHandler.html#SyncHandler.syncUserAgents" />
-      <keyword name="SyncHandler.writeFile" id="SyncHandler.writeFile" ref="eric6.Helpviewer.Sync.SyncHandler.html#SyncHandler.writeFile" />
       <keyword name="SyncHandler.writeFile" id="SyncHandler.writeFile" ref="eric6.WebBrowser.Sync.SyncHandler.html#SyncHandler.writeFile" />
-      <keyword name="SyncHostTypePage" id="SyncHostTypePage" ref="eric6.Helpviewer.Sync.SyncHostTypePage.html#SyncHostTypePage" />
       <keyword name="SyncHostTypePage" id="SyncHostTypePage" ref="eric6.WebBrowser.Sync.SyncHostTypePage.html#SyncHostTypePage" />
-      <keyword name="SyncHostTypePage (Constructor)" id="SyncHostTypePage (Constructor)" ref="eric6.Helpviewer.Sync.SyncHostTypePage.html#SyncHostTypePage.__init__" />
       <keyword name="SyncHostTypePage (Constructor)" id="SyncHostTypePage (Constructor)" ref="eric6.WebBrowser.Sync.SyncHostTypePage.html#SyncHostTypePage.__init__" />
-      <keyword name="SyncHostTypePage (Module)" id="SyncHostTypePage (Module)" ref="eric6.Helpviewer.Sync.SyncHostTypePage.html" />
       <keyword name="SyncHostTypePage (Module)" id="SyncHostTypePage (Module)" ref="eric6.WebBrowser.Sync.SyncHostTypePage.html" />
-      <keyword name="SyncHostTypePage.nextId" id="SyncHostTypePage.nextId" ref="eric6.Helpviewer.Sync.SyncHostTypePage.html#SyncHostTypePage.nextId" />
       <keyword name="SyncHostTypePage.nextId" id="SyncHostTypePage.nextId" ref="eric6.WebBrowser.Sync.SyncHostTypePage.html#SyncHostTypePage.nextId" />
-      <keyword name="SyncManager" id="SyncManager" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager" />
       <keyword name="SyncManager" id="SyncManager" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager" />
-      <keyword name="SyncManager (Constructor)" id="SyncManager (Constructor)" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager.__init__" />
       <keyword name="SyncManager (Constructor)" id="SyncManager (Constructor)" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager.__init__" />
-      <keyword name="SyncManager (Module)" id="SyncManager (Module)" ref="eric6.Helpviewer.Sync.SyncManager.html" />
       <keyword name="SyncManager (Module)" id="SyncManager (Module)" ref="eric6.WebBrowser.Sync.SyncManager.html" />
-      <keyword name="SyncManager.__syncBookmarks" id="SyncManager.__syncBookmarks" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager.__syncBookmarks" />
       <keyword name="SyncManager.__syncBookmarks" id="SyncManager.__syncBookmarks" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager.__syncBookmarks" />
-      <keyword name="SyncManager.__syncError" id="SyncManager.__syncError" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager.__syncError" />
       <keyword name="SyncManager.__syncError" id="SyncManager.__syncError" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager.__syncError" />
-      <keyword name="SyncManager.__syncFinished" id="SyncManager.__syncFinished" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager.__syncFinished" />
       <keyword name="SyncManager.__syncFinished" id="SyncManager.__syncFinished" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager.__syncFinished" />
-      <keyword name="SyncManager.__syncHistory" id="SyncManager.__syncHistory" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager.__syncHistory" />
       <keyword name="SyncManager.__syncHistory" id="SyncManager.__syncHistory" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager.__syncHistory" />
-      <keyword name="SyncManager.__syncPasswords" id="SyncManager.__syncPasswords" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager.__syncPasswords" />
       <keyword name="SyncManager.__syncPasswords" id="SyncManager.__syncPasswords" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager.__syncPasswords" />
-      <keyword name="SyncManager.__syncSpeedDial" id="SyncManager.__syncSpeedDial" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager.__syncSpeedDial" />
       <keyword name="SyncManager.__syncSpeedDial" id="SyncManager.__syncSpeedDial" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager.__syncSpeedDial" />
-      <keyword name="SyncManager.__syncStatus" id="SyncManager.__syncStatus" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager.__syncStatus" />
       <keyword name="SyncManager.__syncStatus" id="SyncManager.__syncStatus" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager.__syncStatus" />
-      <keyword name="SyncManager.__syncUserAgents" id="SyncManager.__syncUserAgents" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager.__syncUserAgents" />
       <keyword name="SyncManager.__syncUserAgents" id="SyncManager.__syncUserAgents" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager.__syncUserAgents" />
-      <keyword name="SyncManager.close" id="SyncManager.close" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager.close" />
       <keyword name="SyncManager.close" id="SyncManager.close" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager.close" />
-      <keyword name="SyncManager.handler" id="SyncManager.handler" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager.handler" />
       <keyword name="SyncManager.handler" id="SyncManager.handler" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager.handler" />
-      <keyword name="SyncManager.loadSettings" id="SyncManager.loadSettings" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager.loadSettings" />
       <keyword name="SyncManager.loadSettings" id="SyncManager.loadSettings" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager.loadSettings" />
-      <keyword name="SyncManager.showSyncDialog" id="SyncManager.showSyncDialog" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager.showSyncDialog" />
       <keyword name="SyncManager.showSyncDialog" id="SyncManager.showSyncDialog" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager.showSyncDialog" />
-      <keyword name="SyncManager.syncEnabled" id="SyncManager.syncEnabled" ref="eric6.Helpviewer.Sync.SyncManager.html#SyncManager.syncEnabled" />
       <keyword name="SyncManager.syncEnabled" id="SyncManager.syncEnabled" ref="eric6.WebBrowser.Sync.SyncManager.html#SyncManager.syncEnabled" />
       <keyword name="SyntaxCheck (Module)" id="SyntaxCheck (Module)" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html" />
       <keyword name="SyntaxCheckService" id="SyntaxCheckService" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheckService.html#SyntaxCheckService" />
@@ -16662,7 +14326,6 @@
       <keyword name="SyntaxCheckerPlugin.activate" id="SyntaxCheckerPlugin.activate" ref="eric6.Plugins.PluginSyntaxChecker.html#SyntaxCheckerPlugin.activate" />
       <keyword name="SyntaxCheckerPlugin.deactivate" id="SyntaxCheckerPlugin.deactivate" ref="eric6.Plugins.PluginSyntaxChecker.html#SyntaxCheckerPlugin.deactivate" />
       <keyword name="TERMINAL" id="TERMINAL" ref="eric6.E5Gui.E5GenericDiffHighlighter.html#TERMINAL" />
-      <keyword name="TERMINAL" id="TERMINAL" ref="eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.html#TERMINAL" />
       <keyword name="TRPreviewer" id="TRPreviewer" ref="eric6.Tools.TRPreviewer.html#TRPreviewer" />
       <keyword name="TRPreviewer (Constructor)" id="TRPreviewer (Constructor)" ref="eric6.Tools.TRPreviewer.html#TRPreviewer.__init__" />
       <keyword name="TRPreviewer (Module)" id="TRPreviewer (Module)" ref="eric6.Tools.TRPreviewer.html" />
@@ -17399,152 +15062,80 @@
       <keyword name="UnittestWindow" id="UnittestWindow" ref="eric6.PyUnit.UnittestDialog.html#UnittestWindow" />
       <keyword name="UnittestWindow (Constructor)" id="UnittestWindow (Constructor)" ref="eric6.PyUnit.UnittestDialog.html#UnittestWindow.__init__" />
       <keyword name="UnittestWindow.eventFilter" id="UnittestWindow.eventFilter" ref="eric6.PyUnit.UnittestDialog.html#UnittestWindow.eventFilter" />
-      <keyword name="UrlBar" id="UrlBar" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar" />
       <keyword name="UrlBar" id="UrlBar" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar" />
-      <keyword name="UrlBar (Constructor)" id="UrlBar (Constructor)" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.__init__" />
       <keyword name="UrlBar (Constructor)" id="UrlBar (Constructor)" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.__init__" />
-      <keyword name="UrlBar (Module)" id="UrlBar (Module)" ref="eric6.Helpviewer.UrlBar.UrlBar.html" />
       <keyword name="UrlBar (Module)" id="UrlBar (Module)" ref="eric6.WebBrowser.UrlBar.UrlBar.html" />
-      <keyword name="UrlBar (Package)" id="UrlBar (Package)" ref="index-eric6.Helpviewer.UrlBar.html" />
       <keyword name="UrlBar (Package)" id="UrlBar (Package)" ref="index-eric6.WebBrowser.UrlBar.html" />
-      <keyword name="UrlBar.__bookmarkChanged" id="UrlBar.__bookmarkChanged" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.__bookmarkChanged" />
       <keyword name="UrlBar.__bookmarkChanged" id="UrlBar.__bookmarkChanged" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.__bookmarkChanged" />
-      <keyword name="UrlBar.__browserUrlChanged" id="UrlBar.__browserUrlChanged" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.__browserUrlChanged" />
       <keyword name="UrlBar.__browserUrlChanged" id="UrlBar.__browserUrlChanged" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.__browserUrlChanged" />
-      <keyword name="UrlBar.__checkBookmark" id="UrlBar.__checkBookmark" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.__checkBookmark" />
       <keyword name="UrlBar.__checkBookmark" id="UrlBar.__checkBookmark" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.__checkBookmark" />
-      <keyword name="UrlBar.__loadFinished" id="UrlBar.__loadFinished" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.__loadFinished" />
       <keyword name="UrlBar.__loadFinished" id="UrlBar.__loadFinished" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.__loadFinished" />
-      <keyword name="UrlBar.__loadStarted" id="UrlBar.__loadStarted" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.__loadStarted" />
       <keyword name="UrlBar.__loadStarted" id="UrlBar.__loadStarted" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.__loadStarted" />
-      <keyword name="UrlBar.__privacyClicked" id="UrlBar.__privacyClicked" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.__privacyClicked" />
-      <keyword name="UrlBar.__rssClicked" id="UrlBar.__rssClicked" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.__rssClicked" />
       <keyword name="UrlBar.__rssClicked" id="UrlBar.__rssClicked" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.__rssClicked" />
       <keyword name="UrlBar.__setRssButton" id="UrlBar.__setRssButton" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.__setRssButton" />
-      <keyword name="UrlBar.__showBookmarkInfo" id="UrlBar.__showBookmarkInfo" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.__showBookmarkInfo" />
       <keyword name="UrlBar.__showBookmarkInfo" id="UrlBar.__showBookmarkInfo" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.__showBookmarkInfo" />
       <keyword name="UrlBar.__showThreatInfo" id="UrlBar.__showThreatInfo" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.__showThreatInfo" />
-      <keyword name="UrlBar.__textChanged" id="UrlBar.__textChanged" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.__textChanged" />
       <keyword name="UrlBar.__textChanged" id="UrlBar.__textChanged" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.__textChanged" />
-      <keyword name="UrlBar.browser" id="UrlBar.browser" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.browser" />
       <keyword name="UrlBar.browser" id="UrlBar.browser" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.browser" />
-      <keyword name="UrlBar.dragEnterEvent" id="UrlBar.dragEnterEvent" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.dragEnterEvent" />
       <keyword name="UrlBar.dragEnterEvent" id="UrlBar.dragEnterEvent" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.dragEnterEvent" />
-      <keyword name="UrlBar.dropEvent" id="UrlBar.dropEvent" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.dropEvent" />
       <keyword name="UrlBar.dropEvent" id="UrlBar.dropEvent" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.dropEvent" />
-      <keyword name="UrlBar.focusOutEvent" id="UrlBar.focusOutEvent" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.focusOutEvent" />
       <keyword name="UrlBar.focusOutEvent" id="UrlBar.focusOutEvent" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.focusOutEvent" />
-      <keyword name="UrlBar.keyPressEvent" id="UrlBar.keyPressEvent" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.keyPressEvent" />
       <keyword name="UrlBar.keyPressEvent" id="UrlBar.keyPressEvent" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.keyPressEvent" />
-      <keyword name="UrlBar.mouseDoubleClickEvent" id="UrlBar.mouseDoubleClickEvent" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.mouseDoubleClickEvent" />
       <keyword name="UrlBar.mouseDoubleClickEvent" id="UrlBar.mouseDoubleClickEvent" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.mouseDoubleClickEvent" />
-      <keyword name="UrlBar.mousePressEvent" id="UrlBar.mousePressEvent" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.mousePressEvent" />
       <keyword name="UrlBar.mousePressEvent" id="UrlBar.mousePressEvent" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.mousePressEvent" />
-      <keyword name="UrlBar.paintEvent" id="UrlBar.paintEvent" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.paintEvent" />
       <keyword name="UrlBar.paintEvent" id="UrlBar.paintEvent" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.paintEvent" />
-      <keyword name="UrlBar.preferencesChanged" id="UrlBar.preferencesChanged" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.preferencesChanged" />
       <keyword name="UrlBar.preferencesChanged" id="UrlBar.preferencesChanged" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.preferencesChanged" />
-      <keyword name="UrlBar.setBrowser" id="UrlBar.setBrowser" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.setBrowser" />
       <keyword name="UrlBar.setBrowser" id="UrlBar.setBrowser" ref="eric6.WebBrowser.UrlBar.UrlBar.html#UrlBar.setBrowser" />
-      <keyword name="UrlBar.setPrivateMode" id="UrlBar.setPrivateMode" ref="eric6.Helpviewer.UrlBar.UrlBar.html#UrlBar.setPrivateMode" />
       <keyword name="UrlInterceptor" id="UrlInterceptor" ref="eric6.WebBrowser.Network.UrlInterceptor.html#UrlInterceptor" />
       <keyword name="UrlInterceptor (Constructor)" id="UrlInterceptor (Constructor)" ref="eric6.WebBrowser.Network.UrlInterceptor.html#UrlInterceptor.__init__" />
       <keyword name="UrlInterceptor (Module)" id="UrlInterceptor (Module)" ref="eric6.WebBrowser.Network.UrlInterceptor.html" />
       <keyword name="UrlInterceptor.interceptRequest" id="UrlInterceptor.interceptRequest" ref="eric6.WebBrowser.Network.UrlInterceptor.html#UrlInterceptor.interceptRequest" />
-      <keyword name="UserAgent (Package)" id="UserAgent (Package)" ref="index-eric6.Helpviewer.UserAgent.html" />
       <keyword name="UserAgent (Package)" id="UserAgent (Package)" ref="index-eric6.WebBrowser.UserAgent.html" />
-      <keyword name="UserAgentManager" id="UserAgentManager" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager" />
       <keyword name="UserAgentManager" id="UserAgentManager" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html#UserAgentManager" />
-      <keyword name="UserAgentManager (Constructor)" id="UserAgentManager (Constructor)" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.__init__" />
       <keyword name="UserAgentManager (Constructor)" id="UserAgentManager (Constructor)" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html#UserAgentManager.__init__" />
-      <keyword name="UserAgentManager (Module)" id="UserAgentManager (Module)" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html" />
       <keyword name="UserAgentManager (Module)" id="UserAgentManager (Module)" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html" />
-      <keyword name="UserAgentManager.__load" id="UserAgentManager.__load" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.__load" />
       <keyword name="UserAgentManager.__load" id="UserAgentManager.__load" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html#UserAgentManager.__load" />
-      <keyword name="UserAgentManager.__loadNonXml" id="UserAgentManager.__loadNonXml" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.__loadNonXml" />
-      <keyword name="UserAgentManager.allHostNames" id="UserAgentManager.allHostNames" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.allHostNames" />
       <keyword name="UserAgentManager.allHostNames" id="UserAgentManager.allHostNames" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html#UserAgentManager.allHostNames" />
-      <keyword name="UserAgentManager.close" id="UserAgentManager.close" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.close" />
       <keyword name="UserAgentManager.close" id="UserAgentManager.close" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html#UserAgentManager.close" />
-      <keyword name="UserAgentManager.getFileName" id="UserAgentManager.getFileName" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.getFileName" />
       <keyword name="UserAgentManager.getFileName" id="UserAgentManager.getFileName" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html#UserAgentManager.getFileName" />
-      <keyword name="UserAgentManager.hostsCount" id="UserAgentManager.hostsCount" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.hostsCount" />
       <keyword name="UserAgentManager.hostsCount" id="UserAgentManager.hostsCount" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html#UserAgentManager.hostsCount" />
-      <keyword name="UserAgentManager.reload" id="UserAgentManager.reload" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.reload" />
       <keyword name="UserAgentManager.reload" id="UserAgentManager.reload" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html#UserAgentManager.reload" />
-      <keyword name="UserAgentManager.removeUserAgent" id="UserAgentManager.removeUserAgent" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.removeUserAgent" />
       <keyword name="UserAgentManager.removeUserAgent" id="UserAgentManager.removeUserAgent" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html#UserAgentManager.removeUserAgent" />
-      <keyword name="UserAgentManager.save" id="UserAgentManager.save" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.save" />
       <keyword name="UserAgentManager.save" id="UserAgentManager.save" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html#UserAgentManager.save" />
-      <keyword name="UserAgentManager.setUserAgent" id="UserAgentManager.setUserAgent" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.setUserAgent" />
       <keyword name="UserAgentManager.setUserAgent" id="UserAgentManager.setUserAgent" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html#UserAgentManager.setUserAgent" />
-      <keyword name="UserAgentManager.setUserAgentForUrl" id="UserAgentManager.setUserAgentForUrl" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.setUserAgentForUrl" />
       <keyword name="UserAgentManager.setUserAgentForUrl" id="UserAgentManager.setUserAgentForUrl" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html#UserAgentManager.setUserAgentForUrl" />
-      <keyword name="UserAgentManager.userAgent" id="UserAgentManager.userAgent" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.userAgent" />
       <keyword name="UserAgentManager.userAgent" id="UserAgentManager.userAgent" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html#UserAgentManager.userAgent" />
-      <keyword name="UserAgentManager.userAgentForUrl" id="UserAgentManager.userAgentForUrl" ref="eric6.Helpviewer.UserAgent.UserAgentManager.html#UserAgentManager.userAgentForUrl" />
       <keyword name="UserAgentManager.userAgentForUrl" id="UserAgentManager.userAgentForUrl" ref="eric6.WebBrowser.UserAgent.UserAgentManager.html#UserAgentManager.userAgentForUrl" />
-      <keyword name="UserAgentMenu" id="UserAgentMenu" ref="eric6.Helpviewer.UserAgent.UserAgentMenu.html#UserAgentMenu" />
       <keyword name="UserAgentMenu" id="UserAgentMenu" ref="eric6.WebBrowser.UserAgent.UserAgentMenu.html#UserAgentMenu" />
-      <keyword name="UserAgentMenu (Constructor)" id="UserAgentMenu (Constructor)" ref="eric6.Helpviewer.UserAgent.UserAgentMenu.html#UserAgentMenu.__init__" />
       <keyword name="UserAgentMenu (Constructor)" id="UserAgentMenu (Constructor)" ref="eric6.WebBrowser.UserAgent.UserAgentMenu.html#UserAgentMenu.__init__" />
-      <keyword name="UserAgentMenu (Module)" id="UserAgentMenu (Module)" ref="eric6.Helpviewer.UserAgent.UserAgentMenu.html" />
       <keyword name="UserAgentMenu (Module)" id="UserAgentMenu (Module)" ref="eric6.WebBrowser.UserAgent.UserAgentMenu.html" />
-      <keyword name="UserAgentMenu.__addDefaultActions" id="UserAgentMenu.__addDefaultActions" ref="eric6.Helpviewer.UserAgent.UserAgentMenu.html#UserAgentMenu.__addDefaultActions" />
       <keyword name="UserAgentMenu.__addDefaultActions" id="UserAgentMenu.__addDefaultActions" ref="eric6.WebBrowser.UserAgent.UserAgentMenu.html#UserAgentMenu.__addDefaultActions" />
-      <keyword name="UserAgentMenu.__changeUserAgent" id="UserAgentMenu.__changeUserAgent" ref="eric6.Helpviewer.UserAgent.UserAgentMenu.html#UserAgentMenu.__changeUserAgent" />
       <keyword name="UserAgentMenu.__changeUserAgent" id="UserAgentMenu.__changeUserAgent" ref="eric6.WebBrowser.UserAgent.UserAgentMenu.html#UserAgentMenu.__changeUserAgent" />
-      <keyword name="UserAgentMenu.__populateMenu" id="UserAgentMenu.__populateMenu" ref="eric6.Helpviewer.UserAgent.UserAgentMenu.html#UserAgentMenu.__populateMenu" />
       <keyword name="UserAgentMenu.__populateMenu" id="UserAgentMenu.__populateMenu" ref="eric6.WebBrowser.UserAgent.UserAgentMenu.html#UserAgentMenu.__populateMenu" />
-      <keyword name="UserAgentMenu.__switchToDefaultUserAgent" id="UserAgentMenu.__switchToDefaultUserAgent" ref="eric6.Helpviewer.UserAgent.UserAgentMenu.html#UserAgentMenu.__switchToDefaultUserAgent" />
       <keyword name="UserAgentMenu.__switchToDefaultUserAgent" id="UserAgentMenu.__switchToDefaultUserAgent" ref="eric6.WebBrowser.UserAgent.UserAgentMenu.html#UserAgentMenu.__switchToDefaultUserAgent" />
-      <keyword name="UserAgentMenu.__switchToOtherUserAgent" id="UserAgentMenu.__switchToOtherUserAgent" ref="eric6.Helpviewer.UserAgent.UserAgentMenu.html#UserAgentMenu.__switchToOtherUserAgent" />
       <keyword name="UserAgentMenu.__switchToOtherUserAgent" id="UserAgentMenu.__switchToOtherUserAgent" ref="eric6.WebBrowser.UserAgent.UserAgentMenu.html#UserAgentMenu.__switchToOtherUserAgent" />
-      <keyword name="UserAgentModel" id="UserAgentModel" ref="eric6.Helpviewer.UserAgent.UserAgentModel.html#UserAgentModel" />
       <keyword name="UserAgentModel" id="UserAgentModel" ref="eric6.WebBrowser.UserAgent.UserAgentModel.html#UserAgentModel" />
-      <keyword name="UserAgentModel (Constructor)" id="UserAgentModel (Constructor)" ref="eric6.Helpviewer.UserAgent.UserAgentModel.html#UserAgentModel.__init__" />
       <keyword name="UserAgentModel (Constructor)" id="UserAgentModel (Constructor)" ref="eric6.WebBrowser.UserAgent.UserAgentModel.html#UserAgentModel.__init__" />
-      <keyword name="UserAgentModel (Module)" id="UserAgentModel (Module)" ref="eric6.Helpviewer.UserAgent.UserAgentModel.html" />
       <keyword name="UserAgentModel (Module)" id="UserAgentModel (Module)" ref="eric6.WebBrowser.UserAgent.UserAgentModel.html" />
-      <keyword name="UserAgentModel.__userAgentsChanged" id="UserAgentModel.__userAgentsChanged" ref="eric6.Helpviewer.UserAgent.UserAgentModel.html#UserAgentModel.__userAgentsChanged" />
       <keyword name="UserAgentModel.__userAgentsChanged" id="UserAgentModel.__userAgentsChanged" ref="eric6.WebBrowser.UserAgent.UserAgentModel.html#UserAgentModel.__userAgentsChanged" />
-      <keyword name="UserAgentModel.columnCount" id="UserAgentModel.columnCount" ref="eric6.Helpviewer.UserAgent.UserAgentModel.html#UserAgentModel.columnCount" />
       <keyword name="UserAgentModel.columnCount" id="UserAgentModel.columnCount" ref="eric6.WebBrowser.UserAgent.UserAgentModel.html#UserAgentModel.columnCount" />
-      <keyword name="UserAgentModel.data" id="UserAgentModel.data" ref="eric6.Helpviewer.UserAgent.UserAgentModel.html#UserAgentModel.data" />
       <keyword name="UserAgentModel.data" id="UserAgentModel.data" ref="eric6.WebBrowser.UserAgent.UserAgentModel.html#UserAgentModel.data" />
-      <keyword name="UserAgentModel.headerData" id="UserAgentModel.headerData" ref="eric6.Helpviewer.UserAgent.UserAgentModel.html#UserAgentModel.headerData" />
       <keyword name="UserAgentModel.headerData" id="UserAgentModel.headerData" ref="eric6.WebBrowser.UserAgent.UserAgentModel.html#UserAgentModel.headerData" />
-      <keyword name="UserAgentModel.removeRows" id="UserAgentModel.removeRows" ref="eric6.Helpviewer.UserAgent.UserAgentModel.html#UserAgentModel.removeRows" />
       <keyword name="UserAgentModel.removeRows" id="UserAgentModel.removeRows" ref="eric6.WebBrowser.UserAgent.UserAgentModel.html#UserAgentModel.removeRows" />
-      <keyword name="UserAgentModel.rowCount" id="UserAgentModel.rowCount" ref="eric6.Helpviewer.UserAgent.UserAgentModel.html#UserAgentModel.rowCount" />
       <keyword name="UserAgentModel.rowCount" id="UserAgentModel.rowCount" ref="eric6.WebBrowser.UserAgent.UserAgentModel.html#UserAgentModel.rowCount" />
-      <keyword name="UserAgentReader" id="UserAgentReader" ref="eric6.Helpviewer.UserAgent.UserAgentReader.html#UserAgentReader" />
       <keyword name="UserAgentReader" id="UserAgentReader" ref="eric6.WebBrowser.UserAgent.UserAgentReader.html#UserAgentReader" />
-      <keyword name="UserAgentReader (Constructor)" id="UserAgentReader (Constructor)" ref="eric6.Helpviewer.UserAgent.UserAgentReader.html#UserAgentReader.__init__" />
       <keyword name="UserAgentReader (Constructor)" id="UserAgentReader (Constructor)" ref="eric6.WebBrowser.UserAgent.UserAgentReader.html#UserAgentReader.__init__" />
-      <keyword name="UserAgentReader (Module)" id="UserAgentReader (Module)" ref="eric6.Helpviewer.UserAgent.UserAgentReader.html" />
       <keyword name="UserAgentReader (Module)" id="UserAgentReader (Module)" ref="eric6.WebBrowser.UserAgent.UserAgentReader.html" />
-      <keyword name="UserAgentReader.__readUserAgents" id="UserAgentReader.__readUserAgents" ref="eric6.Helpviewer.UserAgent.UserAgentReader.html#UserAgentReader.__readUserAgents" />
       <keyword name="UserAgentReader.__readUserAgents" id="UserAgentReader.__readUserAgents" ref="eric6.WebBrowser.UserAgent.UserAgentReader.html#UserAgentReader.__readUserAgents" />
-      <keyword name="UserAgentReader.__skipUnknownElement" id="UserAgentReader.__skipUnknownElement" ref="eric6.Helpviewer.UserAgent.UserAgentReader.html#UserAgentReader.__skipUnknownElement" />
       <keyword name="UserAgentReader.__skipUnknownElement" id="UserAgentReader.__skipUnknownElement" ref="eric6.WebBrowser.UserAgent.UserAgentReader.html#UserAgentReader.__skipUnknownElement" />
-      <keyword name="UserAgentReader.read" id="UserAgentReader.read" ref="eric6.Helpviewer.UserAgent.UserAgentReader.html#UserAgentReader.read" />
       <keyword name="UserAgentReader.read" id="UserAgentReader.read" ref="eric6.WebBrowser.UserAgent.UserAgentReader.html#UserAgentReader.read" />
-      <keyword name="UserAgentWriter" id="UserAgentWriter" ref="eric6.Helpviewer.UserAgent.UserAgentWriter.html#UserAgentWriter" />
       <keyword name="UserAgentWriter" id="UserAgentWriter" ref="eric6.WebBrowser.UserAgent.UserAgentWriter.html#UserAgentWriter" />
-      <keyword name="UserAgentWriter (Constructor)" id="UserAgentWriter (Constructor)" ref="eric6.Helpviewer.UserAgent.UserAgentWriter.html#UserAgentWriter.__init__" />
       <keyword name="UserAgentWriter (Constructor)" id="UserAgentWriter (Constructor)" ref="eric6.WebBrowser.UserAgent.UserAgentWriter.html#UserAgentWriter.__init__" />
-      <keyword name="UserAgentWriter (Module)" id="UserAgentWriter (Module)" ref="eric6.Helpviewer.UserAgent.UserAgentWriter.html" />
       <keyword name="UserAgentWriter (Module)" id="UserAgentWriter (Module)" ref="eric6.WebBrowser.UserAgent.UserAgentWriter.html" />
-      <keyword name="UserAgentWriter.__write" id="UserAgentWriter.__write" ref="eric6.Helpviewer.UserAgent.UserAgentWriter.html#UserAgentWriter.__write" />
       <keyword name="UserAgentWriter.__write" id="UserAgentWriter.__write" ref="eric6.WebBrowser.UserAgent.UserAgentWriter.html#UserAgentWriter.__write" />
-      <keyword name="UserAgentWriter.write" id="UserAgentWriter.write" ref="eric6.Helpviewer.UserAgent.UserAgentWriter.html#UserAgentWriter.write" />
       <keyword name="UserAgentWriter.write" id="UserAgentWriter.write" ref="eric6.WebBrowser.UserAgent.UserAgentWriter.html#UserAgentWriter.write" />
-      <keyword name="UserAgentsDialog" id="UserAgentsDialog" ref="eric6.Helpviewer.UserAgent.UserAgentsDialog.html#UserAgentsDialog" />
       <keyword name="UserAgentsDialog" id="UserAgentsDialog" ref="eric6.WebBrowser.UserAgent.UserAgentsDialog.html#UserAgentsDialog" />
-      <keyword name="UserAgentsDialog (Constructor)" id="UserAgentsDialog (Constructor)" ref="eric6.Helpviewer.UserAgent.UserAgentsDialog.html#UserAgentsDialog.__init__" />
       <keyword name="UserAgentsDialog (Constructor)" id="UserAgentsDialog (Constructor)" ref="eric6.WebBrowser.UserAgent.UserAgentsDialog.html#UserAgentsDialog.__init__" />
-      <keyword name="UserAgentsDialog (Module)" id="UserAgentsDialog (Module)" ref="eric6.Helpviewer.UserAgent.UserAgentsDialog.html" />
       <keyword name="UserAgentsDialog (Module)" id="UserAgentsDialog (Module)" ref="eric6.WebBrowser.UserAgent.UserAgentsDialog.html" />
       <keyword name="UserInterface" id="UserInterface" ref="eric6.UI.UserInterface.html#UserInterface" />
       <keyword name="UserInterface (Constructor)" id="UserInterface (Constructor)" ref="eric6.UI.UserInterface.html#UserInterface.__init__" />
@@ -18400,63 +15991,34 @@
       <keyword name="VirtualenvNameDialog (Module)" id="VirtualenvNameDialog (Module)" ref="eric6.VirtualEnv.VirtualenvNameDialog.html" />
       <keyword name="VirtualenvNameDialog.getName" id="VirtualenvNameDialog.getName" ref="eric6.VirtualEnv.VirtualenvNameDialog.html#VirtualenvNameDialog.getName" />
       <keyword name="VirtualenvNameDialog.on_nameEdit_textChanged" id="VirtualenvNameDialog.on_nameEdit_textChanged" ref="eric6.VirtualEnv.VirtualenvNameDialog.html#VirtualenvNameDialog.on_nameEdit_textChanged" />
-      <keyword name="VirusTotal (Package)" id="VirusTotal (Package)" ref="index-eric6.Helpviewer.VirusTotal.html" />
       <keyword name="VirusTotal (Package)" id="VirusTotal (Package)" ref="index-eric6.WebBrowser.VirusTotal.html" />
-      <keyword name="VirusTotalAPI" id="VirusTotalAPI" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI" />
       <keyword name="VirusTotalAPI" id="VirusTotalAPI" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI" />
-      <keyword name="VirusTotalAPI (Constructor)" id="VirusTotalAPI (Constructor)" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__init__" />
       <keyword name="VirusTotalAPI (Constructor)" id="VirusTotalAPI (Constructor)" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__init__" />
-      <keyword name="VirusTotalAPI.__checkServiceKeyValidityFinished" id="VirusTotalAPI.__checkServiceKeyValidityFinished" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__checkServiceKeyValidityFinished" />
       <keyword name="VirusTotalAPI.__checkServiceKeyValidityFinished" id="VirusTotalAPI.__checkServiceKeyValidityFinished" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__checkServiceKeyValidityFinished" />
-      <keyword name="VirusTotalAPI.__getDomainReportFinished" id="VirusTotalAPI.__getDomainReportFinished" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__getDomainReportFinished" />
       <keyword name="VirusTotalAPI.__getDomainReportFinished" id="VirusTotalAPI.__getDomainReportFinished" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__getDomainReportFinished" />
-      <keyword name="VirusTotalAPI.__getFileScanReportUrl" id="VirusTotalAPI.__getFileScanReportUrl" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__getFileScanReportUrl" />
       <keyword name="VirusTotalAPI.__getFileScanReportUrl" id="VirusTotalAPI.__getFileScanReportUrl" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__getFileScanReportUrl" />
-      <keyword name="VirusTotalAPI.__getFileScanReportUrlFinished" id="VirusTotalAPI.__getFileScanReportUrlFinished" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__getFileScanReportUrlFinished" />
       <keyword name="VirusTotalAPI.__getFileScanReportUrlFinished" id="VirusTotalAPI.__getFileScanReportUrlFinished" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__getFileScanReportUrlFinished" />
-      <keyword name="VirusTotalAPI.__getIpAddressReportFinished" id="VirusTotalAPI.__getIpAddressReportFinished" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__getIpAddressReportFinished" />
       <keyword name="VirusTotalAPI.__getIpAddressReportFinished" id="VirusTotalAPI.__getIpAddressReportFinished" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__getIpAddressReportFinished" />
-      <keyword name="VirusTotalAPI.__getUrlScanReportUrl" id="VirusTotalAPI.__getUrlScanReportUrl" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__getUrlScanReportUrl" />
       <keyword name="VirusTotalAPI.__getUrlScanReportUrl" id="VirusTotalAPI.__getUrlScanReportUrl" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__getUrlScanReportUrl" />
-      <keyword name="VirusTotalAPI.__getUrlScanReportUrlFinished" id="VirusTotalAPI.__getUrlScanReportUrlFinished" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__getUrlScanReportUrlFinished" />
       <keyword name="VirusTotalAPI.__getUrlScanReportUrlFinished" id="VirusTotalAPI.__getUrlScanReportUrlFinished" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__getUrlScanReportUrlFinished" />
-      <keyword name="VirusTotalAPI.__loadSettings" id="VirusTotalAPI.__loadSettings" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__loadSettings" />
       <keyword name="VirusTotalAPI.__loadSettings" id="VirusTotalAPI.__loadSettings" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__loadSettings" />
-      <keyword name="VirusTotalAPI.__submitUrlFinished" id="VirusTotalAPI.__submitUrlFinished" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__submitUrlFinished" />
       <keyword name="VirusTotalAPI.__submitUrlFinished" id="VirusTotalAPI.__submitUrlFinished" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.__submitUrlFinished" />
-      <keyword name="VirusTotalAPI.checkServiceKeyValidity" id="VirusTotalAPI.checkServiceKeyValidity" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.checkServiceKeyValidity" />
       <keyword name="VirusTotalAPI.checkServiceKeyValidity" id="VirusTotalAPI.checkServiceKeyValidity" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.checkServiceKeyValidity" />
-      <keyword name="VirusTotalAPI.close" id="VirusTotalAPI.close" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.close" />
       <keyword name="VirusTotalAPI.close" id="VirusTotalAPI.close" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.close" />
-      <keyword name="VirusTotalAPI.getDomainReport" id="VirusTotalAPI.getDomainReport" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.getDomainReport" />
       <keyword name="VirusTotalAPI.getDomainReport" id="VirusTotalAPI.getDomainReport" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.getDomainReport" />
-      <keyword name="VirusTotalAPI.getIpAddressReport" id="VirusTotalAPI.getIpAddressReport" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.getIpAddressReport" />
       <keyword name="VirusTotalAPI.getIpAddressReport" id="VirusTotalAPI.getIpAddressReport" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.getIpAddressReport" />
-      <keyword name="VirusTotalAPI.preferencesChanged" id="VirusTotalAPI.preferencesChanged" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.preferencesChanged" />
       <keyword name="VirusTotalAPI.preferencesChanged" id="VirusTotalAPI.preferencesChanged" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.preferencesChanged" />
-      <keyword name="VirusTotalAPI.submitUrl" id="VirusTotalAPI.submitUrl" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html#VirusTotalAPI.submitUrl" />
       <keyword name="VirusTotalAPI.submitUrl" id="VirusTotalAPI.submitUrl" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html#VirusTotalAPI.submitUrl" />
-      <keyword name="VirusTotalApi (Module)" id="VirusTotalApi (Module)" ref="eric6.Helpviewer.VirusTotal.VirusTotalApi.html" />
       <keyword name="VirusTotalApi (Module)" id="VirusTotalApi (Module)" ref="eric6.WebBrowser.VirusTotal.VirusTotalApi.html" />
-      <keyword name="VirusTotalDomainReportDialog" id="VirusTotalDomainReportDialog" ref="eric6.Helpviewer.VirusTotal.VirusTotalDomainReportDialog.html#VirusTotalDomainReportDialog" />
       <keyword name="VirusTotalDomainReportDialog" id="VirusTotalDomainReportDialog" ref="eric6.WebBrowser.VirusTotal.VirusTotalDomainReportDialog.html#VirusTotalDomainReportDialog" />
-      <keyword name="VirusTotalDomainReportDialog (Constructor)" id="VirusTotalDomainReportDialog (Constructor)" ref="eric6.Helpviewer.VirusTotal.VirusTotalDomainReportDialog.html#VirusTotalDomainReportDialog.__init__" />
       <keyword name="VirusTotalDomainReportDialog (Constructor)" id="VirusTotalDomainReportDialog (Constructor)" ref="eric6.WebBrowser.VirusTotal.VirusTotalDomainReportDialog.html#VirusTotalDomainReportDialog.__init__" />
-      <keyword name="VirusTotalDomainReportDialog (Module)" id="VirusTotalDomainReportDialog (Module)" ref="eric6.Helpviewer.VirusTotal.VirusTotalDomainReportDialog.html" />
       <keyword name="VirusTotalDomainReportDialog (Module)" id="VirusTotalDomainReportDialog (Module)" ref="eric6.WebBrowser.VirusTotal.VirusTotalDomainReportDialog.html" />
-      <keyword name="VirusTotalDomainReportDialog.on_whoisButton_clicked" id="VirusTotalDomainReportDialog.on_whoisButton_clicked" ref="eric6.Helpviewer.VirusTotal.VirusTotalDomainReportDialog.html#VirusTotalDomainReportDialog.on_whoisButton_clicked" />
       <keyword name="VirusTotalDomainReportDialog.on_whoisButton_clicked" id="VirusTotalDomainReportDialog.on_whoisButton_clicked" ref="eric6.WebBrowser.VirusTotal.VirusTotalDomainReportDialog.html#VirusTotalDomainReportDialog.on_whoisButton_clicked" />
-      <keyword name="VirusTotalIpReportDialog" id="VirusTotalIpReportDialog" ref="eric6.Helpviewer.VirusTotal.VirusTotalIpReportDialog.html#VirusTotalIpReportDialog" />
       <keyword name="VirusTotalIpReportDialog" id="VirusTotalIpReportDialog" ref="eric6.WebBrowser.VirusTotal.VirusTotalIpReportDialog.html#VirusTotalIpReportDialog" />
-      <keyword name="VirusTotalIpReportDialog (Constructor)" id="VirusTotalIpReportDialog (Constructor)" ref="eric6.Helpviewer.VirusTotal.VirusTotalIpReportDialog.html#VirusTotalIpReportDialog.__init__" />
       <keyword name="VirusTotalIpReportDialog (Constructor)" id="VirusTotalIpReportDialog (Constructor)" ref="eric6.WebBrowser.VirusTotal.VirusTotalIpReportDialog.html#VirusTotalIpReportDialog.__init__" />
-      <keyword name="VirusTotalIpReportDialog (Module)" id="VirusTotalIpReportDialog (Module)" ref="eric6.Helpviewer.VirusTotal.VirusTotalIpReportDialog.html" />
       <keyword name="VirusTotalIpReportDialog (Module)" id="VirusTotalIpReportDialog (Module)" ref="eric6.WebBrowser.VirusTotal.VirusTotalIpReportDialog.html" />
-      <keyword name="VirusTotalWhoisDialog" id="VirusTotalWhoisDialog" ref="eric6.Helpviewer.VirusTotal.VirusTotalWhoisDialog.html#VirusTotalWhoisDialog" />
       <keyword name="VirusTotalWhoisDialog" id="VirusTotalWhoisDialog" ref="eric6.WebBrowser.VirusTotal.VirusTotalWhoisDialog.html#VirusTotalWhoisDialog" />
-      <keyword name="VirusTotalWhoisDialog (Constructor)" id="VirusTotalWhoisDialog (Constructor)" ref="eric6.Helpviewer.VirusTotal.VirusTotalWhoisDialog.html#VirusTotalWhoisDialog.__init__" />
       <keyword name="VirusTotalWhoisDialog (Constructor)" id="VirusTotalWhoisDialog (Constructor)" ref="eric6.WebBrowser.VirusTotal.VirusTotalWhoisDialog.html#VirusTotalWhoisDialog.__init__" />
-      <keyword name="VirusTotalWhoisDialog (Module)" id="VirusTotalWhoisDialog (Module)" ref="eric6.Helpviewer.VirusTotal.VirusTotalWhoisDialog.html" />
       <keyword name="VirusTotalWhoisDialog (Module)" id="VirusTotalWhoisDialog (Module)" ref="eric6.WebBrowser.VirusTotal.VirusTotalWhoisDialog.html" />
       <keyword name="VisibilityBase" id="VisibilityBase" ref="eric6.Utilities.ModuleParser.html#VisibilityBase" />
       <keyword name="VisibilityBase.isPrivate" id="VisibilityBase.isPrivate" ref="eric6.Utilities.ModuleParser.html#VisibilityBase.isPrivate" />
@@ -18562,6 +16124,10 @@
       <keyword name="WebBrowserClearPrivateDataDialog (Constructor)" id="WebBrowserClearPrivateDataDialog (Constructor)" ref="eric6.WebBrowser.WebBrowserClearPrivateDataDialog.html#WebBrowserClearPrivateDataDialog.__init__" />
       <keyword name="WebBrowserClearPrivateDataDialog (Module)" id="WebBrowserClearPrivateDataDialog (Module)" ref="eric6.WebBrowser.WebBrowserClearPrivateDataDialog.html" />
       <keyword name="WebBrowserClearPrivateDataDialog.getData" id="WebBrowserClearPrivateDataDialog.getData" ref="eric6.WebBrowser.WebBrowserClearPrivateDataDialog.html#WebBrowserClearPrivateDataDialog.getData" />
+      <keyword name="WebBrowserFlashCookieManagerPage" id="WebBrowserFlashCookieManagerPage" ref="eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage.html#WebBrowserFlashCookieManagerPage" />
+      <keyword name="WebBrowserFlashCookieManagerPage (Constructor)" id="WebBrowserFlashCookieManagerPage (Constructor)" ref="eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage.html#WebBrowserFlashCookieManagerPage.__init__" />
+      <keyword name="WebBrowserFlashCookieManagerPage (Module)" id="WebBrowserFlashCookieManagerPage (Module)" ref="eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage.html" />
+      <keyword name="WebBrowserFlashCookieManagerPage.save" id="WebBrowserFlashCookieManagerPage.save" ref="eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage.html#WebBrowserFlashCookieManagerPage.save" />
       <keyword name="WebBrowserJavaScriptConsole" id="WebBrowserJavaScriptConsole" ref="eric6.WebBrowser.WebBrowserJavaScriptConsole.html#WebBrowserJavaScriptConsole" />
       <keyword name="WebBrowserJavaScriptConsole (Constructor)" id="WebBrowserJavaScriptConsole (Constructor)" ref="eric6.WebBrowser.WebBrowserJavaScriptConsole.html#WebBrowserJavaScriptConsole.__init__" />
       <keyword name="WebBrowserJavaScriptConsole (Module)" id="WebBrowserJavaScriptConsole (Module)" ref="eric6.WebBrowser.WebBrowserJavaScriptConsole.html" />
@@ -18670,7 +16236,6 @@
       <keyword name="WebBrowserTabWidget.__navigationMenuTriggered" id="WebBrowserTabWidget.__navigationMenuTriggered" ref="eric6.WebBrowser.WebBrowserTabWidget.html#WebBrowserTabWidget.__navigationMenuTriggered" />
       <keyword name="WebBrowserTabWidget.__newBrowser" id="WebBrowserTabWidget.__newBrowser" ref="eric6.WebBrowser.WebBrowserTabWidget.html#WebBrowserTabWidget.__newBrowser" />
       <keyword name="WebBrowserTabWidget.__pathSelected" id="WebBrowserTabWidget.__pathSelected" ref="eric6.WebBrowser.WebBrowserTabWidget.html#WebBrowserTabWidget.__pathSelected" />
-      <keyword name="WebBrowserTabWidget.__pdfGeneratedForPrinting" id="WebBrowserTabWidget.__pdfGeneratedForPrinting" ref="eric6.WebBrowser.WebBrowserTabWidget.html#WebBrowserTabWidget.__pdfGeneratedForPrinting" />
       <keyword name="WebBrowserTabWidget.__pdfGeneratedForSave" id="WebBrowserTabWidget.__pdfGeneratedForSave" ref="eric6.WebBrowser.WebBrowserTabWidget.html#WebBrowserTabWidget.__pdfGeneratedForSave" />
       <keyword name="WebBrowserTabWidget.__printPreviewRequested" id="WebBrowserTabWidget.__printPreviewRequested" ref="eric6.WebBrowser.WebBrowserTabWidget.html#WebBrowserTabWidget.__printPreviewRequested" />
       <keyword name="WebBrowserTabWidget.__recentlyAudibleChanged" id="WebBrowserTabWidget.__recentlyAudibleChanged" ref="eric6.WebBrowser.WebBrowserTabWidget.html#WebBrowserTabWidget.__recentlyAudibleChanged" />
@@ -19071,21 +16636,6 @@
       <keyword name="WebBrowserWindow.userAgentsManager" id="WebBrowserWindow.userAgentsManager" ref="eric6.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.userAgentsManager" />
       <keyword name="WebBrowserWindow.webProfile" id="WebBrowserWindow.webProfile" ref="eric6.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.webProfile" />
       <keyword name="WebBrowserWindow.webSettings" id="WebBrowserWindow.webSettings" ref="eric6.WebBrowser.WebBrowserWindow.html#WebBrowserWindow.webSettings" />
-      <keyword name="WebDatabasesDialog" id="WebDatabasesDialog" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesDialog.html#WebDatabasesDialog" />
-      <keyword name="WebDatabasesDialog (Constructor)" id="WebDatabasesDialog (Constructor)" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesDialog.html#WebDatabasesDialog.__init__" />
-      <keyword name="WebDatabasesDialog (Module)" id="WebDatabasesDialog (Module)" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesDialog.html" />
-      <keyword name="WebDatabasesModel" id="WebDatabasesModel" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html#WebDatabasesModel" />
-      <keyword name="WebDatabasesModel (Constructor)" id="WebDatabasesModel (Constructor)" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html#WebDatabasesModel.__init__" />
-      <keyword name="WebDatabasesModel (Module)" id="WebDatabasesModel (Module)" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html" />
-      <keyword name="WebDatabasesModel.__dataString" id="WebDatabasesModel.__dataString" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html#WebDatabasesModel.__dataString" />
-      <keyword name="WebDatabasesModel.columnCount" id="WebDatabasesModel.columnCount" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html#WebDatabasesModel.columnCount" />
-      <keyword name="WebDatabasesModel.data" id="WebDatabasesModel.data" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html#WebDatabasesModel.data" />
-      <keyword name="WebDatabasesModel.hasChildren" id="WebDatabasesModel.hasChildren" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html#WebDatabasesModel.hasChildren" />
-      <keyword name="WebDatabasesModel.headerData" id="WebDatabasesModel.headerData" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html#WebDatabasesModel.headerData" />
-      <keyword name="WebDatabasesModel.index" id="WebDatabasesModel.index" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html#WebDatabasesModel.index" />
-      <keyword name="WebDatabasesModel.parent" id="WebDatabasesModel.parent" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html#WebDatabasesModel.parent" />
-      <keyword name="WebDatabasesModel.removeRows" id="WebDatabasesModel.removeRows" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html#WebDatabasesModel.removeRows" />
-      <keyword name="WebDatabasesModel.rowCount" id="WebDatabasesModel.rowCount" ref="eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html#WebDatabasesModel.rowCount" />
       <keyword name="WebHitTestResult" id="WebHitTestResult" ref="eric6.WebBrowser.Tools.WebHitTestResult.html#WebHitTestResult" />
       <keyword name="WebHitTestResult (Constructor)" id="WebHitTestResult (Constructor)" ref="eric6.WebBrowser.Tools.WebHitTestResult.html#WebHitTestResult.__init__" />
       <keyword name="WebHitTestResult (Module)" id="WebHitTestResult (Module)" ref="eric6.WebBrowser.Tools.WebHitTestResult.html" />
@@ -19142,21 +16692,6 @@
       <keyword name="WebInspector.inspectElement" id="WebInspector.inspectElement" ref="eric6.WebBrowser.WebInspector.html#WebInspector.inspectElement" />
       <keyword name="WebInspector.isEnabled" id="WebInspector.isEnabled" ref="eric6.WebBrowser.WebInspector.html#WebInspector.isEnabled" />
       <keyword name="WebInspector.setView" id="WebInspector.setView" ref="eric6.WebBrowser.WebInspector.html#WebInspector.setView" />
-      <keyword name="WebPluginFactory" id="WebPluginFactory" ref="eric6.Helpviewer.WebPlugins.WebPluginFactory.html#WebPluginFactory" />
-      <keyword name="WebPluginFactory (Constructor)" id="WebPluginFactory (Constructor)" ref="eric6.Helpviewer.WebPlugins.WebPluginFactory.html#WebPluginFactory.__init__" />
-      <keyword name="WebPluginFactory (Module)" id="WebPluginFactory (Module)" ref="eric6.Helpviewer.WebPlugins.WebPluginFactory.html" />
-      <keyword name="WebPluginFactory.__initialize" id="WebPluginFactory.__initialize" ref="eric6.Helpviewer.WebPlugins.WebPluginFactory.html#WebPluginFactory.__initialize" />
-      <keyword name="WebPluginFactory.create" id="WebPluginFactory.create" ref="eric6.Helpviewer.WebPlugins.WebPluginFactory.html#WebPluginFactory.create" />
-      <keyword name="WebPluginFactory.plugin" id="WebPluginFactory.plugin" ref="eric6.Helpviewer.WebPlugins.WebPluginFactory.html#WebPluginFactory.plugin" />
-      <keyword name="WebPluginFactory.plugins" id="WebPluginFactory.plugins" ref="eric6.Helpviewer.WebPlugins.WebPluginFactory.html#WebPluginFactory.plugins" />
-      <keyword name="WebPluginFactory.refreshPlugins" id="WebPluginFactory.refreshPlugins" ref="eric6.Helpviewer.WebPlugins.WebPluginFactory.html#WebPluginFactory.refreshPlugins" />
-      <keyword name="WebPluginInterface" id="WebPluginInterface" ref="eric6.Helpviewer.WebPlugins.WebPluginInterface.html#WebPluginInterface" />
-      <keyword name="WebPluginInterface (Module)" id="WebPluginInterface (Module)" ref="eric6.Helpviewer.WebPlugins.WebPluginInterface.html" />
-      <keyword name="WebPluginInterface.configure" id="WebPluginInterface.configure" ref="eric6.Helpviewer.WebPlugins.WebPluginInterface.html#WebPluginInterface.configure" />
-      <keyword name="WebPluginInterface.create" id="WebPluginInterface.create" ref="eric6.Helpviewer.WebPlugins.WebPluginInterface.html#WebPluginInterface.create" />
-      <keyword name="WebPluginInterface.isAnonymous" id="WebPluginInterface.isAnonymous" ref="eric6.Helpviewer.WebPlugins.WebPluginInterface.html#WebPluginInterface.isAnonymous" />
-      <keyword name="WebPluginInterface.metaPlugin" id="WebPluginInterface.metaPlugin" ref="eric6.Helpviewer.WebPlugins.WebPluginInterface.html#WebPluginInterface.metaPlugin" />
-      <keyword name="WebPlugins (Package)" id="WebPlugins (Package)" ref="index-eric6.Helpviewer.WebPlugins.html" />
       <keyword name="Whitespace" id="Whitespace" ref="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#Whitespace" />
       <keyword name="Whitespace (Constructor)" id="Whitespace (Constructor)" ref="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#Whitespace.__init__" />
       <keyword name="Whitespace.equal" id="Whitespace.equal" ref="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#Whitespace.equal" />
@@ -19229,57 +16764,31 @@
       <keyword name="XMLStreamWriterBase._write_unimplemented" id="XMLStreamWriterBase._write_unimplemented" ref="eric6.E5XML.XMLStreamWriterBase.html#XMLStreamWriterBase._write_unimplemented" />
       <keyword name="XMLStreamWriterBase.writeBasics" id="XMLStreamWriterBase.writeBasics" ref="eric6.E5XML.XMLStreamWriterBase.html#XMLStreamWriterBase.writeBasics" />
       <keyword name="XMLStreamWriterBase.writeXML" id="XMLStreamWriterBase.writeXML" ref="eric6.E5XML.XMLStreamWriterBase.html#XMLStreamWriterBase.writeXML" />
-      <keyword name="XbelImporter" id="XbelImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html#XbelImporter" />
       <keyword name="XbelImporter" id="XbelImporter" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.XbelImporter.html#XbelImporter" />
-      <keyword name="XbelImporter (Constructor)" id="XbelImporter (Constructor)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html#XbelImporter.__init__" />
       <keyword name="XbelImporter (Constructor)" id="XbelImporter (Constructor)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.XbelImporter.html#XbelImporter.__init__" />
-      <keyword name="XbelImporter (Module)" id="XbelImporter (Module)" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html" />
       <keyword name="XbelImporter (Module)" id="XbelImporter (Module)" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.XbelImporter.html" />
-      <keyword name="XbelImporter.importedBookmarks" id="XbelImporter.importedBookmarks" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html#XbelImporter.importedBookmarks" />
       <keyword name="XbelImporter.importedBookmarks" id="XbelImporter.importedBookmarks" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.XbelImporter.html#XbelImporter.importedBookmarks" />
-      <keyword name="XbelImporter.open" id="XbelImporter.open" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html#XbelImporter.open" />
       <keyword name="XbelImporter.open" id="XbelImporter.open" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.XbelImporter.html#XbelImporter.open" />
-      <keyword name="XbelImporter.setPath" id="XbelImporter.setPath" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html#XbelImporter.setPath" />
       <keyword name="XbelImporter.setPath" id="XbelImporter.setPath" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.XbelImporter.html#XbelImporter.setPath" />
-      <keyword name="XbelReader" id="XbelReader" ref="eric6.Helpviewer.Bookmarks.XbelReader.html#XbelReader" />
       <keyword name="XbelReader" id="XbelReader" ref="eric6.WebBrowser.Bookmarks.XbelReader.html#XbelReader" />
-      <keyword name="XbelReader (Constructor)" id="XbelReader (Constructor)" ref="eric6.Helpviewer.Bookmarks.XbelReader.html#XbelReader.__init__" />
       <keyword name="XbelReader (Constructor)" id="XbelReader (Constructor)" ref="eric6.WebBrowser.Bookmarks.XbelReader.html#XbelReader.__init__" />
-      <keyword name="XbelReader (Module)" id="XbelReader (Module)" ref="eric6.Helpviewer.Bookmarks.XbelReader.html" />
       <keyword name="XbelReader (Module)" id="XbelReader (Module)" ref="eric6.WebBrowser.Bookmarks.XbelReader.html" />
-      <keyword name="XbelReader.__readBookmarkNode" id="XbelReader.__readBookmarkNode" ref="eric6.Helpviewer.Bookmarks.XbelReader.html#XbelReader.__readBookmarkNode" />
       <keyword name="XbelReader.__readBookmarkNode" id="XbelReader.__readBookmarkNode" ref="eric6.WebBrowser.Bookmarks.XbelReader.html#XbelReader.__readBookmarkNode" />
-      <keyword name="XbelReader.__readDescription" id="XbelReader.__readDescription" ref="eric6.Helpviewer.Bookmarks.XbelReader.html#XbelReader.__readDescription" />
       <keyword name="XbelReader.__readDescription" id="XbelReader.__readDescription" ref="eric6.WebBrowser.Bookmarks.XbelReader.html#XbelReader.__readDescription" />
-      <keyword name="XbelReader.__readFolder" id="XbelReader.__readFolder" ref="eric6.Helpviewer.Bookmarks.XbelReader.html#XbelReader.__readFolder" />
       <keyword name="XbelReader.__readFolder" id="XbelReader.__readFolder" ref="eric6.WebBrowser.Bookmarks.XbelReader.html#XbelReader.__readFolder" />
-      <keyword name="XbelReader.__readInfo" id="XbelReader.__readInfo" ref="eric6.Helpviewer.Bookmarks.XbelReader.html#XbelReader.__readInfo" />
       <keyword name="XbelReader.__readInfo" id="XbelReader.__readInfo" ref="eric6.WebBrowser.Bookmarks.XbelReader.html#XbelReader.__readInfo" />
-      <keyword name="XbelReader.__readSeparator" id="XbelReader.__readSeparator" ref="eric6.Helpviewer.Bookmarks.XbelReader.html#XbelReader.__readSeparator" />
       <keyword name="XbelReader.__readSeparator" id="XbelReader.__readSeparator" ref="eric6.WebBrowser.Bookmarks.XbelReader.html#XbelReader.__readSeparator" />
-      <keyword name="XbelReader.__readTitle" id="XbelReader.__readTitle" ref="eric6.Helpviewer.Bookmarks.XbelReader.html#XbelReader.__readTitle" />
       <keyword name="XbelReader.__readTitle" id="XbelReader.__readTitle" ref="eric6.WebBrowser.Bookmarks.XbelReader.html#XbelReader.__readTitle" />
-      <keyword name="XbelReader.__readXBEL" id="XbelReader.__readXBEL" ref="eric6.Helpviewer.Bookmarks.XbelReader.html#XbelReader.__readXBEL" />
       <keyword name="XbelReader.__readXBEL" id="XbelReader.__readXBEL" ref="eric6.WebBrowser.Bookmarks.XbelReader.html#XbelReader.__readXBEL" />
-      <keyword name="XbelReader.__skipUnknownElement" id="XbelReader.__skipUnknownElement" ref="eric6.Helpviewer.Bookmarks.XbelReader.html#XbelReader.__skipUnknownElement" />
       <keyword name="XbelReader.__skipUnknownElement" id="XbelReader.__skipUnknownElement" ref="eric6.WebBrowser.Bookmarks.XbelReader.html#XbelReader.__skipUnknownElement" />
-      <keyword name="XbelReader.read" id="XbelReader.read" ref="eric6.Helpviewer.Bookmarks.XbelReader.html#XbelReader.read" />
       <keyword name="XbelReader.read" id="XbelReader.read" ref="eric6.WebBrowser.Bookmarks.XbelReader.html#XbelReader.read" />
-      <keyword name="XbelWriter" id="XbelWriter" ref="eric6.Helpviewer.Bookmarks.XbelWriter.html#XbelWriter" />
       <keyword name="XbelWriter" id="XbelWriter" ref="eric6.WebBrowser.Bookmarks.XbelWriter.html#XbelWriter" />
-      <keyword name="XbelWriter (Constructor)" id="XbelWriter (Constructor)" ref="eric6.Helpviewer.Bookmarks.XbelWriter.html#XbelWriter.__init__" />
       <keyword name="XbelWriter (Constructor)" id="XbelWriter (Constructor)" ref="eric6.WebBrowser.Bookmarks.XbelWriter.html#XbelWriter.__init__" />
-      <keyword name="XbelWriter (Module)" id="XbelWriter (Module)" ref="eric6.Helpviewer.Bookmarks.XbelWriter.html" />
       <keyword name="XbelWriter (Module)" id="XbelWriter (Module)" ref="eric6.WebBrowser.Bookmarks.XbelWriter.html" />
-      <keyword name="XbelWriter.__write" id="XbelWriter.__write" ref="eric6.Helpviewer.Bookmarks.XbelWriter.html#XbelWriter.__write" />
       <keyword name="XbelWriter.__write" id="XbelWriter.__write" ref="eric6.WebBrowser.Bookmarks.XbelWriter.html#XbelWriter.__write" />
-      <keyword name="XbelWriter.__writeItem" id="XbelWriter.__writeItem" ref="eric6.Helpviewer.Bookmarks.XbelWriter.html#XbelWriter.__writeItem" />
       <keyword name="XbelWriter.__writeItem" id="XbelWriter.__writeItem" ref="eric6.WebBrowser.Bookmarks.XbelWriter.html#XbelWriter.__writeItem" />
-      <keyword name="XbelWriter.write" id="XbelWriter.write" ref="eric6.Helpviewer.Bookmarks.XbelWriter.html#XbelWriter.write" />
       <keyword name="XbelWriter.write" id="XbelWriter.write" ref="eric6.WebBrowser.Bookmarks.XbelWriter.html#XbelWriter.write" />
-      <keyword name="XmlEntityResolver" id="XmlEntityResolver" ref="eric6.Helpviewer.Bookmarks.XbelReader.html#XmlEntityResolver" />
       <keyword name="XmlEntityResolver" id="XmlEntityResolver" ref="eric6.WebBrowser.Bookmarks.XbelReader.html#XmlEntityResolver" />
-      <keyword name="XmlEntityResolver.resolveUndeclaredEntity" id="XmlEntityResolver.resolveUndeclaredEntity" ref="eric6.Helpviewer.Bookmarks.XbelReader.html#XmlEntityResolver.resolveUndeclaredEntity" />
       <keyword name="XmlEntityResolver.resolveUndeclaredEntity" id="XmlEntityResolver.resolveUndeclaredEntity" ref="eric6.WebBrowser.Bookmarks.XbelReader.html#XmlEntityResolver.resolveUndeclaredEntity" />
       <keyword name="YandexEngine" id="YandexEngine" ref="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorEngines.YandexEngine.html#YandexEngine" />
       <keyword name="YandexEngine (Constructor)" id="YandexEngine (Constructor)" ref="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorEngines.YandexEngine.html#YandexEngine.__init__" />
@@ -19291,61 +16800,33 @@
       <keyword name="ZoomDialog (Constructor)" id="ZoomDialog (Constructor)" ref="eric6.QScintilla.ZoomDialog.html#ZoomDialog.__init__" />
       <keyword name="ZoomDialog (Module)" id="ZoomDialog (Module)" ref="eric6.QScintilla.ZoomDialog.html" />
       <keyword name="ZoomDialog.getZoomSize" id="ZoomDialog.getZoomSize" ref="eric6.QScintilla.ZoomDialog.html#ZoomDialog.getZoomSize" />
-      <keyword name="ZoomManager" id="ZoomManager" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html#ZoomManager" />
       <keyword name="ZoomManager" id="ZoomManager" ref="eric6.WebBrowser.ZoomManager.ZoomManager.html#ZoomManager" />
-      <keyword name="ZoomManager (Constructor)" id="ZoomManager (Constructor)" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html#ZoomManager.__init__" />
       <keyword name="ZoomManager (Constructor)" id="ZoomManager (Constructor)" ref="eric6.WebBrowser.ZoomManager.ZoomManager.html#ZoomManager.__init__" />
-      <keyword name="ZoomManager (Module)" id="ZoomManager (Module)" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html" />
       <keyword name="ZoomManager (Module)" id="ZoomManager (Module)" ref="eric6.WebBrowser.ZoomManager.ZoomManager.html" />
-      <keyword name="ZoomManager (Package)" id="ZoomManager (Package)" ref="index-eric6.Helpviewer.ZoomManager.html" />
       <keyword name="ZoomManager (Package)" id="ZoomManager (Package)" ref="index-eric6.WebBrowser.ZoomManager.html" />
-      <keyword name="ZoomManager.__keyFromUrl" id="ZoomManager.__keyFromUrl" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html#ZoomManager.__keyFromUrl" />
       <keyword name="ZoomManager.__keyFromUrl" id="ZoomManager.__keyFromUrl" ref="eric6.WebBrowser.ZoomManager.ZoomManager.html#ZoomManager.__keyFromUrl" />
-      <keyword name="ZoomManager.allSiteNames" id="ZoomManager.allSiteNames" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html#ZoomManager.allSiteNames" />
       <keyword name="ZoomManager.allSiteNames" id="ZoomManager.allSiteNames" ref="eric6.WebBrowser.ZoomManager.ZoomManager.html#ZoomManager.allSiteNames" />
-      <keyword name="ZoomManager.clear" id="ZoomManager.clear" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html#ZoomManager.clear" />
       <keyword name="ZoomManager.clear" id="ZoomManager.clear" ref="eric6.WebBrowser.ZoomManager.ZoomManager.html#ZoomManager.clear" />
-      <keyword name="ZoomManager.close" id="ZoomManager.close" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html#ZoomManager.close" />
       <keyword name="ZoomManager.close" id="ZoomManager.close" ref="eric6.WebBrowser.ZoomManager.ZoomManager.html#ZoomManager.close" />
-      <keyword name="ZoomManager.load" id="ZoomManager.load" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html#ZoomManager.load" />
       <keyword name="ZoomManager.load" id="ZoomManager.load" ref="eric6.WebBrowser.ZoomManager.ZoomManager.html#ZoomManager.load" />
-      <keyword name="ZoomManager.removeZoomValue" id="ZoomManager.removeZoomValue" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html#ZoomManager.removeZoomValue" />
       <keyword name="ZoomManager.removeZoomValue" id="ZoomManager.removeZoomValue" ref="eric6.WebBrowser.ZoomManager.ZoomManager.html#ZoomManager.removeZoomValue" />
-      <keyword name="ZoomManager.save" id="ZoomManager.save" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html#ZoomManager.save" />
       <keyword name="ZoomManager.save" id="ZoomManager.save" ref="eric6.WebBrowser.ZoomManager.ZoomManager.html#ZoomManager.save" />
-      <keyword name="ZoomManager.setZoomValue" id="ZoomManager.setZoomValue" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html#ZoomManager.setZoomValue" />
       <keyword name="ZoomManager.setZoomValue" id="ZoomManager.setZoomValue" ref="eric6.WebBrowser.ZoomManager.ZoomManager.html#ZoomManager.setZoomValue" />
-      <keyword name="ZoomManager.siteInfo" id="ZoomManager.siteInfo" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html#ZoomManager.siteInfo" />
       <keyword name="ZoomManager.siteInfo" id="ZoomManager.siteInfo" ref="eric6.WebBrowser.ZoomManager.ZoomManager.html#ZoomManager.siteInfo" />
-      <keyword name="ZoomManager.sitesCount" id="ZoomManager.sitesCount" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html#ZoomManager.sitesCount" />
       <keyword name="ZoomManager.sitesCount" id="ZoomManager.sitesCount" ref="eric6.WebBrowser.ZoomManager.ZoomManager.html#ZoomManager.sitesCount" />
-      <keyword name="ZoomManager.zoomValue" id="ZoomManager.zoomValue" ref="eric6.Helpviewer.ZoomManager.ZoomManager.html#ZoomManager.zoomValue" />
       <keyword name="ZoomManager.zoomValue" id="ZoomManager.zoomValue" ref="eric6.WebBrowser.ZoomManager.ZoomManager.html#ZoomManager.zoomValue" />
-      <keyword name="ZoomValuesDialog" id="ZoomValuesDialog" ref="eric6.Helpviewer.ZoomManager.ZoomValuesDialog.html#ZoomValuesDialog" />
       <keyword name="ZoomValuesDialog" id="ZoomValuesDialog" ref="eric6.WebBrowser.ZoomManager.ZoomValuesDialog.html#ZoomValuesDialog" />
-      <keyword name="ZoomValuesDialog (Constructor)" id="ZoomValuesDialog (Constructor)" ref="eric6.Helpviewer.ZoomManager.ZoomValuesDialog.html#ZoomValuesDialog.__init__" />
       <keyword name="ZoomValuesDialog (Constructor)" id="ZoomValuesDialog (Constructor)" ref="eric6.WebBrowser.ZoomManager.ZoomValuesDialog.html#ZoomValuesDialog.__init__" />
-      <keyword name="ZoomValuesDialog (Module)" id="ZoomValuesDialog (Module)" ref="eric6.Helpviewer.ZoomManager.ZoomValuesDialog.html" />
       <keyword name="ZoomValuesDialog (Module)" id="ZoomValuesDialog (Module)" ref="eric6.WebBrowser.ZoomManager.ZoomValuesDialog.html" />
-      <keyword name="ZoomValuesDialog.__calculateHeaderSizes" id="ZoomValuesDialog.__calculateHeaderSizes" ref="eric6.Helpviewer.ZoomManager.ZoomValuesDialog.html#ZoomValuesDialog.__calculateHeaderSizes" />
       <keyword name="ZoomValuesDialog.__calculateHeaderSizes" id="ZoomValuesDialog.__calculateHeaderSizes" ref="eric6.WebBrowser.ZoomManager.ZoomValuesDialog.html#ZoomValuesDialog.__calculateHeaderSizes" />
-      <keyword name="ZoomValuesModel" id="ZoomValuesModel" ref="eric6.Helpviewer.ZoomManager.ZoomValuesModel.html#ZoomValuesModel" />
       <keyword name="ZoomValuesModel" id="ZoomValuesModel" ref="eric6.WebBrowser.ZoomManager.ZoomValuesModel.html#ZoomValuesModel" />
-      <keyword name="ZoomValuesModel (Constructor)" id="ZoomValuesModel (Constructor)" ref="eric6.Helpviewer.ZoomManager.ZoomValuesModel.html#ZoomValuesModel.__init__" />
       <keyword name="ZoomValuesModel (Constructor)" id="ZoomValuesModel (Constructor)" ref="eric6.WebBrowser.ZoomManager.ZoomValuesModel.html#ZoomValuesModel.__init__" />
-      <keyword name="ZoomValuesModel (Module)" id="ZoomValuesModel (Module)" ref="eric6.Helpviewer.ZoomManager.ZoomValuesModel.html" />
       <keyword name="ZoomValuesModel (Module)" id="ZoomValuesModel (Module)" ref="eric6.WebBrowser.ZoomManager.ZoomValuesModel.html" />
-      <keyword name="ZoomValuesModel.__zoomValuesChanged" id="ZoomValuesModel.__zoomValuesChanged" ref="eric6.Helpviewer.ZoomManager.ZoomValuesModel.html#ZoomValuesModel.__zoomValuesChanged" />
       <keyword name="ZoomValuesModel.__zoomValuesChanged" id="ZoomValuesModel.__zoomValuesChanged" ref="eric6.WebBrowser.ZoomManager.ZoomValuesModel.html#ZoomValuesModel.__zoomValuesChanged" />
-      <keyword name="ZoomValuesModel.columnCount" id="ZoomValuesModel.columnCount" ref="eric6.Helpviewer.ZoomManager.ZoomValuesModel.html#ZoomValuesModel.columnCount" />
       <keyword name="ZoomValuesModel.columnCount" id="ZoomValuesModel.columnCount" ref="eric6.WebBrowser.ZoomManager.ZoomValuesModel.html#ZoomValuesModel.columnCount" />
-      <keyword name="ZoomValuesModel.data" id="ZoomValuesModel.data" ref="eric6.Helpviewer.ZoomManager.ZoomValuesModel.html#ZoomValuesModel.data" />
       <keyword name="ZoomValuesModel.data" id="ZoomValuesModel.data" ref="eric6.WebBrowser.ZoomManager.ZoomValuesModel.html#ZoomValuesModel.data" />
-      <keyword name="ZoomValuesModel.headerData" id="ZoomValuesModel.headerData" ref="eric6.Helpviewer.ZoomManager.ZoomValuesModel.html#ZoomValuesModel.headerData" />
       <keyword name="ZoomValuesModel.headerData" id="ZoomValuesModel.headerData" ref="eric6.WebBrowser.ZoomManager.ZoomValuesModel.html#ZoomValuesModel.headerData" />
-      <keyword name="ZoomValuesModel.removeRows" id="ZoomValuesModel.removeRows" ref="eric6.Helpviewer.ZoomManager.ZoomValuesModel.html#ZoomValuesModel.removeRows" />
       <keyword name="ZoomValuesModel.removeRows" id="ZoomValuesModel.removeRows" ref="eric6.WebBrowser.ZoomManager.ZoomValuesModel.html#ZoomValuesModel.removeRows" />
-      <keyword name="ZoomValuesModel.rowCount" id="ZoomValuesModel.rowCount" ref="eric6.Helpviewer.ZoomManager.ZoomValuesModel.html#ZoomValuesModel.rowCount" />
       <keyword name="ZoomValuesModel.rowCount" id="ZoomValuesModel.rowCount" ref="eric6.WebBrowser.ZoomManager.ZoomValuesModel.html#ZoomValuesModel.rowCount" />
       <keyword name="_ClbrBase" id="_ClbrBase" ref="eric6.Utilities.ClassBrowsers.ClbrBaseClasses.html#_ClbrBase" />
       <keyword name="_ClbrBase (Constructor)" id="_ClbrBase (Constructor)" ref="eric6.Utilities.ClassBrowsers.ClbrBaseClasses.html#_ClbrBase.__init__" />
@@ -19368,7 +16849,6 @@
       <keyword name="__pyName" id="__pyName" ref="install.html#__pyName" />
       <keyword name="__pyName" id="__pyName" ref="setup.html#__pyName" />
       <keyword name="__readShortcut" id="__readShortcut" ref="eric6.Preferences.Shortcuts.html#__readShortcut" />
-      <keyword name="__render" id="__render" ref="eric6.Helpviewer.HelpSnap.html#__render" />
       <keyword name="__render" id="__render" ref="eric6.WebBrowser.WebBrowserSnap.html#__render" />
       <keyword name="__reorderFilter" id="__reorderFilter" ref="eric6.E5Gui.E5FileDialog.html#__reorderFilter" />
       <keyword name="__saveShortcut" id="__saveShortcut" ref="eric6.Preferences.Shortcuts.html#__saveShortcut" />
@@ -19428,7 +16908,6 @@
       <keyword name="comparison_negative" id="comparison_negative" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#comparison_negative" />
       <keyword name="comparison_to_singleton" id="comparison_to_singleton" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#comparison_to_singleton" />
       <keyword name="comparison_type" id="comparison_type" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#comparison_type" />
-      <keyword name="compatibility_fixes (Module)" id="compatibility_fixes (Module)" ref="eric6.Globals.compatibility_fixes.html" />
       <keyword name="compileUiFiles" id="compileUiFiles" ref="compileUiFiles.html#compileUiFiles" />
       <keyword name="compileUiFiles" id="compileUiFiles" ref="eric6.Utilities.uic.html#compileUiFiles" />
       <keyword name="compileUiFiles" id="compileUiFiles" ref="install.html#compileUiFiles" />
@@ -19441,7 +16920,6 @@
       <keyword name="condaVersionStr" id="condaVersionStr" ref="eric6.CondaInterface.__init__.html#condaVersionStr" />
       <keyword name="confirmOverwrite" id="confirmOverwrite" ref="eric6.E5Gui.E5FileSaveConfirmDialog.html#confirmOverwrite" />
       <keyword name="containsSpace" id="containsSpace" ref="eric6.WebBrowser.Tools.WebBrowserTools.html#containsSpace" />
-      <keyword name="contentSniff" id="contentSniff" ref="eric6.Helpviewer.HelpBrowserWV.html#contentSniff" />
       <keyword name="context_diff" id="context_diff" ref="eric6.UI.DiffDialog.html#context_diff" />
       <keyword name="continued_indentation" id="continued_indentation" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#continued_indentation" />
       <keyword name="convertLineEnds" id="convertLineEnds" ref="eric6.Utilities.__init__.html#convertLineEnds" />
@@ -19483,13 +16961,8 @@
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.EditorTypingPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.EmailPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.GraphicsPage.html#create" />
-      <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.HelpAppearancePage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.HelpDocumentationPage.html#create" />
-      <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage.html#create" />
-      <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.HelpInterfacePage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.HelpViewersPage.html#create" />
-      <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html#create" />
-      <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.HexEditorPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.IconsPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.InterfacePage.html#create" />
@@ -19516,6 +16989,7 @@
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.VcsPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.ViewmanagerPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.WebBrowserAppearancePage.html#create" />
+      <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.WebBrowserPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.WebBrowserSpellCheckingPage.html#create" />
       <keyword name="create" id="create" ref="eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html#create" />
@@ -19555,7 +17029,6 @@
       <keyword name="createMainWidget" id="createMainWidget" ref="eric6.eric6_trpreviewer.html#createMainWidget" />
       <keyword name="createMainWidget" id="createMainWidget" ref="eric6.eric6_uipreviewer.html#createMainWidget" />
       <keyword name="createMainWidget" id="createMainWidget" ref="eric6.eric6_unittest.html#createMainWidget" />
-      <keyword name="createMainWidget" id="createMainWidget" ref="eric6.eric6_webbrowser.html#createMainWidget" />
       <keyword name="createPyWrapper" id="createPyWrapper" ref="install.html#createPyWrapper" />
       <keyword name="createTranslatorPage" id="createTranslatorPage" ref="eric6.Plugins.PluginTranslator.html#createTranslatorPage" />
       <keyword name="createWindowsLinks" id="createWindowsLinks" ref="eric6.eric6_post_install.html#createWindowsLinks" />
@@ -19568,13 +17041,11 @@
       <keyword name="crypto (Package)" id="crypto (Package)" ref="index-eric6.Utilities.crypto.html" />
       <keyword name="cursors (Package)" id="cursors (Package)" ref="index-eric6.IconEditor.cursors.html" />
       <keyword name="data (Package)" id="data (Package)" ref="index-eric6.E5Network.data.html" />
-      <keyword name="data (Package)" id="data (Package)" ref="index-eric6.Helpviewer.data.html" />
       <keyword name="data (Package)" id="data (Package)" ref="index-eric6.UI.data.html" />
       <keyword name="data (Package)" id="data (Package)" ref="index-eric6.WebBrowser.data.html" />
       <keyword name="dataDecrypt" id="dataDecrypt" ref="eric6.Utilities.crypto.__init__.html#dataDecrypt" />
       <keyword name="dataEncrypt" id="dataEncrypt" ref="eric6.Utilities.crypto.__init__.html#dataEncrypt" />
       <keyword name="dataString" id="dataString" ref="eric6.Globals.__init__.html#dataString" />
-      <keyword name="dataString" id="dataString" ref="eric6.Helpviewer.Download.DownloadUtilities.html#dataString" />
       <keyword name="dataString" id="dataString" ref="eric6.WebBrowser.Download.DownloadUtilities.html#dataString" />
       <keyword name="dateFromTime_t" id="dateFromTime_t" ref="eric6.Plugins.VcsPlugins.vcsPySvn.SvnUtilities.html#dateFromTime_t" />
       <keyword name="decode" id="decode" ref="eric6.Utilities.__init__.html#decode" />
@@ -19584,7 +17055,6 @@
       <keyword name="decryptData" id="decryptData" ref="eric6.Utilities.crypto.py3AES.html#decryptData" />
       <keyword name="desktopName" id="desktopName" ref="eric6.Globals.__init__.html#desktopName" />
       <keyword name="detect_encoding" id="detect_encoding" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.eradicate.html#detect_encoding" />
-      <keyword name="determinePyQtVariant" id="determinePyQtVariant" ref="install.html#determinePyQtVariant" />
       <keyword name="determinePythonVersion" id="determinePythonVersion" ref="eric6.Utilities.__init__.html#determinePythonVersion" />
       <keyword name="direntries" id="direntries" ref="eric6.Utilities.__init__.html#direntries" />
       <keyword name="displayString" id="displayString" ref="eric6.Plugins.PluginVcsGit.html#displayString" />
@@ -19598,7 +17068,6 @@
       <keyword name="encode" id="encode" ref="eric6.Utilities.__init__.html#encode" />
       <keyword name="encryptData" id="encryptData" ref="eric6.Utilities.crypto.py3AES.html#encryptData" />
       <keyword name="engineDisplayName" id="engineDisplayName" ref="eric6.Plugins.UiExtensionPlugins.Translator.TranslatorEngines.__init__.html#engineDisplayName" />
-      <keyword name="ensureUniqueFilename" id="ensureUniqueFilename" ref="eric6.Helpviewer.HelpUtilities.html#ensureUniqueFilename" />
       <keyword name="ensureUniqueFilename" id="ensureUniqueFilename" ref="eric6.WebBrowser.Tools.WebBrowserTools.html#ensureUniqueFilename" />
       <keyword name="eradicate (Module)" id="eradicate (Module)" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.eradicate.html" />
       <keyword name="eric6 (Module)" id="eric6 (Module)" ref="eric6.eric6.html" />
@@ -19626,7 +17095,6 @@
       <keyword name="eric6_trpreviewer (Module)" id="eric6_trpreviewer (Module)" ref="eric6.eric6_trpreviewer.html" />
       <keyword name="eric6_uipreviewer (Module)" id="eric6_uipreviewer (Module)" ref="eric6.eric6_uipreviewer.html" />
       <keyword name="eric6_unittest (Module)" id="eric6_unittest (Module)" ref="eric6.eric6_unittest.html" />
-      <keyword name="eric6_webbrowser (Module)" id="eric6_webbrowser (Module)" ref="eric6.eric6_webbrowser.html" />
       <keyword name="eric6config (Module)" id="eric6config (Module)" ref="eric6.eric6config.html" />
       <keyword name="eric6dbgstub (Module)" id="eric6dbgstub (Module)" ref="eric6.DebugClients.Python.eric6dbgstub.html" />
       <keyword name="escape_entities" id="escape_entities" ref="eric6.Utilities.__init__.html#escape_entities" />
@@ -19657,16 +17125,13 @@
       <keyword name="fetch (Module)" id="fetch (Module)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.FetchExtension.fetch.html" />
       <keyword name="filename_match" id="filename_match" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#filename_match" />
       <keyword name="filterAnsiSequences" id="filterAnsiSequences" ref="eric6.Utilities.__init__.html#filterAnsiSequences" />
-      <keyword name="filterCharsFromFilename" id="filterCharsFromFilename" ref="eric6.Helpviewer.HelpUtilities.html#filterCharsFromFilename" />
       <keyword name="filterCharsFromFilename" id="filterCharsFromFilename" ref="eric6.WebBrowser.Tools.WebBrowserTools.html#filterCharsFromFilename" />
       <keyword name="filterMessage" id="filterMessage" ref="eric6.E5Gui.E5ErrorMessage.html#filterMessage" />
       <keyword name="filter_commented_out_code" id="filter_commented_out_code" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.eradicate.html#filter_commented_out_code" />
       <keyword name="findVolume" id="findVolume" ref="eric6.Utilities.__init__.html#findVolume" />
       <keyword name="find_module" id="find_module" ref="eric6.Utilities.ClassBrowsers.__init__.html#find_module" />
       <keyword name="find_module" id="find_module" ref="eric6.Utilities.ModuleParser.html#find_module" />
-      <keyword name="find_moduleAsStr" id="find_moduleAsStr" ref="eric6.Globals.compatibility_fixes.html#find_moduleAsStr" />
       <keyword name="fix_file" id="fix_file" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.eradicate.html#fix_file" />
-      <keyword name="flashDataPathForOS" id="flashDataPathForOS" ref="eric6.Helpviewer.FlashCookieManager.FlashCookieUtilities.html#flashDataPathForOS" />
       <keyword name="flashDataPathForOS" id="flashDataPathForOS" ref="eric6.WebBrowser.FlashCookieManager.FlashCookieUtilities.html#flashDataPathForOS" />
       <keyword name="formatTime" id="formatTime" ref="eric6.Plugins.VcsPlugins.vcsPySvn.SvnUtilities.html#formatTime" />
       <keyword name="format_witnesses" id="format_witnesses" ref="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#format_witnesses" />
@@ -19726,7 +17191,6 @@
       <keyword name="getExistingDirectory" id="getExistingDirectory" ref="eric6.E5Gui.E5FileDialog.html#getExistingDirectory" />
       <keyword name="getExporter" id="getExporter" ref="eric6.QScintilla.Exporters.__init__.html#getExporter" />
       <keyword name="getFeedLinks" id="getFeedLinks" ref="eric6.WebBrowser.Tools.Scripts.html#getFeedLinks" />
-      <keyword name="getFileNameFromUrl" id="getFileNameFromUrl" ref="eric6.Helpviewer.HelpUtilities.html#getFileNameFromUrl" />
       <keyword name="getFileNameFromUrl" id="getFileNameFromUrl" ref="eric6.WebBrowser.Tools.WebBrowserTools.html#getFileNameFromUrl" />
       <keyword name="getFlakes" id="getFlakes" ref="eric6.Preferences.__init__.html#getFlakes" />
       <keyword name="getFormData" id="getFormData" ref="eric6.WebBrowser.Tools.Scripts.html#getFormData" />
@@ -19739,16 +17203,7 @@
       <keyword name="getIcon" id="getIcon" ref="eric6.UI.PixmapCache.html#getIcon" />
       <keyword name="getIconEditor" id="getIconEditor" ref="eric6.Preferences.__init__.html#getIconEditor" />
       <keyword name="getIcons" id="getIcons" ref="eric6.Preferences.__init__.html#getIcons" />
-      <keyword name="getImporter" id="getImporter" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.__init__.html#getImporter" />
       <keyword name="getImporter" id="getImporter" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.__init__.html#getImporter" />
-      <keyword name="getImporterInfo" id="getImporterInfo" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html#getImporterInfo" />
-      <keyword name="getImporterInfo" id="getImporterInfo" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html#getImporterInfo" />
-      <keyword name="getImporterInfo" id="getImporterInfo" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html#getImporterInfo" />
-      <keyword name="getImporterInfo" id="getImporterInfo" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.html#getImporterInfo" />
-      <keyword name="getImporterInfo" id="getImporterInfo" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html#getImporterInfo" />
-      <keyword name="getImporterInfo" id="getImporterInfo" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.html#getImporterInfo" />
-      <keyword name="getImporterInfo" id="getImporterInfo" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html#getImporterInfo" />
-      <keyword name="getImporterInfo" id="getImporterInfo" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.__init__.html#getImporterInfo" />
       <keyword name="getImporterInfo" id="getImporterInfo" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.ChromeImporter.html#getImporterInfo" />
       <keyword name="getImporterInfo" id="getImporterInfo" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.FirefoxImporter.html#getImporterInfo" />
       <keyword name="getImporterInfo" id="getImporterInfo" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.HtmlImporter.html#getImporterInfo" />
@@ -19757,7 +17212,6 @@
       <keyword name="getImporterInfo" id="getImporterInfo" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.SafariImporter.html#getImporterInfo" />
       <keyword name="getImporterInfo" id="getImporterInfo" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.XbelImporter.html#getImporterInfo" />
       <keyword name="getImporterInfo" id="getImporterInfo" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.__init__.html#getImporterInfo" />
-      <keyword name="getImporters" id="getImporters" ref="eric6.Helpviewer.Bookmarks.BookmarksImporters.__init__.html#getImporters" />
       <keyword name="getImporters" id="getImporters" ref="eric6.WebBrowser.Bookmarks.BookmarksImporters.__init__.html#getImporters" />
       <keyword name="getInstallCommand" id="getInstallCommand" ref="eric6.E5Network.E5GoogleMailHelpers.html#getInstallCommand" />
       <keyword name="getIrc" id="getIrc" ref="eric6.Preferences.__init__.html#getIrc" />
@@ -19904,7 +17358,7 @@
       <keyword name="isClientSecretFileAvailable" id="isClientSecretFileAvailable" ref="eric6.E5Network.E5GoogleMailHelpers.html#isClientSecretFileAvailable" />
       <keyword name="isCondaAvailable" id="isCondaAvailable" ref="eric6.CondaInterface.__init__.html#isCondaAvailable" />
       <keyword name="isConfigured" id="isConfigured" ref="eric6.Preferences.__init__.html#isConfigured" />
-      <keyword name="isCupsAvailable" id="isCupsAvailable" ref="eric6.WebBrowser.Tools.FilePrinter.html#isCupsAvailable" />
+      <keyword name="isCupsAvailable" id="isCupsAvailable" ref="eric6.WebBrowser.WebBrowserTabWidget.html#isCupsAvailable" />
       <keyword name="isDrive" id="isDrive" ref="eric6.Utilities.__init__.html#isDrive" />
       <keyword name="isExecutable" id="isExecutable" ref="eric6.Utilities.__init__.html#isExecutable" />
       <keyword name="isGnomeDesktop" id="isGnomeDesktop" ref="eric6.Globals.__init__.html#isGnomeDesktop" />
@@ -19921,7 +17375,6 @@
       <keyword name="is_stream_binary_plist" id="is_stream_binary_plist" ref="eric6.Utilities.binplistlib.html#is_stream_binary_plist" />
       <keyword name="is_string_literal" id="is_string_literal" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#is_string_literal" />
       <keyword name="isinpath" id="isinpath" ref="eric6.Utilities.__init__.html#isinpath" />
-      <keyword name="joinAsUnicode" id="joinAsUnicode" ref="eric6.Globals.compatibility_fixes.html#joinAsUnicode" />
       <keyword name="joinext" id="joinext" ref="eric6.Utilities.__init__.html#joinext" />
       <keyword name="jsCheckSyntax (Module)" id="jsCheckSyntax (Module)" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html" />
       <keyword name="jsSyntaxBatchCheck" id="jsSyntaxBatchCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.jsCheckSyntax.html#jsSyntaxBatchCheck" />
@@ -19932,7 +17385,6 @@
       <keyword name="listdirStat" id="listdirStat" ref="eric6.MicroPython.MicroPythonFileSystemUtilities.html#listdirStat" />
       <keyword name="loadTranslatorForLocale" id="loadTranslatorForLocale" ref="eric6.Toolbox.Startup.html#loadTranslatorForLocale" />
       <keyword name="loadTranslators" id="loadTranslators" ref="eric6.Toolbox.Startup.html#loadTranslators" />
-      <keyword name="load_sourceAsStr" id="load_sourceAsStr" ref="eric6.Globals.compatibility_fixes.html#load_sourceAsStr" />
       <keyword name="lru_cache" id="lru_cache" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#lru_cache" />
       <keyword name="main" id="main" ref="cleanupSource.html#main" />
       <keyword name="main" id="main" ref="compileUiFiles.html#main" />
@@ -19964,7 +17416,6 @@
       <keyword name="main" id="main" ref="eric6.eric6_trpreviewer.html#main" />
       <keyword name="main" id="main" ref="eric6.eric6_uipreviewer.html#main" />
       <keyword name="main" id="main" ref="eric6.eric6_unittest.html#main" />
-      <keyword name="main" id="main" ref="eric6.eric6_webbrowser.html#main" />
       <keyword name="main" id="main" ref="install-debugclients.html#main" />
       <keyword name="main" id="main" ref="install-i18n.html#main" />
       <keyword name="main" id="main" ref="install.html#main" />
@@ -19997,9 +17448,7 @@
       <keyword name="normjoinpath" id="normjoinpath" ref="eric6.Utilities.__init__.html#normjoinpath" />
       <keyword name="objectName" id="objectName" ref="eric6.Project.UicLoadUi.html#objectName" />
       <keyword name="okToClearData" id="okToClearData" ref="eric6.E5Gui.E5MessageBox.html#okToClearData" />
-      <keyword name="open" id="open" ref="eric6.Globals.compatibility_fixes.html#open" />
       <keyword name="open_with_encoding" id="open_with_encoding" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.eradicate.html#open_with_encoding" />
-      <keyword name="parseContentDisposition" id="parseContentDisposition" ref="eric6.Helpviewer.HelpUtilities.html#parseContentDisposition" />
       <keyword name="parseEnvironmentString" id="parseEnvironmentString" ref="eric6.Utilities.__init__.html#parseEnvironmentString" />
       <keyword name="parseOptionString" id="parseOptionString" ref="eric6.Utilities.__init__.html#parseOptionString" />
       <keyword name="parseString" id="parseString" ref="eric6.Utilities.__init__.html#parseString" />
@@ -20030,7 +17479,6 @@
       <keyword name="prepareUninstall" id="prepareUninstall" ref="eric6.Plugins.PluginVcsSubversion.html#prepareUninstall" />
       <keyword name="previewPix" id="previewPix" ref="eric6.Plugins.PluginVmListspace.html#previewPix" />
       <keyword name="previewPix" id="previewPix" ref="eric6.Plugins.PluginVmTabview.html#previewPix" />
-      <keyword name="printFile" id="printFile" ref="eric6.WebBrowser.Tools.FilePrinter.html#printFile" />
       <keyword name="printerr" id="printerr" ref="eric6.DebugClients.Python.DebugBase.html#printerr" />
       <keyword name="process_options" id="process_options" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#process_options" />
       <keyword name="process_tokens" id="process_tokens" ref="eric6.Plugins.CheckerPlugins.Tabnanny.Tabnanny.html#process_tokens" />
@@ -20059,7 +17507,6 @@
       <keyword name="qtHandler" id="qtHandler" ref="eric6.E5Gui.E5ErrorMessage.html#qtHandler" />
       <keyword name="question" id="question" ref="eric6.E5Gui.E5MessageBox.html#question" />
       <keyword name="queues (Module)" id="queues (Module)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.QueuesExtension.queues.html" />
-      <keyword name="quote" id="quote" ref="eric6.Utilities.__init__.html#quote" />
       <keyword name="rbclbr (Module)" id="rbclbr (Module)" ref="eric6.Utilities.ClassBrowsers.rbclbr.html" />
       <keyword name="readAllFileByteContents" id="readAllFileByteContents" ref="eric6.WebBrowser.Tools.WebBrowserTools.html#readAllFileByteContents" />
       <keyword name="readAllFileContents" id="readAllFileContents" ref="eric6.WebBrowser.Tools.WebBrowserTools.html#readAllFileContents" />
@@ -20095,7 +17542,6 @@
       <keyword name="removeMarkers" id="removeMarkers" ref="eric6.UI.CompareDialog.html#removeMarkers" />
       <keyword name="removePluginDirectories" id="removePluginDirectories" ref="uninstall.html#removePluginDirectories" />
       <keyword name="removeProjectBrowserFlags" id="removeProjectBrowserFlags" ref="eric6.Preferences.__init__.html#removeProjectBrowserFlags" />
-      <keyword name="renderTabPreview" id="renderTabPreview" ref="eric6.Helpviewer.HelpSnap.html#renderTabPreview" />
       <keyword name="renderTabPreview" id="renderTabPreview" ref="eric6.WebBrowser.WebBrowserSnap.html#renderTabPreview" />
       <keyword name="resetInterface" id="resetInterface" ref="eric6.CondaInterface.__init__.html#resetInterface" />
       <keyword name="resetLayout" id="resetLayout" ref="eric6.Preferences.__init__.html#resetLayout" />
@@ -20188,7 +17634,6 @@
       <keyword name="stdin_get_value" id="stdin_get_value" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#stdin_get_value" />
       <keyword name="strGroup" id="strGroup" ref="eric6.Globals.__init__.html#strGroup" />
       <keyword name="strToQByteArray" id="strToQByteArray" ref="eric6.Globals.__init__.html#strToQByteArray" />
-      <keyword name="strToQByteArray" id="strToQByteArray" ref="eric6.Plugins.VcsPlugins.vcsGit.GitUtilities.html#strToQByteArray" />
       <keyword name="strip (Module)" id="strip (Module)" ref="eric6.Plugins.VcsPlugins.vcsMercurial.StripExtension.strip.html" />
       <keyword name="strip_PKCS7_padding" id="strip_PKCS7_padding" ref="eric6.Utilities.crypto.py3AES.html#strip_PKCS7_padding" />
       <keyword name="subversion (Module)" id="subversion (Module)" ref="eric6.Plugins.VcsPlugins.vcsPySvn.subversion.html" />
@@ -20200,7 +17645,6 @@
       <keyword name="syntaxAndPyflakesCheck" id="syntaxAndPyflakesCheck" ref="eric6.Plugins.CheckerPlugins.SyntaxChecker.SyntaxCheck.html#syntaxAndPyflakesCheck" />
       <keyword name="tabs_obsolete" id="tabs_obsolete" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#tabs_obsolete" />
       <keyword name="tabs_or_spaces" id="tabs_or_spaces" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#tabs_or_spaces" />
-      <keyword name="timeString" id="timeString" ref="eric6.Helpviewer.Download.DownloadUtilities.html#timeString" />
       <keyword name="timeString" id="timeString" ref="eric6.WebBrowser.Download.DownloadUtilities.html#timeString" />
       <keyword name="toBool" id="toBool" ref="eric6.Globals.__init__.html#toBool" />
       <keyword name="toBool" id="toBool" ref="eric6.Preferences.__init__.html#toBool" />
@@ -20209,12 +17653,9 @@
       <keyword name="toByteArray" id="toByteArray" ref="eric6.Preferences.__init__.html#toByteArray" />
       <keyword name="toDict" id="toDict" ref="eric6.Globals.__init__.html#toDict" />
       <keyword name="toDict" id="toDict" ref="eric6.Preferences.__init__.html#toDict" />
-      <keyword name="toHex" id="toHex" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingUtilities.html#toHex" />
-      <keyword name="toHex_1" id="toHex_1" ref="eric6.WebBrowser.SafeBrowsing.SafeBrowsingUtilities.html#toHex_1" />
       <keyword name="toList" id="toList" ref="eric6.Globals.__init__.html#toList" />
       <keyword name="toList" id="toList" ref="eric6.Preferences.__init__.html#toList" />
       <keyword name="toNativeSeparators" id="toNativeSeparators" ref="eric6.Utilities.__init__.html#toNativeSeparators" />
-      <keyword name="toSecondLevelDomain" id="toSecondLevelDomain" ref="eric6.Helpviewer.AdBlock.AdBlockRule.html#toSecondLevelDomain" />
       <keyword name="toSecondLevelDomain" id="toSecondLevelDomain" ref="eric6.WebBrowser.AdBlock.AdBlockRule.html#toSecondLevelDomain" />
       <keyword name="trailing_blank_lines" id="trailing_blank_lines" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#trailing_blank_lines" />
       <keyword name="trailing_whitespace" id="trailing_whitespace" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#trailing_whitespace" />
@@ -20261,7 +17702,6 @@
       <keyword name="whitespace_around_operator" id="whitespace_around_operator" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#whitespace_around_operator" />
       <keyword name="whitespace_before_comment" id="whitespace_before_comment" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#whitespace_before_comment" />
       <keyword name="whitespace_before_parameters" id="whitespace_before_parameters" ref="eric6.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html#whitespace_before_parameters" />
-      <keyword name="wildcardMatch" id="wildcardMatch" ref="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html#wildcardMatch" />
       <keyword name="win32_GetUserName" id="win32_GetUserName" ref="eric6.Utilities.__init__.html#win32_GetUserName" />
       <keyword name="win32_Kill" id="win32_Kill" ref="eric6.Utilities.__init__.html#win32_Kill" />
       <keyword name="win32_getRealName" id="win32_getRealName" ref="eric6.Utilities.__init__.html#win32_getRealName" />
@@ -20441,9 +17881,7 @@
       <file>eric6.E5XML.XMLStreamReaderBase.html</file>
       <file>eric6.E5XML.XMLStreamWriterBase.html</file>
       <file>eric6.Globals.AppInfo.html</file>
-      <file>eric6.Globals.E5ConfigParser.html</file>
       <file>eric6.Globals.__init__.html</file>
-      <file>eric6.Globals.compatibility_fixes.html</file>
       <file>eric6.Graphics.ApplicationDiagramBuilder.html</file>
       <file>eric6.Graphics.AssociationItem.html</file>
       <file>eric6.Graphics.ClassItem.html</file>
@@ -20460,181 +17898,6 @@
       <file>eric6.Graphics.UMLGraphicsView.html</file>
       <file>eric6.Graphics.UMLItem.html</file>
       <file>eric6.Graphics.UMLSceneSizeDialog.html</file>
-      <file>eric6.Helpviewer.AdBlock.AdBlockAccessHandler.html</file>
-      <file>eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.html</file>
-      <file>eric6.Helpviewer.AdBlock.AdBlockDialog.html</file>
-      <file>eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.html</file>
-      <file>eric6.Helpviewer.AdBlock.AdBlockIcon.html</file>
-      <file>eric6.Helpviewer.AdBlock.AdBlockManager.html</file>
-      <file>eric6.Helpviewer.AdBlock.AdBlockNetwork.html</file>
-      <file>eric6.Helpviewer.AdBlock.AdBlockPage.html</file>
-      <file>eric6.Helpviewer.AdBlock.AdBlockRule.html</file>
-      <file>eric6.Helpviewer.AdBlock.AdBlockSubscription.html</file>
-      <file>eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html</file>
-      <file>eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarkNode.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarkPropertiesDialog.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksDialog.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksImportDialog.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksImporters.__init__.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksManager.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksMenu.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksModel.html</file>
-      <file>eric6.Helpviewer.Bookmarks.BookmarksToolBar.html</file>
-      <file>eric6.Helpviewer.Bookmarks.NsHtmlReader.html</file>
-      <file>eric6.Helpviewer.Bookmarks.NsHtmlWriter.html</file>
-      <file>eric6.Helpviewer.Bookmarks.XbelReader.html</file>
-      <file>eric6.Helpviewer.Bookmarks.XbelWriter.html</file>
-      <file>eric6.Helpviewer.ClosedTabsManager.html</file>
-      <file>eric6.Helpviewer.CookieJar.CookieDetailsDialog.html</file>
-      <file>eric6.Helpviewer.CookieJar.CookieExceptionsModel.html</file>
-      <file>eric6.Helpviewer.CookieJar.CookieJar.html</file>
-      <file>eric6.Helpviewer.CookieJar.CookieModel.html</file>
-      <file>eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.html</file>
-      <file>eric6.Helpviewer.CookieJar.CookiesDialog.html</file>
-      <file>eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.html</file>
-      <file>eric6.Helpviewer.Download.DownloadAskActionDialog.html</file>
-      <file>eric6.Helpviewer.Download.DownloadItem.html</file>
-      <file>eric6.Helpviewer.Download.DownloadManager.html</file>
-      <file>eric6.Helpviewer.Download.DownloadModel.html</file>
-      <file>eric6.Helpviewer.Download.DownloadUtilities.html</file>
-      <file>eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.html</file>
-      <file>eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.html</file>
-      <file>eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html</file>
-      <file>eric6.Helpviewer.Feeds.FeedEditDialog.html</file>
-      <file>eric6.Helpviewer.Feeds.FeedsDialog.html</file>
-      <file>eric6.Helpviewer.Feeds.FeedsManager.html</file>
-      <file>eric6.Helpviewer.FlashCookieManager.FlashCookie.html</file>
-      <file>eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html</file>
-      <file>eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html</file>
-      <file>eric6.Helpviewer.FlashCookieManager.FlashCookieNotification.html</file>
-      <file>eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html</file>
-      <file>eric6.Helpviewer.FlashCookieManager.FlashCookieUtilities.html</file>
-      <file>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html</file>
-      <file>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html</file>
-      <file>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html</file>
-      <file>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html</file>
-      <file>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html</file>
-      <file>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html</file>
-      <file>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript.html</file>
-      <file>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html</file>
-      <file>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html</file>
-      <file>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html</file>
-      <file>eric6.Helpviewer.HelpBrowserWV.html</file>
-      <file>eric6.Helpviewer.HelpClearPrivateDataDialog.html</file>
-      <file>eric6.Helpviewer.HelpDocsInstaller.html</file>
-      <file>eric6.Helpviewer.HelpIndexWidget.html</file>
-      <file>eric6.Helpviewer.HelpInspector.html</file>
-      <file>eric6.Helpviewer.HelpLanguagesDialog.html</file>
-      <file>eric6.Helpviewer.HelpSearchWidget.html</file>
-      <file>eric6.Helpviewer.HelpSingleApplication.html</file>
-      <file>eric6.Helpviewer.HelpSnap.html</file>
-      <file>eric6.Helpviewer.HelpTabBar.html</file>
-      <file>eric6.Helpviewer.HelpTabWidget.html</file>
-      <file>eric6.Helpviewer.HelpTocWidget.html</file>
-      <file>eric6.Helpviewer.HelpTopicDialog.html</file>
-      <file>eric6.Helpviewer.HelpUtilities.html</file>
-      <file>eric6.Helpviewer.HelpWebSearchWidget.html</file>
-      <file>eric6.Helpviewer.HelpWindow.html</file>
-      <file>eric6.Helpviewer.History.HistoryCompleter.html</file>
-      <file>eric6.Helpviewer.History.HistoryDialog.html</file>
-      <file>eric6.Helpviewer.History.HistoryFilterModel.html</file>
-      <file>eric6.Helpviewer.History.HistoryManager.html</file>
-      <file>eric6.Helpviewer.History.HistoryMenu.html</file>
-      <file>eric6.Helpviewer.History.HistoryModel.html</file>
-      <file>eric6.Helpviewer.History.HistoryTreeModel.html</file>
-      <file>eric6.Helpviewer.JavaScriptResources.html</file>
-      <file>eric6.Helpviewer.Network.AboutAccessHandler.html</file>
-      <file>eric6.Helpviewer.Network.EmptyNetworkReply.html</file>
-      <file>eric6.Helpviewer.Network.EricAccessHandler.html</file>
-      <file>eric6.Helpviewer.Network.FileAccessHandler.html</file>
-      <file>eric6.Helpviewer.Network.FileReply.html</file>
-      <file>eric6.Helpviewer.Network.FollowRedirectReply.html</file>
-      <file>eric6.Helpviewer.Network.FtpAccessHandler.html</file>
-      <file>eric6.Helpviewer.Network.FtpReply.html</file>
-      <file>eric6.Helpviewer.Network.NetworkAccessManager.html</file>
-      <file>eric6.Helpviewer.Network.NetworkAccessManagerProxy.html</file>
-      <file>eric6.Helpviewer.Network.NetworkDiskCache.html</file>
-      <file>eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply.html</file>
-      <file>eric6.Helpviewer.Network.NetworkReply.html</file>
-      <file>eric6.Helpviewer.Network.NoCacheHostsDialog.html</file>
-      <file>eric6.Helpviewer.Network.QtHelpAccessHandler.html</file>
-      <file>eric6.Helpviewer.Network.SchemeAccessHandler.html</file>
-      <file>eric6.Helpviewer.Network.SendRefererWhitelistDialog.html</file>
-      <file>eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog.html</file>
-      <file>eric6.Helpviewer.OfflineStorage.WebDatabasesDialog.html</file>
-      <file>eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html</file>
-      <file>eric6.Helpviewer.OpenSearch.OpenSearchDialog.html</file>
-      <file>eric6.Helpviewer.OpenSearch.OpenSearchEditDialog.html</file>
-      <file>eric6.Helpviewer.OpenSearch.OpenSearchEngine.html</file>
-      <file>eric6.Helpviewer.OpenSearch.OpenSearchEngineAction.html</file>
-      <file>eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html</file>
-      <file>eric6.Helpviewer.OpenSearch.OpenSearchManager.html</file>
-      <file>eric6.Helpviewer.OpenSearch.OpenSearchReader.html</file>
-      <file>eric6.Helpviewer.OpenSearch.OpenSearchWriter.html</file>
-      <file>eric6.Helpviewer.PageScreenDialog.html</file>
-      <file>eric6.Helpviewer.Passwords.LoginForm.html</file>
-      <file>eric6.Helpviewer.Passwords.PasswordManager.html</file>
-      <file>eric6.Helpviewer.Passwords.PasswordModel.html</file>
-      <file>eric6.Helpviewer.Passwords.PasswordReader.html</file>
-      <file>eric6.Helpviewer.Passwords.PasswordWriter.html</file>
-      <file>eric6.Helpviewer.Passwords.PasswordsDialog.html</file>
-      <file>eric6.Helpviewer.PersonalInformationManager.PersonalDataDialog.html</file>
-      <file>eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html</file>
-      <file>eric6.Helpviewer.QtHelpDocumentationDialog.html</file>
-      <file>eric6.Helpviewer.QtHelpDocumentationSelectionDialog.html</file>
-      <file>eric6.Helpviewer.QtHelpFiltersDialog.html</file>
-      <file>eric6.Helpviewer.SearchWidget.html</file>
-      <file>eric6.Helpviewer.SiteInfo.SiteInfoDialog.html</file>
-      <file>eric6.Helpviewer.SpeedDial.Page.html</file>
-      <file>eric6.Helpviewer.SpeedDial.PageThumbnailer.html</file>
-      <file>eric6.Helpviewer.SpeedDial.SpeedDial.html</file>
-      <file>eric6.Helpviewer.SpeedDial.SpeedDialReader.html</file>
-      <file>eric6.Helpviewer.SpeedDial.SpeedDialWriter.html</file>
-      <file>eric6.Helpviewer.Sync.DirectorySyncHandler.html</file>
-      <file>eric6.Helpviewer.Sync.FtpSyncHandler.html</file>
-      <file>eric6.Helpviewer.Sync.SyncAssistantDialog.html</file>
-      <file>eric6.Helpviewer.Sync.SyncCheckPage.html</file>
-      <file>eric6.Helpviewer.Sync.SyncDataPage.html</file>
-      <file>eric6.Helpviewer.Sync.SyncDirectorySettingsPage.html</file>
-      <file>eric6.Helpviewer.Sync.SyncEncryptionPage.html</file>
-      <file>eric6.Helpviewer.Sync.SyncFtpSettingsPage.html</file>
-      <file>eric6.Helpviewer.Sync.SyncGlobals.html</file>
-      <file>eric6.Helpviewer.Sync.SyncHandler.html</file>
-      <file>eric6.Helpviewer.Sync.SyncHostTypePage.html</file>
-      <file>eric6.Helpviewer.Sync.SyncManager.html</file>
-      <file>eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.html</file>
-      <file>eric6.Helpviewer.UrlBar.BookmarkInfoDialog.html</file>
-      <file>eric6.Helpviewer.UrlBar.FavIconLabel.html</file>
-      <file>eric6.Helpviewer.UrlBar.SslLabel.html</file>
-      <file>eric6.Helpviewer.UrlBar.StackedUrlBar.html</file>
-      <file>eric6.Helpviewer.UrlBar.UrlBar.html</file>
-      <file>eric6.Helpviewer.UserAgent.UserAgentManager.html</file>
-      <file>eric6.Helpviewer.UserAgent.UserAgentMenu.html</file>
-      <file>eric6.Helpviewer.UserAgent.UserAgentModel.html</file>
-      <file>eric6.Helpviewer.UserAgent.UserAgentReader.html</file>
-      <file>eric6.Helpviewer.UserAgent.UserAgentWriter.html</file>
-      <file>eric6.Helpviewer.UserAgent.UserAgentsDialog.html</file>
-      <file>eric6.Helpviewer.VirusTotal.VirusTotalApi.html</file>
-      <file>eric6.Helpviewer.VirusTotal.VirusTotalDomainReportDialog.html</file>
-      <file>eric6.Helpviewer.VirusTotal.VirusTotalIpReportDialog.html</file>
-      <file>eric6.Helpviewer.VirusTotal.VirusTotalWhoisDialog.html</file>
-      <file>eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html</file>
-      <file>eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html</file>
-      <file>eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog.html</file>
-      <file>eric6.Helpviewer.WebPlugins.WebPluginFactory.html</file>
-      <file>eric6.Helpviewer.WebPlugins.WebPluginInterface.html</file>
-      <file>eric6.Helpviewer.ZoomManager.ZoomManager.html</file>
-      <file>eric6.Helpviewer.ZoomManager.ZoomValuesDialog.html</file>
-      <file>eric6.Helpviewer.ZoomManager.ZoomValuesModel.html</file>
       <file>eric6.HexEdit.HexEditChunks.html</file>
       <file>eric6.HexEdit.HexEditGotoWidget.html</file>
       <file>eric6.HexEdit.HexEditMainWindow.html</file>
@@ -20717,7 +17980,6 @@
       <file>eric6.Plugins.PluginCodeStyleChecker.html</file>
       <file>eric6.Plugins.PluginEricapi.html</file>
       <file>eric6.Plugins.PluginEricdoc.html</file>
-      <file>eric6.Plugins.PluginPipInterface.html</file>
       <file>eric6.Plugins.PluginSyntaxChecker.html</file>
       <file>eric6.Plugins.PluginTabnanny.html</file>
       <file>eric6.Plugins.PluginTranslator.html</file>
@@ -20725,7 +17987,6 @@
       <file>eric6.Plugins.PluginVcsMercurial.html</file>
       <file>eric6.Plugins.PluginVcsPySvn.html</file>
       <file>eric6.Plugins.PluginVcsSubversion.html</file>
-      <file>eric6.Plugins.PluginVirtualenvInterface.html</file>
       <file>eric6.Plugins.PluginVmListspace.html</file>
       <file>eric6.Plugins.PluginVmTabview.html</file>
       <file>eric6.Plugins.PluginWizardDotDesktop.html</file>
@@ -21028,13 +18289,8 @@
       <file>eric6.Preferences.ConfigurationPages.EditorTypingPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.EmailPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.GraphicsPage.html</file>
-      <file>eric6.Preferences.ConfigurationPages.HelpAppearancePage.html</file>
       <file>eric6.Preferences.ConfigurationPages.HelpDocumentationPage.html</file>
-      <file>eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage.html</file>
-      <file>eric6.Preferences.ConfigurationPages.HelpInterfacePage.html</file>
       <file>eric6.Preferences.ConfigurationPages.HelpViewersPage.html</file>
-      <file>eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html</file>
-      <file>eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.HexEditorPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.IconsPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.IconsPreviewDialog.html</file>
@@ -21063,6 +18319,7 @@
       <file>eric6.Preferences.ConfigurationPages.VcsPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.ViewmanagerPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.WebBrowserAppearancePage.html</file>
+      <file>eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.WebBrowserPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.WebBrowserSpellCheckingPage.html</file>
       <file>eric6.Preferences.ConfigurationPages.WebBrowserVirusTotalPage.html</file>
@@ -21211,7 +18468,6 @@
       <file>eric6.Templates.TemplatePropertiesDialog.html</file>
       <file>eric6.Templates.TemplateSingleVariableDialog.html</file>
       <file>eric6.Templates.TemplateViewer.html</file>
-      <file>eric6.Toolbox.PyQt4ImportHook.html</file>
       <file>eric6.Toolbox.SingleApplication.html</file>
       <file>eric6.Toolbox.Startup.html</file>
       <file>eric6.Tools.TRPreviewer.html</file>
@@ -21414,7 +18670,6 @@
       <file>eric6.WebBrowser.SafeBrowsing.SafeBrowsingManager.html</file>
       <file>eric6.WebBrowser.SafeBrowsing.SafeBrowsingThreatList.html</file>
       <file>eric6.WebBrowser.SafeBrowsing.SafeBrowsingUrl.html</file>
-      <file>eric6.WebBrowser.SafeBrowsing.SafeBrowsingUtilities.html</file>
       <file>eric6.WebBrowser.SafeBrowsing.__init__.html</file>
       <file>eric6.WebBrowser.SearchWidget.html</file>
       <file>eric6.WebBrowser.Session.SessionManager.html</file>
@@ -21445,7 +18700,6 @@
       <file>eric6.WebBrowser.Sync.SyncManager.html</file>
       <file>eric6.WebBrowser.TabManager.TabManagerWidget.html</file>
       <file>eric6.WebBrowser.Tools.DelayedFileWatcher.html</file>
-      <file>eric6.WebBrowser.Tools.FilePrinter.html</file>
       <file>eric6.WebBrowser.Tools.PrintToPdfDialog.html</file>
       <file>eric6.WebBrowser.Tools.Scripts.html</file>
       <file>eric6.WebBrowser.Tools.WebBrowserTools.html</file>
@@ -21483,9 +18737,6 @@
       <file>eric6.WebBrowser.ZoomManager.ZoomManager.html</file>
       <file>eric6.WebBrowser.ZoomManager.ZoomValuesDialog.html</file>
       <file>eric6.WebBrowser.ZoomManager.ZoomValuesModel.html</file>
-      <file>eric6.cleanupSource.html</file>
-      <file>eric6.compileUiFiles.html</file>
-      <file>eric6.create_windows_links.html</file>
       <file>eric6.eric6.html</file>
       <file>eric6.eric6_api.html</file>
       <file>eric6.eric6_browser.html</file>
@@ -21510,14 +18761,7 @@
       <file>eric6.eric6_trpreviewer.html</file>
       <file>eric6.eric6_uipreviewer.html</file>
       <file>eric6.eric6_unittest.html</file>
-      <file>eric6.eric6_webbrowser.html</file>
       <file>eric6.eric6config.html</file>
-      <file>eric6.install-debugclients.html</file>
-      <file>eric6.install-i18n.html</file>
-      <file>eric6.install.html</file>
-      <file>eric6.patch_modpython.html</file>
-      <file>eric6.uninstall-debugclients.html</file>
-      <file>eric6.uninstall.html</file>
       <file>index-eric6.CondaInterface.html</file>
       <file>index-eric6.Cooperation.html</file>
       <file>index-eric6.DataViews.html</file>
@@ -21533,34 +18777,6 @@
       <file>index-eric6.E5XML.html</file>
       <file>index-eric6.Globals.html</file>
       <file>index-eric6.Graphics.html</file>
-      <file>index-eric6.Helpviewer.AdBlock.html</file>
-      <file>index-eric6.Helpviewer.Bookmarks.BookmarksImporters.html</file>
-      <file>index-eric6.Helpviewer.Bookmarks.html</file>
-      <file>index-eric6.Helpviewer.CookieJar.html</file>
-      <file>index-eric6.Helpviewer.Download.html</file>
-      <file>index-eric6.Helpviewer.FeaturePermissions.html</file>
-      <file>index-eric6.Helpviewer.Feeds.html</file>
-      <file>index-eric6.Helpviewer.FlashCookieManager.html</file>
-      <file>index-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.html</file>
-      <file>index-eric6.Helpviewer.GreaseMonkey.html</file>
-      <file>index-eric6.Helpviewer.History.html</file>
-      <file>index-eric6.Helpviewer.Network.html</file>
-      <file>index-eric6.Helpviewer.OfflineStorage.html</file>
-      <file>index-eric6.Helpviewer.OpenSearch.DefaultSearchEngines.html</file>
-      <file>index-eric6.Helpviewer.OpenSearch.html</file>
-      <file>index-eric6.Helpviewer.Passwords.html</file>
-      <file>index-eric6.Helpviewer.PersonalInformationManager.html</file>
-      <file>index-eric6.Helpviewer.SiteInfo.html</file>
-      <file>index-eric6.Helpviewer.SpeedDial.html</file>
-      <file>index-eric6.Helpviewer.Sync.html</file>
-      <file>index-eric6.Helpviewer.UrlBar.html</file>
-      <file>index-eric6.Helpviewer.UserAgent.html</file>
-      <file>index-eric6.Helpviewer.VirusTotal.html</file>
-      <file>index-eric6.Helpviewer.WebPlugins.ClickToFlash.html</file>
-      <file>index-eric6.Helpviewer.WebPlugins.html</file>
-      <file>index-eric6.Helpviewer.ZoomManager.html</file>
-      <file>index-eric6.Helpviewer.data.html</file>
-      <file>index-eric6.Helpviewer.html</file>
       <file>index-eric6.HexEdit.html</file>
       <file>index-eric6.IconEditor.cursors.html</file>
       <file>index-eric6.IconEditor.html</file>
--- a/eric6/Documentation/Source/create_windows_links.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/create_windows_links.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>PythonMarkers</td></tr><tr><td>includePythonVariant</td></tr>
+<tr><td>None</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.E5Gui.E5ErrorMessage.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.E5Gui.E5ErrorMessage.html	Sat Sep 07 16:10:29 2019 +0200
@@ -150,17 +150,19 @@
 <hr /><hr />
 <a NAME="messageHandler" ID="messageHandler"></a>
 <h2>messageHandler</h2>
-<b>messageHandler</b>(<i>msgType, *args</i>)
+<b>messageHandler</b>(<i>msgType, context, message</i>)
 <p>
     Module function handling messages.
 </p><dl>
 <dt><i>msgType</i> (int, QtMsgType)</dt>
 <dd>
 type of the message
-</dd><dt><i>args</i> (PyQt4: bytes; PyQt5: tuple of (QMessageLogContext, bytes))</dt>
+</dd><dt><i>context</i> (QMessageLogContext)</dt>
 <dd>
-message handler arguments, for PyQt4 message to be shown, for
-        PyQt5 context information and message to be shown
+context information
+</dd><dt><i>message</i> (bytes)</dt>
+<dd>
+message to be shown
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
--- a/eric6/Documentation/Source/eric6.E5Gui.E5LineEdit.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.E5Gui.E5LineEdit.html	Sat Sep 07 16:10:29 2019 +0200
@@ -141,9 +141,6 @@
 <td><a href="#E5LineEdit.leftMargin">leftMargin</a></td>
 <td>Public method to get the size of the left margin.</td>
 </tr><tr>
-<td><a href="#E5LineEdit.paintEvent">paintEvent</a></td>
-<td>Protected method handling a paint event.</td>
-</tr><tr>
 <td><a href="#E5LineEdit.removeWidget">removeWidget</a></td>
 <td>Public method to remove a widget from a side.</td>
 </tr><tr>
@@ -234,16 +231,6 @@
 <dd>
 left margin in pixel (integer)
 </dd>
-</dl><a NAME="E5LineEdit.paintEvent" ID="E5LineEdit.paintEvent"></a>
-<h4>E5LineEdit.paintEvent</h4>
-<b>paintEvent</b>(<i>evt</i>)
-<p>
-        Protected method handling a paint event.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the paint event (QPaintEvent)
-</dd>
 </dl><a NAME="E5LineEdit.removeWidget" ID="E5LineEdit.removeWidget"></a>
 <h4>E5LineEdit.removeWidget</h4>
 <b>removeWidget</b>(<i>widget</i>)
--- a/eric6/Documentation/Source/eric6.E5Gui.E5TextEditSearchWidget.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.E5Gui.E5TextEditSearchWidget.html	Sat Sep 07 16:10:29 2019 +0200
@@ -78,9 +78,6 @@
 <td><a href="#E5TextEditSearchWidget.__findPrevNextQWebEngineView">__findPrevNextQWebEngineView</a></td>
 <td>Private method to to search the associated edit widget of type QWebEngineView.</td>
 </tr><tr>
-<td><a href="#E5TextEditSearchWidget.__findPrevNextQWebView">__findPrevNextQWebView</a></td>
-<td>Private method to to search the associated edit widget of type QWebView.</td>
-</tr><tr>
 <td><a href="#E5TextEditSearchWidget.__setFindtextComboBackground">__setFindtextComboBackground</a></td>
 <td>Private slot to change the findtext combo background to indicate errors.</td>
 </tr><tr>
@@ -196,27 +193,6 @@
 <dd>
 flag indicating a backwards search
 </dd>
-</dl><a NAME="E5TextEditSearchWidget.__findPrevNextQWebView" ID="E5TextEditSearchWidget.__findPrevNextQWebView"></a>
-<h4>E5TextEditSearchWidget.__findPrevNextQWebView</h4>
-<b>__findPrevNextQWebView</b>(<i>backwards</i>)
-<p>
-        Private method to to search the associated edit widget of
-        type QWebView.
-</p><dl>
-<dt><i>backwards</i> (bool)</dt>
-<dd>
-flag indicating a backwards search
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the search result
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
 </dl><a NAME="E5TextEditSearchWidget.__setFindtextComboBackground" ID="E5TextEditSearchWidget.__setFindtextComboBackground"></a>
 <h4>E5TextEditSearchWidget.__setFindtextComboBackground</h4>
 <b>__setFindtextComboBackground</b>(<i>error</i>)
--- a/eric6/Documentation/Source/eric6.E5Network.E5GoogleMail.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.E5Network.E5GoogleMail.html	Sat Sep 07 16:10:29 2019 +0200
@@ -82,11 +82,8 @@
 <td><a href="#E5GoogleMail.__loadToken">__loadToken</a></td>
 <td>Private method to load a token from the token file.</td>
 </tr><tr>
-<td><a href="#E5GoogleMail.__prepareMessage_v2">__prepareMessage_v2</a></td>
-<td>Private method to prepare the message for sending (Python2 Variant).</td>
-</tr><tr>
-<td><a href="#E5GoogleMail.__prepareMessage_v3">__prepareMessage_v3</a></td>
-<td>Private method to prepare the message for sending (Python2 Variant).</td>
+<td><a href="#E5GoogleMail.__prepareMessage">__prepareMessage</a></td>
+<td>Private method to prepare the message for sending.</td>
 </tr><tr>
 <td><a href="#E5GoogleMail.__processAuthorization">__processAuthorization</a></td>
 <td>Private slot to process the received authorization code.</td>
@@ -150,31 +147,11 @@
 <dd>
 dict or None
 </dd>
-</dl><a NAME="E5GoogleMail.__prepareMessage_v2" ID="E5GoogleMail.__prepareMessage_v2"></a>
-<h4>E5GoogleMail.__prepareMessage_v2</h4>
-<b>__prepareMessage_v2</b>(<i>message</i>)
+</dl><a NAME="E5GoogleMail.__prepareMessage" ID="E5GoogleMail.__prepareMessage"></a>
+<h4>E5GoogleMail.__prepareMessage</h4>
+<b>__prepareMessage</b>(<i>message</i>)
 <p>
-        Private method to prepare the message for sending (Python2 Variant).
-</p><dl>
-<dt><i>message</i> (email.mime.text.MIMEBase)</dt>
-<dd>
-message to be prepared
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-prepared message dictionary
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-dict
-</dd>
-</dl><a NAME="E5GoogleMail.__prepareMessage_v3" ID="E5GoogleMail.__prepareMessage_v3"></a>
-<h4>E5GoogleMail.__prepareMessage_v3</h4>
-<b>__prepareMessage_v3</b>(<i>message</i>)
-<p>
-        Private method to prepare the message for sending (Python2 Variant).
+        Private method to prepare the message for sending.
 </p><dl>
 <dt><i>message</i> (email.mime.text.MIMEBase)</dt>
 <dd>
--- a/eric6/Documentation/Source/eric6.Globals.E5ConfigParser.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Globals.E5ConfigParser</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Globals.E5ConfigParser</h1>
-<p>
-Module implementing a ConfigParser wrapper for Python 2 to provide the
-dictionary like interface of the Python 3 variant.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#E5ConfigParser">E5ConfigParser</a></td>
-<td>Class implementing a wrapper of the ConfigParser class implementing dictionary like special methods and some enhancements from Python 3.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="E5ConfigParser" ID="E5ConfigParser"></a>
-<h2>E5ConfigParser</h2>
-<p>
-        Class implementing a wrapper of the ConfigParser class implementing
-        dictionary like special methods and some enhancements from Python 3.
-</p>
-<h3>Derived from</h3>
-SafeConfigParser
-<h3>Class Attributes</h3>
-<table>
-<tr><td>OPTCRE</td></tr><tr><td>OPTCRE_NV</td></tr><tr><td>_OPT_NV_TMPL</td></tr><tr><td>_OPT_TMPL</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#E5ConfigParser.__init__">E5ConfigParser</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#E5ConfigParser.__contains__">__contains__</a></td>
-<td>Special method to test, if a section is contained in the config.</td>
-</tr><tr>
-<td><a href="#E5ConfigParser.__delitem__">__delitem__</a></td>
-<td>Special method to delete a section.</td>
-</tr><tr>
-<td><a href="#E5ConfigParser.__getitem__">__getitem__</a></td>
-<td>Special method to get a section.</td>
-</tr><tr>
-<td><a href="#E5ConfigParser.__iter__">__iter__</a></td>
-<td>Special method to return an iterator of the section names starting with the default section.</td>
-</tr><tr>
-<td><a href="#E5ConfigParser.__len__">__len__</a></td>
-<td>Special method get the number of sections of the config.</td>
-</tr><tr>
-<td><a href="#E5ConfigParser.__setitem__">__setitem__</a></td>
-<td>Special method to set the values of a section.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="E5ConfigParser.__init__" ID="E5ConfigParser.__init__"></a>
-<h4>E5ConfigParser (Constructor)</h4>
-<b>E5ConfigParser</b>(<i>defaults=None, dict_type=_default_dict, allow_no_value=False, delimiters=('=', ':')</i>)
-<p>
-            Constructor
-</p><a NAME="E5ConfigParser.__contains__" ID="E5ConfigParser.__contains__"></a>
-<h4>E5ConfigParser.__contains__</h4>
-<b>__contains__</b>(<i>key</i>)
-<p>
-            Special method to test, if a section is contained in the config.
-</p><dl>
-<dt><i>key</i> (str)</dt>
-<dd>
-name of the section
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating containment
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
-</dl><a NAME="E5ConfigParser.__delitem__" ID="E5ConfigParser.__delitem__"></a>
-<h4>E5ConfigParser.__delitem__</h4>
-<b>__delitem__</b>(<i>key</i>)
-<p>
-            Special method to delete a section.
-</p><dl>
-<dt><i>key</i> (str)</dt>
-<dd>
-name of the section
-</dd>
-</dl><dl>
-<dt>Raises <b>KeyError</b>:</dt>
-<dd>
-raised to indicate a non-existent section
-</dd><dt>Raises <b>ValueError</b>:</dt>
-<dd>
-raised to indicate non-removal of the
-                default section
-</dd>
-</dl><a NAME="E5ConfigParser.__getitem__" ID="E5ConfigParser.__getitem__"></a>
-<h4>E5ConfigParser.__getitem__</h4>
-<b>__getitem__</b>(<i>key</i>)
-<p>
-            Special method to get a section.
-</p><dl>
-<dt><i>key</i> (str)</dt>
-<dd>
-name of the section
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-section for the given key
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-dict
-</dd>
-</dl><dl>
-<dt>Raises <b>KeyError</b>:</dt>
-<dd>
-raised if a non-existent key is given
-</dd>
-</dl><a NAME="E5ConfigParser.__iter__" ID="E5ConfigParser.__iter__"></a>
-<h4>E5ConfigParser.__iter__</h4>
-<b>__iter__</b>(<i></i>)
-<p>
-            Special method to return an iterator of the section names starting
-            with the default section.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-iterator of the section names contained in the config
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-iterator of str
-</dd>
-</dl><a NAME="E5ConfigParser.__len__" ID="E5ConfigParser.__len__"></a>
-<h4>E5ConfigParser.__len__</h4>
-<b>__len__</b>(<i></i>)
-<p>
-            Special method get the number of sections of the config.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-number of sections
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-int
-</dd>
-</dl><a NAME="E5ConfigParser.__setitem__" ID="E5ConfigParser.__setitem__"></a>
-<h4>E5ConfigParser.__setitem__</h4>
-<b>__setitem__</b>(<i>key, values</i>)
-<p>
-            Special method to set the values of a section.
-</p><dl>
-<dt><i>key</i> (str)</dt>
-<dd>
-name of the section
-</dd><dt><i>values</i> (dict)</dt>
-<dd>
-value for the section
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Globals.__init__.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Globals.__init__.html	Sat Sep 07 16:10:29 2019 +0200
@@ -44,7 +44,7 @@
 <td>Module function to get the name of the directory storing the config data.</td>
 </tr><tr>
 <td><a href="#getPyQt5ModulesDirectory">getPyQt5ModulesDirectory</a></td>
-<td>Function to determine the path to PyQt5's (or PyQt4's) modules directory.</td>
+<td>Function to determine the path to PyQt5 modules directory.</td>
 </tr><tr>
 <td><a href="#getPyQtToolsPath">getPyQtToolsPath</a></td>
 <td>Module function to get the path of the PyQt tools.</td>
@@ -170,11 +170,11 @@
 <h2>getPyQt5ModulesDirectory</h2>
 <b>getPyQt5ModulesDirectory</b>(<i></i>)
 <p>
-    Function to determine the path to PyQt5's (or PyQt4's) modules directory.
+    Function to determine the path to PyQt5 modules directory.
 </p><dl>
 <dt>Returns:</dt>
 <dd>
-path to the PyQt5/PyQt4 modules directory (string)
+path to the PyQt5 modules directory (string)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -237,7 +237,7 @@
 <dt>Returns:</dt>
 <dd>
 string indicating the supported web browser variant ("QtWebEngine",
-        "QtWebKit" or "None")
+        or "None")
 </dd>
 </dl><dl>
 <dt>Return Type:</dt>
--- a/eric6/Documentation/Source/eric6.Globals.compatibility_fixes.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,382 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Globals.compatibility_fixes</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Globals.compatibility_fixes</h1>
-<p>
-Module implementing some workarounds to let eric6 run under Python 2.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>__find_module</td></tr><tr><td>__join</td></tr><tr><td>__load_source</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#File">File</a></td>
-<td></td>
-</tr><tr>
-<td><a href="#PlainStrList">PlainStrList</a></td>
-<td>Keep track that all added paths to sys.path are str.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#find_moduleAsStr">find_moduleAsStr</a></td>
-<td>Convert none str parameter of the imp.find_module into str.</td>
-</tr><tr>
-<td><a href="#joinAsUnicode">joinAsUnicode</a></td>
-<td>Convert none unicode parameter of the os.path.join into unicode.</td>
-</tr><tr>
-<td><a href="#load_sourceAsStr">load_sourceAsStr</a></td>
-<td>Convert none str parameter of the imp.load_source into str.</td>
-</tr><tr>
-<td><a href="#open">open</a></td>
-<td>Replacement for the build in open function.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="File" ID="File"></a>
-<h2>File</h2>
-
-<h3>Derived from</h3>
-file
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#File.__init__">File</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#File.next">next</a></td>
-<td>Public method used in an iterator.</td>
-</tr><tr>
-<td><a href="#File.read">read</a></td>
-<td>Public method to read n bytes or all if n=-1 from file.</td>
-</tr><tr>
-<td><a href="#File.readline">readline</a></td>
-<td>Public method to read one line from file.</td>
-</tr><tr>
-<td><a href="#File.readlines">readlines</a></td>
-<td>Public method to read all lines from file.</td>
-</tr><tr>
-<td><a href="#File.write">write</a></td>
-<td>Public method to write given data to file and encode if needed.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="File.__init__" ID="File.__init__"></a>
-<h4>File (Constructor)</h4>
-<b>File</b>(<i>filein, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True</i>)
-<p>
-        Constructor
-</p><p>
-        It checks for unimplemented parameters.
-</p><dl>
-<dt><i>filein</i></dt>
-<dd>
-filename or file descriptor (string)
-</dd><dt><i>mode=</i></dt>
-<dd>
-access mode (string)
-</dd><dt><i>buffering=</i></dt>
-<dd>
-size of the read buffer (string)
-</dd><dt><i>encoding=</i></dt>
-<dd>
-character encoding for reading/ writing (string)
-</dd><dt><i>errors=</i></dt>
-<dd>
-behavior for the character encoding ('strict',
-            'explicit', ...) (string)
-</dd><dt><i>newline=</i></dt>
-<dd>
-controls how universal newlines works (string)
-</dd><dt><i>closefd=</i></dt>
-<dd>
-close underlying file descriptor if given as file
-            parameter (boolean)
-</dd>
-</dl><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-for not implemented method parameters
-</dd>
-</dl><a NAME="File.next" ID="File.next"></a>
-<h4>File.next</h4>
-<b>next</b>(<i></i>)
-<p>
-        Public method used in an iterator.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-decoded data read
-</dd>
-</dl><a NAME="File.read" ID="File.read"></a>
-<h4>File.read</h4>
-<b>read</b>(<i>n=-1</i>)
-<p>
-        Public method to read n bytes or all if n=-1 from file.
-</p><dl>
-<dt><i>n=</i></dt>
-<dd>
-bytecount or all if n=-1 (int)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-decoded bytes read
-</dd>
-</dl><a NAME="File.readline" ID="File.readline"></a>
-<h4>File.readline</h4>
-<b>readline</b>(<i>limit=-1</i>)
-<p>
-        Public method to read one line from file.
-</p><dl>
-<dt><i>limit=</i></dt>
-<dd>
-maximum bytes to read or all if limit=-1 (int)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-decoded line read
-</dd>
-</dl><a NAME="File.readlines" ID="File.readlines"></a>
-<h4>File.readlines</h4>
-<b>readlines</b>(<i>hint=-1</i>)
-<p>
-        Public method to read all lines from file.
-</p><dl>
-<dt><i>hint=</i></dt>
-<dd>
-maximum bytes to read or all if hint=-1 (int)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-decoded lines read
-</dd>
-</dl><a NAME="File.write" ID="File.write"></a>
-<h4>File.write</h4>
-<b>write</b>(<i>txt</i>)
-<p>
-        Public method to write given data to file and encode if needed.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-data to write. (str, bytes)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="PlainStrList" ID="PlainStrList"></a>
-<h2>PlainStrList</h2>
-<p>
-    Keep track that all added paths to sys.path are str.
-</p>
-<h3>Derived from</h3>
-list
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#PlainStrList.__init__">PlainStrList</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#PlainStrList.__convert">__convert</a></td>
-<td>Private method to convert unicode to file system encoding.</td>
-</tr><tr>
-<td><a href="#PlainStrList.__setitem__">__setitem__</a></td>
-<td>Special method to overwrite a specific list item.</td>
-</tr><tr>
-<td><a href="#PlainStrList.insert">insert</a></td>
-<td>Public method to insert a specific list item.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="PlainStrList.__init__" ID="PlainStrList.__init__"></a>
-<h4>PlainStrList (Constructor)</h4>
-<b>PlainStrList</b>(<i>*args</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>args</i></dt>
-<dd>
-list of paths to start with (list)
-</dd>
-</dl><a NAME="PlainStrList.__convert" ID="PlainStrList.__convert"></a>
-<h4>PlainStrList.__convert</h4>
-<b>__convert</b>(<i>element</i>)
-<p>
-        Private method to convert unicode to file system encoding.
-</p><dl>
-<dt><i>element</i></dt>
-<dd>
-to convert from unicode to file system encoding (any)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-converted element
-</dd>
-</dl><a NAME="PlainStrList.__setitem__" ID="PlainStrList.__setitem__"></a>
-<h4>PlainStrList.__setitem__</h4>
-<b>__setitem__</b>(<i>idx, value</i>)
-<p>
-        Special method to overwrite a specific list item.
-</p><dl>
-<dt><i>idx</i></dt>
-<dd>
-index of the item (int)
-</dd><dt><i>value</i></dt>
-<dd>
-the new value (any)
-</dd>
-</dl><a NAME="PlainStrList.insert" ID="PlainStrList.insert"></a>
-<h4>PlainStrList.insert</h4>
-<b>insert</b>(<i>idx, value</i>)
-<p>
-        Public method to insert a specific list item.
-</p><dl>
-<dt><i>idx</i></dt>
-<dd>
-index of the item (int)
-</dd><dt><i>value</i></dt>
-<dd>
-the new value (any)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="find_moduleAsStr" ID="find_moduleAsStr"></a>
-<h2>find_moduleAsStr</h2>
-<b>find_moduleAsStr</b>(<i>*args</i>)
-<p>
-    Convert none str parameter of the imp.find_module into str.
-</p><dl>
-<dt><i>args</i></dt>
-<dd>
-(str, unicode)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-list of args converted to str (list)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="joinAsUnicode" ID="joinAsUnicode"></a>
-<h2>joinAsUnicode</h2>
-<b>joinAsUnicode</b>(<i>*args</i>)
-<p>
-    Convert none unicode parameter of the os.path.join into unicode.
-</p><dl>
-<dt><i>args</i></dt>
-<dd>
-paths which should be joined (str, unicode)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-unicode str of the path (unicode)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="load_sourceAsStr" ID="load_sourceAsStr"></a>
-<h2>load_sourceAsStr</h2>
-<b>load_sourceAsStr</b>(<i>*args</i>)
-<p>
-    Convert none str parameter of the imp.load_source into str.
-</p><dl>
-<dt><i>args</i></dt>
-<dd>
-(str, unicode)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-list of args converted to str (list)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="open" ID="open"></a>
-<h2>open</h2>
-<b>open</b>(<i>filein, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True</i>)
-<p>
-    Replacement for the build in open function.
-</p><dl>
-<dt><i>filein</i></dt>
-<dd>
-filename or file descriptor (string)
-</dd><dt><i>mode=</i></dt>
-<dd>
-access mode (string)
-</dd><dt><i>buffering=</i></dt>
-<dd>
-size of the read buffer (string)
-</dd><dt><i>encoding=</i></dt>
-<dd>
-character encoding for reading/ writing (string)
-</dd><dt><i>errors=</i></dt>
-<dd>
-behavior for the character encoding ('strict',
-        'explicit', ...) (string)
-</dd><dt><i>newline=</i></dt>
-<dd>
-controls how universal newlines works (string)
-</dd><dt><i>closefd=</i></dt>
-<dd>
-close underlying file descriptor if given as file
-        parameter (boolean)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-Returns the new file object
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockAccessHandler.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.AdBlock.AdBlockAccessHandler</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.AdBlock.AdBlockAccessHandler</h1>
-<p>
-Module implementing a scheme access handler for AdBlock URLs.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#AdBlockAccessHandler">AdBlockAccessHandler</a></td>
-<td>Class implementing a scheme access handler for AdBlock URLs.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="AdBlockAccessHandler" ID="AdBlockAccessHandler"></a>
-<h2>AdBlockAccessHandler</h2>
-<p>
-    Class implementing a scheme access handler for AdBlock URLs.
-</p>
-<h3>Derived from</h3>
-SchemeAccessHandler
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AdBlockAccessHandler.createRequest">createRequest</a></td>
-<td>Public method to create a request.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AdBlockAccessHandler.createRequest" ID="AdBlockAccessHandler.createRequest"></a>
-<h4>AdBlockAccessHandler.createRequest</h4>
-<b>createRequest</b>(<i>op, request, outgoingData=None</i>)
-<p>
-        Public method to create a request.
-</p><dl>
-<dt><i>op</i></dt>
-<dd>
-the operation to be performed
-            (QNetworkAccessManager.Operation)
-</dd><dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd><dt><i>outgoingData</i></dt>
-<dd>
-reference to an IODevice containing data to be sent
-            (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the created reply object (QNetworkReply)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply</h1>
-<p>
-Module implementing a QNetworkReply subclass reporting a blocked request.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#AdBlockBlockedNetworkReply">AdBlockBlockedNetworkReply</a></td>
-<td>Class implementing a QNetworkReply subclass reporting a blocked request.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="AdBlockBlockedNetworkReply" ID="AdBlockBlockedNetworkReply"></a>
-<h2>AdBlockBlockedNetworkReply</h2>
-<p>
-    Class implementing a QNetworkReply subclass reporting a blocked request.
-</p>
-<h3>Derived from</h3>
-QNetworkReply
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AdBlockBlockedNetworkReply.__init__">AdBlockBlockedNetworkReply</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#AdBlockBlockedNetworkReply.__fireSignals">__fireSignals</a></td>
-<td>Private method to send some signals to end the connection.</td>
-</tr><tr>
-<td><a href="#AdBlockBlockedNetworkReply.abort">abort</a></td>
-<td>Public slot to abort the operation.</td>
-</tr><tr>
-<td><a href="#AdBlockBlockedNetworkReply.readData">readData</a></td>
-<td>Public method to retrieve data from the reply object.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AdBlockBlockedNetworkReply.__init__" ID="AdBlockBlockedNetworkReply.__init__"></a>
-<h4>AdBlockBlockedNetworkReply (Constructor)</h4>
-<b>AdBlockBlockedNetworkReply</b>(<i>request, subscription, rule, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd><dt><i>subscription</i></dt>
-<dd>
-subscription containing the matched rule
-            (AdBlockSubscription)
-</dd><dt><i>rule</i></dt>
-<dd>
-matching rule (AdBlockRule)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="AdBlockBlockedNetworkReply.__fireSignals" ID="AdBlockBlockedNetworkReply.__fireSignals"></a>
-<h4>AdBlockBlockedNetworkReply.__fireSignals</h4>
-<b>__fireSignals</b>(<i></i>)
-<p>
-        Private method to send some signals to end the connection.
-</p><a NAME="AdBlockBlockedNetworkReply.abort" ID="AdBlockBlockedNetworkReply.abort"></a>
-<h4>AdBlockBlockedNetworkReply.abort</h4>
-<b>abort</b>(<i></i>)
-<p>
-        Public slot to abort the operation.
-</p><a NAME="AdBlockBlockedNetworkReply.readData" ID="AdBlockBlockedNetworkReply.readData"></a>
-<h4>AdBlockBlockedNetworkReply.readData</h4>
-<b>readData</b>(<i>maxlen</i>)
-<p>
-        Public method to retrieve data from the reply object.
-</p><dl>
-<dt><i>maxlen</i></dt>
-<dd>
-maximum number of bytes to read (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-string containing the data (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,281 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.AdBlock.AdBlockDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.AdBlock.AdBlockDialog</h1>
-<p>
-Module implementing the AdBlock configuration dialog.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#AdBlockDialog">AdBlockDialog</a></td>
-<td>Class implementing the AdBlock configuration dialog.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="AdBlockDialog" ID="AdBlockDialog"></a>
-<h2>AdBlockDialog</h2>
-<p>
-    Class implementing the AdBlock configuration dialog.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_AdBlockDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AdBlockDialog.__init__">AdBlockDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.__aboutToShowActionMenu">__aboutToShowActionMenu</a></td>
-<td>Private slot to show the actions menu.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.__addCustomRule">__addCustomRule</a></td>
-<td>Private slot to add a custom AdBlock rule.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.__browseSubscriptions">__browseSubscriptions</a></td>
-<td>Private slot to browse the list of available AdBlock subscriptions.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.__learnAboutWritingFilters">__learnAboutWritingFilters</a></td>
-<td>Private slot to show the web page about how to write filters.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.__load">__load</a></td>
-<td>Private slot to populate the tab widget with subscriptions.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.__loadSubscriptions">__loadSubscriptions</a></td>
-<td>Private slot to load the AdBlock subscription rules.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.__removeCustomRule">__removeCustomRule</a></td>
-<td>Private slot to remove a custom AdBlock rule.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.__removeSubscription">__removeSubscription</a></td>
-<td>Private slot to remove the selected subscription.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.__setSubscriptionEnabled">__setSubscriptionEnabled</a></td>
-<td>Private slot to set the enabled state of a subscription.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.__switchSubscriptionEnabled">__switchSubscriptionEnabled</a></td>
-<td>Private slot to switch the enabled state of the selected subscription.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.__updateAllSubscriptions">__updateAllSubscriptions</a></td>
-<td>Private slot to update all subscriptions.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.__updateSubscription">__updateSubscription</a></td>
-<td>Private slot to update the selected subscription.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.addCustomRule">addCustomRule</a></td>
-<td>Public slot to add a custom AdBlock rule.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.addSubscription">addSubscription</a></td>
-<td>Public slot adding a subscription to the list.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.on_adBlockGroup_toggled">on_adBlockGroup_toggled</a></td>
-<td>Private slot handling the enabling/disabling of AdBlock.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.on_searchEdit_textChanged">on_searchEdit_textChanged</a></td>
-<td>Private slot to set a new filter on the current widget.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.on_subscriptionsTabWidget_currentChanged">on_subscriptionsTabWidget_currentChanged</a></td>
-<td>Private slot handling the selection of another tab.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.on_updateSpinBox_valueChanged">on_updateSpinBox_valueChanged</a></td>
-<td>Private slot to handle changes of the update period.</td>
-</tr><tr>
-<td><a href="#AdBlockDialog.showRule">showRule</a></td>
-<td>Public slot to show the given rule.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AdBlockDialog.__init__" ID="AdBlockDialog.__init__"></a>
-<h4>AdBlockDialog (Constructor)</h4>
-<b>AdBlockDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QWidget)
-</dd>
-</dl><a NAME="AdBlockDialog.__aboutToShowActionMenu" ID="AdBlockDialog.__aboutToShowActionMenu"></a>
-<h4>AdBlockDialog.__aboutToShowActionMenu</h4>
-<b>__aboutToShowActionMenu</b>(<i></i>)
-<p>
-        Private slot to show the actions menu.
-</p><a NAME="AdBlockDialog.__addCustomRule" ID="AdBlockDialog.__addCustomRule"></a>
-<h4>AdBlockDialog.__addCustomRule</h4>
-<b>__addCustomRule</b>(<i></i>)
-<p>
-        Private slot to add a custom AdBlock rule.
-</p><a NAME="AdBlockDialog.__browseSubscriptions" ID="AdBlockDialog.__browseSubscriptions"></a>
-<h4>AdBlockDialog.__browseSubscriptions</h4>
-<b>__browseSubscriptions</b>(<i></i>)
-<p>
-        Private slot to browse the list of available AdBlock subscriptions.
-</p><a NAME="AdBlockDialog.__learnAboutWritingFilters" ID="AdBlockDialog.__learnAboutWritingFilters"></a>
-<h4>AdBlockDialog.__learnAboutWritingFilters</h4>
-<b>__learnAboutWritingFilters</b>(<i></i>)
-<p>
-        Private slot to show the web page about how to write filters.
-</p><a NAME="AdBlockDialog.__load" ID="AdBlockDialog.__load"></a>
-<h4>AdBlockDialog.__load</h4>
-<b>__load</b>(<i></i>)
-<p>
-        Private slot to populate the tab widget with subscriptions.
-</p><a NAME="AdBlockDialog.__loadSubscriptions" ID="AdBlockDialog.__loadSubscriptions"></a>
-<h4>AdBlockDialog.__loadSubscriptions</h4>
-<b>__loadSubscriptions</b>(<i></i>)
-<p>
-        Private slot to load the AdBlock subscription rules.
-</p><a NAME="AdBlockDialog.__removeCustomRule" ID="AdBlockDialog.__removeCustomRule"></a>
-<h4>AdBlockDialog.__removeCustomRule</h4>
-<b>__removeCustomRule</b>(<i></i>)
-<p>
-        Private slot to remove a custom AdBlock rule.
-</p><a NAME="AdBlockDialog.__removeSubscription" ID="AdBlockDialog.__removeSubscription"></a>
-<h4>AdBlockDialog.__removeSubscription</h4>
-<b>__removeSubscription</b>(<i></i>)
-<p>
-        Private slot to remove the selected subscription.
-</p><a NAME="AdBlockDialog.__setSubscriptionEnabled" ID="AdBlockDialog.__setSubscriptionEnabled"></a>
-<h4>AdBlockDialog.__setSubscriptionEnabled</h4>
-<b>__setSubscriptionEnabled</b>(<i>subscription, enable</i>)
-<p>
-        Private slot to set the enabled state of a subscription.
-</p><dl>
-<dt><i>subscription</i></dt>
-<dd>
-subscription to set the state for
-            (AdBlockSubscription)
-</dd><dt><i>enable</i></dt>
-<dd>
-state to set to (boolean)
-</dd>
-</dl><a NAME="AdBlockDialog.__switchSubscriptionEnabled" ID="AdBlockDialog.__switchSubscriptionEnabled"></a>
-<h4>AdBlockDialog.__switchSubscriptionEnabled</h4>
-<b>__switchSubscriptionEnabled</b>(<i></i>)
-<p>
-        Private slot to switch the enabled state of the selected subscription.
-</p><a NAME="AdBlockDialog.__updateAllSubscriptions" ID="AdBlockDialog.__updateAllSubscriptions"></a>
-<h4>AdBlockDialog.__updateAllSubscriptions</h4>
-<b>__updateAllSubscriptions</b>(<i></i>)
-<p>
-        Private slot to update all subscriptions.
-</p><a NAME="AdBlockDialog.__updateSubscription" ID="AdBlockDialog.__updateSubscription"></a>
-<h4>AdBlockDialog.__updateSubscription</h4>
-<b>__updateSubscription</b>(<i></i>)
-<p>
-        Private slot to update the selected subscription.
-</p><a NAME="AdBlockDialog.addCustomRule" ID="AdBlockDialog.addCustomRule"></a>
-<h4>AdBlockDialog.addCustomRule</h4>
-<b>addCustomRule</b>(<i>filterRule</i>)
-<p>
-        Public slot to add a custom AdBlock rule.
-</p><dl>
-<dt><i>filterRule</i></dt>
-<dd>
-filter to be added (string)
-</dd>
-</dl><a NAME="AdBlockDialog.addSubscription" ID="AdBlockDialog.addSubscription"></a>
-<h4>AdBlockDialog.addSubscription</h4>
-<b>addSubscription</b>(<i>subscription, refresh=True</i>)
-<p>
-        Public slot adding a subscription to the list.
-</p><dl>
-<dt><i>subscription</i></dt>
-<dd>
-reference to the subscription to be
-            added (AdBlockSubscription)
-</dd><dt><i>refresh</i></dt>
-<dd>
-flag indicating to refresh the tree (boolean)
-</dd>
-</dl><a NAME="AdBlockDialog.on_adBlockGroup_toggled" ID="AdBlockDialog.on_adBlockGroup_toggled"></a>
-<h4>AdBlockDialog.on_adBlockGroup_toggled</h4>
-<b>on_adBlockGroup_toggled</b>(<i>state</i>)
-<p>
-        Private slot handling the enabling/disabling of AdBlock.
-</p><dl>
-<dt><i>state</i></dt>
-<dd>
-state of the toggle (boolean)
-</dd>
-</dl><a NAME="AdBlockDialog.on_searchEdit_textChanged" ID="AdBlockDialog.on_searchEdit_textChanged"></a>
-<h4>AdBlockDialog.on_searchEdit_textChanged</h4>
-<b>on_searchEdit_textChanged</b>(<i>filterRule</i>)
-<p>
-        Private slot to set a new filter on the current widget.
-</p><dl>
-<dt><i>filterRule</i></dt>
-<dd>
-filter to be set (string)
-</dd>
-</dl><a NAME="AdBlockDialog.on_subscriptionsTabWidget_currentChanged" ID="AdBlockDialog.on_subscriptionsTabWidget_currentChanged"></a>
-<h4>AdBlockDialog.on_subscriptionsTabWidget_currentChanged</h4>
-<b>on_subscriptionsTabWidget_currentChanged</b>(<i>index</i>)
-<p>
-        Private slot handling the selection of another tab.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the new current tab (integer)
-</dd>
-</dl><a NAME="AdBlockDialog.on_updateSpinBox_valueChanged" ID="AdBlockDialog.on_updateSpinBox_valueChanged"></a>
-<h4>AdBlockDialog.on_updateSpinBox_valueChanged</h4>
-<b>on_updateSpinBox_valueChanged</b>(<i>value</i>)
-<p>
-        Private slot to handle changes of the update period.
-</p><dl>
-<dt><i>value</i></dt>
-<dd>
-update period (integer)
-</dd>
-</dl><a NAME="AdBlockDialog.showRule" ID="AdBlockDialog.showRule"></a>
-<h4>AdBlockDialog.showRule</h4>
-<b>showRule</b>(<i>rule</i>)
-<p>
-        Public slot to show the given rule.
-</p><dl>
-<dt><i>rule</i></dt>
-<dd>
-rule to be shown (AdBlockRule)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog</h1>
-<p>
-Module implementing a dialog to configure the AdBlock exceptions.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#AdBlockExceptionsDialog">AdBlockExceptionsDialog</a></td>
-<td>Class implementing a dialog to configure the AdBlock exceptions.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="AdBlockExceptionsDialog" ID="AdBlockExceptionsDialog"></a>
-<h2>AdBlockExceptionsDialog</h2>
-<p>
-    Class implementing a dialog to configure the AdBlock exceptions.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_AdBlockExceptionsDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AdBlockExceptionsDialog.__init__">AdBlockExceptionsDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#AdBlockExceptionsDialog.accept">accept</a></td>
-<td>Public slot handling the acceptance of the dialog.</td>
-</tr><tr>
-<td><a href="#AdBlockExceptionsDialog.load">load</a></td>
-<td>Public slot to load the list of excepted hosts.</td>
-</tr><tr>
-<td><a href="#AdBlockExceptionsDialog.on_addButton_clicked">on_addButton_clicked</a></td>
-<td>Private slot to handle a click of the add button.</td>
-</tr><tr>
-<td><a href="#AdBlockExceptionsDialog.on_deleteButton_clicked">on_deleteButton_clicked</a></td>
-<td>Private slot handling a click of the delete button.</td>
-</tr><tr>
-<td><a href="#AdBlockExceptionsDialog.on_hostEdit_textChanged">on_hostEdit_textChanged</a></td>
-<td>Private slot to handle changes of the host edit.</td>
-</tr><tr>
-<td><a href="#AdBlockExceptionsDialog.on_hostList_itemSelectionChanged">on_hostList_itemSelectionChanged</a></td>
-<td>Private slot handling a change of the number of selected items.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AdBlockExceptionsDialog.__init__" ID="AdBlockExceptionsDialog.__init__"></a>
-<h4>AdBlockExceptionsDialog (Constructor)</h4>
-<b>AdBlockExceptionsDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="AdBlockExceptionsDialog.accept" ID="AdBlockExceptionsDialog.accept"></a>
-<h4>AdBlockExceptionsDialog.accept</h4>
-<b>accept</b>(<i></i>)
-<p>
-        Public slot handling the acceptance of the dialog.
-</p><a NAME="AdBlockExceptionsDialog.load" ID="AdBlockExceptionsDialog.load"></a>
-<h4>AdBlockExceptionsDialog.load</h4>
-<b>load</b>(<i>hosts</i>)
-<p>
-        Public slot to load the list of excepted hosts.
-</p><dl>
-<dt><i>hosts</i></dt>
-<dd>
-list of excepted hosts
-</dd>
-</dl><a NAME="AdBlockExceptionsDialog.on_addButton_clicked" ID="AdBlockExceptionsDialog.on_addButton_clicked"></a>
-<h4>AdBlockExceptionsDialog.on_addButton_clicked</h4>
-<b>on_addButton_clicked</b>(<i></i>)
-<p>
-        Private slot to handle a click of the add button.
-</p><a NAME="AdBlockExceptionsDialog.on_deleteButton_clicked" ID="AdBlockExceptionsDialog.on_deleteButton_clicked"></a>
-<h4>AdBlockExceptionsDialog.on_deleteButton_clicked</h4>
-<b>on_deleteButton_clicked</b>(<i></i>)
-<p>
-        Private slot handling a click of the delete button.
-</p><a NAME="AdBlockExceptionsDialog.on_hostEdit_textChanged" ID="AdBlockExceptionsDialog.on_hostEdit_textChanged"></a>
-<h4>AdBlockExceptionsDialog.on_hostEdit_textChanged</h4>
-<b>on_hostEdit_textChanged</b>(<i>txt</i>)
-<p>
-        Private slot to handle changes of the host edit.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-text of the edit (string)
-</dd>
-</dl><a NAME="AdBlockExceptionsDialog.on_hostList_itemSelectionChanged" ID="AdBlockExceptionsDialog.on_hostList_itemSelectionChanged"></a>
-<h4>AdBlockExceptionsDialog.on_hostList_itemSelectionChanged</h4>
-<b>on_hostList_itemSelectionChanged</b>(<i></i>)
-<p>
-        Private slot handling a change of the number of selected items.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockIcon.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,198 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.AdBlock.AdBlockIcon</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.AdBlock.AdBlockIcon</h1>
-<p>
-Module implementing the AdBlock icon for the main window status bar.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#AdBlockIcon">AdBlockIcon</a></td>
-<td>Class implementing the AdBlock icon for the main window status bar.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="AdBlockIcon" ID="AdBlockIcon"></a>
-<h2>AdBlockIcon</h2>
-<p>
-    Class implementing the AdBlock icon for the main window status bar.
-</p>
-<h3>Derived from</h3>
-E5ClickableLabel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AdBlockIcon.__init__">AdBlockIcon</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#AdBlockIcon.__createMenu">__createMenu</a></td>
-<td>Private slot to create the context menu.</td>
-</tr><tr>
-<td><a href="#AdBlockIcon.__enableAdBlock">__enableAdBlock</a></td>
-<td>Private slot to enable or disable AdBlock.</td>
-</tr><tr>
-<td><a href="#AdBlockIcon.__isCurrentHostExcepted">__isCurrentHostExcepted</a></td>
-<td>Private method to check, if the host of the current browser is excepted.</td>
-</tr><tr>
-<td><a href="#AdBlockIcon.__setException">__setException</a></td>
-<td>Private slot to add or remove the current host from the list of exceptions.</td>
-</tr><tr>
-<td><a href="#AdBlockIcon.__showMenu">__showMenu</a></td>
-<td>Private slot to show the context menu.</td>
-</tr><tr>
-<td><a href="#AdBlockIcon.currentChanged">currentChanged</a></td>
-<td>Public slot to handle a change of the current browser tab.</td>
-</tr><tr>
-<td><a href="#AdBlockIcon.menuAction">menuAction</a></td>
-<td>Public method to get a reference to the menu action.</td>
-</tr><tr>
-<td><a href="#AdBlockIcon.setEnabled">setEnabled</a></td>
-<td>Public slot to set the enabled state.</td>
-</tr><tr>
-<td><a href="#AdBlockIcon.sourceChanged">sourceChanged</a></td>
-<td>Public slot to handle URL changes.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AdBlockIcon.__init__" ID="AdBlockIcon.__init__"></a>
-<h4>AdBlockIcon (Constructor)</h4>
-<b>AdBlockIcon</b>(<i>parent</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (HelpWindow)
-</dd>
-</dl><a NAME="AdBlockIcon.__createMenu" ID="AdBlockIcon.__createMenu"></a>
-<h4>AdBlockIcon.__createMenu</h4>
-<b>__createMenu</b>(<i>menu</i>)
-<p>
-        Private slot to create the context menu.
-</p><dl>
-<dt><i>menu</i> (QMenu)</dt>
-<dd>
-parent menu
-</dd>
-</dl><a NAME="AdBlockIcon.__enableAdBlock" ID="AdBlockIcon.__enableAdBlock"></a>
-<h4>AdBlockIcon.__enableAdBlock</h4>
-<b>__enableAdBlock</b>(<i>act</i>)
-<p>
-        Private slot to enable or disable AdBlock.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action
-</dd>
-</dl><a NAME="AdBlockIcon.__isCurrentHostExcepted" ID="AdBlockIcon.__isCurrentHostExcepted"></a>
-<h4>AdBlockIcon.__isCurrentHostExcepted</h4>
-<b>__isCurrentHostExcepted</b>(<i></i>)
-<p>
-        Private method to check, if the host of the current browser is
-        excepted.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating an exception (boolean)
-</dd>
-</dl><a NAME="AdBlockIcon.__setException" ID="AdBlockIcon.__setException"></a>
-<h4>AdBlockIcon.__setException</h4>
-<b>__setException</b>(<i>act</i>)
-<p>
-        Private slot to add or remove the current host from the list of
-        exceptions.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-referenced to the action
-</dd>
-</dl><a NAME="AdBlockIcon.__showMenu" ID="AdBlockIcon.__showMenu"></a>
-<h4>AdBlockIcon.__showMenu</h4>
-<b>__showMenu</b>(<i>pos</i>)
-<p>
-        Private slot to show the context menu.
-</p><dl>
-<dt><i>pos</i></dt>
-<dd>
-position the context menu should be shown (QPoint)
-</dd>
-</dl><a NAME="AdBlockIcon.currentChanged" ID="AdBlockIcon.currentChanged"></a>
-<h4>AdBlockIcon.currentChanged</h4>
-<b>currentChanged</b>(<i></i>)
-<p>
-        Public slot to handle a change of the current browser tab.
-</p><a NAME="AdBlockIcon.menuAction" ID="AdBlockIcon.menuAction"></a>
-<h4>AdBlockIcon.menuAction</h4>
-<b>menuAction</b>(<i></i>)
-<p>
-        Public method to get a reference to the menu action.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the menu action (QAction)
-</dd>
-</dl><a NAME="AdBlockIcon.setEnabled" ID="AdBlockIcon.setEnabled"></a>
-<h4>AdBlockIcon.setEnabled</h4>
-<b>setEnabled</b>(<i>enabled</i>)
-<p>
-        Public slot to set the enabled state.
-</p><dl>
-<dt><i>enabled</i></dt>
-<dd>
-enabled state (boolean)
-</dd>
-</dl><a NAME="AdBlockIcon.sourceChanged" ID="AdBlockIcon.sourceChanged"></a>
-<h4>AdBlockIcon.sourceChanged</h4>
-<b>sourceChanged</b>(<i>browser, url</i>)
-<p>
-        Public slot to handle URL changes.
-</p><dl>
-<dt><i>browser</i></dt>
-<dd>
-reference to the browser (HelpBrowser)
-</dd><dt><i>url</i></dt>
-<dd>
-new URL (QUrl)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,460 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.AdBlock.AdBlockManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.AdBlock.AdBlockManager</h1>
-<p>
-Module implementing the AdBlock manager.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#AdBlockManager">AdBlockManager</a></td>
-<td>Class implementing the AdBlock manager.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="AdBlockManager" ID="AdBlockManager"></a>
-<h2>AdBlockManager</h2>
-<p>
-    Class implementing the AdBlock manager.
-</p><h3>Signals</h3>
-<dl>
-<dt>requiredSubscriptionLoaded(subscription)</dt>
-<dd>
-emitted to indicate
-        loading of a required subscription is finished (AdBlockSubscription)
-</dd><dt>rulesChanged()</dt>
-<dd>
-emitted after some rule has changed
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AdBlockManager.__init__">AdBlockManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#AdBlockManager.__customSubscriptionLocation">__customSubscriptionLocation</a></td>
-<td>Private method to generate the path for custom subscriptions.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.__customSubscriptionUrl">__customSubscriptionUrl</a></td>
-<td>Private method to generate the URL for custom subscriptions.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.__loadSubscriptions">__loadSubscriptions</a></td>
-<td>Private method to load the set of subscriptions.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.addException">addException</a></td>
-<td>Public method to add an exception.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.addSubscription">addSubscription</a></td>
-<td>Public method to add an AdBlock subscription.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.close">close</a></td>
-<td>Public method to close the open search engines manager.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.customRules">customRules</a></td>
-<td>Public method to get a subscription for custom rules.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.elementHidingRules">elementHidingRules</a></td>
-<td>Public method to get the element hiding rules.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.elementHidingRulesForDomain">elementHidingRulesForDomain</a></td>
-<td>Public method to get the element hiding rules for a domain.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.exceptions">exceptions</a></td>
-<td>Public method to get a list of excepted hosts.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.getRequiresSubscriptions">getRequiresSubscriptions</a></td>
-<td>Public method to get a list of subscriptions, that require the given one.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.isEnabled">isEnabled</a></td>
-<td>Public method to check, if blocking ads is enabled.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.isHostExcepted">isHostExcepted</a></td>
-<td>Public slot to check, if a host is excepted.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.load">load</a></td>
-<td>Public method to load the AdBlock subscriptions.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.loadRequiredSubscription">loadRequiredSubscription</a></td>
-<td>Public method to load a subscription required by another one.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.network">network</a></td>
-<td>Public method to get a reference to the network block object.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.page">page</a></td>
-<td>Public method to get a reference to the page block object.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.removeException">removeException</a></td>
-<td>Public method to remove an exception.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.removeSubscription">removeSubscription</a></td>
-<td>Public method to remove an AdBlock subscription.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.save">save</a></td>
-<td>Public method to save the AdBlock subscriptions.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.setEnabled">setEnabled</a></td>
-<td>Public slot to set the enabled state.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.setExceptions">setExceptions</a></td>
-<td>Public method to set the list of excepted hosts.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.showDialog">showDialog</a></td>
-<td>Public slot to show the AdBlock subscription management dialog.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.showExceptionsDialog">showExceptionsDialog</a></td>
-<td>Public method to show the AdBlock Exceptions dialog.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.showRule">showRule</a></td>
-<td>Public slot to show an AdBlock rule.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.subscription">subscription</a></td>
-<td>Public method to get a subscription based on its location.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.subscriptions">subscriptions</a></td>
-<td>Public method to get all subscriptions.</td>
-</tr><tr>
-<td><a href="#AdBlockManager.updateAllSubscriptions">updateAllSubscriptions</a></td>
-<td>Public method to update all subscriptions.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AdBlockManager.__init__" ID="AdBlockManager.__init__"></a>
-<h4>AdBlockManager (Constructor)</h4>
-<b>AdBlockManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="AdBlockManager.__customSubscriptionLocation" ID="AdBlockManager.__customSubscriptionLocation"></a>
-<h4>AdBlockManager.__customSubscriptionLocation</h4>
-<b>__customSubscriptionLocation</b>(<i></i>)
-<p>
-        Private method to generate the path for custom subscriptions.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-URL for custom subscriptions (QUrl)
-</dd>
-</dl><a NAME="AdBlockManager.__customSubscriptionUrl" ID="AdBlockManager.__customSubscriptionUrl"></a>
-<h4>AdBlockManager.__customSubscriptionUrl</h4>
-<b>__customSubscriptionUrl</b>(<i></i>)
-<p>
-        Private method to generate the URL for custom subscriptions.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-URL for custom subscriptions (QUrl)
-</dd>
-</dl><a NAME="AdBlockManager.__loadSubscriptions" ID="AdBlockManager.__loadSubscriptions"></a>
-<h4>AdBlockManager.__loadSubscriptions</h4>
-<b>__loadSubscriptions</b>(<i></i>)
-<p>
-        Private method to load the set of subscriptions.
-</p><a NAME="AdBlockManager.addException" ID="AdBlockManager.addException"></a>
-<h4>AdBlockManager.addException</h4>
-<b>addException</b>(<i>host</i>)
-<p>
-        Public method to add an exception.
-</p><dl>
-<dt><i>host</i></dt>
-<dd>
-to be excepted (string)
-</dd>
-</dl><a NAME="AdBlockManager.addSubscription" ID="AdBlockManager.addSubscription"></a>
-<h4>AdBlockManager.addSubscription</h4>
-<b>addSubscription</b>(<i>subscription</i>)
-<p>
-        Public method to add an AdBlock subscription.
-</p><dl>
-<dt><i>subscription</i></dt>
-<dd>
-AdBlock subscription to be added
-            (AdBlockSubscription)
-</dd>
-</dl><a NAME="AdBlockManager.close" ID="AdBlockManager.close"></a>
-<h4>AdBlockManager.close</h4>
-<b>close</b>(<i></i>)
-<p>
-        Public method to close the open search engines manager.
-</p><a NAME="AdBlockManager.customRules" ID="AdBlockManager.customRules"></a>
-<h4>AdBlockManager.customRules</h4>
-<b>customRules</b>(<i></i>)
-<p>
-        Public method to get a subscription for custom rules.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-subscription object for custom rules (AdBlockSubscription)
-</dd>
-</dl><a NAME="AdBlockManager.elementHidingRules" ID="AdBlockManager.elementHidingRules"></a>
-<h4>AdBlockManager.elementHidingRules</h4>
-<b>elementHidingRules</b>(<i></i>)
-<p>
-        Public method to get the element hiding rules.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-element hiding rules (string)
-</dd>
-</dl><a NAME="AdBlockManager.elementHidingRulesForDomain" ID="AdBlockManager.elementHidingRulesForDomain"></a>
-<h4>AdBlockManager.elementHidingRulesForDomain</h4>
-<b>elementHidingRulesForDomain</b>(<i>url</i>)
-<p>
-        Public method to get the element hiding rules for a domain.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to get hiding rules for (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-element hiding rules (string)
-</dd>
-</dl><a NAME="AdBlockManager.exceptions" ID="AdBlockManager.exceptions"></a>
-<h4>AdBlockManager.exceptions</h4>
-<b>exceptions</b>(<i></i>)
-<p>
-        Public method to get a list of excepted hosts.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of excepted hosts (list of string)
-</dd>
-</dl><a NAME="AdBlockManager.getRequiresSubscriptions" ID="AdBlockManager.getRequiresSubscriptions"></a>
-<h4>AdBlockManager.getRequiresSubscriptions</h4>
-<b>getRequiresSubscriptions</b>(<i>subscription</i>)
-<p>
-        Public method to get a list of subscriptions, that require the given
-        one.
-</p><dl>
-<dt><i>subscription</i></dt>
-<dd>
-subscription to check for (AdBlockSubscription)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-list of subscription requiring the given one (list of
-            AdBlockSubscription)
-</dd>
-</dl><a NAME="AdBlockManager.isEnabled" ID="AdBlockManager.isEnabled"></a>
-<h4>AdBlockManager.isEnabled</h4>
-<b>isEnabled</b>(<i></i>)
-<p>
-        Public method to check, if blocking ads is enabled.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the enabled state (boolean)
-</dd>
-</dl><a NAME="AdBlockManager.isHostExcepted" ID="AdBlockManager.isHostExcepted"></a>
-<h4>AdBlockManager.isHostExcepted</h4>
-<b>isHostExcepted</b>(<i>host</i>)
-<p>
-        Public slot to check, if a host is excepted.
-</p><dl>
-<dt><i>host</i></dt>
-<dd>
-host to check (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating an exception (boolean)
-</dd>
-</dl><a NAME="AdBlockManager.load" ID="AdBlockManager.load"></a>
-<h4>AdBlockManager.load</h4>
-<b>load</b>(<i></i>)
-<p>
-        Public method to load the AdBlock subscriptions.
-</p><a NAME="AdBlockManager.loadRequiredSubscription" ID="AdBlockManager.loadRequiredSubscription"></a>
-<h4>AdBlockManager.loadRequiredSubscription</h4>
-<b>loadRequiredSubscription</b>(<i>location, title</i>)
-<p>
-        Public method to load a subscription required by another one.
-</p><dl>
-<dt><i>location</i></dt>
-<dd>
-location of the required subscription (string)
-</dd><dt><i>title</i></dt>
-<dd>
-title of the required subscription (string)
-</dd>
-</dl><a NAME="AdBlockManager.network" ID="AdBlockManager.network"></a>
-<h4>AdBlockManager.network</h4>
-<b>network</b>(<i></i>)
-<p>
-        Public method to get a reference to the network block object.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the network block object (AdBlockNetwork)
-</dd>
-</dl><a NAME="AdBlockManager.page" ID="AdBlockManager.page"></a>
-<h4>AdBlockManager.page</h4>
-<b>page</b>(<i></i>)
-<p>
-        Public method to get a reference to the page block object.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the page block object (AdBlockPage)
-</dd>
-</dl><a NAME="AdBlockManager.removeException" ID="AdBlockManager.removeException"></a>
-<h4>AdBlockManager.removeException</h4>
-<b>removeException</b>(<i>host</i>)
-<p>
-        Public method to remove an exception.
-</p><dl>
-<dt><i>host</i></dt>
-<dd>
-to be removed from the list of exceptions (string)
-</dd>
-</dl><a NAME="AdBlockManager.removeSubscription" ID="AdBlockManager.removeSubscription"></a>
-<h4>AdBlockManager.removeSubscription</h4>
-<b>removeSubscription</b>(<i>subscription, emitSignal=True</i>)
-<p>
-        Public method to remove an AdBlock subscription.
-</p><dl>
-<dt><i>subscription</i></dt>
-<dd>
-AdBlock subscription to be removed
-            (AdBlockSubscription)
-</dd><dt><i>emitSignal</i></dt>
-<dd>
-flag indicating to send a signal (boolean)
-</dd>
-</dl><a NAME="AdBlockManager.save" ID="AdBlockManager.save"></a>
-<h4>AdBlockManager.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public method to save the AdBlock subscriptions.
-</p><a NAME="AdBlockManager.setEnabled" ID="AdBlockManager.setEnabled"></a>
-<h4>AdBlockManager.setEnabled</h4>
-<b>setEnabled</b>(<i>enabled</i>)
-<p>
-        Public slot to set the enabled state.
-</p><dl>
-<dt><i>enabled</i></dt>
-<dd>
-flag indicating the enabled state (boolean)
-</dd>
-</dl><a NAME="AdBlockManager.setExceptions" ID="AdBlockManager.setExceptions"></a>
-<h4>AdBlockManager.setExceptions</h4>
-<b>setExceptions</b>(<i>hosts</i>)
-<p>
-        Public method to set the list of excepted hosts.
-</p><dl>
-<dt><i>hosts</i></dt>
-<dd>
-list of excepted hosts (list of string)
-</dd>
-</dl><a NAME="AdBlockManager.showDialog" ID="AdBlockManager.showDialog"></a>
-<h4>AdBlockManager.showDialog</h4>
-<b>showDialog</b>(<i></i>)
-<p>
-        Public slot to show the AdBlock subscription management dialog.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the dialog (AdBlockDialog)
-</dd>
-</dl><a NAME="AdBlockManager.showExceptionsDialog" ID="AdBlockManager.showExceptionsDialog"></a>
-<h4>AdBlockManager.showExceptionsDialog</h4>
-<b>showExceptionsDialog</b>(<i></i>)
-<p>
-        Public method to show the AdBlock Exceptions dialog.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the exceptions dialog (AdBlockExceptionsDialog)
-</dd>
-</dl><a NAME="AdBlockManager.showRule" ID="AdBlockManager.showRule"></a>
-<h4>AdBlockManager.showRule</h4>
-<b>showRule</b>(<i>act</i>)
-<p>
-        Public slot to show an AdBlock rule.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action
-</dd>
-</dl><a NAME="AdBlockManager.subscription" ID="AdBlockManager.subscription"></a>
-<h4>AdBlockManager.subscription</h4>
-<b>subscription</b>(<i>location</i>)
-<p>
-        Public method to get a subscription based on its location.
-</p><dl>
-<dt><i>location</i></dt>
-<dd>
-location of the subscription to search for (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-subscription or None (AdBlockSubscription)
-</dd>
-</dl><a NAME="AdBlockManager.subscriptions" ID="AdBlockManager.subscriptions"></a>
-<h4>AdBlockManager.subscriptions</h4>
-<b>subscriptions</b>(<i></i>)
-<p>
-        Public method to get all subscriptions.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of subscriptions (list of AdBlockSubscription)
-</dd>
-</dl><a NAME="AdBlockManager.updateAllSubscriptions" ID="AdBlockManager.updateAllSubscriptions"></a>
-<h4>AdBlockManager.updateAllSubscriptions</h4>
-<b>updateAllSubscriptions</b>(<i></i>)
-<p>
-        Public method to update all subscriptions.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockNetwork.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.AdBlock.AdBlockNetwork</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.AdBlock.AdBlockNetwork</h1>
-<p>
-Module implementing the network block class.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#AdBlockNetwork">AdBlockNetwork</a></td>
-<td>Class implementing a network block.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="AdBlockNetwork" ID="AdBlockNetwork"></a>
-<h2>AdBlockNetwork</h2>
-<p>
-    Class implementing a network block.
-</p>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AdBlockNetwork.__canBeBlocked">__canBeBlocked</a></td>
-<td>Private method to check, if an URL can be blocked.</td>
-</tr><tr>
-<td><a href="#AdBlockNetwork.block">block</a></td>
-<td>Public method to check for a network block.</td>
-</tr><tr>
-<td><a href="#AdBlockNetwork.canRunOnScheme">canRunOnScheme</a></td>
-<td>Public method to check, if AdBlock can be performed on the scheme.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AdBlockNetwork.__canBeBlocked" ID="AdBlockNetwork.__canBeBlocked"></a>
-<h4>AdBlockNetwork.__canBeBlocked</h4>
-<b>__canBeBlocked</b>(<i>url</i>)
-<p>
-        Private method to check, if an URL can be blocked.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to be checked (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating, that the URL can be blocked (boolean)
-</dd>
-</dl><a NAME="AdBlockNetwork.block" ID="AdBlockNetwork.block"></a>
-<h4>AdBlockNetwork.block</h4>
-<b>block</b>(<i>request</i>)
-<p>
-        Public method to check for a network block.
-</p><dl>
-<dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reply object (QNetworkReply) or None
-</dd>
-</dl><a NAME="AdBlockNetwork.canRunOnScheme" ID="AdBlockNetwork.canRunOnScheme"></a>
-<h4>AdBlockNetwork.canRunOnScheme</h4>
-<b>canRunOnScheme</b>(<i>scheme</i>)
-<p>
-        Public method to check, if AdBlock can be performed on the scheme.
-</p><dl>
-<dt><i>scheme</i></dt>
-<dd>
-scheme to check (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating, that AdBlock can be performed (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockPage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.AdBlock.AdBlockPage</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.AdBlock.AdBlockPage</h1>
-<p>
-Module implementing a class to apply AdBlock rules to a web page.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#AdBlockPage">AdBlockPage</a></td>
-<td>Class to apply AdBlock rules to a web page.</td>
-</tr><tr>
-<td><a href="#AdBlockedPageEntry">AdBlockedPageEntry</a></td>
-<td>Class implementing a data structure for web page rules.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="AdBlockPage" ID="AdBlockPage"></a>
-<h2>AdBlockPage</h2>
-<p>
-    Class to apply AdBlock rules to a web page.
-</p>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AdBlockPage.hideBlockedPageEntries">hideBlockedPageEntries</a></td>
-<td>Public method to apply AdBlock rules to a web page.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AdBlockPage.hideBlockedPageEntries" ID="AdBlockPage.hideBlockedPageEntries"></a>
-<h4>AdBlockPage.hideBlockedPageEntries</h4>
-<b>hideBlockedPageEntries</b>(<i>page</i>)
-<p>
-        Public method to apply AdBlock rules to a web page.
-</p><dl>
-<dt><i>page</i></dt>
-<dd>
-reference to the web page (HelpWebPage)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="AdBlockedPageEntry" ID="AdBlockedPageEntry"></a>
-<h2>AdBlockedPageEntry</h2>
-<p>
-    Class implementing a data structure for web page rules.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AdBlockedPageEntry.__init__">AdBlockedPageEntry</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#AdBlockedPageEntry.__eq__">__eq__</a></td>
-<td>Special method to test equality.</td>
-</tr><tr>
-<td><a href="#AdBlockedPageEntry.urlString">urlString</a></td>
-<td>Public method to get the URL as a string.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AdBlockedPageEntry.__init__" ID="AdBlockedPageEntry.__init__"></a>
-<h4>AdBlockedPageEntry (Constructor)</h4>
-<b>AdBlockedPageEntry</b>(<i>rule, url</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>rule</i></dt>
-<dd>
-AdBlock rule to add (AdBlockRule)
-</dd><dt><i>url</i></dt>
-<dd>
-URL that matched the rule (QUrl)
-</dd>
-</dl><a NAME="AdBlockedPageEntry.__eq__" ID="AdBlockedPageEntry.__eq__"></a>
-<h4>AdBlockedPageEntry.__eq__</h4>
-<b>__eq__</b>(<i>other</i>)
-<p>
-        Special method to test equality.
-</p><dl>
-<dt><i>other</i></dt>
-<dd>
-reference to the other entry (AdBlockedPageEntry)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating equality (boolean)
-</dd>
-</dl><a NAME="AdBlockedPageEntry.urlString" ID="AdBlockedPageEntry.urlString"></a>
-<h4>AdBlockedPageEntry.urlString</h4>
-<b>urlString</b>(<i></i>)
-<p>
-        Public method to get the URL as a string.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-URL as a string (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockRule.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,488 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.AdBlock.AdBlockRule</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.AdBlock.AdBlockRule</h1>
-<p>
-Module implementing the AdBlock rule class.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#AdBlockRule">AdBlockRule</a></td>
-<td>Class implementing the AdBlock rule.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#toSecondLevelDomain">toSecondLevelDomain</a></td>
-<td>Module function to get a second level domain from the given URL.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="AdBlockRule" ID="AdBlockRule"></a>
-<h2>AdBlockRule</h2>
-<p>
-    Class implementing the AdBlock rule.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AdBlockRule.__init__">AdBlockRule</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#AdBlockRule.__convertPatternToRegExp">__convertPatternToRegExp</a></td>
-<td>Private method to convert a wildcard pattern to a regular expression.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.__parseDomains">__parseDomains</a></td>
-<td>Private method to parse a string with a domain list.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.__parseFilter">__parseFilter</a></td>
-<td>Private method to parse the filter pattern.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.cssSelector">cssSelector</a></td>
-<td>Public method to get the CSS selector of the rule.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.filter">filter</a></td>
-<td>Public method to get the rule filter string.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.isCSSRule">isCSSRule</a></td>
-<td>Public method to check, if the rule is a CSS rule.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.isComment">isComment</a></td>
-<td>Public method to check, if this is a comment.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.isDocument">isDocument</a></td>
-<td>Public method to check, if this is a document rule.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.isDomainRestricted">isDomainRestricted</a></td>
-<td>Public method to check, if this rule is restricted by domain.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.isElementHiding">isElementHiding</a></td>
-<td>Public method to check, if this is an element hiding rule.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.isEnabled">isEnabled</a></td>
-<td>Public method to check, if the rule is enabled.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.isException">isException</a></td>
-<td>Public method to check, if the rule defines an exception.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.isHeader">isHeader</a></td>
-<td>Public method to check, if this is a header.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.isInternalDisabled">isInternalDisabled</a></td>
-<td>Public method to check, if this rule was disabled internally.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.isSlow">isSlow</a></td>
-<td>Public method to check, if this is a slow rule.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.matchDomain">matchDomain</a></td>
-<td>Public method to match a domain.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.matchObject">matchObject</a></td>
-<td>Public slot to match an object rule.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.matchSubdocument">matchSubdocument</a></td>
-<td>Public slot to match a sub-document rule.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.matchThirdParty">matchThirdParty</a></td>
-<td>Public slot to match a third-party rule.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.matchXmlHttpRequest">matchXmlHttpRequest</a></td>
-<td>Public slot to match a XmlHttpRequest rule.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.networkMatch">networkMatch</a></td>
-<td>Public method to check the rule for a match.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.setEnabled">setEnabled</a></td>
-<td>Public method to set the rule's enabled state.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.setException">setException</a></td>
-<td>Public method to set the rule's exception flag.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.setFilter">setFilter</a></td>
-<td>Public method to set the rule filter string.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.subscription">subscription</a></td>
-<td>Public method to get the subscription this rule belongs to.</td>
-</tr><tr>
-<td><a href="#AdBlockRule.urlMatch">urlMatch</a></td>
-<td>Public method to check an URL against the rule.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AdBlockRule.__init__" ID="AdBlockRule.__init__"></a>
-<h4>AdBlockRule (Constructor)</h4>
-<b>AdBlockRule</b>(<i>filterRule="", subscription=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>filterRule</i></dt>
-<dd>
-filter string of the rule (string)
-</dd><dt><i>subscription</i></dt>
-<dd>
-reference to the subscription object
-            (AdBlockSubscription)
-</dd>
-</dl><a NAME="AdBlockRule.__convertPatternToRegExp" ID="AdBlockRule.__convertPatternToRegExp"></a>
-<h4>AdBlockRule.__convertPatternToRegExp</h4>
-<b>__convertPatternToRegExp</b>(<i>wildcardPattern</i>)
-<p>
-        Private method to convert a wildcard pattern to a regular expression.
-</p><dl>
-<dt><i>wildcardPattern</i></dt>
-<dd>
-string containing the wildcard pattern (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-string containing a regular expression (string)
-</dd>
-</dl><a NAME="AdBlockRule.__parseDomains" ID="AdBlockRule.__parseDomains"></a>
-<h4>AdBlockRule.__parseDomains</h4>
-<b>__parseDomains</b>(<i>domains, separator</i>)
-<p>
-        Private method to parse a string with a domain list.
-</p><dl>
-<dt><i>domains</i></dt>
-<dd>
-list of domains (string)
-</dd><dt><i>separator</i></dt>
-<dd>
-separator character used by the list (string)
-</dd>
-</dl><a NAME="AdBlockRule.__parseFilter" ID="AdBlockRule.__parseFilter"></a>
-<h4>AdBlockRule.__parseFilter</h4>
-<b>__parseFilter</b>(<i></i>)
-<p>
-        Private method to parse the filter pattern.
-</p><a NAME="AdBlockRule.cssSelector" ID="AdBlockRule.cssSelector"></a>
-<h4>AdBlockRule.cssSelector</h4>
-<b>cssSelector</b>(<i></i>)
-<p>
-        Public method to get the CSS selector of the rule.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-CSS selector (string)
-</dd>
-</dl><a NAME="AdBlockRule.filter" ID="AdBlockRule.filter"></a>
-<h4>AdBlockRule.filter</h4>
-<b>filter</b>(<i></i>)
-<p>
-        Public method to get the rule filter string.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-rule filter string (string)
-</dd>
-</dl><a NAME="AdBlockRule.isCSSRule" ID="AdBlockRule.isCSSRule"></a>
-<h4>AdBlockRule.isCSSRule</h4>
-<b>isCSSRule</b>(<i></i>)
-<p>
-        Public method to check, if the rule is a CSS rule.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a CSS rule (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.isComment" ID="AdBlockRule.isComment"></a>
-<h4>AdBlockRule.isComment</h4>
-<b>isComment</b>(<i></i>)
-<p>
-        Public method to check, if this is a comment.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a comment (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.isDocument" ID="AdBlockRule.isDocument"></a>
-<h4>AdBlockRule.isDocument</h4>
-<b>isDocument</b>(<i></i>)
-<p>
-        Public method to check, if this is a document rule.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a document rule (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.isDomainRestricted" ID="AdBlockRule.isDomainRestricted"></a>
-<h4>AdBlockRule.isDomainRestricted</h4>
-<b>isDomainRestricted</b>(<i></i>)
-<p>
-        Public method to check, if this rule is restricted by domain.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a domain restriction (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.isElementHiding" ID="AdBlockRule.isElementHiding"></a>
-<h4>AdBlockRule.isElementHiding</h4>
-<b>isElementHiding</b>(<i></i>)
-<p>
-        Public method to check, if this is an element hiding rule.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating an element hiding rule (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.isEnabled" ID="AdBlockRule.isEnabled"></a>
-<h4>AdBlockRule.isEnabled</h4>
-<b>isEnabled</b>(<i></i>)
-<p>
-        Public method to check, if the rule is enabled.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating enabled state (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.isException" ID="AdBlockRule.isException"></a>
-<h4>AdBlockRule.isException</h4>
-<b>isException</b>(<i></i>)
-<p>
-        Public method to check, if the rule defines an exception.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating an exception (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.isHeader" ID="AdBlockRule.isHeader"></a>
-<h4>AdBlockRule.isHeader</h4>
-<b>isHeader</b>(<i></i>)
-<p>
-        Public method to check, if this is a header.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a header (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.isInternalDisabled" ID="AdBlockRule.isInternalDisabled"></a>
-<h4>AdBlockRule.isInternalDisabled</h4>
-<b>isInternalDisabled</b>(<i></i>)
-<p>
-        Public method to check, if this rule was disabled internally.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating an internally disabled rule (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.isSlow" ID="AdBlockRule.isSlow"></a>
-<h4>AdBlockRule.isSlow</h4>
-<b>isSlow</b>(<i></i>)
-<p>
-        Public method to check, if this is a slow rule.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a slow rule (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.matchDomain" ID="AdBlockRule.matchDomain"></a>
-<h4>AdBlockRule.matchDomain</h4>
-<b>matchDomain</b>(<i>domain</i>)
-<p>
-        Public method to match a domain.
-</p><dl>
-<dt><i>domain</i></dt>
-<dd>
-domain name to check (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a match (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.matchObject" ID="AdBlockRule.matchObject"></a>
-<h4>AdBlockRule.matchObject</h4>
-<b>matchObject</b>(<i>req</i>)
-<p>
-        Public slot to match an object rule.
-</p><dl>
-<dt><i>req</i></dt>
-<dd>
-request object to check (QNetworkRequest)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a match (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.matchSubdocument" ID="AdBlockRule.matchSubdocument"></a>
-<h4>AdBlockRule.matchSubdocument</h4>
-<b>matchSubdocument</b>(<i>req</i>)
-<p>
-        Public slot to match a sub-document rule.
-</p><dl>
-<dt><i>req</i></dt>
-<dd>
-request object to check (QNetworkRequest)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a match (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.matchThirdParty" ID="AdBlockRule.matchThirdParty"></a>
-<h4>AdBlockRule.matchThirdParty</h4>
-<b>matchThirdParty</b>(<i>req</i>)
-<p>
-        Public slot to match a third-party rule.
-</p><dl>
-<dt><i>req</i></dt>
-<dd>
-request object to check (QNetworkRequest)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a match (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.matchXmlHttpRequest" ID="AdBlockRule.matchXmlHttpRequest"></a>
-<h4>AdBlockRule.matchXmlHttpRequest</h4>
-<b>matchXmlHttpRequest</b>(<i>req</i>)
-<p>
-        Public slot to match a XmlHttpRequest rule.
-</p><dl>
-<dt><i>req</i></dt>
-<dd>
-request object to check (QNetworkRequest)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a match (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.networkMatch" ID="AdBlockRule.networkMatch"></a>
-<h4>AdBlockRule.networkMatch</h4>
-<b>networkMatch</b>(<i>request, domain, encodedUrl</i>)
-<p>
-        Public method to check the rule for a match.
-</p><dl>
-<dt><i>request</i></dt>
-<dd>
-reference to the network request (QNetworkRequest)
-</dd><dt><i>domain</i></dt>
-<dd>
-domain name (string)
-</dd><dt><i>encodedUrl</i></dt>
-<dd>
-string encoded URL to be checked (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a match (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.setEnabled" ID="AdBlockRule.setEnabled"></a>
-<h4>AdBlockRule.setEnabled</h4>
-<b>setEnabled</b>(<i>enabled</i>)
-<p>
-        Public method to set the rule's enabled state.
-</p><dl>
-<dt><i>enabled</i></dt>
-<dd>
-flag indicating the new enabled state (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.setException" ID="AdBlockRule.setException"></a>
-<h4>AdBlockRule.setException</h4>
-<b>setException</b>(<i>exception</i>)
-<p>
-        Public method to set the rule's exception flag.
-</p><dl>
-<dt><i>exception</i></dt>
-<dd>
-flag indicating an exception rule (boolean)
-</dd>
-</dl><a NAME="AdBlockRule.setFilter" ID="AdBlockRule.setFilter"></a>
-<h4>AdBlockRule.setFilter</h4>
-<b>setFilter</b>(<i>filterRule</i>)
-<p>
-        Public method to set the rule filter string.
-</p><dl>
-<dt><i>filterRule</i></dt>
-<dd>
-rule filter string (string)
-</dd>
-</dl><a NAME="AdBlockRule.subscription" ID="AdBlockRule.subscription"></a>
-<h4>AdBlockRule.subscription</h4>
-<b>subscription</b>(<i></i>)
-<p>
-        Public method to get the subscription this rule belongs to.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-subscription of the rule (AdBlockSubscription)
-</dd>
-</dl><a NAME="AdBlockRule.urlMatch" ID="AdBlockRule.urlMatch"></a>
-<h4>AdBlockRule.urlMatch</h4>
-<b>urlMatch</b>(<i>url</i>)
-<p>
-        Public method to check an URL against the rule.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to check (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a match (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="toSecondLevelDomain" ID="toSecondLevelDomain"></a>
-<h2>toSecondLevelDomain</h2>
-<b>toSecondLevelDomain</b>(<i>url</i>)
-<p>
-    Module function to get a second level domain from the given URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to extract domain from (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-name of second level domain (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockSubscription.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,540 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.AdBlock.AdBlockSubscription</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.AdBlock.AdBlockSubscription</h1>
-<p>
-Module implementing the AdBlock subscription class.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#AdBlockSubscription">AdBlockSubscription</a></td>
-<td>Class implementing the AdBlock subscription.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="AdBlockSubscription" ID="AdBlockSubscription"></a>
-<h2>AdBlockSubscription</h2>
-<p>
-    Class implementing the AdBlock subscription.
-</p><h3>Signals</h3>
-<dl>
-<dt>changed()</dt>
-<dd>
-emitted after the subscription has changed
-</dd><dt>enabledChanged(bool)</dt>
-<dd>
-emitted after the enabled state was changed
-</dd><dt>rulesChanged()</dt>
-<dd>
-emitted after the subscription's rules have changed
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AdBlockSubscription.__init__">AdBlockSubscription</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.__loadRules">__loadRules</a></td>
-<td>Private method to load the rules of the subscription.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.__parseUrl">__parseUrl</a></td>
-<td>Private method to parse the AdBlock URL for the subscription.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.__populateCache">__populateCache</a></td>
-<td>Private method to populate the various rule caches.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.__rulesDownloaded">__rulesDownloaded</a></td>
-<td>Private slot to deal with the downloaded rules.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.__validateCheckSum">__validateCheckSum</a></td>
-<td>Private method to check the subscription file's checksum.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.adBlockDisabledForUrl">adBlockDisabledForUrl</a></td>
-<td>Public method to check, if AdBlock is disabled for the given URL.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.addRule">addRule</a></td>
-<td>Public method to add a rule.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.allRules">allRules</a></td>
-<td>Public method to get the list of rules.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.canBeRemoved">canBeRemoved</a></td>
-<td>Public method to check, if the subscription can be removed.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.canEditRules">canEditRules</a></td>
-<td>Public method to check, if rules can be edited.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.checkForUpdate">checkForUpdate</a></td>
-<td>Public method to check for an update.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.elemHideDisabledForUrl">elemHideDisabledForUrl</a></td>
-<td>Public method to check, if element hiding is disabled for the given URL.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.elementHidingRules">elementHidingRules</a></td>
-<td>Public method to get the element hiding rules.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.elementHidingRulesForDomain">elementHidingRulesForDomain</a></td>
-<td>Public method to get the element hiding rules for the given domain.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.isEnabled">isEnabled</a></td>
-<td>Public method to check, if the subscription is enabled.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.lastUpdate">lastUpdate</a></td>
-<td>Public method to get the date and time of the last update.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.location">location</a></td>
-<td>Public method to get the subscription location.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.match">match</a></td>
-<td>Public method to check the subscription for a matching rule.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.removeRule">removeRule</a></td>
-<td>Public method to remove a rule given the offset.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.replaceRule">replaceRule</a></td>
-<td>Public method to replace a rule given the offset.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.requiresLocation">requiresLocation</a></td>
-<td>Public method to get the location of a required subscription.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.rule">rule</a></td>
-<td>Public method to get a specific rule.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.rulesFileName">rulesFileName</a></td>
-<td>Public method to get the name of the rules file.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.saveRules">saveRules</a></td>
-<td>Public method to save the subscription rules.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.setEnabled">setEnabled</a></td>
-<td>Public method to set the enabled status.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.setLocation">setLocation</a></td>
-<td>Public method to set the subscription location.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.setRuleEnabled">setRuleEnabled</a></td>
-<td>Public method to enable a specific rule.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.setTitle">setTitle</a></td>
-<td>Public method to set the subscription title.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.title">title</a></td>
-<td>Public method to get the subscription title.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.updateNow">updateNow</a></td>
-<td>Public method to update the subscription immediately.</td>
-</tr><tr>
-<td><a href="#AdBlockSubscription.url">url</a></td>
-<td>Public method to generate the URL for this subscription.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AdBlockSubscription.__init__" ID="AdBlockSubscription.__init__"></a>
-<h4>AdBlockSubscription (Constructor)</h4>
-<b>AdBlockSubscription</b>(<i>url, custom, parent=None, default=False</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-AdBlock URL for the subscription (QUrl)
-</dd><dt><i>custom</i></dt>
-<dd>
-flag indicating a custom subscription (boolean)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd><dt><i>default</i></dt>
-<dd>
-flag indicating a default subscription (boolean)
-</dd>
-</dl><a NAME="AdBlockSubscription.__loadRules" ID="AdBlockSubscription.__loadRules"></a>
-<h4>AdBlockSubscription.__loadRules</h4>
-<b>__loadRules</b>(<i></i>)
-<p>
-        Private method to load the rules of the subscription.
-</p><a NAME="AdBlockSubscription.__parseUrl" ID="AdBlockSubscription.__parseUrl"></a>
-<h4>AdBlockSubscription.__parseUrl</h4>
-<b>__parseUrl</b>(<i>url</i>)
-<p>
-        Private method to parse the AdBlock URL for the subscription.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-AdBlock URL for the subscription (QUrl)
-</dd>
-</dl><a NAME="AdBlockSubscription.__populateCache" ID="AdBlockSubscription.__populateCache"></a>
-<h4>AdBlockSubscription.__populateCache</h4>
-<b>__populateCache</b>(<i></i>)
-<p>
-        Private method to populate the various rule caches.
-</p><a NAME="AdBlockSubscription.__rulesDownloaded" ID="AdBlockSubscription.__rulesDownloaded"></a>
-<h4>AdBlockSubscription.__rulesDownloaded</h4>
-<b>__rulesDownloaded</b>(<i>reply</i>)
-<p>
-        Private slot to deal with the downloaded rules.
-</p><dl>
-<dt><i>reply</i> (QNetworkReply)</dt>
-<dd>
-reference to the network reply
-</dd>
-</dl><a NAME="AdBlockSubscription.__validateCheckSum" ID="AdBlockSubscription.__validateCheckSum"></a>
-<h4>AdBlockSubscription.__validateCheckSum</h4>
-<b>__validateCheckSum</b>(<i>fileName</i>)
-<p>
-        Private method to check the subscription file's checksum.
-</p><dl>
-<dt><i>fileName</i></dt>
-<dd>
-name of the file containing the subscription (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a valid file (boolean). A file is considered
-            valid, if the checksum is OK or the file does not contain a
-            checksum (i.e. cannot be checked).
-</dd>
-</dl><a NAME="AdBlockSubscription.adBlockDisabledForUrl" ID="AdBlockSubscription.adBlockDisabledForUrl"></a>
-<h4>AdBlockSubscription.adBlockDisabledForUrl</h4>
-<b>adBlockDisabledForUrl</b>(<i>url</i>)
-<p>
-        Public method to check, if AdBlock is disabled for the given URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to check (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating disabled state (boolean)
-</dd>
-</dl><a NAME="AdBlockSubscription.addRule" ID="AdBlockSubscription.addRule"></a>
-<h4>AdBlockSubscription.addRule</h4>
-<b>addRule</b>(<i>rule</i>)
-<p>
-        Public method to add a rule.
-</p><dl>
-<dt><i>rule</i></dt>
-<dd>
-reference to the rule to add (AdBlockRule)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-offset of the rule (integer)
-</dd>
-</dl><a NAME="AdBlockSubscription.allRules" ID="AdBlockSubscription.allRules"></a>
-<h4>AdBlockSubscription.allRules</h4>
-<b>allRules</b>(<i></i>)
-<p>
-        Public method to get the list of rules.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of rules (list of AdBlockRule)
-</dd>
-</dl><a NAME="AdBlockSubscription.canBeRemoved" ID="AdBlockSubscription.canBeRemoved"></a>
-<h4>AdBlockSubscription.canBeRemoved</h4>
-<b>canBeRemoved</b>(<i></i>)
-<p>
-        Public method to check, if the subscription can be removed.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating removal is allowed (boolean)
-</dd>
-</dl><a NAME="AdBlockSubscription.canEditRules" ID="AdBlockSubscription.canEditRules"></a>
-<h4>AdBlockSubscription.canEditRules</h4>
-<b>canEditRules</b>(<i></i>)
-<p>
-        Public method to check, if rules can be edited.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating rules may be edited (boolean)
-</dd>
-</dl><a NAME="AdBlockSubscription.checkForUpdate" ID="AdBlockSubscription.checkForUpdate"></a>
-<h4>AdBlockSubscription.checkForUpdate</h4>
-<b>checkForUpdate</b>(<i></i>)
-<p>
-        Public method to check for an update.
-</p><a NAME="AdBlockSubscription.elemHideDisabledForUrl" ID="AdBlockSubscription.elemHideDisabledForUrl"></a>
-<h4>AdBlockSubscription.elemHideDisabledForUrl</h4>
-<b>elemHideDisabledForUrl</b>(<i>url</i>)
-<p>
-        Public method to check, if element hiding is disabled for the given
-        URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to check (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating disabled state (boolean)
-</dd>
-</dl><a NAME="AdBlockSubscription.elementHidingRules" ID="AdBlockSubscription.elementHidingRules"></a>
-<h4>AdBlockSubscription.elementHidingRules</h4>
-<b>elementHidingRules</b>(<i></i>)
-<p>
-        Public method to get the element hiding rules.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-element hiding rules (string)
-</dd>
-</dl><a NAME="AdBlockSubscription.elementHidingRulesForDomain" ID="AdBlockSubscription.elementHidingRulesForDomain"></a>
-<h4>AdBlockSubscription.elementHidingRulesForDomain</h4>
-<b>elementHidingRulesForDomain</b>(<i>domain</i>)
-<p>
-        Public method to get the element hiding rules for the given domain.
-</p><dl>
-<dt><i>domain</i></dt>
-<dd>
-domain name (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-element hiding rules (string)
-</dd>
-</dl><a NAME="AdBlockSubscription.isEnabled" ID="AdBlockSubscription.isEnabled"></a>
-<h4>AdBlockSubscription.isEnabled</h4>
-<b>isEnabled</b>(<i></i>)
-<p>
-        Public method to check, if the subscription is enabled.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the enabled status (boolean)
-</dd>
-</dl><a NAME="AdBlockSubscription.lastUpdate" ID="AdBlockSubscription.lastUpdate"></a>
-<h4>AdBlockSubscription.lastUpdate</h4>
-<b>lastUpdate</b>(<i></i>)
-<p>
-        Public method to get the date and time of the last update.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-date and time of the last update (QDateTime)
-</dd>
-</dl><a NAME="AdBlockSubscription.location" ID="AdBlockSubscription.location"></a>
-<h4>AdBlockSubscription.location</h4>
-<b>location</b>(<i></i>)
-<p>
-        Public method to get the subscription location.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-URL of the subscription location (QUrl)
-</dd>
-</dl><a NAME="AdBlockSubscription.match" ID="AdBlockSubscription.match"></a>
-<h4>AdBlockSubscription.match</h4>
-<b>match</b>(<i>req, urlDomain, urlString</i>)
-<p>
-        Public method to check the subscription for a matching rule.
-</p><dl>
-<dt><i>req</i></dt>
-<dd>
-reference to the network request (QNetworkRequest)
-</dd><dt><i>urlDomain</i></dt>
-<dd>
-domain of the URL (string)
-</dd><dt><i>urlString</i></dt>
-<dd>
-URL (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the rule object or None (AdBlockRule)
-</dd>
-</dl><a NAME="AdBlockSubscription.removeRule" ID="AdBlockSubscription.removeRule"></a>
-<h4>AdBlockSubscription.removeRule</h4>
-<b>removeRule</b>(<i>offset</i>)
-<p>
-        Public method to remove a rule given the offset.
-</p><dl>
-<dt><i>offset</i></dt>
-<dd>
-offset of the rule to remove (integer)
-</dd>
-</dl><a NAME="AdBlockSubscription.replaceRule" ID="AdBlockSubscription.replaceRule"></a>
-<h4>AdBlockSubscription.replaceRule</h4>
-<b>replaceRule</b>(<i>rule, offset</i>)
-<p>
-        Public method to replace a rule given the offset.
-</p><dl>
-<dt><i>rule</i></dt>
-<dd>
-reference to the rule to set (AdBlockRule)
-</dd><dt><i>offset</i></dt>
-<dd>
-offset of the rule to remove (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested rule (AdBlockRule)
-</dd>
-</dl><a NAME="AdBlockSubscription.requiresLocation" ID="AdBlockSubscription.requiresLocation"></a>
-<h4>AdBlockSubscription.requiresLocation</h4>
-<b>requiresLocation</b>(<i></i>)
-<p>
-        Public method to get the location of a required subscription.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-location of a required subscription (string)
-</dd>
-</dl><a NAME="AdBlockSubscription.rule" ID="AdBlockSubscription.rule"></a>
-<h4>AdBlockSubscription.rule</h4>
-<b>rule</b>(<i>offset</i>)
-<p>
-        Public method to get a specific rule.
-</p><dl>
-<dt><i>offset</i></dt>
-<dd>
-offset of the rule (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested rule (AdBlockRule)
-</dd>
-</dl><a NAME="AdBlockSubscription.rulesFileName" ID="AdBlockSubscription.rulesFileName"></a>
-<h4>AdBlockSubscription.rulesFileName</h4>
-<b>rulesFileName</b>(<i></i>)
-<p>
-        Public method to get the name of the rules file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-name of the rules file (string)
-</dd>
-</dl><a NAME="AdBlockSubscription.saveRules" ID="AdBlockSubscription.saveRules"></a>
-<h4>AdBlockSubscription.saveRules</h4>
-<b>saveRules</b>(<i></i>)
-<p>
-        Public method to save the subscription rules.
-</p><a NAME="AdBlockSubscription.setEnabled" ID="AdBlockSubscription.setEnabled"></a>
-<h4>AdBlockSubscription.setEnabled</h4>
-<b>setEnabled</b>(<i>enabled</i>)
-<p>
-        Public method to set the enabled status.
-</p><dl>
-<dt><i>enabled</i></dt>
-<dd>
-flag indicating the enabled status (boolean)
-</dd>
-</dl><a NAME="AdBlockSubscription.setLocation" ID="AdBlockSubscription.setLocation"></a>
-<h4>AdBlockSubscription.setLocation</h4>
-<b>setLocation</b>(<i>url</i>)
-<p>
-        Public method to set the subscription location.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the subscription location (QUrl)
-</dd>
-</dl><a NAME="AdBlockSubscription.setRuleEnabled" ID="AdBlockSubscription.setRuleEnabled"></a>
-<h4>AdBlockSubscription.setRuleEnabled</h4>
-<b>setRuleEnabled</b>(<i>offset, enabled</i>)
-<p>
-        Public method to enable a specific rule.
-</p><dl>
-<dt><i>offset</i></dt>
-<dd>
-offset of the rule (integer)
-</dd><dt><i>enabled</i></dt>
-<dd>
-new enabled state (boolean)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the changed rule (AdBlockRule)
-</dd>
-</dl><a NAME="AdBlockSubscription.setTitle" ID="AdBlockSubscription.setTitle"></a>
-<h4>AdBlockSubscription.setTitle</h4>
-<b>setTitle</b>(<i>title</i>)
-<p>
-        Public method to set the subscription title.
-</p><dl>
-<dt><i>title</i></dt>
-<dd>
-subscription title (string)
-</dd>
-</dl><a NAME="AdBlockSubscription.title" ID="AdBlockSubscription.title"></a>
-<h4>AdBlockSubscription.title</h4>
-<b>title</b>(<i></i>)
-<p>
-        Public method to get the subscription title.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-subscription title (string)
-</dd>
-</dl><a NAME="AdBlockSubscription.updateNow" ID="AdBlockSubscription.updateNow"></a>
-<h4>AdBlockSubscription.updateNow</h4>
-<b>updateNow</b>(<i></i>)
-<p>
-        Public method to update the subscription immediately.
-</p><a NAME="AdBlockSubscription.url" ID="AdBlockSubscription.url"></a>
-<h4>AdBlockSubscription.url</h4>
-<b>url</b>(<i></i>)
-<p>
-        Public method to generate the URL for this subscription.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-AdBlock URL for the subscription (QUrl)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.AdBlock.AdBlockTreeWidget</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.AdBlock.AdBlockTreeWidget</h1>
-<p>
-Module implementing a tree widget for the AdBlock configuration dialog.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#AdBlockTreeWidget">AdBlockTreeWidget</a></td>
-<td>Class implementing a tree widget for the AdBlock configuration dialog.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="AdBlockTreeWidget" ID="AdBlockTreeWidget"></a>
-<h2>AdBlockTreeWidget</h2>
-<p>
-    Class implementing a tree widget for the AdBlock configuration dialog.
-</p>
-<h3>Derived from</h3>
-E5TreeWidget
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AdBlockTreeWidget.__init__">AdBlockTreeWidget</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#AdBlockTreeWidget.__adjustItemFeatures">__adjustItemFeatures</a></td>
-<td>Private method to adjust an item.</td>
-</tr><tr>
-<td><a href="#AdBlockTreeWidget.__contextMenuRequested">__contextMenuRequested</a></td>
-<td>Private slot to show the context menu.</td>
-</tr><tr>
-<td><a href="#AdBlockTreeWidget.__copyFilter">__copyFilter</a></td>
-<td>Private slot to copy the current filter to the clipboard.</td>
-</tr><tr>
-<td><a href="#AdBlockTreeWidget.__itemChanged">__itemChanged</a></td>
-<td>Private slot to handle the change of an item.</td>
-</tr><tr>
-<td><a href="#AdBlockTreeWidget.__subscriptionChanged">__subscriptionChanged</a></td>
-<td>Private slot handling a subscription change.</td>
-</tr><tr>
-<td><a href="#AdBlockTreeWidget.addRule">addRule</a></td>
-<td>Public slot to add a new rule.</td>
-</tr><tr>
-<td><a href="#AdBlockTreeWidget.keyPressEvent">keyPressEvent</a></td>
-<td>Protected method handling key presses.</td>
-</tr><tr>
-<td><a href="#AdBlockTreeWidget.refresh">refresh</a></td>
-<td>Public method to refresh the tree.</td>
-</tr><tr>
-<td><a href="#AdBlockTreeWidget.removeRule">removeRule</a></td>
-<td>Public slot to remove the current rule.</td>
-</tr><tr>
-<td><a href="#AdBlockTreeWidget.showRule">showRule</a></td>
-<td>Public method to highlight the given rule.</td>
-</tr><tr>
-<td><a href="#AdBlockTreeWidget.subscription">subscription</a></td>
-<td>Public method to get a reference to the subscription.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AdBlockTreeWidget.__init__" ID="AdBlockTreeWidget.__init__"></a>
-<h4>AdBlockTreeWidget (Constructor)</h4>
-<b>AdBlockTreeWidget</b>(<i>subscription, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>subscription</i></dt>
-<dd>
-reference to the subscription (AdBlockSubscription)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="AdBlockTreeWidget.__adjustItemFeatures" ID="AdBlockTreeWidget.__adjustItemFeatures"></a>
-<h4>AdBlockTreeWidget.__adjustItemFeatures</h4>
-<b>__adjustItemFeatures</b>(<i>itm, rule</i>)
-<p>
-        Private method to adjust an item.
-</p><dl>
-<dt><i>itm</i></dt>
-<dd>
-item to be adjusted (QTreeWidgetItem)
-</dd><dt><i>rule</i></dt>
-<dd>
-rule for the adjustment (AdBlockRule)
-</dd>
-</dl><a NAME="AdBlockTreeWidget.__contextMenuRequested" ID="AdBlockTreeWidget.__contextMenuRequested"></a>
-<h4>AdBlockTreeWidget.__contextMenuRequested</h4>
-<b>__contextMenuRequested</b>(<i>pos</i>)
-<p>
-        Private slot to show the context menu.
-</p><dl>
-<dt><i>pos</i></dt>
-<dd>
-position for the menu (QPoint)
-</dd>
-</dl><a NAME="AdBlockTreeWidget.__copyFilter" ID="AdBlockTreeWidget.__copyFilter"></a>
-<h4>AdBlockTreeWidget.__copyFilter</h4>
-<b>__copyFilter</b>(<i></i>)
-<p>
-        Private slot to copy the current filter to the clipboard.
-</p><a NAME="AdBlockTreeWidget.__itemChanged" ID="AdBlockTreeWidget.__itemChanged"></a>
-<h4>AdBlockTreeWidget.__itemChanged</h4>
-<b>__itemChanged</b>(<i>itm</i>)
-<p>
-        Private slot to handle the change of an item.
-</p><dl>
-<dt><i>itm</i></dt>
-<dd>
-changed item (QTreeWidgetItem)
-</dd>
-</dl><a NAME="AdBlockTreeWidget.__subscriptionChanged" ID="AdBlockTreeWidget.__subscriptionChanged"></a>
-<h4>AdBlockTreeWidget.__subscriptionChanged</h4>
-<b>__subscriptionChanged</b>(<i></i>)
-<p>
-        Private slot handling a subscription change.
-</p><a NAME="AdBlockTreeWidget.addRule" ID="AdBlockTreeWidget.addRule"></a>
-<h4>AdBlockTreeWidget.addRule</h4>
-<b>addRule</b>(<i>filterRule=""</i>)
-<p>
-        Public slot to add a new rule.
-</p><dl>
-<dt><i>filterRule</i></dt>
-<dd>
-filter to be added (string)
-</dd>
-</dl><a NAME="AdBlockTreeWidget.keyPressEvent" ID="AdBlockTreeWidget.keyPressEvent"></a>
-<h4>AdBlockTreeWidget.keyPressEvent</h4>
-<b>keyPressEvent</b>(<i>evt</i>)
-<p>
-        Protected method handling key presses.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-key press event (QKeyEvent)
-</dd>
-</dl><a NAME="AdBlockTreeWidget.refresh" ID="AdBlockTreeWidget.refresh"></a>
-<h4>AdBlockTreeWidget.refresh</h4>
-<b>refresh</b>(<i></i>)
-<p>
-        Public method to refresh the tree.
-</p><a NAME="AdBlockTreeWidget.removeRule" ID="AdBlockTreeWidget.removeRule"></a>
-<h4>AdBlockTreeWidget.removeRule</h4>
-<b>removeRule</b>(<i></i>)
-<p>
-        Public slot to remove the current rule.
-</p><a NAME="AdBlockTreeWidget.showRule" ID="AdBlockTreeWidget.showRule"></a>
-<h4>AdBlockTreeWidget.showRule</h4>
-<b>showRule</b>(<i>rule</i>)
-<p>
-        Public method to highlight the given rule.
-</p><dl>
-<dt><i>rule</i></dt>
-<dd>
-AdBlock rule to be shown (AdBlockRule)
-</dd>
-</dl><a NAME="AdBlockTreeWidget.subscription" ID="AdBlockTreeWidget.subscription"></a>
-<h4>AdBlockTreeWidget.subscription</h4>
-<b>subscription</b>(<i></i>)
-<p>
-        Public method to get a reference to the subscription.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the subscription (AdBlockSubscription)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,356 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.AddBookmarkDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.AddBookmarkDialog</h1>
-<p>
-Module implementing a dialog to add a bookmark or a bookmark folder.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#AddBookmarkDialog">AddBookmarkDialog</a></td>
-<td>Class implementing a dialog to add a bookmark or a bookmark folder.</td>
-</tr><tr>
-<td><a href="#AddBookmarkProxyModel">AddBookmarkProxyModel</a></td>
-<td>Class implementing a proxy model used by the AddBookmarkDialog dialog.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="AddBookmarkDialog" ID="AddBookmarkDialog"></a>
-<h2>AddBookmarkDialog</h2>
-<p>
-    Class implementing a dialog to add a bookmark or a bookmark folder.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_AddBookmarkDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AddBookmarkDialog.__init__">AddBookmarkDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#AddBookmarkDialog.accept">accept</a></td>
-<td>Public slot handling the acceptance of the dialog.</td>
-</tr><tr>
-<td><a href="#AddBookmarkDialog.addedNode">addedNode</a></td>
-<td>Public method to get a reference to the added bookmark node.</td>
-</tr><tr>
-<td><a href="#AddBookmarkDialog.currentIndex">currentIndex</a></td>
-<td>Public method to get the current index.</td>
-</tr><tr>
-<td><a href="#AddBookmarkDialog.description">description</a></td>
-<td>Public method to get the description of the bookmark.</td>
-</tr><tr>
-<td><a href="#AddBookmarkDialog.isFolder">isFolder</a></td>
-<td>Public method to test, if the dialog is in "Add Folder" mode.</td>
-</tr><tr>
-<td><a href="#AddBookmarkDialog.setCurrentIndex">setCurrentIndex</a></td>
-<td>Public method to set the current index.</td>
-</tr><tr>
-<td><a href="#AddBookmarkDialog.setDescription">setDescription</a></td>
-<td>Public method to set the description of the new bookmark.</td>
-</tr><tr>
-<td><a href="#AddBookmarkDialog.setFolder">setFolder</a></td>
-<td>Public method to set the dialog to "Add Folder" mode.</td>
-</tr><tr>
-<td><a href="#AddBookmarkDialog.setTitle">setTitle</a></td>
-<td>Public method to set the title of the new bookmark.</td>
-</tr><tr>
-<td><a href="#AddBookmarkDialog.setUrl">setUrl</a></td>
-<td>Public slot to set the URL of the new bookmark.</td>
-</tr><tr>
-<td><a href="#AddBookmarkDialog.title">title</a></td>
-<td>Public method to get the title of the bookmark.</td>
-</tr><tr>
-<td><a href="#AddBookmarkDialog.url">url</a></td>
-<td>Public method to get the URL of the bookmark.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AddBookmarkDialog.__init__" ID="AddBookmarkDialog.__init__"></a>
-<h4>AddBookmarkDialog (Constructor)</h4>
-<b>AddBookmarkDialog</b>(<i>parent=None, bookmarksManager=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd><dt><i>bookmarksManager</i></dt>
-<dd>
-reference to the bookmarks manager
-            object (BookmarksManager)
-</dd>
-</dl><a NAME="AddBookmarkDialog.accept" ID="AddBookmarkDialog.accept"></a>
-<h4>AddBookmarkDialog.accept</h4>
-<b>accept</b>(<i></i>)
-<p>
-        Public slot handling the acceptance of the dialog.
-</p><a NAME="AddBookmarkDialog.addedNode" ID="AddBookmarkDialog.addedNode"></a>
-<h4>AddBookmarkDialog.addedNode</h4>
-<b>addedNode</b>(<i></i>)
-<p>
-        Public method to get a reference to the added bookmark node.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the added bookmark node (BookmarkNode)
-</dd>
-</dl><a NAME="AddBookmarkDialog.currentIndex" ID="AddBookmarkDialog.currentIndex"></a>
-<h4>AddBookmarkDialog.currentIndex</h4>
-<b>currentIndex</b>(<i></i>)
-<p>
-        Public method to get the current index.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-current index (QModelIndex)
-</dd>
-</dl><a NAME="AddBookmarkDialog.description" ID="AddBookmarkDialog.description"></a>
-<h4>AddBookmarkDialog.description</h4>
-<b>description</b>(<i></i>)
-<p>
-        Public method to get the description of the bookmark.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-description of the bookamrk (string)
-</dd>
-</dl><a NAME="AddBookmarkDialog.isFolder" ID="AddBookmarkDialog.isFolder"></a>
-<h4>AddBookmarkDialog.isFolder</h4>
-<b>isFolder</b>(<i></i>)
-<p>
-        Public method to test, if the dialog is in "Add Folder" mode.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating "Add Folder" mode (boolean)
-</dd>
-</dl><a NAME="AddBookmarkDialog.setCurrentIndex" ID="AddBookmarkDialog.setCurrentIndex"></a>
-<h4>AddBookmarkDialog.setCurrentIndex</h4>
-<b>setCurrentIndex</b>(<i>idx</i>)
-<p>
-        Public method to set the current index.
-</p><dl>
-<dt><i>idx</i></dt>
-<dd>
-current index to be set (QModelIndex)
-</dd>
-</dl><a NAME="AddBookmarkDialog.setDescription" ID="AddBookmarkDialog.setDescription"></a>
-<h4>AddBookmarkDialog.setDescription</h4>
-<b>setDescription</b>(<i>description</i>)
-<p>
-        Public method to set the description of the new bookmark.
-</p><dl>
-<dt><i>description</i></dt>
-<dd>
-description of the bookamrk (string)
-</dd>
-</dl><a NAME="AddBookmarkDialog.setFolder" ID="AddBookmarkDialog.setFolder"></a>
-<h4>AddBookmarkDialog.setFolder</h4>
-<b>setFolder</b>(<i>folder</i>)
-<p>
-        Public method to set the dialog to "Add Folder" mode.
-</p><dl>
-<dt><i>folder</i></dt>
-<dd>
-flag indicating "Add Folder" mode (boolean)
-</dd>
-</dl><a NAME="AddBookmarkDialog.setTitle" ID="AddBookmarkDialog.setTitle"></a>
-<h4>AddBookmarkDialog.setTitle</h4>
-<b>setTitle</b>(<i>title</i>)
-<p>
-        Public method to set the title of the new bookmark.
-</p><dl>
-<dt><i>title</i></dt>
-<dd>
-title of the bookmark (string)
-</dd>
-</dl><a NAME="AddBookmarkDialog.setUrl" ID="AddBookmarkDialog.setUrl"></a>
-<h4>AddBookmarkDialog.setUrl</h4>
-<b>setUrl</b>(<i>url</i>)
-<p>
-        Public slot to set the URL of the new bookmark.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the bookmark (string)
-</dd>
-</dl><a NAME="AddBookmarkDialog.title" ID="AddBookmarkDialog.title"></a>
-<h4>AddBookmarkDialog.title</h4>
-<b>title</b>(<i></i>)
-<p>
-        Public method to get the title of the bookmark.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-title of the bookmark (string)
-</dd>
-</dl><a NAME="AddBookmarkDialog.url" ID="AddBookmarkDialog.url"></a>
-<h4>AddBookmarkDialog.url</h4>
-<b>url</b>(<i></i>)
-<p>
-        Public method to get the URL of the bookmark.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-URL of the bookmark (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="AddBookmarkProxyModel" ID="AddBookmarkProxyModel"></a>
-<h2>AddBookmarkProxyModel</h2>
-<p>
-    Class implementing a proxy model used by the AddBookmarkDialog dialog.
-</p>
-<h3>Derived from</h3>
-QSortFilterProxyModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AddBookmarkProxyModel.__init__">AddBookmarkProxyModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#AddBookmarkProxyModel.columnCount">columnCount</a></td>
-<td>Public method to return the number of columns.</td>
-</tr><tr>
-<td><a href="#AddBookmarkProxyModel.filterAcceptsColumn">filterAcceptsColumn</a></td>
-<td>Public method to determine, if the column is acceptable.</td>
-</tr><tr>
-<td><a href="#AddBookmarkProxyModel.filterAcceptsRow">filterAcceptsRow</a></td>
-<td>Public method to determine, if the row is acceptable.</td>
-</tr><tr>
-<td><a href="#AddBookmarkProxyModel.hasChildren">hasChildren</a></td>
-<td>Public method to check, if a parent node has some children.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AddBookmarkProxyModel.__init__" ID="AddBookmarkProxyModel.__init__"></a>
-<h4>AddBookmarkProxyModel (Constructor)</h4>
-<b>AddBookmarkProxyModel</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="AddBookmarkProxyModel.columnCount" ID="AddBookmarkProxyModel.columnCount"></a>
-<h4>AddBookmarkProxyModel.columnCount</h4>
-<b>columnCount</b>(<i>parent</i>)
-<p>
-        Public method to return the number of columns.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of the parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl><a NAME="AddBookmarkProxyModel.filterAcceptsColumn" ID="AddBookmarkProxyModel.filterAcceptsColumn"></a>
-<h4>AddBookmarkProxyModel.filterAcceptsColumn</h4>
-<b>filterAcceptsColumn</b>(<i>sourceColumn, sourceParent</i>)
-<p>
-        Public method to determine, if the column is acceptable.
-</p><dl>
-<dt><i>sourceColumn</i></dt>
-<dd>
-column number in the source model (integer)
-</dd><dt><i>sourceParent</i></dt>
-<dd>
-index of the source item (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating acceptance (boolean)
-</dd>
-</dl><a NAME="AddBookmarkProxyModel.filterAcceptsRow" ID="AddBookmarkProxyModel.filterAcceptsRow"></a>
-<h4>AddBookmarkProxyModel.filterAcceptsRow</h4>
-<b>filterAcceptsRow</b>(<i>sourceRow, sourceParent</i>)
-<p>
-        Public method to determine, if the row is acceptable.
-</p><dl>
-<dt><i>sourceRow</i></dt>
-<dd>
-row number in the source model (integer)
-</dd><dt><i>sourceParent</i></dt>
-<dd>
-index of the source item (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating acceptance (boolean)
-</dd>
-</dl><a NAME="AddBookmarkProxyModel.hasChildren" ID="AddBookmarkProxyModel.hasChildren"></a>
-<h4>AddBookmarkProxyModel.hasChildren</h4>
-<b>hasChildren</b>(<i>parent=None</i>)
-<p>
-        Public method to check, if a parent node has some children.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of the parent node (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the presence of children (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarkNode.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarkNode</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarkNode</h1>
-<p>
-Module implementing the bookmark node.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#BookmarkNode">BookmarkNode</a></td>
-<td>Class implementing the bookmark node type.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="BookmarkNode" ID="BookmarkNode"></a>
-<h2>BookmarkNode</h2>
-<p>
-    Class implementing the bookmark node type.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>Bookmark</td></tr><tr><td>Folder</td></tr><tr><td>Root</td></tr><tr><td>Separator</td></tr><tr><td>TsAdded</td></tr><tr><td>TsModified</td></tr><tr><td>TsVisited</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#BookmarkNode.__init__">BookmarkNode</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#BookmarkNode.add">add</a></td>
-<td>Public method to add/insert a child node.</td>
-</tr><tr>
-<td><a href="#BookmarkNode.children">children</a></td>
-<td>Public method to get the list of child nodes.</td>
-</tr><tr>
-<td><a href="#BookmarkNode.parent">parent</a></td>
-<td>Public method to get a reference to the parent node.</td>
-</tr><tr>
-<td><a href="#BookmarkNode.remove">remove</a></td>
-<td>Public method to remove a child node.</td>
-</tr><tr>
-<td><a href="#BookmarkNode.setType">setType</a></td>
-<td>Public method to set the bookmark's type.</td>
-</tr><tr>
-<td><a href="#BookmarkNode.type">type</a></td>
-<td>Public method to get the bookmark's type.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="BookmarkNode.__init__" ID="BookmarkNode.__init__"></a>
-<h4>BookmarkNode (Constructor)</h4>
-<b>BookmarkNode</b>(<i>type_=Root, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>type_</i></dt>
-<dd>
-type of the bookmark node (BookmarkNode.Type)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent node (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarkNode.add" ID="BookmarkNode.add"></a>
-<h4>BookmarkNode.add</h4>
-<b>add</b>(<i>child, offset=-1</i>)
-<p>
-        Public method to add/insert a child node.
-</p><dl>
-<dt><i>child</i></dt>
-<dd>
-reference to the node to add (BookmarkNode)
-</dd><dt><i>offset</i></dt>
-<dd>
-position where to insert child (integer, -1 = append)
-</dd>
-</dl><a NAME="BookmarkNode.children" ID="BookmarkNode.children"></a>
-<h4>BookmarkNode.children</h4>
-<b>children</b>(<i></i>)
-<p>
-        Public method to get the list of child nodes.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of all child nodes (list of BookmarkNode)
-</dd>
-</dl><a NAME="BookmarkNode.parent" ID="BookmarkNode.parent"></a>
-<h4>BookmarkNode.parent</h4>
-<b>parent</b>(<i></i>)
-<p>
-        Public method to get a reference to the parent node.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the parent node (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarkNode.remove" ID="BookmarkNode.remove"></a>
-<h4>BookmarkNode.remove</h4>
-<b>remove</b>(<i>child</i>)
-<p>
-        Public method to remove a child node.
-</p><dl>
-<dt><i>child</i></dt>
-<dd>
-reference to the child node (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarkNode.setType" ID="BookmarkNode.setType"></a>
-<h4>BookmarkNode.setType</h4>
-<b>setType</b>(<i>type_</i>)
-<p>
-        Public method to set the bookmark's type.
-</p><dl>
-<dt><i>type_</i></dt>
-<dd>
-type of the bookmark node (BookmarkNode.Type)
-</dd>
-</dl><a NAME="BookmarkNode.type" ID="BookmarkNode.type"></a>
-<h4>BookmarkNode.type</h4>
-<b>type</b>(<i></i>)
-<p>
-        Public method to get the bookmark's type.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-bookmark type (BookmarkNode.Type)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarkPropertiesDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarkPropertiesDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarkPropertiesDialog</h1>
-<p>
-Module implementing a dialog to show and edit bookmark properties.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#BookmarkPropertiesDialog">BookmarkPropertiesDialog</a></td>
-<td>Class implementing a dialog to show and edit bookmark properties.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="BookmarkPropertiesDialog" ID="BookmarkPropertiesDialog"></a>
-<h2>BookmarkPropertiesDialog</h2>
-<p>
-    Class implementing a dialog to show and edit bookmark properties.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_BookmarkPropertiesDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#BookmarkPropertiesDialog.__init__">BookmarkPropertiesDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#BookmarkPropertiesDialog.accept">accept</a></td>
-<td>Public slot handling the acceptance of the dialog.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="BookmarkPropertiesDialog.__init__" ID="BookmarkPropertiesDialog.__init__"></a>
-<h4>BookmarkPropertiesDialog (Constructor)</h4>
-<b>BookmarkPropertiesDialog</b>(<i>node, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the bookmark (BookmarkNode)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="BookmarkPropertiesDialog.accept" ID="BookmarkPropertiesDialog.accept"></a>
-<h4>BookmarkPropertiesDialog.accept</h4>
-<b>accept</b>(<i></i>)
-<p>
-        Public slot handling the acceptance of the dialog.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,242 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksDialog</h1>
-<p>
-Module implementing a dialog to manage bookmarks.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#BookmarksDialog">BookmarksDialog</a></td>
-<td>Class implementing a dialog to manage bookmarks.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="BookmarksDialog" ID="BookmarksDialog"></a>
-<h2>BookmarksDialog</h2>
-<p>
-    Class implementing a dialog to manage bookmarks.
-</p><h3>Signals</h3>
-<dl>
-<dt>newUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL in a new tab
-</dd><dt>openUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL in the current tab
-</dd>
-</dl>
-<h3>Derived from</h3>
-QDialog, Ui_BookmarksDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#BookmarksDialog.__init__">BookmarksDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#BookmarksDialog.__activated">__activated</a></td>
-<td>Private slot to handle the activation of an entry.</td>
-</tr><tr>
-<td><a href="#BookmarksDialog.__customContextMenuRequested">__customContextMenuRequested</a></td>
-<td>Private slot to handle the context menu request for the bookmarks tree.</td>
-</tr><tr>
-<td><a href="#BookmarksDialog.__edit">__edit</a></td>
-<td>Private slot to edit a bookmarks properties.</td>
-</tr><tr>
-<td><a href="#BookmarksDialog.__editAddress">__editAddress</a></td>
-<td>Private slot to edit the address part of a bookmark.</td>
-</tr><tr>
-<td><a href="#BookmarksDialog.__editName">__editName</a></td>
-<td>Private slot to edit the name part of a bookmark.</td>
-</tr><tr>
-<td><a href="#BookmarksDialog.__expandNodes">__expandNodes</a></td>
-<td>Private method to expand all child nodes of a node.</td>
-</tr><tr>
-<td><a href="#BookmarksDialog.__newFolder">__newFolder</a></td>
-<td>Private slot to add a new bookmarks folder.</td>
-</tr><tr>
-<td><a href="#BookmarksDialog.__openBookmark">__openBookmark</a></td>
-<td>Private method to open a bookmark.</td>
-</tr><tr>
-<td><a href="#BookmarksDialog.__openBookmarkInCurrentTab">__openBookmarkInCurrentTab</a></td>
-<td>Private slot to open a bookmark in the current browser tab.</td>
-</tr><tr>
-<td><a href="#BookmarksDialog.__openBookmarkInNewTab">__openBookmarkInNewTab</a></td>
-<td>Private slot to open a bookmark in a new browser tab.</td>
-</tr><tr>
-<td><a href="#BookmarksDialog.__saveExpandedNodes">__saveExpandedNodes</a></td>
-<td>Private method to save the child nodes of an expanded node.</td>
-</tr><tr>
-<td><a href="#BookmarksDialog.__shutdown">__shutdown</a></td>
-<td>Private method to perform shutdown actions for the dialog.</td>
-</tr><tr>
-<td><a href="#BookmarksDialog.closeEvent">closeEvent</a></td>
-<td>Protected method to handle the closing of the dialog.</td>
-</tr><tr>
-<td><a href="#BookmarksDialog.reject">reject</a></td>
-<td>Public method called when the dialog is rejected.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="BookmarksDialog.__init__" ID="BookmarksDialog.__init__"></a>
-<h4>BookmarksDialog (Constructor)</h4>
-<b>BookmarksDialog</b>(<i>parent=None, manager=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget
-</dd><dt><i>manager</i></dt>
-<dd>
-reference to the bookmarks manager object
-            (BookmarksManager)
-</dd>
-</dl><a NAME="BookmarksDialog.__activated" ID="BookmarksDialog.__activated"></a>
-<h4>BookmarksDialog.__activated</h4>
-<b>__activated</b>(<i>idx</i>)
-<p>
-        Private slot to handle the activation of an entry.
-</p><dl>
-<dt><i>idx</i></dt>
-<dd>
-reference to the entry index (QModelIndex)
-</dd>
-</dl><a NAME="BookmarksDialog.__customContextMenuRequested" ID="BookmarksDialog.__customContextMenuRequested"></a>
-<h4>BookmarksDialog.__customContextMenuRequested</h4>
-<b>__customContextMenuRequested</b>(<i>pos</i>)
-<p>
-        Private slot to handle the context menu request for the bookmarks tree.
-</p><dl>
-<dt><i>pos</i></dt>
-<dd>
-position the context menu was requested (QPoint)
-</dd>
-</dl><a NAME="BookmarksDialog.__edit" ID="BookmarksDialog.__edit"></a>
-<h4>BookmarksDialog.__edit</h4>
-<b>__edit</b>(<i></i>)
-<p>
-        Private slot to edit a bookmarks properties.
-</p><a NAME="BookmarksDialog.__editAddress" ID="BookmarksDialog.__editAddress"></a>
-<h4>BookmarksDialog.__editAddress</h4>
-<b>__editAddress</b>(<i></i>)
-<p>
-        Private slot to edit the address part of a bookmark.
-</p><a NAME="BookmarksDialog.__editName" ID="BookmarksDialog.__editName"></a>
-<h4>BookmarksDialog.__editName</h4>
-<b>__editName</b>(<i></i>)
-<p>
-        Private slot to edit the name part of a bookmark.
-</p><a NAME="BookmarksDialog.__expandNodes" ID="BookmarksDialog.__expandNodes"></a>
-<h4>BookmarksDialog.__expandNodes</h4>
-<b>__expandNodes</b>(<i>node</i>)
-<p>
-        Private method to expand all child nodes of a node.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the bookmark node to expand (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksDialog.__newFolder" ID="BookmarksDialog.__newFolder"></a>
-<h4>BookmarksDialog.__newFolder</h4>
-<b>__newFolder</b>(<i></i>)
-<p>
-        Private slot to add a new bookmarks folder.
-</p><a NAME="BookmarksDialog.__openBookmark" ID="BookmarksDialog.__openBookmark"></a>
-<h4>BookmarksDialog.__openBookmark</h4>
-<b>__openBookmark</b>(<i>newTab</i>)
-<p>
-        Private method to open a bookmark.
-</p><dl>
-<dt><i>newTab</i></dt>
-<dd>
-flag indicating to open the bookmark in a new tab
-            (boolean)
-</dd>
-</dl><a NAME="BookmarksDialog.__openBookmarkInCurrentTab" ID="BookmarksDialog.__openBookmarkInCurrentTab"></a>
-<h4>BookmarksDialog.__openBookmarkInCurrentTab</h4>
-<b>__openBookmarkInCurrentTab</b>(<i></i>)
-<p>
-        Private slot to open a bookmark in the current browser tab.
-</p><a NAME="BookmarksDialog.__openBookmarkInNewTab" ID="BookmarksDialog.__openBookmarkInNewTab"></a>
-<h4>BookmarksDialog.__openBookmarkInNewTab</h4>
-<b>__openBookmarkInNewTab</b>(<i></i>)
-<p>
-        Private slot to open a bookmark in a new browser tab.
-</p><a NAME="BookmarksDialog.__saveExpandedNodes" ID="BookmarksDialog.__saveExpandedNodes"></a>
-<h4>BookmarksDialog.__saveExpandedNodes</h4>
-<b>__saveExpandedNodes</b>(<i>parent</i>)
-<p>
-        Private method to save the child nodes of an expanded node.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of the parent node (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a change (boolean)
-</dd>
-</dl><a NAME="BookmarksDialog.__shutdown" ID="BookmarksDialog.__shutdown"></a>
-<h4>BookmarksDialog.__shutdown</h4>
-<b>__shutdown</b>(<i></i>)
-<p>
-        Private method to perform shutdown actions for the dialog.
-</p><a NAME="BookmarksDialog.closeEvent" ID="BookmarksDialog.closeEvent"></a>
-<h4>BookmarksDialog.closeEvent</h4>
-<b>closeEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle the closing of the dialog.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the event object (QCloseEvent) (ignored)
-</dd>
-</dl><a NAME="BookmarksDialog.reject" ID="BookmarksDialog.reject"></a>
-<h4>BookmarksDialog.reject</h4>
-<b>reject</b>(<i></i>)
-<p>
-        Public method called when the dialog is rejected.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImportDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksImportDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksImportDialog</h1>
-<p>
-Module implementing a dialog for importing bookmarks from other sources.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#BookmarksImportDialog">BookmarksImportDialog</a></td>
-<td>Class implementing a dialog for importing bookmarks from other sources.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="BookmarksImportDialog" ID="BookmarksImportDialog"></a>
-<h2>BookmarksImportDialog</h2>
-<p>
-    Class implementing a dialog for importing bookmarks from other sources.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_BookmarksImportDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>SourcesListIdRole</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#BookmarksImportDialog.__init__">BookmarksImportDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#BookmarksImportDialog.__enableNextButton">__enableNextButton</a></td>
-<td>Private slot to set the enabled state of the next button.</td>
-</tr><tr>
-<td><a href="#BookmarksImportDialog.getImportedBookmarks">getImportedBookmarks</a></td>
-<td>Public method to get the imported bookmarks.</td>
-</tr><tr>
-<td><a href="#BookmarksImportDialog.on_cancelButton_clicked">on_cancelButton_clicked</a></td>
-<td>Private slot documentation goes here.</td>
-</tr><tr>
-<td><a href="#BookmarksImportDialog.on_filePicker_textChanged">on_filePicker_textChanged</a></td>
-<td>Private slot handling changes of the file to import bookmarks form.</td>
-</tr><tr>
-<td><a href="#BookmarksImportDialog.on_nextButton_clicked">on_nextButton_clicked</a></td>
-<td>Private slot to switch to the next page.</td>
-</tr><tr>
-<td><a href="#BookmarksImportDialog.on_sourcesList_itemSelectionChanged">on_sourcesList_itemSelectionChanged</a></td>
-<td>Private slot to handle changes of the selection of the import source.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="BookmarksImportDialog.__init__" ID="BookmarksImportDialog.__init__"></a>
-<h4>BookmarksImportDialog (Constructor)</h4>
-<b>BookmarksImportDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="BookmarksImportDialog.__enableNextButton" ID="BookmarksImportDialog.__enableNextButton"></a>
-<h4>BookmarksImportDialog.__enableNextButton</h4>
-<b>__enableNextButton</b>(<i></i>)
-<p>
-        Private slot to set the enabled state of the next button.
-</p><a NAME="BookmarksImportDialog.getImportedBookmarks" ID="BookmarksImportDialog.getImportedBookmarks"></a>
-<h4>BookmarksImportDialog.getImportedBookmarks</h4>
-<b>getImportedBookmarks</b>(<i></i>)
-<p>
-        Public method to get the imported bookmarks.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-top level bookmark (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksImportDialog.on_cancelButton_clicked" ID="BookmarksImportDialog.on_cancelButton_clicked"></a>
-<h4>BookmarksImportDialog.on_cancelButton_clicked</h4>
-<b>on_cancelButton_clicked</b>(<i></i>)
-<p>
-        Private slot documentation goes here.
-</p><a NAME="BookmarksImportDialog.on_filePicker_textChanged" ID="BookmarksImportDialog.on_filePicker_textChanged"></a>
-<h4>BookmarksImportDialog.on_filePicker_textChanged</h4>
-<b>on_filePicker_textChanged</b>(<i>txt</i>)
-<p>
-        Private slot handling changes of the file to import bookmarks form.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-text of the line edit (string)
-</dd>
-</dl><a NAME="BookmarksImportDialog.on_nextButton_clicked" ID="BookmarksImportDialog.on_nextButton_clicked"></a>
-<h4>BookmarksImportDialog.on_nextButton_clicked</h4>
-<b>on_nextButton_clicked</b>(<i></i>)
-<p>
-        Private slot to switch to the next page.
-</p><a NAME="BookmarksImportDialog.on_sourcesList_itemSelectionChanged" ID="BookmarksImportDialog.on_sourcesList_itemSelectionChanged"></a>
-<h4>BookmarksImportDialog.on_sourcesList_itemSelectionChanged</h4>
-<b>on_sourcesList_itemSelectionChanged</b>(<i></i>)
-<p>
-        Private slot to handle changes of the selection of the import source.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter</h1>
-<p>
-Module implementing a base class for the bookmarks importers.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#BookmarksImporter">BookmarksImporter</a></td>
-<td>Class implementing the base class for the bookmarks importers.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="BookmarksImporter" ID="BookmarksImporter"></a>
-<h2>BookmarksImporter</h2>
-<p>
-    Class implementing the base class for the bookmarks importers.
-</p>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#BookmarksImporter.__init__">BookmarksImporter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#BookmarksImporter.error">error</a></td>
-<td>Public method to check for an error.</td>
-</tr><tr>
-<td><a href="#BookmarksImporter.errorString">errorString</a></td>
-<td>Public method to get the error description.</td>
-</tr><tr>
-<td><a href="#BookmarksImporter.importedBookmarks">importedBookmarks</a></td>
-<td>Public method to get the imported bookmarks.</td>
-</tr><tr>
-<td><a href="#BookmarksImporter.open">open</a></td>
-<td>Public method to open the bookmarks file.</td>
-</tr><tr>
-<td><a href="#BookmarksImporter.setPath">setPath</a></td>
-<td>Public method to set the path of the bookmarks file or directory.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="BookmarksImporter.__init__" ID="BookmarksImporter.__init__"></a>
-<h4>BookmarksImporter (Constructor)</h4>
-<b>BookmarksImporter</b>(<i>sourceId="", parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-source ID (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="BookmarksImporter.error" ID="BookmarksImporter.error"></a>
-<h4>BookmarksImporter.error</h4>
-<b>error</b>(<i></i>)
-<p>
-        Public method to check for an error.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating an error (boolean)
-</dd>
-</dl><a NAME="BookmarksImporter.errorString" ID="BookmarksImporter.errorString"></a>
-<h4>BookmarksImporter.errorString</h4>
-<b>errorString</b>(<i></i>)
-<p>
-        Public method to get the error description.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-error description (string)
-</dd>
-</dl><a NAME="BookmarksImporter.importedBookmarks" ID="BookmarksImporter.importedBookmarks"></a>
-<h4>BookmarksImporter.importedBookmarks</h4>
-<b>importedBookmarks</b>(<i></i>)
-<p>
-        Public method to get the imported bookmarks.
-</p><p>
-        It must return the imported bookmarks (BookmarkNode).
-</p><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-raised to indicate this method must
-            be implemented by a subclass
-</dd>
-</dl><a NAME="BookmarksImporter.open" ID="BookmarksImporter.open"></a>
-<h4>BookmarksImporter.open</h4>
-<b>open</b>(<i></i>)
-<p>
-        Public method to open the bookmarks file.
-</p><p>
-        It must return a flag indicating success (boolean).
-</p><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-raised to indicate this method must
-            be implemented by a subclass
-</dd>
-</dl><a NAME="BookmarksImporter.setPath" ID="BookmarksImporter.setPath"></a>
-<h4>BookmarksImporter.setPath</h4>
-<b>setPath</b>(<i>path</i>)
-<p>
-        Public method to set the path of the bookmarks file or directory.
-</p><dl>
-<dt><i>path</i></dt>
-<dd>
-bookmarks file or directory (string)
-</dd>
-</dl><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-raised to indicate this method must
-            be implemented by a subclass
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter</h1>
-<p>
-Module implementing an importer for Chrome bookmarks.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#ChromeImporter">ChromeImporter</a></td>
-<td>Class implementing the Chrome bookmarks importer.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#getImporterInfo">getImporterInfo</a></td>
-<td>Module function to get information for the given source id.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="ChromeImporter" ID="ChromeImporter"></a>
-<h2>ChromeImporter</h2>
-<p>
-    Class implementing the Chrome bookmarks importer.
-</p>
-<h3>Derived from</h3>
-BookmarksImporter
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#ChromeImporter.__init__">ChromeImporter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#ChromeImporter.__generateFolderNode">__generateFolderNode</a></td>
-<td>Private method to process a bookmarks folder.</td>
-</tr><tr>
-<td><a href="#ChromeImporter.__generateUrlNode">__generateUrlNode</a></td>
-<td>Private method to process a bookmarks node.</td>
-</tr><tr>
-<td><a href="#ChromeImporter.__processRoots">__processRoots</a></td>
-<td>Private method to process the bookmark roots.</td>
-</tr><tr>
-<td><a href="#ChromeImporter.importedBookmarks">importedBookmarks</a></td>
-<td>Public method to get the imported bookmarks.</td>
-</tr><tr>
-<td><a href="#ChromeImporter.open">open</a></td>
-<td>Public method to open the bookmarks file.</td>
-</tr><tr>
-<td><a href="#ChromeImporter.setPath">setPath</a></td>
-<td>Public method to set the path of the bookmarks file or directory.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="ChromeImporter.__init__" ID="ChromeImporter.__init__"></a>
-<h4>ChromeImporter (Constructor)</h4>
-<b>ChromeImporter</b>(<i>sourceId="", parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-source ID (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="ChromeImporter.__generateFolderNode" ID="ChromeImporter.__generateFolderNode"></a>
-<h4>ChromeImporter.__generateFolderNode</h4>
-<b>__generateFolderNode</b>(<i>data, rootNode</i>)
-<p>
-        Private method to process a bookmarks folder.
-</p><dl>
-<dt><i>data</i></dt>
-<dd>
-dictionary with the bookmarks data (dict)
-</dd><dt><i>rootNode</i></dt>
-<dd>
-node to add the bookmarks to (BookmarkNode)
-</dd>
-</dl><a NAME="ChromeImporter.__generateUrlNode" ID="ChromeImporter.__generateUrlNode"></a>
-<h4>ChromeImporter.__generateUrlNode</h4>
-<b>__generateUrlNode</b>(<i>data, rootNode</i>)
-<p>
-        Private method to process a bookmarks node.
-</p><dl>
-<dt><i>data</i></dt>
-<dd>
-dictionary with the bookmarks data (dict)
-</dd><dt><i>rootNode</i></dt>
-<dd>
-node to add the bookmarks to (BookmarkNode)
-</dd>
-</dl><a NAME="ChromeImporter.__processRoots" ID="ChromeImporter.__processRoots"></a>
-<h4>ChromeImporter.__processRoots</h4>
-<b>__processRoots</b>(<i>data, rootNode</i>)
-<p>
-        Private method to process the bookmark roots.
-</p><dl>
-<dt><i>data</i></dt>
-<dd>
-dictionary with the bookmarks data (dict)
-</dd><dt><i>rootNode</i></dt>
-<dd>
-node to add the bookmarks to (BookmarkNode)
-</dd>
-</dl><a NAME="ChromeImporter.importedBookmarks" ID="ChromeImporter.importedBookmarks"></a>
-<h4>ChromeImporter.importedBookmarks</h4>
-<b>importedBookmarks</b>(<i></i>)
-<p>
-        Public method to get the imported bookmarks.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-imported bookmarks (BookmarkNode)
-</dd>
-</dl><a NAME="ChromeImporter.open" ID="ChromeImporter.open"></a>
-<h4>ChromeImporter.open</h4>
-<b>open</b>(<i></i>)
-<p>
-        Public method to open the bookmarks file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="ChromeImporter.setPath" ID="ChromeImporter.setPath"></a>
-<h4>ChromeImporter.setPath</h4>
-<b>setPath</b>(<i>path</i>)
-<p>
-        Public method to set the path of the bookmarks file or directory.
-</p><dl>
-<dt><i>path</i></dt>
-<dd>
-bookmarks file or directory (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getImporterInfo" ID="getImporterInfo"></a>
-<h2>getImporterInfo</h2>
-<b>getImporterInfo</b>(<i>sourceId</i>)
-<p>
-    Module function to get information for the given source id.
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-id of the browser ("chrome" or "chromium")
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks file
-        (string)
-</dd>
-</dl><dl>
-<dt>Raises <b>ValueError</b>:</dt>
-<dd>
-raised to indicate an invalid browser ID
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter</h1>
-<p>
-Module implementing an importer for Firefox bookmarks.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FirefoxImporter">FirefoxImporter</a></td>
-<td>Class implementing the Chrome bookmarks importer.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#getImporterInfo">getImporterInfo</a></td>
-<td>Module function to get information for the given source id.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="FirefoxImporter" ID="FirefoxImporter"></a>
-<h2>FirefoxImporter</h2>
-<p>
-    Class implementing the Chrome bookmarks importer.
-</p>
-<h3>Derived from</h3>
-BookmarksImporter
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FirefoxImporter.__init__">FirefoxImporter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FirefoxImporter.importedBookmarks">importedBookmarks</a></td>
-<td>Public method to get the imported bookmarks.</td>
-</tr><tr>
-<td><a href="#FirefoxImporter.open">open</a></td>
-<td>Public method to open the bookmarks file.</td>
-</tr><tr>
-<td><a href="#FirefoxImporter.setPath">setPath</a></td>
-<td>Public method to set the path of the bookmarks file or directory.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FirefoxImporter.__init__" ID="FirefoxImporter.__init__"></a>
-<h4>FirefoxImporter (Constructor)</h4>
-<b>FirefoxImporter</b>(<i>sourceId="", parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-source ID (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="FirefoxImporter.importedBookmarks" ID="FirefoxImporter.importedBookmarks"></a>
-<h4>FirefoxImporter.importedBookmarks</h4>
-<b>importedBookmarks</b>(<i></i>)
-<p>
-        Public method to get the imported bookmarks.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-imported bookmarks (BookmarkNode)
-</dd>
-</dl><a NAME="FirefoxImporter.open" ID="FirefoxImporter.open"></a>
-<h4>FirefoxImporter.open</h4>
-<b>open</b>(<i></i>)
-<p>
-        Public method to open the bookmarks file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="FirefoxImporter.setPath" ID="FirefoxImporter.setPath"></a>
-<h4>FirefoxImporter.setPath</h4>
-<b>setPath</b>(<i>path</i>)
-<p>
-        Public method to set the path of the bookmarks file or directory.
-</p><dl>
-<dt><i>path</i></dt>
-<dd>
-bookmarks file or directory (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getImporterInfo" ID="getImporterInfo"></a>
-<h2>getImporterInfo</h2>
-<b>getImporterInfo</b>(<i>sourceId</i>)
-<p>
-    Module function to get information for the given source id.
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-id of the browser ("chrome" or "chromium")
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks file
-        (string)
-</dd>
-</dl><dl>
-<dt>Raises <b>ValueError</b>:</dt>
-<dd>
-raised to indicate an invalid browser ID
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter</h1>
-<p>
-Module implementing an importer for HTML bookmark files.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HtmlImporter">HtmlImporter</a></td>
-<td>Class implementing the HTML bookmarks importer.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#getImporterInfo">getImporterInfo</a></td>
-<td>Module function to get information for the given HTML source id.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="HtmlImporter" ID="HtmlImporter"></a>
-<h2>HtmlImporter</h2>
-<p>
-    Class implementing the HTML bookmarks importer.
-</p>
-<h3>Derived from</h3>
-BookmarksImporter
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HtmlImporter.__init__">HtmlImporter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HtmlImporter.importedBookmarks">importedBookmarks</a></td>
-<td>Public method to get the imported bookmarks.</td>
-</tr><tr>
-<td><a href="#HtmlImporter.open">open</a></td>
-<td>Public method to open the bookmarks file.</td>
-</tr><tr>
-<td><a href="#HtmlImporter.setPath">setPath</a></td>
-<td>Public method to set the path of the bookmarks file or directory.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HtmlImporter.__init__" ID="HtmlImporter.__init__"></a>
-<h4>HtmlImporter (Constructor)</h4>
-<b>HtmlImporter</b>(<i>sourceId="", parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-source ID (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="HtmlImporter.importedBookmarks" ID="HtmlImporter.importedBookmarks"></a>
-<h4>HtmlImporter.importedBookmarks</h4>
-<b>importedBookmarks</b>(<i></i>)
-<p>
-        Public method to get the imported bookmarks.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-imported bookmarks (BookmarkNode)
-</dd>
-</dl><a NAME="HtmlImporter.open" ID="HtmlImporter.open"></a>
-<h4>HtmlImporter.open</h4>
-<b>open</b>(<i></i>)
-<p>
-        Public method to open the bookmarks file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="HtmlImporter.setPath" ID="HtmlImporter.setPath"></a>
-<h4>HtmlImporter.setPath</h4>
-<b>setPath</b>(<i>path</i>)
-<p>
-        Public method to set the path of the bookmarks file or directory.
-</p><dl>
-<dt><i>path</i></dt>
-<dd>
-bookmarks file or directory (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getImporterInfo" ID="getImporterInfo"></a>
-<h2>getImporterInfo</h2>
-<b>getImporterInfo</b>(<i>sourceId</i>)
-<p>
-    Module function to get information for the given HTML source id.
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-id of the browser ("chrome" or "chromium")
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks file
-        (string)
-</dd>
-</dl><dl>
-<dt>Raises <b>ValueError</b>:</dt>
-<dd>
-raised to indicate an invalid browser ID
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter</h1>
-<p>
-Module implementing an importer for Internet Explorer bookmarks.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#IExplorerImporter">IExplorerImporter</a></td>
-<td>Class implementing the Chrome bookmarks importer.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#getImporterInfo">getImporterInfo</a></td>
-<td>Module function to get information for the given source id.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="IExplorerImporter" ID="IExplorerImporter"></a>
-<h2>IExplorerImporter</h2>
-<p>
-    Class implementing the Chrome bookmarks importer.
-</p>
-<h3>Derived from</h3>
-BookmarksImporter
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#IExplorerImporter.__init__">IExplorerImporter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#IExplorerImporter.importedBookmarks">importedBookmarks</a></td>
-<td>Public method to get the imported bookmarks.</td>
-</tr><tr>
-<td><a href="#IExplorerImporter.open">open</a></td>
-<td>Public method to open the bookmarks file.</td>
-</tr><tr>
-<td><a href="#IExplorerImporter.setPath">setPath</a></td>
-<td>Public method to set the path of the bookmarks file or directory.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="IExplorerImporter.__init__" ID="IExplorerImporter.__init__"></a>
-<h4>IExplorerImporter (Constructor)</h4>
-<b>IExplorerImporter</b>(<i>sourceId="", parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-source ID (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="IExplorerImporter.importedBookmarks" ID="IExplorerImporter.importedBookmarks"></a>
-<h4>IExplorerImporter.importedBookmarks</h4>
-<b>importedBookmarks</b>(<i></i>)
-<p>
-        Public method to get the imported bookmarks.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-imported bookmarks (BookmarkNode)
-</dd>
-</dl><a NAME="IExplorerImporter.open" ID="IExplorerImporter.open"></a>
-<h4>IExplorerImporter.open</h4>
-<b>open</b>(<i></i>)
-<p>
-        Public method to open the bookmarks file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="IExplorerImporter.setPath" ID="IExplorerImporter.setPath"></a>
-<h4>IExplorerImporter.setPath</h4>
-<b>setPath</b>(<i>path</i>)
-<p>
-        Public method to set the path of the bookmarks file or directory.
-</p><dl>
-<dt><i>path</i></dt>
-<dd>
-bookmarks file or directory (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getImporterInfo" ID="getImporterInfo"></a>
-<h2>getImporterInfo</h2>
-<b>getImporterInfo</b>(<i>sourceId</i>)
-<p>
-    Module function to get information for the given source id.
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-id of the browser ("chrome" or "chromium")
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks file
-        (string)
-</dd>
-</dl><dl>
-<dt>Raises <b>ValueError</b>:</dt>
-<dd>
-raised to indicate an invalid browser ID
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter</h1>
-<p>
-Module implementing an importer for Opera bookmarks.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#OperaImporter">OperaImporter</a></td>
-<td>Class implementing the Opera bookmarks importer.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#getImporterInfo">getImporterInfo</a></td>
-<td>Module function to get information for the given source id.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="OperaImporter" ID="OperaImporter"></a>
-<h2>OperaImporter</h2>
-<p>
-    Class implementing the Opera bookmarks importer.
-</p>
-<h3>Derived from</h3>
-BookmarksImporter
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#OperaImporter.__init__">OperaImporter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#OperaImporter.importedBookmarks">importedBookmarks</a></td>
-<td>Public method to get the imported bookmarks.</td>
-</tr><tr>
-<td><a href="#OperaImporter.open">open</a></td>
-<td>Public method to open the bookmarks file.</td>
-</tr><tr>
-<td><a href="#OperaImporter.setPath">setPath</a></td>
-<td>Public method to set the path of the bookmarks file or directory.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="OperaImporter.__init__" ID="OperaImporter.__init__"></a>
-<h4>OperaImporter (Constructor)</h4>
-<b>OperaImporter</b>(<i>sourceId="", parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-source ID (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="OperaImporter.importedBookmarks" ID="OperaImporter.importedBookmarks"></a>
-<h4>OperaImporter.importedBookmarks</h4>
-<b>importedBookmarks</b>(<i></i>)
-<p>
-        Public method to get the imported bookmarks.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-imported bookmarks (BookmarkNode)
-</dd>
-</dl><a NAME="OperaImporter.open" ID="OperaImporter.open"></a>
-<h4>OperaImporter.open</h4>
-<b>open</b>(<i></i>)
-<p>
-        Public method to open the bookmarks file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="OperaImporter.setPath" ID="OperaImporter.setPath"></a>
-<h4>OperaImporter.setPath</h4>
-<b>setPath</b>(<i>path</i>)
-<p>
-        Public method to set the path of the bookmarks file or directory.
-</p><dl>
-<dt><i>path</i></dt>
-<dd>
-bookmarks file or directory (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getImporterInfo" ID="getImporterInfo"></a>
-<h2>getImporterInfo</h2>
-<b>getImporterInfo</b>(<i>sourceId</i>)
-<p>
-    Module function to get information for the given source id.
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-id of the browser ("chrome" or "chromium")
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks file
-        (string)
-</dd>
-</dl><dl>
-<dt>Raises <b>ValueError</b>:</dt>
-<dd>
-raised to indicate an invalid browser ID
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter</h1>
-<p>
-Module implementing an importer for Apple Safari bookmarks.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SafariImporter">SafariImporter</a></td>
-<td>Class implementing the Apple Safari bookmarks importer.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#getImporterInfo">getImporterInfo</a></td>
-<td>Module function to get information for the given source id.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="SafariImporter" ID="SafariImporter"></a>
-<h2>SafariImporter</h2>
-<p>
-    Class implementing the Apple Safari bookmarks importer.
-</p>
-<h3>Derived from</h3>
-BookmarksImporter
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SafariImporter.__init__">SafariImporter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SafariImporter.__processChildren">__processChildren</a></td>
-<td>Private method to process the list of children.</td>
-</tr><tr>
-<td><a href="#SafariImporter.importedBookmarks">importedBookmarks</a></td>
-<td>Public method to get the imported bookmarks.</td>
-</tr><tr>
-<td><a href="#SafariImporter.open">open</a></td>
-<td>Public method to open the bookmarks file.</td>
-</tr><tr>
-<td><a href="#SafariImporter.setPath">setPath</a></td>
-<td>Public method to set the path of the bookmarks file or directory.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SafariImporter.__init__" ID="SafariImporter.__init__"></a>
-<h4>SafariImporter (Constructor)</h4>
-<b>SafariImporter</b>(<i>sourceId="", parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-source ID (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="SafariImporter.__processChildren" ID="SafariImporter.__processChildren"></a>
-<h4>SafariImporter.__processChildren</h4>
-<b>__processChildren</b>(<i>children, rootNode</i>)
-<p>
-        Private method to process the list of children.
-</p><dl>
-<dt><i>children</i></dt>
-<dd>
-list of child nodes to be processed (list of dict)
-</dd><dt><i>rootNode</i></dt>
-<dd>
-node to add the bookmarks to (BookmarkNode)
-</dd>
-</dl><a NAME="SafariImporter.importedBookmarks" ID="SafariImporter.importedBookmarks"></a>
-<h4>SafariImporter.importedBookmarks</h4>
-<b>importedBookmarks</b>(<i></i>)
-<p>
-        Public method to get the imported bookmarks.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-imported bookmarks (BookmarkNode)
-</dd>
-</dl><a NAME="SafariImporter.open" ID="SafariImporter.open"></a>
-<h4>SafariImporter.open</h4>
-<b>open</b>(<i></i>)
-<p>
-        Public method to open the bookmarks file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="SafariImporter.setPath" ID="SafariImporter.setPath"></a>
-<h4>SafariImporter.setPath</h4>
-<b>setPath</b>(<i>path</i>)
-<p>
-        Public method to set the path of the bookmarks file or directory.
-</p><dl>
-<dt><i>path</i></dt>
-<dd>
-bookmarks file or directory (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getImporterInfo" ID="getImporterInfo"></a>
-<h2>getImporterInfo</h2>
-<b>getImporterInfo</b>(<i>sourceId</i>)
-<p>
-    Module function to get information for the given source id.
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-id of the browser ("chrome" or "chromium")
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks file
-        (string)
-</dd>
-</dl><dl>
-<dt>Raises <b>ValueError</b>:</dt>
-<dd>
-raised to indicate an invalid browser ID
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter</h1>
-<p>
-Module implementing an importer for XBEL files.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#XbelImporter">XbelImporter</a></td>
-<td>Class implementing the XBEL bookmarks importer.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#getImporterInfo">getImporterInfo</a></td>
-<td>Module function to get information for the given XBEL source id.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="XbelImporter" ID="XbelImporter"></a>
-<h2>XbelImporter</h2>
-<p>
-    Class implementing the XBEL bookmarks importer.
-</p>
-<h3>Derived from</h3>
-BookmarksImporter
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#XbelImporter.__init__">XbelImporter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#XbelImporter.importedBookmarks">importedBookmarks</a></td>
-<td>Public method to get the imported bookmarks.</td>
-</tr><tr>
-<td><a href="#XbelImporter.open">open</a></td>
-<td>Public method to open the bookmarks file.</td>
-</tr><tr>
-<td><a href="#XbelImporter.setPath">setPath</a></td>
-<td>Public method to set the path of the bookmarks file or directory.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="XbelImporter.__init__" ID="XbelImporter.__init__"></a>
-<h4>XbelImporter (Constructor)</h4>
-<b>XbelImporter</b>(<i>sourceId="", parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-source ID (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="XbelImporter.importedBookmarks" ID="XbelImporter.importedBookmarks"></a>
-<h4>XbelImporter.importedBookmarks</h4>
-<b>importedBookmarks</b>(<i></i>)
-<p>
-        Public method to get the imported bookmarks.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-imported bookmarks (BookmarkNode)
-</dd>
-</dl><a NAME="XbelImporter.open" ID="XbelImporter.open"></a>
-<h4>XbelImporter.open</h4>
-<b>open</b>(<i></i>)
-<p>
-        Public method to open the bookmarks file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="XbelImporter.setPath" ID="XbelImporter.setPath"></a>
-<h4>XbelImporter.setPath</h4>
-<b>setPath</b>(<i>path</i>)
-<p>
-        Public method to set the path of the bookmarks file or directory.
-</p><dl>
-<dt><i>path</i></dt>
-<dd>
-bookmarks file or directory (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getImporterInfo" ID="getImporterInfo"></a>
-<h2>getImporterInfo</h2>
-<b>getImporterInfo</b>(<i>sourceId</i>)
-<p>
-    Module function to get information for the given XBEL source id.
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-id of the browser ("chrome" or "chromium")
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks file
-        (string)
-</dd>
-</dl><dl>
-<dt>Raises <b>ValueError</b>:</dt>
-<dd>
-raised to indicate an invalid browser ID
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksImporters.__init__.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksImporters.__init__</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksImporters.__init__</h1>
-<p>
-Package implementing bookmarks importers for various sources.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#getImporter">getImporter</a></td>
-<td>Module function to get an importer for the given source id.</td>
-</tr><tr>
-<td><a href="#getImporterInfo">getImporterInfo</a></td>
-<td>Module function to get information for the given source id.</td>
-</tr><tr>
-<td><a href="#getImporters">getImporters</a></td>
-<td>Module function to get a list of supported importers.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="getImporter" ID="getImporter"></a>
-<h2>getImporter</h2>
-<b>getImporter</b>(<i>sourceId, parent=None</i>)
-<p>
-    Module function to get an importer for the given source id.
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-source id to get an importer for (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-bookmarks importer (BookmarksImporter)
-</dd>
-</dl><dl>
-<dt>Raises <b>ValueError</b>:</dt>
-<dd>
-raised to indicate an unsupported importer
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getImporterInfo" ID="getImporterInfo"></a>
-<h2>getImporterInfo</h2>
-<b>getImporterInfo</b>(<i>sourceId</i>)
-<p>
-    Module function to get information for the given source id.
-</p><dl>
-<dt><i>sourceId</i></dt>
-<dd>
-source id to get info for (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks
-        file (string)
-</dd>
-</dl><dl>
-<dt>Raises <b>ValueError</b>:</dt>
-<dd>
-raised to indicate an unsupported importer
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getImporters" ID="getImporters"></a>
-<h2>getImporters</h2>
-<b>getImporters</b>(<i></i>)
-<p>
-    Module function to get a list of supported importers.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of tuples with an icon (QIcon), readable name (string) and
-        internal name (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,660 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksManager</h1>
-<p>
-Module implementing the bookmarks manager.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>BOOKMARKBAR</td></tr><tr><td>BOOKMARKMENU</td></tr><tr><td>StartMenu</td></tr><tr><td>StartRoot</td></tr><tr><td>StartToolBar</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#BookmarksManager">BookmarksManager</a></td>
-<td>Class implementing the bookmarks manager.</td>
-</tr><tr>
-<td><a href="#ChangeBookmarkCommand">ChangeBookmarkCommand</a></td>
-<td>Class implementing the Insert undo command.</td>
-</tr><tr>
-<td><a href="#InsertBookmarksCommand">InsertBookmarksCommand</a></td>
-<td>Class implementing the Insert undo command.</td>
-</tr><tr>
-<td><a href="#RemoveBookmarksCommand">RemoveBookmarksCommand</a></td>
-<td>Class implementing the Remove undo command.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="BookmarksManager" ID="BookmarksManager"></a>
-<h2>BookmarksManager</h2>
-<p>
-    Class implementing the bookmarks manager.
-</p><h3>Signals</h3>
-<dl>
-<dt>bookmarksReloaded()</dt>
-<dd>
-emitted after the bookmarks were reloaded
-</dd><dt>bookmarksSaved()</dt>
-<dd>
-emitted after the bookmarks were saved
-</dd><dt>entryAdded(BookmarkNode)</dt>
-<dd>
-emitted after a bookmark node has been
-        added
-</dd><dt>entryChanged(BookmarkNode)</dt>
-<dd>
-emitted after a bookmark node has been
-        changed
-</dd><dt>entryRemoved(BookmarkNode, int, BookmarkNode)</dt>
-<dd>
-emitted after a
-        bookmark node has been removed
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr>
-<td><a href="#BookmarksManager.getFileName">getFileName</a></td>
-<td>Class method to get the file name of the bookmark file.</td>
-</tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#BookmarksManager.__init__">BookmarksManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#BookmarksManager.__convertFromOldBookmarks">__convertFromOldBookmarks</a></td>
-<td>Private method to convert the old bookmarks into the new ones.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.__initialize">__initialize</a></td>
-<td>Private method to initialize some data.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.__searchBookmark">__searchBookmark</a></td>
-<td>Private method get a bookmark node for a given URL.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.__searchBookmarks">__searchBookmarks</a></td>
-<td>Private method get a list of bookmark nodes for a given URL.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.addBookmark">addBookmark</a></td>
-<td>Public method to add a bookmark.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.bookmarkForUrl">bookmarkForUrl</a></td>
-<td>Public method to get a bookmark node for a given URL.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.bookmarks">bookmarks</a></td>
-<td>Public method to get a reference to the root bookmark node.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.bookmarksForUrl">bookmarksForUrl</a></td>
-<td>Public method to get a list of bookmark nodes for a given URL.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.bookmarksModel">bookmarksModel</a></td>
-<td>Public method to get a reference to the bookmarks model.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.changeExpanded">changeExpanded</a></td>
-<td>Public method to handle a change of the expanded state.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.close">close</a></td>
-<td>Public method to close the bookmark manager.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.exportBookmarks">exportBookmarks</a></td>
-<td>Public method to export the bookmarks.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.iconChanged">iconChanged</a></td>
-<td>Public slot to update the icon image for an URL.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.importBookmarks">importBookmarks</a></td>
-<td>Public method to import bookmarks.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.load">load</a></td>
-<td>Public method to load the bookmarks.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.menu">menu</a></td>
-<td>Public method to get a reference to the bookmarks menu node.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.reload">reload</a></td>
-<td>Public method used to initiate a reloading of the bookmarks.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.removeBookmark">removeBookmark</a></td>
-<td>Public method to remove a bookmark.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.save">save</a></td>
-<td>Public method to save the bookmarks.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.setNodeChanged">setNodeChanged</a></td>
-<td>Public method to signal changes of bookmarks other than title, URL or timestamp.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.setTimestamp">setTimestamp</a></td>
-<td>Public method to set the URL of a bookmark.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.setTitle">setTitle</a></td>
-<td>Public method to set the title of a bookmark.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.setUrl">setUrl</a></td>
-<td>Public method to set the URL of a bookmark.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.toolbar">toolbar</a></td>
-<td>Public method to get a reference to the bookmarks toolbar node.</td>
-</tr><tr>
-<td><a href="#BookmarksManager.undoRedoStack">undoRedoStack</a></td>
-<td>Public method to get a reference to the undo stack.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="BookmarksManager.getFileName" ID="BookmarksManager.getFileName"></a>
-<h4>BookmarksManager.getFileName (class method)</h4>
-<b>getFileName</b>(<i></i>)
-<p>
-        Class method to get the file name of the bookmark file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-name of the bookmark file (string)
-</dd>
-</dl><a NAME="BookmarksManager.__init__" ID="BookmarksManager.__init__"></a>
-<h4>BookmarksManager (Constructor)</h4>
-<b>BookmarksManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="BookmarksManager.__convertFromOldBookmarks" ID="BookmarksManager.__convertFromOldBookmarks"></a>
-<h4>BookmarksManager.__convertFromOldBookmarks</h4>
-<b>__convertFromOldBookmarks</b>(<i></i>)
-<p>
-        Private method to convert the old bookmarks into the new ones.
-</p><a NAME="BookmarksManager.__initialize" ID="BookmarksManager.__initialize"></a>
-<h4>BookmarksManager.__initialize</h4>
-<b>__initialize</b>(<i></i>)
-<p>
-        Private method to initialize some data.
-</p><a NAME="BookmarksManager.__searchBookmark" ID="BookmarksManager.__searchBookmark"></a>
-<h4>BookmarksManager.__searchBookmark</h4>
-<b>__searchBookmark</b>(<i>url, startNode</i>)
-<p>
-        Private method get a bookmark node for a given URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the bookmark to search for (string)
-</dd><dt><i>startNode</i></dt>
-<dd>
-reference to the node to start searching
-            (BookmarkNode)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-bookmark node for the given url (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksManager.__searchBookmarks" ID="BookmarksManager.__searchBookmarks"></a>
-<h4>BookmarksManager.__searchBookmarks</h4>
-<b>__searchBookmarks</b>(<i>url, startNode</i>)
-<p>
-        Private method get a list of bookmark nodes for a given URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the bookmarks to search for (string)
-</dd><dt><i>startNode</i></dt>
-<dd>
-reference to the node to start searching
-            (BookmarkNode)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-list of bookmark nodes for the given url (list of BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksManager.addBookmark" ID="BookmarksManager.addBookmark"></a>
-<h4>BookmarksManager.addBookmark</h4>
-<b>addBookmark</b>(<i>parent, node, row=-1</i>)
-<p>
-        Public method to add a bookmark.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the node to add to (BookmarkNode)
-</dd><dt><i>node</i></dt>
-<dd>
-reference to the node to add (BookmarkNode)
-</dd><dt><i>row</i></dt>
-<dd>
-row number (integer)
-</dd>
-</dl><a NAME="BookmarksManager.bookmarkForUrl" ID="BookmarksManager.bookmarkForUrl"></a>
-<h4>BookmarksManager.bookmarkForUrl</h4>
-<b>bookmarkForUrl</b>(<i>url, start=StartRoot</i>)
-<p>
-        Public method to get a bookmark node for a given URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the bookmark to search for (QUrl or string)
-</dd><dt><i>start=</i></dt>
-<dd>
-indicator for the start of the search
-            (StartRoot, StartMenu, StartToolBar)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-bookmark node for the given url (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksManager.bookmarks" ID="BookmarksManager.bookmarks"></a>
-<h4>BookmarksManager.bookmarks</h4>
-<b>bookmarks</b>(<i></i>)
-<p>
-        Public method to get a reference to the root bookmark node.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the root bookmark node (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksManager.bookmarksForUrl" ID="BookmarksManager.bookmarksForUrl"></a>
-<h4>BookmarksManager.bookmarksForUrl</h4>
-<b>bookmarksForUrl</b>(<i>url, start=StartRoot</i>)
-<p>
-        Public method to get a list of bookmark nodes for a given URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the bookmarks to search for (QUrl or string)
-</dd><dt><i>start=</i></dt>
-<dd>
-indicator for the start of the search
-            (StartRoot, StartMenu, StartToolBar)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-list of bookmark nodes for the given url (list of BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksManager.bookmarksModel" ID="BookmarksManager.bookmarksModel"></a>
-<h4>BookmarksManager.bookmarksModel</h4>
-<b>bookmarksModel</b>(<i></i>)
-<p>
-        Public method to get a reference to the bookmarks model.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the bookmarks model (BookmarksModel)
-</dd>
-</dl><a NAME="BookmarksManager.changeExpanded" ID="BookmarksManager.changeExpanded"></a>
-<h4>BookmarksManager.changeExpanded</h4>
-<b>changeExpanded</b>(<i></i>)
-<p>
-        Public method to handle a change of the expanded state.
-</p><a NAME="BookmarksManager.close" ID="BookmarksManager.close"></a>
-<h4>BookmarksManager.close</h4>
-<b>close</b>(<i></i>)
-<p>
-        Public method to close the bookmark manager.
-</p><a NAME="BookmarksManager.exportBookmarks" ID="BookmarksManager.exportBookmarks"></a>
-<h4>BookmarksManager.exportBookmarks</h4>
-<b>exportBookmarks</b>(<i></i>)
-<p>
-        Public method to export the bookmarks.
-</p><a NAME="BookmarksManager.iconChanged" ID="BookmarksManager.iconChanged"></a>
-<h4>BookmarksManager.iconChanged</h4>
-<b>iconChanged</b>(<i>url</i>)
-<p>
-        Public slot to update the icon image for an URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the icon to update (QUrl or string)
-</dd>
-</dl><a NAME="BookmarksManager.importBookmarks" ID="BookmarksManager.importBookmarks"></a>
-<h4>BookmarksManager.importBookmarks</h4>
-<b>importBookmarks</b>(<i></i>)
-<p>
-        Public method to import bookmarks.
-</p><a NAME="BookmarksManager.load" ID="BookmarksManager.load"></a>
-<h4>BookmarksManager.load</h4>
-<b>load</b>(<i></i>)
-<p>
-        Public method to load the bookmarks.
-</p><dl>
-<dt>Raises <b>RuntimeError</b>:</dt>
-<dd>
-raised to indicate an error loading the
-            bookmarks
-</dd>
-</dl><a NAME="BookmarksManager.menu" ID="BookmarksManager.menu"></a>
-<h4>BookmarksManager.menu</h4>
-<b>menu</b>(<i></i>)
-<p>
-        Public method to get a reference to the bookmarks menu node.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the bookmarks menu node (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksManager.reload" ID="BookmarksManager.reload"></a>
-<h4>BookmarksManager.reload</h4>
-<b>reload</b>(<i></i>)
-<p>
-        Public method used to initiate a reloading of the bookmarks.
-</p><a NAME="BookmarksManager.removeBookmark" ID="BookmarksManager.removeBookmark"></a>
-<h4>BookmarksManager.removeBookmark</h4>
-<b>removeBookmark</b>(<i>node</i>)
-<p>
-        Public method to remove a bookmark.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the node to be removed (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksManager.save" ID="BookmarksManager.save"></a>
-<h4>BookmarksManager.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public method to save the bookmarks.
-</p><a NAME="BookmarksManager.setNodeChanged" ID="BookmarksManager.setNodeChanged"></a>
-<h4>BookmarksManager.setNodeChanged</h4>
-<b>setNodeChanged</b>(<i>node</i>)
-<p>
-        Public method to signal changes of bookmarks other than title, URL
-        or timestamp.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the bookmark (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksManager.setTimestamp" ID="BookmarksManager.setTimestamp"></a>
-<h4>BookmarksManager.setTimestamp</h4>
-<b>setTimestamp</b>(<i>node, timestampType, timestamp</i>)
-<p>
-        Public method to set the URL of a bookmark.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the node to be changed (BookmarkNode)
-</dd><dt><i>timestampType</i></dt>
-<dd>
-type of the timestamp to set
-            (BookmarkNode.TsAdded, BookmarkNode.TsModified,
-            BookmarkNode.TsVisited)
-</dd><dt><i>timestamp</i></dt>
-<dd>
-timestamp to set (QDateTime)
-</dd>
-</dl><a NAME="BookmarksManager.setTitle" ID="BookmarksManager.setTitle"></a>
-<h4>BookmarksManager.setTitle</h4>
-<b>setTitle</b>(<i>node, newTitle</i>)
-<p>
-        Public method to set the title of a bookmark.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the node to be changed (BookmarkNode)
-</dd><dt><i>newTitle</i></dt>
-<dd>
-title to be set (string)
-</dd>
-</dl><a NAME="BookmarksManager.setUrl" ID="BookmarksManager.setUrl"></a>
-<h4>BookmarksManager.setUrl</h4>
-<b>setUrl</b>(<i>node, newUrl</i>)
-<p>
-        Public method to set the URL of a bookmark.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the node to be changed (BookmarkNode)
-</dd><dt><i>newUrl</i></dt>
-<dd>
-URL to be set (string)
-</dd>
-</dl><a NAME="BookmarksManager.toolbar" ID="BookmarksManager.toolbar"></a>
-<h4>BookmarksManager.toolbar</h4>
-<b>toolbar</b>(<i></i>)
-<p>
-        Public method to get a reference to the bookmarks toolbar node.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the bookmarks toolbar node (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksManager.undoRedoStack" ID="BookmarksManager.undoRedoStack"></a>
-<h4>BookmarksManager.undoRedoStack</h4>
-<b>undoRedoStack</b>(<i></i>)
-<p>
-        Public method to get a reference to the undo stack.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the undo stack (QUndoStack)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="ChangeBookmarkCommand" ID="ChangeBookmarkCommand"></a>
-<h2>ChangeBookmarkCommand</h2>
-<p>
-    Class implementing the Insert undo command.
-</p>
-<h3>Derived from</h3>
-QUndoCommand
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#ChangeBookmarkCommand.__init__">ChangeBookmarkCommand</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#ChangeBookmarkCommand.redo">redo</a></td>
-<td>Public slot to perform the redo action.</td>
-</tr><tr>
-<td><a href="#ChangeBookmarkCommand.undo">undo</a></td>
-<td>Public slot to perform the undo action.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="ChangeBookmarkCommand.__init__" ID="ChangeBookmarkCommand.__init__"></a>
-<h4>ChangeBookmarkCommand (Constructor)</h4>
-<b>ChangeBookmarkCommand</b>(<i>bookmarksManager, node, newValue, title</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>bookmarksManager</i></dt>
-<dd>
-reference to the bookmarks manager
-            (BookmarksManager)
-</dd><dt><i>node</i></dt>
-<dd>
-reference to the node to be changed (BookmarkNode)
-</dd><dt><i>newValue</i></dt>
-<dd>
-new value to be set (string)
-</dd><dt><i>title</i></dt>
-<dd>
-flag indicating a change of the title (True) or
-            the URL (False) (boolean)
-</dd>
-</dl><a NAME="ChangeBookmarkCommand.redo" ID="ChangeBookmarkCommand.redo"></a>
-<h4>ChangeBookmarkCommand.redo</h4>
-<b>redo</b>(<i></i>)
-<p>
-        Public slot to perform the redo action.
-</p><a NAME="ChangeBookmarkCommand.undo" ID="ChangeBookmarkCommand.undo"></a>
-<h4>ChangeBookmarkCommand.undo</h4>
-<b>undo</b>(<i></i>)
-<p>
-        Public slot to perform the undo action.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="InsertBookmarksCommand" ID="InsertBookmarksCommand"></a>
-<h2>InsertBookmarksCommand</h2>
-<p>
-    Class implementing the Insert undo command.
-</p>
-<h3>Derived from</h3>
-RemoveBookmarksCommand
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#InsertBookmarksCommand.__init__">InsertBookmarksCommand</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#InsertBookmarksCommand.redo">redo</a></td>
-<td>Public slot to perform the redo action.</td>
-</tr><tr>
-<td><a href="#InsertBookmarksCommand.undo">undo</a></td>
-<td>Public slot to perform the undo action.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="InsertBookmarksCommand.__init__" ID="InsertBookmarksCommand.__init__"></a>
-<h4>InsertBookmarksCommand (Constructor)</h4>
-<b>InsertBookmarksCommand</b>(<i>bookmarksManager, parent, node, row</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>bookmarksManager</i></dt>
-<dd>
-reference to the bookmarks manager
-            (BookmarksManager)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent node (BookmarkNode)
-</dd><dt><i>node</i></dt>
-<dd>
-reference to the node to be inserted (BookmarkNode)
-</dd><dt><i>row</i></dt>
-<dd>
-row number of bookmark (integer)
-</dd>
-</dl><a NAME="InsertBookmarksCommand.redo" ID="InsertBookmarksCommand.redo"></a>
-<h4>InsertBookmarksCommand.redo</h4>
-<b>redo</b>(<i></i>)
-<p>
-        Public slot to perform the redo action.
-</p><a NAME="InsertBookmarksCommand.undo" ID="InsertBookmarksCommand.undo"></a>
-<h4>InsertBookmarksCommand.undo</h4>
-<b>undo</b>(<i></i>)
-<p>
-        Public slot to perform the undo action.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="RemoveBookmarksCommand" ID="RemoveBookmarksCommand"></a>
-<h2>RemoveBookmarksCommand</h2>
-<p>
-    Class implementing the Remove undo command.
-</p>
-<h3>Derived from</h3>
-QUndoCommand
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#RemoveBookmarksCommand.__init__">RemoveBookmarksCommand</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#RemoveBookmarksCommand.redo">redo</a></td>
-<td>Public slot to perform the redo action.</td>
-</tr><tr>
-<td><a href="#RemoveBookmarksCommand.undo">undo</a></td>
-<td>Public slot to perform the undo action.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="RemoveBookmarksCommand.__init__" ID="RemoveBookmarksCommand.__init__"></a>
-<h4>RemoveBookmarksCommand (Constructor)</h4>
-<b>RemoveBookmarksCommand</b>(<i>bookmarksManager, parent, row</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>bookmarksManager</i></dt>
-<dd>
-reference to the bookmarks manager
-            (BookmarksManager)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent node (BookmarkNode)
-</dd><dt><i>row</i></dt>
-<dd>
-row number of bookmark (integer)
-</dd>
-</dl><a NAME="RemoveBookmarksCommand.redo" ID="RemoveBookmarksCommand.redo"></a>
-<h4>RemoveBookmarksCommand.redo</h4>
-<b>redo</b>(<i></i>)
-<p>
-        Public slot to perform the redo action.
-</p><a NAME="RemoveBookmarksCommand.undo" ID="RemoveBookmarksCommand.undo"></a>
-<h4>RemoveBookmarksCommand.undo</h4>
-<b>undo</b>(<i></i>)
-<p>
-        Public slot to perform the undo action.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksMenu.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,301 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksMenu</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksMenu</h1>
-<p>
-Module implementing the bookmarks menu.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#BookmarksMenu">BookmarksMenu</a></td>
-<td>Class implementing the bookmarks menu base class.</td>
-</tr><tr>
-<td><a href="#BookmarksMenuBarMenu">BookmarksMenuBarMenu</a></td>
-<td>Class implementing a dynamically populated menu for bookmarks.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="BookmarksMenu" ID="BookmarksMenu"></a>
-<h2>BookmarksMenu</h2>
-<p>
-    Class implementing the bookmarks menu base class.
-</p><h3>Signals</h3>
-<dl>
-<dt>newUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL with the given title in a
-        new tab
-</dd><dt>openUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL with the given title in
-        the current tab
-</dd>
-</dl>
-<h3>Derived from</h3>
-E5ModelMenu
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#BookmarksMenu.__init__">BookmarksMenu</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#BookmarksMenu.__activated">__activated</a></td>
-<td>Private slot handling the activated signal.</td>
-</tr><tr>
-<td><a href="#BookmarksMenu.__contextMenuRequested">__contextMenuRequested</a></td>
-<td>Private slot to handle the context menu request.</td>
-</tr><tr>
-<td><a href="#BookmarksMenu.__edit">__edit</a></td>
-<td>Private slot to edit a bookmarks properties.</td>
-</tr><tr>
-<td><a href="#BookmarksMenu.__openBookmark">__openBookmark</a></td>
-<td>Private slot to open a bookmark in the current browser tab.</td>
-</tr><tr>
-<td><a href="#BookmarksMenu.__openBookmarkInNewTab">__openBookmarkInNewTab</a></td>
-<td>Private slot to open a bookmark in a new browser tab.</td>
-</tr><tr>
-<td><a href="#BookmarksMenu.__removeBookmark">__removeBookmark</a></td>
-<td>Private slot to remove a bookmark.</td>
-</tr><tr>
-<td><a href="#BookmarksMenu.createBaseMenu">createBaseMenu</a></td>
-<td>Public method to get the menu that is used to populate sub menu's.</td>
-</tr><tr>
-<td><a href="#BookmarksMenu.openAll">openAll</a></td>
-<td>Public slot to open all the menu's items.</td>
-</tr><tr>
-<td><a href="#BookmarksMenu.postPopulated">postPopulated</a></td>
-<td>Public method to add any actions after the tree.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="BookmarksMenu.__init__" ID="BookmarksMenu.__init__"></a>
-<h4>BookmarksMenu (Constructor)</h4>
-<b>BookmarksMenu</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="BookmarksMenu.__activated" ID="BookmarksMenu.__activated"></a>
-<h4>BookmarksMenu.__activated</h4>
-<b>__activated</b>(<i>idx</i>)
-<p>
-        Private slot handling the activated signal.
-</p><dl>
-<dt><i>idx</i></dt>
-<dd>
-index of the activated item (QModelIndex)
-</dd>
-</dl><a NAME="BookmarksMenu.__contextMenuRequested" ID="BookmarksMenu.__contextMenuRequested"></a>
-<h4>BookmarksMenu.__contextMenuRequested</h4>
-<b>__contextMenuRequested</b>(<i>pos</i>)
-<p>
-        Private slot to handle the context menu request.
-</p><dl>
-<dt><i>pos</i></dt>
-<dd>
-position the context menu shall be shown (QPoint)
-</dd>
-</dl><a NAME="BookmarksMenu.__edit" ID="BookmarksMenu.__edit"></a>
-<h4>BookmarksMenu.__edit</h4>
-<b>__edit</b>(<i>act</i>)
-<p>
-        Private slot to edit a bookmarks properties.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the triggering action
-</dd>
-</dl><a NAME="BookmarksMenu.__openBookmark" ID="BookmarksMenu.__openBookmark"></a>
-<h4>BookmarksMenu.__openBookmark</h4>
-<b>__openBookmark</b>(<i>act</i>)
-<p>
-        Private slot to open a bookmark in the current browser tab.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the triggering action
-</dd>
-</dl><a NAME="BookmarksMenu.__openBookmarkInNewTab" ID="BookmarksMenu.__openBookmarkInNewTab"></a>
-<h4>BookmarksMenu.__openBookmarkInNewTab</h4>
-<b>__openBookmarkInNewTab</b>(<i>act</i>)
-<p>
-        Private slot to open a bookmark in a new browser tab.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the triggering action
-</dd>
-</dl><a NAME="BookmarksMenu.__removeBookmark" ID="BookmarksMenu.__removeBookmark"></a>
-<h4>BookmarksMenu.__removeBookmark</h4>
-<b>__removeBookmark</b>(<i>act</i>)
-<p>
-        Private slot to remove a bookmark.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the triggering action
-</dd>
-</dl><a NAME="BookmarksMenu.createBaseMenu" ID="BookmarksMenu.createBaseMenu"></a>
-<h4>BookmarksMenu.createBaseMenu</h4>
-<b>createBaseMenu</b>(<i></i>)
-<p>
-        Public method to get the menu that is used to populate sub menu's.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the menu (BookmarksMenu)
-</dd>
-</dl><a NAME="BookmarksMenu.openAll" ID="BookmarksMenu.openAll"></a>
-<h4>BookmarksMenu.openAll</h4>
-<b>openAll</b>(<i>act</i>)
-<p>
-        Public slot to open all the menu's items.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action object
-</dd>
-</dl><a NAME="BookmarksMenu.postPopulated" ID="BookmarksMenu.postPopulated"></a>
-<h4>BookmarksMenu.postPopulated</h4>
-<b>postPopulated</b>(<i></i>)
-<p>
-        Public method to add any actions after the tree.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="BookmarksMenuBarMenu" ID="BookmarksMenuBarMenu"></a>
-<h2>BookmarksMenuBarMenu</h2>
-<p>
-    Class implementing a dynamically populated menu for bookmarks.
-</p><h3>Signals</h3>
-<dl>
-<dt>openUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL with the given title in
-        the current tab
-</dd>
-</dl>
-<h3>Derived from</h3>
-BookmarksMenu
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#BookmarksMenuBarMenu.__init__">BookmarksMenuBarMenu</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#BookmarksMenuBarMenu.__defaultBookmarkTriggered">__defaultBookmarkTriggered</a></td>
-<td>Private slot handling the default bookmark menu entries.</td>
-</tr><tr>
-<td><a href="#BookmarksMenuBarMenu.postPopulated">postPopulated</a></td>
-<td>Public method to add any actions after the tree.</td>
-</tr><tr>
-<td><a href="#BookmarksMenuBarMenu.prePopulated">prePopulated</a></td>
-<td>Public method to add any actions before the tree.</td>
-</tr><tr>
-<td><a href="#BookmarksMenuBarMenu.setInitialActions">setInitialActions</a></td>
-<td>Public method to set the list of actions that should appear first in the menu.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="BookmarksMenuBarMenu.__init__" ID="BookmarksMenuBarMenu.__init__"></a>
-<h4>BookmarksMenuBarMenu (Constructor)</h4>
-<b>BookmarksMenuBarMenu</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="BookmarksMenuBarMenu.__defaultBookmarkTriggered" ID="BookmarksMenuBarMenu.__defaultBookmarkTriggered"></a>
-<h4>BookmarksMenuBarMenu.__defaultBookmarkTriggered</h4>
-<b>__defaultBookmarkTriggered</b>(<i>act</i>)
-<p>
-        Private slot handling the default bookmark menu entries.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action object
-</dd>
-</dl><a NAME="BookmarksMenuBarMenu.postPopulated" ID="BookmarksMenuBarMenu.postPopulated"></a>
-<h4>BookmarksMenuBarMenu.postPopulated</h4>
-<b>postPopulated</b>(<i></i>)
-<p>
-        Public method to add any actions after the tree.
-</p><a NAME="BookmarksMenuBarMenu.prePopulated" ID="BookmarksMenuBarMenu.prePopulated"></a>
-<h4>BookmarksMenuBarMenu.prePopulated</h4>
-<b>prePopulated</b>(<i></i>)
-<p>
-        Public method to add any actions before the tree.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating if any actions were added (boolean)
-</dd>
-</dl><a NAME="BookmarksMenuBarMenu.setInitialActions" ID="BookmarksMenuBarMenu.setInitialActions"></a>
-<h4>BookmarksMenuBarMenu.setInitialActions</h4>
-<b>setInitialActions</b>(<i>actions</i>)
-<p>
-        Public method to set the list of actions that should appear first in
-        the menu.
-</p><dl>
-<dt><i>actions</i></dt>
-<dd>
-list of initial actions (list of QAction)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksModel.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,460 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksModel</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksModel</h1>
-<p>
-Module implementing the bookmark model class.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#BookmarksModel">BookmarksModel</a></td>
-<td>Class implementing the bookmark model.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="BookmarksModel" ID="BookmarksModel"></a>
-<h2>BookmarksModel</h2>
-<p>
-    Class implementing the bookmark model.
-</p>
-<h3>Derived from</h3>
-QAbstractItemModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>MIMETYPE</td></tr><tr><td>SeparatorRole</td></tr><tr><td>TypeRole</td></tr><tr><td>UrlRole</td></tr><tr><td>UrlStringRole</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#BookmarksModel.__init__">BookmarksModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#BookmarksModel.bookmarksManager">bookmarksManager</a></td>
-<td>Public method to get a reference to the bookmarks manager.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.columnCount">columnCount</a></td>
-<td>Public method to get the number of columns.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.data">data</a></td>
-<td>Public method to get data from the model.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.dropMimeData">dropMimeData</a></td>
-<td>Public method to accept the mime data of a drop action.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.entryAdded">entryAdded</a></td>
-<td>Public slot to add a bookmark node.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.entryChanged">entryChanged</a></td>
-<td>Public method to change a node.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.entryRemoved">entryRemoved</a></td>
-<td>Public slot to remove a bookmark node.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.flags">flags</a></td>
-<td>Public method to get flags for a node cell.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.hasChildren">hasChildren</a></td>
-<td>Public method to check, if a parent node has some children.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.headerData">headerData</a></td>
-<td>Public method to get the header data.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.index">index</a></td>
-<td>Public method to get a model index for a node cell.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.mimeData">mimeData</a></td>
-<td>Public method to return the mime data.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.mimeTypes">mimeTypes</a></td>
-<td>Public method to report the supported mime types.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.node">node</a></td>
-<td>Public method to get a bookmark node given its index.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.nodeIndex">nodeIndex</a></td>
-<td>Public method to get a model index.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.parent">parent</a></td>
-<td>Public method to get the index of the parent node.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.removeRows">removeRows</a></td>
-<td>Public method to remove bookmarks from the model.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.rowCount">rowCount</a></td>
-<td>Public method to determine the number of rows.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.setData">setData</a></td>
-<td>Public method to set the data of a node cell.</td>
-</tr><tr>
-<td><a href="#BookmarksModel.supportedDropActions">supportedDropActions</a></td>
-<td>Public method to report the supported drop actions.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="BookmarksModel.__init__" ID="BookmarksModel.__init__"></a>
-<h4>BookmarksModel (Constructor)</h4>
-<b>BookmarksModel</b>(<i>manager, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>manager</i></dt>
-<dd>
-reference to the bookmark manager object
-            (BookmarksManager)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="BookmarksModel.bookmarksManager" ID="BookmarksModel.bookmarksManager"></a>
-<h4>BookmarksModel.bookmarksManager</h4>
-<b>bookmarksManager</b>(<i></i>)
-<p>
-        Public method to get a reference to the bookmarks manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the bookmarks manager object (BookmarksManager)
-</dd>
-</dl><a NAME="BookmarksModel.columnCount" ID="BookmarksModel.columnCount"></a>
-<h4>BookmarksModel.columnCount</h4>
-<b>columnCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of columns.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl><a NAME="BookmarksModel.data" ID="BookmarksModel.data"></a>
-<h4>BookmarksModel.data</h4>
-<b>data</b>(<i>index, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get data from the model.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of bookmark to get data for (QModelIndex)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-bookmark data
-</dd>
-</dl><a NAME="BookmarksModel.dropMimeData" ID="BookmarksModel.dropMimeData"></a>
-<h4>BookmarksModel.dropMimeData</h4>
-<b>dropMimeData</b>(<i>data, action, row, column, parent</i>)
-<p>
-        Public method to accept the mime data of a drop action.
-</p><dl>
-<dt><i>data</i></dt>
-<dd>
-reference to the mime data (QMimeData)
-</dd><dt><i>action</i></dt>
-<dd>
-drop action requested (Qt.DropAction)
-</dd><dt><i>row</i></dt>
-<dd>
-row number (integer)
-</dd><dt><i>column</i></dt>
-<dd>
-column number (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-index of the parent node (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating successful acceptance of the data (boolean)
-</dd>
-</dl><a NAME="BookmarksModel.entryAdded" ID="BookmarksModel.entryAdded"></a>
-<h4>BookmarksModel.entryAdded</h4>
-<b>entryAdded</b>(<i>node</i>)
-<p>
-        Public slot to add a bookmark node.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the bookmark node to add (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksModel.entryChanged" ID="BookmarksModel.entryChanged"></a>
-<h4>BookmarksModel.entryChanged</h4>
-<b>entryChanged</b>(<i>node</i>)
-<p>
-        Public method to change a node.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the bookmark node to change (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksModel.entryRemoved" ID="BookmarksModel.entryRemoved"></a>
-<h4>BookmarksModel.entryRemoved</h4>
-<b>entryRemoved</b>(<i>parent, row, node</i>)
-<p>
-        Public slot to remove a bookmark node.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent bookmark node (BookmarkNode)
-</dd><dt><i>row</i></dt>
-<dd>
-row number of the node (integer)
-</dd><dt><i>node</i></dt>
-<dd>
-reference to the bookmark node to remove (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksModel.flags" ID="BookmarksModel.flags"></a>
-<h4>BookmarksModel.flags</h4>
-<b>flags</b>(<i>index</i>)
-<p>
-        Public method to get flags for a node cell.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the node cell (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flags (Qt.ItemFlags)
-</dd>
-</dl><a NAME="BookmarksModel.hasChildren" ID="BookmarksModel.hasChildren"></a>
-<h4>BookmarksModel.hasChildren</h4>
-<b>hasChildren</b>(<i>parent=None</i>)
-<p>
-        Public method to check, if a parent node has some children.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of the parent node (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the presence of children (boolean)
-</dd>
-</dl><a NAME="BookmarksModel.headerData" ID="BookmarksModel.headerData"></a>
-<h4>BookmarksModel.headerData</h4>
-<b>headerData</b>(<i>section, orientation, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get the header data.
-</p><dl>
-<dt><i>section</i></dt>
-<dd>
-section number (integer)
-</dd><dt><i>orientation</i></dt>
-<dd>
-header orientation (Qt.Orientation)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-header data
-</dd>
-</dl><a NAME="BookmarksModel.index" ID="BookmarksModel.index"></a>
-<h4>BookmarksModel.index</h4>
-<b>index</b>(<i>row, column, parent=None</i>)
-<p>
-        Public method to get a model index for a node cell.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row number (integer)
-</dd><dt><i>column</i></dt>
-<dd>
-column number (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-index of the parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-index (QModelIndex)
-</dd>
-</dl><a NAME="BookmarksModel.mimeData" ID="BookmarksModel.mimeData"></a>
-<h4>BookmarksModel.mimeData</h4>
-<b>mimeData</b>(<i>indexes</i>)
-<p>
-        Public method to return the mime data.
-</p><dl>
-<dt><i>indexes</i></dt>
-<dd>
-list of indexes (QModelIndexList)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-mime data (QMimeData)
-</dd>
-</dl><a NAME="BookmarksModel.mimeTypes" ID="BookmarksModel.mimeTypes"></a>
-<h4>BookmarksModel.mimeTypes</h4>
-<b>mimeTypes</b>(<i></i>)
-<p>
-        Public method to report the supported mime types.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-supported mime types (list of strings)
-</dd>
-</dl><a NAME="BookmarksModel.node" ID="BookmarksModel.node"></a>
-<h4>BookmarksModel.node</h4>
-<b>node</b>(<i>index</i>)
-<p>
-        Public method to get a bookmark node given its index.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the node (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-bookmark node (BookmarkNode)
-</dd>
-</dl><a NAME="BookmarksModel.nodeIndex" ID="BookmarksModel.nodeIndex"></a>
-<h4>BookmarksModel.nodeIndex</h4>
-<b>nodeIndex</b>(<i>node</i>)
-<p>
-        Public method to get a model index.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the node to get the index for (BookmarkNode)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-model index (QModelIndex)
-</dd>
-</dl><a NAME="BookmarksModel.parent" ID="BookmarksModel.parent"></a>
-<h4>BookmarksModel.parent</h4>
-<b>parent</b>(<i>index=None</i>)
-<p>
-        Public method to get the index of the parent node.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the child node (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-index of the parent node (QModelIndex)
-</dd>
-</dl><a NAME="BookmarksModel.removeRows" ID="BookmarksModel.removeRows"></a>
-<h4>BookmarksModel.removeRows</h4>
-<b>removeRows</b>(<i>row, count, parent=None</i>)
-<p>
-        Public method to remove bookmarks from the model.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row of the first bookmark to remove (integer)
-</dd><dt><i>count</i></dt>
-<dd>
-number of bookmarks to remove (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-index of the parent bookmark node (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating successful removal (boolean)
-</dd>
-</dl><a NAME="BookmarksModel.rowCount" ID="BookmarksModel.rowCount"></a>
-<h4>BookmarksModel.rowCount</h4>
-<b>rowCount</b>(<i>parent=None</i>)
-<p>
-        Public method to determine the number of rows.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of rows (integer)
-</dd>
-</dl><a NAME="BookmarksModel.setData" ID="BookmarksModel.setData"></a>
-<h4>BookmarksModel.setData</h4>
-<b>setData</b>(<i>index, value, role=Qt.EditRole</i>)
-<p>
-        Public method to set the data of a node cell.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the node cell (QModelIndex)
-</dd><dt><i>value</i></dt>
-<dd>
-value to be set
-</dd><dt><i>role</i></dt>
-<dd>
-role of the data (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="BookmarksModel.supportedDropActions" ID="BookmarksModel.supportedDropActions"></a>
-<h4>BookmarksModel.supportedDropActions</h4>
-<b>supportedDropActions</b>(<i></i>)
-<p>
-        Public method to report the supported drop actions.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-supported drop actions (Qt.DropAction)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.BookmarksToolBar.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,211 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksToolBar</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksToolBar</h1>
-<p>
-Module implementing a tool bar showing bookmarks.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#BookmarksToolBar">BookmarksToolBar</a></td>
-<td>Class implementing a tool bar showing bookmarks.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="BookmarksToolBar" ID="BookmarksToolBar"></a>
-<h2>BookmarksToolBar</h2>
-<p>
-    Class implementing a tool bar showing bookmarks.
-</p><h3>Signals</h3>
-<dl>
-<dt>newUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL in a new tab
-</dd><dt>openUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL in the current tab
-</dd>
-</dl>
-<h3>Derived from</h3>
-E5ModelToolBar
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#BookmarksToolBar.__init__">BookmarksToolBar</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#BookmarksToolBar.__bookmarkActivated">__bookmarkActivated</a></td>
-<td>Private slot handling the activation of a bookmark.</td>
-</tr><tr>
-<td><a href="#BookmarksToolBar.__contextMenuRequested">__contextMenuRequested</a></td>
-<td>Private slot to handle the context menu request.</td>
-</tr><tr>
-<td><a href="#BookmarksToolBar.__edit">__edit</a></td>
-<td>Private slot to edit a bookmarks properties.</td>
-</tr><tr>
-<td><a href="#BookmarksToolBar.__newBookmark">__newBookmark</a></td>
-<td>Private slot to add a new bookmark.</td>
-</tr><tr>
-<td><a href="#BookmarksToolBar.__newFolder">__newFolder</a></td>
-<td>Private slot to add a new bookmarks folder.</td>
-</tr><tr>
-<td><a href="#BookmarksToolBar.__openBookmark">__openBookmark</a></td>
-<td>Private slot to open a bookmark in the current browser tab.</td>
-</tr><tr>
-<td><a href="#BookmarksToolBar.__openBookmarkInNewTab">__openBookmarkInNewTab</a></td>
-<td>Private slot to open a bookmark in a new browser tab.</td>
-</tr><tr>
-<td><a href="#BookmarksToolBar.__rebuild">__rebuild</a></td>
-<td>Private slot to rebuild the toolbar.</td>
-</tr><tr>
-<td><a href="#BookmarksToolBar.__removeBookmark">__removeBookmark</a></td>
-<td>Private slot to remove a bookmark.</td>
-</tr><tr>
-<td><a href="#BookmarksToolBar._createMenu">_createMenu</a></td>
-<td>Protected method to create the menu for a tool bar action.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="BookmarksToolBar.__init__" ID="BookmarksToolBar.__init__"></a>
-<h4>BookmarksToolBar (Constructor)</h4>
-<b>BookmarksToolBar</b>(<i>mainWindow, model, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>mainWindow</i></dt>
-<dd>
-reference to the main window (HelpWindow)
-</dd><dt><i>model</i></dt>
-<dd>
-reference to the bookmarks model (BookmarksModel)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="BookmarksToolBar.__bookmarkActivated" ID="BookmarksToolBar.__bookmarkActivated"></a>
-<h4>BookmarksToolBar.__bookmarkActivated</h4>
-<b>__bookmarkActivated</b>(<i>idx</i>)
-<p>
-        Private slot handling the activation of a bookmark.
-</p><dl>
-<dt><i>idx</i></dt>
-<dd>
-index of the activated bookmark (QModelIndex)
-</dd>
-</dl><a NAME="BookmarksToolBar.__contextMenuRequested" ID="BookmarksToolBar.__contextMenuRequested"></a>
-<h4>BookmarksToolBar.__contextMenuRequested</h4>
-<b>__contextMenuRequested</b>(<i>pos</i>)
-<p>
-        Private slot to handle the context menu request.
-</p><dl>
-<dt><i>pos</i></dt>
-<dd>
-position the context menu shall be shown (QPoint)
-</dd>
-</dl><a NAME="BookmarksToolBar.__edit" ID="BookmarksToolBar.__edit"></a>
-<h4>BookmarksToolBar.__edit</h4>
-<b>__edit</b>(<i>act</i>)
-<p>
-        Private slot to edit a bookmarks properties.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the triggering action
-</dd>
-</dl><a NAME="BookmarksToolBar.__newBookmark" ID="BookmarksToolBar.__newBookmark"></a>
-<h4>BookmarksToolBar.__newBookmark</h4>
-<b>__newBookmark</b>(<i></i>)
-<p>
-        Private slot to add a new bookmark.
-</p><a NAME="BookmarksToolBar.__newFolder" ID="BookmarksToolBar.__newFolder"></a>
-<h4>BookmarksToolBar.__newFolder</h4>
-<b>__newFolder</b>(<i></i>)
-<p>
-        Private slot to add a new bookmarks folder.
-</p><a NAME="BookmarksToolBar.__openBookmark" ID="BookmarksToolBar.__openBookmark"></a>
-<h4>BookmarksToolBar.__openBookmark</h4>
-<b>__openBookmark</b>(<i>act</i>)
-<p>
-        Private slot to open a bookmark in the current browser tab.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the triggering action
-</dd>
-</dl><a NAME="BookmarksToolBar.__openBookmarkInNewTab" ID="BookmarksToolBar.__openBookmarkInNewTab"></a>
-<h4>BookmarksToolBar.__openBookmarkInNewTab</h4>
-<b>__openBookmarkInNewTab</b>(<i>act</i>)
-<p>
-        Private slot to open a bookmark in a new browser tab.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the triggering action
-</dd>
-</dl><a NAME="BookmarksToolBar.__rebuild" ID="BookmarksToolBar.__rebuild"></a>
-<h4>BookmarksToolBar.__rebuild</h4>
-<b>__rebuild</b>(<i></i>)
-<p>
-        Private slot to rebuild the toolbar.
-</p><a NAME="BookmarksToolBar.__removeBookmark" ID="BookmarksToolBar.__removeBookmark"></a>
-<h4>BookmarksToolBar.__removeBookmark</h4>
-<b>__removeBookmark</b>(<i>act</i>)
-<p>
-        Private slot to remove a bookmark.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the triggering action
-</dd>
-</dl><a NAME="BookmarksToolBar._createMenu" ID="BookmarksToolBar._createMenu"></a>
-<h4>BookmarksToolBar._createMenu</h4>
-<b>_createMenu</b>(<i></i>)
-<p>
-        Protected method to create the menu for a tool bar action.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-menu for a tool bar action (E5ModelMenu)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.NsHtmlReader.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.NsHtmlReader</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.NsHtmlReader</h1>
-<p>
-Module implementing a class to read Netscape HTML bookmark files.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#NsHtmlReader">NsHtmlReader</a></td>
-<td>Class implementing a reader object for Netscape HTML bookmark files.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="NsHtmlReader" ID="NsHtmlReader"></a>
-<h2>NsHtmlReader</h2>
-<p>
-    Class implementing a reader object for Netscape HTML bookmark files.
-</p>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>indentSize</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#NsHtmlReader.__init__">NsHtmlReader</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#NsHtmlReader.read">read</a></td>
-<td>Public method to read a Netscape HTML bookmark file.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="NsHtmlReader.__init__" ID="NsHtmlReader.__init__"></a>
-<h4>NsHtmlReader (Constructor)</h4>
-<b>NsHtmlReader</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="NsHtmlReader.read" ID="NsHtmlReader.read"></a>
-<h4>NsHtmlReader.read</h4>
-<b>read</b>(<i>fileNameOrDevice</i>)
-<p>
-        Public method to read a Netscape HTML bookmark file.
-</p><dl>
-<dt><i>fileNameOrDevice</i></dt>
-<dd>
-name of the file to read (string)
-            or reference to the device to read (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the root node (BookmarkNode)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.NsHtmlWriter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.NsHtmlWriter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.NsHtmlWriter</h1>
-<p>
-Module implementing a class to write Netscape HTML bookmark files.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#NsHtmlWriter">NsHtmlWriter</a></td>
-<td>Class implementing a writer object to generate Netscape HTML bookmark files.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="NsHtmlWriter" ID="NsHtmlWriter"></a>
-<h2>NsHtmlWriter</h2>
-<p>
-    Class implementing a writer object to generate Netscape HTML bookmark
-    files.
-</p>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>indentSize</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#NsHtmlWriter.__init__">NsHtmlWriter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#NsHtmlWriter.__write">__write</a></td>
-<td>Private method to write an Netscape HTML bookmark file.</td>
-</tr><tr>
-<td><a href="#NsHtmlWriter.__writeBookmark">__writeBookmark</a></td>
-<td>Private method to write a bookmark node.</td>
-</tr><tr>
-<td><a href="#NsHtmlWriter.__writeFolder">__writeFolder</a></td>
-<td>Private method to write a bookmark node.</td>
-</tr><tr>
-<td><a href="#NsHtmlWriter.__writeItem">__writeItem</a></td>
-<td>Private method to write an entry for a node.</td>
-</tr><tr>
-<td><a href="#NsHtmlWriter.__writeSeparator">__writeSeparator</a></td>
-<td>Private method to write a separator.</td>
-</tr><tr>
-<td><a href="#NsHtmlWriter.write">write</a></td>
-<td>Public method to write an Netscape HTML bookmark file.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="NsHtmlWriter.__init__" ID="NsHtmlWriter.__init__"></a>
-<h4>NsHtmlWriter (Constructor)</h4>
-<b>NsHtmlWriter</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="NsHtmlWriter.__write" ID="NsHtmlWriter.__write"></a>
-<h4>NsHtmlWriter.__write</h4>
-<b>__write</b>(<i>root</i>)
-<p>
-        Private method to write an Netscape HTML bookmark file.
-</p><dl>
-<dt><i>root</i></dt>
-<dd>
-root node of the bookmark tree (BookmarkNode)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="NsHtmlWriter.__writeBookmark" ID="NsHtmlWriter.__writeBookmark"></a>
-<h4>NsHtmlWriter.__writeBookmark</h4>
-<b>__writeBookmark</b>(<i>node, indent</i>)
-<p>
-        Private method to write a bookmark node.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the node to be written (BookmarkNode)
-</dd><dt><i>indent</i></dt>
-<dd>
-size of the indentation (integer)
-</dd>
-</dl><a NAME="NsHtmlWriter.__writeFolder" ID="NsHtmlWriter.__writeFolder"></a>
-<h4>NsHtmlWriter.__writeFolder</h4>
-<b>__writeFolder</b>(<i>node, indent</i>)
-<p>
-        Private method to write a bookmark node.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the node to be written (BookmarkNode)
-</dd><dt><i>indent</i></dt>
-<dd>
-size of the indentation (integer)
-</dd>
-</dl><a NAME="NsHtmlWriter.__writeItem" ID="NsHtmlWriter.__writeItem"></a>
-<h4>NsHtmlWriter.__writeItem</h4>
-<b>__writeItem</b>(<i>node, indent</i>)
-<p>
-        Private method to write an entry for a node.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the node to be written (BookmarkNode)
-</dd><dt><i>indent</i></dt>
-<dd>
-size of the indentation (integer)
-</dd>
-</dl><a NAME="NsHtmlWriter.__writeSeparator" ID="NsHtmlWriter.__writeSeparator"></a>
-<h4>NsHtmlWriter.__writeSeparator</h4>
-<b>__writeSeparator</b>(<i>indent</i>)
-<p>
-        Private method to write a separator.
-</p><dl>
-<dt><i>indent</i></dt>
-<dd>
-size of the indentation (integer)
-</dd>
-</dl><a NAME="NsHtmlWriter.write" ID="NsHtmlWriter.write"></a>
-<h4>NsHtmlWriter.write</h4>
-<b>write</b>(<i>fileNameOrDevice, root</i>)
-<p>
-        Public method to write an Netscape HTML bookmark file.
-</p><dl>
-<dt><i>fileNameOrDevice</i></dt>
-<dd>
-name of the file to write (string)
-            or device to write to (QIODevice)
-</dd><dt><i>root</i></dt>
-<dd>
-root node of the bookmark tree (BookmarkNode)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.XbelReader.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,239 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.XbelReader</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.XbelReader</h1>
-<p>
-Module implementing a class to read XBEL bookmark files.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#XbelReader">XbelReader</a></td>
-<td>Class implementing a reader object for XBEL bookmark files.</td>
-</tr><tr>
-<td><a href="#XmlEntityResolver">XmlEntityResolver</a></td>
-<td>Class implementing an XML entity resolver for bookmark files.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="XbelReader" ID="XbelReader"></a>
-<h2>XbelReader</h2>
-<p>
-    Class implementing a reader object for XBEL bookmark files.
-</p>
-<h3>Derived from</h3>
-QXmlStreamReader
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#XbelReader.__init__">XbelReader</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#XbelReader.__readBookmarkNode">__readBookmarkNode</a></td>
-<td>Private method to read and parse a bookmark subtree.</td>
-</tr><tr>
-<td><a href="#XbelReader.__readDescription">__readDescription</a></td>
-<td>Private method to read the desc element.</td>
-</tr><tr>
-<td><a href="#XbelReader.__readFolder">__readFolder</a></td>
-<td>Private method to read and parse a folder subtree.</td>
-</tr><tr>
-<td><a href="#XbelReader.__readInfo">__readInfo</a></td>
-<td>Private method to read and parse an info subtree.</td>
-</tr><tr>
-<td><a href="#XbelReader.__readSeparator">__readSeparator</a></td>
-<td>Private method to read a separator element.</td>
-</tr><tr>
-<td><a href="#XbelReader.__readTitle">__readTitle</a></td>
-<td>Private method to read the title element.</td>
-</tr><tr>
-<td><a href="#XbelReader.__readXBEL">__readXBEL</a></td>
-<td>Private method to read and parse the XBEL file.</td>
-</tr><tr>
-<td><a href="#XbelReader.__skipUnknownElement">__skipUnknownElement</a></td>
-<td>Private method to skip over all unknown elements.</td>
-</tr><tr>
-<td><a href="#XbelReader.read">read</a></td>
-<td>Public method to read an XBEL bookmark file.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="XbelReader.__init__" ID="XbelReader.__init__"></a>
-<h4>XbelReader (Constructor)</h4>
-<b>XbelReader</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="XbelReader.__readBookmarkNode" ID="XbelReader.__readBookmarkNode"></a>
-<h4>XbelReader.__readBookmarkNode</h4>
-<b>__readBookmarkNode</b>(<i>node</i>)
-<p>
-        Private method to read and parse a bookmark subtree.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the node to attach to (BookmarkNode)
-</dd>
-</dl><a NAME="XbelReader.__readDescription" ID="XbelReader.__readDescription"></a>
-<h4>XbelReader.__readDescription</h4>
-<b>__readDescription</b>(<i>node</i>)
-<p>
-        Private method to read the desc element.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the bookmark node desc belongs to
-            (BookmarkNode)
-</dd>
-</dl><a NAME="XbelReader.__readFolder" ID="XbelReader.__readFolder"></a>
-<h4>XbelReader.__readFolder</h4>
-<b>__readFolder</b>(<i>node</i>)
-<p>
-        Private method to read and parse a folder subtree.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the node to attach to (BookmarkNode)
-</dd>
-</dl><a NAME="XbelReader.__readInfo" ID="XbelReader.__readInfo"></a>
-<h4>XbelReader.__readInfo</h4>
-<b>__readInfo</b>(<i></i>)
-<p>
-        Private method to read and parse an info subtree.
-</p><a NAME="XbelReader.__readSeparator" ID="XbelReader.__readSeparator"></a>
-<h4>XbelReader.__readSeparator</h4>
-<b>__readSeparator</b>(<i>node</i>)
-<p>
-        Private method to read a separator element.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the bookmark node the separator belongs to
-            (BookmarkNode)
-</dd>
-</dl><a NAME="XbelReader.__readTitle" ID="XbelReader.__readTitle"></a>
-<h4>XbelReader.__readTitle</h4>
-<b>__readTitle</b>(<i>node</i>)
-<p>
-        Private method to read the title element.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the bookmark node title belongs to
-            (BookmarkNode)
-</dd>
-</dl><a NAME="XbelReader.__readXBEL" ID="XbelReader.__readXBEL"></a>
-<h4>XbelReader.__readXBEL</h4>
-<b>__readXBEL</b>(<i>node</i>)
-<p>
-        Private method to read and parse the XBEL file.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the node to attach to (BookmarkNode)
-</dd>
-</dl><a NAME="XbelReader.__skipUnknownElement" ID="XbelReader.__skipUnknownElement"></a>
-<h4>XbelReader.__skipUnknownElement</h4>
-<b>__skipUnknownElement</b>(<i></i>)
-<p>
-        Private method to skip over all unknown elements.
-</p><a NAME="XbelReader.read" ID="XbelReader.read"></a>
-<h4>XbelReader.read</h4>
-<b>read</b>(<i>fileNameOrDevice</i>)
-<p>
-        Public method to read an XBEL bookmark file.
-</p><dl>
-<dt><i>fileNameOrDevice</i></dt>
-<dd>
-name of the file to read (string)
-            or reference to the device to read (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the root node (BookmarkNode)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="XmlEntityResolver" ID="XmlEntityResolver"></a>
-<h2>XmlEntityResolver</h2>
-<p>
-    Class implementing an XML entity resolver for bookmark files.
-</p>
-<h3>Derived from</h3>
-QXmlStreamEntityResolver
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#XmlEntityResolver.resolveUndeclaredEntity">resolveUndeclaredEntity</a></td>
-<td>Public method to resolve undeclared entities.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="XmlEntityResolver.resolveUndeclaredEntity" ID="XmlEntityResolver.resolveUndeclaredEntity"></a>
-<h4>XmlEntityResolver.resolveUndeclaredEntity</h4>
-<b>resolveUndeclaredEntity</b>(<i>entity</i>)
-<p>
-        Public method to resolve undeclared entities.
-</p><dl>
-<dt><i>entity</i></dt>
-<dd>
-entity to be resolved (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-resolved entity (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Bookmarks.XbelWriter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.XbelWriter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Bookmarks.XbelWriter</h1>
-<p>
-Module implementing a class to write XBEL bookmark files.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#XbelWriter">XbelWriter</a></td>
-<td>Class implementing a writer object to generate XBEL bookmark files.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="XbelWriter" ID="XbelWriter"></a>
-<h2>XbelWriter</h2>
-<p>
-    Class implementing a writer object to generate XBEL bookmark files.
-</p>
-<h3>Derived from</h3>
-QXmlStreamWriter
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#XbelWriter.__init__">XbelWriter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#XbelWriter.__write">__write</a></td>
-<td>Private method to write an XBEL bookmark file.</td>
-</tr><tr>
-<td><a href="#XbelWriter.__writeItem">__writeItem</a></td>
-<td>Private method to write an entry for a node.</td>
-</tr><tr>
-<td><a href="#XbelWriter.write">write</a></td>
-<td>Public method to write an XBEL bookmark file.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="XbelWriter.__init__" ID="XbelWriter.__init__"></a>
-<h4>XbelWriter (Constructor)</h4>
-<b>XbelWriter</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="XbelWriter.__write" ID="XbelWriter.__write"></a>
-<h4>XbelWriter.__write</h4>
-<b>__write</b>(<i>root</i>)
-<p>
-        Private method to write an XBEL bookmark file.
-</p><dl>
-<dt><i>root</i></dt>
-<dd>
-root node of the bookmark tree (BookmarkNode)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="XbelWriter.__writeItem" ID="XbelWriter.__writeItem"></a>
-<h4>XbelWriter.__writeItem</h4>
-<b>__writeItem</b>(<i>node</i>)
-<p>
-        Private method to write an entry for a node.
-</p><dl>
-<dt><i>node</i></dt>
-<dd>
-reference to the node to be written (BookmarkNode)
-</dd>
-</dl><a NAME="XbelWriter.write" ID="XbelWriter.write"></a>
-<h4>XbelWriter.write</h4>
-<b>write</b>(<i>fileNameOrDevice, root</i>)
-<p>
-        Public method to write an XBEL bookmark file.
-</p><dl>
-<dt><i>fileNameOrDevice</i></dt>
-<dd>
-name of the file to write (string)
-            or device to write to (QIODevice)
-</dd><dt><i>root</i></dt>
-<dd>
-root node of the bookmark tree (BookmarkNode)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.ClosedTabsManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.ClosedTabsManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.ClosedTabsManager</h1>
-<p>
-Module implementing a class to manage closed tabs.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#ClosedTab">ClosedTab</a></td>
-<td>Class implementing a structure to store data about a closed tab.</td>
-</tr><tr>
-<td><a href="#ClosedTabsManager">ClosedTabsManager</a></td>
-<td>Class implementing a manager for closed tabs.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="ClosedTab" ID="ClosedTab"></a>
-<h2>ClosedTab</h2>
-<p>
-    Class implementing a structure to store data about a closed tab.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#ClosedTab.__init__">ClosedTab</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#ClosedTab.__eq__">__eq__</a></td>
-<td>Special method implementing the equality operator.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="ClosedTab.__init__" ID="ClosedTab.__init__"></a>
-<h4>ClosedTab (Constructor)</h4>
-<b>ClosedTab</b>(<i>url=None, title="", position=-1</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the closed tab (QUrl)
-</dd><dt><i>title</i></dt>
-<dd>
-title of the closed tab (string)
-</dd><dt><i>position</i></dt>
-<dd>
-index of the closed tab (integer)
-</dd>
-</dl><a NAME="ClosedTab.__eq__" ID="ClosedTab.__eq__"></a>
-<h4>ClosedTab.__eq__</h4>
-<b>__eq__</b>(<i>other</i>)
-<p>
-        Special method implementing the equality operator.
-</p><dl>
-<dt><i>other</i></dt>
-<dd>
-reference to the object to compare against (ClosedTab)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating equality of the tabs (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="ClosedTabsManager" ID="ClosedTabsManager"></a>
-<h2>ClosedTabsManager</h2>
-<p>
-    Class implementing a manager for closed tabs.
-</p><h3>Signals</h3>
-<dl>
-<dt>closedTabAvailable(boolean)</dt>
-<dd>
-emitted to signal a change of
-        availability of closed tabs
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#ClosedTabsManager.__init__">ClosedTabsManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#ClosedTabsManager.allClosedTabs">allClosedTabs</a></td>
-<td>Public method to get a list of all closed tabs.</td>
-</tr><tr>
-<td><a href="#ClosedTabsManager.clearList">clearList</a></td>
-<td>Public method to clear the list of closed tabs.</td>
-</tr><tr>
-<td><a href="#ClosedTabsManager.getClosedTabAt">getClosedTabAt</a></td>
-<td>Public method to get the indexed closed tab.</td>
-</tr><tr>
-<td><a href="#ClosedTabsManager.isClosedTabAvailable">isClosedTabAvailable</a></td>
-<td>Public method to check for closed tabs.</td>
-</tr><tr>
-<td><a href="#ClosedTabsManager.recordBrowser">recordBrowser</a></td>
-<td>Public method to record the data of a browser about to be closed.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="ClosedTabsManager.__init__" ID="ClosedTabsManager.__init__"></a>
-<h4>ClosedTabsManager (Constructor)</h4>
-<b>ClosedTabsManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="ClosedTabsManager.allClosedTabs" ID="ClosedTabsManager.allClosedTabs"></a>
-<h4>ClosedTabsManager.allClosedTabs</h4>
-<b>allClosedTabs</b>(<i></i>)
-<p>
-        Public method to get a list of all closed tabs.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of closed tabs (list of ClosedTab)
-</dd>
-</dl><a NAME="ClosedTabsManager.clearList" ID="ClosedTabsManager.clearList"></a>
-<h4>ClosedTabsManager.clearList</h4>
-<b>clearList</b>(<i></i>)
-<p>
-        Public method to clear the list of closed tabs.
-</p><a NAME="ClosedTabsManager.getClosedTabAt" ID="ClosedTabsManager.getClosedTabAt"></a>
-<h4>ClosedTabsManager.getClosedTabAt</h4>
-<b>getClosedTabAt</b>(<i>index</i>)
-<p>
-        Public method to get the indexed closed tab.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the tab to return (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested tab (ClosedTab)
-</dd>
-</dl><a NAME="ClosedTabsManager.isClosedTabAvailable" ID="ClosedTabsManager.isClosedTabAvailable"></a>
-<h4>ClosedTabsManager.isClosedTabAvailable</h4>
-<b>isClosedTabAvailable</b>(<i></i>)
-<p>
-        Public method to check for closed tabs.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the availability of closed tab data (boolean)
-</dd>
-</dl><a NAME="ClosedTabsManager.recordBrowser" ID="ClosedTabsManager.recordBrowser"></a>
-<h4>ClosedTabsManager.recordBrowser</h4>
-<b>recordBrowser</b>(<i>browser, position</i>)
-<p>
-        Public method to record the data of a browser about to be closed.
-</p><dl>
-<dt><i>browser</i></dt>
-<dd>
-reference to the browser to be closed (HelpBrowser)
-</dd><dt><i>position</i></dt>
-<dd>
-index of the tab to be closed (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.CookieJar.CookieDetailsDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.CookieJar.CookieDetailsDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.CookieJar.CookieDetailsDialog</h1>
-<p>
-Module implementing a dialog showing the cookie data.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#CookieDetailsDialog">CookieDetailsDialog</a></td>
-<td>Class implementing a dialog showing the cookie data.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="CookieDetailsDialog" ID="CookieDetailsDialog"></a>
-<h2>CookieDetailsDialog</h2>
-<p>
-    Class implementing a dialog showing the cookie data.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_CookieDetailsDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#CookieDetailsDialog.__init__">CookieDetailsDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#CookieDetailsDialog.setData">setData</a></td>
-<td>Public method to set the data to be shown.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="CookieDetailsDialog.__init__" ID="CookieDetailsDialog.__init__"></a>
-<h4>CookieDetailsDialog (Constructor)</h4>
-<b>CookieDetailsDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QWidget)
-</dd>
-</dl><a NAME="CookieDetailsDialog.setData" ID="CookieDetailsDialog.setData"></a>
-<h4>CookieDetailsDialog.setData</h4>
-<b>setData</b>(<i>domain, name, path, secure, expires, value</i>)
-<p>
-        Public method to set the data to be shown.
-</p><dl>
-<dt><i>domain</i></dt>
-<dd>
-domain of the cookie (string)
-</dd><dt><i>name</i></dt>
-<dd>
-name of the cookie (string)
-</dd><dt><i>path</i></dt>
-<dd>
-path of the cookie (string)
-</dd><dt><i>secure</i></dt>
-<dd>
-flag indicating a secure cookie (boolean)
-</dd><dt><i>expires</i></dt>
-<dd>
-expiration time of the cookie (string)
-</dd><dt><i>value</i></dt>
-<dd>
-value of the cookie (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.CookieJar.CookieExceptionsModel.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.CookieJar.CookieExceptionsModel</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.CookieJar.CookieExceptionsModel</h1>
-<p>
-Module implementing the cookie exceptions model.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#CookieExceptionsModel">CookieExceptionsModel</a></td>
-<td>Class implementing the cookie exceptions model.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="CookieExceptionsModel" ID="CookieExceptionsModel"></a>
-<h2>CookieExceptionsModel</h2>
-<p>
-    Class implementing the cookie exceptions model.
-</p>
-<h3>Derived from</h3>
-QAbstractTableModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#CookieExceptionsModel.__init__">CookieExceptionsModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#CookieExceptionsModel.__addHost">__addHost</a></td>
-<td>Private method to add a host to an exception list.</td>
-</tr><tr>
-<td><a href="#CookieExceptionsModel.addRule">addRule</a></td>
-<td>Public method to add an exception rule.</td>
-</tr><tr>
-<td><a href="#CookieExceptionsModel.columnCount">columnCount</a></td>
-<td>Public method to get the number of columns of the model.</td>
-</tr><tr>
-<td><a href="#CookieExceptionsModel.data">data</a></td>
-<td>Public method to get data from the model.</td>
-</tr><tr>
-<td><a href="#CookieExceptionsModel.headerData">headerData</a></td>
-<td>Public method to get header data from the model.</td>
-</tr><tr>
-<td><a href="#CookieExceptionsModel.removeRows">removeRows</a></td>
-<td>Public method to remove entries from the model.</td>
-</tr><tr>
-<td><a href="#CookieExceptionsModel.rowCount">rowCount</a></td>
-<td>Public method to get the number of rows of the model.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="CookieExceptionsModel.__init__" ID="CookieExceptionsModel.__init__"></a>
-<h4>CookieExceptionsModel (Constructor)</h4>
-<b>CookieExceptionsModel</b>(<i>cookieJar, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>cookieJar</i></dt>
-<dd>
-reference to the cookie jar (CookieJar)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="CookieExceptionsModel.__addHost" ID="CookieExceptionsModel.__addHost"></a>
-<h4>CookieExceptionsModel.__addHost</h4>
-<b>__addHost</b>(<i>host, addList, removeList1, removeList2</i>)
-<p>
-        Private method to add a host to an exception list.
-</p><dl>
-<dt><i>host</i></dt>
-<dd>
-name of the host to add (string)
-</dd><dt><i>addList</i></dt>
-<dd>
-reference to the list to add it to (list of strings)
-</dd><dt><i>removeList1</i></dt>
-<dd>
-reference to first list to remove it from
-            (list of strings)
-</dd><dt><i>removeList2</i></dt>
-<dd>
-reference to second list to remove it from
-            (list of strings)
-</dd>
-</dl><a NAME="CookieExceptionsModel.addRule" ID="CookieExceptionsModel.addRule"></a>
-<h4>CookieExceptionsModel.addRule</h4>
-<b>addRule</b>(<i>host, rule</i>)
-<p>
-        Public method to add an exception rule.
-</p><dl>
-<dt><i>host</i></dt>
-<dd>
-name of the host to add a rule for (string)
-</dd><dt><i>rule</i></dt>
-<dd>
-type of rule to add (CookieJar.Allow, CookieJar.Block or
-            CookieJar.AllowForSession)
-</dd>
-</dl><a NAME="CookieExceptionsModel.columnCount" ID="CookieExceptionsModel.columnCount"></a>
-<h4>CookieExceptionsModel.columnCount</h4>
-<b>columnCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of columns of the model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl><a NAME="CookieExceptionsModel.data" ID="CookieExceptionsModel.data"></a>
-<h4>CookieExceptionsModel.data</h4>
-<b>data</b>(<i>index, role</i>)
-<p>
-        Public method to get data from the model.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index to get data for (QModelIndex)
-</dd><dt><i>role</i></dt>
-<dd>
-role of the data to retrieve (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested data
-</dd>
-</dl><a NAME="CookieExceptionsModel.headerData" ID="CookieExceptionsModel.headerData"></a>
-<h4>CookieExceptionsModel.headerData</h4>
-<b>headerData</b>(<i>section, orientation, role</i>)
-<p>
-        Public method to get header data from the model.
-</p><dl>
-<dt><i>section</i></dt>
-<dd>
-section number (integer)
-</dd><dt><i>orientation</i></dt>
-<dd>
-orientation (Qt.Orientation)
-</dd><dt><i>role</i></dt>
-<dd>
-role of the data to retrieve (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested data
-</dd>
-</dl><a NAME="CookieExceptionsModel.removeRows" ID="CookieExceptionsModel.removeRows"></a>
-<h4>CookieExceptionsModel.removeRows</h4>
-<b>removeRows</b>(<i>row, count, parent=None</i>)
-<p>
-        Public method to remove entries from the model.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-start row (integer)
-</dd><dt><i>count</i></dt>
-<dd>
-number of rows to remove (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="CookieExceptionsModel.rowCount" ID="CookieExceptionsModel.rowCount"></a>
-<h4>CookieExceptionsModel.rowCount</h4>
-<b>rowCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of rows of the model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of rows (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.CookieJar.CookieJar.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,415 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.CookieJar.CookieJar</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.CookieJar.CookieJar</h1>
-<p>
-Module implementing a QNetworkCookieJar subclass with various accept policies.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#CookieJar">CookieJar</a></td>
-<td>Class implementing a QNetworkCookieJar subclass with various accept policies.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="CookieJar" ID="CookieJar"></a>
-<h2>CookieJar</h2>
-<p>
-    Class implementing a QNetworkCookieJar subclass with various accept
-    policies.
-</p><h3>Signals</h3>
-<dl>
-<dt>cookiesChanged()</dt>
-<dd>
-emitted after the cookies have been changed
-</dd>
-</dl>
-<h3>Derived from</h3>
-QNetworkCookieJar
-<h3>Class Attributes</h3>
-<table>
-<tr><td>AcceptAlways</td></tr><tr><td>AcceptNever</td></tr><tr><td>AcceptOnlyFromSitesNavigatedTo</td></tr><tr><td>Allow</td></tr><tr><td>AllowForSession</td></tr><tr><td>Block</td></tr><tr><td>JAR_VERSION</td></tr><tr><td>KeepUntilExit</td></tr><tr><td>KeepUntilExpire</td></tr><tr><td>KeepUntilTimeLimit</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#CookieJar.__init__">CookieJar</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#CookieJar.__applyRules">__applyRules</a></td>
-<td>Private method to apply the cookie rules.</td>
-</tr><tr>
-<td><a href="#CookieJar.__isOnDomainList">__isOnDomainList</a></td>
-<td>Private method to check, if either the rule matches the domain exactly or the domain ends with ".rule".</td>
-</tr><tr>
-<td><a href="#CookieJar.__purgeOldCookies">__purgeOldCookies</a></td>
-<td>Private method to purge old cookies.</td>
-</tr><tr>
-<td><a href="#CookieJar.acceptPolicy">acceptPolicy</a></td>
-<td>Public method to get the accept policy.</td>
-</tr><tr>
-<td><a href="#CookieJar.allowForSessionCookies">allowForSessionCookies</a></td>
-<td>Public method to return the allowed session cookies.</td>
-</tr><tr>
-<td><a href="#CookieJar.allowedCookies">allowedCookies</a></td>
-<td>Public method to return the allowed cookies.</td>
-</tr><tr>
-<td><a href="#CookieJar.blockedCookies">blockedCookies</a></td>
-<td>Public method to return the blocked cookies.</td>
-</tr><tr>
-<td><a href="#CookieJar.clear">clear</a></td>
-<td>Public method to clear all cookies.</td>
-</tr><tr>
-<td><a href="#CookieJar.close">close</a></td>
-<td>Public slot to close the cookie jar.</td>
-</tr><tr>
-<td><a href="#CookieJar.cookies">cookies</a></td>
-<td>Public method to get the cookies of the cookie jar.</td>
-</tr><tr>
-<td><a href="#CookieJar.cookiesForUrl">cookiesForUrl</a></td>
-<td>Public method to get the cookies for a URL.</td>
-</tr><tr>
-<td><a href="#CookieJar.filterTrackingCookies">filterTrackingCookies</a></td>
-<td>Public method to get the filter tracking cookies flag.</td>
-</tr><tr>
-<td><a href="#CookieJar.keepPolicy">keepPolicy</a></td>
-<td>Public method to get the keep policy.</td>
-</tr><tr>
-<td><a href="#CookieJar.load">load</a></td>
-<td>Public method to load the cookies.</td>
-</tr><tr>
-<td><a href="#CookieJar.loadCookies">loadCookies</a></td>
-<td>Public method to restore the saved cookies.</td>
-</tr><tr>
-<td><a href="#CookieJar.save">save</a></td>
-<td>Public method to save the cookies.</td>
-</tr><tr>
-<td><a href="#CookieJar.saveCookies">saveCookies</a></td>
-<td>Public method to save the cookies.</td>
-</tr><tr>
-<td><a href="#CookieJar.setAcceptPolicy">setAcceptPolicy</a></td>
-<td>Public method to set the accept policy.</td>
-</tr><tr>
-<td><a href="#CookieJar.setAllowForSessionCookies">setAllowForSessionCookies</a></td>
-<td>Public method to set the list of allowed session cookies.</td>
-</tr><tr>
-<td><a href="#CookieJar.setAllowedCookies">setAllowedCookies</a></td>
-<td>Public method to set the list of allowed cookies.</td>
-</tr><tr>
-<td><a href="#CookieJar.setBlockedCookies">setBlockedCookies</a></td>
-<td>Public method to set the list of blocked cookies.</td>
-</tr><tr>
-<td><a href="#CookieJar.setCookies">setCookies</a></td>
-<td>Public method to set all cookies.</td>
-</tr><tr>
-<td><a href="#CookieJar.setCookiesFromUrl">setCookiesFromUrl</a></td>
-<td>Public method to set cookies for a URL.</td>
-</tr><tr>
-<td><a href="#CookieJar.setFilterTrackingCookies">setFilterTrackingCookies</a></td>
-<td>Public method to set the filter tracking cookies flag.</td>
-</tr><tr>
-<td><a href="#CookieJar.setKeepPolicy">setKeepPolicy</a></td>
-<td>Public method to set the keep policy.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="CookieJar.__init__" ID="CookieJar.__init__"></a>
-<h4>CookieJar (Constructor)</h4>
-<b>CookieJar</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="CookieJar.__applyRules" ID="CookieJar.__applyRules"></a>
-<h4>CookieJar.__applyRules</h4>
-<b>__applyRules</b>(<i></i>)
-<p>
-        Private method to apply the cookie rules.
-</p><a NAME="CookieJar.__isOnDomainList" ID="CookieJar.__isOnDomainList"></a>
-<h4>CookieJar.__isOnDomainList</h4>
-<b>__isOnDomainList</b>(<i>rules, domain</i>)
-<p>
-        Private method to check, if either the rule matches the domain exactly
-        or the domain ends with ".rule".
-</p><dl>
-<dt><i>rules</i></dt>
-<dd>
-list of rules (list of strings)
-</dd><dt><i>domain</i></dt>
-<dd>
-domain name to check (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a match (boolean)
-</dd>
-</dl><a NAME="CookieJar.__purgeOldCookies" ID="CookieJar.__purgeOldCookies"></a>
-<h4>CookieJar.__purgeOldCookies</h4>
-<b>__purgeOldCookies</b>(<i></i>)
-<p>
-        Private method to purge old cookies.
-</p><a NAME="CookieJar.acceptPolicy" ID="CookieJar.acceptPolicy"></a>
-<h4>CookieJar.acceptPolicy</h4>
-<b>acceptPolicy</b>(<i></i>)
-<p>
-        Public method to get the accept policy.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-current accept policy
-</dd>
-</dl><a NAME="CookieJar.allowForSessionCookies" ID="CookieJar.allowForSessionCookies"></a>
-<h4>CookieJar.allowForSessionCookies</h4>
-<b>allowForSessionCookies</b>(<i></i>)
-<p>
-        Public method to return the allowed session cookies.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of allowed session cookies (list of strings)
-</dd>
-</dl><a NAME="CookieJar.allowedCookies" ID="CookieJar.allowedCookies"></a>
-<h4>CookieJar.allowedCookies</h4>
-<b>allowedCookies</b>(<i></i>)
-<p>
-        Public method to return the allowed cookies.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of allowed cookies (list of strings)
-</dd>
-</dl><a NAME="CookieJar.blockedCookies" ID="CookieJar.blockedCookies"></a>
-<h4>CookieJar.blockedCookies</h4>
-<b>blockedCookies</b>(<i></i>)
-<p>
-        Public method to return the blocked cookies.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of blocked cookies (list of strings)
-</dd>
-</dl><a NAME="CookieJar.clear" ID="CookieJar.clear"></a>
-<h4>CookieJar.clear</h4>
-<b>clear</b>(<i></i>)
-<p>
-        Public method to clear all cookies.
-</p><a NAME="CookieJar.close" ID="CookieJar.close"></a>
-<h4>CookieJar.close</h4>
-<b>close</b>(<i></i>)
-<p>
-        Public slot to close the cookie jar.
-</p><a NAME="CookieJar.cookies" ID="CookieJar.cookies"></a>
-<h4>CookieJar.cookies</h4>
-<b>cookies</b>(<i></i>)
-<p>
-        Public method to get the cookies of the cookie jar.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of all cookies (list of QNetworkCookie)
-</dd>
-</dl><a NAME="CookieJar.cookiesForUrl" ID="CookieJar.cookiesForUrl"></a>
-<h4>CookieJar.cookiesForUrl</h4>
-<b>cookiesForUrl</b>(<i>url</i>)
-<p>
-        Public method to get the cookies for a URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to get cookies for (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-list of cookies (list of QNetworkCookie)
-</dd>
-</dl><a NAME="CookieJar.filterTrackingCookies" ID="CookieJar.filterTrackingCookies"></a>
-<h4>CookieJar.filterTrackingCookies</h4>
-<b>filterTrackingCookies</b>(<i></i>)
-<p>
-        Public method to get the filter tracking cookies flag.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-filter tracking cookies flag (boolean)
-</dd>
-</dl><a NAME="CookieJar.keepPolicy" ID="CookieJar.keepPolicy"></a>
-<h4>CookieJar.keepPolicy</h4>
-<b>keepPolicy</b>(<i></i>)
-<p>
-        Public method to get the keep policy.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-keep policy
-</dd>
-</dl><a NAME="CookieJar.load" ID="CookieJar.load"></a>
-<h4>CookieJar.load</h4>
-<b>load</b>(<i></i>)
-<p>
-        Public method to load the cookies.
-</p><a NAME="CookieJar.loadCookies" ID="CookieJar.loadCookies"></a>
-<h4>CookieJar.loadCookies</h4>
-<b>loadCookies</b>(<i>cookies</i>)
-<p>
-        Public method to restore the saved cookies.
-</p><dl>
-<dt><i>cookies</i></dt>
-<dd>
-byte array containing the saved cookies (QByteArray)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-list of cookies
-</dd>
-</dl><a NAME="CookieJar.save" ID="CookieJar.save"></a>
-<h4>CookieJar.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public method to save the cookies.
-</p><a NAME="CookieJar.saveCookies" ID="CookieJar.saveCookies"></a>
-<h4>CookieJar.saveCookies</h4>
-<b>saveCookies</b>(<i>cookiesList</i>)
-<p>
-        Public method to save the cookies.
-</p><dl>
-<dt><i>cookiesList</i></dt>
-<dd>
-list of cookies to be saved
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-saved cookies as a byte array (QByteArray)
-</dd>
-</dl><a NAME="CookieJar.setAcceptPolicy" ID="CookieJar.setAcceptPolicy"></a>
-<h4>CookieJar.setAcceptPolicy</h4>
-<b>setAcceptPolicy</b>(<i>policy</i>)
-<p>
-        Public method to set the accept policy.
-</p><dl>
-<dt><i>policy</i></dt>
-<dd>
-accept policy to be set
-</dd>
-</dl><a NAME="CookieJar.setAllowForSessionCookies" ID="CookieJar.setAllowForSessionCookies"></a>
-<h4>CookieJar.setAllowForSessionCookies</h4>
-<b>setAllowForSessionCookies</b>(<i>list_</i>)
-<p>
-        Public method to set the list of allowed session cookies.
-</p><dl>
-<dt><i>list_</i></dt>
-<dd>
-list of allowed session cookies (list of strings)
-</dd>
-</dl><a NAME="CookieJar.setAllowedCookies" ID="CookieJar.setAllowedCookies"></a>
-<h4>CookieJar.setAllowedCookies</h4>
-<b>setAllowedCookies</b>(<i>list_</i>)
-<p>
-        Public method to set the list of allowed cookies.
-</p><dl>
-<dt><i>list_</i></dt>
-<dd>
-list of allowed cookies (list of strings)
-</dd>
-</dl><a NAME="CookieJar.setBlockedCookies" ID="CookieJar.setBlockedCookies"></a>
-<h4>CookieJar.setBlockedCookies</h4>
-<b>setBlockedCookies</b>(<i>list_</i>)
-<p>
-        Public method to set the list of blocked cookies.
-</p><dl>
-<dt><i>list_</i></dt>
-<dd>
-list of blocked cookies (list of strings)
-</dd>
-</dl><a NAME="CookieJar.setCookies" ID="CookieJar.setCookies"></a>
-<h4>CookieJar.setCookies</h4>
-<b>setCookies</b>(<i>cookies</i>)
-<p>
-        Public method to set all cookies.
-</p><dl>
-<dt><i>cookies</i></dt>
-<dd>
-list of cookies to be set (list of QNetworkCookie)
-</dd>
-</dl><a NAME="CookieJar.setCookiesFromUrl" ID="CookieJar.setCookiesFromUrl"></a>
-<h4>CookieJar.setCookiesFromUrl</h4>
-<b>setCookiesFromUrl</b>(<i>cookieList, url</i>)
-<p>
-        Public method to set cookies for a URL.
-</p><dl>
-<dt><i>cookieList</i></dt>
-<dd>
-list of cookies to set (list of QNetworkCookie)
-</dd><dt><i>url</i></dt>
-<dd>
-url to set cookies for (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating cookies were set (boolean)
-</dd>
-</dl><a NAME="CookieJar.setFilterTrackingCookies" ID="CookieJar.setFilterTrackingCookies"></a>
-<h4>CookieJar.setFilterTrackingCookies</h4>
-<b>setFilterTrackingCookies</b>(<i>filterTrackingCookies</i>)
-<p>
-        Public method to set the filter tracking cookies flag.
-</p><dl>
-<dt><i>filterTrackingCookies</i></dt>
-<dd>
-filter tracking cookies flag (boolean)
-</dd>
-</dl><a NAME="CookieJar.setKeepPolicy" ID="CookieJar.setKeepPolicy"></a>
-<h4>CookieJar.setKeepPolicy</h4>
-<b>setKeepPolicy</b>(<i>policy</i>)
-<p>
-        Public method to set the keep policy.
-</p><dl>
-<dt><i>policy</i></dt>
-<dd>
-keep policy to be set
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.CookieJar.CookieModel.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.CookieJar.CookieModel</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.CookieJar.CookieModel</h1>
-<p>
-Module implementing the cookie model.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#CookieModel">CookieModel</a></td>
-<td>Class implementing the cookie model.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="CookieModel" ID="CookieModel"></a>
-<h2>CookieModel</h2>
-<p>
-    Class implementing the cookie model.
-</p>
-<h3>Derived from</h3>
-QAbstractTableModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#CookieModel.__init__">CookieModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#CookieModel.__cookiesChanged">__cookiesChanged</a></td>
-<td>Private slot handling changes of the cookies list in the cookie jar.</td>
-</tr><tr>
-<td><a href="#CookieModel.columnCount">columnCount</a></td>
-<td>Public method to get the number of columns of the model.</td>
-</tr><tr>
-<td><a href="#CookieModel.data">data</a></td>
-<td>Public method to get data from the model.</td>
-</tr><tr>
-<td><a href="#CookieModel.headerData">headerData</a></td>
-<td>Public method to get header data from the model.</td>
-</tr><tr>
-<td><a href="#CookieModel.removeRows">removeRows</a></td>
-<td>Public method to remove entries from the model.</td>
-</tr><tr>
-<td><a href="#CookieModel.rowCount">rowCount</a></td>
-<td>Public method to get the number of rows of the model.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="CookieModel.__init__" ID="CookieModel.__init__"></a>
-<h4>CookieModel (Constructor)</h4>
-<b>CookieModel</b>(<i>cookieJar, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>cookieJar</i></dt>
-<dd>
-reference to the cookie jar (CookieJar)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="CookieModel.__cookiesChanged" ID="CookieModel.__cookiesChanged"></a>
-<h4>CookieModel.__cookiesChanged</h4>
-<b>__cookiesChanged</b>(<i></i>)
-<p>
-        Private slot handling changes of the cookies list in the cookie jar.
-</p><a NAME="CookieModel.columnCount" ID="CookieModel.columnCount"></a>
-<h4>CookieModel.columnCount</h4>
-<b>columnCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of columns of the model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl><a NAME="CookieModel.data" ID="CookieModel.data"></a>
-<h4>CookieModel.data</h4>
-<b>data</b>(<i>index, role</i>)
-<p>
-        Public method to get data from the model.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index to get data for (QModelIndex)
-</dd><dt><i>role</i></dt>
-<dd>
-role of the data to retrieve (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested data
-</dd>
-</dl><a NAME="CookieModel.headerData" ID="CookieModel.headerData"></a>
-<h4>CookieModel.headerData</h4>
-<b>headerData</b>(<i>section, orientation, role</i>)
-<p>
-        Public method to get header data from the model.
-</p><dl>
-<dt><i>section</i></dt>
-<dd>
-section number (integer)
-</dd><dt><i>orientation</i></dt>
-<dd>
-orientation (Qt.Orientation)
-</dd><dt><i>role</i></dt>
-<dd>
-role of the data to retrieve (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested data
-</dd>
-</dl><a NAME="CookieModel.removeRows" ID="CookieModel.removeRows"></a>
-<h4>CookieModel.removeRows</h4>
-<b>removeRows</b>(<i>row, count, parent=None</i>)
-<p>
-        Public method to remove entries from the model.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-start row (integer)
-</dd><dt><i>count</i></dt>
-<dd>
-number of rows to remove (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="CookieModel.rowCount" ID="CookieModel.rowCount"></a>
-<h4>CookieModel.rowCount</h4>
-<b>rowCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of rows of the model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.CookieJar.CookiesConfigurationDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.CookieJar.CookiesConfigurationDialog</h1>
-<p>
-Module implementing the cookies configuration dialog.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#CookiesConfigurationDialog">CookiesConfigurationDialog</a></td>
-<td>Class implementing the cookies configuration dialog.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="CookiesConfigurationDialog" ID="CookiesConfigurationDialog"></a>
-<h2>CookiesConfigurationDialog</h2>
-<p>
-    Class implementing the cookies configuration dialog.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_CookiesConfigurationDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#CookiesConfigurationDialog.__init__">CookiesConfigurationDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#CookiesConfigurationDialog.accept">accept</a></td>
-<td>Public slot to accept the dialog.</td>
-</tr><tr>
-<td><a href="#CookiesConfigurationDialog.on_cookiesButton_clicked">on_cookiesButton_clicked</a></td>
-<td>Private slot to show the cookies dialog.</td>
-</tr><tr>
-<td><a href="#CookiesConfigurationDialog.on_exceptionsButton_clicked">on_exceptionsButton_clicked</a></td>
-<td>Private slot to show the cookies exceptions dialog.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="CookiesConfigurationDialog.__init__" ID="CookiesConfigurationDialog.__init__"></a>
-<h4>CookiesConfigurationDialog (Constructor)</h4>
-<b>CookiesConfigurationDialog</b>(<i>parent</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QWidget)
-</dd>
-</dl><a NAME="CookiesConfigurationDialog.accept" ID="CookiesConfigurationDialog.accept"></a>
-<h4>CookiesConfigurationDialog.accept</h4>
-<b>accept</b>(<i></i>)
-<p>
-        Public slot to accept the dialog.
-</p><a NAME="CookiesConfigurationDialog.on_cookiesButton_clicked" ID="CookiesConfigurationDialog.on_cookiesButton_clicked"></a>
-<h4>CookiesConfigurationDialog.on_cookiesButton_clicked</h4>
-<b>on_cookiesButton_clicked</b>(<i></i>)
-<p>
-        Private slot to show the cookies dialog.
-</p><a NAME="CookiesConfigurationDialog.on_exceptionsButton_clicked" ID="CookiesConfigurationDialog.on_exceptionsButton_clicked"></a>
-<h4>CookiesConfigurationDialog.on_exceptionsButton_clicked</h4>
-<b>on_exceptionsButton_clicked</b>(<i></i>)
-<p>
-        Private slot to show the cookies exceptions dialog.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.CookieJar.CookiesDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.CookieJar.CookiesDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.CookieJar.CookiesDialog</h1>
-<p>
-Module implementing a dialog to show all cookies.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#CookiesDialog">CookiesDialog</a></td>
-<td>Class implementing a dialog to show all cookies.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="CookiesDialog" ID="CookiesDialog"></a>
-<h2>CookiesDialog</h2>
-<p>
-    Class implementing a dialog to show all cookies.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_CookiesDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#CookiesDialog.__init__">CookiesDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#CookiesDialog.__showCookieDetails">__showCookieDetails</a></td>
-<td>Private slot to show a dialog with the cookie details.</td>
-</tr><tr>
-<td><a href="#CookiesDialog.__tableModelReset">__tableModelReset</a></td>
-<td>Private slot to handle a reset of the cookies table.</td>
-</tr><tr>
-<td><a href="#CookiesDialog.__tableSelectionChanged">__tableSelectionChanged</a></td>
-<td>Private slot to handle a change of selected items.</td>
-</tr><tr>
-<td><a href="#CookiesDialog.on_addButton_clicked">on_addButton_clicked</a></td>
-<td>Private slot to add a new exception.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="CookiesDialog.__init__" ID="CookiesDialog.__init__"></a>
-<h4>CookiesDialog (Constructor)</h4>
-<b>CookiesDialog</b>(<i>cookieJar, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>cookieJar</i></dt>
-<dd>
-reference to the cookie jar (CookieJar)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="CookiesDialog.__showCookieDetails" ID="CookiesDialog.__showCookieDetails"></a>
-<h4>CookiesDialog.__showCookieDetails</h4>
-<b>__showCookieDetails</b>(<i>index</i>)
-<p>
-        Private slot to show a dialog with the cookie details.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the entry to show (QModelIndex)
-</dd>
-</dl><a NAME="CookiesDialog.__tableModelReset" ID="CookiesDialog.__tableModelReset"></a>
-<h4>CookiesDialog.__tableModelReset</h4>
-<b>__tableModelReset</b>(<i></i>)
-<p>
-        Private slot to handle a reset of the cookies table.
-</p><a NAME="CookiesDialog.__tableSelectionChanged" ID="CookiesDialog.__tableSelectionChanged"></a>
-<h4>CookiesDialog.__tableSelectionChanged</h4>
-<b>__tableSelectionChanged</b>(<i>selected, deselected</i>)
-<p>
-        Private slot to handle a change of selected items.
-</p><dl>
-<dt><i>selected</i></dt>
-<dd>
-selected indexes (QItemSelection)
-</dd><dt><i>deselected</i></dt>
-<dd>
-deselected indexes (QItemSelection)
-</dd>
-</dl><a NAME="CookiesDialog.on_addButton_clicked" ID="CookiesDialog.on_addButton_clicked"></a>
-<h4>CookiesDialog.on_addButton_clicked</h4>
-<b>on_addButton_clicked</b>(<i></i>)
-<p>
-        Private slot to add a new exception.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.CookieJar.CookiesExceptionsDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.CookieJar.CookiesExceptionsDialog</h1>
-<p>
-Module implementing a dialog for the configuration of cookie exceptions.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#CookiesExceptionsDialog">CookiesExceptionsDialog</a></td>
-<td>Class implementing a dialog for the configuration of cookie exceptions.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="CookiesExceptionsDialog" ID="CookiesExceptionsDialog"></a>
-<h2>CookiesExceptionsDialog</h2>
-<p>
-    Class implementing a dialog for the configuration of cookie exceptions.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_CookiesExceptionsDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#CookiesExceptionsDialog.__init__">CookiesExceptionsDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#CookiesExceptionsDialog.on_allowButton_clicked">on_allowButton_clicked</a></td>
-<td>Private slot to allow cookies of a domain.</td>
-</tr><tr>
-<td><a href="#CookiesExceptionsDialog.on_allowForSessionButton_clicked">on_allowForSessionButton_clicked</a></td>
-<td>Private slot to allow cookies of a domain for the current session only.</td>
-</tr><tr>
-<td><a href="#CookiesExceptionsDialog.on_blockButton_clicked">on_blockButton_clicked</a></td>
-<td>Private slot to block cookies of a domain.</td>
-</tr><tr>
-<td><a href="#CookiesExceptionsDialog.on_domainEdit_textChanged">on_domainEdit_textChanged</a></td>
-<td>Private slot to handle a change of the domain edit text.</td>
-</tr><tr>
-<td><a href="#CookiesExceptionsDialog.setDomainName">setDomainName</a></td>
-<td>Public method to set the domain to be displayed.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="CookiesExceptionsDialog.__init__" ID="CookiesExceptionsDialog.__init__"></a>
-<h4>CookiesExceptionsDialog (Constructor)</h4>
-<b>CookiesExceptionsDialog</b>(<i>cookieJar, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>cookieJar</i></dt>
-<dd>
-reference to the cookie jar (CookieJar)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="CookiesExceptionsDialog.on_allowButton_clicked" ID="CookiesExceptionsDialog.on_allowButton_clicked"></a>
-<h4>CookiesExceptionsDialog.on_allowButton_clicked</h4>
-<b>on_allowButton_clicked</b>(<i></i>)
-<p>
-        Private slot to allow cookies of a domain.
-</p><a NAME="CookiesExceptionsDialog.on_allowForSessionButton_clicked" ID="CookiesExceptionsDialog.on_allowForSessionButton_clicked"></a>
-<h4>CookiesExceptionsDialog.on_allowForSessionButton_clicked</h4>
-<b>on_allowForSessionButton_clicked</b>(<i></i>)
-<p>
-        Private slot to allow cookies of a domain for the current session only.
-</p><a NAME="CookiesExceptionsDialog.on_blockButton_clicked" ID="CookiesExceptionsDialog.on_blockButton_clicked"></a>
-<h4>CookiesExceptionsDialog.on_blockButton_clicked</h4>
-<b>on_blockButton_clicked</b>(<i></i>)
-<p>
-        Private slot to block cookies of a domain.
-</p><a NAME="CookiesExceptionsDialog.on_domainEdit_textChanged" ID="CookiesExceptionsDialog.on_domainEdit_textChanged"></a>
-<h4>CookiesExceptionsDialog.on_domainEdit_textChanged</h4>
-<b>on_domainEdit_textChanged</b>(<i>txt</i>)
-<p>
-        Private slot to handle a change of the domain edit text.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-current text of the edit (string)
-</dd>
-</dl><a NAME="CookiesExceptionsDialog.setDomainName" ID="CookiesExceptionsDialog.setDomainName"></a>
-<h4>CookiesExceptionsDialog.setDomainName</h4>
-<b>setDomainName</b>(<i>domain</i>)
-<p>
-        Public method to set the domain to be displayed.
-</p><dl>
-<dt><i>domain</i></dt>
-<dd>
-domain name to be displayed (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Download.DownloadAskActionDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Download.DownloadAskActionDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Download.DownloadAskActionDialog</h1>
-<p>
-Module implementing a dialog to ask for a download action.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#DownloadAskActionDialog">DownloadAskActionDialog</a></td>
-<td>Class implementing a dialog to ask for a download action.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="DownloadAskActionDialog" ID="DownloadAskActionDialog"></a>
-<h2>DownloadAskActionDialog</h2>
-<p>
-    Class implementing a dialog to ask for a download action.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_DownloadAskActionDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#DownloadAskActionDialog.__init__">DownloadAskActionDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#DownloadAskActionDialog.getAction">getAction</a></td>
-<td>Public method to get the selected action.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="DownloadAskActionDialog.__init__" ID="DownloadAskActionDialog.__init__"></a>
-<h4>DownloadAskActionDialog (Constructor)</h4>
-<b>DownloadAskActionDialog</b>(<i>fileName, mimeType, baseUrl, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>fileName</i></dt>
-<dd>
-file name (string)
-</dd><dt><i>mimeType</i></dt>
-<dd>
-mime type (string)
-</dd><dt><i>baseUrl</i></dt>
-<dd>
-URL (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="DownloadAskActionDialog.getAction" ID="DownloadAskActionDialog.getAction"></a>
-<h4>DownloadAskActionDialog.getAction</h4>
-<b>getAction</b>(<i></i>)
-<p>
-        Public method to get the selected action.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-selected action ("save", "open", "scan" or "cancel")
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Download.DownloadItem.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,499 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Download.DownloadItem</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Download.DownloadItem</h1>
-<p>
-Module implementing a widget controlling a download.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#DownloadItem">DownloadItem</a></td>
-<td>Class implementing a widget controlling a download.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="DownloadItem" ID="DownloadItem"></a>
-<h2>DownloadItem</h2>
-<p>
-    Class implementing a widget controlling a download.
-</p><h3>Signals</h3>
-<dl>
-<dt>downloadFinished()</dt>
-<dd>
-emitted when a download finished
-</dd><dt>progress(int, int)</dt>
-<dd>
-emitted to signal the download progress
-</dd><dt>statusChanged()</dt>
-<dd>
-emitted upon a status change of a download
-</dd>
-</dl>
-<h3>Derived from</h3>
-QWidget, Ui_DownloadItem
-<h3>Class Attributes</h3>
-<table>
-<tr><td>DownloadCancelled</td></tr><tr><td>DownloadSuccessful</td></tr><tr><td>Downloading</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#DownloadItem.__init__">DownloadItem</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#DownloadItem.__adjustSize">__adjustSize</a></td>
-<td>Private method to adjust the size of the download item.</td>
-</tr><tr>
-<td><a href="#DownloadItem.__downloadProgress">__downloadProgress</a></td>
-<td>Private method to show the download progress.</td>
-</tr><tr>
-<td><a href="#DownloadItem.__finished">__finished</a></td>
-<td>Private slot to handle the download finished.</td>
-</tr><tr>
-<td><a href="#DownloadItem.__getFileName">__getFileName</a></td>
-<td>Private method to get the file name to save to from the user.</td>
-</tr><tr>
-<td><a href="#DownloadItem.__initialize">__initialize</a></td>
-<td>Private method to (re)initialize the widget.</td>
-</tr><tr>
-<td><a href="#DownloadItem.__metaDataChanged">__metaDataChanged</a></td>
-<td>Private slot to handle a change of the meta data.</td>
-</tr><tr>
-<td><a href="#DownloadItem.__networkError">__networkError</a></td>
-<td>Private slot to handle a network error.</td>
-</tr><tr>
-<td><a href="#DownloadItem.__readyRead">__readyRead</a></td>
-<td>Private slot to read the available data.</td>
-</tr><tr>
-<td><a href="#DownloadItem.__saveFileName">__saveFileName</a></td>
-<td>Private method to calculate a name for the file to download.</td>
-</tr><tr>
-<td><a href="#DownloadItem.__setDateTime">__setDateTime</a></td>
-<td>Private method to set the download date and time.</td>
-</tr><tr>
-<td><a href="#DownloadItem.__updateInfoLabel">__updateInfoLabel</a></td>
-<td>Private method to update the info label.</td>
-</tr><tr>
-<td><a href="#DownloadItem.absoluteFilePath">absoluteFilePath</a></td>
-<td>Public method to get the absolute path of the output file.</td>
-</tr><tr>
-<td><a href="#DownloadItem.bytesReceived">bytesReceived</a></td>
-<td>Public method to get the number of bytes received.</td>
-</tr><tr>
-<td><a href="#DownloadItem.bytesTotal">bytesTotal</a></td>
-<td>Public method to get the total number of bytes of the download.</td>
-</tr><tr>
-<td><a href="#DownloadItem.cancelDownload">cancelDownload</a></td>
-<td>Public slot to stop the download.</td>
-</tr><tr>
-<td><a href="#DownloadItem.canceledFileSelect">canceledFileSelect</a></td>
-<td>Public method to check, if the user canceled the file selection.</td>
-</tr><tr>
-<td><a href="#DownloadItem.currentSpeed">currentSpeed</a></td>
-<td>Public method to get an estimation for the download speed.</td>
-</tr><tr>
-<td><a href="#DownloadItem.downloadCanceled">downloadCanceled</a></td>
-<td>Public method to check, if the download was cancelled.</td>
-</tr><tr>
-<td><a href="#DownloadItem.downloadedSuccessfully">downloadedSuccessfully</a></td>
-<td>Public method to check for a successful download.</td>
-</tr><tr>
-<td><a href="#DownloadItem.downloading">downloading</a></td>
-<td>Public method to determine, if a download is in progress.</td>
-</tr><tr>
-<td><a href="#DownloadItem.fileName">fileName</a></td>
-<td>Public method to get the name of the output file.</td>
-</tr><tr>
-<td><a href="#DownloadItem.getData">getData</a></td>
-<td>Public method to get the relevant download data.</td>
-</tr><tr>
-<td><a href="#DownloadItem.getInfoData">getInfoData</a></td>
-<td>Public method to get the text of the info label.</td>
-</tr><tr>
-<td><a href="#DownloadItem.getPageUrl">getPageUrl</a></td>
-<td>Public method to get the URL of the download page.</td>
-</tr><tr>
-<td><a href="#DownloadItem.on_openButton_clicked">on_openButton_clicked</a></td>
-<td>Private slot to open the downloaded file.</td>
-</tr><tr>
-<td><a href="#DownloadItem.on_pauseButton_clicked">on_pauseButton_clicked</a></td>
-<td>Private slot to pause the download.</td>
-</tr><tr>
-<td><a href="#DownloadItem.on_stopButton_clicked">on_stopButton_clicked</a></td>
-<td>Private slot to stop the download.</td>
-</tr><tr>
-<td><a href="#DownloadItem.on_tryAgainButton_clicked">on_tryAgainButton_clicked</a></td>
-<td>Private slot to retry the download.</td>
-</tr><tr>
-<td><a href="#DownloadItem.openFile">openFile</a></td>
-<td>Public slot to open the downloaded file.</td>
-</tr><tr>
-<td><a href="#DownloadItem.openFolder">openFolder</a></td>
-<td>Public slot to open the folder containing the downloaded file.</td>
-</tr><tr>
-<td><a href="#DownloadItem.remainingTime">remainingTime</a></td>
-<td>Public method to get an estimation for the remaining time.</td>
-</tr><tr>
-<td><a href="#DownloadItem.retry">retry</a></td>
-<td>Public slot to retry the download.</td>
-</tr><tr>
-<td><a href="#DownloadItem.setData">setData</a></td>
-<td>Public method to set the relevant download data.</td>
-</tr><tr>
-<td><a href="#DownloadItem.setIcon">setIcon</a></td>
-<td>Public method to set the download icon.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="DownloadItem.__init__" ID="DownloadItem.__init__"></a>
-<h4>DownloadItem (Constructor)</h4>
-<b>DownloadItem</b>(<i>reply=None, requestFilename=False, webPage=None, download=False, parent=None, mainWindow=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>reply=</i></dt>
-<dd>
-reference to the network reply object (QNetworkReply)
-</dd><dt><i>requestFilename=</i></dt>
-<dd>
-flag indicating to ask the user for a
-            filename (boolean)
-</dd><dt><i>webPage=</i></dt>
-<dd>
-reference to the web page object the download
-            originated from (QWebPage)
-</dd><dt><i>download=</i></dt>
-<dd>
-flag indicating a download operation (boolean)
-</dd><dt><i>parent=</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd><dt><i>mainWindow=</i></dt>
-<dd>
-reference to the main window (HelpWindow)
-</dd>
-</dl><a NAME="DownloadItem.__adjustSize" ID="DownloadItem.__adjustSize"></a>
-<h4>DownloadItem.__adjustSize</h4>
-<b>__adjustSize</b>(<i></i>)
-<p>
-        Private method to adjust the size of the download item.
-</p><a NAME="DownloadItem.__downloadProgress" ID="DownloadItem.__downloadProgress"></a>
-<h4>DownloadItem.__downloadProgress</h4>
-<b>__downloadProgress</b>(<i>bytesReceived, bytesTotal</i>)
-<p>
-        Private method to show the download progress.
-</p><dl>
-<dt><i>bytesReceived</i></dt>
-<dd>
-number of bytes received (integer)
-</dd><dt><i>bytesTotal</i></dt>
-<dd>
-number of total bytes (integer)
-</dd>
-</dl><a NAME="DownloadItem.__finished" ID="DownloadItem.__finished"></a>
-<h4>DownloadItem.__finished</h4>
-<b>__finished</b>(<i></i>)
-<p>
-        Private slot to handle the download finished.
-</p><a NAME="DownloadItem.__getFileName" ID="DownloadItem.__getFileName"></a>
-<h4>DownloadItem.__getFileName</h4>
-<b>__getFileName</b>(<i></i>)
-<p>
-        Private method to get the file name to save to from the user.
-</p><a NAME="DownloadItem.__initialize" ID="DownloadItem.__initialize"></a>
-<h4>DownloadItem.__initialize</h4>
-<b>__initialize</b>(<i>tryAgain=False</i>)
-<p>
-        Private method to (re)initialize the widget.
-</p><dl>
-<dt><i>tryAgain</i></dt>
-<dd>
-flag indicating a retry (boolean)
-</dd>
-</dl><a NAME="DownloadItem.__metaDataChanged" ID="DownloadItem.__metaDataChanged"></a>
-<h4>DownloadItem.__metaDataChanged</h4>
-<b>__metaDataChanged</b>(<i></i>)
-<p>
-        Private slot to handle a change of the meta data.
-</p><a NAME="DownloadItem.__networkError" ID="DownloadItem.__networkError"></a>
-<h4>DownloadItem.__networkError</h4>
-<b>__networkError</b>(<i></i>)
-<p>
-        Private slot to handle a network error.
-</p><a NAME="DownloadItem.__readyRead" ID="DownloadItem.__readyRead"></a>
-<h4>DownloadItem.__readyRead</h4>
-<b>__readyRead</b>(<i></i>)
-<p>
-        Private slot to read the available data.
-</p><a NAME="DownloadItem.__saveFileName" ID="DownloadItem.__saveFileName"></a>
-<h4>DownloadItem.__saveFileName</h4>
-<b>__saveFileName</b>(<i>directory</i>)
-<p>
-        Private method to calculate a name for the file to download.
-</p><dl>
-<dt><i>directory</i></dt>
-<dd>
-name of the directory to store the file into (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-proposed filename and original filename (string, string)
-</dd>
-</dl><a NAME="DownloadItem.__setDateTime" ID="DownloadItem.__setDateTime"></a>
-<h4>DownloadItem.__setDateTime</h4>
-<b>__setDateTime</b>(<i>dateTime=None</i>)
-<p>
-        Private method to set the download date and time.
-</p><dl>
-<dt><i>dateTime</i> (QDateTime)</dt>
-<dd>
-date and time to be set
-</dd>
-</dl><a NAME="DownloadItem.__updateInfoLabel" ID="DownloadItem.__updateInfoLabel"></a>
-<h4>DownloadItem.__updateInfoLabel</h4>
-<b>__updateInfoLabel</b>(<i></i>)
-<p>
-        Private method to update the info label.
-</p><a NAME="DownloadItem.absoluteFilePath" ID="DownloadItem.absoluteFilePath"></a>
-<h4>DownloadItem.absoluteFilePath</h4>
-<b>absoluteFilePath</b>(<i></i>)
-<p>
-        Public method to get the absolute path of the output file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-absolute path of the output file (string)
-</dd>
-</dl><a NAME="DownloadItem.bytesReceived" ID="DownloadItem.bytesReceived"></a>
-<h4>DownloadItem.bytesReceived</h4>
-<b>bytesReceived</b>(<i></i>)
-<p>
-        Public method to get the number of bytes received.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-number of bytes received (integer)
-</dd>
-</dl><a NAME="DownloadItem.bytesTotal" ID="DownloadItem.bytesTotal"></a>
-<h4>DownloadItem.bytesTotal</h4>
-<b>bytesTotal</b>(<i></i>)
-<p>
-        Public method to get the total number of bytes of the download.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-total number of bytes (integer)
-</dd>
-</dl><a NAME="DownloadItem.cancelDownload" ID="DownloadItem.cancelDownload"></a>
-<h4>DownloadItem.cancelDownload</h4>
-<b>cancelDownload</b>(<i></i>)
-<p>
-        Public slot to stop the download.
-</p><a NAME="DownloadItem.canceledFileSelect" ID="DownloadItem.canceledFileSelect"></a>
-<h4>DownloadItem.canceledFileSelect</h4>
-<b>canceledFileSelect</b>(<i></i>)
-<p>
-        Public method to check, if the user canceled the file selection.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating cancellation (boolean)
-</dd>
-</dl><a NAME="DownloadItem.currentSpeed" ID="DownloadItem.currentSpeed"></a>
-<h4>DownloadItem.currentSpeed</h4>
-<b>currentSpeed</b>(<i></i>)
-<p>
-        Public method to get an estimation for the download speed.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-estimation for the download speed (float)
-</dd>
-</dl><a NAME="DownloadItem.downloadCanceled" ID="DownloadItem.downloadCanceled"></a>
-<h4>DownloadItem.downloadCanceled</h4>
-<b>downloadCanceled</b>(<i></i>)
-<p>
-        Public method to check, if the download was cancelled.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a canceled download (boolean)
-</dd>
-</dl><a NAME="DownloadItem.downloadedSuccessfully" ID="DownloadItem.downloadedSuccessfully"></a>
-<h4>DownloadItem.downloadedSuccessfully</h4>
-<b>downloadedSuccessfully</b>(<i></i>)
-<p>
-        Public method to check for a successful download.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a successful download (boolean)
-</dd>
-</dl><a NAME="DownloadItem.downloading" ID="DownloadItem.downloading"></a>
-<h4>DownloadItem.downloading</h4>
-<b>downloading</b>(<i></i>)
-<p>
-        Public method to determine, if a download is in progress.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a download is in progress (boolean)
-</dd>
-</dl><a NAME="DownloadItem.fileName" ID="DownloadItem.fileName"></a>
-<h4>DownloadItem.fileName</h4>
-<b>fileName</b>(<i></i>)
-<p>
-        Public method to get the name of the output file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-name of the output file (string)
-</dd>
-</dl><a NAME="DownloadItem.getData" ID="DownloadItem.getData"></a>
-<h4>DownloadItem.getData</h4>
-<b>getData</b>(<i></i>)
-<p>
-        Public method to get the relevant download data.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-tuple of URL, save location, flag, the
-            URL of the related web page and the date and time
-            of the download
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-tuple of (QUrl, str, bool, QUrl, QDateTime)
-</dd>
-</dl><a NAME="DownloadItem.getInfoData" ID="DownloadItem.getInfoData"></a>
-<h4>DownloadItem.getInfoData</h4>
-<b>getInfoData</b>(<i></i>)
-<p>
-        Public method to get the text of the info label.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-text of the info label (string)
-</dd>
-</dl><a NAME="DownloadItem.getPageUrl" ID="DownloadItem.getPageUrl"></a>
-<h4>DownloadItem.getPageUrl</h4>
-<b>getPageUrl</b>(<i></i>)
-<p>
-        Public method to get the URL of the download page.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-URL of the download page (QUrl)
-</dd>
-</dl><a NAME="DownloadItem.on_openButton_clicked" ID="DownloadItem.on_openButton_clicked"></a>
-<h4>DownloadItem.on_openButton_clicked</h4>
-<b>on_openButton_clicked</b>(<i></i>)
-<p>
-        Private slot to open the downloaded file.
-</p><a NAME="DownloadItem.on_pauseButton_clicked" ID="DownloadItem.on_pauseButton_clicked"></a>
-<h4>DownloadItem.on_pauseButton_clicked</h4>
-<b>on_pauseButton_clicked</b>(<i>checked</i>)
-<p>
-        Private slot to pause the download.
-</p><dl>
-<dt><i>checked</i></dt>
-<dd>
-flag indicating the state of the button (boolean)
-</dd>
-</dl><a NAME="DownloadItem.on_stopButton_clicked" ID="DownloadItem.on_stopButton_clicked"></a>
-<h4>DownloadItem.on_stopButton_clicked</h4>
-<b>on_stopButton_clicked</b>(<i></i>)
-<p>
-        Private slot to stop the download.
-</p><a NAME="DownloadItem.on_tryAgainButton_clicked" ID="DownloadItem.on_tryAgainButton_clicked"></a>
-<h4>DownloadItem.on_tryAgainButton_clicked</h4>
-<b>on_tryAgainButton_clicked</b>(<i></i>)
-<p>
-        Private slot to retry the download.
-</p><a NAME="DownloadItem.openFile" ID="DownloadItem.openFile"></a>
-<h4>DownloadItem.openFile</h4>
-<b>openFile</b>(<i></i>)
-<p>
-        Public slot to open the downloaded file.
-</p><a NAME="DownloadItem.openFolder" ID="DownloadItem.openFolder"></a>
-<h4>DownloadItem.openFolder</h4>
-<b>openFolder</b>(<i></i>)
-<p>
-        Public slot to open the folder containing the downloaded file.
-</p><a NAME="DownloadItem.remainingTime" ID="DownloadItem.remainingTime"></a>
-<h4>DownloadItem.remainingTime</h4>
-<b>remainingTime</b>(<i></i>)
-<p>
-        Public method to get an estimation for the remaining time.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-estimation for the remaining time (float)
-</dd>
-</dl><a NAME="DownloadItem.retry" ID="DownloadItem.retry"></a>
-<h4>DownloadItem.retry</h4>
-<b>retry</b>(<i></i>)
-<p>
-        Public slot to retry the download.
-</p><a NAME="DownloadItem.setData" ID="DownloadItem.setData"></a>
-<h4>DownloadItem.setData</h4>
-<b>setData</b>(<i>data</i>)
-<p>
-        Public method to set the relevant download data.
-</p><dl>
-<dt><i>data</i> (QUrl, str, bool, QUrl, QDateTime)</dt>
-<dd>
-tuple of URL, save location, flag, the
-            URL of the related web page and the date and time
-            of the download
-</dd>
-</dl><a NAME="DownloadItem.setIcon" ID="DownloadItem.setIcon"></a>
-<h4>DownloadItem.setIcon</h4>
-<b>setIcon</b>(<i>icon</i>)
-<p>
-        Public method to set the download icon.
-</p><dl>
-<dt><i>icon</i></dt>
-<dd>
-reference to the icon to be set (QIcon)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Download.DownloadManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,426 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Download.DownloadManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Download.DownloadManager</h1>
-<p>
-Module implementing the download manager class.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#DownloadManager">DownloadManager</a></td>
-<td>Class implementing the download manager.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="DownloadManager" ID="DownloadManager"></a>
-<h2>DownloadManager</h2>
-<p>
-    Class implementing the download manager.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_DownloadManager
-<h3>Class Attributes</h3>
-<table>
-<tr><td>RemoveExit</td></tr><tr><td>RemoveNever</td></tr><tr><td>RemoveSuccessFullDownload</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#DownloadManager.__init__">DownloadManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#DownloadManager.__addItem">__addItem</a></td>
-<td>Private method to add a download to the list of downloads.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__contextMenuCancel">__contextMenuCancel</a></td>
-<td>Private method to cancel the current download.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__contextMenuCopyLink">__contextMenuCopyLink</a></td>
-<td>Private method to copy the download link to the clipboard.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__contextMenuGotoPage">__contextMenuGotoPage</a></td>
-<td>Private method to open the download page.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__contextMenuOpen">__contextMenuOpen</a></td>
-<td>Private method to open the downloaded file.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__contextMenuOpenFolder">__contextMenuOpenFolder</a></td>
-<td>Private method to open the folder containing the downloaded file.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__contextMenuRemoveSelected">__contextMenuRemoveSelected</a></td>
-<td>Private method to remove the selected downloads from the list.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__contextMenuRetry">__contextMenuRetry</a></td>
-<td>Private method to retry of the download.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__contextMenuSelectAll">__contextMenuSelectAll</a></td>
-<td>Private method to select all downloads.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__currentItem">__currentItem</a></td>
-<td>Private method to get a reference to the current item.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__customContextMenuRequested">__customContextMenuRequested</a></td>
-<td>Private slot to handle the context menu request for the bookmarks tree.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__finished">__finished</a></td>
-<td>Private slot to handle a finished download.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__load">__load</a></td>
-<td>Private method to load the download settings.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__updateActiveItemCount">__updateActiveItemCount</a></td>
-<td>Private method to update the window title.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__updateItemCount">__updateItemCount</a></td>
-<td>Private method to update the count label.</td>
-</tr><tr>
-<td><a href="#DownloadManager.__updateRow">__updateRow</a></td>
-<td>Private slot to update a download item.</td>
-</tr><tr>
-<td><a href="#DownloadManager.activeDownloads">activeDownloads</a></td>
-<td>Public method to get the number of active downloads.</td>
-</tr><tr>
-<td><a href="#DownloadManager.allowQuit">allowQuit</a></td>
-<td>Public method to check, if it is ok to quit.</td>
-</tr><tr>
-<td><a href="#DownloadManager.changeOccurred">changeOccurred</a></td>
-<td>Public method to signal a change.</td>
-</tr><tr>
-<td><a href="#DownloadManager.cleanup">cleanup</a></td>
-<td>Public slot to cleanup the downloads.</td>
-</tr><tr>
-<td><a href="#DownloadManager.count">count</a></td>
-<td>Public method to get the number of downloads.</td>
-</tr><tr>
-<td><a href="#DownloadManager.download">download</a></td>
-<td>Public method to download a file.</td>
-</tr><tr>
-<td><a href="#DownloadManager.downloadDirectory">downloadDirectory</a></td>
-<td>Public method to get the current download directory.</td>
-</tr><tr>
-<td><a href="#DownloadManager.downloads">downloads</a></td>
-<td>Public method to get a reference to the downloads.</td>
-</tr><tr>
-<td><a href="#DownloadManager.handleUnsupportedContent">handleUnsupportedContent</a></td>
-<td>Public method to handle unsupported content by downloading the referenced resource.</td>
-</tr><tr>
-<td><a href="#DownloadManager.on_cleanupButton_clicked">on_cleanupButton_clicked</a></td>
-<td>Private slot cleanup the downloads.</td>
-</tr><tr>
-<td><a href="#DownloadManager.removePolicy">removePolicy</a></td>
-<td>Public method to get the remove policy.</td>
-</tr><tr>
-<td><a href="#DownloadManager.save">save</a></td>
-<td>Public method to save the download settings.</td>
-</tr><tr>
-<td><a href="#DownloadManager.setDownloadDirectory">setDownloadDirectory</a></td>
-<td>Public method to set the current download directory.</td>
-</tr><tr>
-<td><a href="#DownloadManager.setRemovePolicy">setRemovePolicy</a></td>
-<td>Public method to set the remove policy.</td>
-</tr><tr>
-<td><a href="#DownloadManager.shutdown">shutdown</a></td>
-<td>Public method to stop the download manager.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="DownloadManager.__init__" ID="DownloadManager.__init__"></a>
-<h4>DownloadManager (Constructor)</h4>
-<b>DownloadManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="DownloadManager.__addItem" ID="DownloadManager.__addItem"></a>
-<h4>DownloadManager.__addItem</h4>
-<b>__addItem</b>(<i>itm, append=False</i>)
-<p>
-        Private method to add a download to the list of downloads.
-</p><dl>
-<dt><i>itm</i> (DownloadItem)</dt>
-<dd>
-reference to the download item
-</dd><dt><i>append</i> (bool)</dt>
-<dd>
-flag indicating to append the item
-</dd>
-</dl><a NAME="DownloadManager.__contextMenuCancel" ID="DownloadManager.__contextMenuCancel"></a>
-<h4>DownloadManager.__contextMenuCancel</h4>
-<b>__contextMenuCancel</b>(<i></i>)
-<p>
-        Private method to cancel the current download.
-</p><a NAME="DownloadManager.__contextMenuCopyLink" ID="DownloadManager.__contextMenuCopyLink"></a>
-<h4>DownloadManager.__contextMenuCopyLink</h4>
-<b>__contextMenuCopyLink</b>(<i></i>)
-<p>
-        Private method to copy the download link to the clipboard.
-</p><a NAME="DownloadManager.__contextMenuGotoPage" ID="DownloadManager.__contextMenuGotoPage"></a>
-<h4>DownloadManager.__contextMenuGotoPage</h4>
-<b>__contextMenuGotoPage</b>(<i></i>)
-<p>
-        Private method to open the download page.
-</p><a NAME="DownloadManager.__contextMenuOpen" ID="DownloadManager.__contextMenuOpen"></a>
-<h4>DownloadManager.__contextMenuOpen</h4>
-<b>__contextMenuOpen</b>(<i></i>)
-<p>
-        Private method to open the downloaded file.
-</p><a NAME="DownloadManager.__contextMenuOpenFolder" ID="DownloadManager.__contextMenuOpenFolder"></a>
-<h4>DownloadManager.__contextMenuOpenFolder</h4>
-<b>__contextMenuOpenFolder</b>(<i></i>)
-<p>
-        Private method to open the folder containing the downloaded file.
-</p><a NAME="DownloadManager.__contextMenuRemoveSelected" ID="DownloadManager.__contextMenuRemoveSelected"></a>
-<h4>DownloadManager.__contextMenuRemoveSelected</h4>
-<b>__contextMenuRemoveSelected</b>(<i></i>)
-<p>
-        Private method to remove the selected downloads from the list.
-</p><a NAME="DownloadManager.__contextMenuRetry" ID="DownloadManager.__contextMenuRetry"></a>
-<h4>DownloadManager.__contextMenuRetry</h4>
-<b>__contextMenuRetry</b>(<i></i>)
-<p>
-        Private method to retry of the download.
-</p><a NAME="DownloadManager.__contextMenuSelectAll" ID="DownloadManager.__contextMenuSelectAll"></a>
-<h4>DownloadManager.__contextMenuSelectAll</h4>
-<b>__contextMenuSelectAll</b>(<i></i>)
-<p>
-        Private method to select all downloads.
-</p><a NAME="DownloadManager.__currentItem" ID="DownloadManager.__currentItem"></a>
-<h4>DownloadManager.__currentItem</h4>
-<b>__currentItem</b>(<i></i>)
-<p>
-        Private method to get a reference to the current item.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the current item (DownloadItem)
-</dd>
-</dl><a NAME="DownloadManager.__customContextMenuRequested" ID="DownloadManager.__customContextMenuRequested"></a>
-<h4>DownloadManager.__customContextMenuRequested</h4>
-<b>__customContextMenuRequested</b>(<i>pos</i>)
-<p>
-        Private slot to handle the context menu request for the bookmarks tree.
-</p><dl>
-<dt><i>pos</i></dt>
-<dd>
-position the context menu was requested (QPoint)
-</dd>
-</dl><a NAME="DownloadManager.__finished" ID="DownloadManager.__finished"></a>
-<h4>DownloadManager.__finished</h4>
-<b>__finished</b>(<i></i>)
-<p>
-        Private slot to handle a finished download.
-</p><a NAME="DownloadManager.__load" ID="DownloadManager.__load"></a>
-<h4>DownloadManager.__load</h4>
-<b>__load</b>(<i></i>)
-<p>
-        Private method to load the download settings.
-</p><a NAME="DownloadManager.__updateActiveItemCount" ID="DownloadManager.__updateActiveItemCount"></a>
-<h4>DownloadManager.__updateActiveItemCount</h4>
-<b>__updateActiveItemCount</b>(<i></i>)
-<p>
-        Private method to update the window title.
-</p><a NAME="DownloadManager.__updateItemCount" ID="DownloadManager.__updateItemCount"></a>
-<h4>DownloadManager.__updateItemCount</h4>
-<b>__updateItemCount</b>(<i></i>)
-<p>
-        Private method to update the count label.
-</p><a NAME="DownloadManager.__updateRow" ID="DownloadManager.__updateRow"></a>
-<h4>DownloadManager.__updateRow</h4>
-<b>__updateRow</b>(<i>itm</i>)
-<p>
-        Private slot to update a download item.
-</p><dl>
-<dt><i>itm</i> (DownloadItem)</dt>
-<dd>
-reference to the download item
-</dd>
-</dl><a NAME="DownloadManager.activeDownloads" ID="DownloadManager.activeDownloads"></a>
-<h4>DownloadManager.activeDownloads</h4>
-<b>activeDownloads</b>(<i></i>)
-<p>
-        Public method to get the number of active downloads.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-number of active downloads (integer)
-</dd>
-</dl><a NAME="DownloadManager.allowQuit" ID="DownloadManager.allowQuit"></a>
-<h4>DownloadManager.allowQuit</h4>
-<b>allowQuit</b>(<i></i>)
-<p>
-        Public method to check, if it is ok to quit.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating allowance to quit (boolean)
-</dd>
-</dl><a NAME="DownloadManager.changeOccurred" ID="DownloadManager.changeOccurred"></a>
-<h4>DownloadManager.changeOccurred</h4>
-<b>changeOccurred</b>(<i></i>)
-<p>
-        Public method to signal a change.
-</p><a NAME="DownloadManager.cleanup" ID="DownloadManager.cleanup"></a>
-<h4>DownloadManager.cleanup</h4>
-<b>cleanup</b>(<i></i>)
-<p>
-        Public slot to cleanup the downloads.
-</p><a NAME="DownloadManager.count" ID="DownloadManager.count"></a>
-<h4>DownloadManager.count</h4>
-<b>count</b>(<i></i>)
-<p>
-        Public method to get the number of downloads.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-number of downloads (integer)
-</dd>
-</dl><a NAME="DownloadManager.download" ID="DownloadManager.download"></a>
-<h4>DownloadManager.download</h4>
-<b>download</b>(<i>requestOrUrl, requestFileName=False, mainWindow=None</i>)
-<p>
-        Public method to download a file.
-</p><dl>
-<dt><i>requestOrUrl</i></dt>
-<dd>
-reference to a request object (QNetworkRequest)
-            or a URL to be downloaded (QUrl)
-</dd><dt><i>requestFileName=</i></dt>
-<dd>
-flag indicating to ask for the
-            download file name (boolean)
-</dd><dt><i>mainWindow=</i></dt>
-<dd>
-reference to the main window (HelpWindow)
-</dd>
-</dl><a NAME="DownloadManager.downloadDirectory" ID="DownloadManager.downloadDirectory"></a>
-<h4>DownloadManager.downloadDirectory</h4>
-<b>downloadDirectory</b>(<i></i>)
-<p>
-        Public method to get the current download directory.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-current download directory (string)
-</dd>
-</dl><a NAME="DownloadManager.downloads" ID="DownloadManager.downloads"></a>
-<h4>DownloadManager.downloads</h4>
-<b>downloads</b>(<i></i>)
-<p>
-        Public method to get a reference to the downloads.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the downloads (list of DownloadItem)
-</dd>
-</dl><a NAME="DownloadManager.handleUnsupportedContent" ID="DownloadManager.handleUnsupportedContent"></a>
-<h4>DownloadManager.handleUnsupportedContent</h4>
-<b>handleUnsupportedContent</b>(<i>reply, requestFileName=False, webPage=None, download=False, mainWindow=None</i>)
-<p>
-        Public method to handle unsupported content by downloading the
-        referenced resource.
-</p><dl>
-<dt><i>reply</i></dt>
-<dd>
-reference to the reply object (QNetworkReply)
-</dd><dt><i>requestFileName=</i></dt>
-<dd>
-indicating to ask for a filename
-            (boolean)
-</dd><dt><i>webPage=</i></dt>
-<dd>
-reference to the web page (HelpWebPage)
-</dd><dt><i>download=</i></dt>
-<dd>
-flag indicating a download request (boolean)
-</dd><dt><i>mainWindow=</i></dt>
-<dd>
-reference to the main window (HelpWindow)
-</dd>
-</dl><a NAME="DownloadManager.on_cleanupButton_clicked" ID="DownloadManager.on_cleanupButton_clicked"></a>
-<h4>DownloadManager.on_cleanupButton_clicked</h4>
-<b>on_cleanupButton_clicked</b>(<i></i>)
-<p>
-        Private slot cleanup the downloads.
-</p><a NAME="DownloadManager.removePolicy" ID="DownloadManager.removePolicy"></a>
-<h4>DownloadManager.removePolicy</h4>
-<b>removePolicy</b>(<i></i>)
-<p>
-        Public method to get the remove policy.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-remove policy (integer)
-</dd>
-</dl><a NAME="DownloadManager.save" ID="DownloadManager.save"></a>
-<h4>DownloadManager.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public method to save the download settings.
-</p><a NAME="DownloadManager.setDownloadDirectory" ID="DownloadManager.setDownloadDirectory"></a>
-<h4>DownloadManager.setDownloadDirectory</h4>
-<b>setDownloadDirectory</b>(<i>directory</i>)
-<p>
-        Public method to set the current download directory.
-</p><dl>
-<dt><i>directory</i></dt>
-<dd>
-current download directory (string)
-</dd>
-</dl><a NAME="DownloadManager.setRemovePolicy" ID="DownloadManager.setRemovePolicy"></a>
-<h4>DownloadManager.setRemovePolicy</h4>
-<b>setRemovePolicy</b>(<i>policy</i>)
-<p>
-        Public method to set the remove policy.
-</p><dl>
-<dt><i>policy</i></dt>
-<dd>
-policy to be set
-            (DownloadManager.RemoveExit, DownloadManager.RemoveNever,
-             DownloadManager.RemoveSuccessFullDownload)
-</dd>
-</dl><a NAME="DownloadManager.shutdown" ID="DownloadManager.shutdown"></a>
-<h4>DownloadManager.shutdown</h4>
-<b>shutdown</b>(<i></i>)
-<p>
-        Public method to stop the download manager.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Download.DownloadModel.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Download.DownloadModel</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Download.DownloadModel</h1>
-<p>
-Module implementing the download model.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#DownloadModel">DownloadModel</a></td>
-<td>Class implementing the download model.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="DownloadModel" ID="DownloadModel"></a>
-<h2>DownloadModel</h2>
-<p>
-    Class implementing the download model.
-</p>
-<h3>Derived from</h3>
-QAbstractListModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#DownloadModel.__init__">DownloadModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#DownloadModel.data">data</a></td>
-<td>Public method to get data from the model.</td>
-</tr><tr>
-<td><a href="#DownloadModel.flags">flags</a></td>
-<td>Public method to get flags for an item.</td>
-</tr><tr>
-<td><a href="#DownloadModel.mimeData">mimeData</a></td>
-<td>Public method to return the mime data.</td>
-</tr><tr>
-<td><a href="#DownloadModel.removeRows">removeRows</a></td>
-<td>Public method to remove bookmarks from the model.</td>
-</tr><tr>
-<td><a href="#DownloadModel.rowCount">rowCount</a></td>
-<td>Public method to get the number of rows of the model.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="DownloadModel.__init__" ID="DownloadModel.__init__"></a>
-<h4>DownloadModel (Constructor)</h4>
-<b>DownloadModel</b>(<i>manager, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>manager</i></dt>
-<dd>
-reference to the download manager (DownloadManager)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="DownloadModel.data" ID="DownloadModel.data"></a>
-<h4>DownloadModel.data</h4>
-<b>data</b>(<i>index, role</i>)
-<p>
-        Public method to get data from the model.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index to get data for (QModelIndex)
-</dd><dt><i>role</i></dt>
-<dd>
-role of the data to retrieve (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested data
-</dd>
-</dl><a NAME="DownloadModel.flags" ID="DownloadModel.flags"></a>
-<h4>DownloadModel.flags</h4>
-<b>flags</b>(<i>index</i>)
-<p>
-        Public method to get flags for an item.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the node cell (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flags (Qt.ItemFlags)
-</dd>
-</dl><a NAME="DownloadModel.mimeData" ID="DownloadModel.mimeData"></a>
-<h4>DownloadModel.mimeData</h4>
-<b>mimeData</b>(<i>indexes</i>)
-<p>
-        Public method to return the mime data.
-</p><dl>
-<dt><i>indexes</i></dt>
-<dd>
-list of indexes (QModelIndexList)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-mime data (QMimeData)
-</dd>
-</dl><a NAME="DownloadModel.removeRows" ID="DownloadModel.removeRows"></a>
-<h4>DownloadModel.removeRows</h4>
-<b>removeRows</b>(<i>row, count, parent=None</i>)
-<p>
-        Public method to remove bookmarks from the model.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row of the first bookmark to remove (integer)
-</dd><dt><i>count</i></dt>
-<dd>
-number of bookmarks to remove (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-index of the parent bookmark node (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating successful removal (boolean)
-</dd>
-</dl><a NAME="DownloadModel.rowCount" ID="DownloadModel.rowCount"></a>
-<h4>DownloadModel.rowCount</h4>
-<b>rowCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of rows of the model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of rows (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Download.DownloadUtilities.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Download.DownloadUtilities</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Download.DownloadUtilities</h1>
-<p>
-Module implementing some utility functions for the Download package.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#dataString">dataString</a></td>
-<td>Module function to generate a formatted size string.</td>
-</tr><tr>
-<td><a href="#timeString">timeString</a></td>
-<td>Module function to format the given time.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="dataString" ID="dataString"></a>
-<h2>dataString</h2>
-<b>dataString</b>(<i>size</i>)
-<p>
-    Module function to generate a formatted size string.
-</p><dl>
-<dt><i>size</i></dt>
-<dd>
-size to be formatted (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-formatted data string (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="timeString" ID="timeString"></a>
-<h2>timeString</h2>
-<b>timeString</b>(<i>timeRemaining</i>)
-<p>
-    Module function to format the given time.
-</p><dl>
-<dt><i>timeRemaining</i></dt>
-<dd>
-time to be formatted (float)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-time string (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar</h1>
-<p>
-Module implementing the feature permission bar widget.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FeaturePermissionBar">FeaturePermissionBar</a></td>
-<td>Class implementing the feature permission bar widget.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FeaturePermissionBar" ID="FeaturePermissionBar"></a>
-<h2>FeaturePermissionBar</h2>
-<p>
-    Class implementing the feature permission bar widget.
-</p>
-<h3>Derived from</h3>
-E5AnimatedWidget
-<h3>Class Attributes</h3>
-<table>
-<tr><td>DefaultHeight</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FeaturePermissionBar.__init__">FeaturePermissionBar</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FeaturePermissionBar.__permissionDenied">__permissionDenied</a></td>
-<td>Private slot handling the user pressing the deny button.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionBar.__permissionGranted">__permissionGranted</a></td>
-<td>Private slot handling the user pressing the allow button.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionBar.__permissionUnknown">__permissionUnknown</a></td>
-<td>Private slot handling the user closing the dialog without.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionBar.hide">hide</a></td>
-<td>Public slot to hide the animated widget.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FeaturePermissionBar.__init__" ID="FeaturePermissionBar.__init__"></a>
-<h4>FeaturePermissionBar (Constructor)</h4>
-<b>FeaturePermissionBar</b>(<i>view, frame, feature</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>view</i> (QWebView)</dt>
-<dd>
-reference to the web view
-</dd><dt><i>frame</i> (QWebFrame)</dt>
-<dd>
-frame sending the request
-</dd><dt><i>feature</i> (QWebPage.Feature)</dt>
-<dd>
-requested feature
-</dd>
-</dl><a NAME="FeaturePermissionBar.__permissionDenied" ID="FeaturePermissionBar.__permissionDenied"></a>
-<h4>FeaturePermissionBar.__permissionDenied</h4>
-<b>__permissionDenied</b>(<i></i>)
-<p>
-        Private slot handling the user pressing the deny button.
-</p><a NAME="FeaturePermissionBar.__permissionGranted" ID="FeaturePermissionBar.__permissionGranted"></a>
-<h4>FeaturePermissionBar.__permissionGranted</h4>
-<b>__permissionGranted</b>(<i></i>)
-<p>
-        Private slot handling the user pressing the allow button.
-</p><a NAME="FeaturePermissionBar.__permissionUnknown" ID="FeaturePermissionBar.__permissionUnknown"></a>
-<h4>FeaturePermissionBar.__permissionUnknown</h4>
-<b>__permissionUnknown</b>(<i></i>)
-<p>
-        Private slot handling the user closing the dialog without.
-</p><a NAME="FeaturePermissionBar.hide" ID="FeaturePermissionBar.hide"></a>
-<h4>FeaturePermissionBar.hide</h4>
-<b>hide</b>(<i></i>)
-<p>
-        Public slot to hide the animated widget.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager</h1>
-<p>
-Module implementing the feature permission manager object.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FeaturePermissionManager">FeaturePermissionManager</a></td>
-<td>Class implementing the feature permission manager object.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FeaturePermissionManager" ID="FeaturePermissionManager"></a>
-<h2>FeaturePermissionManager</h2>
-<p>
-    Class implementing the feature permission manager object.
-</p>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>SettingsKeyFormat</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FeaturePermissionManager.__init__">FeaturePermissionManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FeaturePermissionManager.__loadSettings">__loadSettings</a></td>
-<td>Private method to load the remembered feature permissions.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionManager.__saveSettings">__saveSettings</a></td>
-<td>Private method to save the remembered feature permissions.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionManager.rememberFeaturePermission">rememberFeaturePermission</a></td>
-<td>Public method to remember a user decision for a feature permission.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionManager.requestFeaturePermission">requestFeaturePermission</a></td>
-<td>Public method to request a feature permission.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionManager.showFeaturePermissionsDialog">showFeaturePermissionsDialog</a></td>
-<td>Public method to show a dialog to manage the remembered feature permissions.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FeaturePermissionManager.__init__" ID="FeaturePermissionManager.__init__"></a>
-<h4>FeaturePermissionManager (Constructor)</h4>
-<b>FeaturePermissionManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i> (QObject)</dt>
-<dd>
-reference to the parent object
-</dd>
-</dl><a NAME="FeaturePermissionManager.__loadSettings" ID="FeaturePermissionManager.__loadSettings"></a>
-<h4>FeaturePermissionManager.__loadSettings</h4>
-<b>__loadSettings</b>(<i></i>)
-<p>
-        Private method to load the remembered feature permissions.
-</p><a NAME="FeaturePermissionManager.__saveSettings" ID="FeaturePermissionManager.__saveSettings"></a>
-<h4>FeaturePermissionManager.__saveSettings</h4>
-<b>__saveSettings</b>(<i></i>)
-<p>
-        Private method to save the remembered feature permissions.
-</p><a NAME="FeaturePermissionManager.rememberFeaturePermission" ID="FeaturePermissionManager.rememberFeaturePermission"></a>
-<h4>FeaturePermissionManager.rememberFeaturePermission</h4>
-<b>rememberFeaturePermission</b>(<i>host, feature, permission</i>)
-<p>
-        Public method to remember a user decision for a feature permission.
-</p><dl>
-<dt><i>host</i> (str)</dt>
-<dd>
-host name to remember the decision for
-</dd><dt><i>feature</i> (QWebPage.Feature)</dt>
-<dd>
-feature to be remembered
-</dd><dt><i>permission</i> (QWebPage.PermissionPolicy)</dt>
-<dd>
-feature permission to be remembered
-</dd>
-</dl><a NAME="FeaturePermissionManager.requestFeaturePermission" ID="FeaturePermissionManager.requestFeaturePermission"></a>
-<h4>FeaturePermissionManager.requestFeaturePermission</h4>
-<b>requestFeaturePermission</b>(<i>page, frame, feature</i>)
-<p>
-        Public method to request a feature permission.
-</p><dl>
-<dt><i>page</i> (QWebPage)</dt>
-<dd>
-reference to the requesting web page
-</dd><dt><i>frame</i> (QWebFrame)</dt>
-<dd>
-frame sending the request
-</dd><dt><i>feature</i> (QWebPage.Feature)</dt>
-<dd>
-requested feature
-</dd>
-</dl><a NAME="FeaturePermissionManager.showFeaturePermissionsDialog" ID="FeaturePermissionManager.showFeaturePermissionsDialog"></a>
-<h4>FeaturePermissionManager.showFeaturePermissionsDialog</h4>
-<b>showFeaturePermissionsDialog</b>(<i></i>)
-<p>
-        Public method to show a dialog to manage the remembered feature
-        permissions.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,169 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog</h1>
-<p>
-Module implementing the feature permission dialog.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FeaturePermissionsDialog">FeaturePermissionsDialog</a></td>
-<td>Class implementing the feature permission dialog.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FeaturePermissionsDialog" ID="FeaturePermissionsDialog"></a>
-<h2>FeaturePermissionsDialog</h2>
-<p>
-    Class implementing the feature permission dialog.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_FeaturePermissionsDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FeaturePermissionsDialog.__init__">FeaturePermissionsDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FeaturePermissionsDialog.__updateGeoButtons">__updateGeoButtons</a></td>
-<td>Private method to update the geolocation buttons.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionsDialog.__updateNotifButtons">__updateNotifButtons</a></td>
-<td>Private method to update the notifications buttons.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionsDialog.getData">getData</a></td>
-<td>Public method to retrieve the dialog contents.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionsDialog.on_geoList_itemSelectionChanged">on_geoList_itemSelectionChanged</a></td>
-<td>Private slot handling changes in the list of selected geolocation items.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionsDialog.on_geoRemoveAllButton_clicked">on_geoRemoveAllButton_clicked</a></td>
-<td>Private slot to remove all geolocation entries.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionsDialog.on_geoRemoveButton_clicked">on_geoRemoveButton_clicked</a></td>
-<td>Private slot to remove selected geolocation entries.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionsDialog.on_notifList_itemSelectionChanged">on_notifList_itemSelectionChanged</a></td>
-<td>Private slot handling changes in the list of selected notifications items.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionsDialog.on_notifRemoveAllButton_clicked">on_notifRemoveAllButton_clicked</a></td>
-<td>Private slot to remove all notification entries.</td>
-</tr><tr>
-<td><a href="#FeaturePermissionsDialog.on_notifRemoveButton_clicked">on_notifRemoveButton_clicked</a></td>
-<td>Private slot to remove selected notification entries.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FeaturePermissionsDialog.__init__" ID="FeaturePermissionsDialog.__init__"></a>
-<h4>FeaturePermissionsDialog (Constructor)</h4>
-<b>FeaturePermissionsDialog</b>(<i>featurePermissions, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>featurePermissions</i> (dict of dict of list)</dt>
-<dd>
-dictionary with remembered feature
-            permissions
-</dd><dt><i>parent</i> (QWidget)</dt>
-<dd>
-reference to the parent widget
-</dd>
-</dl><a NAME="FeaturePermissionsDialog.__updateGeoButtons" ID="FeaturePermissionsDialog.__updateGeoButtons"></a>
-<h4>FeaturePermissionsDialog.__updateGeoButtons</h4>
-<b>__updateGeoButtons</b>(<i></i>)
-<p>
-        Private method to update the geolocation buttons.
-</p><a NAME="FeaturePermissionsDialog.__updateNotifButtons" ID="FeaturePermissionsDialog.__updateNotifButtons"></a>
-<h4>FeaturePermissionsDialog.__updateNotifButtons</h4>
-<b>__updateNotifButtons</b>(<i></i>)
-<p>
-        Private method to update the notifications buttons.
-</p><a NAME="FeaturePermissionsDialog.getData" ID="FeaturePermissionsDialog.getData"></a>
-<h4>FeaturePermissionsDialog.getData</h4>
-<b>getData</b>(<i></i>)
-<p>
-        Public method to retrieve the dialog contents.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-new feature permission settings
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-dict of dict of list
-</dd>
-</dl><a NAME="FeaturePermissionsDialog.on_geoList_itemSelectionChanged" ID="FeaturePermissionsDialog.on_geoList_itemSelectionChanged"></a>
-<h4>FeaturePermissionsDialog.on_geoList_itemSelectionChanged</h4>
-<b>on_geoList_itemSelectionChanged</b>(<i></i>)
-<p>
-        Private slot handling changes in the list of selected geolocation
-        items.
-</p><a NAME="FeaturePermissionsDialog.on_geoRemoveAllButton_clicked" ID="FeaturePermissionsDialog.on_geoRemoveAllButton_clicked"></a>
-<h4>FeaturePermissionsDialog.on_geoRemoveAllButton_clicked</h4>
-<b>on_geoRemoveAllButton_clicked</b>(<i></i>)
-<p>
-        Private slot to remove all geolocation entries.
-</p><a NAME="FeaturePermissionsDialog.on_geoRemoveButton_clicked" ID="FeaturePermissionsDialog.on_geoRemoveButton_clicked"></a>
-<h4>FeaturePermissionsDialog.on_geoRemoveButton_clicked</h4>
-<b>on_geoRemoveButton_clicked</b>(<i></i>)
-<p>
-        Private slot to remove selected geolocation entries.
-</p><a NAME="FeaturePermissionsDialog.on_notifList_itemSelectionChanged" ID="FeaturePermissionsDialog.on_notifList_itemSelectionChanged"></a>
-<h4>FeaturePermissionsDialog.on_notifList_itemSelectionChanged</h4>
-<b>on_notifList_itemSelectionChanged</b>(<i></i>)
-<p>
-        Private slot handling changes in the list of selected notifications
-        items.
-</p><a NAME="FeaturePermissionsDialog.on_notifRemoveAllButton_clicked" ID="FeaturePermissionsDialog.on_notifRemoveAllButton_clicked"></a>
-<h4>FeaturePermissionsDialog.on_notifRemoveAllButton_clicked</h4>
-<b>on_notifRemoveAllButton_clicked</b>(<i></i>)
-<p>
-        Private slot to remove all notification entries.
-</p><a NAME="FeaturePermissionsDialog.on_notifRemoveButton_clicked" ID="FeaturePermissionsDialog.on_notifRemoveButton_clicked"></a>
-<h4>FeaturePermissionsDialog.on_notifRemoveButton_clicked</h4>
-<b>on_notifRemoveButton_clicked</b>(<i></i>)
-<p>
-        Private slot to remove selected notification entries.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Feeds.FeedEditDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Feeds.FeedEditDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Feeds.FeedEditDialog</h1>
-<p>
-Module implementing a dialog to edit feed data.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FeedEditDialog">FeedEditDialog</a></td>
-<td>Class implementing a dialog to edit feed data.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FeedEditDialog" ID="FeedEditDialog"></a>
-<h2>FeedEditDialog</h2>
-<p>
-    Class implementing a dialog to edit feed data.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_FeedEditDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FeedEditDialog.__init__">FeedEditDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FeedEditDialog.__setOkButton">__setOkButton</a></td>
-<td>Private slot to enable or disable the OK button.</td>
-</tr><tr>
-<td><a href="#FeedEditDialog.getData">getData</a></td>
-<td>Public method to get the entered feed data.</td>
-</tr><tr>
-<td><a href="#FeedEditDialog.on_titleEdit_textChanged">on_titleEdit_textChanged</a></td>
-<td>Private slot to handle changes of the feed title.</td>
-</tr><tr>
-<td><a href="#FeedEditDialog.on_urlEdit_textChanged">on_urlEdit_textChanged</a></td>
-<td>Private slot to handle changes of the feed URL.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FeedEditDialog.__init__" ID="FeedEditDialog.__init__"></a>
-<h4>FeedEditDialog (Constructor)</h4>
-<b>FeedEditDialog</b>(<i>urlString, title, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>urlString</i></dt>
-<dd>
-feed URL (string)
-</dd><dt><i>title</i></dt>
-<dd>
-feed title (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="FeedEditDialog.__setOkButton" ID="FeedEditDialog.__setOkButton"></a>
-<h4>FeedEditDialog.__setOkButton</h4>
-<b>__setOkButton</b>(<i></i>)
-<p>
-        Private slot to enable or disable the OK button.
-</p><a NAME="FeedEditDialog.getData" ID="FeedEditDialog.getData"></a>
-<h4>FeedEditDialog.getData</h4>
-<b>getData</b>(<i></i>)
-<p>
-        Public method to get the entered feed data.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-tuple of two strings giving the feed URL and feed title
-            (string, string)
-</dd>
-</dl><a NAME="FeedEditDialog.on_titleEdit_textChanged" ID="FeedEditDialog.on_titleEdit_textChanged"></a>
-<h4>FeedEditDialog.on_titleEdit_textChanged</h4>
-<b>on_titleEdit_textChanged</b>(<i>txt</i>)
-<p>
-        Private slot to handle changes of the feed title.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-new feed title (string)
-</dd>
-</dl><a NAME="FeedEditDialog.on_urlEdit_textChanged" ID="FeedEditDialog.on_urlEdit_textChanged"></a>
-<h4>FeedEditDialog.on_urlEdit_textChanged</h4>
-<b>on_urlEdit_textChanged</b>(<i>txt</i>)
-<p>
-        Private slot to handle changes of the feed URL.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-new feed URL (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Feeds.FeedsDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Feeds.FeedsDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Feeds.FeedsDialog</h1>
-<p>
-Module implementing a dialog to add RSS feeds.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FeedsDialog">FeedsDialog</a></td>
-<td>Class implementing a dialog to add RSS feeds.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FeedsDialog" ID="FeedsDialog"></a>
-<h2>FeedsDialog</h2>
-<p>
-    Class implementing a dialog to add RSS feeds.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_FeedsDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FeedsDialog.__init__">FeedsDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FeedsDialog.__addFeed">__addFeed</a></td>
-<td>Private slot to add a RSS feed.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FeedsDialog.__init__" ID="FeedsDialog.__init__"></a>
-<h4>FeedsDialog (Constructor)</h4>
-<b>FeedsDialog</b>(<i>availableFeeds, browser, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>availableFeeds</i></dt>
-<dd>
-list of available RSS feeds (list of tuple of
-            two strings)
-</dd><dt><i>browser</i></dt>
-<dd>
-reference to the browser widget (HelpBrowser)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="FeedsDialog.__addFeed" ID="FeedsDialog.__addFeed"></a>
-<h4>FeedsDialog.__addFeed</h4>
-<b>__addFeed</b>(<i>button</i>)
-<p>
-        Private slot to add a RSS feed.
-</p><dl>
-<dt><i>button</i> (QPushButton)</dt>
-<dd>
-reference to the feed button
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Feeds.FeedsManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,301 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Feeds.FeedsManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Feeds.FeedsManager</h1>
-<p>
-Module implementing a RSS feeds manager dialog.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FeedsManager">FeedsManager</a></td>
-<td>Class implementing a RSS feeds manager dialog.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FeedsManager" ID="FeedsManager"></a>
-<h2>FeedsManager</h2>
-<p>
-    Class implementing a RSS feeds manager dialog.
-</p><h3>Signals</h3>
-<dl>
-<dt>newUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL in a new tab
-</dd><dt>openUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL in the current tab
-</dd>
-</dl>
-<h3>Derived from</h3>
-QDialog, Ui_FeedsManager
-<h3>Class Attributes</h3>
-<table>
-<tr><td>ErrorDataRole</td></tr><tr><td>UrlStringRole</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FeedsManager.__init__">FeedsManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FeedsManager.__addFeedItem">__addFeedItem</a></td>
-<td>Private slot to add a top level feed item.</td>
-</tr><tr>
-<td><a href="#FeedsManager.__copyUrlToClipboard">__copyUrlToClipboard</a></td>
-<td>Private slot to copy the URL of the selected item to the clipboard.</td>
-</tr><tr>
-<td><a href="#FeedsManager.__customContextMenuRequested">__customContextMenuRequested</a></td>
-<td>Private slot to handle the context menu request for the bookmarks tree.</td>
-</tr><tr>
-<td><a href="#FeedsManager.__enableButtons">__enableButtons</a></td>
-<td>Private slot to disable/enable various buttons.</td>
-</tr><tr>
-<td><a href="#FeedsManager.__feedLoaded">__feedLoaded</a></td>
-<td>Private slot to extract the loaded feed data.</td>
-</tr><tr>
-<td><a href="#FeedsManager.__itemActivated">__itemActivated</a></td>
-<td>Private slot to handle the activation of an item.</td>
-</tr><tr>
-<td><a href="#FeedsManager.__load">__load</a></td>
-<td>Private method to load the feeds data.</td>
-</tr><tr>
-<td><a href="#FeedsManager.__openMessage">__openMessage</a></td>
-<td>Private method to open a feed message.</td>
-</tr><tr>
-<td><a href="#FeedsManager.__openMessageInCurrentTab">__openMessageInCurrentTab</a></td>
-<td>Private slot to open a feed message in the current browser tab.</td>
-</tr><tr>
-<td><a href="#FeedsManager.__openMessageInNewTab">__openMessageInNewTab</a></td>
-<td>Private slot to open a feed message in a new browser tab.</td>
-</tr><tr>
-<td><a href="#FeedsManager.__reloadFeed">__reloadFeed</a></td>
-<td>Private method to reload the given feed.</td>
-</tr><tr>
-<td><a href="#FeedsManager.__save">__save</a></td>
-<td>Private method to store the feeds data.</td>
-</tr><tr>
-<td><a href="#FeedsManager.__showError">__showError</a></td>
-<td>Private slot to show error info for a failed load operation.</td>
-</tr><tr>
-<td><a href="#FeedsManager.addFeed">addFeed</a></td>
-<td>Public method to add a feed.</td>
-</tr><tr>
-<td><a href="#FeedsManager.on_deleteButton_clicked">on_deleteButton_clicked</a></td>
-<td>Private slot to delete the selected feed.</td>
-</tr><tr>
-<td><a href="#FeedsManager.on_editButton_clicked">on_editButton_clicked</a></td>
-<td>Private slot to edit the selected feed.</td>
-</tr><tr>
-<td><a href="#FeedsManager.on_feedsTree_itemSelectionChanged">on_feedsTree_itemSelectionChanged</a></td>
-<td>Private slot to enable the various buttons depending on the selection.</td>
-</tr><tr>
-<td><a href="#FeedsManager.on_reloadAllButton_clicked">on_reloadAllButton_clicked</a></td>
-<td>Private slot to reload all feeds.</td>
-</tr><tr>
-<td><a href="#FeedsManager.on_reloadButton_clicked">on_reloadButton_clicked</a></td>
-<td>Private slot to reload the selected feed.</td>
-</tr><tr>
-<td><a href="#FeedsManager.show">show</a></td>
-<td>Public slot to show the feeds manager dialog.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FeedsManager.__init__" ID="FeedsManager.__init__"></a>
-<h4>FeedsManager (Constructor)</h4>
-<b>FeedsManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="FeedsManager.__addFeedItem" ID="FeedsManager.__addFeedItem"></a>
-<h4>FeedsManager.__addFeedItem</h4>
-<b>__addFeedItem</b>(<i>feed</i>)
-<p>
-        Private slot to add a top level feed item.
-</p><dl>
-<dt><i>feed</i></dt>
-<dd>
-tuple containing feed info (URL, title, icon)
-            (string, string, QIcon)
-</dd>
-</dl><a NAME="FeedsManager.__copyUrlToClipboard" ID="FeedsManager.__copyUrlToClipboard"></a>
-<h4>FeedsManager.__copyUrlToClipboard</h4>
-<b>__copyUrlToClipboard</b>(<i></i>)
-<p>
-        Private slot to copy the URL of the selected item to the clipboard.
-</p><a NAME="FeedsManager.__customContextMenuRequested" ID="FeedsManager.__customContextMenuRequested"></a>
-<h4>FeedsManager.__customContextMenuRequested</h4>
-<b>__customContextMenuRequested</b>(<i>pos</i>)
-<p>
-        Private slot to handle the context menu request for the bookmarks tree.
-</p><dl>
-<dt><i>pos</i></dt>
-<dd>
-position the context menu was requested (QPoint)
-</dd>
-</dl><a NAME="FeedsManager.__enableButtons" ID="FeedsManager.__enableButtons"></a>
-<h4>FeedsManager.__enableButtons</h4>
-<b>__enableButtons</b>(<i></i>)
-<p>
-        Private slot to disable/enable various buttons.
-</p><a NAME="FeedsManager.__feedLoaded" ID="FeedsManager.__feedLoaded"></a>
-<h4>FeedsManager.__feedLoaded</h4>
-<b>__feedLoaded</b>(<i>reply</i>)
-<p>
-        Private slot to extract the loaded feed data.
-</p><dl>
-<dt><i>reply</i> (QNetworkReply)</dt>
-<dd>
-reference to the network reply
-</dd>
-</dl><a NAME="FeedsManager.__itemActivated" ID="FeedsManager.__itemActivated"></a>
-<h4>FeedsManager.__itemActivated</h4>
-<b>__itemActivated</b>(<i>itm, column</i>)
-<p>
-        Private slot to handle the activation of an item.
-</p><dl>
-<dt><i>itm</i></dt>
-<dd>
-reference to the activated item (QTreeWidgetItem)
-</dd><dt><i>column</i></dt>
-<dd>
-column of the activation (integer)
-</dd>
-</dl><a NAME="FeedsManager.__load" ID="FeedsManager.__load"></a>
-<h4>FeedsManager.__load</h4>
-<b>__load</b>(<i></i>)
-<p>
-        Private method to load the feeds data.
-</p><a NAME="FeedsManager.__openMessage" ID="FeedsManager.__openMessage"></a>
-<h4>FeedsManager.__openMessage</h4>
-<b>__openMessage</b>(<i>newTab</i>)
-<p>
-        Private method to open a feed message.
-</p><dl>
-<dt><i>newTab</i></dt>
-<dd>
-flag indicating to open the feed message in a new tab
-            (boolean)
-</dd>
-</dl><a NAME="FeedsManager.__openMessageInCurrentTab" ID="FeedsManager.__openMessageInCurrentTab"></a>
-<h4>FeedsManager.__openMessageInCurrentTab</h4>
-<b>__openMessageInCurrentTab</b>(<i></i>)
-<p>
-        Private slot to open a feed message in the current browser tab.
-</p><a NAME="FeedsManager.__openMessageInNewTab" ID="FeedsManager.__openMessageInNewTab"></a>
-<h4>FeedsManager.__openMessageInNewTab</h4>
-<b>__openMessageInNewTab</b>(<i></i>)
-<p>
-        Private slot to open a feed message in a new browser tab.
-</p><a NAME="FeedsManager.__reloadFeed" ID="FeedsManager.__reloadFeed"></a>
-<h4>FeedsManager.__reloadFeed</h4>
-<b>__reloadFeed</b>(<i>itm</i>)
-<p>
-        Private method to reload the given feed.
-</p><dl>
-<dt><i>itm</i></dt>
-<dd>
-feed item to be reloaded (QTreeWidgetItem)
-</dd>
-</dl><a NAME="FeedsManager.__save" ID="FeedsManager.__save"></a>
-<h4>FeedsManager.__save</h4>
-<b>__save</b>(<i></i>)
-<p>
-        Private method to store the feeds data.
-</p><a NAME="FeedsManager.__showError" ID="FeedsManager.__showError"></a>
-<h4>FeedsManager.__showError</h4>
-<b>__showError</b>(<i></i>)
-<p>
-        Private slot to show error info for a failed load operation.
-</p><a NAME="FeedsManager.addFeed" ID="FeedsManager.addFeed"></a>
-<h4>FeedsManager.addFeed</h4>
-<b>addFeed</b>(<i>urlString, title, icon</i>)
-<p>
-        Public method to add a feed.
-</p><dl>
-<dt><i>urlString</i></dt>
-<dd>
-URL of the feed (string)
-</dd><dt><i>title</i></dt>
-<dd>
-title of the feed (string)
-</dd><dt><i>icon</i></dt>
-<dd>
-icon for the feed (QIcon)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a successful addition of the feed (boolean)
-</dd>
-</dl><a NAME="FeedsManager.on_deleteButton_clicked" ID="FeedsManager.on_deleteButton_clicked"></a>
-<h4>FeedsManager.on_deleteButton_clicked</h4>
-<b>on_deleteButton_clicked</b>(<i></i>)
-<p>
-        Private slot to delete the selected feed.
-</p><a NAME="FeedsManager.on_editButton_clicked" ID="FeedsManager.on_editButton_clicked"></a>
-<h4>FeedsManager.on_editButton_clicked</h4>
-<b>on_editButton_clicked</b>(<i></i>)
-<p>
-        Private slot to edit the selected feed.
-</p><a NAME="FeedsManager.on_feedsTree_itemSelectionChanged" ID="FeedsManager.on_feedsTree_itemSelectionChanged"></a>
-<h4>FeedsManager.on_feedsTree_itemSelectionChanged</h4>
-<b>on_feedsTree_itemSelectionChanged</b>(<i></i>)
-<p>
-        Private slot to enable the various buttons depending on the selection.
-</p><a NAME="FeedsManager.on_reloadAllButton_clicked" ID="FeedsManager.on_reloadAllButton_clicked"></a>
-<h4>FeedsManager.on_reloadAllButton_clicked</h4>
-<b>on_reloadAllButton_clicked</b>(<i></i>)
-<p>
-        Private slot to reload all feeds.
-</p><a NAME="FeedsManager.on_reloadButton_clicked" ID="FeedsManager.on_reloadButton_clicked"></a>
-<h4>FeedsManager.on_reloadButton_clicked</h4>
-<b>on_reloadButton_clicked</b>(<i></i>)
-<p>
-        Private slot to reload the selected feed.
-</p><a NAME="FeedsManager.show" ID="FeedsManager.show"></a>
-<h4>FeedsManager.show</h4>
-<b>show</b>(<i></i>)
-<p>
-        Public slot to show the feeds manager dialog.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.FlashCookieManager.FlashCookie.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.FlashCookieManager.FlashCookie</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.FlashCookieManager.FlashCookie</h1>
-<p>
-Module implementing the Flash cookie class.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FlashCookie">FlashCookie</a></td>
-<td>Class implementing the Flash cookie.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FlashCookie" ID="FlashCookie"></a>
-<h2>FlashCookie</h2>
-<p>
-    Class implementing the Flash cookie.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FlashCookie.__init__">FlashCookie</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FlashCookie.__eq__">__eq__</a></td>
-<td>Special method to compare to another Flash cookie.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FlashCookie.__init__" ID="FlashCookie.__init__"></a>
-<h4>FlashCookie (Constructor)</h4>
-<b>FlashCookie</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="FlashCookie.__eq__" ID="FlashCookie.__eq__"></a>
-<h4>FlashCookie.__eq__</h4>
-<b>__eq__</b>(<i>other</i>)
-<p>
-        Special method to compare to another Flash cookie.
-</p><dl>
-<dt><i>other</i> (FlashCookie)</dt>
-<dd>
-reference to the other Flash cookie
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating equality of the two cookies
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,346 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.FlashCookieManager.FlashCookieManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.FlashCookieManager.FlashCookieManager</h1>
-<p>
-Module implementing the Flash cookie manager.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FlashCookieManager">FlashCookieManager</a></td>
-<td>Class implementing the Flash cookie manager object.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FlashCookieManager" ID="FlashCookieManager"></a>
-<h2>FlashCookieManager</h2>
-<p>
-    Class implementing the Flash cookie manager object.
-</p>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>RefreshInterval</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FlashCookieManager.__init__">FlashCookieManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.__autoRefresh">__autoRefresh</a></td>
-<td>Private slot to refresh the list of cookies.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.__extractOriginFrom">__extractOriginFrom</a></td>
-<td>Private method to extract the cookie origin given its file name.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.__insertFlashCookie">__insertFlashCookie</a></td>
-<td>Private method to insert a Flash cookie into the cache.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.__isBlacklisted">__isBlacklisted</a></td>
-<td>Private method to check for a blacklisted cookie.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.__isWhitelisted">__isWhitelisted</a></td>
-<td>Private method to check for a whitelisted cookie.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.__loadFlashCookies">__loadFlashCookies</a></td>
-<td>Private slot to load the Flash cookies to be cached.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.__loadFlashCookiesFromPath">__loadFlashCookiesFromPath</a></td>
-<td>Private slot to load the Flash cookies from a path.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.__removeAllButWhitelisted">__removeAllButWhitelisted</a></td>
-<td>Private method to remove all non-whitelisted cookies.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.__sharedObjectDirName">__sharedObjectDirName</a></td>
-<td>Private slot to determine the path of the shared data objects.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.__startStopTimer">__startStopTimer</a></td>
-<td>Private slot to start or stop the auto refresh timer.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.clearCache">clearCache</a></td>
-<td>Public method to clear the list of cached Flash cookies.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.clearNewOrigins">clearNewOrigins</a></td>
-<td>Public method to clear the list of newly detected Flash cookies.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.flashCookies">flashCookies</a></td>
-<td>Public method to get the list of cached Flash cookies.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.flashPlayerDataPath">flashPlayerDataPath</a></td>
-<td>Public method to get the Flash Player data path.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.newCookiesList">newCookiesList</a></td>
-<td>Public method to get the list of newly detected Flash cookies.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.preferencesChanged">preferencesChanged</a></td>
-<td>Public slot to handle a change of preferences.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.removeCookie">removeCookie</a></td>
-<td>Public method to remove a cookie of the list of cached cookies.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.setFlashCookies">setFlashCookies</a></td>
-<td>Public method to set the list of cached Flash cookies.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.showFlashCookieManagerDialog">showFlashCookieManagerDialog</a></td>
-<td>Public method to show the Flash cookies management dialog.</td>
-</tr><tr>
-<td><a href="#FlashCookieManager.shutdown">shutdown</a></td>
-<td>Public method to perform shutdown actions.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FlashCookieManager.__init__" ID="FlashCookieManager.__init__"></a>
-<h4>FlashCookieManager (Constructor)</h4>
-<b>FlashCookieManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i> (QObject)</dt>
-<dd>
-reference to the parent object
-</dd>
-</dl><a NAME="FlashCookieManager.__autoRefresh" ID="FlashCookieManager.__autoRefresh"></a>
-<h4>FlashCookieManager.__autoRefresh</h4>
-<b>__autoRefresh</b>(<i></i>)
-<p>
-        Private slot to refresh the list of cookies.
-</p><a NAME="FlashCookieManager.__extractOriginFrom" ID="FlashCookieManager.__extractOriginFrom"></a>
-<h4>FlashCookieManager.__extractOriginFrom</h4>
-<b>__extractOriginFrom</b>(<i>path</i>)
-<p>
-        Private method to extract the cookie origin given its file name.
-</p><dl>
-<dt><i>path</i> (str)</dt>
-<dd>
-file name of the cookie file
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-cookie origin
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl><a NAME="FlashCookieManager.__insertFlashCookie" ID="FlashCookieManager.__insertFlashCookie"></a>
-<h4>FlashCookieManager.__insertFlashCookie</h4>
-<b>__insertFlashCookie</b>(<i>path</i>)
-<p>
-        Private method to insert a Flash cookie into the cache.
-</p><dl>
-<dt><i>path</i> (str)</dt>
-<dd>
-Flash cookies path
-</dd>
-</dl><a NAME="FlashCookieManager.__isBlacklisted" ID="FlashCookieManager.__isBlacklisted"></a>
-<h4>FlashCookieManager.__isBlacklisted</h4>
-<b>__isBlacklisted</b>(<i>cookie</i>)
-<p>
-        Private method to check for a blacklisted cookie.
-</p><dl>
-<dt><i>cookie</i> (FlashCookie)</dt>
-<dd>
-Flash cookie to be tested
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a blacklisted cookie
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
-</dl><a NAME="FlashCookieManager.__isWhitelisted" ID="FlashCookieManager.__isWhitelisted"></a>
-<h4>FlashCookieManager.__isWhitelisted</h4>
-<b>__isWhitelisted</b>(<i>cookie</i>)
-<p>
-        Private method to check for a whitelisted cookie.
-</p><dl>
-<dt><i>cookie</i> (FlashCookie)</dt>
-<dd>
-Flash cookie to be tested
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a whitelisted cookie
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
-</dl><a NAME="FlashCookieManager.__loadFlashCookies" ID="FlashCookieManager.__loadFlashCookies"></a>
-<h4>FlashCookieManager.__loadFlashCookies</h4>
-<b>__loadFlashCookies</b>(<i></i>)
-<p>
-        Private slot to load the Flash cookies to be cached.
-</p><a NAME="FlashCookieManager.__loadFlashCookiesFromPath" ID="FlashCookieManager.__loadFlashCookiesFromPath"></a>
-<h4>FlashCookieManager.__loadFlashCookiesFromPath</h4>
-<b>__loadFlashCookiesFromPath</b>(<i>path</i>)
-<p>
-        Private slot to load the Flash cookies from a path.
-</p><dl>
-<dt><i>path</i> (str)</dt>
-<dd>
-Flash cookies path
-</dd>
-</dl><a NAME="FlashCookieManager.__removeAllButWhitelisted" ID="FlashCookieManager.__removeAllButWhitelisted"></a>
-<h4>FlashCookieManager.__removeAllButWhitelisted</h4>
-<b>__removeAllButWhitelisted</b>(<i></i>)
-<p>
-        Private method to remove all non-whitelisted cookies.
-</p><a NAME="FlashCookieManager.__sharedObjectDirName" ID="FlashCookieManager.__sharedObjectDirName"></a>
-<h4>FlashCookieManager.__sharedObjectDirName</h4>
-<b>__sharedObjectDirName</b>(<i></i>)
-<p>
-        Private slot to determine the path of the shared data objects.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-path of the shared data objects
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl><a NAME="FlashCookieManager.__startStopTimer" ID="FlashCookieManager.__startStopTimer"></a>
-<h4>FlashCookieManager.__startStopTimer</h4>
-<b>__startStopTimer</b>(<i></i>)
-<p>
-        Private slot to start or stop the auto refresh timer.
-</p><a NAME="FlashCookieManager.clearCache" ID="FlashCookieManager.clearCache"></a>
-<h4>FlashCookieManager.clearCache</h4>
-<b>clearCache</b>(<i></i>)
-<p>
-        Public method to clear the list of cached Flash cookies.
-</p><a NAME="FlashCookieManager.clearNewOrigins" ID="FlashCookieManager.clearNewOrigins"></a>
-<h4>FlashCookieManager.clearNewOrigins</h4>
-<b>clearNewOrigins</b>(<i></i>)
-<p>
-        Public method to clear the list of newly detected Flash cookies.
-</p><a NAME="FlashCookieManager.flashCookies" ID="FlashCookieManager.flashCookies"></a>
-<h4>FlashCookieManager.flashCookies</h4>
-<b>flashCookies</b>(<i></i>)
-<p>
-        Public method to get the list of cached Flash cookies.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of Flash cookies
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of FlashCookie
-</dd>
-</dl><a NAME="FlashCookieManager.flashPlayerDataPath" ID="FlashCookieManager.flashPlayerDataPath"></a>
-<h4>FlashCookieManager.flashPlayerDataPath</h4>
-<b>flashPlayerDataPath</b>(<i></i>)
-<p>
-        Public method to get the Flash Player data path.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-Flash Player data path
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl><a NAME="FlashCookieManager.newCookiesList" ID="FlashCookieManager.newCookiesList"></a>
-<h4>FlashCookieManager.newCookiesList</h4>
-<b>newCookiesList</b>(<i></i>)
-<p>
-        Public method to get the list of newly detected Flash cookies.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of newly detected Flash cookies
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="FlashCookieManager.preferencesChanged" ID="FlashCookieManager.preferencesChanged"></a>
-<h4>FlashCookieManager.preferencesChanged</h4>
-<b>preferencesChanged</b>(<i></i>)
-<p>
-        Public slot to handle a change of preferences.
-</p><a NAME="FlashCookieManager.removeCookie" ID="FlashCookieManager.removeCookie"></a>
-<h4>FlashCookieManager.removeCookie</h4>
-<b>removeCookie</b>(<i>cookie</i>)
-<p>
-        Public method to remove a cookie of the list of cached cookies.
-</p><dl>
-<dt><i>cookie</i> (FlashCookie)</dt>
-<dd>
-Flash cookie to be removed
-</dd>
-</dl><a NAME="FlashCookieManager.setFlashCookies" ID="FlashCookieManager.setFlashCookies"></a>
-<h4>FlashCookieManager.setFlashCookies</h4>
-<b>setFlashCookies</b>(<i>cookies</i>)
-<p>
-        Public method to set the list of cached Flash cookies.
-</p><dl>
-<dt><i>cookies</i> (list of FlashCookie)</dt>
-<dd>
-list of Flash cookies to store
-</dd>
-</dl><a NAME="FlashCookieManager.showFlashCookieManagerDialog" ID="FlashCookieManager.showFlashCookieManagerDialog"></a>
-<h4>FlashCookieManager.showFlashCookieManagerDialog</h4>
-<b>showFlashCookieManagerDialog</b>(<i></i>)
-<p>
-        Public method to show the Flash cookies management dialog.
-</p><a NAME="FlashCookieManager.shutdown" ID="FlashCookieManager.shutdown"></a>
-<h4>FlashCookieManager.shutdown</h4>
-<b>shutdown</b>(<i></i>)
-<p>
-        Public method to perform shutdown actions.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,279 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog</h1>
-<p>
-Module implementing a dialog to manage the flash cookies.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FlashCookieManagerDialog">FlashCookieManagerDialog</a></td>
-<td>Class implementing a dialog to manage the flash cookies.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FlashCookieManagerDialog" ID="FlashCookieManagerDialog"></a>
-<h2>FlashCookieManagerDialog</h2>
-<p>
-    Class implementing a dialog to manage the flash cookies.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_FlashCookieManagerDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FlashCookieManagerDialog.__init__">FlashCookieManagerDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.__addBlacklist">__addBlacklist</a></td>
-<td>Private method to add a cookie origin to the blacklist.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.__addWhitelist">__addWhitelist</a></td>
-<td>Private method to add a cookie origin to the whitelist.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.__cookiesListContextMenuRequested">__cookiesListContextMenuRequested</a></td>
-<td>Private slot handling the cookies list context menu.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.__refreshCookiesList">__refreshCookiesList</a></td>
-<td>Private slot to refresh the cookies list.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.__refreshFilterLists">__refreshFilterLists</a></td>
-<td>Private slot to refresh the white and black lists.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.closeEvent">closeEvent</a></td>
-<td>Protected method to handle the close event.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.on_addBlackButton_clicked">on_addBlackButton_clicked</a></td>
-<td>Private slot to add a server to the blacklist.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.on_addWhiteButton_clicked">on_addWhiteButton_clicked</a></td>
-<td>Private slot to add a server to the whitelist.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.on_blackList_itemSelectionChanged">on_blackList_itemSelectionChanged</a></td>
-<td>Private slot handling the selection of items in the blacklist.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.on_cookiesList_currentItemChanged">on_cookiesList_currentItemChanged</a></td>
-<td>Private slot handling a change of the current cookie item.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.on_filterEdit_textChanged">on_filterEdit_textChanged</a></td>
-<td>Private slot to filter the cookies list.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.on_reloadButton_clicked">on_reloadButton_clicked</a></td>
-<td>Private slot handling a press of the reload button.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.on_removeAllButton_clicked">on_removeAllButton_clicked</a></td>
-<td>Private slot to remove all cookies.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.on_removeBlackButton_clicked">on_removeBlackButton_clicked</a></td>
-<td>Private slot to remove a server from the blacklist.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.on_removeButton_clicked">on_removeButton_clicked</a></td>
-<td>Private slot to remove one cookie or a cookie group.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.on_removeWhiteButton_clicked">on_removeWhiteButton_clicked</a></td>
-<td>Private slot to remove a server from the whitelist.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.on_whiteList_itemSelectionChanged">on_whiteList_itemSelectionChanged</a></td>
-<td>Private slot handling the selection of items in the whitelist.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.refreshView">refreshView</a></td>
-<td>Public method to refresh the dialog view.</td>
-</tr><tr>
-<td><a href="#FlashCookieManagerDialog.showPage">showPage</a></td>
-<td>Public method to display a given page.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FlashCookieManagerDialog.__init__" ID="FlashCookieManagerDialog.__init__"></a>
-<h4>FlashCookieManagerDialog (Constructor)</h4>
-<b>FlashCookieManagerDialog</b>(<i>manager, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>manager</i> (FlashCookieManager)</dt>
-<dd>
-reference to the Flash cookie manager object
-</dd><dt><i>parent</i> (QWidget)</dt>
-<dd>
-reference to the parent widget
-</dd>
-</dl><a NAME="FlashCookieManagerDialog.__addBlacklist" ID="FlashCookieManagerDialog.__addBlacklist"></a>
-<h4>FlashCookieManagerDialog.__addBlacklist</h4>
-<b>__addBlacklist</b>(<i>origin</i>)
-<p>
-        Private method to add a cookie origin to the blacklist.
-</p><dl>
-<dt><i>origin</i> (str)</dt>
-<dd>
-origin to be added to the list
-</dd>
-</dl><a NAME="FlashCookieManagerDialog.__addWhitelist" ID="FlashCookieManagerDialog.__addWhitelist"></a>
-<h4>FlashCookieManagerDialog.__addWhitelist</h4>
-<b>__addWhitelist</b>(<i>origin</i>)
-<p>
-        Private method to add a cookie origin to the whitelist.
-</p><dl>
-<dt><i>origin</i> (str)</dt>
-<dd>
-origin to be added to the list
-</dd>
-</dl><a NAME="FlashCookieManagerDialog.__cookiesListContextMenuRequested" ID="FlashCookieManagerDialog.__cookiesListContextMenuRequested"></a>
-<h4>FlashCookieManagerDialog.__cookiesListContextMenuRequested</h4>
-<b>__cookiesListContextMenuRequested</b>(<i>pos</i>)
-<p>
-        Private slot handling the cookies list context menu.
-</p><dl>
-<dt><i>pos</i> (QPoint)</dt>
-<dd>
-position to show the menu at
-</dd>
-</dl><a NAME="FlashCookieManagerDialog.__refreshCookiesList" ID="FlashCookieManagerDialog.__refreshCookiesList"></a>
-<h4>FlashCookieManagerDialog.__refreshCookiesList</h4>
-<b>__refreshCookiesList</b>(<i></i>)
-<p>
-        Private slot to refresh the cookies list.
-</p><a NAME="FlashCookieManagerDialog.__refreshFilterLists" ID="FlashCookieManagerDialog.__refreshFilterLists"></a>
-<h4>FlashCookieManagerDialog.__refreshFilterLists</h4>
-<b>__refreshFilterLists</b>(<i></i>)
-<p>
-        Private slot to refresh the white and black lists.
-</p><a NAME="FlashCookieManagerDialog.closeEvent" ID="FlashCookieManagerDialog.closeEvent"></a>
-<h4>FlashCookieManagerDialog.closeEvent</h4>
-<b>closeEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle the close event.
-</p><dl>
-<dt><i>evt</i> (QCloseEvent)</dt>
-<dd>
-reference to the close event
-</dd>
-</dl><a NAME="FlashCookieManagerDialog.on_addBlackButton_clicked" ID="FlashCookieManagerDialog.on_addBlackButton_clicked"></a>
-<h4>FlashCookieManagerDialog.on_addBlackButton_clicked</h4>
-<b>on_addBlackButton_clicked</b>(<i></i>)
-<p>
-        Private slot to add a server to the blacklist.
-</p><a NAME="FlashCookieManagerDialog.on_addWhiteButton_clicked" ID="FlashCookieManagerDialog.on_addWhiteButton_clicked"></a>
-<h4>FlashCookieManagerDialog.on_addWhiteButton_clicked</h4>
-<b>on_addWhiteButton_clicked</b>(<i></i>)
-<p>
-        Private slot to add a server to the whitelist.
-</p><a NAME="FlashCookieManagerDialog.on_blackList_itemSelectionChanged" ID="FlashCookieManagerDialog.on_blackList_itemSelectionChanged"></a>
-<h4>FlashCookieManagerDialog.on_blackList_itemSelectionChanged</h4>
-<b>on_blackList_itemSelectionChanged</b>(<i></i>)
-<p>
-        Private slot handling the selection of items in the blacklist.
-</p><a NAME="FlashCookieManagerDialog.on_cookiesList_currentItemChanged" ID="FlashCookieManagerDialog.on_cookiesList_currentItemChanged"></a>
-<h4>FlashCookieManagerDialog.on_cookiesList_currentItemChanged</h4>
-<b>on_cookiesList_currentItemChanged</b>(<i>current, previous</i>)
-<p>
-        Private slot handling a change of the current cookie item.
-</p><dl>
-<dt><i>current</i> (QTreeWidgetItem)</dt>
-<dd>
-reference to the current item
-</dd><dt><i>previous</i> (QTreeWidgetItem)</dt>
-<dd>
-reference to the previous item
-</dd>
-</dl><a NAME="FlashCookieManagerDialog.on_filterEdit_textChanged" ID="FlashCookieManagerDialog.on_filterEdit_textChanged"></a>
-<h4>FlashCookieManagerDialog.on_filterEdit_textChanged</h4>
-<b>on_filterEdit_textChanged</b>(<i>filterStr</i>)
-<p>
-        Private slot to filter the cookies list.
-</p><dl>
-<dt><i>filterStr</i> (str)</dt>
-<dd>
-filter text
-</dd>
-</dl><a NAME="FlashCookieManagerDialog.on_reloadButton_clicked" ID="FlashCookieManagerDialog.on_reloadButton_clicked"></a>
-<h4>FlashCookieManagerDialog.on_reloadButton_clicked</h4>
-<b>on_reloadButton_clicked</b>(<i></i>)
-<p>
-        Private slot handling a press of the reload button.
-</p><a NAME="FlashCookieManagerDialog.on_removeAllButton_clicked" ID="FlashCookieManagerDialog.on_removeAllButton_clicked"></a>
-<h4>FlashCookieManagerDialog.on_removeAllButton_clicked</h4>
-<b>on_removeAllButton_clicked</b>(<i></i>)
-<p>
-        Private slot to remove all cookies.
-</p><a NAME="FlashCookieManagerDialog.on_removeBlackButton_clicked" ID="FlashCookieManagerDialog.on_removeBlackButton_clicked"></a>
-<h4>FlashCookieManagerDialog.on_removeBlackButton_clicked</h4>
-<b>on_removeBlackButton_clicked</b>(<i></i>)
-<p>
-        Private slot to remove a server from the blacklist.
-</p><a NAME="FlashCookieManagerDialog.on_removeButton_clicked" ID="FlashCookieManagerDialog.on_removeButton_clicked"></a>
-<h4>FlashCookieManagerDialog.on_removeButton_clicked</h4>
-<b>on_removeButton_clicked</b>(<i></i>)
-<p>
-        Private slot to remove one cookie or a cookie group.
-</p><a NAME="FlashCookieManagerDialog.on_removeWhiteButton_clicked" ID="FlashCookieManagerDialog.on_removeWhiteButton_clicked"></a>
-<h4>FlashCookieManagerDialog.on_removeWhiteButton_clicked</h4>
-<b>on_removeWhiteButton_clicked</b>(<i></i>)
-<p>
-        Private slot to remove a server from the whitelist.
-</p><a NAME="FlashCookieManagerDialog.on_whiteList_itemSelectionChanged" ID="FlashCookieManagerDialog.on_whiteList_itemSelectionChanged"></a>
-<h4>FlashCookieManagerDialog.on_whiteList_itemSelectionChanged</h4>
-<b>on_whiteList_itemSelectionChanged</b>(<i></i>)
-<p>
-        Private slot handling the selection of items in the whitelist.
-</p><a NAME="FlashCookieManagerDialog.refreshView" ID="FlashCookieManagerDialog.refreshView"></a>
-<h4>FlashCookieManagerDialog.refreshView</h4>
-<b>refreshView</b>(<i>forceReload=False</i>)
-<p>
-        Public method to refresh the dialog view.
-</p><dl>
-<dt><i>forceReload</i> (bool)</dt>
-<dd>
-flag indicating to reload the cookies
-</dd>
-</dl><a NAME="FlashCookieManagerDialog.showPage" ID="FlashCookieManagerDialog.showPage"></a>
-<h4>FlashCookieManagerDialog.showPage</h4>
-<b>showPage</b>(<i>index</i>)
-<p>
-        Public method to display a given page.
-</p><dl>
-<dt><i>index</i> (int)</dt>
-<dd>
-index of the page to be shown
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.FlashCookieManager.FlashCookieNotification.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.FlashCookieManager.FlashCookieNotification</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.FlashCookieManager.FlashCookieNotification</h1>
-<p>
-Module implementing the feature permission bar widget.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FlashCookieNotification">FlashCookieNotification</a></td>
-<td>Class implementing the feature permission bar widget.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FlashCookieNotification" ID="FlashCookieNotification"></a>
-<h2>FlashCookieNotification</h2>
-<p>
-    Class implementing the feature permission bar widget.
-</p>
-<h3>Derived from</h3>
-E5AnimatedWidget
-<h3>Class Attributes</h3>
-<table>
-<tr><td>DefaultHeight</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FlashCookieNotification.__init__">FlashCookieNotification</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FlashCookieNotification.__init__" ID="FlashCookieNotification.__init__"></a>
-<h4>FlashCookieNotification (Constructor)</h4>
-<b>FlashCookieNotification</b>(<i>view, manager, noCookies</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>view</i> (QWebView)</dt>
-<dd>
-reference to the web view
-</dd><dt><i>manager</i> (FlashCookieManager)</dt>
-<dd>
-reference to the Flash cookie manager object
-</dd><dt><i>noCookies</i> (int)</dt>
-<dd>
-number of newly detected Flash cookies
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,391 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.FlashCookieManager.FlashCookieReader</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.FlashCookieManager.FlashCookieReader</h1>
-<p>
-Module implementing a class to read flash cookies.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FlashCookieReader">FlashCookieReader</a></td>
-<td>Class implementing a reader for flash cookies (*.sol files).</td>
-</tr><tr>
-<td><a href="#FlashCookieReaderError">FlashCookieReaderError</a></td>
-<td>Class containing data of a reader error.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FlashCookieReader" ID="FlashCookieReader"></a>
-<h2>FlashCookieReader</h2>
-<p>
-    Class implementing a reader for flash cookies (*.sol files).
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>Boolean</td></tr><tr><td>EpochCorrectionMsecs</td></tr><tr><td>Null</td></tr><tr><td>Number</td></tr><tr><td>ObjArr</td></tr><tr><td>ObjCc</td></tr><tr><td>ObjDate</td></tr><tr><td>ObjM</td></tr><tr><td>ObjObj</td></tr><tr><td>ObjXml</td></tr><tr><td>String</td></tr><tr><td>Undef</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FlashCookieReader.__init__">FlashCookieReader</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.__parseArray">__parseArray</a></td>
-<td>Private method to parse an array.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.__parseBoolean">__parseBoolean</a></td>
-<td>Private method to parse a boolean.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.__parseDate">__parseDate</a></td>
-<td>Private method to parse a date.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.__parseNull">__parseNull</a></td>
-<td>Private method to parse a null object.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.__parseNumber">__parseNumber</a></td>
-<td>Private method to parse a number.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.__parseObject">__parseObject</a></td>
-<td>Private method to parse an object.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.__parseOcc">__parseOcc</a></td>
-<td>Private method to parse a c_object.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.__parseOjm">__parseOjm</a></td>
-<td>Private method to parse an m_object.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.__parseString">__parseString</a></td>
-<td>Private method to parse a string.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.__parseUndefined">__parseUndefined</a></td>
-<td>Private method to parse an undefined object.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.__parseXml">__parseXml</a></td>
-<td>Private method to parse XML.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.parse">parse</a></td>
-<td>Public method to parse the sol file.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.setBytes">setBytes</a></td>
-<td>Public method to set the contents of a sol file to be parsed.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.setFile">setFile</a></td>
-<td>Public method to set an open sol file to be parsed.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.setFileName">setFileName</a></td>
-<td>Public method to set the name of a sol file to be parsed.</td>
-</tr><tr>
-<td><a href="#FlashCookieReader.toString">toString</a></td>
-<td>Public method to convert the parsed cookie to a string representation.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FlashCookieReader.__init__" ID="FlashCookieReader.__init__"></a>
-<h4>FlashCookieReader (Constructor)</h4>
-<b>FlashCookieReader</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="FlashCookieReader.__parseArray" ID="FlashCookieReader.__parseArray"></a>
-<h4>FlashCookieReader.__parseArray</h4>
-<b>__parseArray</b>(<i>variableName, parent</i>)
-<p>
-        Private method to parse an array.
-</p><dl>
-<dt><i>variableName</i> (str)</dt>
-<dd>
-name of the variable to be parsed
-</dd><dt><i>parent</i> (dict)</dt>
-<dd>
-reference to the dictionary to insert the result into
-</dd>
-</dl><dl>
-<dt>Raises <b>FlashCookieReaderError</b>:</dt>
-<dd>
-raised when an issue with the cookie
-            file is found
-</dd>
-</dl><a NAME="FlashCookieReader.__parseBoolean" ID="FlashCookieReader.__parseBoolean"></a>
-<h4>FlashCookieReader.__parseBoolean</h4>
-<b>__parseBoolean</b>(<i>variableName, parent</i>)
-<p>
-        Private method to parse a boolean.
-</p><dl>
-<dt><i>variableName</i> (str)</dt>
-<dd>
-name of the variable to be parsed
-</dd><dt><i>parent</i> (dict)</dt>
-<dd>
-reference to the dictionary to insert the result into
-</dd>
-</dl><a NAME="FlashCookieReader.__parseDate" ID="FlashCookieReader.__parseDate"></a>
-<h4>FlashCookieReader.__parseDate</h4>
-<b>__parseDate</b>(<i>variableName, parent</i>)
-<p>
-        Private method to parse a date.
-</p><dl>
-<dt><i>variableName</i> (str)</dt>
-<dd>
-name of the variable to be parsed
-</dd><dt><i>parent</i> (dict)</dt>
-<dd>
-reference to the dictionary to insert the result into
-</dd>
-</dl><a NAME="FlashCookieReader.__parseNull" ID="FlashCookieReader.__parseNull"></a>
-<h4>FlashCookieReader.__parseNull</h4>
-<b>__parseNull</b>(<i>variableName, parent</i>)
-<p>
-        Private method to parse a null object.
-</p><dl>
-<dt><i>variableName</i> (str)</dt>
-<dd>
-name of the variable to be parsed
-</dd><dt><i>parent</i> (dict)</dt>
-<dd>
-reference to the dictionary to insert the result into
-</dd>
-</dl><a NAME="FlashCookieReader.__parseNumber" ID="FlashCookieReader.__parseNumber"></a>
-<h4>FlashCookieReader.__parseNumber</h4>
-<b>__parseNumber</b>(<i>variableName, parent</i>)
-<p>
-        Private method to parse a number.
-</p><dl>
-<dt><i>variableName</i> (str)</dt>
-<dd>
-name of the variable to be parsed
-</dd><dt><i>parent</i> (dict)</dt>
-<dd>
-reference to the dictionary to insert the result into
-</dd>
-</dl><a NAME="FlashCookieReader.__parseObject" ID="FlashCookieReader.__parseObject"></a>
-<h4>FlashCookieReader.__parseObject</h4>
-<b>__parseObject</b>(<i>variableName, parent</i>)
-<p>
-        Private method to parse an object.
-</p><dl>
-<dt><i>variableName</i> (str)</dt>
-<dd>
-name of the variable to be parsed
-</dd><dt><i>parent</i> (dict)</dt>
-<dd>
-reference to the dictionary to insert the result into
-</dd>
-</dl><dl>
-<dt>Raises <b>FlashCookieReaderError</b>:</dt>
-<dd>
-raised when an issue with the cookie
-            file is found
-</dd>
-</dl><a NAME="FlashCookieReader.__parseOcc" ID="FlashCookieReader.__parseOcc"></a>
-<h4>FlashCookieReader.__parseOcc</h4>
-<b>__parseOcc</b>(<i>variableName, parent</i>)
-<p>
-        Private method to parse a c_object.
-</p><dl>
-<dt><i>variableName</i> (str)</dt>
-<dd>
-name of the variable to be parsed
-</dd><dt><i>parent</i> (dict)</dt>
-<dd>
-reference to the dictionary to insert the result into
-</dd>
-</dl><dl>
-<dt>Raises <b>FlashCookieReaderError</b>:</dt>
-<dd>
-raised when an issue with the cookie
-            file is found
-</dd>
-</dl><a NAME="FlashCookieReader.__parseOjm" ID="FlashCookieReader.__parseOjm"></a>
-<h4>FlashCookieReader.__parseOjm</h4>
-<b>__parseOjm</b>(<i>variableName, parent</i>)
-<p>
-        Private method to parse an m_object.
-</p><dl>
-<dt><i>variableName</i> (str)</dt>
-<dd>
-name of the variable to be parsed
-</dd><dt><i>parent</i> (dict)</dt>
-<dd>
-reference to the dictionary to insert the result into
-</dd>
-</dl><a NAME="FlashCookieReader.__parseString" ID="FlashCookieReader.__parseString"></a>
-<h4>FlashCookieReader.__parseString</h4>
-<b>__parseString</b>(<i>variableName, parent</i>)
-<p>
-        Private method to parse a string.
-</p><dl>
-<dt><i>variableName</i> (str)</dt>
-<dd>
-name of the variable to be parsed
-</dd><dt><i>parent</i> (dict)</dt>
-<dd>
-reference to the dictionary to insert the result into
-</dd>
-</dl><a NAME="FlashCookieReader.__parseUndefined" ID="FlashCookieReader.__parseUndefined"></a>
-<h4>FlashCookieReader.__parseUndefined</h4>
-<b>__parseUndefined</b>(<i>variableName, parent</i>)
-<p>
-        Private method to parse an undefined object.
-</p><dl>
-<dt><i>variableName</i> (str)</dt>
-<dd>
-name of the variable to be parsed
-</dd><dt><i>parent</i> (dict)</dt>
-<dd>
-reference to the dictionary to insert the result into
-</dd>
-</dl><a NAME="FlashCookieReader.__parseXml" ID="FlashCookieReader.__parseXml"></a>
-<h4>FlashCookieReader.__parseXml</h4>
-<b>__parseXml</b>(<i>variableName, parent</i>)
-<p>
-        Private method to parse XML.
-</p><dl>
-<dt><i>variableName</i> (str)</dt>
-<dd>
-name of the variable to be parsed
-</dd><dt><i>parent</i> (dict)</dt>
-<dd>
-reference to the dictionary to insert the result into
-</dd>
-</dl><a NAME="FlashCookieReader.parse" ID="FlashCookieReader.parse"></a>
-<h4>FlashCookieReader.parse</h4>
-<b>parse</b>(<i></i>)
-<p>
-        Public method to parse the sol file.
-</p><dl>
-<dt>Raises <b>FlashCookieReaderError</b>:</dt>
-<dd>
-raised when encountering a parse
-            issue
-</dd>
-</dl><a NAME="FlashCookieReader.setBytes" ID="FlashCookieReader.setBytes"></a>
-<h4>FlashCookieReader.setBytes</h4>
-<b>setBytes</b>(<i>solData</i>)
-<p>
-        Public method to set the contents of a sol file to be parsed.
-</p><dl>
-<dt><i>solData</i> (bytes)</dt>
-<dd>
-contents of the file
-</dd>
-</dl><a NAME="FlashCookieReader.setFile" ID="FlashCookieReader.setFile"></a>
-<h4>FlashCookieReader.setFile</h4>
-<b>setFile</b>(<i>solFile</i>)
-<p>
-        Public method to set an open sol file to be parsed.
-</p><dl>
-<dt><i>solFile</i> (io.FileIO)</dt>
-<dd>
-sol file to be parsed
-</dd>
-</dl><a NAME="FlashCookieReader.setFileName" ID="FlashCookieReader.setFileName"></a>
-<h4>FlashCookieReader.setFileName</h4>
-<b>setFileName</b>(<i>solFilename</i>)
-<p>
-        Public method to set the name of a sol file to be parsed.
-</p><dl>
-<dt><i>solFilename</i> (str)</dt>
-<dd>
-name of the sol file
-</dd>
-</dl><a NAME="FlashCookieReader.toString" ID="FlashCookieReader.toString"></a>
-<h4>FlashCookieReader.toString</h4>
-<b>toString</b>(<i>indent=0, parent=None</i>)
-<p>
-        Public method to convert the parsed cookie to a string representation.
-</p><dl>
-<dt><i>indent</i> (int)</dt>
-<dd>
-indentation level
-</dd><dt><i>parent</i> (dict)</dt>
-<dd>
-reference to the dictionary to be converted
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-string representation of the cookie
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="FlashCookieReaderError" ID="FlashCookieReaderError"></a>
-<h2>FlashCookieReaderError</h2>
-<p>
-    Class containing data of a reader error.
-</p>
-<h3>Derived from</h3>
-Exception
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FlashCookieReaderError.__init__">FlashCookieReaderError</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FlashCookieReaderError.__init__" ID="FlashCookieReaderError.__init__"></a>
-<h4>FlashCookieReaderError (Constructor)</h4>
-<b>FlashCookieReaderError</b>(<i>msg</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>msg</i> (str)</dt>
-<dd>
-error message
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.FlashCookieManager.FlashCookieUtilities.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.FlashCookieManager.FlashCookieUtilities</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.FlashCookieManager.FlashCookieUtilities</h1>
-<p>
-Module implementing some utility functions.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#flashDataPathForOS">flashDataPathForOS</a></td>
-<td>Function to determine the OS dependent path where Flash cookies are stored.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="flashDataPathForOS" ID="flashDataPathForOS"></a>
-<h2>flashDataPathForOS</h2>
-<b>flashDataPathForOS</b>(<i></i>)
-<p>
-    Function to determine the OS dependent path where Flash cookies
-    are stored.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-Flash data path
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog</h1>
-<p>
-Module implementing a dialog for adding GreaseMonkey scripts..
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyAddScriptDialog">GreaseMonkeyAddScriptDialog</a></td>
-<td>Class implementing a dialog for adding GreaseMonkey scripts..</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="GreaseMonkeyAddScriptDialog" ID="GreaseMonkeyAddScriptDialog"></a>
-<h2>GreaseMonkeyAddScriptDialog</h2>
-<p>
-    Class implementing a dialog for adding GreaseMonkey scripts..
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_GreaseMonkeyAddScriptDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyAddScriptDialog.__init__">GreaseMonkeyAddScriptDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyAddScriptDialog.__accepted">__accepted</a></td>
-<td>Private slot handling the accepted signal.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked">on_showScriptSourceButton_clicked</a></td>
-<td>Private slot to show an editor window with the source code.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="GreaseMonkeyAddScriptDialog.__init__" ID="GreaseMonkeyAddScriptDialog.__init__"></a>
-<h4>GreaseMonkeyAddScriptDialog (Constructor)</h4>
-<b>GreaseMonkeyAddScriptDialog</b>(<i>manager, script, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>manager</i></dt>
-<dd>
-reference to the GreaseMonkey manager
-            (GreaseMonkeyManager)
-</dd><dt><i>script</i></dt>
-<dd>
-GreaseMonkey script to be added (GreaseMonkeyScript)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="GreaseMonkeyAddScriptDialog.__accepted" ID="GreaseMonkeyAddScriptDialog.__accepted"></a>
-<h4>GreaseMonkeyAddScriptDialog.__accepted</h4>
-<b>__accepted</b>(<i></i>)
-<p>
-        Private slot handling the accepted signal.
-</p><a NAME="GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked" ID="GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked"></a>
-<h4>GreaseMonkeyAddScriptDialog.on_showScriptSourceButton_clicked</h4>
-<b>on_showScriptSourceButton_clicked</b>(<i></i>)
-<p>
-        Private slot to show an editor window with the source code.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog</h1>
-<p>
-Module implementing the GreaseMonkey scripts configuration dialog.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyConfigurationDialog">GreaseMonkeyConfigurationDialog</a></td>
-<td>Class implementing the GreaseMonkey scripts configuration dialog.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="GreaseMonkeyConfigurationDialog" ID="GreaseMonkeyConfigurationDialog"></a>
-<h2>GreaseMonkeyConfigurationDialog</h2>
-<p>
-    Class implementing the GreaseMonkey scripts configuration dialog.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_GreaseMonkeyConfigurationDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>ScriptDescriptionRole</td></tr><tr><td>ScriptRole</td></tr><tr><td>ScriptVersionRole</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyConfigurationDialog.__init__">GreaseMonkeyConfigurationDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyConfigurationDialog.__getScript">__getScript</a></td>
-<td>Private method to get the script for the given item.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyConfigurationDialog.__itemChanged">__itemChanged</a></td>
-<td>Private slot to handle changes of a script item.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyConfigurationDialog.__loadScripts">__loadScripts</a></td>
-<td>Private method to load all the available scripts.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyConfigurationDialog.__removeItem">__removeItem</a></td>
-<td>Private slot to remove a script item.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated">on_downloadLabel_linkActivated</a></td>
-<td>Private slot to open the greasyfork.org web site.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked">on_openDirectoryButton_clicked</a></td>
-<td>Private slot to open the GreaseMonkey scripts directory.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked">on_scriptsList_itemDoubleClicked</a></td>
-<td>Private slot to show information about the selected script.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="GreaseMonkeyConfigurationDialog.__init__" ID="GreaseMonkeyConfigurationDialog.__init__"></a>
-<h4>GreaseMonkeyConfigurationDialog (Constructor)</h4>
-<b>GreaseMonkeyConfigurationDialog</b>(<i>manager, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>manager</i></dt>
-<dd>
-reference to the manager object (GreaseMonkeyManager)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="GreaseMonkeyConfigurationDialog.__getScript" ID="GreaseMonkeyConfigurationDialog.__getScript"></a>
-<h4>GreaseMonkeyConfigurationDialog.__getScript</h4>
-<b>__getScript</b>(<i>itm</i>)
-<p>
-        Private method to get the script for the given item.
-</p><dl>
-<dt><i>itm</i></dt>
-<dd>
-item to get script for (QListWidgetItem)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the script object (GreaseMonkeyScript)
-</dd>
-</dl><a NAME="GreaseMonkeyConfigurationDialog.__itemChanged" ID="GreaseMonkeyConfigurationDialog.__itemChanged"></a>
-<h4>GreaseMonkeyConfigurationDialog.__itemChanged</h4>
-<b>__itemChanged</b>(<i>itm</i>)
-<p>
-        Private slot to handle changes of a script item.
-</p><dl>
-<dt><i>itm</i></dt>
-<dd>
-changed item (QListWidgetItem)
-</dd>
-</dl><a NAME="GreaseMonkeyConfigurationDialog.__loadScripts" ID="GreaseMonkeyConfigurationDialog.__loadScripts"></a>
-<h4>GreaseMonkeyConfigurationDialog.__loadScripts</h4>
-<b>__loadScripts</b>(<i></i>)
-<p>
-        Private method to load all the available scripts.
-</p><a NAME="GreaseMonkeyConfigurationDialog.__removeItem" ID="GreaseMonkeyConfigurationDialog.__removeItem"></a>
-<h4>GreaseMonkeyConfigurationDialog.__removeItem</h4>
-<b>__removeItem</b>(<i>itm</i>)
-<p>
-        Private slot to remove a script item.
-</p><dl>
-<dt><i>itm</i></dt>
-<dd>
-item to be removed (QListWidgetItem)
-</dd>
-</dl><a NAME="GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated" ID="GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated"></a>
-<h4>GreaseMonkeyConfigurationDialog.on_downloadLabel_linkActivated</h4>
-<b>on_downloadLabel_linkActivated</b>(<i>link</i>)
-<p>
-        Private slot to open the greasyfork.org web site.
-</p><dl>
-<dt><i>link</i></dt>
-<dd>
-URL (string)
-</dd>
-</dl><a NAME="GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked" ID="GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked"></a>
-<h4>GreaseMonkeyConfigurationDialog.on_openDirectoryButton_clicked</h4>
-<b>on_openDirectoryButton_clicked</b>(<i></i>)
-<p>
-        Private slot to open the GreaseMonkey scripts directory.
-</p><a NAME="GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked" ID="GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked"></a>
-<h4>GreaseMonkeyConfigurationDialog.on_scriptsList_itemDoubleClicked</h4>
-<b>on_scriptsList_itemDoubleClicked</b>(<i>item</i>)
-<p>
-        Private slot to show information about the selected script.
-</p><dl>
-<dt><i>item</i></dt>
-<dd>
-reference to the double clicked item (QListWidgetItem)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate</h1>
-<p>
-Module implementing a delegate for the special list widget for GreaseMonkey
-scripts.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyConfigurationListDelegate">GreaseMonkeyConfigurationListDelegate</a></td>
-<td>Class implementing a delegate for the special list widget for GreaseMonkey scripts.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="GreaseMonkeyConfigurationListDelegate" ID="GreaseMonkeyConfigurationListDelegate"></a>
-<h2>GreaseMonkeyConfigurationListDelegate</h2>
-<p>
-    Class implementing a delegate for the special list widget for GreaseMonkey
-    scripts.
-</p>
-<h3>Derived from</h3>
-QStyledItemDelegate
-<h3>Class Attributes</h3>
-<table>
-<tr><td>CheckBoxSize</td></tr><tr><td>IconSize</td></tr><tr><td>ItemWidth</td></tr><tr><td>MinPadding</td></tr><tr><td>RemoveIconSize</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyConfigurationListDelegate.__init__">GreaseMonkeyConfigurationListDelegate</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyConfigurationListDelegate.padding">padding</a></td>
-<td>Public method to get the padding used.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyConfigurationListDelegate.paint">paint</a></td>
-<td>Public method to paint the specified list item.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyConfigurationListDelegate.sizeHint">sizeHint</a></td>
-<td>Public method to get a size hint for the specified list item.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="GreaseMonkeyConfigurationListDelegate.__init__" ID="GreaseMonkeyConfigurationListDelegate.__init__"></a>
-<h4>GreaseMonkeyConfigurationListDelegate (Constructor)</h4>
-<b>GreaseMonkeyConfigurationListDelegate</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="GreaseMonkeyConfigurationListDelegate.padding" ID="GreaseMonkeyConfigurationListDelegate.padding"></a>
-<h4>GreaseMonkeyConfigurationListDelegate.padding</h4>
-<b>padding</b>(<i></i>)
-<p>
-        Public method to get the padding used.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-padding used (integer)
-</dd>
-</dl><a NAME="GreaseMonkeyConfigurationListDelegate.paint" ID="GreaseMonkeyConfigurationListDelegate.paint"></a>
-<h4>GreaseMonkeyConfigurationListDelegate.paint</h4>
-<b>paint</b>(<i>painter, option, index</i>)
-<p>
-        Public method to paint the specified list item.
-</p><dl>
-<dt><i>painter</i></dt>
-<dd>
-painter object to paint to (QPainter)
-</dd><dt><i>option</i></dt>
-<dd>
-style option used for painting (QStyleOptionViewItem)
-</dd><dt><i>index</i></dt>
-<dd>
-model index of the item (QModelIndex)
-</dd>
-</dl><a NAME="GreaseMonkeyConfigurationListDelegate.sizeHint" ID="GreaseMonkeyConfigurationListDelegate.sizeHint"></a>
-<h4>GreaseMonkeyConfigurationListDelegate.sizeHint</h4>
-<b>sizeHint</b>(<i>option, index</i>)
-<p>
-        Public method to get a size hint for the specified list item.
-</p><dl>
-<dt><i>option</i></dt>
-<dd>
-style option used for painting (QStyleOptionViewItem)
-</dd><dt><i>index</i></dt>
-<dd>
-model index of the item (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-size hint (QSize)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget</h1>
-<p>
-Module implementing a special list widget for GreaseMonkey scripts.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyConfigurationListWidget">GreaseMonkeyConfigurationListWidget</a></td>
-<td>Class implementing a special list widget for GreaseMonkey scripts.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="GreaseMonkeyConfigurationListWidget" ID="GreaseMonkeyConfigurationListWidget"></a>
-<h2>GreaseMonkeyConfigurationListWidget</h2>
-<p>
-    Class implementing a special list widget for GreaseMonkey scripts.
-</p><h3>Signals</h3>
-<dl>
-<dt>removeItemRequested(item)</dt>
-<dd>
-emitted to indicate an item removal
-        request (QListWidgetItem)
-</dd>
-</dl>
-<h3>Derived from</h3>
-QListWidget
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyConfigurationListWidget.__init__">GreaseMonkeyConfigurationListWidget</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyConfigurationListWidget.__containsRemoveIcon">__containsRemoveIcon</a></td>
-<td>Private method to check, if the given position is inside the remove icon.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent">mouseDoubleClickEvent</a></td>
-<td>Protected method handling mouse double click events.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyConfigurationListWidget.mousePressEvent">mousePressEvent</a></td>
-<td>Protected method handling presses of mouse buttons.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="GreaseMonkeyConfigurationListWidget.__init__" ID="GreaseMonkeyConfigurationListWidget.__init__"></a>
-<h4>GreaseMonkeyConfigurationListWidget (Constructor)</h4>
-<b>GreaseMonkeyConfigurationListWidget</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="GreaseMonkeyConfigurationListWidget.__containsRemoveIcon" ID="GreaseMonkeyConfigurationListWidget.__containsRemoveIcon"></a>
-<h4>GreaseMonkeyConfigurationListWidget.__containsRemoveIcon</h4>
-<b>__containsRemoveIcon</b>(<i>pos</i>)
-<p>
-        Private method to check, if the given position is inside the remove
-        icon.
-</p><dl>
-<dt><i>pos</i></dt>
-<dd>
-position to check for (QPoint)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent" ID="GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent"></a>
-<h4>GreaseMonkeyConfigurationListWidget.mouseDoubleClickEvent</h4>
-<b>mouseDoubleClickEvent</b>(<i>evt</i>)
-<p>
-        Protected method handling mouse double click events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-mouse press event (QMouseEvent)
-</dd>
-</dl><a NAME="GreaseMonkeyConfigurationListWidget.mousePressEvent" ID="GreaseMonkeyConfigurationListWidget.mousePressEvent"></a>
-<h4>GreaseMonkeyConfigurationListWidget.mousePressEvent</h4>
-<b>mousePressEvent</b>(<i>evt</i>)
-<p>
-        Protected method handling presses of mouse buttons.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-mouse press event (QMouseEvent)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog</h1>
-<p>
-Module implementing a dialog to show GreaseMonkey script information.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyConfigurationScriptInfoDialog">GreaseMonkeyConfigurationScriptInfoDialog</a></td>
-<td>Class implementing a dialog to show GreaseMonkey script information.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="GreaseMonkeyConfigurationScriptInfoDialog" ID="GreaseMonkeyConfigurationScriptInfoDialog"></a>
-<h2>GreaseMonkeyConfigurationScriptInfoDialog</h2>
-<p>
-    Class implementing a dialog to show GreaseMonkey script information.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_GreaseMonkeyConfigurationScriptInfoDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyConfigurationScriptInfoDialog.__init__">GreaseMonkeyConfigurationScriptInfoDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked">on_showScriptSourceButton_clicked</a></td>
-<td>Private slot to show an editor window with the script source code.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="GreaseMonkeyConfigurationScriptInfoDialog.__init__" ID="GreaseMonkeyConfigurationScriptInfoDialog.__init__"></a>
-<h4>GreaseMonkeyConfigurationScriptInfoDialog (Constructor)</h4>
-<b>GreaseMonkeyConfigurationScriptInfoDialog</b>(<i>script, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>script</i></dt>
-<dd>
-reference to the script (GreaseMonkeyScript)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked" ID="GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked"></a>
-<h4>GreaseMonkeyConfigurationScriptInfoDialog.on_showScriptSourceButton_clicked</h4>
-<b>on_showScriptSourceButton_clicked</b>(<i></i>)
-<p>
-        Private slot to show an editor window with the script source code.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader</h1>
-<p>
-Module implementing the downloader for GreaseMonkey scripts.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyDownloader">GreaseMonkeyDownloader</a></td>
-<td>Class implementing the downloader for GreaseMonkey scripts.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="GreaseMonkeyDownloader" ID="GreaseMonkeyDownloader"></a>
-<h2>GreaseMonkeyDownloader</h2>
-<p>
-    Class implementing the downloader for GreaseMonkey scripts.
-</p><h3>Signals</h3>
-<dl>
-<dt>finished()</dt>
-<dd>
-emitted to indicate the end of a script download
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyDownloader.__init__">GreaseMonkeyDownloader</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyDownloader.__downloadRequires">__downloadRequires</a></td>
-<td>Private slot to initiate the download of required scripts.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyDownloader.__requireDownloaded">__requireDownloaded</a></td>
-<td>Private slot to handle the finished download of a required script.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyDownloader.__scriptDownloaded">__scriptDownloaded</a></td>
-<td>Private slot to handle the finished download of a script.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="GreaseMonkeyDownloader.__init__" ID="GreaseMonkeyDownloader.__init__"></a>
-<h4>GreaseMonkeyDownloader (Constructor)</h4>
-<b>GreaseMonkeyDownloader</b>(<i>request, manager</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd><dt><i>manager</i></dt>
-<dd>
-reference to the GreaseMonkey manager
-            (GreaseMonkeyManager)
-</dd>
-</dl><a NAME="GreaseMonkeyDownloader.__downloadRequires" ID="GreaseMonkeyDownloader.__downloadRequires"></a>
-<h4>GreaseMonkeyDownloader.__downloadRequires</h4>
-<b>__downloadRequires</b>(<i></i>)
-<p>
-        Private slot to initiate the download of required scripts.
-</p><a NAME="GreaseMonkeyDownloader.__requireDownloaded" ID="GreaseMonkeyDownloader.__requireDownloaded"></a>
-<h4>GreaseMonkeyDownloader.__requireDownloaded</h4>
-<b>__requireDownloaded</b>(<i></i>)
-<p>
-        Private slot to handle the finished download of a required script.
-</p><a NAME="GreaseMonkeyDownloader.__scriptDownloaded" ID="GreaseMonkeyDownloader.__scriptDownloaded"></a>
-<h4>GreaseMonkeyDownloader.__scriptDownloaded</h4>
-<b>__scriptDownloaded</b>(<i></i>)
-<p>
-        Private slot to handle the finished download of a script.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript</h1>
-<p>
-Module containing some JavaScript resources.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>bootstrap_js</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,344 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager</h1>
-<p>
-Module implementing the manager for GreaseMonkey scripts.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyManager">GreaseMonkeyManager</a></td>
-<td>Class implementing the manager for GreaseMonkey scripts.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="GreaseMonkeyManager" ID="GreaseMonkeyManager"></a>
-<h2>GreaseMonkeyManager</h2>
-<p>
-    Class implementing the manager for GreaseMonkey scripts.
-</p><h3>Signals</h3>
-<dl>
-<dt>scriptsChanged()</dt>
-<dd>
-emitted to indicate a change of scripts
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyManager.__init__">GreaseMonkeyManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.__downloaderFinished">__downloaderFinished</a></td>
-<td>Private slot to handle the completion of a script download.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.__load">__load</a></td>
-<td>Private slot to load the available scripts into the manager.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.addScript">addScript</a></td>
-<td>Public method to add a script.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.allScripts">allScripts</a></td>
-<td>Public method to get a list of all scripts.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.canRunOnScheme">canRunOnScheme</a></td>
-<td>Public method to check, if scripts can be run on a scheme.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.connectPage">connectPage</a></td>
-<td>Public method to allow the GreaseMonkey manager to connect to the page.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.containsScript">containsScript</a></td>
-<td>Public method to check, if the given script exists.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.createRequest">createRequest</a></td>
-<td>Public method to create a request.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.disableScript">disableScript</a></td>
-<td>Public method to disable the given script.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.downloadScript">downloadScript</a></td>
-<td>Public method to download a GreaseMonkey script.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.enableScript">enableScript</a></td>
-<td>Public method to enable the given script.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.pageLoadStarted">pageLoadStarted</a></td>
-<td>Public slot to handle the start of loading a page.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.removeScript">removeScript</a></td>
-<td>Public method to remove a script.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.requireScripts">requireScripts</a></td>
-<td>Public method to get the sources of all required scripts.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.requireScriptsDirectory">requireScriptsDirectory</a></td>
-<td>Public method to get the path of the scripts directory.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.saveConfiguration">saveConfiguration</a></td>
-<td>Public method to save the configuration.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.scriptsDirectory">scriptsDirectory</a></td>
-<td>Public method to get the path of the scripts directory.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyManager.showConfigurationDialog">showConfigurationDialog</a></td>
-<td>Public method to show the configuration dialog.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="GreaseMonkeyManager.__init__" ID="GreaseMonkeyManager.__init__"></a>
-<h4>GreaseMonkeyManager (Constructor)</h4>
-<b>GreaseMonkeyManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="GreaseMonkeyManager.__downloaderFinished" ID="GreaseMonkeyManager.__downloaderFinished"></a>
-<h4>GreaseMonkeyManager.__downloaderFinished</h4>
-<b>__downloaderFinished</b>(<i>downloader</i>)
-<p>
-        Private slot to handle the completion of a script download.
-</p><dl>
-<dt><i>downloader</i> (GreaseMonkeyDownloader)</dt>
-<dd>
-reference to the downloader object
-</dd>
-</dl><a NAME="GreaseMonkeyManager.__load" ID="GreaseMonkeyManager.__load"></a>
-<h4>GreaseMonkeyManager.__load</h4>
-<b>__load</b>(<i></i>)
-<p>
-        Private slot to load the available scripts into the manager.
-</p><a NAME="GreaseMonkeyManager.addScript" ID="GreaseMonkeyManager.addScript"></a>
-<h4>GreaseMonkeyManager.addScript</h4>
-<b>addScript</b>(<i>script</i>)
-<p>
-        Public method to add a script.
-</p><dl>
-<dt><i>script</i></dt>
-<dd>
-script to be added (GreaseMonkeyScript)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="GreaseMonkeyManager.allScripts" ID="GreaseMonkeyManager.allScripts"></a>
-<h4>GreaseMonkeyManager.allScripts</h4>
-<b>allScripts</b>(<i></i>)
-<p>
-        Public method to get a list of all scripts.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of all scripts (list of GreaseMonkeyScript)
-</dd>
-</dl><a NAME="GreaseMonkeyManager.canRunOnScheme" ID="GreaseMonkeyManager.canRunOnScheme"></a>
-<h4>GreaseMonkeyManager.canRunOnScheme</h4>
-<b>canRunOnScheme</b>(<i>scheme</i>)
-<p>
-        Public method to check, if scripts can be run on a scheme.
-</p><dl>
-<dt><i>scheme</i></dt>
-<dd>
-scheme to check (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating, that scripts can be run (boolean)
-</dd>
-</dl><a NAME="GreaseMonkeyManager.connectPage" ID="GreaseMonkeyManager.connectPage"></a>
-<h4>GreaseMonkeyManager.connectPage</h4>
-<b>connectPage</b>(<i>page</i>)
-<p>
-        Public method to allow the GreaseMonkey manager to connect to the page.
-</p><dl>
-<dt><i>page</i></dt>
-<dd>
-reference to the web page (HelpWebPage)
-</dd>
-</dl><a NAME="GreaseMonkeyManager.containsScript" ID="GreaseMonkeyManager.containsScript"></a>
-<h4>GreaseMonkeyManager.containsScript</h4>
-<b>containsScript</b>(<i>fullName</i>)
-<p>
-        Public method to check, if the given script exists.
-</p><dl>
-<dt><i>fullName</i></dt>
-<dd>
-full name of the script (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the existence (boolean)
-</dd>
-</dl><a NAME="GreaseMonkeyManager.createRequest" ID="GreaseMonkeyManager.createRequest"></a>
-<h4>GreaseMonkeyManager.createRequest</h4>
-<b>createRequest</b>(<i>op, request, outgoingData=None</i>)
-<p>
-        Public method to create a request.
-</p><dl>
-<dt><i>op</i></dt>
-<dd>
-the operation to be performed
-            (QNetworkAccessManager.Operation)
-</dd><dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd><dt><i>outgoingData</i></dt>
-<dd>
-reference to an IODevice containing data to be sent
-            (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the created reply object (QNetworkReply)
-</dd>
-</dl><a NAME="GreaseMonkeyManager.disableScript" ID="GreaseMonkeyManager.disableScript"></a>
-<h4>GreaseMonkeyManager.disableScript</h4>
-<b>disableScript</b>(<i>script</i>)
-<p>
-        Public method to disable the given script.
-</p><dl>
-<dt><i>script</i></dt>
-<dd>
-script to be disabled (GreaseMonkeyScript)
-</dd>
-</dl><a NAME="GreaseMonkeyManager.downloadScript" ID="GreaseMonkeyManager.downloadScript"></a>
-<h4>GreaseMonkeyManager.downloadScript</h4>
-<b>downloadScript</b>(<i>request</i>)
-<p>
-        Public method to download a GreaseMonkey script.
-</p><dl>
-<dt><i>request</i></dt>
-<dd>
-reference to the request (QNetworkRequest)
-</dd>
-</dl><a NAME="GreaseMonkeyManager.enableScript" ID="GreaseMonkeyManager.enableScript"></a>
-<h4>GreaseMonkeyManager.enableScript</h4>
-<b>enableScript</b>(<i>script</i>)
-<p>
-        Public method to enable the given script.
-</p><dl>
-<dt><i>script</i></dt>
-<dd>
-script to be enabled (GreaseMonkeyScript)
-</dd>
-</dl><a NAME="GreaseMonkeyManager.pageLoadStarted" ID="GreaseMonkeyManager.pageLoadStarted"></a>
-<h4>GreaseMonkeyManager.pageLoadStarted</h4>
-<b>pageLoadStarted</b>(<i></i>)
-<p>
-        Public slot to handle the start of loading a page.
-</p><a NAME="GreaseMonkeyManager.removeScript" ID="GreaseMonkeyManager.removeScript"></a>
-<h4>GreaseMonkeyManager.removeScript</h4>
-<b>removeScript</b>(<i>script</i>)
-<p>
-        Public method to remove a script.
-</p><dl>
-<dt><i>script</i></dt>
-<dd>
-script to be removed (GreaseMonkeyScript)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="GreaseMonkeyManager.requireScripts" ID="GreaseMonkeyManager.requireScripts"></a>
-<h4>GreaseMonkeyManager.requireScripts</h4>
-<b>requireScripts</b>(<i>urlList</i>)
-<p>
-        Public method to get the sources of all required scripts.
-</p><dl>
-<dt><i>urlList</i></dt>
-<dd>
-list of URLs (list of string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-sources of all required scripts (string)
-</dd>
-</dl><a NAME="GreaseMonkeyManager.requireScriptsDirectory" ID="GreaseMonkeyManager.requireScriptsDirectory"></a>
-<h4>GreaseMonkeyManager.requireScriptsDirectory</h4>
-<b>requireScriptsDirectory</b>(<i></i>)
-<p>
-        Public method to get the path of the scripts directory.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-path of the scripts directory (string)
-</dd>
-</dl><a NAME="GreaseMonkeyManager.saveConfiguration" ID="GreaseMonkeyManager.saveConfiguration"></a>
-<h4>GreaseMonkeyManager.saveConfiguration</h4>
-<b>saveConfiguration</b>(<i></i>)
-<p>
-        Public method to save the configuration.
-</p><a NAME="GreaseMonkeyManager.scriptsDirectory" ID="GreaseMonkeyManager.scriptsDirectory"></a>
-<h4>GreaseMonkeyManager.scriptsDirectory</h4>
-<b>scriptsDirectory</b>(<i></i>)
-<p>
-        Public method to get the path of the scripts directory.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-path of the scripts directory (string)
-</dd>
-</dl><a NAME="GreaseMonkeyManager.showConfigurationDialog" ID="GreaseMonkeyManager.showConfigurationDialog"></a>
-<h4>GreaseMonkeyManager.showConfigurationDialog</h4>
-<b>showConfigurationDialog</b>(<i>parent=None</i>)
-<p>
-        Public method to show the configuration dialog.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,298 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript</h1>
-<p>
-Module implementing the GreaseMonkey script.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyScript">GreaseMonkeyScript</a></td>
-<td>Class implementing the GreaseMonkey script.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="GreaseMonkeyScript" ID="GreaseMonkeyScript"></a>
-<h2>GreaseMonkeyScript</h2>
-<p>
-    Class implementing the GreaseMonkey script.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>DocumentEnd</td></tr><tr><td>DocumentStart</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyScript.__init__">GreaseMonkeyScript</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.__parseScript">__parseScript</a></td>
-<td>Private method to parse the given script and populate the data structure.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.description">description</a></td>
-<td>Public method to get the description of the script.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.downloadUrl">downloadUrl</a></td>
-<td>Public method to get the download URL of the script.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.exclude">exclude</a></td>
-<td>Public method to get the list of excluded URLs.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.fileName">fileName</a></td>
-<td>Public method to get the path of the Javascript file.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.fullName">fullName</a></td>
-<td>Public method to get the full name of the script.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.include">include</a></td>
-<td>Public method to get the list of included URLs.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.isEnabled">isEnabled</a></td>
-<td>Public method to check, if the script is enabled.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.isValid">isValid</a></td>
-<td>Public method to check the validity of the script.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.match">match</a></td>
-<td>Public method to check, if the script matches the given URL.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.name">name</a></td>
-<td>Public method to get the name of the script.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.nameSpace">nameSpace</a></td>
-<td>Public method to get the name space of the script.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.script">script</a></td>
-<td>Public method to get the Javascript source.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.setEnabled">setEnabled</a></td>
-<td>Public method to enable a script.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.startAt">startAt</a></td>
-<td>Public method to get the start point of the script.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyScript.version">version</a></td>
-<td>Public method to get the version of the script.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="GreaseMonkeyScript.__init__" ID="GreaseMonkeyScript.__init__"></a>
-<h4>GreaseMonkeyScript (Constructor)</h4>
-<b>GreaseMonkeyScript</b>(<i>manager, path</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>manager</i></dt>
-<dd>
-reference to the manager object (GreaseMonkeyManager)
-</dd><dt><i>path</i></dt>
-<dd>
-path of the Javascript file (string)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.__parseScript" ID="GreaseMonkeyScript.__parseScript"></a>
-<h4>GreaseMonkeyScript.__parseScript</h4>
-<b>__parseScript</b>(<i>path</i>)
-<p>
-        Private method to parse the given script and populate the data
-        structure.
-</p><dl>
-<dt><i>path</i></dt>
-<dd>
-path of the Javascript file (string)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.description" ID="GreaseMonkeyScript.description"></a>
-<h4>GreaseMonkeyScript.description</h4>
-<b>description</b>(<i></i>)
-<p>
-        Public method to get the description of the script.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-description of the script (string)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.downloadUrl" ID="GreaseMonkeyScript.downloadUrl"></a>
-<h4>GreaseMonkeyScript.downloadUrl</h4>
-<b>downloadUrl</b>(<i></i>)
-<p>
-        Public method to get the download URL of the script.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-download URL of the script (QUrl)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.exclude" ID="GreaseMonkeyScript.exclude"></a>
-<h4>GreaseMonkeyScript.exclude</h4>
-<b>exclude</b>(<i></i>)
-<p>
-        Public method to get the list of excluded URLs.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of excluded URLs (list of strings)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.fileName" ID="GreaseMonkeyScript.fileName"></a>
-<h4>GreaseMonkeyScript.fileName</h4>
-<b>fileName</b>(<i></i>)
-<p>
-        Public method to get the path of the Javascript file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-path path of the Javascript file (string)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.fullName" ID="GreaseMonkeyScript.fullName"></a>
-<h4>GreaseMonkeyScript.fullName</h4>
-<b>fullName</b>(<i></i>)
-<p>
-        Public method to get the full name of the script.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-full name of the script (string)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.include" ID="GreaseMonkeyScript.include"></a>
-<h4>GreaseMonkeyScript.include</h4>
-<b>include</b>(<i></i>)
-<p>
-        Public method to get the list of included URLs.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of included URLs (list of strings)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.isEnabled" ID="GreaseMonkeyScript.isEnabled"></a>
-<h4>GreaseMonkeyScript.isEnabled</h4>
-<b>isEnabled</b>(<i></i>)
-<p>
-        Public method to check, if the script is enabled.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating an enabled state (boolean)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.isValid" ID="GreaseMonkeyScript.isValid"></a>
-<h4>GreaseMonkeyScript.isValid</h4>
-<b>isValid</b>(<i></i>)
-<p>
-        Public method to check the validity of the script.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a valid script (boolean)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.match" ID="GreaseMonkeyScript.match"></a>
-<h4>GreaseMonkeyScript.match</h4>
-<b>match</b>(<i>urlString</i>)
-<p>
-        Public method to check, if the script matches the given URL.
-</p><dl>
-<dt><i>urlString</i></dt>
-<dd>
-URL (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a match (boolean)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.name" ID="GreaseMonkeyScript.name"></a>
-<h4>GreaseMonkeyScript.name</h4>
-<b>name</b>(<i></i>)
-<p>
-        Public method to get the name of the script.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-name of the script (string)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.nameSpace" ID="GreaseMonkeyScript.nameSpace"></a>
-<h4>GreaseMonkeyScript.nameSpace</h4>
-<b>nameSpace</b>(<i></i>)
-<p>
-        Public method to get the name space of the script.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-name space of the script (string)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.script" ID="GreaseMonkeyScript.script"></a>
-<h4>GreaseMonkeyScript.script</h4>
-<b>script</b>(<i></i>)
-<p>
-        Public method to get the Javascript source.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-Javascript source (string)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.setEnabled" ID="GreaseMonkeyScript.setEnabled"></a>
-<h4>GreaseMonkeyScript.setEnabled</h4>
-<b>setEnabled</b>(<i>enable</i>)
-<p>
-        Public method to enable a script.
-</p><dl>
-<dt><i>enable</i></dt>
-<dd>
-flag indicating the new enabled state (boolean)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.startAt" ID="GreaseMonkeyScript.startAt"></a>
-<h4>GreaseMonkeyScript.startAt</h4>
-<b>startAt</b>(<i></i>)
-<p>
-        Public method to get the start point of the script.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-start point of the script (DocumentStart or DocumentEnd)
-</dd>
-</dl><a NAME="GreaseMonkeyScript.version" ID="GreaseMonkeyScript.version"></a>
-<h4>GreaseMonkeyScript.version</h4>
-<b>version</b>(<i></i>)
-<p>
-        Public method to get the version of the script.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-version of the script (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher</h1>
-<p>
-Module implementing the GreaseMonkey URL matcher.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyUrlMatcher">GreaseMonkeyUrlMatcher</a></td>
-<td>Class implementing the GreaseMonkey URL matcher.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#wildcardMatch">wildcardMatch</a></td>
-<td>Module function implementing a special wildcard matcher.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="GreaseMonkeyUrlMatcher" ID="GreaseMonkeyUrlMatcher"></a>
-<h2>GreaseMonkeyUrlMatcher</h2>
-<p>
-    Class implementing the GreaseMonkey URL matcher.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#GreaseMonkeyUrlMatcher.__init__">GreaseMonkeyUrlMatcher</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyUrlMatcher.__parsePattern">__parsePattern</a></td>
-<td>Private method to parse the match pattern.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyUrlMatcher.match">match</a></td>
-<td>Public method to match the given URL.</td>
-</tr><tr>
-<td><a href="#GreaseMonkeyUrlMatcher.pattern">pattern</a></td>
-<td>Public method to get the match pattern.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="GreaseMonkeyUrlMatcher.__init__" ID="GreaseMonkeyUrlMatcher.__init__"></a>
-<h4>GreaseMonkeyUrlMatcher (Constructor)</h4>
-<b>GreaseMonkeyUrlMatcher</b>(<i>pattern</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>pattern</i></dt>
-<dd>
-pattern to be used for the matching (string)
-</dd>
-</dl><a NAME="GreaseMonkeyUrlMatcher.__parsePattern" ID="GreaseMonkeyUrlMatcher.__parsePattern"></a>
-<h4>GreaseMonkeyUrlMatcher.__parsePattern</h4>
-<b>__parsePattern</b>(<i>pattern</i>)
-<p>
-        Private method to parse the match pattern.
-</p><dl>
-<dt><i>pattern</i></dt>
-<dd>
-match pattern to be used (string)
-</dd>
-</dl><a NAME="GreaseMonkeyUrlMatcher.match" ID="GreaseMonkeyUrlMatcher.match"></a>
-<h4>GreaseMonkeyUrlMatcher.match</h4>
-<b>match</b>(<i>urlString</i>)
-<p>
-        Public method to match the given URL.
-</p><dl>
-<dt><i>urlString</i></dt>
-<dd>
-URL to match (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a successful match (boolean)
-</dd>
-</dl><a NAME="GreaseMonkeyUrlMatcher.pattern" ID="GreaseMonkeyUrlMatcher.pattern"></a>
-<h4>GreaseMonkeyUrlMatcher.pattern</h4>
-<b>pattern</b>(<i></i>)
-<p>
-        Public method to get the match pattern.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-match pattern (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="wildcardMatch" ID="wildcardMatch"></a>
-<h2>wildcardMatch</h2>
-<b>wildcardMatch</b>(<i>string, pattern</i>)
-<p>
-    Module function implementing a special wildcard matcher.
-</p><dl>
-<dt><i>string</i></dt>
-<dd>
-string to match (string)
-</dd><dt><i>pattern</i></dt>
-<dd>
-pattern to be used (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a successful match (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpBrowserWV.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1806 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpBrowserWV</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpBrowserWV</h1>
-<p>
-Module implementing the helpbrowser using QWebView.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpBrowser">HelpBrowser</a></td>
-<td>Class implementing the helpbrowser widget.</td>
-</tr><tr>
-<td><a href="#HelpWebPage">HelpWebPage</a></td>
-<td>Class implementing an enhanced web page.</td>
-</tr><tr>
-<td><a href="#JavaScriptEricObject">JavaScriptEricObject</a></td>
-<td>Class implementing an external javascript object to search via the startpage.</td>
-</tr><tr>
-<td><a href="#JavaScriptExternalObject">JavaScriptExternalObject</a></td>
-<td>Class implementing an external javascript object to add search providers.</td>
-</tr><tr>
-<td><a href="#LinkedResource">LinkedResource</a></td>
-<td>Class defining a data structure for linked resources.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#contentSniff">contentSniff</a></td>
-<td>Module function to do some content sniffing to check, if the data is HTML.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="HelpBrowser" ID="HelpBrowser"></a>
-<h2>HelpBrowser</h2>
-<p>
-    Class implementing the helpbrowser widget.
-</p><p>
-    This is a subclass of the Qt QWebView to implement an
-    interface compatible with the QTextBrowser based variant.
-</p><h3>Signals</h3>
-<dl>
-<dt>backwardAvailable(bool)</dt>
-<dd>
-emitted after the current URL has changed
-</dd><dt>forwardAvailable(bool)</dt>
-<dd>
-emitted after the current URL has changed
-</dd><dt>highlighted(str)</dt>
-<dd>
-emitted, when the mouse hovers over a link
-</dd><dt>search(QUrl)</dt>
-<dd>
-emitted, when a search is requested
-</dd><dt>sourceChanged(QUrl)</dt>
-<dd>
-emitted after the current URL has changed
-</dd><dt>zoomValueChanged(int)</dt>
-<dd>
-emitted to signal a change of the zoom value
-</dd>
-</dl>
-<h3>Derived from</h3>
-QWebView
-<h3>Class Attributes</h3>
-<table>
-<tr><td>ZoomLevelDefault</td></tr><tr><td>ZoomLevels</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpBrowser.__init__">HelpBrowser</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__accessKeyShortcut">__accessKeyShortcut</a></td>
-<td>Private slot to switch the display of access keys.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__addExternalBinding">__addExternalBinding</a></td>
-<td>Private slot to add javascript bindings for adding search providers.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__addSearchEngine">__addSearchEngine</a></td>
-<td>Private slot to add a new search engine.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__addSpeedDial">__addSpeedDial</a></td>
-<td>Private slot to add a new speed dial.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__applyZoom">__applyZoom</a></td>
-<td>Private slot to apply the current zoom factor.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__blockImage">__blockImage</a></td>
-<td>Private slot to add a block rule for an image URL.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__bookmarkLink">__bookmarkLink</a></td>
-<td>Private slot to bookmark a link via the context menu.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__checkForAccessKey">__checkForAccessKey</a></td>
-<td>Private method to check the existence of an access key and activate the corresponding link.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__configureSpeedDial">__configureSpeedDial</a></td>
-<td>Private slot to configure the speed dial.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__copyImage">__copyImage</a></td>
-<td>Private slot to copy an image to the clipboard.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__copyLink">__copyLink</a></td>
-<td>Private slot to copy a link to the clipboard.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__copyLocation">__copyLocation</a></td>
-<td>Private slot to copy an image or media location to the clipboard.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__currentEngineChanged">__currentEngineChanged</a></td>
-<td>Private slot to track a change of the current search engine.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__dataString">__dataString</a></td>
-<td>Private method to generate a formatted data string.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__databaseQuotaExceeded">__databaseQuotaExceeded</a></td>
-<td>Private slot to handle the case, where the database quota is exceeded.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__downloadImage">__downloadImage</a></td>
-<td>Private slot to download an image and save it to disk.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__downloadLink">__downloadLink</a></td>
-<td>Private slot to download a link and save it to disk.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__downloadMedia">__downloadMedia</a></td>
-<td>Private slot to download a media and save it to disk.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__downloadRequested">__downloadRequested</a></td>
-<td>Private slot to handle a download request.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__featurePermissionRequested">__featurePermissionRequested</a></td>
-<td>Private slot handling a feature permission request.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__generatePrintPreviewClickedFrame">__generatePrintPreviewClickedFrame</a></td>
-<td>Private slot to generate a print preview of the clicked frame.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__hideAccessKeys">__hideAccessKeys</a></td>
-<td>Private slot to hide the access key labels.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__isMediaElement">__isMediaElement</a></td>
-<td>Private method to check, if the given element is a media element.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__isUrlValid">__isUrlValid</a></td>
-<td>Private method to check a URL for validity.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__levelForZoom">__levelForZoom</a></td>
-<td>Private method determining the zoom level index given a zoom factor.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__linkHovered">__linkHovered</a></td>
-<td>Private slot to handle the linkHovered signal.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__loadClickedFrame">__loadClickedFrame</a></td>
-<td>Private slot to load the selected frame only.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__loadFinished">__loadFinished</a></td>
-<td>Private method to handle the loadFinished signal.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__loadProgress">__loadProgress</a></td>
-<td>Private method to handle the loadProgress signal.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__loadStarted">__loadStarted</a></td>
-<td>Private method to handle the loadStarted signal.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__makeAccessLabel">__makeAccessLabel</a></td>
-<td>Private method to generate the access label for an element.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__muteMedia">__muteMedia</a></td>
-<td>Private slot to (un)mute the selected media.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__openLinkInNewTab">__openLinkInNewTab</a></td>
-<td>Private method called by the context menu to open a link in a new window.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__pauseMedia">__pauseMedia</a></td>
-<td>Private slot to pause or play the selected media.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__printClickedFrame">__printClickedFrame</a></td>
-<td>Private slot to print the selected frame.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__printPdfClickedFrame">__printPdfClickedFrame</a></td>
-<td>Private slot to print the selected frame to PDF.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__printPreviewClickedFrame">__printPreviewClickedFrame</a></td>
-<td>Private slot to show a print preview of the clicked frame.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__reloadAllSpeedDials">__reloadAllSpeedDials</a></td>
-<td>Private slot to reload all speed dials.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__resetSpeedDials">__resetSpeedDials</a></td>
-<td>Private slot to reset all speed dials to the default pages.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__searchRequested">__searchRequested</a></td>
-<td>Private slot to search for some text with a selected search engine.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__sendLink">__sendLink</a></td>
-<td>Private slot to send a link via email.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__showAccessKeys">__showAccessKeys</a></td>
-<td>Private method to show the access key labels.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__showClickedFrameSource">__showClickedFrameSource</a></td>
-<td>Private slot to show the source of the clicked frame.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__statusBarMessage">__statusBarMessage</a></td>
-<td>Private slot to handle the statusBarMessage signal.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__unsupportedContent">__unsupportedContent</a></td>
-<td>Private slot to handle the unsupportedContent signal.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__urlChanged">__urlChanged</a></td>
-<td>Private slot to handle the urlChanged signal.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__virusTotal">__virusTotal</a></td>
-<td>Private slot to scan the selected URL with VirusTotal.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__webInspector">__webInspector</a></td>
-<td>Private slot to show the web inspector window.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__zoomInClickedFrame">__zoomInClickedFrame</a></td>
-<td>Private slot to zoom into the clicked frame.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__zoomOutClickedFrame">__zoomOutClickedFrame</a></td>
-<td>Private slot to zoom out of the clicked frame.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.__zoomResetClickedFrame">__zoomResetClickedFrame</a></td>
-<td>Private slot to reset the zoom factor of the clicked frame.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.addBookmark">addBookmark</a></td>
-<td>Public slot to bookmark the current page.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.backward">backward</a></td>
-<td>Public slot to move backwards in history.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.checkRSS">checkRSS</a></td>
-<td>Public method to check, if the loaded page contains feed links.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.clearHistory">clearHistory</a></td>
-<td>Public slot to clear the history.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.closeWebInspector">closeWebInspector</a></td>
-<td>Public slot to close the web inspector.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.contextMenuEvent">contextMenuEvent</a></td>
-<td>Protected method called to create a context menu.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.copy">copy</a></td>
-<td>Public slot to copy the selected text.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.createWindow">createWindow</a></td>
-<td>Public method called, when a new window should be created.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.documentTitle">documentTitle</a></td>
-<td>Public method to return the title of the loaded page.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.dragEnterEvent">dragEnterEvent</a></td>
-<td>Protected method called by a drag enter event.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.dragMoveEvent">dragMoveEvent</a></td>
-<td>Protected method called by a drag move event.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.dropEvent">dropEvent</a></td>
-<td>Protected method called by a drop event.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.event">event</a></td>
-<td>Public method handling events.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.findNextPrev">findNextPrev</a></td>
-<td>Public slot to find the next occurrence of a text.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.focusOutEvent">focusOutEvent</a></td>
-<td>Protected method called by a focus out event.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.forward">forward</a></td>
-<td>Public slot to move forward in history.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.gestureEvent">gestureEvent</a></td>
-<td>Protected method handling gesture events.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.getRSS">getRSS</a></td>
-<td>Public method to get the extracted RSS feeds.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.hasRSS">hasRSS</a></td>
-<td>Public method to check, if the loaded page has RSS links.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.hasSelection">hasSelection</a></td>
-<td>Public method to determine, if there is some text selected.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.home">home</a></td>
-<td>Public slot to move to the first page loaded.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.isBackwardAvailable">isBackwardAvailable</a></td>
-<td>Public method to determine, if a backwards move in history is possible.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.isForwardAvailable">isForwardAvailable</a></td>
-<td>Public method to determine, if a forward move in history is possible.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.isLoading">isLoading</a></td>
-<td>Public method to get the loading state.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.keyPressEvent">keyPressEvent</a></td>
-<td>Protected method called by a key press.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.keyReleaseEvent">keyReleaseEvent</a></td>
-<td>Protected method called by a key release.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.linkedResources">linkedResources</a></td>
-<td>Public method to extract linked resources.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.mousePressEvent">mousePressEvent</a></td>
-<td>Protected method called by a mouse press event.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.mouseReleaseEvent">mouseReleaseEvent</a></td>
-<td>Protected method called by a mouse release event.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.preferencesChanged">preferencesChanged</a></td>
-<td>Public method to indicate a change of the settings.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.progress">progress</a></td>
-<td>Public method to get the load progress.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.reload">reload</a></td>
-<td>Public slot to reload the current page.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.saveAs">saveAs</a></td>
-<td>Public method to save the current page to a file.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.setSource">setSource</a></td>
-<td>Public method used to set the source to be displayed.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.setZoomValue">setZoomValue</a></td>
-<td>Public method to set the zoom value.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.source">source</a></td>
-<td>Public method to return the URL of the loaded page.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.wheelEvent">wheelEvent</a></td>
-<td>Protected method to handle wheel events.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.zoomIn">zoomIn</a></td>
-<td>Public slot to zoom into the page.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.zoomOut">zoomOut</a></td>
-<td>Public slot to zoom out of the page.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.zoomReset">zoomReset</a></td>
-<td>Public method to reset the zoom factor.</td>
-</tr><tr>
-<td><a href="#HelpBrowser.zoomValue">zoomValue</a></td>
-<td>Public method to get the current zoom value.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpBrowser.__init__" ID="HelpBrowser.__init__"></a>
-<h4>HelpBrowser (Constructor)</h4>
-<b>HelpBrowser</b>(<i>mainWindow, parent=None, name=""</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>mainWindow</i></dt>
-<dd>
-reference to the main window (HelpWindow)
-</dd><dt><i>parent</i></dt>
-<dd>
-parent widget of this window (QWidget)
-</dd><dt><i>name</i></dt>
-<dd>
-name of this window (string)
-</dd>
-</dl><a NAME="HelpBrowser.__accessKeyShortcut" ID="HelpBrowser.__accessKeyShortcut"></a>
-<h4>HelpBrowser.__accessKeyShortcut</h4>
-<b>__accessKeyShortcut</b>(<i></i>)
-<p>
-        Private slot to switch the display of access keys.
-</p><a NAME="HelpBrowser.__addExternalBinding" ID="HelpBrowser.__addExternalBinding"></a>
-<h4>HelpBrowser.__addExternalBinding</h4>
-<b>__addExternalBinding</b>(<i>frame=None</i>)
-<p>
-        Private slot to add javascript bindings for adding search providers.
-</p><dl>
-<dt><i>frame</i> (QWebFrame)</dt>
-<dd>
-reference to the web frame
-</dd>
-</dl><a NAME="HelpBrowser.__addSearchEngine" ID="HelpBrowser.__addSearchEngine"></a>
-<h4>HelpBrowser.__addSearchEngine</h4>
-<b>__addSearchEngine</b>(<i>act</i>)
-<p>
-        Private slot to add a new search engine.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action that triggered
-</dd>
-</dl><a NAME="HelpBrowser.__addSpeedDial" ID="HelpBrowser.__addSpeedDial"></a>
-<h4>HelpBrowser.__addSpeedDial</h4>
-<b>__addSpeedDial</b>(<i></i>)
-<p>
-        Private slot to add a new speed dial.
-</p><a NAME="HelpBrowser.__applyZoom" ID="HelpBrowser.__applyZoom"></a>
-<h4>HelpBrowser.__applyZoom</h4>
-<b>__applyZoom</b>(<i></i>)
-<p>
-        Private slot to apply the current zoom factor.
-</p><a NAME="HelpBrowser.__blockImage" ID="HelpBrowser.__blockImage"></a>
-<h4>HelpBrowser.__blockImage</h4>
-<b>__blockImage</b>(<i>act</i>)
-<p>
-        Private slot to add a block rule for an image URL.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action that triggered
-</dd>
-</dl><a NAME="HelpBrowser.__bookmarkLink" ID="HelpBrowser.__bookmarkLink"></a>
-<h4>HelpBrowser.__bookmarkLink</h4>
-<b>__bookmarkLink</b>(<i>act</i>)
-<p>
-        Private slot to bookmark a link via the context menu.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action that triggered
-</dd>
-</dl><a NAME="HelpBrowser.__checkForAccessKey" ID="HelpBrowser.__checkForAccessKey"></a>
-<h4>HelpBrowser.__checkForAccessKey</h4>
-<b>__checkForAccessKey</b>(<i>evt</i>)
-<p>
-        Private method to check the existence of an access key and activate the
-        corresponding link.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the key event (QKeyEvent)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating, if the event was handled (boolean)
-</dd>
-</dl><a NAME="HelpBrowser.__configureSpeedDial" ID="HelpBrowser.__configureSpeedDial"></a>
-<h4>HelpBrowser.__configureSpeedDial</h4>
-<b>__configureSpeedDial</b>(<i></i>)
-<p>
-        Private slot to configure the speed dial.
-</p><a NAME="HelpBrowser.__copyImage" ID="HelpBrowser.__copyImage"></a>
-<h4>HelpBrowser.__copyImage</h4>
-<b>__copyImage</b>(<i></i>)
-<p>
-        Private slot to copy an image to the clipboard.
-</p><a NAME="HelpBrowser.__copyLink" ID="HelpBrowser.__copyLink"></a>
-<h4>HelpBrowser.__copyLink</h4>
-<b>__copyLink</b>(<i></i>)
-<p>
-        Private slot to copy a link to the clipboard.
-</p><a NAME="HelpBrowser.__copyLocation" ID="HelpBrowser.__copyLocation"></a>
-<h4>HelpBrowser.__copyLocation</h4>
-<b>__copyLocation</b>(<i>act</i>)
-<p>
-        Private slot to copy an image or media location to the clipboard.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action that triggered
-</dd>
-</dl><a NAME="HelpBrowser.__currentEngineChanged" ID="HelpBrowser.__currentEngineChanged"></a>
-<h4>HelpBrowser.__currentEngineChanged</h4>
-<b>__currentEngineChanged</b>(<i></i>)
-<p>
-        Private slot to track a change of the current search engine.
-</p><a NAME="HelpBrowser.__dataString" ID="HelpBrowser.__dataString"></a>
-<h4>HelpBrowser.__dataString</h4>
-<b>__dataString</b>(<i>size</i>)
-<p>
-        Private method to generate a formatted data string.
-</p><dl>
-<dt><i>size</i></dt>
-<dd>
-size to be formatted (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-formatted data string (string)
-</dd>
-</dl><a NAME="HelpBrowser.__databaseQuotaExceeded" ID="HelpBrowser.__databaseQuotaExceeded"></a>
-<h4>HelpBrowser.__databaseQuotaExceeded</h4>
-<b>__databaseQuotaExceeded</b>(<i>frame, databaseName</i>)
-<p>
-        Private slot to handle the case, where the database quota is exceeded.
-</p><dl>
-<dt><i>frame</i></dt>
-<dd>
-reference to the frame (QWebFrame)
-</dd><dt><i>databaseName</i></dt>
-<dd>
-name of the web database (string)
-</dd>
-</dl><a NAME="HelpBrowser.__downloadImage" ID="HelpBrowser.__downloadImage"></a>
-<h4>HelpBrowser.__downloadImage</h4>
-<b>__downloadImage</b>(<i></i>)
-<p>
-        Private slot to download an image and save it to disk.
-</p><a NAME="HelpBrowser.__downloadLink" ID="HelpBrowser.__downloadLink"></a>
-<h4>HelpBrowser.__downloadLink</h4>
-<b>__downloadLink</b>(<i></i>)
-<p>
-        Private slot to download a link and save it to disk.
-</p><a NAME="HelpBrowser.__downloadMedia" ID="HelpBrowser.__downloadMedia"></a>
-<h4>HelpBrowser.__downloadMedia</h4>
-<b>__downloadMedia</b>(<i>act</i>)
-<p>
-        Private slot to download a media and save it to disk.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action that triggered
-</dd>
-</dl><a NAME="HelpBrowser.__downloadRequested" ID="HelpBrowser.__downloadRequested"></a>
-<h4>HelpBrowser.__downloadRequested</h4>
-<b>__downloadRequested</b>(<i>request</i>)
-<p>
-        Private slot to handle a download request.
-</p><dl>
-<dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd>
-</dl><a NAME="HelpBrowser.__featurePermissionRequested" ID="HelpBrowser.__featurePermissionRequested"></a>
-<h4>HelpBrowser.__featurePermissionRequested</h4>
-<b>__featurePermissionRequested</b>(<i>frame, feature</i>)
-<p>
-        Private slot handling a feature permission request.
-</p><dl>
-<dt><i>frame</i> (QWebFrame)</dt>
-<dd>
-frame sending the request
-</dd><dt><i>feature</i> (QWebPage.Feature)</dt>
-<dd>
-requested feature
-</dd>
-</dl><a NAME="HelpBrowser.__generatePrintPreviewClickedFrame" ID="HelpBrowser.__generatePrintPreviewClickedFrame"></a>
-<h4>HelpBrowser.__generatePrintPreviewClickedFrame</h4>
-<b>__generatePrintPreviewClickedFrame</b>(<i>printer</i>)
-<p>
-        Private slot to generate a print preview of the clicked frame.
-</p><dl>
-<dt><i>printer</i></dt>
-<dd>
-reference to the printer object (QPrinter)
-</dd>
-</dl><a NAME="HelpBrowser.__hideAccessKeys" ID="HelpBrowser.__hideAccessKeys"></a>
-<h4>HelpBrowser.__hideAccessKeys</h4>
-<b>__hideAccessKeys</b>(<i></i>)
-<p>
-        Private slot to hide the access key labels.
-</p><a NAME="HelpBrowser.__isMediaElement" ID="HelpBrowser.__isMediaElement"></a>
-<h4>HelpBrowser.__isMediaElement</h4>
-<b>__isMediaElement</b>(<i>element</i>)
-<p>
-        Private method to check, if the given element is a media element.
-</p><dl>
-<dt><i>element</i></dt>
-<dd>
-element to be checked (QWebElement)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a media element (boolean)
-</dd>
-</dl><a NAME="HelpBrowser.__isUrlValid" ID="HelpBrowser.__isUrlValid"></a>
-<h4>HelpBrowser.__isUrlValid</h4>
-<b>__isUrlValid</b>(<i>url</i>)
-<p>
-        Private method to check a URL for validity.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to be checked (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a valid URL (boolean)
-</dd>
-</dl><a NAME="HelpBrowser.__levelForZoom" ID="HelpBrowser.__levelForZoom"></a>
-<h4>HelpBrowser.__levelForZoom</h4>
-<b>__levelForZoom</b>(<i>zoom</i>)
-<p>
-        Private method determining the zoom level index given a zoom factor.
-</p><dl>
-<dt><i>zoom</i></dt>
-<dd>
-zoom factor (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-index of zoom factor (integer)
-</dd>
-</dl><a NAME="HelpBrowser.__linkHovered" ID="HelpBrowser.__linkHovered"></a>
-<h4>HelpBrowser.__linkHovered</h4>
-<b>__linkHovered</b>(<i>link, title, textContent</i>)
-<p>
-        Private slot to handle the linkHovered signal.
-</p><dl>
-<dt><i>link</i></dt>
-<dd>
-the URL of the link (string)
-</dd><dt><i>title</i></dt>
-<dd>
-the link title (string)
-</dd><dt><i>textContent</i></dt>
-<dd>
-text content of the link (string)
-</dd>
-</dl><a NAME="HelpBrowser.__loadClickedFrame" ID="HelpBrowser.__loadClickedFrame"></a>
-<h4>HelpBrowser.__loadClickedFrame</h4>
-<b>__loadClickedFrame</b>(<i></i>)
-<p>
-        Private slot to load the selected frame only.
-</p><a NAME="HelpBrowser.__loadFinished" ID="HelpBrowser.__loadFinished"></a>
-<h4>HelpBrowser.__loadFinished</h4>
-<b>__loadFinished</b>(<i>ok</i>)
-<p>
-        Private method to handle the loadFinished signal.
-</p><dl>
-<dt><i>ok</i></dt>
-<dd>
-flag indicating the result (boolean)
-</dd>
-</dl><a NAME="HelpBrowser.__loadProgress" ID="HelpBrowser.__loadProgress"></a>
-<h4>HelpBrowser.__loadProgress</h4>
-<b>__loadProgress</b>(<i>progress</i>)
-<p>
-        Private method to handle the loadProgress signal.
-</p><dl>
-<dt><i>progress</i></dt>
-<dd>
-progress value (integer)
-</dd>
-</dl><a NAME="HelpBrowser.__loadStarted" ID="HelpBrowser.__loadStarted"></a>
-<h4>HelpBrowser.__loadStarted</h4>
-<b>__loadStarted</b>(<i></i>)
-<p>
-        Private method to handle the loadStarted signal.
-</p><a NAME="HelpBrowser.__makeAccessLabel" ID="HelpBrowser.__makeAccessLabel"></a>
-<h4>HelpBrowser.__makeAccessLabel</h4>
-<b>__makeAccessLabel</b>(<i>accessKey, element</i>)
-<p>
-        Private method to generate the access label for an element.
-</p><dl>
-<dt><i>accessKey</i></dt>
-<dd>
-access key to generate the label for (str)
-</dd><dt><i>element</i></dt>
-<dd>
-reference to the web element to create the label for
-            (QWebElement)
-</dd>
-</dl><a NAME="HelpBrowser.__muteMedia" ID="HelpBrowser.__muteMedia"></a>
-<h4>HelpBrowser.__muteMedia</h4>
-<b>__muteMedia</b>(<i></i>)
-<p>
-        Private slot to (un)mute the selected media.
-</p><a NAME="HelpBrowser.__openLinkInNewTab" ID="HelpBrowser.__openLinkInNewTab"></a>
-<h4>HelpBrowser.__openLinkInNewTab</h4>
-<b>__openLinkInNewTab</b>(<i>act</i>)
-<p>
-        Private method called by the context menu to open a link in a new
-        window.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action that triggered
-</dd>
-</dl><a NAME="HelpBrowser.__pauseMedia" ID="HelpBrowser.__pauseMedia"></a>
-<h4>HelpBrowser.__pauseMedia</h4>
-<b>__pauseMedia</b>(<i></i>)
-<p>
-        Private slot to pause or play the selected media.
-</p><a NAME="HelpBrowser.__printClickedFrame" ID="HelpBrowser.__printClickedFrame"></a>
-<h4>HelpBrowser.__printClickedFrame</h4>
-<b>__printClickedFrame</b>(<i></i>)
-<p>
-        Private slot to print the selected frame.
-</p><a NAME="HelpBrowser.__printPdfClickedFrame" ID="HelpBrowser.__printPdfClickedFrame"></a>
-<h4>HelpBrowser.__printPdfClickedFrame</h4>
-<b>__printPdfClickedFrame</b>(<i></i>)
-<p>
-        Private slot to print the selected frame to PDF.
-</p><a NAME="HelpBrowser.__printPreviewClickedFrame" ID="HelpBrowser.__printPreviewClickedFrame"></a>
-<h4>HelpBrowser.__printPreviewClickedFrame</h4>
-<b>__printPreviewClickedFrame</b>(<i></i>)
-<p>
-        Private slot to show a print preview of the clicked frame.
-</p><a NAME="HelpBrowser.__reloadAllSpeedDials" ID="HelpBrowser.__reloadAllSpeedDials"></a>
-<h4>HelpBrowser.__reloadAllSpeedDials</h4>
-<b>__reloadAllSpeedDials</b>(<i></i>)
-<p>
-        Private slot to reload all speed dials.
-</p><a NAME="HelpBrowser.__resetSpeedDials" ID="HelpBrowser.__resetSpeedDials"></a>
-<h4>HelpBrowser.__resetSpeedDials</h4>
-<b>__resetSpeedDials</b>(<i></i>)
-<p>
-        Private slot to reset all speed dials to the default pages.
-</p><a NAME="HelpBrowser.__searchRequested" ID="HelpBrowser.__searchRequested"></a>
-<h4>HelpBrowser.__searchRequested</h4>
-<b>__searchRequested</b>(<i>act</i>)
-<p>
-        Private slot to search for some text with a selected search engine.
-</p><dl>
-<dt><i>act</i></dt>
-<dd>
-reference to the action that triggered this slot (QAction)
-</dd>
-</dl><a NAME="HelpBrowser.__sendLink" ID="HelpBrowser.__sendLink"></a>
-<h4>HelpBrowser.__sendLink</h4>
-<b>__sendLink</b>(<i>act</i>)
-<p>
-        Private slot to send a link via email.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action that triggered
-</dd>
-</dl><a NAME="HelpBrowser.__showAccessKeys" ID="HelpBrowser.__showAccessKeys"></a>
-<h4>HelpBrowser.__showAccessKeys</h4>
-<b>__showAccessKeys</b>(<i></i>)
-<p>
-        Private method to show the access key labels.
-</p><a NAME="HelpBrowser.__showClickedFrameSource" ID="HelpBrowser.__showClickedFrameSource"></a>
-<h4>HelpBrowser.__showClickedFrameSource</h4>
-<b>__showClickedFrameSource</b>(<i></i>)
-<p>
-        Private slot to show the source of the clicked frame.
-</p><a NAME="HelpBrowser.__statusBarMessage" ID="HelpBrowser.__statusBarMessage"></a>
-<h4>HelpBrowser.__statusBarMessage</h4>
-<b>__statusBarMessage</b>(<i>text</i>)
-<p>
-        Private slot to handle the statusBarMessage signal.
-</p><dl>
-<dt><i>text</i></dt>
-<dd>
-text to be shown in the status bar (string)
-</dd>
-</dl><a NAME="HelpBrowser.__unsupportedContent" ID="HelpBrowser.__unsupportedContent"></a>
-<h4>HelpBrowser.__unsupportedContent</h4>
-<b>__unsupportedContent</b>(<i>reply, requestFilename=None, download=False</i>)
-<p>
-        Private slot to handle the unsupportedContent signal.
-</p><dl>
-<dt><i>reply</i></dt>
-<dd>
-reference to the reply object (QNetworkReply)
-</dd><dt><i>requestFilename=</i></dt>
-<dd>
-indicating to ask for a filename
-            (boolean or None). If it is None, the behavior is determined
-            by a configuration option.
-</dd><dt><i>download=</i></dt>
-<dd>
-flag indicating a download operation (boolean)
-</dd>
-</dl><a NAME="HelpBrowser.__urlChanged" ID="HelpBrowser.__urlChanged"></a>
-<h4>HelpBrowser.__urlChanged</h4>
-<b>__urlChanged</b>(<i>url</i>)
-<p>
-        Private slot to handle the urlChanged signal.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-the new url (QUrl)
-</dd>
-</dl><a NAME="HelpBrowser.__virusTotal" ID="HelpBrowser.__virusTotal"></a>
-<h4>HelpBrowser.__virusTotal</h4>
-<b>__virusTotal</b>(<i>act</i>)
-<p>
-        Private slot to scan the selected URL with VirusTotal.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action that triggered
-</dd>
-</dl><a NAME="HelpBrowser.__webInspector" ID="HelpBrowser.__webInspector"></a>
-<h4>HelpBrowser.__webInspector</h4>
-<b>__webInspector</b>(<i></i>)
-<p>
-        Private slot to show the web inspector window.
-</p><a NAME="HelpBrowser.__zoomInClickedFrame" ID="HelpBrowser.__zoomInClickedFrame"></a>
-<h4>HelpBrowser.__zoomInClickedFrame</h4>
-<b>__zoomInClickedFrame</b>(<i></i>)
-<p>
-        Private slot to zoom into the clicked frame.
-</p><a NAME="HelpBrowser.__zoomOutClickedFrame" ID="HelpBrowser.__zoomOutClickedFrame"></a>
-<h4>HelpBrowser.__zoomOutClickedFrame</h4>
-<b>__zoomOutClickedFrame</b>(<i></i>)
-<p>
-        Private slot to zoom out of the clicked frame.
-</p><a NAME="HelpBrowser.__zoomResetClickedFrame" ID="HelpBrowser.__zoomResetClickedFrame"></a>
-<h4>HelpBrowser.__zoomResetClickedFrame</h4>
-<b>__zoomResetClickedFrame</b>(<i></i>)
-<p>
-        Private slot to reset the zoom factor of the clicked frame.
-</p><a NAME="HelpBrowser.addBookmark" ID="HelpBrowser.addBookmark"></a>
-<h4>HelpBrowser.addBookmark</h4>
-<b>addBookmark</b>(<i></i>)
-<p>
-        Public slot to bookmark the current page.
-</p><a NAME="HelpBrowser.backward" ID="HelpBrowser.backward"></a>
-<h4>HelpBrowser.backward</h4>
-<b>backward</b>(<i></i>)
-<p>
-        Public slot to move backwards in history.
-</p><a NAME="HelpBrowser.checkRSS" ID="HelpBrowser.checkRSS"></a>
-<h4>HelpBrowser.checkRSS</h4>
-<b>checkRSS</b>(<i></i>)
-<p>
-        Public method to check, if the loaded page contains feed links.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the existence of feed links (boolean)
-</dd>
-</dl><a NAME="HelpBrowser.clearHistory" ID="HelpBrowser.clearHistory"></a>
-<h4>HelpBrowser.clearHistory</h4>
-<b>clearHistory</b>(<i></i>)
-<p>
-        Public slot to clear the history.
-</p><a NAME="HelpBrowser.closeWebInspector" ID="HelpBrowser.closeWebInspector"></a>
-<h4>HelpBrowser.closeWebInspector</h4>
-<b>closeWebInspector</b>(<i></i>)
-<p>
-        Public slot to close the web inspector.
-</p><a NAME="HelpBrowser.contextMenuEvent" ID="HelpBrowser.contextMenuEvent"></a>
-<h4>HelpBrowser.contextMenuEvent</h4>
-<b>contextMenuEvent</b>(<i>evt</i>)
-<p>
-        Protected method called to create a context menu.
-</p><p>
-        This method is overridden from QWebView.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the context menu event object
-            (QContextMenuEvent)
-</dd>
-</dl><a NAME="HelpBrowser.copy" ID="HelpBrowser.copy"></a>
-<h4>HelpBrowser.copy</h4>
-<b>copy</b>(<i></i>)
-<p>
-        Public slot to copy the selected text.
-</p><a NAME="HelpBrowser.createWindow" ID="HelpBrowser.createWindow"></a>
-<h4>HelpBrowser.createWindow</h4>
-<b>createWindow</b>(<i>windowType</i>)
-<p>
-        Public method called, when a new window should be created.
-</p><dl>
-<dt><i>windowType</i></dt>
-<dd>
-type of the requested window (QWebPage.WebWindowType)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the created browser window (HelpBrowser)
-</dd>
-</dl><a NAME="HelpBrowser.documentTitle" ID="HelpBrowser.documentTitle"></a>
-<h4>HelpBrowser.documentTitle</h4>
-<b>documentTitle</b>(<i></i>)
-<p>
-        Public method to return the title of the loaded page.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-title (string)
-</dd>
-</dl><a NAME="HelpBrowser.dragEnterEvent" ID="HelpBrowser.dragEnterEvent"></a>
-<h4>HelpBrowser.dragEnterEvent</h4>
-<b>dragEnterEvent</b>(<i>evt</i>)
-<p>
-        Protected method called by a drag enter event.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the drag enter event (QDragEnterEvent)
-</dd>
-</dl><a NAME="HelpBrowser.dragMoveEvent" ID="HelpBrowser.dragMoveEvent"></a>
-<h4>HelpBrowser.dragMoveEvent</h4>
-<b>dragMoveEvent</b>(<i>evt</i>)
-<p>
-        Protected method called by a drag move event.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the drag move event (QDragMoveEvent)
-</dd>
-</dl><a NAME="HelpBrowser.dropEvent" ID="HelpBrowser.dropEvent"></a>
-<h4>HelpBrowser.dropEvent</h4>
-<b>dropEvent</b>(<i>evt</i>)
-<p>
-        Protected method called by a drop event.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the drop event (QDropEvent)
-</dd>
-</dl><a NAME="HelpBrowser.event" ID="HelpBrowser.event"></a>
-<h4>HelpBrowser.event</h4>
-<b>event</b>(<i>evt</i>)
-<p>
-        Public method handling events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the event (QEvent)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating, if the event was handled (boolean)
-</dd>
-</dl><a NAME="HelpBrowser.findNextPrev" ID="HelpBrowser.findNextPrev"></a>
-<h4>HelpBrowser.findNextPrev</h4>
-<b>findNextPrev</b>(<i>txt, case, backwards, wrap, highlightAll</i>)
-<p>
-        Public slot to find the next occurrence of a text.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-text to search for (string)
-</dd><dt><i>case</i></dt>
-<dd>
-flag indicating a case sensitive search (boolean)
-</dd><dt><i>backwards</i></dt>
-<dd>
-flag indicating a backwards search (boolean)
-</dd><dt><i>wrap</i></dt>
-<dd>
-flag indicating to wrap around (boolean)
-</dd><dt><i>highlightAll</i></dt>
-<dd>
-flag indicating to highlight all occurrences
-            (boolean)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating that a match was found (boolean)
-</dd>
-</dl><a NAME="HelpBrowser.focusOutEvent" ID="HelpBrowser.focusOutEvent"></a>
-<h4>HelpBrowser.focusOutEvent</h4>
-<b>focusOutEvent</b>(<i>evt</i>)
-<p>
-        Protected method called by a focus out event.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the focus event (QFocusEvent)
-</dd>
-</dl><a NAME="HelpBrowser.forward" ID="HelpBrowser.forward"></a>
-<h4>HelpBrowser.forward</h4>
-<b>forward</b>(<i></i>)
-<p>
-        Public slot to move forward in history.
-</p><a NAME="HelpBrowser.gestureEvent" ID="HelpBrowser.gestureEvent"></a>
-<h4>HelpBrowser.gestureEvent</h4>
-<b>gestureEvent</b>(<i>evt</i>)
-<p>
-        Protected method handling gesture events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the gesture event (QGestureEvent
-</dd>
-</dl><a NAME="HelpBrowser.getRSS" ID="HelpBrowser.getRSS"></a>
-<h4>HelpBrowser.getRSS</h4>
-<b>getRSS</b>(<i></i>)
-<p>
-        Public method to get the extracted RSS feeds.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of RSS feeds (list of tuples of two strings)
-</dd>
-</dl><a NAME="HelpBrowser.hasRSS" ID="HelpBrowser.hasRSS"></a>
-<h4>HelpBrowser.hasRSS</h4>
-<b>hasRSS</b>(<i></i>)
-<p>
-        Public method to check, if the loaded page has RSS links.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the presence of RSS links (boolean)
-</dd>
-</dl><a NAME="HelpBrowser.hasSelection" ID="HelpBrowser.hasSelection"></a>
-<h4>HelpBrowser.hasSelection</h4>
-<b>hasSelection</b>(<i></i>)
-<p>
-        Public method to determine, if there is some text selected.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating text has been selected (boolean)
-</dd>
-</dl><a NAME="HelpBrowser.home" ID="HelpBrowser.home"></a>
-<h4>HelpBrowser.home</h4>
-<b>home</b>(<i></i>)
-<p>
-        Public slot to move to the first page loaded.
-</p><a NAME="HelpBrowser.isBackwardAvailable" ID="HelpBrowser.isBackwardAvailable"></a>
-<h4>HelpBrowser.isBackwardAvailable</h4>
-<b>isBackwardAvailable</b>(<i></i>)
-<p>
-        Public method to determine, if a backwards move in history is possible.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating move backwards is possible (boolean)
-</dd>
-</dl><a NAME="HelpBrowser.isForwardAvailable" ID="HelpBrowser.isForwardAvailable"></a>
-<h4>HelpBrowser.isForwardAvailable</h4>
-<b>isForwardAvailable</b>(<i></i>)
-<p>
-        Public method to determine, if a forward move in history is possible.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating move forward is possible (boolean)
-</dd>
-</dl><a NAME="HelpBrowser.isLoading" ID="HelpBrowser.isLoading"></a>
-<h4>HelpBrowser.isLoading</h4>
-<b>isLoading</b>(<i></i>)
-<p>
-        Public method to get the loading state.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the loading state (boolean)
-</dd>
-</dl><a NAME="HelpBrowser.keyPressEvent" ID="HelpBrowser.keyPressEvent"></a>
-<h4>HelpBrowser.keyPressEvent</h4>
-<b>keyPressEvent</b>(<i>evt</i>)
-<p>
-        Protected method called by a key press.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the key event (QKeyEvent)
-</dd>
-</dl><a NAME="HelpBrowser.keyReleaseEvent" ID="HelpBrowser.keyReleaseEvent"></a>
-<h4>HelpBrowser.keyReleaseEvent</h4>
-<b>keyReleaseEvent</b>(<i>evt</i>)
-<p>
-        Protected method called by a key release.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the key event (QKeyEvent)
-</dd>
-</dl><a NAME="HelpBrowser.linkedResources" ID="HelpBrowser.linkedResources"></a>
-<h4>HelpBrowser.linkedResources</h4>
-<b>linkedResources</b>(<i>relation=""</i>)
-<p>
-        Public method to extract linked resources.
-</p><dl>
-<dt><i>relation</i></dt>
-<dd>
-relation to extract (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-list of linked resources (list of LinkedResource)
-</dd>
-</dl><a NAME="HelpBrowser.mousePressEvent" ID="HelpBrowser.mousePressEvent"></a>
-<h4>HelpBrowser.mousePressEvent</h4>
-<b>mousePressEvent</b>(<i>evt</i>)
-<p>
-        Protected method called by a mouse press event.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the mouse event (QMouseEvent)
-</dd>
-</dl><a NAME="HelpBrowser.mouseReleaseEvent" ID="HelpBrowser.mouseReleaseEvent"></a>
-<h4>HelpBrowser.mouseReleaseEvent</h4>
-<b>mouseReleaseEvent</b>(<i>evt</i>)
-<p>
-        Protected method called by a mouse release event.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the mouse event (QMouseEvent)
-</dd>
-</dl><a NAME="HelpBrowser.preferencesChanged" ID="HelpBrowser.preferencesChanged"></a>
-<h4>HelpBrowser.preferencesChanged</h4>
-<b>preferencesChanged</b>(<i></i>)
-<p>
-        Public method to indicate a change of the settings.
-</p><a NAME="HelpBrowser.progress" ID="HelpBrowser.progress"></a>
-<h4>HelpBrowser.progress</h4>
-<b>progress</b>(<i></i>)
-<p>
-        Public method to get the load progress.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-load progress (integer)
-</dd>
-</dl><a NAME="HelpBrowser.reload" ID="HelpBrowser.reload"></a>
-<h4>HelpBrowser.reload</h4>
-<b>reload</b>(<i></i>)
-<p>
-        Public slot to reload the current page.
-</p><a NAME="HelpBrowser.saveAs" ID="HelpBrowser.saveAs"></a>
-<h4>HelpBrowser.saveAs</h4>
-<b>saveAs</b>(<i></i>)
-<p>
-        Public method to save the current page to a file.
-</p><a NAME="HelpBrowser.setSource" ID="HelpBrowser.setSource"></a>
-<h4>HelpBrowser.setSource</h4>
-<b>setSource</b>(<i>name, requestData=None</i>)
-<p>
-        Public method used to set the source to be displayed.
-</p><dl>
-<dt><i>name</i></dt>
-<dd>
-filename to be shown (QUrl)
-</dd><dt><i>requestData</i></dt>
-<dd>
-tuple containing the request data (QNetworkRequest,
-            QNetworkAccessManager.Operation, QByteArray)
-</dd>
-</dl><a NAME="HelpBrowser.setZoomValue" ID="HelpBrowser.setZoomValue"></a>
-<h4>HelpBrowser.setZoomValue</h4>
-<b>setZoomValue</b>(<i>value, saveValue=True</i>)
-<p>
-        Public method to set the zoom value.
-</p><dl>
-<dt><i>value</i></dt>
-<dd>
-zoom value (integer)
-</dd><dt><i>saveValue=</i> (bool)</dt>
-<dd>
-flag indicating to save the zoom value with the
-            zoom manager
-</dd>
-</dl><a NAME="HelpBrowser.source" ID="HelpBrowser.source"></a>
-<h4>HelpBrowser.source</h4>
-<b>source</b>(<i></i>)
-<p>
-        Public method to return the URL of the loaded page.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-URL loaded in the help browser (QUrl)
-</dd>
-</dl><a NAME="HelpBrowser.wheelEvent" ID="HelpBrowser.wheelEvent"></a>
-<h4>HelpBrowser.wheelEvent</h4>
-<b>wheelEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle wheel events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the wheel event (QWheelEvent)
-</dd>
-</dl><a NAME="HelpBrowser.zoomIn" ID="HelpBrowser.zoomIn"></a>
-<h4>HelpBrowser.zoomIn</h4>
-<b>zoomIn</b>(<i></i>)
-<p>
-        Public slot to zoom into the page.
-</p><a NAME="HelpBrowser.zoomOut" ID="HelpBrowser.zoomOut"></a>
-<h4>HelpBrowser.zoomOut</h4>
-<b>zoomOut</b>(<i></i>)
-<p>
-        Public slot to zoom out of the page.
-</p><a NAME="HelpBrowser.zoomReset" ID="HelpBrowser.zoomReset"></a>
-<h4>HelpBrowser.zoomReset</h4>
-<b>zoomReset</b>(<i></i>)
-<p>
-        Public method to reset the zoom factor.
-</p><a NAME="HelpBrowser.zoomValue" ID="HelpBrowser.zoomValue"></a>
-<h4>HelpBrowser.zoomValue</h4>
-<b>zoomValue</b>(<i></i>)
-<p>
-        Public method to get the current zoom value.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-zoom value (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="HelpWebPage" ID="HelpWebPage"></a>
-<h2>HelpWebPage</h2>
-<p>
-    Class implementing an enhanced web page.
-</p>
-<h3>Derived from</h3>
-QWebPage
-<h3>Class Attributes</h3>
-<table>
-<tr><td>_webPluginFactory</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpWebPage.webPluginFactory">webPluginFactory</a></td>
-<td>Class method to get a reference to the web plug-in factory instance.</td>
-</tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpWebPage.__init__">HelpWebPage</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpWebPage.__loadStarted">__loadStarted</a></td>
-<td>Private method to handle the loadStarted signal.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.__managerFinished">__managerFinished</a></td>
-<td>Private slot to handle a finished reply.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.__restoreFrameStateRequested">__restoreFrameStateRequested</a></td>
-<td>Private slot to restore scroll position and zoom level from history.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.__saveFrameStateRequested">__saveFrameStateRequested</a></td>
-<td>Private slot to save the page state (i.e.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.acceptNavigationRequest">acceptNavigationRequest</a></td>
-<td>Public method to determine, if a request may be accepted.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.addAdBlockRule">addAdBlockRule</a></td>
-<td>Public slot to add an AdBlock rule to the page.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.event">event</a></td>
-<td>Public method implementing the event handler.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.extension">extension</a></td>
-<td>Public method to implement a specific extension.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.getAdBlockedPageEntries">getAdBlockedPageEntries</a></td>
-<td>Public method to get the list of AdBlock page entries.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.getSslCertificate">getSslCertificate</a></td>
-<td>Public method to get a reference to the SSL certificate.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.getSslCertificateChain">getSslCertificateChain</a></td>
-<td>Public method to get a reference to the SSL certificate chain.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.getSslConfiguration">getSslConfiguration</a></td>
-<td>Public method to return a reference to the current SSL configuration.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.hasValidSslInfo">hasValidSslInfo</a></td>
-<td>Public method to check, if the page has a valid SSL certificate.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.pageAttributeId">pageAttributeId</a></td>
-<td>Public method to get the attribute id of the page attribute.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.populateNetworkRequest">populateNetworkRequest</a></td>
-<td>Public method to add data to a network request.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.setUserAgent">setUserAgent</a></td>
-<td>Public method to set the global user agent string.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.showSslInfo">showSslInfo</a></td>
-<td>Public slot to show some SSL information for the loaded page.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.supportsExtension">supportsExtension</a></td>
-<td>Public method to check the support for an extension.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.url">url</a></td>
-<td>Public method to get the URL of the page.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.userAgent">userAgent</a></td>
-<td>Public method to get the global user agent setting.</td>
-</tr><tr>
-<td><a href="#HelpWebPage.userAgentForUrl">userAgentForUrl</a></td>
-<td>Public method to determine the user agent for the given URL.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpWebPage.webPluginFactory" ID="HelpWebPage.webPluginFactory"></a>
-<h4>HelpWebPage.webPluginFactory (class method)</h4>
-<b>webPluginFactory</b>(<i></i>)
-<p>
-        Class method to get a reference to the web plug-in factory
-        instance.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the web plug-in factory instance (WebPluginFactory
-</dd>
-</dl><a NAME="HelpWebPage.__init__" ID="HelpWebPage.__init__"></a>
-<h4>HelpWebPage (Constructor)</h4>
-<b>HelpWebPage</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-parent widget of this window (QWidget)
-</dd>
-</dl><a NAME="HelpWebPage.__loadStarted" ID="HelpWebPage.__loadStarted"></a>
-<h4>HelpWebPage.__loadStarted</h4>
-<b>__loadStarted</b>(<i></i>)
-<p>
-        Private method to handle the loadStarted signal.
-</p><a NAME="HelpWebPage.__managerFinished" ID="HelpWebPage.__managerFinished"></a>
-<h4>HelpWebPage.__managerFinished</h4>
-<b>__managerFinished</b>(<i>reply</i>)
-<p>
-        Private slot to handle a finished reply.
-</p><p>
-        This slot is used to get SSL related information for a reply.
-</p><dl>
-<dt><i>reply</i></dt>
-<dd>
-reference to the finished reply (QNetworkReply)
-</dd>
-</dl><a NAME="HelpWebPage.__restoreFrameStateRequested" ID="HelpWebPage.__restoreFrameStateRequested"></a>
-<h4>HelpWebPage.__restoreFrameStateRequested</h4>
-<b>__restoreFrameStateRequested</b>(<i>frame</i>)
-<p>
-        Private slot to restore scroll position and zoom level from
-        history.
-</p><p>
-        Note: Code is based on qutebrowser.
-</p><dl>
-<dt><i>frame</i> (QWebFrame)</dt>
-<dd>
-frame to be restored
-</dd>
-</dl><a NAME="HelpWebPage.__saveFrameStateRequested" ID="HelpWebPage.__saveFrameStateRequested"></a>
-<h4>HelpWebPage.__saveFrameStateRequested</h4>
-<b>__saveFrameStateRequested</b>(<i>frame, itm</i>)
-<p>
-        Private slot to save the page state (i.e. zoom level and scroll
-        position).
-</p><p>
-        Note: Code is based on qutebrowser.
-</p><dl>
-<dt><i>frame</i> (QWebFrame)</dt>
-<dd>
-frame to be saved
-</dd><dt><i>itm</i> (QWebHistoryItem)</dt>
-<dd>
-web history item to be saved
-</dd>
-</dl><a NAME="HelpWebPage.acceptNavigationRequest" ID="HelpWebPage.acceptNavigationRequest"></a>
-<h4>HelpWebPage.acceptNavigationRequest</h4>
-<b>acceptNavigationRequest</b>(<i>frame, request, type_</i>)
-<p>
-        Public method to determine, if a request may be accepted.
-</p><dl>
-<dt><i>frame</i></dt>
-<dd>
-reference to the frame sending the request (QWebFrame)
-</dd><dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd><dt><i>type_</i></dt>
-<dd>
-type of the navigation request (QWebPage.NavigationType)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating acceptance (boolean)
-</dd>
-</dl><a NAME="HelpWebPage.addAdBlockRule" ID="HelpWebPage.addAdBlockRule"></a>
-<h4>HelpWebPage.addAdBlockRule</h4>
-<b>addAdBlockRule</b>(<i>rule, url</i>)
-<p>
-        Public slot to add an AdBlock rule to the page.
-</p><dl>
-<dt><i>rule</i></dt>
-<dd>
-AdBlock rule to add (AdBlockRule)
-</dd><dt><i>url</i></dt>
-<dd>
-URL that matched the rule (QUrl)
-</dd>
-</dl><a NAME="HelpWebPage.event" ID="HelpWebPage.event"></a>
-<h4>HelpWebPage.event</h4>
-<b>event</b>(<i>evt</i>)
-<p>
-        Public method implementing the event handler.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the event (QEvent)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating that the event was handled (boolean)
-</dd>
-</dl><a NAME="HelpWebPage.extension" ID="HelpWebPage.extension"></a>
-<h4>HelpWebPage.extension</h4>
-<b>extension</b>(<i>extension, option, output</i>)
-<p>
-        Public method to implement a specific extension.
-</p><dl>
-<dt><i>extension</i></dt>
-<dd>
-extension to be executed (QWebPage.Extension)
-</dd><dt><i>option</i></dt>
-<dd>
-provides input to the extension
-            (QWebPage.ExtensionOption)
-</dd><dt><i>output</i></dt>
-<dd>
-stores the output results (QWebPage.ExtensionReturn)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a successful call of the extension (boolean)
-</dd>
-</dl><a NAME="HelpWebPage.getAdBlockedPageEntries" ID="HelpWebPage.getAdBlockedPageEntries"></a>
-<h4>HelpWebPage.getAdBlockedPageEntries</h4>
-<b>getAdBlockedPageEntries</b>(<i></i>)
-<p>
-        Public method to get the list of AdBlock page entries.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of AdBlock page entries (list of AdBlockedPageEntry)
-</dd>
-</dl><a NAME="HelpWebPage.getSslCertificate" ID="HelpWebPage.getSslCertificate"></a>
-<h4>HelpWebPage.getSslCertificate</h4>
-<b>getSslCertificate</b>(<i></i>)
-<p>
-        Public method to get a reference to the SSL certificate.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-amended SSL certificate (QSslCertificate)
-</dd>
-</dl><a NAME="HelpWebPage.getSslCertificateChain" ID="HelpWebPage.getSslCertificateChain"></a>
-<h4>HelpWebPage.getSslCertificateChain</h4>
-<b>getSslCertificateChain</b>(<i></i>)
-<p>
-        Public method to get a reference to the SSL certificate chain.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-SSL certificate chain (list of QSslCertificate)
-</dd>
-</dl><a NAME="HelpWebPage.getSslConfiguration" ID="HelpWebPage.getSslConfiguration"></a>
-<h4>HelpWebPage.getSslConfiguration</h4>
-<b>getSslConfiguration</b>(<i></i>)
-<p>
-        Public method to return a reference to the current SSL configuration.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the SSL configuration in use (QSslConfiguration)
-</dd>
-</dl><a NAME="HelpWebPage.hasValidSslInfo" ID="HelpWebPage.hasValidSslInfo"></a>
-<h4>HelpWebPage.hasValidSslInfo</h4>
-<b>hasValidSslInfo</b>(<i></i>)
-<p>
-        Public method to check, if the page has a valid SSL certificate.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a valid SSL certificate (boolean)
-</dd>
-</dl><a NAME="HelpWebPage.pageAttributeId" ID="HelpWebPage.pageAttributeId"></a>
-<h4>HelpWebPage.pageAttributeId</h4>
-<b>pageAttributeId</b>(<i></i>)
-<p>
-        Public method to get the attribute id of the page attribute.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-attribute id of the page attribute (integer)
-</dd>
-</dl><a NAME="HelpWebPage.populateNetworkRequest" ID="HelpWebPage.populateNetworkRequest"></a>
-<h4>HelpWebPage.populateNetworkRequest</h4>
-<b>populateNetworkRequest</b>(<i>request</i>)
-<p>
-        Public method to add data to a network request.
-</p><dl>
-<dt><i>request</i></dt>
-<dd>
-reference to the network request object
-            (QNetworkRequest)
-</dd>
-</dl><a NAME="HelpWebPage.setUserAgent" ID="HelpWebPage.setUserAgent"></a>
-<h4>HelpWebPage.setUserAgent</h4>
-<b>setUserAgent</b>(<i>agent</i>)
-<p>
-        Public method to set the global user agent string.
-</p><dl>
-<dt><i>agent</i></dt>
-<dd>
-new current user agent string (string)
-</dd>
-</dl><a NAME="HelpWebPage.showSslInfo" ID="HelpWebPage.showSslInfo"></a>
-<h4>HelpWebPage.showSslInfo</h4>
-<b>showSslInfo</b>(<i>pos</i>)
-<p>
-        Public slot to show some SSL information for the loaded page.
-</p><dl>
-<dt><i>pos</i></dt>
-<dd>
-position to show the info at (QPoint)
-</dd>
-</dl><a NAME="HelpWebPage.supportsExtension" ID="HelpWebPage.supportsExtension"></a>
-<h4>HelpWebPage.supportsExtension</h4>
-<b>supportsExtension</b>(<i>extension</i>)
-<p>
-        Public method to check the support for an extension.
-</p><dl>
-<dt><i>extension</i></dt>
-<dd>
-extension to test for (QWebPage.Extension)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the support of extension (boolean)
-</dd>
-</dl><a NAME="HelpWebPage.url" ID="HelpWebPage.url"></a>
-<h4>HelpWebPage.url</h4>
-<b>url</b>(<i></i>)
-<p>
-        Public method to get the URL of the page.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-URL of the page (QUrl)
-</dd>
-</dl><a NAME="HelpWebPage.userAgent" ID="HelpWebPage.userAgent"></a>
-<h4>HelpWebPage.userAgent</h4>
-<b>userAgent</b>(<i>resolveEmpty=False</i>)
-<p>
-        Public method to get the global user agent setting.
-</p><dl>
-<dt><i>resolveEmpty</i></dt>
-<dd>
-flag indicating to resolve an empty
-            user agent (boolean)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-user agent string (string)
-</dd>
-</dl><a NAME="HelpWebPage.userAgentForUrl" ID="HelpWebPage.userAgentForUrl"></a>
-<h4>HelpWebPage.userAgentForUrl</h4>
-<b>userAgentForUrl</b>(<i>url</i>)
-<p>
-        Public method to determine the user agent for the given URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to determine user agent for (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-user agent string (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="JavaScriptEricObject" ID="JavaScriptEricObject"></a>
-<h2>JavaScriptEricObject</h2>
-<p>
-    Class implementing an external javascript object to search via the
-    startpage.
-</p>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>translations</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#JavaScriptEricObject.__init__">JavaScriptEricObject</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#JavaScriptEricObject.providerString">providerString</a></td>
-<td>Public method to get a string for the search provider.</td>
-</tr><tr>
-<td><a href="#JavaScriptEricObject.searchUrl">searchUrl</a></td>
-<td>Public method to get the search URL for the given search term.</td>
-</tr><tr>
-<td><a href="#JavaScriptEricObject.translate">translate</a></td>
-<td>Public method to translate the given string.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="JavaScriptEricObject.__init__" ID="JavaScriptEricObject.__init__"></a>
-<h4>JavaScriptEricObject (Constructor)</h4>
-<b>JavaScriptEricObject</b>(<i>mw, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>mw</i></dt>
-<dd>
-reference to the main window 8HelpWindow)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="JavaScriptEricObject.providerString" ID="JavaScriptEricObject.providerString"></a>
-<h4>JavaScriptEricObject.providerString</h4>
-<b>providerString</b>(<i></i>)
-<p>
-        Public method to get a string for the search provider.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-string for the search provider (string)
-</dd>
-</dl><a NAME="JavaScriptEricObject.searchUrl" ID="JavaScriptEricObject.searchUrl"></a>
-<h4>JavaScriptEricObject.searchUrl</h4>
-<b>searchUrl</b>(<i>searchStr</i>)
-<p>
-        Public method to get the search URL for the given search term.
-</p><dl>
-<dt><i>searchStr</i></dt>
-<dd>
-search term (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-search URL (string)
-</dd>
-</dl><a NAME="JavaScriptEricObject.translate" ID="JavaScriptEricObject.translate"></a>
-<h4>JavaScriptEricObject.translate</h4>
-<b>translate</b>(<i>trans</i>)
-<p>
-        Public method to translate the given string.
-</p><dl>
-<dt><i>trans</i></dt>
-<dd>
-string to be translated (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-translation (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="JavaScriptExternalObject" ID="JavaScriptExternalObject"></a>
-<h2>JavaScriptExternalObject</h2>
-<p>
-    Class implementing an external javascript object to add search providers.
-</p>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#JavaScriptExternalObject.__init__">JavaScriptExternalObject</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#JavaScriptExternalObject.AddSearchProvider">AddSearchProvider</a></td>
-<td>Public slot to add a search provider.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="JavaScriptExternalObject.__init__" ID="JavaScriptExternalObject.__init__"></a>
-<h4>JavaScriptExternalObject (Constructor)</h4>
-<b>JavaScriptExternalObject</b>(<i>mw, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>mw</i></dt>
-<dd>
-reference to the main window 8HelpWindow)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="JavaScriptExternalObject.AddSearchProvider" ID="JavaScriptExternalObject.AddSearchProvider"></a>
-<h4>JavaScriptExternalObject.AddSearchProvider</h4>
-<b>AddSearchProvider</b>(<i>url</i>)
-<p>
-        Public slot to add a search provider.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-url of the XML file defining the search provider (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="LinkedResource" ID="LinkedResource"></a>
-<h2>LinkedResource</h2>
-<p>
-    Class defining a data structure for linked resources.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#LinkedResource.__init__">LinkedResource</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="LinkedResource.__init__" ID="LinkedResource.__init__"></a>
-<h4>LinkedResource (Constructor)</h4>
-<b>LinkedResource</b>(<i></i>)
-<p>
-        Constructor
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="contentSniff" ID="contentSniff"></a>
-<h2>contentSniff</h2>
-<b>contentSniff</b>(<i>data</i>)
-<p>
-    Module function to do some content sniffing to check, if the data is HTML.
-</p><dl>
-<dt><i>data</i></dt>
-<dd>
-data block to sniff at (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating HTML content (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpClearPrivateDataDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpClearPrivateDataDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpClearPrivateDataDialog</h1>
-<p>
-Module implementing a dialog to select which private data to clear.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpClearPrivateDataDialog">HelpClearPrivateDataDialog</a></td>
-<td>Class implementing a dialog to select which private data to clear.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HelpClearPrivateDataDialog" ID="HelpClearPrivateDataDialog"></a>
-<h2>HelpClearPrivateDataDialog</h2>
-<p>
-    Class implementing a dialog to select which private data to clear.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_HelpClearPrivateDataDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpClearPrivateDataDialog.__init__">HelpClearPrivateDataDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpClearPrivateDataDialog.getData">getData</a></td>
-<td>Public method to get the data from the dialog.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpClearPrivateDataDialog.__init__" ID="HelpClearPrivateDataDialog.__init__"></a>
-<h4>HelpClearPrivateDataDialog (Constructor)</h4>
-<b>HelpClearPrivateDataDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="HelpClearPrivateDataDialog.getData" ID="HelpClearPrivateDataDialog.getData"></a>
-<h4>HelpClearPrivateDataDialog.getData</h4>
-<b>getData</b>(<i></i>)
-<p>
-        Public method to get the data from the dialog.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-tuple with flags indicating which data to clear
-            (browsing history, search history, favicons, disk cache, cookies,
-            passwords, web databases, downloads, flash, zoom values) and the
-            selected history period in milliseconds (tuple of booleans and
-            integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpDocsInstaller.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpDocsInstaller</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpDocsInstaller</h1>
-<p>
-Module implementing a thread class populating and updating the QtHelp
-documentation database.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpDocsInstaller">HelpDocsInstaller</a></td>
-<td>Class implementing the worker thread populating and updating the QtHelp documentation database.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HelpDocsInstaller" ID="HelpDocsInstaller"></a>
-<h2>HelpDocsInstaller</h2>
-<p>
-    Class implementing the worker thread populating and updating the QtHelp
-    documentation database.
-</p><h3>Signals</h3>
-<dl>
-<dt>docsInstalled(bool)</dt>
-<dd>
-emitted after the installation has finished
-</dd><dt>errorMessage(str)</dt>
-<dd>
-emitted, if an error occurred during
-        the installation of the documentation
-</dd>
-</dl>
-<h3>Derived from</h3>
-QThread
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpDocsInstaller.__init__">HelpDocsInstaller</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpDocsInstaller.__installEric6Doc">__installEric6Doc</a></td>
-<td>Private method to install/update the eric6 help documentation.</td>
-</tr><tr>
-<td><a href="#HelpDocsInstaller.__installQtDoc">__installQtDoc</a></td>
-<td>Private method to install/update a Qt help document.</td>
-</tr><tr>
-<td><a href="#HelpDocsInstaller.installDocs">installDocs</a></td>
-<td>Public method to start the installation procedure.</td>
-</tr><tr>
-<td><a href="#HelpDocsInstaller.run">run</a></td>
-<td>Public method executed by the thread.</td>
-</tr><tr>
-<td><a href="#HelpDocsInstaller.stop">stop</a></td>
-<td>Public slot to stop the installation procedure.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpDocsInstaller.__init__" ID="HelpDocsInstaller.__init__"></a>
-<h4>HelpDocsInstaller (Constructor)</h4>
-<b>HelpDocsInstaller</b>(<i>collection</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>collection</i></dt>
-<dd>
-full pathname of the collection file (string)
-</dd>
-</dl><a NAME="HelpDocsInstaller.__installEric6Doc" ID="HelpDocsInstaller.__installEric6Doc"></a>
-<h4>HelpDocsInstaller.__installEric6Doc</h4>
-<b>__installEric6Doc</b>(<i>engine</i>)
-<p>
-        Private method to install/update the eric6 help documentation.
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the help engine (QHelpEngineCore)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="HelpDocsInstaller.__installQtDoc" ID="HelpDocsInstaller.__installQtDoc"></a>
-<h4>HelpDocsInstaller.__installQtDoc</h4>
-<b>__installQtDoc</b>(<i>name, version, engine</i>)
-<p>
-        Private method to install/update a Qt help document.
-</p><dl>
-<dt><i>name</i></dt>
-<dd>
-name of the Qt help document (string)
-</dd><dt><i>version</i></dt>
-<dd>
-Qt version of the help documens (integer)
-</dd><dt><i>engine</i></dt>
-<dd>
-reference to the help engine (QHelpEngineCore)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="HelpDocsInstaller.installDocs" ID="HelpDocsInstaller.installDocs"></a>
-<h4>HelpDocsInstaller.installDocs</h4>
-<b>installDocs</b>(<i></i>)
-<p>
-        Public method to start the installation procedure.
-</p><a NAME="HelpDocsInstaller.run" ID="HelpDocsInstaller.run"></a>
-<h4>HelpDocsInstaller.run</h4>
-<b>run</b>(<i></i>)
-<p>
-        Public method executed by the thread.
-</p><a NAME="HelpDocsInstaller.stop" ID="HelpDocsInstaller.stop"></a>
-<h4>HelpDocsInstaller.stop</h4>
-<b>stop</b>(<i></i>)
-<p>
-        Public slot to stop the installation procedure.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpIndexWidget.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpIndexWidget</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpIndexWidget</h1>
-<p>
-Module implementing a window for showing the QtHelp index.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpIndexWidget">HelpIndexWidget</a></td>
-<td>Class implementing a window for showing the QtHelp index.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HelpIndexWidget" ID="HelpIndexWidget"></a>
-<h2>HelpIndexWidget</h2>
-<p>
-    Class implementing a window for showing the QtHelp index.
-</p><h3>Signals</h3>
-<dl>
-<dt>escapePressed()</dt>
-<dd>
-emitted when the ESC key was pressed
-</dd><dt>linkActivated(QUrl)</dt>
-<dd>
-emitted when an index entry is activated
-</dd><dt>linksActivated(links, keyword)</dt>
-<dd>
-emitted when an index entry
-        referencing multiple targets is activated
-</dd>
-</dl>
-<h3>Derived from</h3>
-QWidget
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpIndexWidget.__init__">HelpIndexWidget</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpIndexWidget.__disableSearchEdit">__disableSearchEdit</a></td>
-<td>Private slot to enable the search edit.</td>
-</tr><tr>
-<td><a href="#HelpIndexWidget.__enableSearchEdit">__enableSearchEdit</a></td>
-<td>Private slot to enable the search edit.</td>
-</tr><tr>
-<td><a href="#HelpIndexWidget.__filterIndices">__filterIndices</a></td>
-<td>Private slot to filter the indices according to the given filter.</td>
-</tr><tr>
-<td><a href="#HelpIndexWidget.__linkActivated">__linkActivated</a></td>
-<td>Private slot to handle the activation of a keyword entry.</td>
-</tr><tr>
-<td><a href="#HelpIndexWidget.__linksActivated">__linksActivated</a></td>
-<td>Private slot to handle the activation of an entry with multiple links.</td>
-</tr><tr>
-<td><a href="#HelpIndexWidget.__selectLink">__selectLink</a></td>
-<td>Private method to give the user a chance to select among the returned links.</td>
-</tr><tr>
-<td><a href="#HelpIndexWidget.__showContextMenu">__showContextMenu</a></td>
-<td>Private slot showing the context menu.</td>
-</tr><tr>
-<td><a href="#HelpIndexWidget.eventFilter">eventFilter</a></td>
-<td>Public method called to filter the event queue.</td>
-</tr><tr>
-<td><a href="#HelpIndexWidget.focusInEvent">focusInEvent</a></td>
-<td>Protected method handling focus in events.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpIndexWidget.__init__" ID="HelpIndexWidget.__init__"></a>
-<h4>HelpIndexWidget (Constructor)</h4>
-<b>HelpIndexWidget</b>(<i>engine, mainWindow, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the help engine (QHelpEngine)
-</dd><dt><i>mainWindow</i></dt>
-<dd>
-reference to the main window object (QMainWindow)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="HelpIndexWidget.__disableSearchEdit" ID="HelpIndexWidget.__disableSearchEdit"></a>
-<h4>HelpIndexWidget.__disableSearchEdit</h4>
-<b>__disableSearchEdit</b>(<i></i>)
-<p>
-        Private slot to enable the search edit.
-</p><a NAME="HelpIndexWidget.__enableSearchEdit" ID="HelpIndexWidget.__enableSearchEdit"></a>
-<h4>HelpIndexWidget.__enableSearchEdit</h4>
-<b>__enableSearchEdit</b>(<i></i>)
-<p>
-        Private slot to enable the search edit.
-</p><a NAME="HelpIndexWidget.__filterIndices" ID="HelpIndexWidget.__filterIndices"></a>
-<h4>HelpIndexWidget.__filterIndices</h4>
-<b>__filterIndices</b>(<i>filterStr</i>)
-<p>
-        Private slot to filter the indices according to the given filter.
-</p><dl>
-<dt><i>filterStr</i></dt>
-<dd>
-filter to be used (string)
-</dd>
-</dl><a NAME="HelpIndexWidget.__linkActivated" ID="HelpIndexWidget.__linkActivated"></a>
-<h4>HelpIndexWidget.__linkActivated</h4>
-<b>__linkActivated</b>(<i>url, keyword, modifiers=None</i>)
-<p>
-        Private slot to handle the activation of a keyword entry.
-</p><dl>
-<dt><i>url</i> (QUrl)</dt>
-<dd>
-URL of the selected entry
-</dd><dt><i>keyword</i> (str)</dt>
-<dd>
-keyword for the URL
-</dd><dt><i>modifiers=</i> (Qt.KeyboardModifiers or None)</dt>
-<dd>
-keyboard modifiers
-</dd>
-</dl><a NAME="HelpIndexWidget.__linksActivated" ID="HelpIndexWidget.__linksActivated"></a>
-<h4>HelpIndexWidget.__linksActivated</h4>
-<b>__linksActivated</b>(<i>links, keyword</i>)
-<p>
-        Private slot to handle the activation of an entry with multiple links.
-</p><dl>
-<dt><i>links</i> (dict of key:str and value:QUrl)</dt>
-<dd>
-dictionary containing the links
-</dd><dt><i>keyword</i> (str)</dt>
-<dd>
-keyword for the entry
-</dd>
-</dl><a NAME="HelpIndexWidget.__selectLink" ID="HelpIndexWidget.__selectLink"></a>
-<h4>HelpIndexWidget.__selectLink</h4>
-<b>__selectLink</b>(<i>links, keyword</i>)
-<p>
-        Private method to give the user a chance to select among the
-        returned links.
-</p><dl>
-<dt><i>links</i> (dictionary of str (key) and QUrl (value))</dt>
-<dd>
-dictionary of document title and URL to select from
-</dd><dt><i>keyword</i> (str)</dt>
-<dd>
-keyword for the link set
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-selected link
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-QUrl
-</dd>
-</dl><a NAME="HelpIndexWidget.__showContextMenu" ID="HelpIndexWidget.__showContextMenu"></a>
-<h4>HelpIndexWidget.__showContextMenu</h4>
-<b>__showContextMenu</b>(<i>pos</i>)
-<p>
-        Private slot showing the context menu.
-</p><dl>
-<dt><i>pos</i></dt>
-<dd>
-position to show the menu at (QPoint)
-</dd>
-</dl><a NAME="HelpIndexWidget.eventFilter" ID="HelpIndexWidget.eventFilter"></a>
-<h4>HelpIndexWidget.eventFilter</h4>
-<b>eventFilter</b>(<i>watched, event</i>)
-<p>
-        Public method called to filter the event queue.
-</p><dl>
-<dt><i>watched</i></dt>
-<dd>
-the QObject being watched (QObject)
-</dd><dt><i>event</i></dt>
-<dd>
-the event that occurred (QEvent)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating whether the event was handled (boolean)
-</dd>
-</dl><a NAME="HelpIndexWidget.focusInEvent" ID="HelpIndexWidget.focusInEvent"></a>
-<h4>HelpIndexWidget.focusInEvent</h4>
-<b>focusInEvent</b>(<i>evt</i>)
-<p>
-        Protected method handling focus in events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the focus event object (QFocusEvent)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpInspector.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpInspector</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpInspector</h1>
-<p>
-Module implementing a QWebInspector wrapper to save and restore the geometry.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpInspector">HelpInspector</a></td>
-<td>Class implementing a QWebInspector wrapper to save and restore the geometry.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HelpInspector" ID="HelpInspector"></a>
-<h2>HelpInspector</h2>
-<p>
-    Class implementing a QWebInspector wrapper to save and restore the
-    geometry.
-</p>
-<h3>Derived from</h3>
-QWebInspector
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpInspector.__init__">HelpInspector</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpInspector.__reloadGeometry">__reloadGeometry</a></td>
-<td>Private method to restore the geometry.</td>
-</tr><tr>
-<td><a href="#HelpInspector.closeEvent">closeEvent</a></td>
-<td>Protected method to save the geometry when closed.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpInspector.__init__" ID="HelpInspector.__init__"></a>
-<h4>HelpInspector (Constructor)</h4>
-<b>HelpInspector</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i> (QWidget)</dt>
-<dd>
-reference to the parent widget
-</dd>
-</dl><a NAME="HelpInspector.__reloadGeometry" ID="HelpInspector.__reloadGeometry"></a>
-<h4>HelpInspector.__reloadGeometry</h4>
-<b>__reloadGeometry</b>(<i></i>)
-<p>
-        Private method to restore the geometry.
-</p><a NAME="HelpInspector.closeEvent" ID="HelpInspector.closeEvent"></a>
-<h4>HelpInspector.closeEvent</h4>
-<b>closeEvent</b>(<i>evt</i>)
-<p>
-        Protected method to save the geometry when closed.
-</p><dl>
-<dt><i>evt</i> (QCloseEvent)</dt>
-<dd>
-event object
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpLanguagesDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,192 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpLanguagesDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpLanguagesDialog</h1>
-<p>
-Module implementing a dialog to configure the preferred languages.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpLanguagesDialog">HelpLanguagesDialog</a></td>
-<td>Class implementing a dialog to configure the preferred languages.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HelpLanguagesDialog" ID="HelpLanguagesDialog"></a>
-<h2>HelpLanguagesDialog</h2>
-<p>
-    Class implementing a dialog to configure the preferred languages.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_HelpLanguagesDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpLanguagesDialog.defaultAcceptLanguages">defaultAcceptLanguages</a></td>
-<td>Class method to get the list of default accept languages.</td>
-</tr><tr>
-<td><a href="#HelpLanguagesDialog.expand">expand</a></td>
-<td>Class method to expand a language enum to a readable languages list.</td>
-</tr><tr>
-<td><a href="#HelpLanguagesDialog.httpString">httpString</a></td>
-<td>Class method to convert a list of acceptable languages into a byte array.</td>
-</tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpLanguagesDialog.__init__">HelpLanguagesDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpLanguagesDialog.__currentChanged">__currentChanged</a></td>
-<td>Private slot to handle a change of the current selection.</td>
-</tr><tr>
-<td><a href="#HelpLanguagesDialog.accept">accept</a></td>
-<td>Public method to accept the data entered.</td>
-</tr><tr>
-<td><a href="#HelpLanguagesDialog.on_addButton_clicked">on_addButton_clicked</a></td>
-<td>Private slot to add a language to the list of acceptable languages.</td>
-</tr><tr>
-<td><a href="#HelpLanguagesDialog.on_downButton_clicked">on_downButton_clicked</a></td>
-<td>Private slot to move a language down.</td>
-</tr><tr>
-<td><a href="#HelpLanguagesDialog.on_removeButton_clicked">on_removeButton_clicked</a></td>
-<td>Private slot to remove a language from the list of acceptable languages.</td>
-</tr><tr>
-<td><a href="#HelpLanguagesDialog.on_upButton_clicked">on_upButton_clicked</a></td>
-<td>Private slot to move a language up.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpLanguagesDialog.defaultAcceptLanguages" ID="HelpLanguagesDialog.defaultAcceptLanguages"></a>
-<h4>HelpLanguagesDialog.defaultAcceptLanguages (class method)</h4>
-<b>defaultAcceptLanguages</b>(<i></i>)
-<p>
-        Class method to get the list of default accept languages.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of acceptable languages (list of strings)
-</dd>
-</dl><a NAME="HelpLanguagesDialog.expand" ID="HelpLanguagesDialog.expand"></a>
-<h4>HelpLanguagesDialog.expand (class method)</h4>
-<b>expand</b>(<i>language</i>)
-<p>
-        Class method to expand a language enum to a readable languages
-        list.
-</p><dl>
-<dt><i>language</i></dt>
-<dd>
-language number (QLocale.Language)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-list of expanded language names (list of strings)
-</dd>
-</dl><a NAME="HelpLanguagesDialog.httpString" ID="HelpLanguagesDialog.httpString"></a>
-<h4>HelpLanguagesDialog.httpString (class method)</h4>
-<b>httpString</b>(<i>languages</i>)
-<p>
-        Class method to convert a list of acceptable languages into a
-        byte array.
-</p><p>
-        The byte array can be sent along with the Accept-Language http header
-        (see RFC 2616).
-</p><dl>
-<dt><i>languages</i></dt>
-<dd>
-list of acceptable languages (list of strings)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-converted list (QByteArray)
-</dd>
-</dl><a NAME="HelpLanguagesDialog.__init__" ID="HelpLanguagesDialog.__init__"></a>
-<h4>HelpLanguagesDialog (Constructor)</h4>
-<b>HelpLanguagesDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="HelpLanguagesDialog.__currentChanged" ID="HelpLanguagesDialog.__currentChanged"></a>
-<h4>HelpLanguagesDialog.__currentChanged</h4>
-<b>__currentChanged</b>(<i>current, previous</i>)
-<p>
-        Private slot to handle a change of the current selection.
-</p><dl>
-<dt><i>current</i></dt>
-<dd>
-index of the currently selected item (QModelIndex)
-</dd><dt><i>previous</i></dt>
-<dd>
-index of the previously selected item (QModelIndex)
-</dd>
-</dl><a NAME="HelpLanguagesDialog.accept" ID="HelpLanguagesDialog.accept"></a>
-<h4>HelpLanguagesDialog.accept</h4>
-<b>accept</b>(<i></i>)
-<p>
-        Public method to accept the data entered.
-</p><a NAME="HelpLanguagesDialog.on_addButton_clicked" ID="HelpLanguagesDialog.on_addButton_clicked"></a>
-<h4>HelpLanguagesDialog.on_addButton_clicked</h4>
-<b>on_addButton_clicked</b>(<i></i>)
-<p>
-        Private slot to add a language to the list of acceptable languages.
-</p><a NAME="HelpLanguagesDialog.on_downButton_clicked" ID="HelpLanguagesDialog.on_downButton_clicked"></a>
-<h4>HelpLanguagesDialog.on_downButton_clicked</h4>
-<b>on_downButton_clicked</b>(<i></i>)
-<p>
-        Private slot to move a language down.
-</p><a NAME="HelpLanguagesDialog.on_removeButton_clicked" ID="HelpLanguagesDialog.on_removeButton_clicked"></a>
-<h4>HelpLanguagesDialog.on_removeButton_clicked</h4>
-<b>on_removeButton_clicked</b>(<i></i>)
-<p>
-        Private slot to remove a language from the list of acceptable
-        languages.
-</p><a NAME="HelpLanguagesDialog.on_upButton_clicked" ID="HelpLanguagesDialog.on_upButton_clicked"></a>
-<h4>HelpLanguagesDialog.on_upButton_clicked</h4>
-<b>on_upButton_clicked</b>(<i></i>)
-<p>
-        Private slot to move a language up.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpSearchWidget.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpSearchWidget</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpSearchWidget</h1>
-<p>
-Module implementing a window for showing the QtHelp index.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpSearchWidget">HelpSearchWidget</a></td>
-<td>Class implementing a window for showing the QtHelp index.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HelpSearchWidget" ID="HelpSearchWidget"></a>
-<h2>HelpSearchWidget</h2>
-<p>
-    Class implementing a window for showing the QtHelp index.
-</p><h3>Signals</h3>
-<dl>
-<dt>escapePressed()</dt>
-<dd>
-emitted when the ESC key was pressed
-</dd><dt>linkActivated(QUrl)</dt>
-<dd>
-emitted when a search result entry is activated
-</dd>
-</dl>
-<h3>Derived from</h3>
-QWidget
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpSearchWidget.__init__">HelpSearchWidget</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpSearchWidget.__linkActivated">__linkActivated</a></td>
-<td>Private slot handling the activation of an entry.</td>
-</tr><tr>
-<td><a href="#HelpSearchWidget.__search">__search</a></td>
-<td>Private slot to perform a search of the database.</td>
-</tr><tr>
-<td><a href="#HelpSearchWidget.__searchingFinished">__searchingFinished</a></td>
-<td>Private slot to handle the end of the search.</td>
-</tr><tr>
-<td><a href="#HelpSearchWidget.__searchingStarted">__searchingStarted</a></td>
-<td>Private slot to handle the start of a search.</td>
-</tr><tr>
-<td><a href="#HelpSearchWidget.contextMenuEvent">contextMenuEvent</a></td>
-<td>Protected method handling context menu events.</td>
-</tr><tr>
-<td><a href="#HelpSearchWidget.keyPressEvent">keyPressEvent</a></td>
-<td>Protected method handling key press events.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpSearchWidget.__init__" ID="HelpSearchWidget.__init__"></a>
-<h4>HelpSearchWidget (Constructor)</h4>
-<b>HelpSearchWidget</b>(<i>engine, mainWindow, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the help search engine (QHelpSearchEngine)
-</dd><dt><i>mainWindow</i></dt>
-<dd>
-reference to the main window object (QMainWindow)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="HelpSearchWidget.__linkActivated" ID="HelpSearchWidget.__linkActivated"></a>
-<h4>HelpSearchWidget.__linkActivated</h4>
-<b>__linkActivated</b>(<i>url</i>)
-<p>
-        Private slot handling the activation of an entry.
-</p><dl>
-<dt><i>url</i> (QUrl)</dt>
-<dd>
-URL of the activated entry
-</dd>
-</dl><a NAME="HelpSearchWidget.__search" ID="HelpSearchWidget.__search"></a>
-<h4>HelpSearchWidget.__search</h4>
-<b>__search</b>(<i></i>)
-<p>
-        Private slot to perform a search of the database.
-</p><a NAME="HelpSearchWidget.__searchingFinished" ID="HelpSearchWidget.__searchingFinished"></a>
-<h4>HelpSearchWidget.__searchingFinished</h4>
-<b>__searchingFinished</b>(<i>hits</i>)
-<p>
-        Private slot to handle the end of the search.
-</p><dl>
-<dt><i>hits</i></dt>
-<dd>
-number of hits (integer) (unused)
-</dd>
-</dl><a NAME="HelpSearchWidget.__searchingStarted" ID="HelpSearchWidget.__searchingStarted"></a>
-<h4>HelpSearchWidget.__searchingStarted</h4>
-<b>__searchingStarted</b>(<i></i>)
-<p>
-        Private slot to handle the start of a search.
-</p><a NAME="HelpSearchWidget.contextMenuEvent" ID="HelpSearchWidget.contextMenuEvent"></a>
-<h4>HelpSearchWidget.contextMenuEvent</h4>
-<b>contextMenuEvent</b>(<i>evt</i>)
-<p>
-        Protected method handling context menu events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the context menu event (QContextMenuEvent)
-</dd>
-</dl><a NAME="HelpSearchWidget.keyPressEvent" ID="HelpSearchWidget.keyPressEvent"></a>
-<h4>HelpSearchWidget.keyPressEvent</h4>
-<b>keyPressEvent</b>(<i>evt</i>)
-<p>
-        Protected method handling key press events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the key press event (QKeyEvent)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpSingleApplication.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpSingleApplication</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpSingleApplication</h1>
-<p>
-Module implementing the single application server and client for the web
-browser.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>SAFile</td></tr><tr><td>SALoadUrl</td></tr><tr><td>SANewTab</td></tr><tr><td>SASearch</td></tr><tr><td>SAShutdown</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpSingleApplicationClient">HelpSingleApplicationClient</a></td>
-<td>Class implementing the single application client of the help viewer.</td>
-</tr><tr>
-<td><a href="#HelpSingleApplicationServer">HelpSingleApplicationServer</a></td>
-<td>Class implementing the single application server embedded within the Help viewer.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HelpSingleApplicationClient" ID="HelpSingleApplicationClient"></a>
-<h2>HelpSingleApplicationClient</h2>
-<p>
-    Class implementing the single application client of the help viewer.
-</p>
-<h3>Derived from</h3>
-SingleApplicationClient
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpSingleApplicationClient.__init__">HelpSingleApplicationClient</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpSingleApplicationClient.__loadUrl">__loadUrl</a></td>
-<td>Private method to send an URL to be loaded.</td>
-</tr><tr>
-<td><a href="#HelpSingleApplicationClient.__newTab">__newTab</a></td>
-<td>Private method to send an URL to be loaded in a new tab.</td>
-</tr><tr>
-<td><a href="#HelpSingleApplicationClient.__search">__search</a></td>
-<td>Private method to send a word to search for.</td>
-</tr><tr>
-<td><a href="#HelpSingleApplicationClient.__shutdown">__shutdown</a></td>
-<td>Private method to signal a shutdown request to the browser.</td>
-</tr><tr>
-<td><a href="#HelpSingleApplicationClient.processArgs">processArgs</a></td>
-<td>Public method to process the command line args passed to the UI.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpSingleApplicationClient.__init__" ID="HelpSingleApplicationClient.__init__"></a>
-<h4>HelpSingleApplicationClient (Constructor)</h4>
-<b>HelpSingleApplicationClient</b>(<i>name=""</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>name</i> (str)</dt>
-<dd>
-name to be used by the single application server
-</dd>
-</dl><a NAME="HelpSingleApplicationClient.__loadUrl" ID="HelpSingleApplicationClient.__loadUrl"></a>
-<h4>HelpSingleApplicationClient.__loadUrl</h4>
-<b>__loadUrl</b>(<i>url</i>)
-<p>
-        Private method to send an URL to be loaded.
-</p><dl>
-<dt><i>url</i> (str)</dt>
-<dd>
-URL to be loaded
-</dd>
-</dl><a NAME="HelpSingleApplicationClient.__newTab" ID="HelpSingleApplicationClient.__newTab"></a>
-<h4>HelpSingleApplicationClient.__newTab</h4>
-<b>__newTab</b>(<i>url</i>)
-<p>
-        Private method to send an URL to be loaded in a new tab.
-</p><dl>
-<dt><i>url</i> (str)</dt>
-<dd>
-URL to be loaded
-</dd>
-</dl><a NAME="HelpSingleApplicationClient.__search" ID="HelpSingleApplicationClient.__search"></a>
-<h4>HelpSingleApplicationClient.__search</h4>
-<b>__search</b>(<i>word</i>)
-<p>
-        Private method to send a word to search for.
-</p><dl>
-<dt><i>word</i> (str)</dt>
-<dd>
-to to be searched for
-</dd>
-</dl><a NAME="HelpSingleApplicationClient.__shutdown" ID="HelpSingleApplicationClient.__shutdown"></a>
-<h4>HelpSingleApplicationClient.__shutdown</h4>
-<b>__shutdown</b>(<i></i>)
-<p>
-        Private method to signal a shutdown request to the browser.
-</p><a NAME="HelpSingleApplicationClient.processArgs" ID="HelpSingleApplicationClient.processArgs"></a>
-<h4>HelpSingleApplicationClient.processArgs</h4>
-<b>processArgs</b>(<i>args, disconnect=True</i>)
-<p>
-        Public method to process the command line args passed to the UI.
-</p><dl>
-<dt><i>args</i> (list of str)</dt>
-<dd>
-list of command line arguments
-</dd><dt><i>disconnect</i> (bool)</dt>
-<dd>
-flag indicating to disconnect when done
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="HelpSingleApplicationServer" ID="HelpSingleApplicationServer"></a>
-<h2>HelpSingleApplicationServer</h2>
-<p>
-    Class implementing the single application server embedded within the
-    Help viewer.
-</p><h3>Signals</h3>
-<dl>
-<dt>loadUrl(str)</dt>
-<dd>
-emitted to load an URL
-</dd><dt>newTab(str)</dt>
-<dd>
-emitted to load an URL in a new tab
-</dd><dt>search(str)</dt>
-<dd>
-emitted to search for a given word
-</dd><dt>shutdown()</dt>
-<dd>
-emitted to shut down the browser
-</dd>
-</dl>
-<h3>Derived from</h3>
-SingleApplicationServer
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpSingleApplicationServer.__init__">HelpSingleApplicationServer</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpSingleApplicationServer.__saLoadUrl">__saLoadUrl</a></td>
-<td>Private method to load an URL in a new tab.</td>
-</tr><tr>
-<td><a href="#HelpSingleApplicationServer.__saNewTab">__saNewTab</a></td>
-<td>Private method to load an URL .</td>
-</tr><tr>
-<td><a href="#HelpSingleApplicationServer.__saSearch">__saSearch</a></td>
-<td>Private method to search for a given word.</td>
-</tr><tr>
-<td><a href="#HelpSingleApplicationServer.__saShutdown">__saShutdown</a></td>
-<td>Private method to shut down the web browser.</td>
-</tr><tr>
-<td><a href="#HelpSingleApplicationServer.handleCommand">handleCommand</a></td>
-<td>Public slot to handle the command sent by the client.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpSingleApplicationServer.__init__" ID="HelpSingleApplicationServer.__init__"></a>
-<h4>HelpSingleApplicationServer (Constructor)</h4>
-<b>HelpSingleApplicationServer</b>(<i>name=""</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>name</i> (str)</dt>
-<dd>
-name to be used by the single application server
-</dd>
-</dl><a NAME="HelpSingleApplicationServer.__saLoadUrl" ID="HelpSingleApplicationServer.__saLoadUrl"></a>
-<h4>HelpSingleApplicationServer.__saLoadUrl</h4>
-<b>__saLoadUrl</b>(<i>url</i>)
-<p>
-        Private method to load an URL in a new tab.
-</p><dl>
-<dt><i>url</i> (str)</dt>
-<dd>
-URL to be loaded
-</dd>
-</dl><a NAME="HelpSingleApplicationServer.__saNewTab" ID="HelpSingleApplicationServer.__saNewTab"></a>
-<h4>HelpSingleApplicationServer.__saNewTab</h4>
-<b>__saNewTab</b>(<i>url</i>)
-<p>
-        Private method to load an URL .
-</p><dl>
-<dt><i>url</i> (str)</dt>
-<dd>
-URL to be loaded
-</dd>
-</dl><a NAME="HelpSingleApplicationServer.__saSearch" ID="HelpSingleApplicationServer.__saSearch"></a>
-<h4>HelpSingleApplicationServer.__saSearch</h4>
-<b>__saSearch</b>(<i>word</i>)
-<p>
-        Private method to search for a given word.
-</p><dl>
-<dt><i>word</i> (str)</dt>
-<dd>
-word to be searched for
-</dd>
-</dl><a NAME="HelpSingleApplicationServer.__saShutdown" ID="HelpSingleApplicationServer.__saShutdown"></a>
-<h4>HelpSingleApplicationServer.__saShutdown</h4>
-<b>__saShutdown</b>(<i></i>)
-<p>
-        Private method to shut down the web browser.
-</p><a NAME="HelpSingleApplicationServer.handleCommand" ID="HelpSingleApplicationServer.handleCommand"></a>
-<h4>HelpSingleApplicationServer.handleCommand</h4>
-<b>handleCommand</b>(<i>command, arguments</i>)
-<p>
-        Public slot to handle the command sent by the client.
-</p><dl>
-<dt><i>command</i> (str)</dt>
-<dd>
-command sent by the client
-</dd><dt><i>arguments</i> (list of str)</dt>
-<dd>
-list of command arguments
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpSnap.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpSnap</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpSnap</h1>
-<p>
-Module implementing functions to generate page previews.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#__render">__render</a></td>
-<td>Private function to render a pixmap of given size for a web page.</td>
-</tr><tr>
-<td><a href="#renderTabPreview">renderTabPreview</a></td>
-<td>Public function to render a pixmap of a page.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="__render" ID="__render"></a>
-<h2>__render</h2>
-<b>__render</b>(<i>page, w, h</i>)
-<p>
-    Private function to render a pixmap of given size for a web page.
-</p><dl>
-<dt><i>page</i></dt>
-<dd>
-reference to the page to be rendered (QWebPage)
-</dd><dt><i>w</i></dt>
-<dd>
-width of the pixmap (integer)
-</dd><dt><i>h</i></dt>
-<dd>
-height of the pixmap (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-rendered pixmap (QPixmap)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="renderTabPreview" ID="renderTabPreview"></a>
-<h2>renderTabPreview</h2>
-<b>renderTabPreview</b>(<i>page, w, h</i>)
-<p>
-    Public function to render a pixmap of a page.
-</p><dl>
-<dt><i>page</i></dt>
-<dd>
-reference to the page to be previewed (QWebPage)
-</dd><dt><i>w</i></dt>
-<dd>
-width of the preview pixmap (integer)
-</dd><dt><i>h</i></dt>
-<dd>
-height of the preview pixmap (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-preview pixmap (QPixmap)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpTabBar.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpTabBar</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpTabBar</h1>
-<p>
-Module implementing a specialized tab bar for the web browser.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpTabBar">HelpTabBar</a></td>
-<td>Class implementing the tab bar of the web browser.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HelpTabBar" ID="HelpTabBar"></a>
-<h2>HelpTabBar</h2>
-<p>
-    Class implementing the tab bar of the web browser.
-</p>
-<h3>Derived from</h3>
-E5WheelTabBar
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpTabBar.__init__">HelpTabBar</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpTabBar.__hidePreview">__hidePreview</a></td>
-<td>Private method to hide the preview.</td>
-</tr><tr>
-<td><a href="#HelpTabBar.__showTabPreview">__showTabPreview</a></td>
-<td>Private slot to show the tab preview.</td>
-</tr><tr>
-<td><a href="#HelpTabBar.event">event</a></td>
-<td>Public method to handle event.</td>
-</tr><tr>
-<td><a href="#HelpTabBar.leaveEvent">leaveEvent</a></td>
-<td>Protected method to handle leave events.</td>
-</tr><tr>
-<td><a href="#HelpTabBar.mouseMoveEvent">mouseMoveEvent</a></td>
-<td>Protected method to handle mouse move events.</td>
-</tr><tr>
-<td><a href="#HelpTabBar.mousePressEvent">mousePressEvent</a></td>
-<td>Protected method to handle mouse press events.</td>
-</tr><tr>
-<td><a href="#HelpTabBar.tabRemoved">tabRemoved</a></td>
-<td>Public slot to handle the removal of a tab.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpTabBar.__init__" ID="HelpTabBar.__init__"></a>
-<h4>HelpTabBar (Constructor)</h4>
-<b>HelpTabBar</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (HelpTabWidget)
-</dd>
-</dl><a NAME="HelpTabBar.__hidePreview" ID="HelpTabBar.__hidePreview"></a>
-<h4>HelpTabBar.__hidePreview</h4>
-<b>__hidePreview</b>(<i></i>)
-<p>
-        Private method to hide the preview.
-</p><a NAME="HelpTabBar.__showTabPreview" ID="HelpTabBar.__showTabPreview"></a>
-<h4>HelpTabBar.__showTabPreview</h4>
-<b>__showTabPreview</b>(<i>index</i>)
-<p>
-        Private slot to show the tab preview.
-</p><dl>
-<dt><i>index</i> (int)</dt>
-<dd>
-index of tab to show a preview for
-</dd>
-</dl><a NAME="HelpTabBar.event" ID="HelpTabBar.event"></a>
-<h4>HelpTabBar.event</h4>
-<b>event</b>(<i>evt</i>)
-<p>
-        Public method to handle event.
-</p><p>
-        This event handler just handles the tooltip event and passes the
-        handling of all others to the superclass.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the event to be handled (QEvent)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating, if the event was handled (boolean)
-</dd>
-</dl><a NAME="HelpTabBar.leaveEvent" ID="HelpTabBar.leaveEvent"></a>
-<h4>HelpTabBar.leaveEvent</h4>
-<b>leaveEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle leave events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the leave event (QEvent)
-</dd>
-</dl><a NAME="HelpTabBar.mouseMoveEvent" ID="HelpTabBar.mouseMoveEvent"></a>
-<h4>HelpTabBar.mouseMoveEvent</h4>
-<b>mouseMoveEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle mouse move events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the mouse move event (QMouseEvent)
-</dd>
-</dl><a NAME="HelpTabBar.mousePressEvent" ID="HelpTabBar.mousePressEvent"></a>
-<h4>HelpTabBar.mousePressEvent</h4>
-<b>mousePressEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle mouse press events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the mouse press event (QMouseEvent)
-</dd>
-</dl><a NAME="HelpTabBar.tabRemoved" ID="HelpTabBar.tabRemoved"></a>
-<h4>HelpTabBar.tabRemoved</h4>
-<b>tabRemoved</b>(<i>index</i>)
-<p>
-        Public slot to handle the removal of a tab.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the removed tab (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpTabWidget.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,721 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpTabWidget</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpTabWidget</h1>
-<p>
-Module implementing the central widget showing the web pages.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpTabWidget">HelpTabWidget</a></td>
-<td>Class implementing the central widget showing the web pages.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HelpTabWidget" ID="HelpTabWidget"></a>
-<h2>HelpTabWidget</h2>
-<p>
-    Class implementing the central widget showing the web pages.
-</p><h3>Signals</h3>
-<dl>
-<dt>browserClosed(QWidget)</dt>
-<dd>
-emitted after a browser was closed
-</dd><dt>browserZoomValueChanged(int)</dt>
-<dd>
-emitted to signal a change of the
-        current browser's zoom level
-</dd><dt>showMessage(str)</dt>
-<dd>
-emitted to show a message in the main window
-        status bar
-</dd><dt>sourceChanged(HelpBrowser, QUrl)</dt>
-<dd>
-emitted after the URL of a browser
-        has changed
-</dd><dt>titleChanged(HelpBrowser, str)</dt>
-<dd>
-emitted after the title of a browser
-        has changed
-</dd>
-</dl>
-<h3>Derived from</h3>
-E5TabWidget
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpTabWidget.__init__">HelpTabWidget</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__aboutToShowClosedTabsMenu">__aboutToShowClosedTabsMenu</a></td>
-<td>Private slot to populate the closed tabs menu.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__closedTabAvailable">__closedTabAvailable</a></td>
-<td>Private slot to handle changes of the availability of closed tabs.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__currentChanged">__currentChanged</a></td>
-<td>Private slot to handle an index change.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__elide">__elide</a></td>
-<td>Private method to elide some text.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__guessUrlFromPath">__guessUrlFromPath</a></td>
-<td>Private method to guess an URL given a path string.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__iconChanged">__iconChanged</a></td>
-<td>Private slot to handle the icon change.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__initTabContextMenu">__initTabContextMenu</a></td>
-<td>Private method to create the tab context menu.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__lineEditReturnPressed">__lineEditReturnPressed</a></td>
-<td>Private slot to handle the entering of an URL.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__loadFinished">__loadFinished</a></td>
-<td>Private method to handle the loadFinished signal.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__loadStarted">__loadStarted</a></td>
-<td>Private method to handle the loadStarted signal.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__navigationMenuTriggered">__navigationMenuTriggered</a></td>
-<td>Private slot called to handle the navigation button menu selection.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__newBrowser">__newBrowser</a></td>
-<td>Private slot to open a new browser tab.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__pathSelected">__pathSelected</a></td>
-<td>Private slot called when a URL is selected from the completer.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__printPdfRequested">__printPdfRequested</a></td>
-<td>Private slot to handle a print to PDF request.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__printPreview">__printPreview</a></td>
-<td>Private slot to generate a print preview.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__printRequested">__printRequested</a></td>
-<td>Private slot to handle a print request.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__showContextMenu">__showContextMenu</a></td>
-<td>Private slot to show the tab context menu.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__showNavigationMenu">__showNavigationMenu</a></td>
-<td>Private slot to show the navigation button menu.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__sourceChanged">__sourceChanged</a></td>
-<td>Private slot to handle a change of a browsers source.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__tabContextMenuClone">__tabContextMenuClone</a></td>
-<td>Private method to clone the selected tab.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__tabContextMenuClose">__tabContextMenuClose</a></td>
-<td>Private method to close the selected tab.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__tabContextMenuCloseOthers">__tabContextMenuCloseOthers</a></td>
-<td>Private slot to close all other tabs.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__tabContextMenuMoveLeft">__tabContextMenuMoveLeft</a></td>
-<td>Private method to move a tab one position to the left.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__tabContextMenuMoveRight">__tabContextMenuMoveRight</a></td>
-<td>Private method to move a tab one position to the right.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__tabContextMenuPrint">__tabContextMenuPrint</a></td>
-<td>Private method to print the selected tab.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__tabContextMenuPrintPdf">__tabContextMenuPrintPdf</a></td>
-<td>Private method to print the selected tab as PDF.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__tabContextMenuPrintPreview">__tabContextMenuPrintPreview</a></td>
-<td>Private method to show a print preview of the selected tab.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__titleChanged">__titleChanged</a></td>
-<td>Private slot to handle a change of a browsers title.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.__windowCloseRequested">__windowCloseRequested</a></td>
-<td>Private slot to handle the windowCloseRequested signal of a browser.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.browserAt">browserAt</a></td>
-<td>Public method to get a reference to the browser with the given index.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.browsers">browsers</a></td>
-<td>Public method to get a list of references to all browsers.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.canRestoreClosedTab">canRestoreClosedTab</a></td>
-<td>Public method to check, if closed tabs can be restored.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.clearClosedTabsList">clearClosedTabsList</a></td>
-<td>Public slot to clear the list of closed tabs.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.closeAllBrowsers">closeAllBrowsers</a></td>
-<td>Public slot called to handle the close all action.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.closeBrowser">closeBrowser</a></td>
-<td>Public slot called to handle the close action.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.closeBrowserAt">closeBrowserAt</a></td>
-<td>Public slot to close a browser based on its index.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.closedTabsManager">closedTabsManager</a></td>
-<td>Public slot to get a reference to the closed tabs manager.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.currentBrowser">currentBrowser</a></td>
-<td>Public method to get a reference to the current browser.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.currentUrlBar">currentUrlBar</a></td>
-<td>Public method to get a reference to the current url bar.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.getSourceFileList">getSourceFileList</a></td>
-<td>Public method to get a list of all opened source files.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.newBrowser">newBrowser</a></td>
-<td>Public method to create a new web browser tab.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.newBrowserAfter">newBrowserAfter</a></td>
-<td>Public method to create a new web browser tab after a given one.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.preferencesChanged">preferencesChanged</a></td>
-<td>Public slot to handle a change of preferences.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.printBrowser">printBrowser</a></td>
-<td>Public slot called to print the displayed page.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.printBrowserPdf">printBrowserPdf</a></td>
-<td>Public slot called to print the displayed page to PDF.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.printPreviewBrowser">printPreviewBrowser</a></td>
-<td>Public slot called to show a print preview of the displayed file.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.reloadAllBrowsers">reloadAllBrowsers</a></td>
-<td>Public slot to reload all browsers.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.restoreAllClosedTabs">restoreAllClosedTabs</a></td>
-<td>Public slot to restore all closed tabs.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.restoreClosedTab">restoreClosedTab</a></td>
-<td>Public slot to restore the most recently closed tab.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.shallShutDown">shallShutDown</a></td>
-<td>Public method to check, if the application should be shut down.</td>
-</tr><tr>
-<td><a href="#HelpTabWidget.stackedUrlBar">stackedUrlBar</a></td>
-<td>Public method to get a reference to the stacked url bar.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpTabWidget.__init__" ID="HelpTabWidget.__init__"></a>
-<h4>HelpTabWidget (Constructor)</h4>
-<b>HelpTabWidget</b>(<i>parent</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="HelpTabWidget.__aboutToShowClosedTabsMenu" ID="HelpTabWidget.__aboutToShowClosedTabsMenu"></a>
-<h4>HelpTabWidget.__aboutToShowClosedTabsMenu</h4>
-<b>__aboutToShowClosedTabsMenu</b>(<i></i>)
-<p>
-        Private slot to populate the closed tabs menu.
-</p><a NAME="HelpTabWidget.__closedTabAvailable" ID="HelpTabWidget.__closedTabAvailable"></a>
-<h4>HelpTabWidget.__closedTabAvailable</h4>
-<b>__closedTabAvailable</b>(<i>avail</i>)
-<p>
-        Private slot to handle changes of the availability of closed tabs.
-</p><dl>
-<dt><i>avail</i></dt>
-<dd>
-flag indicating the availability of closed tabs (boolean)
-</dd>
-</dl><a NAME="HelpTabWidget.__currentChanged" ID="HelpTabWidget.__currentChanged"></a>
-<h4>HelpTabWidget.__currentChanged</h4>
-<b>__currentChanged</b>(<i>index</i>)
-<p>
-        Private slot to handle an index change.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-new index (integer)
-</dd>
-</dl><a NAME="HelpTabWidget.__elide" ID="HelpTabWidget.__elide"></a>
-<h4>HelpTabWidget.__elide</h4>
-<b>__elide</b>(<i>txt, mode=Qt.ElideRight, length=40</i>)
-<p>
-        Private method to elide some text.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-text to be elided (string)
-</dd><dt><i>mode=</i></dt>
-<dd>
-elide mode (Qt.TextElideMode)
-</dd><dt><i>length=</i></dt>
-<dd>
-amount of characters to be used (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-the elided text (string)
-</dd>
-</dl><a NAME="HelpTabWidget.__guessUrlFromPath" ID="HelpTabWidget.__guessUrlFromPath"></a>
-<h4>HelpTabWidget.__guessUrlFromPath</h4>
-<b>__guessUrlFromPath</b>(<i>path</i>)
-<p>
-        Private method to guess an URL given a path string.
-</p><dl>
-<dt><i>path</i></dt>
-<dd>
-path string to guess an URL for (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-guessed URL (QUrl)
-</dd>
-</dl><a NAME="HelpTabWidget.__iconChanged" ID="HelpTabWidget.__iconChanged"></a>
-<h4>HelpTabWidget.__iconChanged</h4>
-<b>__iconChanged</b>(<i>browser</i>)
-<p>
-        Private slot to handle the icon change.
-</p><dl>
-<dt><i>browser</i> (HelpBrowser)</dt>
-<dd>
-reference to the web browser
-</dd>
-</dl><a NAME="HelpTabWidget.__initTabContextMenu" ID="HelpTabWidget.__initTabContextMenu"></a>
-<h4>HelpTabWidget.__initTabContextMenu</h4>
-<b>__initTabContextMenu</b>(<i></i>)
-<p>
-        Private method to create the tab context menu.
-</p><a NAME="HelpTabWidget.__lineEditReturnPressed" ID="HelpTabWidget.__lineEditReturnPressed"></a>
-<h4>HelpTabWidget.__lineEditReturnPressed</h4>
-<b>__lineEditReturnPressed</b>(<i>edit</i>)
-<p>
-        Private slot to handle the entering of an URL.
-</p><dl>
-<dt><i>edit</i> (UrlBar)</dt>
-<dd>
-reference to the line edit
-</dd>
-</dl><a NAME="HelpTabWidget.__loadFinished" ID="HelpTabWidget.__loadFinished"></a>
-<h4>HelpTabWidget.__loadFinished</h4>
-<b>__loadFinished</b>(<i>ok</i>)
-<p>
-        Private method to handle the loadFinished signal.
-</p><dl>
-<dt><i>ok</i> (bool)</dt>
-<dd>
-flag indicating the result
-</dd>
-</dl><a NAME="HelpTabWidget.__loadStarted" ID="HelpTabWidget.__loadStarted"></a>
-<h4>HelpTabWidget.__loadStarted</h4>
-<b>__loadStarted</b>(<i>browser</i>)
-<p>
-        Private method to handle the loadStarted signal.
-</p><dl>
-<dt><i>browser</i> (HelpBrowser)</dt>
-<dd>
-reference to the web browser
-</dd>
-</dl><a NAME="HelpTabWidget.__navigationMenuTriggered" ID="HelpTabWidget.__navigationMenuTriggered"></a>
-<h4>HelpTabWidget.__navigationMenuTriggered</h4>
-<b>__navigationMenuTriggered</b>(<i>act</i>)
-<p>
-        Private slot called to handle the navigation button menu selection.
-</p><dl>
-<dt><i>act</i></dt>
-<dd>
-reference to the selected action (QAction)
-</dd>
-</dl><a NAME="HelpTabWidget.__newBrowser" ID="HelpTabWidget.__newBrowser"></a>
-<h4>HelpTabWidget.__newBrowser</h4>
-<b>__newBrowser</b>(<i></i>)
-<p>
-        Private slot to open a new browser tab.
-</p><a NAME="HelpTabWidget.__pathSelected" ID="HelpTabWidget.__pathSelected"></a>
-<h4>HelpTabWidget.__pathSelected</h4>
-<b>__pathSelected</b>(<i>path</i>)
-<p>
-        Private slot called when a URL is selected from the completer.
-</p><dl>
-<dt><i>path</i></dt>
-<dd>
-path to be shown (string)
-</dd>
-</dl><a NAME="HelpTabWidget.__printPdfRequested" ID="HelpTabWidget.__printPdfRequested"></a>
-<h4>HelpTabWidget.__printPdfRequested</h4>
-<b>__printPdfRequested</b>(<i>frame</i>)
-<p>
-        Private slot to handle a print to PDF request.
-</p><dl>
-<dt><i>frame</i></dt>
-<dd>
-reference to the frame to be printed (QWebFrame)
-</dd>
-</dl><a NAME="HelpTabWidget.__printPreview" ID="HelpTabWidget.__printPreview"></a>
-<h4>HelpTabWidget.__printPreview</h4>
-<b>__printPreview</b>(<i>printer</i>)
-<p>
-        Private slot to generate a print preview.
-</p><dl>
-<dt><i>printer</i></dt>
-<dd>
-reference to the printer object (QPrinter)
-</dd>
-</dl><a NAME="HelpTabWidget.__printRequested" ID="HelpTabWidget.__printRequested"></a>
-<h4>HelpTabWidget.__printRequested</h4>
-<b>__printRequested</b>(<i>frame</i>)
-<p>
-        Private slot to handle a print request.
-</p><dl>
-<dt><i>frame</i></dt>
-<dd>
-reference to the frame to be printed (QWebFrame)
-</dd>
-</dl><a NAME="HelpTabWidget.__showContextMenu" ID="HelpTabWidget.__showContextMenu"></a>
-<h4>HelpTabWidget.__showContextMenu</h4>
-<b>__showContextMenu</b>(<i>coord, index</i>)
-<p>
-        Private slot to show the tab context menu.
-</p><dl>
-<dt><i>coord</i></dt>
-<dd>
-the position of the mouse pointer (QPoint)
-</dd><dt><i>index</i></dt>
-<dd>
-index of the tab the menu is requested for (integer)
-</dd>
-</dl><a NAME="HelpTabWidget.__showNavigationMenu" ID="HelpTabWidget.__showNavigationMenu"></a>
-<h4>HelpTabWidget.__showNavigationMenu</h4>
-<b>__showNavigationMenu</b>(<i></i>)
-<p>
-        Private slot to show the navigation button menu.
-</p><a NAME="HelpTabWidget.__sourceChanged" ID="HelpTabWidget.__sourceChanged"></a>
-<h4>HelpTabWidget.__sourceChanged</h4>
-<b>__sourceChanged</b>(<i>url, browser</i>)
-<p>
-        Private slot to handle a change of a browsers source.
-</p><dl>
-<dt><i>url</i> (QUrl)</dt>
-<dd>
-URL of the new site
-</dd><dt><i>browser</i> (HelpBrowser)</dt>
-<dd>
-reference to the web browser
-</dd>
-</dl><a NAME="HelpTabWidget.__tabContextMenuClone" ID="HelpTabWidget.__tabContextMenuClone"></a>
-<h4>HelpTabWidget.__tabContextMenuClone</h4>
-<b>__tabContextMenuClone</b>(<i></i>)
-<p>
-        Private method to clone the selected tab.
-</p><a NAME="HelpTabWidget.__tabContextMenuClose" ID="HelpTabWidget.__tabContextMenuClose"></a>
-<h4>HelpTabWidget.__tabContextMenuClose</h4>
-<b>__tabContextMenuClose</b>(<i></i>)
-<p>
-        Private method to close the selected tab.
-</p><a NAME="HelpTabWidget.__tabContextMenuCloseOthers" ID="HelpTabWidget.__tabContextMenuCloseOthers"></a>
-<h4>HelpTabWidget.__tabContextMenuCloseOthers</h4>
-<b>__tabContextMenuCloseOthers</b>(<i></i>)
-<p>
-        Private slot to close all other tabs.
-</p><a NAME="HelpTabWidget.__tabContextMenuMoveLeft" ID="HelpTabWidget.__tabContextMenuMoveLeft"></a>
-<h4>HelpTabWidget.__tabContextMenuMoveLeft</h4>
-<b>__tabContextMenuMoveLeft</b>(<i></i>)
-<p>
-        Private method to move a tab one position to the left.
-</p><a NAME="HelpTabWidget.__tabContextMenuMoveRight" ID="HelpTabWidget.__tabContextMenuMoveRight"></a>
-<h4>HelpTabWidget.__tabContextMenuMoveRight</h4>
-<b>__tabContextMenuMoveRight</b>(<i></i>)
-<p>
-        Private method to move a tab one position to the right.
-</p><a NAME="HelpTabWidget.__tabContextMenuPrint" ID="HelpTabWidget.__tabContextMenuPrint"></a>
-<h4>HelpTabWidget.__tabContextMenuPrint</h4>
-<b>__tabContextMenuPrint</b>(<i></i>)
-<p>
-        Private method to print the selected tab.
-</p><a NAME="HelpTabWidget.__tabContextMenuPrintPdf" ID="HelpTabWidget.__tabContextMenuPrintPdf"></a>
-<h4>HelpTabWidget.__tabContextMenuPrintPdf</h4>
-<b>__tabContextMenuPrintPdf</b>(<i></i>)
-<p>
-        Private method to print the selected tab as PDF.
-</p><a NAME="HelpTabWidget.__tabContextMenuPrintPreview" ID="HelpTabWidget.__tabContextMenuPrintPreview"></a>
-<h4>HelpTabWidget.__tabContextMenuPrintPreview</h4>
-<b>__tabContextMenuPrintPreview</b>(<i></i>)
-<p>
-        Private method to show a print preview of the selected tab.
-</p><a NAME="HelpTabWidget.__titleChanged" ID="HelpTabWidget.__titleChanged"></a>
-<h4>HelpTabWidget.__titleChanged</h4>
-<b>__titleChanged</b>(<i>title, browser</i>)
-<p>
-        Private slot to handle a change of a browsers title.
-</p><dl>
-<dt><i>title</i> (str)</dt>
-<dd>
-new title
-</dd><dt><i>browser</i> (HelpBrowser)</dt>
-<dd>
-reference to the web browser
-</dd>
-</dl><a NAME="HelpTabWidget.__windowCloseRequested" ID="HelpTabWidget.__windowCloseRequested"></a>
-<h4>HelpTabWidget.__windowCloseRequested</h4>
-<b>__windowCloseRequested</b>(<i>page</i>)
-<p>
-        Private slot to handle the windowCloseRequested signal of a browser.
-</p><dl>
-<dt><i>page</i> (HelpWebPage)</dt>
-<dd>
-reference to the web page
-</dd>
-</dl><a NAME="HelpTabWidget.browserAt" ID="HelpTabWidget.browserAt"></a>
-<h4>HelpTabWidget.browserAt</h4>
-<b>browserAt</b>(<i>index</i>)
-<p>
-        Public method to get a reference to the browser with the given index.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the browser to get (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the indexed browser (HelpBrowser)
-</dd>
-</dl><a NAME="HelpTabWidget.browsers" ID="HelpTabWidget.browsers"></a>
-<h4>HelpTabWidget.browsers</h4>
-<b>browsers</b>(<i></i>)
-<p>
-        Public method to get a list of references to all browsers.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of references to browsers (list of HelpBrowser)
-</dd>
-</dl><a NAME="HelpTabWidget.canRestoreClosedTab" ID="HelpTabWidget.canRestoreClosedTab"></a>
-<h4>HelpTabWidget.canRestoreClosedTab</h4>
-<b>canRestoreClosedTab</b>(<i></i>)
-<p>
-        Public method to check, if closed tabs can be restored.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating that closed tabs can be restored (boolean)
-</dd>
-</dl><a NAME="HelpTabWidget.clearClosedTabsList" ID="HelpTabWidget.clearClosedTabsList"></a>
-<h4>HelpTabWidget.clearClosedTabsList</h4>
-<b>clearClosedTabsList</b>(<i></i>)
-<p>
-        Public slot to clear the list of closed tabs.
-</p><a NAME="HelpTabWidget.closeAllBrowsers" ID="HelpTabWidget.closeAllBrowsers"></a>
-<h4>HelpTabWidget.closeAllBrowsers</h4>
-<b>closeAllBrowsers</b>(<i></i>)
-<p>
-        Public slot called to handle the close all action.
-</p><a NAME="HelpTabWidget.closeBrowser" ID="HelpTabWidget.closeBrowser"></a>
-<h4>HelpTabWidget.closeBrowser</h4>
-<b>closeBrowser</b>(<i></i>)
-<p>
-        Public slot called to handle the close action.
-</p><a NAME="HelpTabWidget.closeBrowserAt" ID="HelpTabWidget.closeBrowserAt"></a>
-<h4>HelpTabWidget.closeBrowserAt</h4>
-<b>closeBrowserAt</b>(<i>index</i>)
-<p>
-        Public slot to close a browser based on its index.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of browser to close (integer)
-</dd>
-</dl><a NAME="HelpTabWidget.closedTabsManager" ID="HelpTabWidget.closedTabsManager"></a>
-<h4>HelpTabWidget.closedTabsManager</h4>
-<b>closedTabsManager</b>(<i></i>)
-<p>
-        Public slot to get a reference to the closed tabs manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the closed tabs manager (ClosedTabsManager)
-</dd>
-</dl><a NAME="HelpTabWidget.currentBrowser" ID="HelpTabWidget.currentBrowser"></a>
-<h4>HelpTabWidget.currentBrowser</h4>
-<b>currentBrowser</b>(<i></i>)
-<p>
-        Public method to get a reference to the current browser.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the current browser (HelpBrowser)
-</dd>
-</dl><a NAME="HelpTabWidget.currentUrlBar" ID="HelpTabWidget.currentUrlBar"></a>
-<h4>HelpTabWidget.currentUrlBar</h4>
-<b>currentUrlBar</b>(<i></i>)
-<p>
-        Public method to get a reference to the current url bar.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the current url bar (UrlBar)
-</dd>
-</dl><a NAME="HelpTabWidget.getSourceFileList" ID="HelpTabWidget.getSourceFileList"></a>
-<h4>HelpTabWidget.getSourceFileList</h4>
-<b>getSourceFileList</b>(<i></i>)
-<p>
-        Public method to get a list of all opened source files.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-dictionary with tab id as key and host/namespace as value
-</dd>
-</dl><a NAME="HelpTabWidget.newBrowser" ID="HelpTabWidget.newBrowser"></a>
-<h4>HelpTabWidget.newBrowser</h4>
-<b>newBrowser</b>(<i>link=None, requestData=None, position=-1</i>)
-<p>
-        Public method to create a new web browser tab.
-</p><dl>
-<dt><i>link</i></dt>
-<dd>
-link to be shown (string or QUrl)
-</dd><dt><i>requestData</i></dt>
-<dd>
-tuple containing the request data (QNetworkRequest,
-            QNetworkAccessManager.Operation, QByteArray)
-</dd><dt><i>position=</i></dt>
-<dd>
-position to create the new tab at or -1 to add it
-            to the end (integer)
-</dd>
-</dl><a NAME="HelpTabWidget.newBrowserAfter" ID="HelpTabWidget.newBrowserAfter"></a>
-<h4>HelpTabWidget.newBrowserAfter</h4>
-<b>newBrowserAfter</b>(<i>browser, link=None, requestData=None</i>)
-<p>
-        Public method to create a new web browser tab after a given one.
-</p><dl>
-<dt><i>browser</i></dt>
-<dd>
-reference to the browser to add after (HelpBrowser)
-</dd><dt><i>link</i></dt>
-<dd>
-link to be shown (string or QUrl)
-</dd><dt><i>requestData</i></dt>
-<dd>
-tuple containing the request data (QNetworkRequest,
-            QNetworkAccessManager.Operation, QByteArray)
-</dd>
-</dl><a NAME="HelpTabWidget.preferencesChanged" ID="HelpTabWidget.preferencesChanged"></a>
-<h4>HelpTabWidget.preferencesChanged</h4>
-<b>preferencesChanged</b>(<i></i>)
-<p>
-        Public slot to handle a change of preferences.
-</p><a NAME="HelpTabWidget.printBrowser" ID="HelpTabWidget.printBrowser"></a>
-<h4>HelpTabWidget.printBrowser</h4>
-<b>printBrowser</b>(<i>browser=None</i>)
-<p>
-        Public slot called to print the displayed page.
-</p><dl>
-<dt><i>browser</i></dt>
-<dd>
-reference to the browser to be printed (HelpBrowser)
-</dd>
-</dl><a NAME="HelpTabWidget.printBrowserPdf" ID="HelpTabWidget.printBrowserPdf"></a>
-<h4>HelpTabWidget.printBrowserPdf</h4>
-<b>printBrowserPdf</b>(<i>browser=None</i>)
-<p>
-        Public slot called to print the displayed page to PDF.
-</p><dl>
-<dt><i>browser</i></dt>
-<dd>
-reference to the browser to be printed (HelpBrowser)
-</dd>
-</dl><a NAME="HelpTabWidget.printPreviewBrowser" ID="HelpTabWidget.printPreviewBrowser"></a>
-<h4>HelpTabWidget.printPreviewBrowser</h4>
-<b>printPreviewBrowser</b>(<i>browser=None</i>)
-<p>
-        Public slot called to show a print preview of the displayed file.
-</p><dl>
-<dt><i>browser</i></dt>
-<dd>
-reference to the browser to be printed (HelpBrowserWV)
-</dd>
-</dl><a NAME="HelpTabWidget.reloadAllBrowsers" ID="HelpTabWidget.reloadAllBrowsers"></a>
-<h4>HelpTabWidget.reloadAllBrowsers</h4>
-<b>reloadAllBrowsers</b>(<i></i>)
-<p>
-        Public slot to reload all browsers.
-</p><a NAME="HelpTabWidget.restoreAllClosedTabs" ID="HelpTabWidget.restoreAllClosedTabs"></a>
-<h4>HelpTabWidget.restoreAllClosedTabs</h4>
-<b>restoreAllClosedTabs</b>(<i></i>)
-<p>
-        Public slot to restore all closed tabs.
-</p><a NAME="HelpTabWidget.restoreClosedTab" ID="HelpTabWidget.restoreClosedTab"></a>
-<h4>HelpTabWidget.restoreClosedTab</h4>
-<b>restoreClosedTab</b>(<i>act</i>)
-<p>
-        Public slot to restore the most recently closed tab.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action that triggered
-</dd>
-</dl><a NAME="HelpTabWidget.shallShutDown" ID="HelpTabWidget.shallShutDown"></a>
-<h4>HelpTabWidget.shallShutDown</h4>
-<b>shallShutDown</b>(<i></i>)
-<p>
-        Public method to check, if the application should be shut down.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a shut down (boolean)
-</dd>
-</dl><a NAME="HelpTabWidget.stackedUrlBar" ID="HelpTabWidget.stackedUrlBar"></a>
-<h4>HelpTabWidget.stackedUrlBar</h4>
-<b>stackedUrlBar</b>(<i></i>)
-<p>
-        Public method to get a reference to the stacked url bar.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the stacked url bar (StackedUrlBar)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpTocWidget.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpTocWidget</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpTocWidget</h1>
-<p>
-Module implementing a window for showing the QtHelp TOC.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpTocWidget">HelpTocWidget</a></td>
-<td>Class implementing a window for showing the QtHelp TOC.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HelpTocWidget" ID="HelpTocWidget"></a>
-<h2>HelpTocWidget</h2>
-<p>
-    Class implementing a window for showing the QtHelp TOC.
-</p><h3>Signals</h3>
-<dl>
-<dt>escapePressed()</dt>
-<dd>
-emitted when the ESC key was pressed
-</dd><dt>linkActivated(QUrl)</dt>
-<dd>
-emitted when a TOC entry is activated
-</dd>
-</dl>
-<h3>Derived from</h3>
-QWidget
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpTocWidget.__init__">HelpTocWidget</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpTocWidget.__expandTOC">__expandTOC</a></td>
-<td>Private slot to expand the table of contents.</td>
-</tr><tr>
-<td><a href="#HelpTocWidget.__linkActivated">__linkActivated</a></td>
-<td>Private slot handling the activation of an entry.</td>
-</tr><tr>
-<td><a href="#HelpTocWidget.__showContextMenu">__showContextMenu</a></td>
-<td>Private slot showing the context menu.</td>
-</tr><tr>
-<td><a href="#HelpTocWidget.expandToDepth">expandToDepth</a></td>
-<td>Public slot to expand the table of contents to a specific depth.</td>
-</tr><tr>
-<td><a href="#HelpTocWidget.focusInEvent">focusInEvent</a></td>
-<td>Protected method handling focus in events.</td>
-</tr><tr>
-<td><a href="#HelpTocWidget.itemClicked">itemClicked</a></td>
-<td>Public slot handling a click of a TOC entry.</td>
-</tr><tr>
-<td><a href="#HelpTocWidget.keyPressEvent">keyPressEvent</a></td>
-<td>Protected method handling key press events.</td>
-</tr><tr>
-<td><a href="#HelpTocWidget.syncToContent">syncToContent</a></td>
-<td>Public method to sync the TOC to the displayed page.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpTocWidget.__init__" ID="HelpTocWidget.__init__"></a>
-<h4>HelpTocWidget (Constructor)</h4>
-<b>HelpTocWidget</b>(<i>engine, mainWindow, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the help engine (QHelpEngine)
-</dd><dt><i>mainWindow</i></dt>
-<dd>
-reference to the main window object (QMainWindow)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="HelpTocWidget.__expandTOC" ID="HelpTocWidget.__expandTOC"></a>
-<h4>HelpTocWidget.__expandTOC</h4>
-<b>__expandTOC</b>(<i></i>)
-<p>
-        Private slot to expand the table of contents.
-</p><a NAME="HelpTocWidget.__linkActivated" ID="HelpTocWidget.__linkActivated"></a>
-<h4>HelpTocWidget.__linkActivated</h4>
-<b>__linkActivated</b>(<i>url</i>)
-<p>
-        Private slot handling the activation of an entry.
-</p><dl>
-<dt><i>url</i> (QUrl)</dt>
-<dd>
-URL of the activated entry
-</dd>
-</dl><a NAME="HelpTocWidget.__showContextMenu" ID="HelpTocWidget.__showContextMenu"></a>
-<h4>HelpTocWidget.__showContextMenu</h4>
-<b>__showContextMenu</b>(<i>pos</i>)
-<p>
-        Private slot showing the context menu.
-</p><dl>
-<dt><i>pos</i></dt>
-<dd>
-position to show the menu at (QPoint)
-</dd>
-</dl><a NAME="HelpTocWidget.expandToDepth" ID="HelpTocWidget.expandToDepth"></a>
-<h4>HelpTocWidget.expandToDepth</h4>
-<b>expandToDepth</b>(<i>depth</i>)
-<p>
-        Public slot to expand the table of contents to a specific depth.
-</p><dl>
-<dt><i>depth</i></dt>
-<dd>
-depth to expand to (integer)
-</dd>
-</dl><a NAME="HelpTocWidget.focusInEvent" ID="HelpTocWidget.focusInEvent"></a>
-<h4>HelpTocWidget.focusInEvent</h4>
-<b>focusInEvent</b>(<i>evt</i>)
-<p>
-        Protected method handling focus in events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the focus event object (QFocusEvent)
-</dd>
-</dl><a NAME="HelpTocWidget.itemClicked" ID="HelpTocWidget.itemClicked"></a>
-<h4>HelpTocWidget.itemClicked</h4>
-<b>itemClicked</b>(<i>index</i>)
-<p>
-        Public slot handling a click of a TOC entry.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the TOC clicked (QModelIndex)
-</dd>
-</dl><a NAME="HelpTocWidget.keyPressEvent" ID="HelpTocWidget.keyPressEvent"></a>
-<h4>HelpTocWidget.keyPressEvent</h4>
-<b>keyPressEvent</b>(<i>evt</i>)
-<p>
-        Protected method handling key press events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the key press event (QKeyEvent)
-</dd>
-</dl><a NAME="HelpTocWidget.syncToContent" ID="HelpTocWidget.syncToContent"></a>
-<h4>HelpTocWidget.syncToContent</h4>
-<b>syncToContent</b>(<i>url</i>)
-<p>
-        Public method to sync the TOC to the displayed page.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the displayed page (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a successful synchronization (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpTopicDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpTopicDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpTopicDialog</h1>
-<p>
-Module implementing a dialog to select a help topic to display.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpTopicDialog">HelpTopicDialog</a></td>
-<td>Class implementing a dialog to select a help topic to display.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HelpTopicDialog" ID="HelpTopicDialog"></a>
-<h2>HelpTopicDialog</h2>
-<p>
-    Class implementing a dialog to select a help topic to display.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_HelpTopicDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpTopicDialog.__init__">HelpTopicDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpTopicDialog.link">link</a></td>
-<td>Public method to the link of the selected topic.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpTopicDialog.__init__" ID="HelpTopicDialog.__init__"></a>
-<h4>HelpTopicDialog (Constructor)</h4>
-<b>HelpTopicDialog</b>(<i>parent, keyword, links</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd><dt><i>keyword</i></dt>
-<dd>
-keyword for the link set (string)
-</dd><dt><i>links</i></dt>
-<dd>
-dictionary with help topic as key (string) and
-            URL as value (QUrl)
-</dd>
-</dl><a NAME="HelpTopicDialog.link" ID="HelpTopicDialog.link"></a>
-<h4>HelpTopicDialog.link</h4>
-<b>link</b>(<i></i>)
-<p>
-        Public method to the link of the selected topic.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-URL of the selected topic (QUrl)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpUtilities.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpUtilities</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpUtilities</h1>
-<p>
-Module implementing some global helper functions.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#ensureUniqueFilename">ensureUniqueFilename</a></td>
-<td>Module function to generate an unique file name based on a pattern.</td>
-</tr><tr>
-<td><a href="#filterCharsFromFilename">filterCharsFromFilename</a></td>
-<td>Module function to filter illegal characters.</td>
-</tr><tr>
-<td><a href="#getFileNameFromUrl">getFileNameFromUrl</a></td>
-<td>Module function to generate a file name based on the given URL.</td>
-</tr><tr>
-<td><a href="#parseContentDisposition">parseContentDisposition</a></td>
-<td>Function to parse a content disposition header.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="ensureUniqueFilename" ID="ensureUniqueFilename"></a>
-<h2>ensureUniqueFilename</h2>
-<b>ensureUniqueFilename</b>(<i>name, appendFormat="({0})"</i>)
-<p>
-    Module function to generate an unique file name based on a pattern.
-</p><dl>
-<dt><i>name</i></dt>
-<dd>
-desired file name (string)
-</dd><dt><i>appendFormat</i></dt>
-<dd>
-format pattern to be used to make the unique name
-        (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-unique file name
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="filterCharsFromFilename" ID="filterCharsFromFilename"></a>
-<h2>filterCharsFromFilename</h2>
-<b>filterCharsFromFilename</b>(<i>name</i>)
-<p>
-    Module function to filter illegal characters.
-</p><dl>
-<dt><i>name</i></dt>
-<dd>
-name to be sanitized (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-sanitized name (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getFileNameFromUrl" ID="getFileNameFromUrl"></a>
-<h2>getFileNameFromUrl</h2>
-<b>getFileNameFromUrl</b>(<i>url</i>)
-<p>
-    Module function to generate a file name based on the given URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-file name (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="parseContentDisposition" ID="parseContentDisposition"></a>
-<h2>parseContentDisposition</h2>
-<b>parseContentDisposition</b>(<i>reply</i>)
-<p>
-    Function to parse a content disposition header.
-</p><dl>
-<dt><i>reply</i> (QNetworkReply)</dt>
-<dd>
-network reply to be parsed
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-file name parsed from a content disposition header
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpWebSearchWidget.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,272 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpWebSearchWidget</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpWebSearchWidget</h1>
-<p>
-Module implementing a web search widget for the web browser.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpWebSearchWidget">HelpWebSearchWidget</a></td>
-<td>Class implementing a web search widget for the web browser.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HelpWebSearchWidget" ID="HelpWebSearchWidget"></a>
-<h2>HelpWebSearchWidget</h2>
-<p>
-    Class implementing a web search widget for the web browser.
-</p><h3>Signals</h3>
-<dl>
-<dt>search(QUrl)</dt>
-<dd>
-emitted when the search should be done
-</dd>
-</dl>
-<h3>Derived from</h3>
-E5ClearableLineEdit
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpWebSearchWidget.__init__">HelpWebSearchWidget</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.__completerActivated">__completerActivated</a></td>
-<td>Private slot handling the selection of an entry from the completer.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.__completerHighlighted">__completerHighlighted</a></td>
-<td>Private slot handling the highlighting of an entry of the completer.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.__currentEngineChanged">__currentEngineChanged</a></td>
-<td>Private slot to track a change of the current search engine.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.__engineImageChanged">__engineImageChanged</a></td>
-<td>Private slot to handle a change of the current search engine icon.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.__getSuggestions">__getSuggestions</a></td>
-<td>Private slot to get search suggestions from the configured search engine.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.__handleEnginesMenuActionTriggered">__handleEnginesMenuActionTriggered</a></td>
-<td>Private slot to handle an action of the menu being triggered.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.__loadSearches">__loadSearches</a></td>
-<td>Private method to load the recently performed web searches.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.__newSuggestions">__newSuggestions</a></td>
-<td>Private slot to receive a new list of suggestions.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.__searchButtonClicked">__searchButtonClicked</a></td>
-<td>Private slot to show the search menu via the search button.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.__searchNow">__searchNow</a></td>
-<td>Private slot to perform the web search.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.__setupCompleterMenu">__setupCompleterMenu</a></td>
-<td>Private method to create the completer menu.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.__showEnginesMenu">__showEnginesMenu</a></td>
-<td>Private slot to handle the display of the engines menu.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.__textEdited">__textEdited</a></td>
-<td>Private slot to handle changes of the search text.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.clear">clear</a></td>
-<td>Public method to clear all private data.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.mousePressEvent">mousePressEvent</a></td>
-<td>Protected method called by a mouse press event.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.openSearchManager">openSearchManager</a></td>
-<td>Public method to get a reference to the opensearch manager object.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.preferencesChanged">preferencesChanged</a></td>
-<td>Public method to handle the change of preferences.</td>
-</tr><tr>
-<td><a href="#HelpWebSearchWidget.saveSearches">saveSearches</a></td>
-<td>Public method to save the recently performed web searches.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpWebSearchWidget.__init__" ID="HelpWebSearchWidget.__init__"></a>
-<h4>HelpWebSearchWidget (Constructor)</h4>
-<b>HelpWebSearchWidget</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="HelpWebSearchWidget.__completerActivated" ID="HelpWebSearchWidget.__completerActivated"></a>
-<h4>HelpWebSearchWidget.__completerActivated</h4>
-<b>__completerActivated</b>(<i>index</i>)
-<p>
-        Private slot handling the selection of an entry from the completer.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the item (QModelIndex)
-</dd>
-</dl><a NAME="HelpWebSearchWidget.__completerHighlighted" ID="HelpWebSearchWidget.__completerHighlighted"></a>
-<h4>HelpWebSearchWidget.__completerHighlighted</h4>
-<b>__completerHighlighted</b>(<i>index</i>)
-<p>
-        Private slot handling the highlighting of an entry of the completer.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the item (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flah indicating a successful highlighting (boolean)
-</dd>
-</dl><a NAME="HelpWebSearchWidget.__currentEngineChanged" ID="HelpWebSearchWidget.__currentEngineChanged"></a>
-<h4>HelpWebSearchWidget.__currentEngineChanged</h4>
-<b>__currentEngineChanged</b>(<i></i>)
-<p>
-        Private slot to track a change of the current search engine.
-</p><a NAME="HelpWebSearchWidget.__engineImageChanged" ID="HelpWebSearchWidget.__engineImageChanged"></a>
-<h4>HelpWebSearchWidget.__engineImageChanged</h4>
-<b>__engineImageChanged</b>(<i></i>)
-<p>
-        Private slot to handle a change of the current search engine icon.
-</p><a NAME="HelpWebSearchWidget.__getSuggestions" ID="HelpWebSearchWidget.__getSuggestions"></a>
-<h4>HelpWebSearchWidget.__getSuggestions</h4>
-<b>__getSuggestions</b>(<i></i>)
-<p>
-        Private slot to get search suggestions from the configured search
-        engine.
-</p><a NAME="HelpWebSearchWidget.__handleEnginesMenuActionTriggered" ID="HelpWebSearchWidget.__handleEnginesMenuActionTriggered"></a>
-<h4>HelpWebSearchWidget.__handleEnginesMenuActionTriggered</h4>
-<b>__handleEnginesMenuActionTriggered</b>(<i>action</i>)
-<p>
-        Private slot to handle an action of the menu being triggered.
-</p><dl>
-<dt><i>action</i> (QAction)</dt>
-<dd>
-reference to the action that triggered
-</dd>
-</dl><a NAME="HelpWebSearchWidget.__loadSearches" ID="HelpWebSearchWidget.__loadSearches"></a>
-<h4>HelpWebSearchWidget.__loadSearches</h4>
-<b>__loadSearches</b>(<i></i>)
-<p>
-        Private method to load the recently performed web searches.
-</p><a NAME="HelpWebSearchWidget.__newSuggestions" ID="HelpWebSearchWidget.__newSuggestions"></a>
-<h4>HelpWebSearchWidget.__newSuggestions</h4>
-<b>__newSuggestions</b>(<i>suggestions</i>)
-<p>
-        Private slot to receive a new list of suggestions.
-</p><dl>
-<dt><i>suggestions</i></dt>
-<dd>
-list of suggestions (list of strings)
-</dd>
-</dl><a NAME="HelpWebSearchWidget.__searchButtonClicked" ID="HelpWebSearchWidget.__searchButtonClicked"></a>
-<h4>HelpWebSearchWidget.__searchButtonClicked</h4>
-<b>__searchButtonClicked</b>(<i></i>)
-<p>
-        Private slot to show the search menu via the search button.
-</p><a NAME="HelpWebSearchWidget.__searchNow" ID="HelpWebSearchWidget.__searchNow"></a>
-<h4>HelpWebSearchWidget.__searchNow</h4>
-<b>__searchNow</b>(<i></i>)
-<p>
-        Private slot to perform the web search.
-</p><a NAME="HelpWebSearchWidget.__setupCompleterMenu" ID="HelpWebSearchWidget.__setupCompleterMenu"></a>
-<h4>HelpWebSearchWidget.__setupCompleterMenu</h4>
-<b>__setupCompleterMenu</b>(<i></i>)
-<p>
-        Private method to create the completer menu.
-</p><a NAME="HelpWebSearchWidget.__showEnginesMenu" ID="HelpWebSearchWidget.__showEnginesMenu"></a>
-<h4>HelpWebSearchWidget.__showEnginesMenu</h4>
-<b>__showEnginesMenu</b>(<i></i>)
-<p>
-        Private slot to handle the display of the engines menu.
-</p><a NAME="HelpWebSearchWidget.__textEdited" ID="HelpWebSearchWidget.__textEdited"></a>
-<h4>HelpWebSearchWidget.__textEdited</h4>
-<b>__textEdited</b>(<i>txt</i>)
-<p>
-        Private slot to handle changes of the search text.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-search text (string)
-</dd>
-</dl><a NAME="HelpWebSearchWidget.clear" ID="HelpWebSearchWidget.clear"></a>
-<h4>HelpWebSearchWidget.clear</h4>
-<b>clear</b>(<i></i>)
-<p>
-        Public method to clear all private data.
-</p><a NAME="HelpWebSearchWidget.mousePressEvent" ID="HelpWebSearchWidget.mousePressEvent"></a>
-<h4>HelpWebSearchWidget.mousePressEvent</h4>
-<b>mousePressEvent</b>(<i>evt</i>)
-<p>
-        Protected method called by a mouse press event.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the mouse event (QMouseEvent)
-</dd>
-</dl><a NAME="HelpWebSearchWidget.openSearchManager" ID="HelpWebSearchWidget.openSearchManager"></a>
-<h4>HelpWebSearchWidget.openSearchManager</h4>
-<b>openSearchManager</b>(<i></i>)
-<p>
-        Public method to get a reference to the opensearch manager object.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the opensearch manager object (OpenSearchManager)
-</dd>
-</dl><a NAME="HelpWebSearchWidget.preferencesChanged" ID="HelpWebSearchWidget.preferencesChanged"></a>
-<h4>HelpWebSearchWidget.preferencesChanged</h4>
-<b>preferencesChanged</b>(<i></i>)
-<p>
-        Public method to handle the change of preferences.
-</p><a NAME="HelpWebSearchWidget.saveSearches" ID="HelpWebSearchWidget.saveSearches"></a>
-<h4>HelpWebSearchWidget.saveSearches</h4>
-<b>saveSearches</b>(<i></i>)
-<p>
-        Public method to save the recently performed web searches.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.HelpWindow.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1985 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.HelpWindow</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.HelpWindow</h1>
-<p>
-Module implementing the helpviewer main window.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpWindow">HelpWindow</a></td>
-<td>Class implementing the web browser main window.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HelpWindow" ID="HelpWindow"></a>
-<h2>HelpWindow</h2>
-<p>
-    Class implementing the web browser main window.
-</p><h3>Signals</h3>
-<dl>
-<dt>helpClosed()</dt>
-<dd>
-emitted after the window was requested to close down
-</dd><dt>privacyChanged(bool)</dt>
-<dd>
-emitted to indicate a new privacy mode
-</dd><dt>zoomTextOnlyChanged(bool)</dt>
-<dd>
-emitted after the zoom text only setting
-        was changed
-</dd>
-</dl>
-<h3>Derived from</h3>
-E5MainWindow
-<h3>Class Attributes</h3>
-<table>
-<tr><td>_adblockManager</td></tr><tr><td>_bookmarksManager</td></tr><tr><td>_cookieJar</td></tr><tr><td>_downloadManager</td></tr><tr><td>_featurePermissionManager</td></tr><tr><td>_feedsManager</td></tr><tr><td>_flashCookieManager</td></tr><tr><td>_greaseMonkeyManager</td></tr><tr><td>_helpEngine</td></tr><tr><td>_historyManager</td></tr><tr><td>_networkAccessManager</td></tr><tr><td>_notification</td></tr><tr><td>_passwordManager</td></tr><tr><td>_personalInformationManager</td></tr><tr><td>_speedDial</td></tr><tr><td>_syncManager</td></tr><tr><td>_useQtHelp</td></tr><tr><td>_userAgentsManager</td></tr><tr><td>_zoomManager</td></tr><tr><td>helpwindows</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpWindow.adBlockManager">adBlockManager</a></td>
-<td>Class method to get a reference to the AdBlock manager.</td>
-</tr><tr>
-<td><a href="#HelpWindow.bookmarksManager">bookmarksManager</a></td>
-<td>Class method to get a reference to the bookmarks manager.</td>
-</tr><tr>
-<td><a href="#HelpWindow.cookieJar">cookieJar</a></td>
-<td>Class method to get a reference to the cookie jar.</td>
-</tr><tr>
-<td><a href="#HelpWindow.downloadManager">downloadManager</a></td>
-<td>Class method to get a reference to the download manager.</td>
-</tr><tr>
-<td><a href="#HelpWindow.featurePermissionManager">featurePermissionManager</a></td>
-<td>Class method to get a reference to the feature permission manager.</td>
-</tr><tr>
-<td><a href="#HelpWindow.feedsManager">feedsManager</a></td>
-<td>Class method to get a reference to the RSS feeds manager.</td>
-</tr><tr>
-<td><a href="#HelpWindow.flashCookieManager">flashCookieManager</a></td>
-<td>Class method to get a reference to the flash cookies manager.</td>
-</tr><tr>
-<td><a href="#HelpWindow.getQtHelpCollectionFileName">getQtHelpCollectionFileName</a></td>
-<td>Class method to determine the name of the QtHelp collection file.</td>
-</tr><tr>
-<td><a href="#HelpWindow.greaseMonkeyManager">greaseMonkeyManager</a></td>
-<td>Class method to get a reference to the GreaseMonkey manager.</td>
-</tr><tr>
-<td><a href="#HelpWindow.helpEngine">helpEngine</a></td>
-<td>Class method to get a reference to the help engine.</td>
-</tr><tr>
-<td><a href="#HelpWindow.historyManager">historyManager</a></td>
-<td>Class method to get a reference to the history manager.</td>
-</tr><tr>
-<td><a href="#HelpWindow.icon">icon</a></td>
-<td>Class method to get the icon for an URL.</td>
-</tr><tr>
-<td><a href="#HelpWindow.mainWindow">mainWindow</a></td>
-<td>Class method to get a reference to the main window.</td>
-</tr><tr>
-<td><a href="#HelpWindow.mainWindows">mainWindows</a></td>
-<td>Class method to get references to all main windows.</td>
-</tr><tr>
-<td><a href="#HelpWindow.networkAccessManager">networkAccessManager</a></td>
-<td>Class method to get a reference to the network access manager.</td>
-</tr><tr>
-<td><a href="#HelpWindow.notificationsEnabled">notificationsEnabled</a></td>
-<td>Class method to check, if notifications are enabled.</td>
-</tr><tr>
-<td><a href="#HelpWindow.passwordManager">passwordManager</a></td>
-<td>Class method to get a reference to the password manager.</td>
-</tr><tr>
-<td><a href="#HelpWindow.personalInformationManager">personalInformationManager</a></td>
-<td>Class method to get a reference to the personal information manager.</td>
-</tr><tr>
-<td><a href="#HelpWindow.setUseQtHelp">setUseQtHelp</a></td>
-<td>Class method to set the QtHelp usage.</td>
-</tr><tr>
-<td><a href="#HelpWindow.showNotification">showNotification</a></td>
-<td>Class method to show a desktop notification.</td>
-</tr><tr>
-<td><a href="#HelpWindow.speedDial">speedDial</a></td>
-<td>Class methdo to get a reference to the speed dial.</td>
-</tr><tr>
-<td><a href="#HelpWindow.syncManager">syncManager</a></td>
-<td>Class method to get a reference to the data synchronization manager.</td>
-</tr><tr>
-<td><a href="#HelpWindow.userAgentsManager">userAgentsManager</a></td>
-<td>Class method to get a reference to the user agents manager.</td>
-</tr><tr>
-<td><a href="#HelpWindow.zoomManager">zoomManager</a></td>
-<td>Class method to get a reference to the zoom values manager.</td>
-</tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpWindow.__init__">HelpWindow</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpWindow.__about">__about</a></td>
-<td>Private slot to show the about information.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__aboutQt">__aboutQt</a></td>
-<td>Private slot to show info about Qt.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__aboutToShowSettingsMenu">__aboutToShowSettingsMenu</a></td>
-<td>Private slot to show the Settings menu.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__aboutToShowTextEncodingMenu">__aboutToShowTextEncodingMenu</a></td>
-<td>Private slot to populate the text encoding menu.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__activateCurrentBrowser">__activateCurrentBrowser</a></td>
-<td>Private slot to activate the current browser.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__activateDock">__activateDock</a></td>
-<td>Private method to activate the dock widget of the given widget.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__addBookmark">__addBookmark</a></td>
-<td>Private slot called to add the displayed file to the bookmarks.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__addBookmarkFolder">__addBookmarkFolder</a></td>
-<td>Private slot to add a new bookmarks folder.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__appFocusChanged">__appFocusChanged</a></td>
-<td>Private slot to handle a change of the focus.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__backward">__backward</a></td>
-<td>Private slot called to handle the backward action.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__clearIconsDatabase">__clearIconsDatabase</a></td>
-<td>Private slot to clear the icons databse.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__clearPrivateData">__clearPrivateData</a></td>
-<td>Private slot to clear the private data.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__closeAllWindows">__closeAllWindows</a></td>
-<td>Private slot to close all windows.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__closeNetworkMonitor">__closeNetworkMonitor</a></td>
-<td>Private slot to close the network monitor dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__configShortcuts">__configShortcuts</a></td>
-<td>Private slot to configure the keyboard shortcuts.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__copy">__copy</a></td>
-<td>Private slot called to handle the copy action.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__createTextEncodingAction">__createTextEncodingAction</a></td>
-<td>Private method to create an action for the text encoding menu.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__createTextEncodingSubmenu">__createTextEncodingSubmenu</a></td>
-<td>Private method to create a text encoding sub menu.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__currentChanged">__currentChanged</a></td>
-<td>Private slot to handle the currentChanged signal.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__del__">__del__</a></td>
-<td>Special method called during object destruction.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__docsInstalled">__docsInstalled</a></td>
-<td>Private slot handling the end of documentation installation.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__exportShortcuts">__exportShortcuts</a></td>
-<td>Private slot to export the keyboard shortcuts.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__feedsManagerClosed">__feedsManagerClosed</a></td>
-<td>Private slot to handle closing the feeds manager dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__filterQtHelpDocumentation">__filterQtHelpDocumentation</a></td>
-<td>Private slot to filter the QtHelp documentation.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__find">__find</a></td>
-<td>Private slot to handle the find action.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__forward">__forward</a></td>
-<td>Private slot called to handle the forward action.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__hideIndexWindow">__hideIndexWindow</a></td>
-<td>Private method to hide the index window.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__hideSearchWindow">__hideSearchWindow</a></td>
-<td>Private method to hide the search window.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__hideTocWindow">__hideTocWindow</a></td>
-<td>Private method to hide the table of contents window.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__home">__home</a></td>
-<td>Private slot called to handle the home action.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__importShortcuts">__importShortcuts</a></td>
-<td>Private slot to import the keyboard shortcuts.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__indexingFinished">__indexingFinished</a></td>
-<td>Private slot to handle the start of the indexing process.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__indexingStarted">__indexingStarted</a></td>
-<td>Private slot to handle the start of the indexing process.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__initActions">__initActions</a></td>
-<td>Private method to define the user interface actions.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__initHelpDb">__initHelpDb</a></td>
-<td>Private slot to initialize the documentation database.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__initMenus">__initMenus</a></td>
-<td>Private method to create the menus.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__initToolbars">__initToolbars</a></td>
-<td>Private method to create the toolbars.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__initWebSettings">__initWebSettings</a></td>
-<td>Private method to set the global web settings.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__isFullScreen">__isFullScreen</a></td>
-<td>Private method to determine, if the window is in full screen mode.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__linkActivated">__linkActivated</a></td>
-<td>Private slot to handle the selection of a link in the TOC window.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__linksActivated">__linksActivated</a></td>
-<td>Private slot to select a topic to be shown.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__lookForNewDocumentation">__lookForNewDocumentation</a></td>
-<td>Private slot to look for new documentation to be loaded into the help database.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__manageQtHelpDocumentation">__manageQtHelpDocumentation</a></td>
-<td>Private slot to manage the QtHelp documentation database.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__manageQtHelpFilters">__manageQtHelpFilters</a></td>
-<td>Private slot to manage the QtHelp filters.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__navigationMenuActionTriggered">__navigationMenuActionTriggered</a></td>
-<td>Private slot to go to the selected page.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__nextTab">__nextTab</a></td>
-<td>Private slot used to show the next tab.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__openFile">__openFile</a></td>
-<td>Private slot called to open a file.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__openFileNewTab">__openFileNewTab</a></td>
-<td>Private slot called to open a file in a new tab.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__prevTab">__prevTab</a></td>
-<td>Private slot used to show the previous tab.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__privateBrowsing">__privateBrowsing</a></td>
-<td>Private slot to switch private browsing.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__reload">__reload</a></td>
-<td>Private slot called to handle the reload action.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__removeOldDocumentation">__removeOldDocumentation</a></td>
-<td>Private slot to remove non-existing documentation from the help engine.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__saLoadUrl">__saLoadUrl</a></td>
-<td>Private slot to load an URL received via the single application protocol.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__saNewTab">__saNewTab</a></td>
-<td>Private slot to load an URL received via the single application protocol in a new tab.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__saSearchWord">__saSearchWord</a></td>
-<td>Private slot to search for the given word.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__savePageAs">__savePageAs</a></td>
-<td>Private slot to save the current page.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__savePageScreen">__savePageScreen</a></td>
-<td>Private slot to save the current page as a screen shot.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__saveVisiblePageScreen">__saveVisiblePageScreen</a></td>
-<td>Private slot to save the visible part of the current page as a screen shot.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__searchForWord">__searchForWord</a></td>
-<td>Private slot to search for a word.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__setIconDatabasePath">__setIconDatabasePath</a></td>
-<td>Private method to set the favicons path.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__setTextEncoding">__setTextEncoding</a></td>
-<td>Private slot to set the selected text encoding as the default for this session.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__setupFilterCombo">__setupFilterCombo</a></td>
-<td>Private slot to setup the filter combo box.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showAcceptedLanguages">__showAcceptedLanguages</a></td>
-<td>Private slot to configure the accepted languages for web pages.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showAdBlockDialog">__showAdBlockDialog</a></td>
-<td>Private slot to show the AdBlock configuration dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showBackMenu">__showBackMenu</a></td>
-<td>Private slot showing the backwards navigation menu.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showBookmarksDialog">__showBookmarksDialog</a></td>
-<td>Private slot to show the bookmarks dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showCertificatesDialog">__showCertificatesDialog</a></td>
-<td>Private slot to show the certificates management dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showClickToFlashDialog">__showClickToFlashDialog</a></td>
-<td>Private slot to open the ClickToFlash whitelist configuration dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showCookiesConfiguration">__showCookiesConfiguration</a></td>
-<td>Private slot to configure the cookies handling.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showDownloadsWindow">__showDownloadsWindow</a></td>
-<td>Private slot to show the downloads dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showEnginesConfigurationDialog">__showEnginesConfigurationDialog</a></td>
-<td>Private slot to show the search engines configuration dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showFeaturePermissionDialog">__showFeaturePermissionDialog</a></td>
-<td>Private slot to show the feature permission dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showFeedsManager">__showFeedsManager</a></td>
-<td>Private slot to show the feeds manager dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showFlashCookiesManagement">__showFlashCookiesManagement</a></td>
-<td>Private slot to show the flash cookies management dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showForwardMenu">__showForwardMenu</a></td>
-<td>Private slot showing the forwards navigation menu.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showGreaseMonkeyConfigDialog">__showGreaseMonkeyConfigDialog</a></td>
-<td>Private slot to show the GreaseMonkey scripts configuration dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showIndexWindow">__showIndexWindow</a></td>
-<td>Private method to show the index window.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showInstallationError">__showInstallationError</a></td>
-<td>Private slot to show installation errors.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showNetworkMonitor">__showNetworkMonitor</a></td>
-<td>Private slot to show the network monitor dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showOfflineStorageConfiguration">__showOfflineStorageConfiguration</a></td>
-<td>Private slot to configure the offline storage.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showPageSource">__showPageSource</a></td>
-<td>Private slot to show the source of the current page in  an editor.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showPasswordsDialog">__showPasswordsDialog</a></td>
-<td>Private slot to show the passwords management dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showPersonalInformationDialog">__showPersonalInformationDialog</a></td>
-<td>Private slot to show the Personal Information configuration dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showPreferences">__showPreferences</a></td>
-<td>Private slot to set the preferences.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showSearchWindow">__showSearchWindow</a></td>
-<td>Private method to show the search window.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showSiteinfoDialog">__showSiteinfoDialog</a></td>
-<td>Private slot to show the site info dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showSyncDialog">__showSyncDialog</a></td>
-<td>Private slot to show the synchronization dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showTocWindow">__showTocWindow</a></td>
-<td>Private method to show the table of contents window.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showUserAgentsDialog">__showUserAgentsDialog</a></td>
-<td>Private slot to show the user agents management dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__showZoomValuesDialog">__showZoomValuesDialog</a></td>
-<td>Private slot to show the zoom values management dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__stopLoading">__stopLoading</a></td>
-<td>Private slot called to handle loading of the current page.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__switchTab">__switchTab</a></td>
-<td>Private slot used to switch between the current and the previous current tab.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__syncTOC">__syncTOC</a></td>
-<td>Private slot to synchronize the TOC with the currently shown page.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__titleChanged">__titleChanged</a></td>
-<td>Private slot called to handle a change of s browser's title.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__userStyleSheet">__userStyleSheet</a></td>
-<td>Private method to generate the user style sheet.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__viewFullScreen">__viewFullScreen</a></td>
-<td>Private slot called to toggle fullscreen mode.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__virusTotalDomainReport">__virusTotalDomainReport</a></td>
-<td>Private slot to retrieve a domain report.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__virusTotalFileScanReport">__virusTotalFileScanReport</a></td>
-<td>Private slot to initiate the display of the file scan report page.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__virusTotalIpAddressReport">__virusTotalIpAddressReport</a></td>
-<td>Private slot to retrieve an IP address report.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__virusTotalScanCurrentSite">__virusTotalScanCurrentSite</a></td>
-<td>Private slot to ask VirusTotal for a scan of the URL of the current browser.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__virusTotalSubmitUrlError">__virusTotalSubmitUrlError</a></td>
-<td>Private slot to handle an URL scan submission error.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__virusTotalUrlScanReport">__virusTotalUrlScanReport</a></td>
-<td>Private slot to initiate the display of the URL scan report page.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__warning">__warning</a></td>
-<td>Private slot handling warnings from the help engine.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__whatsThis">__whatsThis</a></td>
-<td>Private slot called in to enter Whats This mode.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__zoomIn">__zoomIn</a></td>
-<td>Private slot called to handle the zoom in action.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__zoomOut">__zoomOut</a></td>
-<td>Private slot called to handle the zoom out action.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__zoomReset">__zoomReset</a></td>
-<td>Private slot called to handle the zoom reset action.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__zoomTextOnly">__zoomTextOnly</a></td>
-<td>Private slot called to handle the zoom text only action.</td>
-</tr><tr>
-<td><a href="#HelpWindow.__zoomValueChanged">__zoomValueChanged</a></td>
-<td>Private slot to handle value changes of the zoom widget.</td>
-</tr><tr>
-<td><a href="#HelpWindow.adBlockIcon">adBlockIcon</a></td>
-<td>Public method to get a reference to the AdBlock icon.</td>
-</tr><tr>
-<td><a href="#HelpWindow.bookmarkAll">bookmarkAll</a></td>
-<td>Public slot to bookmark all open tabs.</td>
-</tr><tr>
-<td><a href="#HelpWindow.browserAt">browserAt</a></td>
-<td>Public method to get a reference to the help browser with the given index.</td>
-</tr><tr>
-<td><a href="#HelpWindow.browsers">browsers</a></td>
-<td>Public method to get a list of references to all help browsers.</td>
-</tr><tr>
-<td><a href="#HelpWindow.closeEvent">closeEvent</a></td>
-<td>Protected event handler for the close event.</td>
-</tr><tr>
-<td><a href="#HelpWindow.currentBrowser">currentBrowser</a></td>
-<td>Public method to get a reference to the current help browser.</td>
-</tr><tr>
-<td><a href="#HelpWindow.eventKeyboardModifiers">eventKeyboardModifiers</a></td>
-<td>Public method to get the last recorded keyboard modifiers.</td>
-</tr><tr>
-<td><a href="#HelpWindow.eventMouseButtons">eventMouseButtons</a></td>
-<td>Public method to get the last recorded mouse buttons.</td>
-</tr><tr>
-<td><a href="#HelpWindow.getActions">getActions</a></td>
-<td>Public method to get a list of all actions.</td>
-</tr><tr>
-<td><a href="#HelpWindow.getActionsCategory">getActionsCategory</a></td>
-<td>Public method to get the category of the defined actions.</td>
-</tr><tr>
-<td><a href="#HelpWindow.getSourceFileList">getSourceFileList</a></td>
-<td>Public method to get a list of all opened source files.</td>
-</tr><tr>
-<td><a href="#HelpWindow.getWindow">getWindow</a></td>
-<td>Public method to get a reference to the most recent active help window.</td>
-</tr><tr>
-<td><a href="#HelpWindow.keyPressEvent">keyPressEvent</a></td>
-<td>Protected method to handle key presses.</td>
-</tr><tr>
-<td><a href="#HelpWindow.masterPasswordChanged">masterPasswordChanged</a></td>
-<td>Public slot to handle the change of the master password.</td>
-</tr><tr>
-<td><a href="#HelpWindow.mousePressEvent">mousePressEvent</a></td>
-<td>Protected method called by a mouse press event.</td>
-</tr><tr>
-<td><a href="#HelpWindow.newTab">newTab</a></td>
-<td>Public slot called to open a new help window tab.</td>
-</tr><tr>
-<td><a href="#HelpWindow.newWindow">newWindow</a></td>
-<td>Public slot called to open a new help browser dialog.</td>
-</tr><tr>
-<td><a href="#HelpWindow.openSearchManager">openSearchManager</a></td>
-<td>Public method to get a reference to the opensearch manager object.</td>
-</tr><tr>
-<td><a href="#HelpWindow.openUrl">openUrl</a></td>
-<td>Public slot to load a URL from the bookmarks menu or bookmarks toolbar in the current tab.</td>
-</tr><tr>
-<td><a href="#HelpWindow.openUrlNewTab">openUrlNewTab</a></td>
-<td>Public slot to load a URL from the bookmarks menu or bookmarks toolbar in a new tab.</td>
-</tr><tr>
-<td><a href="#HelpWindow.preferencesChanged">preferencesChanged</a></td>
-<td>Public slot to handle a change of preferences.</td>
-</tr><tr>
-<td><a href="#HelpWindow.reloadUserStyleSheet">reloadUserStyleSheet</a></td>
-<td>Public method to reload the user style sheet.</td>
-</tr><tr>
-<td><a href="#HelpWindow.requestVirusTotalScan">requestVirusTotalScan</a></td>
-<td>Public method to submit a request to scan an URL by VirusTotal.</td>
-</tr><tr>
-<td><a href="#HelpWindow.search">search</a></td>
-<td>Public method to search for a word.</td>
-</tr><tr>
-<td><a href="#HelpWindow.searchEnginesAction">searchEnginesAction</a></td>
-<td>Public method to get a reference to the search engines configuration action.</td>
-</tr><tr>
-<td><a href="#HelpWindow.setBackwardAvailable">setBackwardAvailable</a></td>
-<td>Public slot called when backward references are available.</td>
-</tr><tr>
-<td><a href="#HelpWindow.setEventKeyboardModifiers">setEventKeyboardModifiers</a></td>
-<td>Public method to record keyboard modifiers.</td>
-</tr><tr>
-<td><a href="#HelpWindow.setEventMouseButtons">setEventMouseButtons</a></td>
-<td>Public method to record mouse buttons.</td>
-</tr><tr>
-<td><a href="#HelpWindow.setForwardAvailable">setForwardAvailable</a></td>
-<td>Public slot called when forward references are available.</td>
-</tr><tr>
-<td><a href="#HelpWindow.setLoadingActions">setLoadingActions</a></td>
-<td>Public slot to set the loading dependent actions.</td>
-</tr><tr>
-<td><a href="#HelpWindow.setPrivateMode">setPrivateMode</a></td>
-<td>Public method to set the privacy mode.</td>
-</tr><tr>
-<td><a href="#HelpWindow.shutdown">shutdown</a></td>
-<td>Public method to shut down the web browser.</td>
-</tr><tr>
-<td><a href="#HelpWindow.urlHandler">urlHandler</a></td>
-<td>Public slot used as desktop URL handler.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpWindow.__getWebIcon">__getWebIcon</a></td>
-<td>Private static method to fetch the icon for a URL.</td>
-</tr>
-</table>
-<a NAME="HelpWindow.adBlockManager" ID="HelpWindow.adBlockManager"></a>
-<h4>HelpWindow.adBlockManager (class method)</h4>
-<b>adBlockManager</b>(<i></i>)
-<p>
-        Class method to get a reference to the AdBlock manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the AdBlock manager (AdBlockManager)
-</dd>
-</dl><a NAME="HelpWindow.bookmarksManager" ID="HelpWindow.bookmarksManager"></a>
-<h4>HelpWindow.bookmarksManager (class method)</h4>
-<b>bookmarksManager</b>(<i></i>)
-<p>
-        Class method to get a reference to the bookmarks manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the bookmarks manager (BookmarksManager)
-</dd>
-</dl><a NAME="HelpWindow.cookieJar" ID="HelpWindow.cookieJar"></a>
-<h4>HelpWindow.cookieJar (class method)</h4>
-<b>cookieJar</b>(<i></i>)
-<p>
-        Class method to get a reference to the cookie jar.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the cookie jar (CookieJar)
-</dd>
-</dl><a NAME="HelpWindow.downloadManager" ID="HelpWindow.downloadManager"></a>
-<h4>HelpWindow.downloadManager (class method)</h4>
-<b>downloadManager</b>(<i></i>)
-<p>
-        Class method to get a reference to the download manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the password manager (DownloadManager)
-</dd>
-</dl><a NAME="HelpWindow.featurePermissionManager" ID="HelpWindow.featurePermissionManager"></a>
-<h4>HelpWindow.featurePermissionManager (class method)</h4>
-<b>featurePermissionManager</b>(<i></i>)
-<p>
-        Class method to get a reference to the feature permission manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the feature permission manager
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-FeaturePermissionManager
-</dd>
-</dl><a NAME="HelpWindow.feedsManager" ID="HelpWindow.feedsManager"></a>
-<h4>HelpWindow.feedsManager (class method)</h4>
-<b>feedsManager</b>(<i></i>)
-<p>
-        Class method to get a reference to the RSS feeds manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the RSS feeds manager (FeedsManager)
-</dd>
-</dl><a NAME="HelpWindow.flashCookieManager" ID="HelpWindow.flashCookieManager"></a>
-<h4>HelpWindow.flashCookieManager (class method)</h4>
-<b>flashCookieManager</b>(<i></i>)
-<p>
-        Class method to get a reference to the flash cookies manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the flash cookies manager
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-FlashCookieManager
-</dd>
-</dl><a NAME="HelpWindow.getQtHelpCollectionFileName" ID="HelpWindow.getQtHelpCollectionFileName"></a>
-<h4>HelpWindow.getQtHelpCollectionFileName (class method)</h4>
-<b>getQtHelpCollectionFileName</b>(<i></i>)
-<p>
-        Class method to determine the name of the QtHelp collection file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-path of the QtHelp collection file
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl><a NAME="HelpWindow.greaseMonkeyManager" ID="HelpWindow.greaseMonkeyManager"></a>
-<h4>HelpWindow.greaseMonkeyManager (class method)</h4>
-<b>greaseMonkeyManager</b>(<i></i>)
-<p>
-        Class method to get a reference to the GreaseMonkey manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the GreaseMonkey manager (GreaseMonkeyManager)
-</dd>
-</dl><a NAME="HelpWindow.helpEngine" ID="HelpWindow.helpEngine"></a>
-<h4>HelpWindow.helpEngine (class method)</h4>
-<b>helpEngine</b>(<i></i>)
-<p>
-        Class method to get a reference to the help engine.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the help engine (QHelpEngine)
-</dd>
-</dl><a NAME="HelpWindow.historyManager" ID="HelpWindow.historyManager"></a>
-<h4>HelpWindow.historyManager (class method)</h4>
-<b>historyManager</b>(<i></i>)
-<p>
-        Class method to get a reference to the history manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the history manager (HistoryManager)
-</dd>
-</dl><a NAME="HelpWindow.icon" ID="HelpWindow.icon"></a>
-<h4>HelpWindow.icon (class method)</h4>
-<b>icon</b>(<i>url</i>)
-<p>
-        Class method to get the icon for an URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to get icon for (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-icon for the URL (QIcon)
-</dd>
-</dl><a NAME="HelpWindow.mainWindow" ID="HelpWindow.mainWindow"></a>
-<h4>HelpWindow.mainWindow (class method)</h4>
-<b>mainWindow</b>(<i></i>)
-<p>
-        Class method to get a reference to the main window.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the main window (HelpWindow)
-</dd>
-</dl><a NAME="HelpWindow.mainWindows" ID="HelpWindow.mainWindows"></a>
-<h4>HelpWindow.mainWindows (class method)</h4>
-<b>mainWindows</b>(<i></i>)
-<p>
-        Class method to get references to all main windows.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-references to all main window (list of HelpWindow)
-</dd>
-</dl><a NAME="HelpWindow.networkAccessManager" ID="HelpWindow.networkAccessManager"></a>
-<h4>HelpWindow.networkAccessManager (class method)</h4>
-<b>networkAccessManager</b>(<i></i>)
-<p>
-        Class method to get a reference to the network access manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the network access manager (NetworkAccessManager)
-</dd>
-</dl><a NAME="HelpWindow.notificationsEnabled" ID="HelpWindow.notificationsEnabled"></a>
-<h4>HelpWindow.notificationsEnabled (class method)</h4>
-<b>notificationsEnabled</b>(<i></i>)
-<p>
-        Class method to check, if notifications are enabled.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating, if notifications are enabled (boolean)
-</dd>
-</dl><a NAME="HelpWindow.passwordManager" ID="HelpWindow.passwordManager"></a>
-<h4>HelpWindow.passwordManager (class method)</h4>
-<b>passwordManager</b>(<i></i>)
-<p>
-        Class method to get a reference to the password manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the password manager (PasswordManager)
-</dd>
-</dl><a NAME="HelpWindow.personalInformationManager" ID="HelpWindow.personalInformationManager"></a>
-<h4>HelpWindow.personalInformationManager (class method)</h4>
-<b>personalInformationManager</b>(<i></i>)
-<p>
-        Class method to get a reference to the personal information manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the personal information manager
-            (PersonalInformationManager)
-</dd>
-</dl><a NAME="HelpWindow.setUseQtHelp" ID="HelpWindow.setUseQtHelp"></a>
-<h4>HelpWindow.setUseQtHelp (class method)</h4>
-<b>setUseQtHelp</b>(<i>use</i>)
-<p>
-        Class method to set the QtHelp usage.
-</p><dl>
-<dt><i>use</i></dt>
-<dd>
-flag indicating usage (boolean)
-</dd>
-</dl><a NAME="HelpWindow.showNotification" ID="HelpWindow.showNotification"></a>
-<h4>HelpWindow.showNotification (class method)</h4>
-<b>showNotification</b>(<i>icon, heading, text</i>)
-<p>
-        Class method to show a desktop notification.
-</p><dl>
-<dt><i>icon</i></dt>
-<dd>
-icon to be shown in the notification (QPixmap)
-</dd><dt><i>heading</i></dt>
-<dd>
-heading of the notification (string)
-</dd><dt><i>text</i></dt>
-<dd>
-text of the notification (string)
-</dd>
-</dl><a NAME="HelpWindow.speedDial" ID="HelpWindow.speedDial"></a>
-<h4>HelpWindow.speedDial (class method)</h4>
-<b>speedDial</b>(<i></i>)
-<p>
-        Class methdo to get a reference to the speed dial.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the speed dial (SpeedDial)
-</dd>
-</dl><a NAME="HelpWindow.syncManager" ID="HelpWindow.syncManager"></a>
-<h4>HelpWindow.syncManager (class method)</h4>
-<b>syncManager</b>(<i></i>)
-<p>
-        Class method to get a reference to the data synchronization manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the data synchronization manager (SyncManager)
-</dd>
-</dl><a NAME="HelpWindow.userAgentsManager" ID="HelpWindow.userAgentsManager"></a>
-<h4>HelpWindow.userAgentsManager (class method)</h4>
-<b>userAgentsManager</b>(<i></i>)
-<p>
-        Class method to get a reference to the user agents manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the user agents manager (UserAgentManager)
-</dd>
-</dl><a NAME="HelpWindow.zoomManager" ID="HelpWindow.zoomManager"></a>
-<h4>HelpWindow.zoomManager (class method)</h4>
-<b>zoomManager</b>(<i></i>)
-<p>
-        Class method to get a reference to the zoom values manager.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the zoom values manager
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-ZoomManager
-</dd>
-</dl><a NAME="HelpWindow.__init__" ID="HelpWindow.__init__"></a>
-<h4>HelpWindow (Constructor)</h4>
-<b>HelpWindow</b>(<i>home, path, parent, name, searchWord=None, qthelp=False, single=False, saname=""</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>home</i> (str)</dt>
-<dd>
-the URL to be shown
-</dd><dt><i>path</i> (str)</dt>
-<dd>
-the path of the working dir (usually '.')
-</dd><dt><i>parent</i> (QWidget)</dt>
-<dd>
-parent widget of this window
-</dd><dt><i>name</i> (str)</dt>
-<dd>
-name of this window
-</dd><dt><i>searchWord</i> (str)</dt>
-<dd>
-word to search for
-</dd><dt><i>qthelp</i> (bool)</dt>
-<dd>
-flag indicating to enable the QtHelp support
-</dd><dt><i>single</i> (bool)</dt>
-<dd>
-flag indicating to start in single application mode
-</dd><dt><i>saname</i> (str)</dt>
-<dd>
-name to be used for the single application server
-</dd>
-</dl><a NAME="HelpWindow.__about" ID="HelpWindow.__about"></a>
-<h4>HelpWindow.__about</h4>
-<b>__about</b>(<i></i>)
-<p>
-        Private slot to show the about information.
-</p><a NAME="HelpWindow.__aboutQt" ID="HelpWindow.__aboutQt"></a>
-<h4>HelpWindow.__aboutQt</h4>
-<b>__aboutQt</b>(<i></i>)
-<p>
-        Private slot to show info about Qt.
-</p><a NAME="HelpWindow.__aboutToShowSettingsMenu" ID="HelpWindow.__aboutToShowSettingsMenu"></a>
-<h4>HelpWindow.__aboutToShowSettingsMenu</h4>
-<b>__aboutToShowSettingsMenu</b>(<i></i>)
-<p>
-        Private slot to show the Settings menu.
-</p><a NAME="HelpWindow.__aboutToShowTextEncodingMenu" ID="HelpWindow.__aboutToShowTextEncodingMenu"></a>
-<h4>HelpWindow.__aboutToShowTextEncodingMenu</h4>
-<b>__aboutToShowTextEncodingMenu</b>(<i></i>)
-<p>
-        Private slot to populate the text encoding menu.
-</p><a NAME="HelpWindow.__activateCurrentBrowser" ID="HelpWindow.__activateCurrentBrowser"></a>
-<h4>HelpWindow.__activateCurrentBrowser</h4>
-<b>__activateCurrentBrowser</b>(<i></i>)
-<p>
-        Private slot to activate the current browser.
-</p><a NAME="HelpWindow.__activateDock" ID="HelpWindow.__activateDock"></a>
-<h4>HelpWindow.__activateDock</h4>
-<b>__activateDock</b>(<i>widget</i>)
-<p>
-        Private method to activate the dock widget of the given widget.
-</p><dl>
-<dt><i>widget</i></dt>
-<dd>
-reference to the widget to be activated (QWidget)
-</dd>
-</dl><a NAME="HelpWindow.__addBookmark" ID="HelpWindow.__addBookmark"></a>
-<h4>HelpWindow.__addBookmark</h4>
-<b>__addBookmark</b>(<i></i>)
-<p>
-        Private slot called to add the displayed file to the bookmarks.
-</p><a NAME="HelpWindow.__addBookmarkFolder" ID="HelpWindow.__addBookmarkFolder"></a>
-<h4>HelpWindow.__addBookmarkFolder</h4>
-<b>__addBookmarkFolder</b>(<i></i>)
-<p>
-        Private slot to add a new bookmarks folder.
-</p><a NAME="HelpWindow.__appFocusChanged" ID="HelpWindow.__appFocusChanged"></a>
-<h4>HelpWindow.__appFocusChanged</h4>
-<b>__appFocusChanged</b>(<i>old, now</i>)
-<p>
-        Private slot to handle a change of the focus.
-</p><dl>
-<dt><i>old</i></dt>
-<dd>
-reference to the widget, that lost focus (QWidget or None)
-</dd><dt><i>now</i></dt>
-<dd>
-reference to the widget having the focus (QWidget or None)
-</dd>
-</dl><a NAME="HelpWindow.__backward" ID="HelpWindow.__backward"></a>
-<h4>HelpWindow.__backward</h4>
-<b>__backward</b>(<i></i>)
-<p>
-        Private slot called to handle the backward action.
-</p><a NAME="HelpWindow.__clearIconsDatabase" ID="HelpWindow.__clearIconsDatabase"></a>
-<h4>HelpWindow.__clearIconsDatabase</h4>
-<b>__clearIconsDatabase</b>(<i></i>)
-<p>
-        Private slot to clear the icons databse.
-</p><a NAME="HelpWindow.__clearPrivateData" ID="HelpWindow.__clearPrivateData"></a>
-<h4>HelpWindow.__clearPrivateData</h4>
-<b>__clearPrivateData</b>(<i></i>)
-<p>
-        Private slot to clear the private data.
-</p><a NAME="HelpWindow.__closeAllWindows" ID="HelpWindow.__closeAllWindows"></a>
-<h4>HelpWindow.__closeAllWindows</h4>
-<b>__closeAllWindows</b>(<i></i>)
-<p>
-        Private slot to close all windows.
-</p><a NAME="HelpWindow.__closeNetworkMonitor" ID="HelpWindow.__closeNetworkMonitor"></a>
-<h4>HelpWindow.__closeNetworkMonitor</h4>
-<b>__closeNetworkMonitor</b>(<i></i>)
-<p>
-        Private slot to close the network monitor dialog.
-</p><a NAME="HelpWindow.__configShortcuts" ID="HelpWindow.__configShortcuts"></a>
-<h4>HelpWindow.__configShortcuts</h4>
-<b>__configShortcuts</b>(<i></i>)
-<p>
-        Private slot to configure the keyboard shortcuts.
-</p><a NAME="HelpWindow.__copy" ID="HelpWindow.__copy"></a>
-<h4>HelpWindow.__copy</h4>
-<b>__copy</b>(<i></i>)
-<p>
-        Private slot called to handle the copy action.
-</p><a NAME="HelpWindow.__createTextEncodingAction" ID="HelpWindow.__createTextEncodingAction"></a>
-<h4>HelpWindow.__createTextEncodingAction</h4>
-<b>__createTextEncodingAction</b>(<i>codec, defaultCodec, parentMenu</i>)
-<p>
-        Private method to create an action for the text encoding menu.
-</p><dl>
-<dt><i>codec</i> (str)</dt>
-<dd>
-name of the codec to create an action for
-</dd><dt><i>defaultCodec</i> (str)</dt>
-<dd>
-name of the default codec
-</dd><dt><i>parentMenu</i> (QMenu)</dt>
-<dd>
-reference to the parent menu
-</dd>
-</dl><a NAME="HelpWindow.__createTextEncodingSubmenu" ID="HelpWindow.__createTextEncodingSubmenu"></a>
-<h4>HelpWindow.__createTextEncodingSubmenu</h4>
-<b>__createTextEncodingSubmenu</b>(<i>title, codecNames, parentMenu</i>)
-<p>
-        Private method to create a text encoding sub menu.
-</p><dl>
-<dt><i>title</i> (str)</dt>
-<dd>
-title of the menu
-</dd><dt><i>codecNames</i> (list of str)</dt>
-<dd>
-list of codec names for the menu
-</dd><dt><i>parentMenu</i> (QMenu)</dt>
-<dd>
-reference to the parent menu
-</dd>
-</dl><a NAME="HelpWindow.__currentChanged" ID="HelpWindow.__currentChanged"></a>
-<h4>HelpWindow.__currentChanged</h4>
-<b>__currentChanged</b>(<i>index</i>)
-<p>
-        Private slot to handle the currentChanged signal.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the current tab (integer)
-</dd>
-</dl><a NAME="HelpWindow.__del__" ID="HelpWindow.__del__"></a>
-<h4>HelpWindow.__del__</h4>
-<b>__del__</b>(<i></i>)
-<p>
-        Special method called during object destruction.
-</p><p>
-        Note: This empty variant seems to get rid of the Qt message
-        'Warning: QBasicTimer::start: QBasicTimer can only be used with
-        threads started with QThread'
-</p><a NAME="HelpWindow.__docsInstalled" ID="HelpWindow.__docsInstalled"></a>
-<h4>HelpWindow.__docsInstalled</h4>
-<b>__docsInstalled</b>(<i>installed</i>)
-<p>
-        Private slot handling the end of documentation installation.
-</p><dl>
-<dt><i>installed</i></dt>
-<dd>
-flag indicating that documents were installed
-            (boolean)
-</dd>
-</dl><a NAME="HelpWindow.__exportShortcuts" ID="HelpWindow.__exportShortcuts"></a>
-<h4>HelpWindow.__exportShortcuts</h4>
-<b>__exportShortcuts</b>(<i></i>)
-<p>
-        Private slot to export the keyboard shortcuts.
-</p><a NAME="HelpWindow.__feedsManagerClosed" ID="HelpWindow.__feedsManagerClosed"></a>
-<h4>HelpWindow.__feedsManagerClosed</h4>
-<b>__feedsManagerClosed</b>(<i>feedsManager</i>)
-<p>
-        Private slot to handle closing the feeds manager dialog.
-</p><dl>
-<dt><i>feedsManager</i> (FeedsManager)</dt>
-<dd>
-reference to the feeds manager object
-</dd>
-</dl><a NAME="HelpWindow.__filterQtHelpDocumentation" ID="HelpWindow.__filterQtHelpDocumentation"></a>
-<h4>HelpWindow.__filterQtHelpDocumentation</h4>
-<b>__filterQtHelpDocumentation</b>(<i>customFilter</i>)
-<p>
-        Private slot to filter the QtHelp documentation.
-</p><dl>
-<dt><i>customFilter</i></dt>
-<dd>
-name of filter to be applied (string)
-</dd>
-</dl><a NAME="HelpWindow.__find" ID="HelpWindow.__find"></a>
-<h4>HelpWindow.__find</h4>
-<b>__find</b>(<i></i>)
-<p>
-        Private slot to handle the find action.
-</p><p>
-        It opens the search dialog in order to perform the various
-        search actions and to collect the various search info.
-</p><a NAME="HelpWindow.__forward" ID="HelpWindow.__forward"></a>
-<h4>HelpWindow.__forward</h4>
-<b>__forward</b>(<i></i>)
-<p>
-        Private slot called to handle the forward action.
-</p><a NAME="HelpWindow.__hideIndexWindow" ID="HelpWindow.__hideIndexWindow"></a>
-<h4>HelpWindow.__hideIndexWindow</h4>
-<b>__hideIndexWindow</b>(<i></i>)
-<p>
-        Private method to hide the index window.
-</p><a NAME="HelpWindow.__hideSearchWindow" ID="HelpWindow.__hideSearchWindow"></a>
-<h4>HelpWindow.__hideSearchWindow</h4>
-<b>__hideSearchWindow</b>(<i></i>)
-<p>
-        Private method to hide the search window.
-</p><a NAME="HelpWindow.__hideTocWindow" ID="HelpWindow.__hideTocWindow"></a>
-<h4>HelpWindow.__hideTocWindow</h4>
-<b>__hideTocWindow</b>(<i></i>)
-<p>
-        Private method to hide the table of contents window.
-</p><a NAME="HelpWindow.__home" ID="HelpWindow.__home"></a>
-<h4>HelpWindow.__home</h4>
-<b>__home</b>(<i></i>)
-<p>
-        Private slot called to handle the home action.
-</p><a NAME="HelpWindow.__importShortcuts" ID="HelpWindow.__importShortcuts"></a>
-<h4>HelpWindow.__importShortcuts</h4>
-<b>__importShortcuts</b>(<i></i>)
-<p>
-        Private slot to import the keyboard shortcuts.
-</p><a NAME="HelpWindow.__indexingFinished" ID="HelpWindow.__indexingFinished"></a>
-<h4>HelpWindow.__indexingFinished</h4>
-<b>__indexingFinished</b>(<i></i>)
-<p>
-        Private slot to handle the start of the indexing process.
-</p><a NAME="HelpWindow.__indexingStarted" ID="HelpWindow.__indexingStarted"></a>
-<h4>HelpWindow.__indexingStarted</h4>
-<b>__indexingStarted</b>(<i></i>)
-<p>
-        Private slot to handle the start of the indexing process.
-</p><a NAME="HelpWindow.__initActions" ID="HelpWindow.__initActions"></a>
-<h4>HelpWindow.__initActions</h4>
-<b>__initActions</b>(<i></i>)
-<p>
-        Private method to define the user interface actions.
-</p><a NAME="HelpWindow.__initHelpDb" ID="HelpWindow.__initHelpDb"></a>
-<h4>HelpWindow.__initHelpDb</h4>
-<b>__initHelpDb</b>(<i></i>)
-<p>
-        Private slot to initialize the documentation database.
-</p><a NAME="HelpWindow.__initMenus" ID="HelpWindow.__initMenus"></a>
-<h4>HelpWindow.__initMenus</h4>
-<b>__initMenus</b>(<i></i>)
-<p>
-        Private method to create the menus.
-</p><a NAME="HelpWindow.__initToolbars" ID="HelpWindow.__initToolbars"></a>
-<h4>HelpWindow.__initToolbars</h4>
-<b>__initToolbars</b>(<i></i>)
-<p>
-        Private method to create the toolbars.
-</p><a NAME="HelpWindow.__initWebSettings" ID="HelpWindow.__initWebSettings"></a>
-<h4>HelpWindow.__initWebSettings</h4>
-<b>__initWebSettings</b>(<i></i>)
-<p>
-        Private method to set the global web settings.
-</p><a NAME="HelpWindow.__isFullScreen" ID="HelpWindow.__isFullScreen"></a>
-<h4>HelpWindow.__isFullScreen</h4>
-<b>__isFullScreen</b>(<i></i>)
-<p>
-        Private method to determine, if the window is in full screen mode.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating full screen mode (boolean)
-</dd>
-</dl><a NAME="HelpWindow.__linkActivated" ID="HelpWindow.__linkActivated"></a>
-<h4>HelpWindow.__linkActivated</h4>
-<b>__linkActivated</b>(<i>url</i>)
-<p>
-        Private slot to handle the selection of a link in the TOC window.
-</p><dl>
-<dt><i>url</i> (QUrl)</dt>
-<dd>
-URL to be shown
-</dd>
-</dl><a NAME="HelpWindow.__linksActivated" ID="HelpWindow.__linksActivated"></a>
-<h4>HelpWindow.__linksActivated</h4>
-<b>__linksActivated</b>(<i>links, keyword</i>)
-<p>
-        Private slot to select a topic to be shown.
-</p><dl>
-<dt><i>links</i></dt>
-<dd>
-dictionary with help topic as key (string) and
-            URL as value (QUrl)
-</dd><dt><i>keyword</i></dt>
-<dd>
-keyword for the link set (string)
-</dd>
-</dl><a NAME="HelpWindow.__lookForNewDocumentation" ID="HelpWindow.__lookForNewDocumentation"></a>
-<h4>HelpWindow.__lookForNewDocumentation</h4>
-<b>__lookForNewDocumentation</b>(<i></i>)
-<p>
-        Private slot to look for new documentation to be loaded into the
-        help database.
-</p><a NAME="HelpWindow.__manageQtHelpDocumentation" ID="HelpWindow.__manageQtHelpDocumentation"></a>
-<h4>HelpWindow.__manageQtHelpDocumentation</h4>
-<b>__manageQtHelpDocumentation</b>(<i></i>)
-<p>
-        Private slot to manage the QtHelp documentation database.
-</p><a NAME="HelpWindow.__manageQtHelpFilters" ID="HelpWindow.__manageQtHelpFilters"></a>
-<h4>HelpWindow.__manageQtHelpFilters</h4>
-<b>__manageQtHelpFilters</b>(<i></i>)
-<p>
-        Private slot to manage the QtHelp filters.
-</p><a NAME="HelpWindow.__navigationMenuActionTriggered" ID="HelpWindow.__navigationMenuActionTriggered"></a>
-<h4>HelpWindow.__navigationMenuActionTriggered</h4>
-<b>__navigationMenuActionTriggered</b>(<i>act</i>)
-<p>
-        Private slot to go to the selected page.
-</p><dl>
-<dt><i>act</i></dt>
-<dd>
-reference to the action selected in the navigation menu
-            (QAction)
-</dd>
-</dl><a NAME="HelpWindow.__nextTab" ID="HelpWindow.__nextTab"></a>
-<h4>HelpWindow.__nextTab</h4>
-<b>__nextTab</b>(<i></i>)
-<p>
-        Private slot used to show the next tab.
-</p><a NAME="HelpWindow.__openFile" ID="HelpWindow.__openFile"></a>
-<h4>HelpWindow.__openFile</h4>
-<b>__openFile</b>(<i></i>)
-<p>
-        Private slot called to open a file.
-</p><a NAME="HelpWindow.__openFileNewTab" ID="HelpWindow.__openFileNewTab"></a>
-<h4>HelpWindow.__openFileNewTab</h4>
-<b>__openFileNewTab</b>(<i></i>)
-<p>
-        Private slot called to open a file in a new tab.
-</p><a NAME="HelpWindow.__prevTab" ID="HelpWindow.__prevTab"></a>
-<h4>HelpWindow.__prevTab</h4>
-<b>__prevTab</b>(<i></i>)
-<p>
-        Private slot used to show the previous tab.
-</p><a NAME="HelpWindow.__privateBrowsing" ID="HelpWindow.__privateBrowsing"></a>
-<h4>HelpWindow.__privateBrowsing</h4>
-<b>__privateBrowsing</b>(<i></i>)
-<p>
-        Private slot to switch private browsing.
-</p><a NAME="HelpWindow.__reload" ID="HelpWindow.__reload"></a>
-<h4>HelpWindow.__reload</h4>
-<b>__reload</b>(<i></i>)
-<p>
-        Private slot called to handle the reload action.
-</p><a NAME="HelpWindow.__removeOldDocumentation" ID="HelpWindow.__removeOldDocumentation"></a>
-<h4>HelpWindow.__removeOldDocumentation</h4>
-<b>__removeOldDocumentation</b>(<i></i>)
-<p>
-        Private slot to remove non-existing documentation from the help engine.
-</p><a NAME="HelpWindow.__saLoadUrl" ID="HelpWindow.__saLoadUrl"></a>
-<h4>HelpWindow.__saLoadUrl</h4>
-<b>__saLoadUrl</b>(<i>urlStr</i>)
-<p>
-        Private slot to load an URL received via the single application
-        protocol.
-</p><dl>
-<dt><i>urlStr</i> (str)</dt>
-<dd>
-URL to be loaded
-</dd>
-</dl><a NAME="HelpWindow.__saNewTab" ID="HelpWindow.__saNewTab"></a>
-<h4>HelpWindow.__saNewTab</h4>
-<b>__saNewTab</b>(<i>urlStr</i>)
-<p>
-        Private slot to load an URL received via the single application
-        protocol in a new tab.
-</p><dl>
-<dt><i>urlStr</i> (str)</dt>
-<dd>
-URL to be loaded
-</dd>
-</dl><a NAME="HelpWindow.__saSearchWord" ID="HelpWindow.__saSearchWord"></a>
-<h4>HelpWindow.__saSearchWord</h4>
-<b>__saSearchWord</b>(<i>word</i>)
-<p>
-        Private slot to search for the given word.
-</p><dl>
-<dt><i>word</i> (str)</dt>
-<dd>
-word to be searched for
-</dd>
-</dl><a NAME="HelpWindow.__savePageAs" ID="HelpWindow.__savePageAs"></a>
-<h4>HelpWindow.__savePageAs</h4>
-<b>__savePageAs</b>(<i></i>)
-<p>
-        Private slot to save the current page.
-</p><a NAME="HelpWindow.__savePageScreen" ID="HelpWindow.__savePageScreen"></a>
-<h4>HelpWindow.__savePageScreen</h4>
-<b>__savePageScreen</b>(<i>visibleOnly=False</i>)
-<p>
-        Private slot to save the current page as a screen shot.
-</p><dl>
-<dt><i>visibleOnly</i></dt>
-<dd>
-flag indicating to just save the visible part
-            of the page (boolean)
-</dd>
-</dl><a NAME="HelpWindow.__saveVisiblePageScreen" ID="HelpWindow.__saveVisiblePageScreen"></a>
-<h4>HelpWindow.__saveVisiblePageScreen</h4>
-<b>__saveVisiblePageScreen</b>(<i></i>)
-<p>
-        Private slot to save the visible part of the current page as a screen
-        shot.
-</p><a NAME="HelpWindow.__searchForWord" ID="HelpWindow.__searchForWord"></a>
-<h4>HelpWindow.__searchForWord</h4>
-<b>__searchForWord</b>(<i></i>)
-<p>
-        Private slot to search for a word.
-</p><a NAME="HelpWindow.__setIconDatabasePath" ID="HelpWindow.__setIconDatabasePath"></a>
-<h4>HelpWindow.__setIconDatabasePath</h4>
-<b>__setIconDatabasePath</b>(<i>enable=True</i>)
-<p>
-        Private method to set the favicons path.
-</p><dl>
-<dt><i>enable</i></dt>
-<dd>
-flag indicating to enabled icon storage (boolean)
-</dd>
-</dl><a NAME="HelpWindow.__setTextEncoding" ID="HelpWindow.__setTextEncoding"></a>
-<h4>HelpWindow.__setTextEncoding</h4>
-<b>__setTextEncoding</b>(<i>act</i>)
-<p>
-        Private slot to set the selected text encoding as the default for
-        this session.
-</p><dl>
-<dt><i>act</i></dt>
-<dd>
-reference to the selected action (QAction)
-</dd>
-</dl><a NAME="HelpWindow.__setupFilterCombo" ID="HelpWindow.__setupFilterCombo"></a>
-<h4>HelpWindow.__setupFilterCombo</h4>
-<b>__setupFilterCombo</b>(<i></i>)
-<p>
-        Private slot to setup the filter combo box.
-</p><a NAME="HelpWindow.__showAcceptedLanguages" ID="HelpWindow.__showAcceptedLanguages"></a>
-<h4>HelpWindow.__showAcceptedLanguages</h4>
-<b>__showAcceptedLanguages</b>(<i></i>)
-<p>
-        Private slot to configure the accepted languages for web pages.
-</p><a NAME="HelpWindow.__showAdBlockDialog" ID="HelpWindow.__showAdBlockDialog"></a>
-<h4>HelpWindow.__showAdBlockDialog</h4>
-<b>__showAdBlockDialog</b>(<i></i>)
-<p>
-        Private slot to show the AdBlock configuration dialog.
-</p><a NAME="HelpWindow.__showBackMenu" ID="HelpWindow.__showBackMenu"></a>
-<h4>HelpWindow.__showBackMenu</h4>
-<b>__showBackMenu</b>(<i></i>)
-<p>
-        Private slot showing the backwards navigation menu.
-</p><a NAME="HelpWindow.__showBookmarksDialog" ID="HelpWindow.__showBookmarksDialog"></a>
-<h4>HelpWindow.__showBookmarksDialog</h4>
-<b>__showBookmarksDialog</b>(<i></i>)
-<p>
-        Private slot to show the bookmarks dialog.
-</p><a NAME="HelpWindow.__showCertificatesDialog" ID="HelpWindow.__showCertificatesDialog"></a>
-<h4>HelpWindow.__showCertificatesDialog</h4>
-<b>__showCertificatesDialog</b>(<i></i>)
-<p>
-        Private slot to show the certificates management dialog.
-</p><a NAME="HelpWindow.__showClickToFlashDialog" ID="HelpWindow.__showClickToFlashDialog"></a>
-<h4>HelpWindow.__showClickToFlashDialog</h4>
-<b>__showClickToFlashDialog</b>(<i></i>)
-<p>
-        Private slot to open the ClickToFlash whitelist configuration dialog.
-</p><a NAME="HelpWindow.__showCookiesConfiguration" ID="HelpWindow.__showCookiesConfiguration"></a>
-<h4>HelpWindow.__showCookiesConfiguration</h4>
-<b>__showCookiesConfiguration</b>(<i></i>)
-<p>
-        Private slot to configure the cookies handling.
-</p><a NAME="HelpWindow.__showDownloadsWindow" ID="HelpWindow.__showDownloadsWindow"></a>
-<h4>HelpWindow.__showDownloadsWindow</h4>
-<b>__showDownloadsWindow</b>(<i></i>)
-<p>
-        Private slot to show the downloads dialog.
-</p><a NAME="HelpWindow.__showEnginesConfigurationDialog" ID="HelpWindow.__showEnginesConfigurationDialog"></a>
-<h4>HelpWindow.__showEnginesConfigurationDialog</h4>
-<b>__showEnginesConfigurationDialog</b>(<i></i>)
-<p>
-        Private slot to show the search engines configuration dialog.
-</p><a NAME="HelpWindow.__showFeaturePermissionDialog" ID="HelpWindow.__showFeaturePermissionDialog"></a>
-<h4>HelpWindow.__showFeaturePermissionDialog</h4>
-<b>__showFeaturePermissionDialog</b>(<i></i>)
-<p>
-        Private slot to show the feature permission dialog.
-</p><a NAME="HelpWindow.__showFeedsManager" ID="HelpWindow.__showFeedsManager"></a>
-<h4>HelpWindow.__showFeedsManager</h4>
-<b>__showFeedsManager</b>(<i></i>)
-<p>
-        Private slot to show the feeds manager dialog.
-</p><a NAME="HelpWindow.__showFlashCookiesManagement" ID="HelpWindow.__showFlashCookiesManagement"></a>
-<h4>HelpWindow.__showFlashCookiesManagement</h4>
-<b>__showFlashCookiesManagement</b>(<i></i>)
-<p>
-        Private slot to show the flash cookies management dialog.
-</p><a NAME="HelpWindow.__showForwardMenu" ID="HelpWindow.__showForwardMenu"></a>
-<h4>HelpWindow.__showForwardMenu</h4>
-<b>__showForwardMenu</b>(<i></i>)
-<p>
-        Private slot showing the forwards navigation menu.
-</p><a NAME="HelpWindow.__showGreaseMonkeyConfigDialog" ID="HelpWindow.__showGreaseMonkeyConfigDialog"></a>
-<h4>HelpWindow.__showGreaseMonkeyConfigDialog</h4>
-<b>__showGreaseMonkeyConfigDialog</b>(<i></i>)
-<p>
-        Private slot to show the GreaseMonkey scripts configuration dialog.
-</p><a NAME="HelpWindow.__showIndexWindow" ID="HelpWindow.__showIndexWindow"></a>
-<h4>HelpWindow.__showIndexWindow</h4>
-<b>__showIndexWindow</b>(<i></i>)
-<p>
-        Private method to show the index window.
-</p><a NAME="HelpWindow.__showInstallationError" ID="HelpWindow.__showInstallationError"></a>
-<h4>HelpWindow.__showInstallationError</h4>
-<b>__showInstallationError</b>(<i>message</i>)
-<p>
-        Private slot to show installation errors.
-</p><dl>
-<dt><i>message</i></dt>
-<dd>
-message to be shown (string)
-</dd>
-</dl><a NAME="HelpWindow.__showNetworkMonitor" ID="HelpWindow.__showNetworkMonitor"></a>
-<h4>HelpWindow.__showNetworkMonitor</h4>
-<b>__showNetworkMonitor</b>(<i></i>)
-<p>
-        Private slot to show the network monitor dialog.
-</p><a NAME="HelpWindow.__showOfflineStorageConfiguration" ID="HelpWindow.__showOfflineStorageConfiguration"></a>
-<h4>HelpWindow.__showOfflineStorageConfiguration</h4>
-<b>__showOfflineStorageConfiguration</b>(<i></i>)
-<p>
-        Private slot to configure the offline storage.
-</p><a NAME="HelpWindow.__showPageSource" ID="HelpWindow.__showPageSource"></a>
-<h4>HelpWindow.__showPageSource</h4>
-<b>__showPageSource</b>(<i></i>)
-<p>
-        Private slot to show the source of the current page in  an editor.
-</p><a NAME="HelpWindow.__showPasswordsDialog" ID="HelpWindow.__showPasswordsDialog"></a>
-<h4>HelpWindow.__showPasswordsDialog</h4>
-<b>__showPasswordsDialog</b>(<i></i>)
-<p>
-        Private slot to show the passwords management dialog.
-</p><a NAME="HelpWindow.__showPersonalInformationDialog" ID="HelpWindow.__showPersonalInformationDialog"></a>
-<h4>HelpWindow.__showPersonalInformationDialog</h4>
-<b>__showPersonalInformationDialog</b>(<i></i>)
-<p>
-        Private slot to show the Personal Information configuration dialog.
-</p><a NAME="HelpWindow.__showPreferences" ID="HelpWindow.__showPreferences"></a>
-<h4>HelpWindow.__showPreferences</h4>
-<b>__showPreferences</b>(<i></i>)
-<p>
-        Private slot to set the preferences.
-</p><a NAME="HelpWindow.__showSearchWindow" ID="HelpWindow.__showSearchWindow"></a>
-<h4>HelpWindow.__showSearchWindow</h4>
-<b>__showSearchWindow</b>(<i></i>)
-<p>
-        Private method to show the search window.
-</p><a NAME="HelpWindow.__showSiteinfoDialog" ID="HelpWindow.__showSiteinfoDialog"></a>
-<h4>HelpWindow.__showSiteinfoDialog</h4>
-<b>__showSiteinfoDialog</b>(<i></i>)
-<p>
-        Private slot to show the site info dialog.
-</p><a NAME="HelpWindow.__showSyncDialog" ID="HelpWindow.__showSyncDialog"></a>
-<h4>HelpWindow.__showSyncDialog</h4>
-<b>__showSyncDialog</b>(<i></i>)
-<p>
-        Private slot to show the synchronization dialog.
-</p><a NAME="HelpWindow.__showTocWindow" ID="HelpWindow.__showTocWindow"></a>
-<h4>HelpWindow.__showTocWindow</h4>
-<b>__showTocWindow</b>(<i></i>)
-<p>
-        Private method to show the table of contents window.
-</p><a NAME="HelpWindow.__showUserAgentsDialog" ID="HelpWindow.__showUserAgentsDialog"></a>
-<h4>HelpWindow.__showUserAgentsDialog</h4>
-<b>__showUserAgentsDialog</b>(<i></i>)
-<p>
-        Private slot to show the user agents management dialog.
-</p><a NAME="HelpWindow.__showZoomValuesDialog" ID="HelpWindow.__showZoomValuesDialog"></a>
-<h4>HelpWindow.__showZoomValuesDialog</h4>
-<b>__showZoomValuesDialog</b>(<i></i>)
-<p>
-        Private slot to show the zoom values management dialog.
-</p><a NAME="HelpWindow.__stopLoading" ID="HelpWindow.__stopLoading"></a>
-<h4>HelpWindow.__stopLoading</h4>
-<b>__stopLoading</b>(<i></i>)
-<p>
-        Private slot called to handle loading of the current page.
-</p><a NAME="HelpWindow.__switchTab" ID="HelpWindow.__switchTab"></a>
-<h4>HelpWindow.__switchTab</h4>
-<b>__switchTab</b>(<i></i>)
-<p>
-        Private slot used to switch between the current and the previous
-        current tab.
-</p><a NAME="HelpWindow.__syncTOC" ID="HelpWindow.__syncTOC"></a>
-<h4>HelpWindow.__syncTOC</h4>
-<b>__syncTOC</b>(<i></i>)
-<p>
-        Private slot to synchronize the TOC with the currently shown page.
-</p><a NAME="HelpWindow.__titleChanged" ID="HelpWindow.__titleChanged"></a>
-<h4>HelpWindow.__titleChanged</h4>
-<b>__titleChanged</b>(<i>browser, title</i>)
-<p>
-        Private slot called to handle a change of s browser's title.
-</p><dl>
-<dt><i>browser</i></dt>
-<dd>
-reference to the browser (HelpBrowser)
-</dd><dt><i>title</i></dt>
-<dd>
-new title (string)
-</dd>
-</dl><a NAME="HelpWindow.__userStyleSheet" ID="HelpWindow.__userStyleSheet"></a>
-<h4>HelpWindow.__userStyleSheet</h4>
-<b>__userStyleSheet</b>(<i>styleSheetFile</i>)
-<p>
-        Private method to generate the user style sheet.
-</p><dl>
-<dt><i>styleSheetFile</i></dt>
-<dd>
-name of the user style sheet file (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-style sheet (QUrl)
-</dd>
-</dl><a NAME="HelpWindow.__viewFullScreen" ID="HelpWindow.__viewFullScreen"></a>
-<h4>HelpWindow.__viewFullScreen</h4>
-<b>__viewFullScreen</b>(<i></i>)
-<p>
-        Private slot called to toggle fullscreen mode.
-</p><a NAME="HelpWindow.__virusTotalDomainReport" ID="HelpWindow.__virusTotalDomainReport"></a>
-<h4>HelpWindow.__virusTotalDomainReport</h4>
-<b>__virusTotalDomainReport</b>(<i></i>)
-<p>
-        Private slot to retrieve a domain report.
-</p><a NAME="HelpWindow.__virusTotalFileScanReport" ID="HelpWindow.__virusTotalFileScanReport"></a>
-<h4>HelpWindow.__virusTotalFileScanReport</h4>
-<b>__virusTotalFileScanReport</b>(<i>url</i>)
-<p>
-        Private slot to initiate the display of the file scan report page.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the file scan report page (string)
-</dd>
-</dl><a NAME="HelpWindow.__virusTotalIpAddressReport" ID="HelpWindow.__virusTotalIpAddressReport"></a>
-<h4>HelpWindow.__virusTotalIpAddressReport</h4>
-<b>__virusTotalIpAddressReport</b>(<i></i>)
-<p>
-        Private slot to retrieve an IP address report.
-</p><a NAME="HelpWindow.__virusTotalScanCurrentSite" ID="HelpWindow.__virusTotalScanCurrentSite"></a>
-<h4>HelpWindow.__virusTotalScanCurrentSite</h4>
-<b>__virusTotalScanCurrentSite</b>(<i></i>)
-<p>
-        Private slot to ask VirusTotal for a scan of the URL of the current
-        browser.
-</p><a NAME="HelpWindow.__virusTotalSubmitUrlError" ID="HelpWindow.__virusTotalSubmitUrlError"></a>
-<h4>HelpWindow.__virusTotalSubmitUrlError</h4>
-<b>__virusTotalSubmitUrlError</b>(<i>msg</i>)
-<p>
-        Private slot to handle an URL scan submission error.
-</p><dl>
-<dt><i>msg</i></dt>
-<dd>
-error message (str)
-</dd>
-</dl><a NAME="HelpWindow.__virusTotalUrlScanReport" ID="HelpWindow.__virusTotalUrlScanReport"></a>
-<h4>HelpWindow.__virusTotalUrlScanReport</h4>
-<b>__virusTotalUrlScanReport</b>(<i>url</i>)
-<p>
-        Private slot to initiate the display of the URL scan report page.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the URL scan report page (string)
-</dd>
-</dl><a NAME="HelpWindow.__warning" ID="HelpWindow.__warning"></a>
-<h4>HelpWindow.__warning</h4>
-<b>__warning</b>(<i>msg</i>)
-<p>
-        Private slot handling warnings from the help engine.
-</p><dl>
-<dt><i>msg</i></dt>
-<dd>
-message sent by the help  engine (string)
-</dd>
-</dl><a NAME="HelpWindow.__whatsThis" ID="HelpWindow.__whatsThis"></a>
-<h4>HelpWindow.__whatsThis</h4>
-<b>__whatsThis</b>(<i></i>)
-<p>
-        Private slot called in to enter Whats This mode.
-</p><a NAME="HelpWindow.__zoomIn" ID="HelpWindow.__zoomIn"></a>
-<h4>HelpWindow.__zoomIn</h4>
-<b>__zoomIn</b>(<i></i>)
-<p>
-        Private slot called to handle the zoom in action.
-</p><a NAME="HelpWindow.__zoomOut" ID="HelpWindow.__zoomOut"></a>
-<h4>HelpWindow.__zoomOut</h4>
-<b>__zoomOut</b>(<i></i>)
-<p>
-        Private slot called to handle the zoom out action.
-</p><a NAME="HelpWindow.__zoomReset" ID="HelpWindow.__zoomReset"></a>
-<h4>HelpWindow.__zoomReset</h4>
-<b>__zoomReset</b>(<i></i>)
-<p>
-        Private slot called to handle the zoom reset action.
-</p><a NAME="HelpWindow.__zoomTextOnly" ID="HelpWindow.__zoomTextOnly"></a>
-<h4>HelpWindow.__zoomTextOnly</h4>
-<b>__zoomTextOnly</b>(<i>textOnly</i>)
-<p>
-        Private slot called to handle the zoom text only action.
-</p><dl>
-<dt><i>textOnly</i></dt>
-<dd>
-flag indicating to zoom text only (boolean)
-</dd>
-</dl><a NAME="HelpWindow.__zoomValueChanged" ID="HelpWindow.__zoomValueChanged"></a>
-<h4>HelpWindow.__zoomValueChanged</h4>
-<b>__zoomValueChanged</b>(<i>value</i>)
-<p>
-        Private slot to handle value changes of the zoom widget.
-</p><dl>
-<dt><i>value</i></dt>
-<dd>
-zoom value (integer)
-</dd>
-</dl><a NAME="HelpWindow.adBlockIcon" ID="HelpWindow.adBlockIcon"></a>
-<h4>HelpWindow.adBlockIcon</h4>
-<b>adBlockIcon</b>(<i></i>)
-<p>
-        Public method to get a reference to the AdBlock icon.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the AdBlock icon (AdBlockIcon)
-</dd>
-</dl><a NAME="HelpWindow.bookmarkAll" ID="HelpWindow.bookmarkAll"></a>
-<h4>HelpWindow.bookmarkAll</h4>
-<b>bookmarkAll</b>(<i></i>)
-<p>
-        Public slot to bookmark all open tabs.
-</p><a NAME="HelpWindow.browserAt" ID="HelpWindow.browserAt"></a>
-<h4>HelpWindow.browserAt</h4>
-<b>browserAt</b>(<i>index</i>)
-<p>
-        Public method to get a reference to the help browser with the given
-        index.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the browser to get (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the indexed help browser (HelpBrowser)
-</dd>
-</dl><a NAME="HelpWindow.browsers" ID="HelpWindow.browsers"></a>
-<h4>HelpWindow.browsers</h4>
-<b>browsers</b>(<i></i>)
-<p>
-        Public method to get a list of references to all help browsers.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of references to help browsers (list of HelpBrowser)
-</dd>
-</dl><a NAME="HelpWindow.closeEvent" ID="HelpWindow.closeEvent"></a>
-<h4>HelpWindow.closeEvent</h4>
-<b>closeEvent</b>(<i>e</i>)
-<p>
-        Protected event handler for the close event.
-</p><dl>
-<dt><i>e</i></dt>
-<dd>
-the close event (QCloseEvent)
-                <br />This event is simply accepted after the history has been
-                saved and all window references have been deleted.
-</dd>
-</dl><a NAME="HelpWindow.currentBrowser" ID="HelpWindow.currentBrowser"></a>
-<h4>HelpWindow.currentBrowser</h4>
-<b>currentBrowser</b>(<i></i>)
-<p>
-        Public method to get a reference to the current help browser.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the current help browser (HelpBrowser)
-</dd>
-</dl><a NAME="HelpWindow.eventKeyboardModifiers" ID="HelpWindow.eventKeyboardModifiers"></a>
-<h4>HelpWindow.eventKeyboardModifiers</h4>
-<b>eventKeyboardModifiers</b>(<i></i>)
-<p>
-        Public method to get the last recorded keyboard modifiers.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-keyboard modifiers (Qt.KeyboardModifiers)
-</dd>
-</dl><a NAME="HelpWindow.eventMouseButtons" ID="HelpWindow.eventMouseButtons"></a>
-<h4>HelpWindow.eventMouseButtons</h4>
-<b>eventMouseButtons</b>(<i></i>)
-<p>
-        Public method to get the last recorded mouse buttons.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-mouse buttons (Qt.MouseButtons)
-</dd>
-</dl><a NAME="HelpWindow.getActions" ID="HelpWindow.getActions"></a>
-<h4>HelpWindow.getActions</h4>
-<b>getActions</b>(<i></i>)
-<p>
-        Public method to get a list of all actions.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of all actions (list of E5Action)
-</dd>
-</dl><a NAME="HelpWindow.getActionsCategory" ID="HelpWindow.getActionsCategory"></a>
-<h4>HelpWindow.getActionsCategory</h4>
-<b>getActionsCategory</b>(<i></i>)
-<p>
-        Public method to get the category of the defined actions.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-category of the actions
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl><a NAME="HelpWindow.getSourceFileList" ID="HelpWindow.getSourceFileList"></a>
-<h4>HelpWindow.getSourceFileList</h4>
-<b>getSourceFileList</b>(<i></i>)
-<p>
-        Public method to get a list of all opened source files.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-dictionary with tab id as key and host/namespace as value
-</dd>
-</dl><a NAME="HelpWindow.getWindow" ID="HelpWindow.getWindow"></a>
-<h4>HelpWindow.getWindow</h4>
-<b>getWindow</b>(<i></i>)
-<p>
-        Public method to get a reference to the most recent active help window.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to most recent help window
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-HelpWindow
-</dd>
-</dl><a NAME="HelpWindow.keyPressEvent" ID="HelpWindow.keyPressEvent"></a>
-<h4>HelpWindow.keyPressEvent</h4>
-<b>keyPressEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle key presses.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the key press event (QKeyEvent)
-</dd>
-</dl><a NAME="HelpWindow.masterPasswordChanged" ID="HelpWindow.masterPasswordChanged"></a>
-<h4>HelpWindow.masterPasswordChanged</h4>
-<b>masterPasswordChanged</b>(<i>oldPassword, newPassword, local=False</i>)
-<p>
-        Public slot to handle the change of the master password.
-</p><dl>
-<dt><i>oldPassword</i> (str)</dt>
-<dd>
-current master password
-</dd><dt><i>newPassword</i> (str)</dt>
-<dd>
-new master password
-</dd><dt><i>local</i> (bool)</dt>
-<dd>
-flag indicating being called from the local configuration
-            dialog
-</dd>
-</dl><a NAME="HelpWindow.mousePressEvent" ID="HelpWindow.mousePressEvent"></a>
-<h4>HelpWindow.mousePressEvent</h4>
-<b>mousePressEvent</b>(<i>evt</i>)
-<p>
-        Protected method called by a mouse press event.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the mouse event (QMouseEvent)
-</dd>
-</dl><a NAME="HelpWindow.newTab" ID="HelpWindow.newTab"></a>
-<h4>HelpWindow.newTab</h4>
-<b>newTab</b>(<i>link=None, requestData=None, addNextTo=None</i>)
-<p>
-        Public slot called to open a new help window tab.
-</p><dl>
-<dt><i>link</i></dt>
-<dd>
-file to be displayed in the new window (string or QUrl)
-</dd><dt><i>requestData</i></dt>
-<dd>
-tuple containing the request data (QNetworkRequest,
-            QNetworkAccessManager.Operation, QByteArray)
-</dd><dt><i>addNextTo</i></dt>
-<dd>
-reference to the browser to open the tab after
-            (HelpBrowser)
-</dd>
-</dl><a NAME="HelpWindow.newWindow" ID="HelpWindow.newWindow"></a>
-<h4>HelpWindow.newWindow</h4>
-<b>newWindow</b>(<i>link=None</i>)
-<p>
-        Public slot called to open a new help browser dialog.
-</p><dl>
-<dt><i>link</i></dt>
-<dd>
-file to be displayed in the new window (string or QUrl)
-</dd>
-</dl><a NAME="HelpWindow.openSearchManager" ID="HelpWindow.openSearchManager"></a>
-<h4>HelpWindow.openSearchManager</h4>
-<b>openSearchManager</b>(<i></i>)
-<p>
-        Public method to get a reference to the opensearch manager object.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the opensearch manager object (OpenSearchManager)
-</dd>
-</dl><a NAME="HelpWindow.openUrl" ID="HelpWindow.openUrl"></a>
-<h4>HelpWindow.openUrl</h4>
-<b>openUrl</b>(<i>url, title</i>)
-<p>
-        Public slot to load a URL from the bookmarks menu or bookmarks toolbar
-        in the current tab.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-url to be opened (QUrl)
-</dd><dt><i>title</i></dt>
-<dd>
-title of the bookmark (string)
-</dd>
-</dl><a NAME="HelpWindow.openUrlNewTab" ID="HelpWindow.openUrlNewTab"></a>
-<h4>HelpWindow.openUrlNewTab</h4>
-<b>openUrlNewTab</b>(<i>url, title</i>)
-<p>
-        Public slot to load a URL from the bookmarks menu or bookmarks toolbar
-        in a new tab.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-url to be opened (QUrl)
-</dd><dt><i>title</i></dt>
-<dd>
-title of the bookmark (string)
-</dd>
-</dl><a NAME="HelpWindow.preferencesChanged" ID="HelpWindow.preferencesChanged"></a>
-<h4>HelpWindow.preferencesChanged</h4>
-<b>preferencesChanged</b>(<i></i>)
-<p>
-        Public slot to handle a change of preferences.
-</p><a NAME="HelpWindow.reloadUserStyleSheet" ID="HelpWindow.reloadUserStyleSheet"></a>
-<h4>HelpWindow.reloadUserStyleSheet</h4>
-<b>reloadUserStyleSheet</b>(<i></i>)
-<p>
-        Public method to reload the user style sheet.
-</p><a NAME="HelpWindow.requestVirusTotalScan" ID="HelpWindow.requestVirusTotalScan"></a>
-<h4>HelpWindow.requestVirusTotalScan</h4>
-<b>requestVirusTotalScan</b>(<i>url</i>)
-<p>
-        Public method to submit a request to scan an URL by VirusTotal.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to be scanned (QUrl)
-</dd>
-</dl><a NAME="HelpWindow.search" ID="HelpWindow.search"></a>
-<h4>HelpWindow.search</h4>
-<b>search</b>(<i>word</i>)
-<p>
-        Public method to search for a word.
-</p><dl>
-<dt><i>word</i></dt>
-<dd>
-word to search for (string)
-</dd>
-</dl><a NAME="HelpWindow.searchEnginesAction" ID="HelpWindow.searchEnginesAction"></a>
-<h4>HelpWindow.searchEnginesAction</h4>
-<b>searchEnginesAction</b>(<i></i>)
-<p>
-        Public method to get a reference to the search engines configuration
-        action.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the search engines configuration action (QAction)
-</dd>
-</dl><a NAME="HelpWindow.setBackwardAvailable" ID="HelpWindow.setBackwardAvailable"></a>
-<h4>HelpWindow.setBackwardAvailable</h4>
-<b>setBackwardAvailable</b>(<i>b</i>)
-<p>
-        Public slot called when backward references are available.
-</p><dl>
-<dt><i>b</i></dt>
-<dd>
-flag indicating availability of the backwards action (boolean)
-</dd>
-</dl><a NAME="HelpWindow.setEventKeyboardModifiers" ID="HelpWindow.setEventKeyboardModifiers"></a>
-<h4>HelpWindow.setEventKeyboardModifiers</h4>
-<b>setEventKeyboardModifiers</b>(<i>modifiers</i>)
-<p>
-        Public method to record keyboard modifiers.
-</p><dl>
-<dt><i>modifiers</i></dt>
-<dd>
-keyboard modifiers to record (Qt.KeyboardModifiers)
-</dd>
-</dl><a NAME="HelpWindow.setEventMouseButtons" ID="HelpWindow.setEventMouseButtons"></a>
-<h4>HelpWindow.setEventMouseButtons</h4>
-<b>setEventMouseButtons</b>(<i>buttons</i>)
-<p>
-        Public method to record mouse buttons.
-</p><dl>
-<dt><i>buttons</i></dt>
-<dd>
-mouse buttons to record (Qt.MouseButtons)
-</dd>
-</dl><a NAME="HelpWindow.setForwardAvailable" ID="HelpWindow.setForwardAvailable"></a>
-<h4>HelpWindow.setForwardAvailable</h4>
-<b>setForwardAvailable</b>(<i>b</i>)
-<p>
-        Public slot called when forward references are available.
-</p><dl>
-<dt><i>b</i></dt>
-<dd>
-flag indicating the availability of the forwards action
-            (boolean)
-</dd>
-</dl><a NAME="HelpWindow.setLoadingActions" ID="HelpWindow.setLoadingActions"></a>
-<h4>HelpWindow.setLoadingActions</h4>
-<b>setLoadingActions</b>(<i>b</i>)
-<p>
-        Public slot to set the loading dependent actions.
-</p><dl>
-<dt><i>b</i></dt>
-<dd>
-flag indicating the loading state to consider (boolean)
-</dd>
-</dl><a NAME="HelpWindow.setPrivateMode" ID="HelpWindow.setPrivateMode"></a>
-<h4>HelpWindow.setPrivateMode</h4>
-<b>setPrivateMode</b>(<i>on</i>)
-<p>
-        Public method to set the privacy mode.
-</p><dl>
-<dt><i>on</i></dt>
-<dd>
-flag indicating the privacy state (boolean)
-</dd>
-</dl><a NAME="HelpWindow.shutdown" ID="HelpWindow.shutdown"></a>
-<h4>HelpWindow.shutdown</h4>
-<b>shutdown</b>(<i></i>)
-<p>
-        Public method to shut down the web browser.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating successful shutdown (boolean)
-</dd>
-</dl><a NAME="HelpWindow.urlHandler" ID="HelpWindow.urlHandler"></a>
-<h4>HelpWindow.urlHandler</h4>
-<b>urlHandler</b>(<i>url</i>)
-<p>
-        Public slot used as desktop URL handler.
-</p><dl>
-<dt><i>url</i> (QUrl)</dt>
-<dd>
-URL to be handled
-</dd>
-</dl><a NAME="HelpWindow.__getWebIcon" ID="HelpWindow.__getWebIcon"></a>
-<h4>HelpWindow.__getWebIcon (static)</h4>
-<b>__getWebIcon</b>(<i></i>)
-<p>
-        Private static method to fetch the icon for a URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to get icon for (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-icon for the URL (QIcon)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.History.HistoryCompleter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,367 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.History.HistoryCompleter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.History.HistoryCompleter</h1>
-<p>
-Module implementing a special completer for the history.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HistoryCompleter">HistoryCompleter</a></td>
-<td>Class implementing a completer for the browser history.</td>
-</tr><tr>
-<td><a href="#HistoryCompletionModel">HistoryCompletionModel</a></td>
-<td>Class implementing a special model for history based completions.</td>
-</tr><tr>
-<td><a href="#HistoryCompletionView">HistoryCompletionView</a></td>
-<td>Class implementing a special completer view for history based completions.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HistoryCompleter" ID="HistoryCompleter"></a>
-<h2>HistoryCompleter</h2>
-<p>
-    Class implementing a completer for the browser history.
-</p>
-<h3>Derived from</h3>
-QCompleter
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HistoryCompleter.__init__">HistoryCompleter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HistoryCompleter.__updateFilter">__updateFilter</a></td>
-<td>Private slot to update the search string.</td>
-</tr><tr>
-<td><a href="#HistoryCompleter.pathFromIndex">pathFromIndex</a></td>
-<td>Public method to get a path for a given index.</td>
-</tr><tr>
-<td><a href="#HistoryCompleter.splitPath">splitPath</a></td>
-<td>Public method to split the given path into strings, that are used to match at each level in the model.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HistoryCompleter.__init__" ID="HistoryCompleter.__init__"></a>
-<h4>HistoryCompleter (Constructor)</h4>
-<b>HistoryCompleter</b>(<i>model, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>model</i></dt>
-<dd>
-reference to the model (QAbstractItemModel)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="HistoryCompleter.__updateFilter" ID="HistoryCompleter.__updateFilter"></a>
-<h4>HistoryCompleter.__updateFilter</h4>
-<b>__updateFilter</b>(<i></i>)
-<p>
-        Private slot to update the search string.
-</p><a NAME="HistoryCompleter.pathFromIndex" ID="HistoryCompleter.pathFromIndex"></a>
-<h4>HistoryCompleter.pathFromIndex</h4>
-<b>pathFromIndex</b>(<i>idx</i>)
-<p>
-        Public method to get a path for a given index.
-</p><dl>
-<dt><i>idx</i></dt>
-<dd>
-reference to the index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-the actual URL from the history (string)
-</dd>
-</dl><a NAME="HistoryCompleter.splitPath" ID="HistoryCompleter.splitPath"></a>
-<h4>HistoryCompleter.splitPath</h4>
-<b>splitPath</b>(<i>path</i>)
-<p>
-        Public method to split the given path into strings, that are used to
-        match at each level in the model.
-</p><dl>
-<dt><i>path</i></dt>
-<dd>
-path to be split (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-list of path elements (list of strings)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="HistoryCompletionModel" ID="HistoryCompletionModel"></a>
-<h2>HistoryCompletionModel</h2>
-<p>
-    Class implementing a special model for history based completions.
-</p>
-<h3>Derived from</h3>
-QSortFilterProxyModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>HistoryCompletionRole</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HistoryCompletionModel.__init__">HistoryCompletionModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HistoryCompletionModel.data">data</a></td>
-<td>Public method to get data from the model.</td>
-</tr><tr>
-<td><a href="#HistoryCompletionModel.filterAcceptsRow">filterAcceptsRow</a></td>
-<td>Public method to determine, if the row is acceptable.</td>
-</tr><tr>
-<td><a href="#HistoryCompletionModel.isValid">isValid</a></td>
-<td>Public method to check the model for validity.</td>
-</tr><tr>
-<td><a href="#HistoryCompletionModel.lessThan">lessThan</a></td>
-<td>Public method used to sort the displayed items.</td>
-</tr><tr>
-<td><a href="#HistoryCompletionModel.searchString">searchString</a></td>
-<td>Public method to get the current search string.</td>
-</tr><tr>
-<td><a href="#HistoryCompletionModel.setSearchString">setSearchString</a></td>
-<td>Public method to set the current search string.</td>
-</tr><tr>
-<td><a href="#HistoryCompletionModel.setValid">setValid</a></td>
-<td>Public method to set the model's validity.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HistoryCompletionModel.__init__" ID="HistoryCompletionModel.__init__"></a>
-<h4>HistoryCompletionModel (Constructor)</h4>
-<b>HistoryCompletionModel</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="HistoryCompletionModel.data" ID="HistoryCompletionModel.data"></a>
-<h4>HistoryCompletionModel.data</h4>
-<b>data</b>(<i>index, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get data from the model.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of history entry to get data for (QModelIndex)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-history entry data
-</dd>
-</dl><a NAME="HistoryCompletionModel.filterAcceptsRow" ID="HistoryCompletionModel.filterAcceptsRow"></a>
-<h4>HistoryCompletionModel.filterAcceptsRow</h4>
-<b>filterAcceptsRow</b>(<i>sourceRow, sourceParent</i>)
-<p>
-        Public method to determine, if the row is acceptable.
-</p><dl>
-<dt><i>sourceRow</i></dt>
-<dd>
-row number in the source model (integer)
-</dd><dt><i>sourceParent</i></dt>
-<dd>
-index of the source item (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating acceptance (boolean)
-</dd>
-</dl><a NAME="HistoryCompletionModel.isValid" ID="HistoryCompletionModel.isValid"></a>
-<h4>HistoryCompletionModel.isValid</h4>
-<b>isValid</b>(<i></i>)
-<p>
-        Public method to check the model for validity.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a valid status (boolean)
-</dd>
-</dl><a NAME="HistoryCompletionModel.lessThan" ID="HistoryCompletionModel.lessThan"></a>
-<h4>HistoryCompletionModel.lessThan</h4>
-<b>lessThan</b>(<i>left, right</i>)
-<p>
-        Public method used to sort the displayed items.
-</p><p>
-        It implements a special sorting function based on the history entry's
-        frequency giving a bonus to hits that match on a word boundary so that
-        e.g. "dot.python-projects.org" is a better result for typing "dot" than
-        "slashdot.org". However, it only looks for the string in the host name,
-        not the entire URL, since while it makes sense to e.g. give
-        "www.phoronix.com" a bonus for "ph", it does NOT make sense to give
-        "www.yadda.com/foo.php" the bonus.
-</p><dl>
-<dt><i>left</i></dt>
-<dd>
-index of left item (QModelIndex)
-</dd><dt><i>right</i></dt>
-<dd>
-index of right item (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-true, if left is less than right (boolean)
-</dd>
-</dl><a NAME="HistoryCompletionModel.searchString" ID="HistoryCompletionModel.searchString"></a>
-<h4>HistoryCompletionModel.searchString</h4>
-<b>searchString</b>(<i></i>)
-<p>
-        Public method to get the current search string.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-current search string (string)
-</dd>
-</dl><a NAME="HistoryCompletionModel.setSearchString" ID="HistoryCompletionModel.setSearchString"></a>
-<h4>HistoryCompletionModel.setSearchString</h4>
-<b>setSearchString</b>(<i>string</i>)
-<p>
-        Public method to set the current search string.
-</p><dl>
-<dt><i>string</i></dt>
-<dd>
-new search string (string)
-</dd>
-</dl><a NAME="HistoryCompletionModel.setValid" ID="HistoryCompletionModel.setValid"></a>
-<h4>HistoryCompletionModel.setValid</h4>
-<b>setValid</b>(<i>valid</i>)
-<p>
-        Public method to set the model's validity.
-</p><dl>
-<dt><i>valid</i></dt>
-<dd>
-flag indicating the new valid status (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="HistoryCompletionView" ID="HistoryCompletionView"></a>
-<h2>HistoryCompletionView</h2>
-<p>
-    Class implementing a special completer view for history based completions.
-</p>
-<h3>Derived from</h3>
-QTableView
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HistoryCompletionView.__init__">HistoryCompletionView</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HistoryCompletionView.resizeEvent">resizeEvent</a></td>
-<td>Protected method handling resize events.</td>
-</tr><tr>
-<td><a href="#HistoryCompletionView.sizeHintForRow">sizeHintForRow</a></td>
-<td>Public method to give a size hint for rows.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HistoryCompletionView.__init__" ID="HistoryCompletionView.__init__"></a>
-<h4>HistoryCompletionView (Constructor)</h4>
-<b>HistoryCompletionView</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="HistoryCompletionView.resizeEvent" ID="HistoryCompletionView.resizeEvent"></a>
-<h4>HistoryCompletionView.resizeEvent</h4>
-<b>resizeEvent</b>(<i>evt</i>)
-<p>
-        Protected method handling resize events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the resize event (QResizeEvent)
-</dd>
-</dl><a NAME="HistoryCompletionView.sizeHintForRow" ID="HistoryCompletionView.sizeHintForRow"></a>
-<h4>HistoryCompletionView.sizeHintForRow</h4>
-<b>sizeHintForRow</b>(<i>row</i>)
-<p>
-        Public method to give a size hint for rows.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row number (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-desired row height (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.History.HistoryDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.History.HistoryDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.History.HistoryDialog</h1>
-<p>
-Module implementing a dialog to manage history.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HistoryDialog">HistoryDialog</a></td>
-<td>Class implementing a dialog to manage history.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HistoryDialog" ID="HistoryDialog"></a>
-<h2>HistoryDialog</h2>
-<p>
-    Class implementing a dialog to manage history.
-</p><h3>Signals</h3>
-<dl>
-<dt>newUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL in a new tab
-</dd><dt>openUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL in the current tab
-</dd>
-</dl>
-<h3>Derived from</h3>
-QDialog, Ui_HistoryDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HistoryDialog.__init__">HistoryDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HistoryDialog.__activated">__activated</a></td>
-<td>Private slot to handle the activation of an entry.</td>
-</tr><tr>
-<td><a href="#HistoryDialog.__copyHistory">__copyHistory</a></td>
-<td>Private slot to copy a history entry's URL to the clipboard.</td>
-</tr><tr>
-<td><a href="#HistoryDialog.__customContextMenuRequested">__customContextMenuRequested</a></td>
-<td>Private slot to handle the context menu request for the bookmarks tree.</td>
-</tr><tr>
-<td><a href="#HistoryDialog.__modelReset">__modelReset</a></td>
-<td>Private slot handling a reset of the tree view's model.</td>
-</tr><tr>
-<td><a href="#HistoryDialog.__openHistory">__openHistory</a></td>
-<td>Private method to open a history entry.</td>
-</tr><tr>
-<td><a href="#HistoryDialog.__openHistoryInCurrentTab">__openHistoryInCurrentTab</a></td>
-<td>Private slot to open a history entry in the current browser tab.</td>
-</tr><tr>
-<td><a href="#HistoryDialog.__openHistoryInNewTab">__openHistoryInNewTab</a></td>
-<td>Private slot to open a history entry in a new browser tab.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HistoryDialog.__init__" ID="HistoryDialog.__init__"></a>
-<h4>HistoryDialog (Constructor)</h4>
-<b>HistoryDialog</b>(<i>parent=None, manager=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget
-</dd><dt><i>manager</i></dt>
-<dd>
-reference to the history manager object (HistoryManager)
-</dd>
-</dl><a NAME="HistoryDialog.__activated" ID="HistoryDialog.__activated"></a>
-<h4>HistoryDialog.__activated</h4>
-<b>__activated</b>(<i>idx</i>)
-<p>
-        Private slot to handle the activation of an entry.
-</p><dl>
-<dt><i>idx</i></dt>
-<dd>
-reference to the entry index (QModelIndex)
-</dd>
-</dl><a NAME="HistoryDialog.__copyHistory" ID="HistoryDialog.__copyHistory"></a>
-<h4>HistoryDialog.__copyHistory</h4>
-<b>__copyHistory</b>(<i></i>)
-<p>
-        Private slot to copy a history entry's URL to the clipboard.
-</p><a NAME="HistoryDialog.__customContextMenuRequested" ID="HistoryDialog.__customContextMenuRequested"></a>
-<h4>HistoryDialog.__customContextMenuRequested</h4>
-<b>__customContextMenuRequested</b>(<i>pos</i>)
-<p>
-        Private slot to handle the context menu request for the bookmarks tree.
-</p><dl>
-<dt><i>pos</i></dt>
-<dd>
-position the context menu was requested (QPoint)
-</dd>
-</dl><a NAME="HistoryDialog.__modelReset" ID="HistoryDialog.__modelReset"></a>
-<h4>HistoryDialog.__modelReset</h4>
-<b>__modelReset</b>(<i></i>)
-<p>
-        Private slot handling a reset of the tree view's model.
-</p><a NAME="HistoryDialog.__openHistory" ID="HistoryDialog.__openHistory"></a>
-<h4>HistoryDialog.__openHistory</h4>
-<b>__openHistory</b>(<i>newTab</i>)
-<p>
-        Private method to open a history entry.
-</p><dl>
-<dt><i>newTab</i></dt>
-<dd>
-flag indicating to open the history entry in a new tab
-            (boolean)
-</dd>
-</dl><a NAME="HistoryDialog.__openHistoryInCurrentTab" ID="HistoryDialog.__openHistoryInCurrentTab"></a>
-<h4>HistoryDialog.__openHistoryInCurrentTab</h4>
-<b>__openHistoryInCurrentTab</b>(<i></i>)
-<p>
-        Private slot to open a history entry in the current browser tab.
-</p><a NAME="HistoryDialog.__openHistoryInNewTab" ID="HistoryDialog.__openHistoryInNewTab"></a>
-<h4>HistoryDialog.__openHistoryInNewTab</h4>
-<b>__openHistoryInNewTab</b>(<i></i>)
-<p>
-        Private slot to open a history entry in a new browser tab.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.History.HistoryFilterModel.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,497 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.History.HistoryFilterModel</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.History.HistoryFilterModel</h1>
-<p>
-Module implementing the history filter model.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HistoryData">HistoryData</a></td>
-<td>Class storing some history data.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel">HistoryFilterModel</a></td>
-<td>Class implementing the history filter model.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HistoryData" ID="HistoryData"></a>
-<h2>HistoryData</h2>
-<p>
-    Class storing some history data.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HistoryData.__init__">HistoryData</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HistoryData.__eq__">__eq__</a></td>
-<td>Special method implementing equality.</td>
-</tr><tr>
-<td><a href="#HistoryData.__lt__">__lt__</a></td>
-<td>Special method determining less relation.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HistoryData.__init__" ID="HistoryData.__init__"></a>
-<h4>HistoryData (Constructor)</h4>
-<b>HistoryData</b>(<i>offset, frequency=0</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>offset</i></dt>
-<dd>
-tail offset (integer)
-</dd><dt><i>frequency</i></dt>
-<dd>
-frequency (integer)
-</dd>
-</dl><a NAME="HistoryData.__eq__" ID="HistoryData.__eq__"></a>
-<h4>HistoryData.__eq__</h4>
-<b>__eq__</b>(<i>other</i>)
-<p>
-        Special method implementing equality.
-</p><dl>
-<dt><i>other</i></dt>
-<dd>
-reference to the object to check against (HistoryData)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating equality (boolean)
-</dd>
-</dl><a NAME="HistoryData.__lt__" ID="HistoryData.__lt__"></a>
-<h4>HistoryData.__lt__</h4>
-<b>__lt__</b>(<i>other</i>)
-<p>
-        Special method determining less relation.
-</p><p>
-        Note: Like the actual history entries the index mapping is sorted in
-        reverse order by offset
-</p><dl>
-<dt><i>other</i></dt>
-<dd>
-reference to the history data object to compare against
-            (HistoryEntry)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating less (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="HistoryFilterModel" ID="HistoryFilterModel"></a>
-<h2>HistoryFilterModel</h2>
-<p>
-    Class implementing the history filter model.
-</p>
-<h3>Derived from</h3>
-QAbstractProxyModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>FrequencyRole</td></tr><tr><td>MaxRole</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HistoryFilterModel.__init__">HistoryFilterModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.__frequencyScore">__frequencyScore</a></td>
-<td>Private method to calculate the frequency score.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.__load">__load</a></td>
-<td>Private method to load the model data.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.__sourceDataChanged">__sourceDataChanged</a></td>
-<td>Private slot to handle the change of data of the source model.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.__sourceReset">__sourceReset</a></td>
-<td>Private slot to handle a reset of the source model.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.__sourceRowsInserted">__sourceRowsInserted</a></td>
-<td>Private slot to handle the insertion of data in the source model.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.__sourceRowsRemoved">__sourceRowsRemoved</a></td>
-<td>Private slot to handle the removal of data in the source model.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.columnCount">columnCount</a></td>
-<td>Public method to get the number of columns.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.data">data</a></td>
-<td>Public method to get data from the model.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.headerData">headerData</a></td>
-<td>Public method to get the header data.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.historyContains">historyContains</a></td>
-<td>Public method to check the history for an entry.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.historyLocation">historyLocation</a></td>
-<td>Public method to get the row number of an entry in the source model.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.index">index</a></td>
-<td>Public method to create an index.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.mapFromSource">mapFromSource</a></td>
-<td>Public method to map an index to the proxy model index.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.mapToSource">mapToSource</a></td>
-<td>Public method to map an index to the source model index.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.parent">parent</a></td>
-<td>Public method to get the parent index.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.recalculateFrequencies">recalculateFrequencies</a></td>
-<td>Public method to recalculate the frequencies.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.removeRows">removeRows</a></td>
-<td>Public method to remove entries from the model.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.rowCount">rowCount</a></td>
-<td>Public method to determine the number of rows.</td>
-</tr><tr>
-<td><a href="#HistoryFilterModel.setSourceModel">setSourceModel</a></td>
-<td>Public method to set the source model.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HistoryFilterModel.__init__" ID="HistoryFilterModel.__init__"></a>
-<h4>HistoryFilterModel (Constructor)</h4>
-<b>HistoryFilterModel</b>(<i>sourceModel, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>sourceModel</i></dt>
-<dd>
-reference to the source model (QAbstractItemModel)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="HistoryFilterModel.__frequencyScore" ID="HistoryFilterModel.__frequencyScore"></a>
-<h4>HistoryFilterModel.__frequencyScore</h4>
-<b>__frequencyScore</b>(<i>sourceIndex</i>)
-<p>
-        Private method to calculate the frequency score.
-</p><dl>
-<dt><i>sourceIndex</i></dt>
-<dd>
-index of the source model (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-frequency score (integer)
-</dd>
-</dl><a NAME="HistoryFilterModel.__load" ID="HistoryFilterModel.__load"></a>
-<h4>HistoryFilterModel.__load</h4>
-<b>__load</b>(<i></i>)
-<p>
-        Private method to load the model data.
-</p><a NAME="HistoryFilterModel.__sourceDataChanged" ID="HistoryFilterModel.__sourceDataChanged"></a>
-<h4>HistoryFilterModel.__sourceDataChanged</h4>
-<b>__sourceDataChanged</b>(<i>topLeft, bottomRight</i>)
-<p>
-        Private slot to handle the change of data of the source model.
-</p><dl>
-<dt><i>topLeft</i></dt>
-<dd>
-index of top left data element (QModelIndex)
-</dd><dt><i>bottomRight</i></dt>
-<dd>
-index of bottom right data element (QModelIndex)
-</dd>
-</dl><a NAME="HistoryFilterModel.__sourceReset" ID="HistoryFilterModel.__sourceReset"></a>
-<h4>HistoryFilterModel.__sourceReset</h4>
-<b>__sourceReset</b>(<i></i>)
-<p>
-        Private slot to handle a reset of the source model.
-</p><a NAME="HistoryFilterModel.__sourceRowsInserted" ID="HistoryFilterModel.__sourceRowsInserted"></a>
-<h4>HistoryFilterModel.__sourceRowsInserted</h4>
-<b>__sourceRowsInserted</b>(<i>parent, start, end</i>)
-<p>
-        Private slot to handle the insertion of data in the source model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent index (QModelIndex)
-</dd><dt><i>start</i></dt>
-<dd>
-start row (integer)
-</dd><dt><i>end</i></dt>
-<dd>
-end row (integer)
-</dd>
-</dl><a NAME="HistoryFilterModel.__sourceRowsRemoved" ID="HistoryFilterModel.__sourceRowsRemoved"></a>
-<h4>HistoryFilterModel.__sourceRowsRemoved</h4>
-<b>__sourceRowsRemoved</b>(<i>parent, start, end</i>)
-<p>
-        Private slot to handle the removal of data in the source model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent index (QModelIndex)
-</dd><dt><i>start</i></dt>
-<dd>
-start row (integer)
-</dd><dt><i>end</i></dt>
-<dd>
-end row (integer)
-</dd>
-</dl><a NAME="HistoryFilterModel.columnCount" ID="HistoryFilterModel.columnCount"></a>
-<h4>HistoryFilterModel.columnCount</h4>
-<b>columnCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of columns.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl><a NAME="HistoryFilterModel.data" ID="HistoryFilterModel.data"></a>
-<h4>HistoryFilterModel.data</h4>
-<b>data</b>(<i>index, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get data from the model.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of history entry to get data for (QModelIndex)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-history entry data
-</dd>
-</dl><a NAME="HistoryFilterModel.headerData" ID="HistoryFilterModel.headerData"></a>
-<h4>HistoryFilterModel.headerData</h4>
-<b>headerData</b>(<i>section, orientation, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get the header data.
-</p><dl>
-<dt><i>section</i></dt>
-<dd>
-section number (integer)
-</dd><dt><i>orientation</i></dt>
-<dd>
-header orientation (Qt.Orientation)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-header data
-</dd>
-</dl><a NAME="HistoryFilterModel.historyContains" ID="HistoryFilterModel.historyContains"></a>
-<h4>HistoryFilterModel.historyContains</h4>
-<b>historyContains</b>(<i>url</i>)
-<p>
-        Public method to check the history for an entry.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to check for (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="HistoryFilterModel.historyLocation" ID="HistoryFilterModel.historyLocation"></a>
-<h4>HistoryFilterModel.historyLocation</h4>
-<b>historyLocation</b>(<i>url</i>)
-<p>
-        Public method to get the row number of an entry in the source model.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to check for (tring)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-row number in the source model (integer)
-</dd>
-</dl><a NAME="HistoryFilterModel.index" ID="HistoryFilterModel.index"></a>
-<h4>HistoryFilterModel.index</h4>
-<b>index</b>(<i>row, column, parent=None</i>)
-<p>
-        Public method to create an index.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row number for the index (integer)
-</dd><dt><i>column</i></dt>
-<dd>
-column number for the index (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-index of the parent item (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested index (QModelIndex)
-</dd>
-</dl><a NAME="HistoryFilterModel.mapFromSource" ID="HistoryFilterModel.mapFromSource"></a>
-<h4>HistoryFilterModel.mapFromSource</h4>
-<b>mapFromSource</b>(<i>sourceIndex</i>)
-<p>
-        Public method to map an index to the proxy model index.
-</p><dl>
-<dt><i>sourceIndex</i></dt>
-<dd>
-reference to a source model index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-proxy model index (QModelIndex)
-</dd>
-</dl><a NAME="HistoryFilterModel.mapToSource" ID="HistoryFilterModel.mapToSource"></a>
-<h4>HistoryFilterModel.mapToSource</h4>
-<b>mapToSource</b>(<i>proxyIndex</i>)
-<p>
-        Public method to map an index to the source model index.
-</p><dl>
-<dt><i>proxyIndex</i></dt>
-<dd>
-reference to a proxy model index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-source model index (QModelIndex)
-</dd>
-</dl><a NAME="HistoryFilterModel.parent" ID="HistoryFilterModel.parent"></a>
-<h4>HistoryFilterModel.parent</h4>
-<b>parent</b>(<i>index</i>)
-<p>
-        Public method to get the parent index.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of item to get parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><a NAME="HistoryFilterModel.recalculateFrequencies" ID="HistoryFilterModel.recalculateFrequencies"></a>
-<h4>HistoryFilterModel.recalculateFrequencies</h4>
-<b>recalculateFrequencies</b>(<i></i>)
-<p>
-        Public method to recalculate the frequencies.
-</p><a NAME="HistoryFilterModel.removeRows" ID="HistoryFilterModel.removeRows"></a>
-<h4>HistoryFilterModel.removeRows</h4>
-<b>removeRows</b>(<i>row, count, parent=None</i>)
-<p>
-        Public method to remove entries from the model.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row of the first entry to remove (integer)
-</dd><dt><i>count</i></dt>
-<dd>
-number of entries to remove (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-index of the parent entry (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating successful removal (boolean)
-</dd>
-</dl><a NAME="HistoryFilterModel.rowCount" ID="HistoryFilterModel.rowCount"></a>
-<h4>HistoryFilterModel.rowCount</h4>
-<b>rowCount</b>(<i>parent=None</i>)
-<p>
-        Public method to determine the number of rows.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of rows (integer)
-</dd>
-</dl><a NAME="HistoryFilterModel.setSourceModel" ID="HistoryFilterModel.setSourceModel"></a>
-<h4>HistoryFilterModel.setSourceModel</h4>
-<b>setSourceModel</b>(<i>sourceModel</i>)
-<p>
-        Public method to set the source model.
-</p><dl>
-<dt><i>sourceModel</i></dt>
-<dd>
-reference to the source model (QAbstractItemModel)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.History.HistoryManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,480 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.History.HistoryManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.History.HistoryManager</h1>
-<p>
-Module implementing the history manager.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>HISTORY_VERSION</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HistoryEntry">HistoryEntry</a></td>
-<td>Class implementing a history entry.</td>
-</tr><tr>
-<td><a href="#HistoryManager">HistoryManager</a></td>
-<td>Class implementing the history manager.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HistoryEntry" ID="HistoryEntry"></a>
-<h2>HistoryEntry</h2>
-<p>
-    Class implementing a history entry.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HistoryEntry.__init__">HistoryEntry</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HistoryEntry.__eq__">__eq__</a></td>
-<td>Special method determining equality.</td>
-</tr><tr>
-<td><a href="#HistoryEntry.__lt__">__lt__</a></td>
-<td>Special method determining less relation.</td>
-</tr><tr>
-<td><a href="#HistoryEntry.userTitle">userTitle</a></td>
-<td>Public method to get the title of the history entry.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HistoryEntry.__init__" ID="HistoryEntry.__init__"></a>
-<h4>HistoryEntry (Constructor)</h4>
-<b>HistoryEntry</b>(<i>url=None, dateTime=None, title=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the history entry (string)
-</dd><dt><i>dateTime</i></dt>
-<dd>
-date and time this entry was created (QDateTime)
-</dd><dt><i>title</i></dt>
-<dd>
-title string for the history entry (string)
-</dd>
-</dl><a NAME="HistoryEntry.__eq__" ID="HistoryEntry.__eq__"></a>
-<h4>HistoryEntry.__eq__</h4>
-<b>__eq__</b>(<i>other</i>)
-<p>
-        Special method determining equality.
-</p><dl>
-<dt><i>other</i></dt>
-<dd>
-reference to the history entry to compare against
-            (HistoryEntry)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating equality (boolean)
-</dd>
-</dl><a NAME="HistoryEntry.__lt__" ID="HistoryEntry.__lt__"></a>
-<h4>HistoryEntry.__lt__</h4>
-<b>__lt__</b>(<i>other</i>)
-<p>
-        Special method determining less relation.
-</p><p>
-        Note: History is sorted in reverse order by date and time
-</p><dl>
-<dt><i>other</i></dt>
-<dd>
-reference to the history entry to compare against
-            (HistoryEntry)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating less (boolean)
-</dd>
-</dl><a NAME="HistoryEntry.userTitle" ID="HistoryEntry.userTitle"></a>
-<h4>HistoryEntry.userTitle</h4>
-<b>userTitle</b>(<i></i>)
-<p>
-        Public method to get the title of the history entry.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-title of the entry (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="HistoryManager" ID="HistoryManager"></a>
-<h2>HistoryManager</h2>
-<p>
-    Class implementing the history manager.
-</p><h3>Signals</h3>
-<dl>
-<dt>entryAdded(HistoryEntry)</dt>
-<dd>
-emitted after a history entry has been
-        added
-</dd><dt>entryRemoved(HistoryEntry)</dt>
-<dd>
-emitted after a history entry has been
-        removed
-</dd><dt>entryUpdated(int)</dt>
-<dd>
-emitted after a history entry has been updated
-</dd><dt>historyCleared()</dt>
-<dd>
-emitted after the history has been cleared
-</dd><dt>historyReset()</dt>
-<dd>
-emitted after the history has been reset
-</dd><dt>historySaved()</dt>
-<dd>
-emitted after the history was saved
-</dd>
-</dl>
-<h3>Derived from</h3>
-QWebHistoryInterface
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HistoryManager.__init__">HistoryManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HistoryManager.__checkForExpired">__checkForExpired</a></td>
-<td>Private slot to check entries for expiration.</td>
-</tr><tr>
-<td><a href="#HistoryManager.__load">__load</a></td>
-<td>Private method to load the saved history entries from disk.</td>
-</tr><tr>
-<td><a href="#HistoryManager.__refreshFrequencies">__refreshFrequencies</a></td>
-<td>Private slot to recalculate the refresh frequencies.</td>
-</tr><tr>
-<td><a href="#HistoryManager.__startFrequencyTimer">__startFrequencyTimer</a></td>
-<td>Private method to start the timer to recalculate the frequencies.</td>
-</tr><tr>
-<td><a href="#HistoryManager._addHistoryEntry">_addHistoryEntry</a></td>
-<td>Protected method to add a history item.</td>
-</tr><tr>
-<td><a href="#HistoryManager._removeHistoryEntry">_removeHistoryEntry</a></td>
-<td>Protected method to remove a history item.</td>
-</tr><tr>
-<td><a href="#HistoryManager.addHistoryEntry">addHistoryEntry</a></td>
-<td>Public method to add a history entry.</td>
-</tr><tr>
-<td><a href="#HistoryManager.clear">clear</a></td>
-<td>Public slot to clear the complete history.</td>
-</tr><tr>
-<td><a href="#HistoryManager.close">close</a></td>
-<td>Public method to close the history manager.</td>
-</tr><tr>
-<td><a href="#HistoryManager.daysToExpire">daysToExpire</a></td>
-<td>Public method to get the days for entry expiration.</td>
-</tr><tr>
-<td><a href="#HistoryManager.getFileName">getFileName</a></td>
-<td>Public method to get the file name of the history file.</td>
-</tr><tr>
-<td><a href="#HistoryManager.history">history</a></td>
-<td>Public method to return the history.</td>
-</tr><tr>
-<td><a href="#HistoryManager.historyContains">historyContains</a></td>
-<td>Public method to check the history for an entry.</td>
-</tr><tr>
-<td><a href="#HistoryManager.historyFilterModel">historyFilterModel</a></td>
-<td>Public method to get a reference to the history filter model.</td>
-</tr><tr>
-<td><a href="#HistoryManager.historyModel">historyModel</a></td>
-<td>Public method to get a reference to the history model.</td>
-</tr><tr>
-<td><a href="#HistoryManager.historyTreeModel">historyTreeModel</a></td>
-<td>Public method to get a reference to the history tree model.</td>
-</tr><tr>
-<td><a href="#HistoryManager.preferencesChanged">preferencesChanged</a></td>
-<td>Public method to indicate a change of preferences.</td>
-</tr><tr>
-<td><a href="#HistoryManager.reload">reload</a></td>
-<td>Public method to reload the history.</td>
-</tr><tr>
-<td><a href="#HistoryManager.removeHistoryEntry">removeHistoryEntry</a></td>
-<td>Public method to remove a history entry.</td>
-</tr><tr>
-<td><a href="#HistoryManager.save">save</a></td>
-<td>Public slot to save the history entries to disk.</td>
-</tr><tr>
-<td><a href="#HistoryManager.setDaysToExpire">setDaysToExpire</a></td>
-<td>Public method to set the days for entry expiration.</td>
-</tr><tr>
-<td><a href="#HistoryManager.setHistory">setHistory</a></td>
-<td>Public method to set a new history.</td>
-</tr><tr>
-<td><a href="#HistoryManager.updateHistoryEntry">updateHistoryEntry</a></td>
-<td>Public method to update a history entry.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HistoryManager.__init__" ID="HistoryManager.__init__"></a>
-<h4>HistoryManager (Constructor)</h4>
-<b>HistoryManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="HistoryManager.__checkForExpired" ID="HistoryManager.__checkForExpired"></a>
-<h4>HistoryManager.__checkForExpired</h4>
-<b>__checkForExpired</b>(<i></i>)
-<p>
-        Private slot to check entries for expiration.
-</p><a NAME="HistoryManager.__load" ID="HistoryManager.__load"></a>
-<h4>HistoryManager.__load</h4>
-<b>__load</b>(<i></i>)
-<p>
-        Private method to load the saved history entries from disk.
-</p><a NAME="HistoryManager.__refreshFrequencies" ID="HistoryManager.__refreshFrequencies"></a>
-<h4>HistoryManager.__refreshFrequencies</h4>
-<b>__refreshFrequencies</b>(<i></i>)
-<p>
-        Private slot to recalculate the refresh frequencies.
-</p><a NAME="HistoryManager.__startFrequencyTimer" ID="HistoryManager.__startFrequencyTimer"></a>
-<h4>HistoryManager.__startFrequencyTimer</h4>
-<b>__startFrequencyTimer</b>(<i></i>)
-<p>
-        Private method to start the timer to recalculate the frequencies.
-</p><a NAME="HistoryManager._addHistoryEntry" ID="HistoryManager._addHistoryEntry"></a>
-<h4>HistoryManager._addHistoryEntry</h4>
-<b>_addHistoryEntry</b>(<i>itm</i>)
-<p>
-        Protected method to add a history item.
-</p><dl>
-<dt><i>itm</i></dt>
-<dd>
-reference to the history item to add (HistoryEntry)
-</dd>
-</dl><a NAME="HistoryManager._removeHistoryEntry" ID="HistoryManager._removeHistoryEntry"></a>
-<h4>HistoryManager._removeHistoryEntry</h4>
-<b>_removeHistoryEntry</b>(<i>itm</i>)
-<p>
-        Protected method to remove a history item.
-</p><dl>
-<dt><i>itm</i></dt>
-<dd>
-reference to the history item to remove (HistoryEntry)
-</dd>
-</dl><a NAME="HistoryManager.addHistoryEntry" ID="HistoryManager.addHistoryEntry"></a>
-<h4>HistoryManager.addHistoryEntry</h4>
-<b>addHistoryEntry</b>(<i>url</i>)
-<p>
-        Public method to add a history entry.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to be added (string)
-</dd>
-</dl><a NAME="HistoryManager.clear" ID="HistoryManager.clear"></a>
-<h4>HistoryManager.clear</h4>
-<b>clear</b>(<i>period=0</i>)
-<p>
-        Public slot to clear the complete history.
-</p><dl>
-<dt><i>period</i></dt>
-<dd>
-history period in milliseconds to be cleared (integer)
-</dd>
-</dl><a NAME="HistoryManager.close" ID="HistoryManager.close"></a>
-<h4>HistoryManager.close</h4>
-<b>close</b>(<i></i>)
-<p>
-        Public method to close the history manager.
-</p><a NAME="HistoryManager.daysToExpire" ID="HistoryManager.daysToExpire"></a>
-<h4>HistoryManager.daysToExpire</h4>
-<b>daysToExpire</b>(<i></i>)
-<p>
-        Public method to get the days for entry expiration.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-days for entry expiration (integer)
-</dd>
-</dl><a NAME="HistoryManager.getFileName" ID="HistoryManager.getFileName"></a>
-<h4>HistoryManager.getFileName</h4>
-<b>getFileName</b>(<i></i>)
-<p>
-        Public method to get the file name of the history file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-name of the history file (string)
-</dd>
-</dl><a NAME="HistoryManager.history" ID="HistoryManager.history"></a>
-<h4>HistoryManager.history</h4>
-<b>history</b>(<i></i>)
-<p>
-        Public method to return the history.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the list of history entries (list of HistoryEntry)
-</dd>
-</dl><a NAME="HistoryManager.historyContains" ID="HistoryManager.historyContains"></a>
-<h4>HistoryManager.historyContains</h4>
-<b>historyContains</b>(<i>url</i>)
-<p>
-        Public method to check the history for an entry.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to check for (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="HistoryManager.historyFilterModel" ID="HistoryManager.historyFilterModel"></a>
-<h4>HistoryManager.historyFilterModel</h4>
-<b>historyFilterModel</b>(<i></i>)
-<p>
-        Public method to get a reference to the history filter model.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the history filter model (HistoryFilterModel)
-</dd>
-</dl><a NAME="HistoryManager.historyModel" ID="HistoryManager.historyModel"></a>
-<h4>HistoryManager.historyModel</h4>
-<b>historyModel</b>(<i></i>)
-<p>
-        Public method to get a reference to the history model.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the history model (HistoryModel)
-</dd>
-</dl><a NAME="HistoryManager.historyTreeModel" ID="HistoryManager.historyTreeModel"></a>
-<h4>HistoryManager.historyTreeModel</h4>
-<b>historyTreeModel</b>(<i></i>)
-<p>
-        Public method to get a reference to the history tree model.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the history tree model (HistoryTreeModel)
-</dd>
-</dl><a NAME="HistoryManager.preferencesChanged" ID="HistoryManager.preferencesChanged"></a>
-<h4>HistoryManager.preferencesChanged</h4>
-<b>preferencesChanged</b>(<i></i>)
-<p>
-        Public method to indicate a change of preferences.
-</p><a NAME="HistoryManager.reload" ID="HistoryManager.reload"></a>
-<h4>HistoryManager.reload</h4>
-<b>reload</b>(<i></i>)
-<p>
-        Public method to reload the history.
-</p><a NAME="HistoryManager.removeHistoryEntry" ID="HistoryManager.removeHistoryEntry"></a>
-<h4>HistoryManager.removeHistoryEntry</h4>
-<b>removeHistoryEntry</b>(<i>url, title=""</i>)
-<p>
-        Public method to remove a history entry.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the entry to remove (QUrl)
-</dd><dt><i>title</i></dt>
-<dd>
-title of the entry to remove (string)
-</dd>
-</dl><a NAME="HistoryManager.save" ID="HistoryManager.save"></a>
-<h4>HistoryManager.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public slot to save the history entries to disk.
-</p><a NAME="HistoryManager.setDaysToExpire" ID="HistoryManager.setDaysToExpire"></a>
-<h4>HistoryManager.setDaysToExpire</h4>
-<b>setDaysToExpire</b>(<i>limit</i>)
-<p>
-        Public method to set the days for entry expiration.
-</p><dl>
-<dt><i>limit</i></dt>
-<dd>
-days for entry expiration (integer)
-</dd>
-</dl><a NAME="HistoryManager.setHistory" ID="HistoryManager.setHistory"></a>
-<h4>HistoryManager.setHistory</h4>
-<b>setHistory</b>(<i>history, loadedAndSorted=False</i>)
-<p>
-        Public method to set a new history.
-</p><dl>
-<dt><i>history</i></dt>
-<dd>
-reference to the list of history entries to be set
-            (list of HistoryEntry)
-</dd><dt><i>loadedAndSorted</i></dt>
-<dd>
-flag indicating that the list is sorted
-            (boolean)
-</dd>
-</dl><a NAME="HistoryManager.updateHistoryEntry" ID="HistoryManager.updateHistoryEntry"></a>
-<h4>HistoryManager.updateHistoryEntry</h4>
-<b>updateHistoryEntry</b>(<i>url, title</i>)
-<p>
-        Public method to update a history entry.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the entry to update (string)
-</dd><dt><i>title</i></dt>
-<dd>
-title of the entry to update (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.History.HistoryMenu.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,517 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.History.HistoryMenu</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.History.HistoryMenu</h1>
-<p>
-Module implementing the history menu.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HistoryMenu">HistoryMenu</a></td>
-<td>Class implementing the history menu.</td>
-</tr><tr>
-<td><a href="#HistoryMenuModel">HistoryMenuModel</a></td>
-<td>Class implementing a model for the history menu.</td>
-</tr><tr>
-<td><a href="#HistoryMostVisitedMenu">HistoryMostVisitedMenu</a></td>
-<td>Class implementing the most visited history menu.</td>
-</tr><tr>
-<td><a href="#HistoryMostVisitedMenuModel">HistoryMostVisitedMenuModel</a></td>
-<td>Class implementing a model to show the most visited history entries.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HistoryMenu" ID="HistoryMenu"></a>
-<h2>HistoryMenu</h2>
-<p>
-    Class implementing the history menu.
-</p><h3>Signals</h3>
-<dl>
-<dt>newUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL in a new tab
-</dd><dt>openUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL in the current tab
-</dd>
-</dl>
-<h3>Derived from</h3>
-E5ModelMenu
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HistoryMenu.__init__">HistoryMenu</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HistoryMenu.__aboutToShowClosedTabsMenu">__aboutToShowClosedTabsMenu</a></td>
-<td>Private slot to populate the closed tabs menu.</td>
-</tr><tr>
-<td><a href="#HistoryMenu.__activated">__activated</a></td>
-<td>Private slot handling the activated signal.</td>
-</tr><tr>
-<td><a href="#HistoryMenu.__clearHistoryDialog">__clearHistoryDialog</a></td>
-<td>Private slot to clear the history.</td>
-</tr><tr>
-<td><a href="#HistoryMenu.__closedTabAvailable">__closedTabAvailable</a></td>
-<td>Private slot to handle changes of the availability of closed tabs.</td>
-</tr><tr>
-<td><a href="#HistoryMenu.__showHistoryDialog">__showHistoryDialog</a></td>
-<td>Private slot to show the history dialog.</td>
-</tr><tr>
-<td><a href="#HistoryMenu.postPopulated">postPopulated</a></td>
-<td>Public method to add any actions after the tree.</td>
-</tr><tr>
-<td><a href="#HistoryMenu.prePopulated">prePopulated</a></td>
-<td>Public method to add any actions before the tree.</td>
-</tr><tr>
-<td><a href="#HistoryMenu.setInitialActions">setInitialActions</a></td>
-<td>Public method to set the list of actions that should appear first in the menu.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HistoryMenu.__init__" ID="HistoryMenu.__init__"></a>
-<h4>HistoryMenu (Constructor)</h4>
-<b>HistoryMenu</b>(<i>parent=None, tabWidget=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd><dt><i>tabWidget</i></dt>
-<dd>
-reference to the tab widget managing the browser
-            tabs (HelpTabWidget
-</dd>
-</dl><a NAME="HistoryMenu.__aboutToShowClosedTabsMenu" ID="HistoryMenu.__aboutToShowClosedTabsMenu"></a>
-<h4>HistoryMenu.__aboutToShowClosedTabsMenu</h4>
-<b>__aboutToShowClosedTabsMenu</b>(<i></i>)
-<p>
-        Private slot to populate the closed tabs menu.
-</p><a NAME="HistoryMenu.__activated" ID="HistoryMenu.__activated"></a>
-<h4>HistoryMenu.__activated</h4>
-<b>__activated</b>(<i>idx</i>)
-<p>
-        Private slot handling the activated signal.
-</p><dl>
-<dt><i>idx</i></dt>
-<dd>
-index of the activated item (QModelIndex)
-</dd>
-</dl><a NAME="HistoryMenu.__clearHistoryDialog" ID="HistoryMenu.__clearHistoryDialog"></a>
-<h4>HistoryMenu.__clearHistoryDialog</h4>
-<b>__clearHistoryDialog</b>(<i></i>)
-<p>
-        Private slot to clear the history.
-</p><a NAME="HistoryMenu.__closedTabAvailable" ID="HistoryMenu.__closedTabAvailable"></a>
-<h4>HistoryMenu.__closedTabAvailable</h4>
-<b>__closedTabAvailable</b>(<i>avail</i>)
-<p>
-        Private slot to handle changes of the availability of closed tabs.
-</p><dl>
-<dt><i>avail</i></dt>
-<dd>
-flag indicating the availability of closed tabs (boolean)
-</dd>
-</dl><a NAME="HistoryMenu.__showHistoryDialog" ID="HistoryMenu.__showHistoryDialog"></a>
-<h4>HistoryMenu.__showHistoryDialog</h4>
-<b>__showHistoryDialog</b>(<i></i>)
-<p>
-        Private slot to show the history dialog.
-</p><a NAME="HistoryMenu.postPopulated" ID="HistoryMenu.postPopulated"></a>
-<h4>HistoryMenu.postPopulated</h4>
-<b>postPopulated</b>(<i></i>)
-<p>
-        Public method to add any actions after the tree.
-</p><a NAME="HistoryMenu.prePopulated" ID="HistoryMenu.prePopulated"></a>
-<h4>HistoryMenu.prePopulated</h4>
-<b>prePopulated</b>(<i></i>)
-<p>
-        Public method to add any actions before the tree.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating if any actions were added (boolean)
-</dd>
-</dl><a NAME="HistoryMenu.setInitialActions" ID="HistoryMenu.setInitialActions"></a>
-<h4>HistoryMenu.setInitialActions</h4>
-<b>setInitialActions</b>(<i>actions</i>)
-<p>
-        Public method to set the list of actions that should appear first in
-        the menu.
-</p><dl>
-<dt><i>actions</i></dt>
-<dd>
-list of initial actions (list of QAction)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="HistoryMenuModel" ID="HistoryMenuModel"></a>
-<h2>HistoryMenuModel</h2>
-<p>
-    Class implementing a model for the history menu.
-</p><p>
-    It maps the first bunch of items of the source model to the root.
-</p>
-<h3>Derived from</h3>
-QAbstractProxyModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>MOVEDROWS</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HistoryMenuModel.__init__">HistoryMenuModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HistoryMenuModel.bumpedRows">bumpedRows</a></td>
-<td>Public method to determine the number of rows moved to the root.</td>
-</tr><tr>
-<td><a href="#HistoryMenuModel.columnCount">columnCount</a></td>
-<td>Public method to get the number of columns.</td>
-</tr><tr>
-<td><a href="#HistoryMenuModel.index">index</a></td>
-<td>Public method to create an index.</td>
-</tr><tr>
-<td><a href="#HistoryMenuModel.mapFromSource">mapFromSource</a></td>
-<td>Public method to map an index to the proxy model index.</td>
-</tr><tr>
-<td><a href="#HistoryMenuModel.mapToSource">mapToSource</a></td>
-<td>Public method to map an index to the source model index.</td>
-</tr><tr>
-<td><a href="#HistoryMenuModel.mimeData">mimeData</a></td>
-<td>Public method to return the mime data.</td>
-</tr><tr>
-<td><a href="#HistoryMenuModel.parent">parent</a></td>
-<td>Public method to get the parent index.</td>
-</tr><tr>
-<td><a href="#HistoryMenuModel.rowCount">rowCount</a></td>
-<td>Public method to determine the number of rows.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HistoryMenuModel.__init__" ID="HistoryMenuModel.__init__"></a>
-<h4>HistoryMenuModel (Constructor)</h4>
-<b>HistoryMenuModel</b>(<i>sourceModel, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>sourceModel</i></dt>
-<dd>
-reference to the source model (QAbstractItemModel)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="HistoryMenuModel.bumpedRows" ID="HistoryMenuModel.bumpedRows"></a>
-<h4>HistoryMenuModel.bumpedRows</h4>
-<b>bumpedRows</b>(<i></i>)
-<p>
-        Public method to determine the number of rows moved to the root.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-number of rows moved to the root (integer)
-</dd>
-</dl><a NAME="HistoryMenuModel.columnCount" ID="HistoryMenuModel.columnCount"></a>
-<h4>HistoryMenuModel.columnCount</h4>
-<b>columnCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of columns.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl><a NAME="HistoryMenuModel.index" ID="HistoryMenuModel.index"></a>
-<h4>HistoryMenuModel.index</h4>
-<b>index</b>(<i>row, column, parent=None</i>)
-<p>
-        Public method to create an index.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row number for the index (integer)
-</dd><dt><i>column</i></dt>
-<dd>
-column number for the index (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-index of the parent item (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested index (QModelIndex)
-</dd>
-</dl><a NAME="HistoryMenuModel.mapFromSource" ID="HistoryMenuModel.mapFromSource"></a>
-<h4>HistoryMenuModel.mapFromSource</h4>
-<b>mapFromSource</b>(<i>sourceIndex</i>)
-<p>
-        Public method to map an index to the proxy model index.
-</p><dl>
-<dt><i>sourceIndex</i></dt>
-<dd>
-reference to a source model index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-proxy model index (QModelIndex)
-</dd>
-</dl><a NAME="HistoryMenuModel.mapToSource" ID="HistoryMenuModel.mapToSource"></a>
-<h4>HistoryMenuModel.mapToSource</h4>
-<b>mapToSource</b>(<i>proxyIndex</i>)
-<p>
-        Public method to map an index to the source model index.
-</p><dl>
-<dt><i>proxyIndex</i></dt>
-<dd>
-reference to a proxy model index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-source model index (QModelIndex)
-</dd>
-</dl><a NAME="HistoryMenuModel.mimeData" ID="HistoryMenuModel.mimeData"></a>
-<h4>HistoryMenuModel.mimeData</h4>
-<b>mimeData</b>(<i>indexes</i>)
-<p>
-        Public method to return the mime data.
-</p><dl>
-<dt><i>indexes</i></dt>
-<dd>
-list of indexes (QModelIndexList)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-mime data (QMimeData)
-</dd>
-</dl><a NAME="HistoryMenuModel.parent" ID="HistoryMenuModel.parent"></a>
-<h4>HistoryMenuModel.parent</h4>
-<b>parent</b>(<i>index</i>)
-<p>
-        Public method to get the parent index.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of item to get parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><a NAME="HistoryMenuModel.rowCount" ID="HistoryMenuModel.rowCount"></a>
-<h4>HistoryMenuModel.rowCount</h4>
-<b>rowCount</b>(<i>parent=None</i>)
-<p>
-        Public method to determine the number of rows.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of rows (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="HistoryMostVisitedMenu" ID="HistoryMostVisitedMenu"></a>
-<h2>HistoryMostVisitedMenu</h2>
-<p>
-    Class implementing the most visited history menu.
-</p><h3>Signals</h3>
-<dl>
-<dt>newUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL in a new tab
-</dd><dt>openUrl(QUrl, str)</dt>
-<dd>
-emitted to open a URL in the current tab
-</dd>
-</dl>
-<h3>Derived from</h3>
-E5ModelMenu
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HistoryMostVisitedMenu.__init__">HistoryMostVisitedMenu</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HistoryMostVisitedMenu.__activated">__activated</a></td>
-<td>Private slot handling the activated signal.</td>
-</tr><tr>
-<td><a href="#HistoryMostVisitedMenu.prePopulated">prePopulated</a></td>
-<td>Public method to add any actions before the tree.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HistoryMostVisitedMenu.__init__" ID="HistoryMostVisitedMenu.__init__"></a>
-<h4>HistoryMostVisitedMenu (Constructor)</h4>
-<b>HistoryMostVisitedMenu</b>(<i>count, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>count</i></dt>
-<dd>
-maximum number of entries to be shown (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="HistoryMostVisitedMenu.__activated" ID="HistoryMostVisitedMenu.__activated"></a>
-<h4>HistoryMostVisitedMenu.__activated</h4>
-<b>__activated</b>(<i>idx</i>)
-<p>
-        Private slot handling the activated signal.
-</p><dl>
-<dt><i>idx</i></dt>
-<dd>
-index of the activated item (QModelIndex)
-</dd>
-</dl><a NAME="HistoryMostVisitedMenu.prePopulated" ID="HistoryMostVisitedMenu.prePopulated"></a>
-<h4>HistoryMostVisitedMenu.prePopulated</h4>
-<b>prePopulated</b>(<i></i>)
-<p>
-        Public method to add any actions before the tree.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating if any actions were added (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="HistoryMostVisitedMenuModel" ID="HistoryMostVisitedMenuModel"></a>
-<h2>HistoryMostVisitedMenuModel</h2>
-<p>
-    Class implementing a model to show the most visited history entries.
-</p>
-<h3>Derived from</h3>
-QSortFilterProxyModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HistoryMostVisitedMenuModel.__init__">HistoryMostVisitedMenuModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HistoryMostVisitedMenuModel.lessThan">lessThan</a></td>
-<td>Public method used to sort the displayed items.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HistoryMostVisitedMenuModel.__init__" ID="HistoryMostVisitedMenuModel.__init__"></a>
-<h4>HistoryMostVisitedMenuModel (Constructor)</h4>
-<b>HistoryMostVisitedMenuModel</b>(<i>sourceModel, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>sourceModel</i></dt>
-<dd>
-reference to the source model (QAbstractItemModel)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="HistoryMostVisitedMenuModel.lessThan" ID="HistoryMostVisitedMenuModel.lessThan"></a>
-<h4>HistoryMostVisitedMenuModel.lessThan</h4>
-<b>lessThan</b>(<i>left, right</i>)
-<p>
-        Public method used to sort the displayed items.
-</p><dl>
-<dt><i>left</i></dt>
-<dd>
-index of left item (QModelIndex)
-</dd><dt><i>right</i></dt>
-<dd>
-index of right item (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-true, if left is less than right (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.History.HistoryModel.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.History.HistoryModel</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.History.HistoryModel</h1>
-<p>
-Module implementing the history model.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HistoryModel">HistoryModel</a></td>
-<td>Class implementing the history model.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HistoryModel" ID="HistoryModel"></a>
-<h2>HistoryModel</h2>
-<p>
-    Class implementing the history model.
-</p>
-<h3>Derived from</h3>
-QAbstractTableModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>DateRole</td></tr><tr><td>DateTimeRole</td></tr><tr><td>MaxRole</td></tr><tr><td>TitleRole</td></tr><tr><td>UrlRole</td></tr><tr><td>UrlStringRole</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HistoryModel.__init__">HistoryModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HistoryModel.columnCount">columnCount</a></td>
-<td>Public method to get the number of columns.</td>
-</tr><tr>
-<td><a href="#HistoryModel.data">data</a></td>
-<td>Public method to get data from the model.</td>
-</tr><tr>
-<td><a href="#HistoryModel.entryAdded">entryAdded</a></td>
-<td>Public slot to handle the addition of a history entry.</td>
-</tr><tr>
-<td><a href="#HistoryModel.entryUpdated">entryUpdated</a></td>
-<td>Public slot to handle the update of a history entry.</td>
-</tr><tr>
-<td><a href="#HistoryModel.headerData">headerData</a></td>
-<td>Public method to get the header data.</td>
-</tr><tr>
-<td><a href="#HistoryModel.historyReset">historyReset</a></td>
-<td>Public slot to reset the model.</td>
-</tr><tr>
-<td><a href="#HistoryModel.removeRows">removeRows</a></td>
-<td>Public method to remove history entries from the model.</td>
-</tr><tr>
-<td><a href="#HistoryModel.rowCount">rowCount</a></td>
-<td>Public method to determine the number of rows.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HistoryModel.__init__" ID="HistoryModel.__init__"></a>
-<h4>HistoryModel (Constructor)</h4>
-<b>HistoryModel</b>(<i>historyManager, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>historyManager</i></dt>
-<dd>
-reference to the history manager object
-            (HistoryManager)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="HistoryModel.columnCount" ID="HistoryModel.columnCount"></a>
-<h4>HistoryModel.columnCount</h4>
-<b>columnCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of columns.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl><a NAME="HistoryModel.data" ID="HistoryModel.data"></a>
-<h4>HistoryModel.data</h4>
-<b>data</b>(<i>index, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get data from the model.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of history entry to get data for (QModelIndex)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-history entry data
-</dd>
-</dl><a NAME="HistoryModel.entryAdded" ID="HistoryModel.entryAdded"></a>
-<h4>HistoryModel.entryAdded</h4>
-<b>entryAdded</b>(<i></i>)
-<p>
-        Public slot to handle the addition of a history entry.
-</p><a NAME="HistoryModel.entryUpdated" ID="HistoryModel.entryUpdated"></a>
-<h4>HistoryModel.entryUpdated</h4>
-<b>entryUpdated</b>(<i>row</i>)
-<p>
-        Public slot to handle the update of a history entry.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row number of the updated entry (integer)
-</dd>
-</dl><a NAME="HistoryModel.headerData" ID="HistoryModel.headerData"></a>
-<h4>HistoryModel.headerData</h4>
-<b>headerData</b>(<i>section, orientation, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get the header data.
-</p><dl>
-<dt><i>section</i></dt>
-<dd>
-section number (integer)
-</dd><dt><i>orientation</i></dt>
-<dd>
-header orientation (Qt.Orientation)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-header data
-</dd>
-</dl><a NAME="HistoryModel.historyReset" ID="HistoryModel.historyReset"></a>
-<h4>HistoryModel.historyReset</h4>
-<b>historyReset</b>(<i></i>)
-<p>
-        Public slot to reset the model.
-</p><a NAME="HistoryModel.removeRows" ID="HistoryModel.removeRows"></a>
-<h4>HistoryModel.removeRows</h4>
-<b>removeRows</b>(<i>row, count, parent=None</i>)
-<p>
-        Public method to remove history entries from the model.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row of the first history entry to remove (integer)
-</dd><dt><i>count</i></dt>
-<dd>
-number of history entries to remove (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-index of the parent entry (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating successful removal (boolean)
-</dd>
-</dl><a NAME="HistoryModel.rowCount" ID="HistoryModel.rowCount"></a>
-<h4>HistoryModel.rowCount</h4>
-<b>rowCount</b>(<i>parent=None</i>)
-<p>
-        Public method to determine the number of rows.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of rows (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.History.HistoryTreeModel.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,381 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.History.HistoryTreeModel</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.History.HistoryTreeModel</h1>
-<p>
-Module implementing the history tree model.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HistoryTreeModel">HistoryTreeModel</a></td>
-<td>Class implementing the history tree model.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="HistoryTreeModel" ID="HistoryTreeModel"></a>
-<h2>HistoryTreeModel</h2>
-<p>
-    Class implementing the history tree model.
-</p>
-<h3>Derived from</h3>
-QAbstractProxyModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HistoryTreeModel.__init__">HistoryTreeModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.__sourceDateRow">__sourceDateRow</a></td>
-<td>Private method to translate the top level date row into the offset where that date starts.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.__sourceReset">__sourceReset</a></td>
-<td>Private slot to handle a reset of the source model.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.__sourceRowsInserted">__sourceRowsInserted</a></td>
-<td>Private slot to handle the insertion of data in the source model.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.__sourceRowsRemoved">__sourceRowsRemoved</a></td>
-<td>Private slot to handle the removal of data in the source model.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.columnCount">columnCount</a></td>
-<td>Public method to get the number of columns.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.data">data</a></td>
-<td>Public method to get data from the model.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.flags">flags</a></td>
-<td>Public method to get the item flags.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.hasChildren">hasChildren</a></td>
-<td>Public method to check, if an entry has some children.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.headerData">headerData</a></td>
-<td>Public method to get the header data.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.index">index</a></td>
-<td>Public method to create an index.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.mapFromSource">mapFromSource</a></td>
-<td>Public method to map an index to the proxy model index.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.mapToSource">mapToSource</a></td>
-<td>Public method to map an index to the source model index.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.parent">parent</a></td>
-<td>Public method to get the parent index.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.removeRows">removeRows</a></td>
-<td>Public method to remove entries from the model.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.rowCount">rowCount</a></td>
-<td>Public method to determine the number of rows.</td>
-</tr><tr>
-<td><a href="#HistoryTreeModel.setSourceModel">setSourceModel</a></td>
-<td>Public method to set the source model.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HistoryTreeModel.__init__" ID="HistoryTreeModel.__init__"></a>
-<h4>HistoryTreeModel (Constructor)</h4>
-<b>HistoryTreeModel</b>(<i>sourceModel, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>sourceModel</i></dt>
-<dd>
-reference to the source model (QAbstractItemModel)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="HistoryTreeModel.__sourceDateRow" ID="HistoryTreeModel.__sourceDateRow"></a>
-<h4>HistoryTreeModel.__sourceDateRow</h4>
-<b>__sourceDateRow</b>(<i>row</i>)
-<p>
-        Private method to translate the top level date row into the offset
-        where that date starts.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row number of the date (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-offset where that date starts (integer)
-</dd>
-</dl><a NAME="HistoryTreeModel.__sourceReset" ID="HistoryTreeModel.__sourceReset"></a>
-<h4>HistoryTreeModel.__sourceReset</h4>
-<b>__sourceReset</b>(<i></i>)
-<p>
-        Private slot to handle a reset of the source model.
-</p><a NAME="HistoryTreeModel.__sourceRowsInserted" ID="HistoryTreeModel.__sourceRowsInserted"></a>
-<h4>HistoryTreeModel.__sourceRowsInserted</h4>
-<b>__sourceRowsInserted</b>(<i>parent, start, end</i>)
-<p>
-        Private slot to handle the insertion of data in the source model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent index (QModelIndex)
-</dd><dt><i>start</i></dt>
-<dd>
-start row (integer)
-</dd><dt><i>end</i></dt>
-<dd>
-end row (integer)
-</dd>
-</dl><a NAME="HistoryTreeModel.__sourceRowsRemoved" ID="HistoryTreeModel.__sourceRowsRemoved"></a>
-<h4>HistoryTreeModel.__sourceRowsRemoved</h4>
-<b>__sourceRowsRemoved</b>(<i>parent, start, end</i>)
-<p>
-        Private slot to handle the removal of data in the source model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent index (QModelIndex)
-</dd><dt><i>start</i></dt>
-<dd>
-start row (integer)
-</dd><dt><i>end</i></dt>
-<dd>
-end row (integer)
-</dd>
-</dl><a NAME="HistoryTreeModel.columnCount" ID="HistoryTreeModel.columnCount"></a>
-<h4>HistoryTreeModel.columnCount</h4>
-<b>columnCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of columns.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl><a NAME="HistoryTreeModel.data" ID="HistoryTreeModel.data"></a>
-<h4>HistoryTreeModel.data</h4>
-<b>data</b>(<i>index, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get data from the model.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of history entry to get data for (QModelIndex)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-history entry data
-</dd>
-</dl><a NAME="HistoryTreeModel.flags" ID="HistoryTreeModel.flags"></a>
-<h4>HistoryTreeModel.flags</h4>
-<b>flags</b>(<i>index</i>)
-<p>
-        Public method to get the item flags.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the item (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flags (Qt.ItemFlags)
-</dd>
-</dl><a NAME="HistoryTreeModel.hasChildren" ID="HistoryTreeModel.hasChildren"></a>
-<h4>HistoryTreeModel.hasChildren</h4>
-<b>hasChildren</b>(<i>parent=None</i>)
-<p>
-        Public method to check, if an entry has some children.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of the entry to check (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the presence of children (boolean)
-</dd>
-</dl><a NAME="HistoryTreeModel.headerData" ID="HistoryTreeModel.headerData"></a>
-<h4>HistoryTreeModel.headerData</h4>
-<b>headerData</b>(<i>section, orientation, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get the header data.
-</p><dl>
-<dt><i>section</i></dt>
-<dd>
-section number (integer)
-</dd><dt><i>orientation</i></dt>
-<dd>
-header orientation (Qt.Orientation)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-header data
-</dd>
-</dl><a NAME="HistoryTreeModel.index" ID="HistoryTreeModel.index"></a>
-<h4>HistoryTreeModel.index</h4>
-<b>index</b>(<i>row, column, parent=None</i>)
-<p>
-        Public method to create an index.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row number for the index (integer)
-</dd><dt><i>column</i></dt>
-<dd>
-column number for the index (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-index of the parent item (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested index (QModelIndex)
-</dd>
-</dl><a NAME="HistoryTreeModel.mapFromSource" ID="HistoryTreeModel.mapFromSource"></a>
-<h4>HistoryTreeModel.mapFromSource</h4>
-<b>mapFromSource</b>(<i>sourceIndex</i>)
-<p>
-        Public method to map an index to the proxy model index.
-</p><dl>
-<dt><i>sourceIndex</i></dt>
-<dd>
-reference to a source model index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-proxy model index (QModelIndex)
-</dd>
-</dl><a NAME="HistoryTreeModel.mapToSource" ID="HistoryTreeModel.mapToSource"></a>
-<h4>HistoryTreeModel.mapToSource</h4>
-<b>mapToSource</b>(<i>proxyIndex</i>)
-<p>
-        Public method to map an index to the source model index.
-</p><dl>
-<dt><i>proxyIndex</i></dt>
-<dd>
-reference to a proxy model index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-source model index (QModelIndex)
-</dd>
-</dl><a NAME="HistoryTreeModel.parent" ID="HistoryTreeModel.parent"></a>
-<h4>HistoryTreeModel.parent</h4>
-<b>parent</b>(<i>index</i>)
-<p>
-        Public method to get the parent index.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of item to get parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><a NAME="HistoryTreeModel.removeRows" ID="HistoryTreeModel.removeRows"></a>
-<h4>HistoryTreeModel.removeRows</h4>
-<b>removeRows</b>(<i>row, count, parent=None</i>)
-<p>
-        Public method to remove entries from the model.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row of the first entry to remove (integer)
-</dd><dt><i>count</i></dt>
-<dd>
-number of entries to remove (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-index of the parent entry (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating successful removal (boolean)
-</dd>
-</dl><a NAME="HistoryTreeModel.rowCount" ID="HistoryTreeModel.rowCount"></a>
-<h4>HistoryTreeModel.rowCount</h4>
-<b>rowCount</b>(<i>parent=None</i>)
-<p>
-        Public method to determine the number of rows.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of rows (integer)
-</dd>
-</dl><a NAME="HistoryTreeModel.setSourceModel" ID="HistoryTreeModel.setSourceModel"></a>
-<h4>HistoryTreeModel.setSourceModel</h4>
-<b>setSourceModel</b>(<i>sourceModel</i>)
-<p>
-        Public method to set the source model.
-</p><dl>
-<dt><i>sourceModel</i></dt>
-<dd>
-reference to the source model (QAbstractItemModel)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.JavaScriptResources.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.JavaScriptResources</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.JavaScriptResources</h1>
-<p>
-Module containing some HTML resources.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>parseForms_js</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.AboutAccessHandler.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.AboutAccessHandler</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.AboutAccessHandler</h1>
-<p>
-Module implementing a scheme access handler for about schemes.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#AboutAccessHandler">AboutAccessHandler</a></td>
-<td>Class implementing a scheme access handler for about schemes.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="AboutAccessHandler" ID="AboutAccessHandler"></a>
-<h2>AboutAccessHandler</h2>
-<p>
-    Class implementing a scheme access handler for about schemes.
-</p>
-<h3>Derived from</h3>
-SchemeAccessHandler
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#AboutAccessHandler.createRequest">createRequest</a></td>
-<td>Public method to create a request.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="AboutAccessHandler.createRequest" ID="AboutAccessHandler.createRequest"></a>
-<h4>AboutAccessHandler.createRequest</h4>
-<b>createRequest</b>(<i>op, request, outgoingData=None</i>)
-<p>
-        Public method to create a request.
-</p><dl>
-<dt><i>op</i></dt>
-<dd>
-the operation to be performed
-            (QNetworkAccessManager.Operation)
-</dd><dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd><dt><i>outgoingData</i></dt>
-<dd>
-reference to an IODevice containing data to be sent
-            (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the created reply object (QNetworkReply)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.EmptyNetworkReply.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.EmptyNetworkReply</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.EmptyNetworkReply</h1>
-<p>
-Module implementing a network reply class for an empty reply
-(i.e. request was handle other way).
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#EmptyNetworkReply">EmptyNetworkReply</a></td>
-<td>Class implementing an empty network reply.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="EmptyNetworkReply" ID="EmptyNetworkReply"></a>
-<h2>EmptyNetworkReply</h2>
-<p>
-    Class implementing an empty network reply.
-</p>
-<h3>Derived from</h3>
-QNetworkReply
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#EmptyNetworkReply.__init__">EmptyNetworkReply</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#EmptyNetworkReply.abort">abort</a></td>
-<td>Public slot to abort the operation.</td>
-</tr><tr>
-<td><a href="#EmptyNetworkReply.readData">readData</a></td>
-<td>Public method to retrieve data from the reply object.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="EmptyNetworkReply.__init__" ID="EmptyNetworkReply.__init__"></a>
-<h4>EmptyNetworkReply (Constructor)</h4>
-<b>EmptyNetworkReply</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="EmptyNetworkReply.abort" ID="EmptyNetworkReply.abort"></a>
-<h4>EmptyNetworkReply.abort</h4>
-<b>abort</b>(<i></i>)
-<p>
-        Public slot to abort the operation.
-</p><a NAME="EmptyNetworkReply.readData" ID="EmptyNetworkReply.readData"></a>
-<h4>EmptyNetworkReply.readData</h4>
-<b>readData</b>(<i>maxlen</i>)
-<p>
-        Public method to retrieve data from the reply object.
-</p><dl>
-<dt><i>maxlen</i></dt>
-<dd>
-maximum number of bytes to read (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-string containing the data (bytes)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.EricAccessHandler.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.EricAccessHandler</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.EricAccessHandler</h1>
-<p>
-Module implementing a scheme access handler for Python resources.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#EricAccessHandler">EricAccessHandler</a></td>
-<td>Class implementing a scheme access handler for Python resources.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="EricAccessHandler" ID="EricAccessHandler"></a>
-<h2>EricAccessHandler</h2>
-<p>
-    Class implementing a scheme access handler for Python resources.
-</p>
-<h3>Derived from</h3>
-SchemeAccessHandler
-<h3>Class Attributes</h3>
-<table>
-<tr><td>_homePage</td></tr><tr><td>_speedDialPage</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#EricAccessHandler.__createHomePage">__createHomePage</a></td>
-<td>Private method to create the Home page.</td>
-</tr><tr>
-<td><a href="#EricAccessHandler.__createSpeedDialPage">__createSpeedDialPage</a></td>
-<td>Private method to create the Speeddial page.</td>
-</tr><tr>
-<td><a href="#EricAccessHandler.createRequest">createRequest</a></td>
-<td>Public method to create a request.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="EricAccessHandler.__createHomePage" ID="EricAccessHandler.__createHomePage"></a>
-<h4>EricAccessHandler.__createHomePage</h4>
-<b>__createHomePage</b>(<i></i>)
-<p>
-        Private method to create the Home page.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-prepared home page (QByteArray)
-</dd>
-</dl><a NAME="EricAccessHandler.__createSpeedDialPage" ID="EricAccessHandler.__createSpeedDialPage"></a>
-<h4>EricAccessHandler.__createSpeedDialPage</h4>
-<b>__createSpeedDialPage</b>(<i></i>)
-<p>
-        Private method to create the Speeddial page.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-prepared speeddial page (QByteArray)
-</dd>
-</dl><a NAME="EricAccessHandler.createRequest" ID="EricAccessHandler.createRequest"></a>
-<h4>EricAccessHandler.createRequest</h4>
-<b>createRequest</b>(<i>op, request, outgoingData=None</i>)
-<p>
-        Public method to create a request.
-</p><dl>
-<dt><i>op</i></dt>
-<dd>
-the operation to be performed
-            (QNetworkAccessManager.Operation)
-</dd><dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd><dt><i>outgoingData</i></dt>
-<dd>
-reference to an IODevice containing data to be sent
-            (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the created reply object (QNetworkReply)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.FileAccessHandler.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.FileAccessHandler</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.FileAccessHandler</h1>
-<p>
-Module implementing a scheme access handler for file.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FileAccessHandler">FileAccessHandler</a></td>
-<td>Class implementing a scheme access handler for FTP.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FileAccessHandler" ID="FileAccessHandler"></a>
-<h2>FileAccessHandler</h2>
-<p>
-    Class implementing a scheme access handler for FTP.
-</p>
-<h3>Derived from</h3>
-SchemeAccessHandler
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FileAccessHandler.__init__">FileAccessHandler</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FileAccessHandler.createRequest">createRequest</a></td>
-<td>Public method to create a request.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FileAccessHandler.__init__" ID="FileAccessHandler.__init__"></a>
-<h4>FileAccessHandler (Constructor)</h4>
-<b>FileAccessHandler</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="FileAccessHandler.createRequest" ID="FileAccessHandler.createRequest"></a>
-<h4>FileAccessHandler.createRequest</h4>
-<b>createRequest</b>(<i>op, request, outgoingData=None</i>)
-<p>
-        Public method to create a request.
-</p><dl>
-<dt><i>op</i></dt>
-<dd>
-the operation to be performed
-            (QNetworkAccessManager.Operation)
-</dd><dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd><dt><i>outgoingData</i></dt>
-<dd>
-reference to an IODevice containing data to be sent
-            (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the created reply object (QNetworkReply)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.FileReply.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.FileReply</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.FileReply</h1>
-<p>
-Module implementing a network reply class for directory resources.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>dirListPage_html</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FileReply">FileReply</a></td>
-<td>Class implementing a network reply for directory resources.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FileReply" ID="FileReply"></a>
-<h2>FileReply</h2>
-<p>
-    Class implementing a network reply for directory resources.
-</p>
-<h3>Derived from</h3>
-QNetworkReply
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FileReply.__init__">FileReply</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FileReply.__cssLinkClass">__cssLinkClass</a></td>
-<td>Private method to generate a link class with an icon.</td>
-</tr><tr>
-<td><a href="#FileReply.__loadDirectory">__loadDirectory</a></td>
-<td>Private slot loading the directory and preparing the listing page.</td>
-</tr><tr>
-<td><a href="#FileReply.abort">abort</a></td>
-<td>Public slot to abort the operation.</td>
-</tr><tr>
-<td><a href="#FileReply.bytesAvailable">bytesAvailable</a></td>
-<td>Public method to determined the bytes available for being read.</td>
-</tr><tr>
-<td><a href="#FileReply.isSequential">isSequential</a></td>
-<td>Public method to check for sequential access.</td>
-</tr><tr>
-<td><a href="#FileReply.readData">readData</a></td>
-<td>Public method to retrieve data from the reply object.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FileReply.__init__" ID="FileReply.__init__"></a>
-<h4>FileReply (Constructor)</h4>
-<b>FileReply</b>(<i>url, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-requested FTP URL (QUrl)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="FileReply.__cssLinkClass" ID="FileReply.__cssLinkClass"></a>
-<h4>FileReply.__cssLinkClass</h4>
-<b>__cssLinkClass</b>(<i>icon, size=32</i>)
-<p>
-        Private method to generate a link class with an icon.
-</p><dl>
-<dt><i>icon</i></dt>
-<dd>
-icon to be included (QIcon)
-</dd><dt><i>size</i></dt>
-<dd>
-size of the icon to be generated (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-CSS class string (string)
-</dd>
-</dl><a NAME="FileReply.__loadDirectory" ID="FileReply.__loadDirectory"></a>
-<h4>FileReply.__loadDirectory</h4>
-<b>__loadDirectory</b>(<i></i>)
-<p>
-        Private slot loading the directory and preparing the listing page.
-</p><a NAME="FileReply.abort" ID="FileReply.abort"></a>
-<h4>FileReply.abort</h4>
-<b>abort</b>(<i></i>)
-<p>
-        Public slot to abort the operation.
-</p><a NAME="FileReply.bytesAvailable" ID="FileReply.bytesAvailable"></a>
-<h4>FileReply.bytesAvailable</h4>
-<b>bytesAvailable</b>(<i></i>)
-<p>
-        Public method to determined the bytes available for being read.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-bytes available (integer)
-</dd>
-</dl><a NAME="FileReply.isSequential" ID="FileReply.isSequential"></a>
-<h4>FileReply.isSequential</h4>
-<b>isSequential</b>(<i></i>)
-<p>
-        Public method to check for sequential access.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating sequential access (boolean)
-</dd>
-</dl><a NAME="FileReply.readData" ID="FileReply.readData"></a>
-<h4>FileReply.readData</h4>
-<b>readData</b>(<i>maxlen</i>)
-<p>
-        Public method to retrieve data from the reply object.
-</p><dl>
-<dt><i>maxlen</i></dt>
-<dd>
-maximum number of bytes to read (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-string containing the data (bytes)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.FollowRedirectReply.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,188 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.FollowRedirectReply</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.FollowRedirectReply</h1>
-<p>
-Module implementing a network reply delegate allowing to check redirects.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FollowRedirectReply">FollowRedirectReply</a></td>
-<td>Class implementing a network reply delegate allowing to check redirects.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FollowRedirectReply" ID="FollowRedirectReply"></a>
-<h2>FollowRedirectReply</h2>
-<p>
-    Class implementing a network reply delegate allowing to check redirects.
-</p><h3>Signals</h3>
-<dl>
-<dt>finished()</dt>
-<dd>
-emitted to indicate the end of the redirect
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FollowRedirectReply.__init__">FollowRedirectReply</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FollowRedirectReply.__replyFinished">__replyFinished</a></td>
-<td>Private slot handling the receipt of the requested data.</td>
-</tr><tr>
-<td><a href="#FollowRedirectReply.close">close</a></td>
-<td>Public method to close the data stream.</td>
-</tr><tr>
-<td><a href="#FollowRedirectReply.error">error</a></td>
-<td>Public method to get the error information.</td>
-</tr><tr>
-<td><a href="#FollowRedirectReply.errorString">errorString</a></td>
-<td>Public method to get the error message.</td>
-</tr><tr>
-<td><a href="#FollowRedirectReply.originalUrl">originalUrl</a></td>
-<td>Public method to get the original URL.</td>
-</tr><tr>
-<td><a href="#FollowRedirectReply.readAll">readAll</a></td>
-<td>Public method to read all received data.</td>
-</tr><tr>
-<td><a href="#FollowRedirectReply.reply">reply</a></td>
-<td>Public method to get the reply object.</td>
-</tr><tr>
-<td><a href="#FollowRedirectReply.url">url</a></td>
-<td>Public method to get the final URL (after redirects).</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FollowRedirectReply.__init__" ID="FollowRedirectReply.__init__"></a>
-<h4>FollowRedirectReply (Constructor)</h4>
-<b>FollowRedirectReply</b>(<i>url, manager, maxRedirects=5</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to get (QUrl)
-</dd><dt><i>manager</i></dt>
-<dd>
-reference to the network access manager
-            (QNetworkAccessManager)
-</dd><dt><i>maxRedirects=</i></dt>
-<dd>
-maximum allowed redirects (integer)
-</dd>
-</dl><a NAME="FollowRedirectReply.__replyFinished" ID="FollowRedirectReply.__replyFinished"></a>
-<h4>FollowRedirectReply.__replyFinished</h4>
-<b>__replyFinished</b>(<i></i>)
-<p>
-        Private slot handling the receipt of the requested data.
-</p><a NAME="FollowRedirectReply.close" ID="FollowRedirectReply.close"></a>
-<h4>FollowRedirectReply.close</h4>
-<b>close</b>(<i></i>)
-<p>
-        Public method to close the data stream.
-</p><a NAME="FollowRedirectReply.error" ID="FollowRedirectReply.error"></a>
-<h4>FollowRedirectReply.error</h4>
-<b>error</b>(<i></i>)
-<p>
-        Public method to get the error information.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-error code (QNetworkReply.NetworkError)
-</dd>
-</dl><a NAME="FollowRedirectReply.errorString" ID="FollowRedirectReply.errorString"></a>
-<h4>FollowRedirectReply.errorString</h4>
-<b>errorString</b>(<i></i>)
-<p>
-        Public method to get the error message.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-error message (string)
-</dd>
-</dl><a NAME="FollowRedirectReply.originalUrl" ID="FollowRedirectReply.originalUrl"></a>
-<h4>FollowRedirectReply.originalUrl</h4>
-<b>originalUrl</b>(<i></i>)
-<p>
-        Public method to get the original URL.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-original URL (QUrl)
-</dd>
-</dl><a NAME="FollowRedirectReply.readAll" ID="FollowRedirectReply.readAll"></a>
-<h4>FollowRedirectReply.readAll</h4>
-<b>readAll</b>(<i></i>)
-<p>
-        Public method to read all received data.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-received raw data (QByteArray)
-</dd>
-</dl><a NAME="FollowRedirectReply.reply" ID="FollowRedirectReply.reply"></a>
-<h4>FollowRedirectReply.reply</h4>
-<b>reply</b>(<i></i>)
-<p>
-        Public method to get the reply object.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the reply object (QNetworkReply)
-</dd>
-</dl><a NAME="FollowRedirectReply.url" ID="FollowRedirectReply.url"></a>
-<h4>FollowRedirectReply.url</h4>
-<b>url</b>(<i></i>)
-<p>
-        Public method to get the final URL (after redirects).
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-final URL (QUrl)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.FtpAccessHandler.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,169 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.FtpAccessHandler</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.FtpAccessHandler</h1>
-<p>
-Module implementing a scheme access handler for FTP.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FtpAccessHandler">FtpAccessHandler</a></td>
-<td>Class implementing a scheme access handler for FTP.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FtpAccessHandler" ID="FtpAccessHandler"></a>
-<h2>FtpAccessHandler</h2>
-<p>
-    Class implementing a scheme access handler for FTP.
-</p>
-<h3>Derived from</h3>
-SchemeAccessHandler
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FtpAccessHandler.__init__">FtpAccessHandler</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FtpAccessHandler.createRequest">createRequest</a></td>
-<td>Public method to create a request.</td>
-</tr><tr>
-<td><a href="#FtpAccessHandler.getAuthenticator">getAuthenticator</a></td>
-<td>Public method to get an authenticator for the given realm.</td>
-</tr><tr>
-<td><a href="#FtpAccessHandler.getProxyAuthenticator">getProxyAuthenticator</a></td>
-<td>Public method to get the authenticator for the FTP proxy.</td>
-</tr><tr>
-<td><a href="#FtpAccessHandler.setAuthenticator">setAuthenticator</a></td>
-<td>Public method to add or change an authenticator in our cache.</td>
-</tr><tr>
-<td><a href="#FtpAccessHandler.setProxyAuthenticator">setProxyAuthenticator</a></td>
-<td>Public method to add or change the authenticator for the FTP proxy.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FtpAccessHandler.__init__" ID="FtpAccessHandler.__init__"></a>
-<h4>FtpAccessHandler (Constructor)</h4>
-<b>FtpAccessHandler</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="FtpAccessHandler.createRequest" ID="FtpAccessHandler.createRequest"></a>
-<h4>FtpAccessHandler.createRequest</h4>
-<b>createRequest</b>(<i>op, request, outgoingData=None</i>)
-<p>
-        Public method to create a request.
-</p><dl>
-<dt><i>op</i></dt>
-<dd>
-the operation to be performed
-            (QNetworkAccessManager.Operation)
-</dd><dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd><dt><i>outgoingData</i></dt>
-<dd>
-reference to an IODevice containing data to be sent
-            (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the created reply object (QNetworkReply)
-</dd>
-</dl><a NAME="FtpAccessHandler.getAuthenticator" ID="FtpAccessHandler.getAuthenticator"></a>
-<h4>FtpAccessHandler.getAuthenticator</h4>
-<b>getAuthenticator</b>(<i>realm</i>)
-<p>
-        Public method to get an authenticator for the given realm.
-</p><dl>
-<dt><i>realm</i></dt>
-<dd>
-name of the realm to get the authenticator for (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-authenticator for the given realm (QAuthenticator) or None
-</dd>
-</dl><a NAME="FtpAccessHandler.getProxyAuthenticator" ID="FtpAccessHandler.getProxyAuthenticator"></a>
-<h4>FtpAccessHandler.getProxyAuthenticator</h4>
-<b>getProxyAuthenticator</b>(<i></i>)
-<p>
-        Public method to get the authenticator for the FTP proxy.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-authenticator for the FTP proxy (QAuthenticator)
-</dd>
-</dl><a NAME="FtpAccessHandler.setAuthenticator" ID="FtpAccessHandler.setAuthenticator"></a>
-<h4>FtpAccessHandler.setAuthenticator</h4>
-<b>setAuthenticator</b>(<i>realm, authenticator</i>)
-<p>
-        Public method to add or change an authenticator in our cache.
-</p><dl>
-<dt><i>realm</i></dt>
-<dd>
-name of the realm the authenticator belongs to (string)
-</dd><dt><i>authenticator</i></dt>
-<dd>
-authenticator to add to the cache
-            (QAuthenticator). If it is None, the entry will be deleted from
-            the cache.
-</dd>
-</dl><a NAME="FtpAccessHandler.setProxyAuthenticator" ID="FtpAccessHandler.setProxyAuthenticator"></a>
-<h4>FtpAccessHandler.setProxyAuthenticator</h4>
-<b>setProxyAuthenticator</b>(<i>authenticator</i>)
-<p>
-        Public method to add or change the authenticator for the FTP proxy.
-</p><dl>
-<dt><i>authenticator</i></dt>
-<dd>
-authenticator for the FTP proxy (QAuthenticator)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.FtpReply.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.FtpReply</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.FtpReply</h1>
-<p>
-Module implementing a network reply class for FTP resources.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>ftpListPage_html</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FtpReply">FtpReply</a></td>
-<td>Class implementing a network reply for FTP resources.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FtpReply" ID="FtpReply"></a>
-<h2>FtpReply</h2>
-<p>
-    Class implementing a network reply for FTP resources.
-</p>
-<h3>Derived from</h3>
-QNetworkReply
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FtpReply.__init__">FtpReply</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FtpReply.__cssLinkClass">__cssLinkClass</a></td>
-<td>Private method to generate a link class with an icon.</td>
-</tr><tr>
-<td><a href="#FtpReply.__dirCallback">__dirCallback</a></td>
-<td>Private slot handling the receipt of directory listings.</td>
-</tr><tr>
-<td><a href="#FtpReply.__doFtpCommands">__doFtpCommands</a></td>
-<td>Private slot doing the sequence of FTP commands to get the requested result.</td>
-</tr><tr>
-<td><a href="#FtpReply.__doFtpLogin">__doFtpLogin</a></td>
-<td>Private method to do the FTP login with asking for a username and password, if the login fails with an error 530.</td>
-</tr><tr>
-<td><a href="#FtpReply.__retrCallback">__retrCallback</a></td>
-<td>Private slot handling the reception of data.</td>
-</tr><tr>
-<td><a href="#FtpReply.__setContent">__setContent</a></td>
-<td>Private method to finish the setup of the data.</td>
-</tr><tr>
-<td><a href="#FtpReply.__setListContent">__setListContent</a></td>
-<td>Private method to prepare the content for the reader.</td>
-</tr><tr>
-<td><a href="#FtpReply.abort">abort</a></td>
-<td>Public slot to abort the operation.</td>
-</tr><tr>
-<td><a href="#FtpReply.bytesAvailable">bytesAvailable</a></td>
-<td>Public method to determined the bytes available for being read.</td>
-</tr><tr>
-<td><a href="#FtpReply.isSequential">isSequential</a></td>
-<td>Public method to check for sequential access.</td>
-</tr><tr>
-<td><a href="#FtpReply.readData">readData</a></td>
-<td>Public method to retrieve data from the reply object.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FtpReply.__init__" ID="FtpReply.__init__"></a>
-<h4>FtpReply (Constructor)</h4>
-<b>FtpReply</b>(<i>url, accessHandler, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-requested FTP URL (QUrl)
-</dd><dt><i>accessHandler</i></dt>
-<dd>
-reference to the access handler (FtpAccessHandler)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="FtpReply.__cssLinkClass" ID="FtpReply.__cssLinkClass"></a>
-<h4>FtpReply.__cssLinkClass</h4>
-<b>__cssLinkClass</b>(<i>icon, size=32</i>)
-<p>
-        Private method to generate a link class with an icon.
-</p><dl>
-<dt><i>icon</i></dt>
-<dd>
-icon to be included (QIcon)
-</dd><dt><i>size</i></dt>
-<dd>
-size of the icon to be generated (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-CSS class string (string)
-</dd>
-</dl><a NAME="FtpReply.__dirCallback" ID="FtpReply.__dirCallback"></a>
-<h4>FtpReply.__dirCallback</h4>
-<b>__dirCallback</b>(<i>line</i>)
-<p>
-        Private slot handling the receipt of directory listings.
-</p><dl>
-<dt><i>line</i></dt>
-<dd>
-the received line of the directory listing (string)
-</dd>
-</dl><a NAME="FtpReply.__doFtpCommands" ID="FtpReply.__doFtpCommands"></a>
-<h4>FtpReply.__doFtpCommands</h4>
-<b>__doFtpCommands</b>(<i></i>)
-<p>
-        Private slot doing the sequence of FTP commands to get the requested
-        result.
-</p><a NAME="FtpReply.__doFtpLogin" ID="FtpReply.__doFtpLogin"></a>
-<h4>FtpReply.__doFtpLogin</h4>
-<b>__doFtpLogin</b>(<i>username, password, byAuth=False</i>)
-<p>
-        Private method to do the FTP login with asking for a username and
-        password, if the login fails with an error 530.
-</p><dl>
-<dt><i>username</i></dt>
-<dd>
-user name to use for the login (string)
-</dd><dt><i>password</i></dt>
-<dd>
-password to use for the login (string)
-</dd><dt><i>byAuth</i></dt>
-<dd>
-flag indicating that the login data was provided by an
-            authenticator (boolean)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple of two flags indicating a successful login and
-            if the login should be retried (boolean, boolean)
-</dd>
-</dl><a NAME="FtpReply.__retrCallback" ID="FtpReply.__retrCallback"></a>
-<h4>FtpReply.__retrCallback</h4>
-<b>__retrCallback</b>(<i>data</i>)
-<p>
-        Private slot handling the reception of data.
-</p><dl>
-<dt><i>data</i></dt>
-<dd>
-data received from the FTP server (bytes)
-</dd>
-</dl><a NAME="FtpReply.__setContent" ID="FtpReply.__setContent"></a>
-<h4>FtpReply.__setContent</h4>
-<b>__setContent</b>(<i></i>)
-<p>
-        Private method to finish the setup of the data.
-</p><a NAME="FtpReply.__setListContent" ID="FtpReply.__setListContent"></a>
-<h4>FtpReply.__setListContent</h4>
-<b>__setListContent</b>(<i></i>)
-<p>
-        Private method to prepare the content for the reader.
-</p><a NAME="FtpReply.abort" ID="FtpReply.abort"></a>
-<h4>FtpReply.abort</h4>
-<b>abort</b>(<i></i>)
-<p>
-        Public slot to abort the operation.
-</p><a NAME="FtpReply.bytesAvailable" ID="FtpReply.bytesAvailable"></a>
-<h4>FtpReply.bytesAvailable</h4>
-<b>bytesAvailable</b>(<i></i>)
-<p>
-        Public method to determined the bytes available for being read.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-bytes available (integer)
-</dd>
-</dl><a NAME="FtpReply.isSequential" ID="FtpReply.isSequential"></a>
-<h4>FtpReply.isSequential</h4>
-<b>isSequential</b>(<i></i>)
-<p>
-        Public method to check for sequential access.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating sequential access (boolean)
-</dd>
-</dl><a NAME="FtpReply.readData" ID="FtpReply.readData"></a>
-<h4>FtpReply.readData</h4>
-<b>readData</b>(<i>maxlen</i>)
-<p>
-        Public method to retrieve data from the reply object.
-</p><dl>
-<dt><i>maxlen</i></dt>
-<dd>
-maximum number of bytes to read (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-string containing the data (bytes)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.NetworkAccessManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.NetworkAccessManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.NetworkAccessManager</h1>
-<p>
-Module implementing a QNetworkAccessManager subclass.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#NetworkAccessManager">NetworkAccessManager</a></td>
-<td>Class implementing a QNetworkAccessManager subclass.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="NetworkAccessManager" ID="NetworkAccessManager"></a>
-<h2>NetworkAccessManager</h2>
-<p>
-    Class implementing a QNetworkAccessManager subclass.
-</p><h3>Signals</h3>
-<dl>
-<dt>requestCreated</dt>
-<dd>
-emitted after the request has been created passing
-        the operation, a reference to the network request and a reference to
-        the network reply (QNetworkAccessManager.Operation, QNetworkRequest,
-        QNetworkReply)
-</dd>
-</dl>
-<h3>Derived from</h3>
-QNetworkAccessManager
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#NetworkAccessManager.__init__">NetworkAccessManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#NetworkAccessManager.__authenticationRequired">__authenticationRequired</a></td>
-<td>Private slot to handle an authentication request.</td>
-</tr><tr>
-<td><a href="#NetworkAccessManager.__setDiskCache">__setDiskCache</a></td>
-<td>Private method to set the disk cache.</td>
-</tr><tr>
-<td><a href="#NetworkAccessManager.createRequest">createRequest</a></td>
-<td>Public method to create a request.</td>
-</tr><tr>
-<td><a href="#NetworkAccessManager.languagesChanged">languagesChanged</a></td>
-<td>Public slot to (re-)load the list of accepted languages.</td>
-</tr><tr>
-<td><a href="#NetworkAccessManager.preferencesChanged">preferencesChanged</a></td>
-<td>Public slot to signal a change of preferences.</td>
-</tr><tr>
-<td><a href="#NetworkAccessManager.setSchemeHandler">setSchemeHandler</a></td>
-<td>Public method to register a scheme handler.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="NetworkAccessManager.__init__" ID="NetworkAccessManager.__init__"></a>
-<h4>NetworkAccessManager (Constructor)</h4>
-<b>NetworkAccessManager</b>(<i>engine, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the help engine (QHelpEngine)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="NetworkAccessManager.__authenticationRequired" ID="NetworkAccessManager.__authenticationRequired"></a>
-<h4>NetworkAccessManager.__authenticationRequired</h4>
-<b>__authenticationRequired</b>(<i>reply, auth</i>)
-<p>
-        Private slot to handle an authentication request.
-</p><dl>
-<dt><i>reply</i></dt>
-<dd>
-reference to the reply object (QNetworkReply)
-</dd><dt><i>auth</i></dt>
-<dd>
-reference to the authenticator object (QAuthenticator)
-</dd>
-</dl><a NAME="NetworkAccessManager.__setDiskCache" ID="NetworkAccessManager.__setDiskCache"></a>
-<h4>NetworkAccessManager.__setDiskCache</h4>
-<b>__setDiskCache</b>(<i></i>)
-<p>
-        Private method to set the disk cache.
-</p><a NAME="NetworkAccessManager.createRequest" ID="NetworkAccessManager.createRequest"></a>
-<h4>NetworkAccessManager.createRequest</h4>
-<b>createRequest</b>(<i>op, request, outgoingData=None</i>)
-<p>
-        Public method to create a request.
-</p><dl>
-<dt><i>op</i></dt>
-<dd>
-the operation to be performed
-            (QNetworkAccessManager.Operation)
-</dd><dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd><dt><i>outgoingData</i></dt>
-<dd>
-reference to an IODevice containing data to be sent
-            (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the created reply object (QNetworkReply)
-</dd>
-</dl><a NAME="NetworkAccessManager.languagesChanged" ID="NetworkAccessManager.languagesChanged"></a>
-<h4>NetworkAccessManager.languagesChanged</h4>
-<b>languagesChanged</b>(<i></i>)
-<p>
-        Public slot to (re-)load the list of accepted languages.
-</p><a NAME="NetworkAccessManager.preferencesChanged" ID="NetworkAccessManager.preferencesChanged"></a>
-<h4>NetworkAccessManager.preferencesChanged</h4>
-<b>preferencesChanged</b>(<i></i>)
-<p>
-        Public slot to signal a change of preferences.
-</p><a NAME="NetworkAccessManager.setSchemeHandler" ID="NetworkAccessManager.setSchemeHandler"></a>
-<h4>NetworkAccessManager.setSchemeHandler</h4>
-<b>setSchemeHandler</b>(<i>scheme, handler</i>)
-<p>
-        Public method to register a scheme handler.
-</p><dl>
-<dt><i>scheme</i></dt>
-<dd>
-access scheme (string)
-</dd><dt><i>handler</i></dt>
-<dd>
-reference to the scheme handler object
-            (SchemeAccessHandler)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.NetworkAccessManagerProxy.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.NetworkAccessManagerProxy</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.NetworkAccessManagerProxy</h1>
-<p>
-Module implementing a network access manager proxy for web pages.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#NetworkAccessManagerProxy">NetworkAccessManagerProxy</a></td>
-<td>Class implementing a network access manager proxy for web pages.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="NetworkAccessManagerProxy" ID="NetworkAccessManagerProxy"></a>
-<h2>NetworkAccessManagerProxy</h2>
-<p>
-    Class implementing a network access manager proxy for web pages.
-</p>
-<h3>Derived from</h3>
-QNetworkAccessManager
-<h3>Class Attributes</h3>
-<table>
-<tr><td>primaryManager</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#NetworkAccessManagerProxy.__init__">NetworkAccessManagerProxy</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#NetworkAccessManagerProxy.createRequest">createRequest</a></td>
-<td>Public method to create a request.</td>
-</tr><tr>
-<td><a href="#NetworkAccessManagerProxy.setPrimaryNetworkAccessManager">setPrimaryNetworkAccessManager</a></td>
-<td>Public method to set the primary network access manager.</td>
-</tr><tr>
-<td><a href="#NetworkAccessManagerProxy.setWebPage">setWebPage</a></td>
-<td>Public method to set the reference to a web page.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="NetworkAccessManagerProxy.__init__" ID="NetworkAccessManagerProxy.__init__"></a>
-<h4>NetworkAccessManagerProxy (Constructor)</h4>
-<b>NetworkAccessManagerProxy</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="NetworkAccessManagerProxy.createRequest" ID="NetworkAccessManagerProxy.createRequest"></a>
-<h4>NetworkAccessManagerProxy.createRequest</h4>
-<b>createRequest</b>(<i>op, request, outgoingData=None</i>)
-<p>
-        Public method to create a request.
-</p><dl>
-<dt><i>op</i></dt>
-<dd>
-the operation to be performed
-            (QNetworkAccessManager.Operation)
-</dd><dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd><dt><i>outgoingData</i></dt>
-<dd>
-reference to an IODevice containing data to be sent
-            (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the created reply object (QNetworkReply)
-</dd>
-</dl><a NAME="NetworkAccessManagerProxy.setPrimaryNetworkAccessManager" ID="NetworkAccessManagerProxy.setPrimaryNetworkAccessManager"></a>
-<h4>NetworkAccessManagerProxy.setPrimaryNetworkAccessManager</h4>
-<b>setPrimaryNetworkAccessManager</b>(<i>manager</i>)
-<p>
-        Public method to set the primary network access manager.
-</p><dl>
-<dt><i>manager</i></dt>
-<dd>
-reference to the network access manager object
-            (QNetworkAccessManager)
-</dd>
-</dl><a NAME="NetworkAccessManagerProxy.setWebPage" ID="NetworkAccessManagerProxy.setWebPage"></a>
-<h4>NetworkAccessManagerProxy.setWebPage</h4>
-<b>setWebPage</b>(<i>page</i>)
-<p>
-        Public method to set the reference to a web page.
-</p><dl>
-<dt><i>page</i></dt>
-<dd>
-reference to the web page object (HelpWebPage)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.NetworkDiskCache.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.NetworkDiskCache</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.NetworkDiskCache</h1>
-<p>
-Module implementing a disk cache respecting privacy.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#NetworkDiskCache">NetworkDiskCache</a></td>
-<td>Class implementing a disk cache respecting privacy.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="NetworkDiskCache" ID="NetworkDiskCache"></a>
-<h2>NetworkDiskCache</h2>
-<p>
-    Class implementing a disk cache respecting privacy.
-</p>
-<h3>Derived from</h3>
-QNetworkDiskCache
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#NetworkDiskCache.prepare">prepare</a></td>
-<td>Public method to prepare the disk cache file.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="NetworkDiskCache.prepare" ID="NetworkDiskCache.prepare"></a>
-<h4>NetworkDiskCache.prepare</h4>
-<b>prepare</b>(<i>metaData</i>)
-<p>
-        Public method to prepare the disk cache file.
-</p><dl>
-<dt><i>metaData</i></dt>
-<dd>
-meta data for a URL (QNetworkCacheMetaData)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the IO device (QIODevice)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply</h1>
-<p>
-Module implementing a QNetworkReply subclass reporting an unknown protocol
-error.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#NetworkProtocolUnknownErrorReply">NetworkProtocolUnknownErrorReply</a></td>
-<td>Class implementing a QNetworkReply subclass reporting an unknown protocol error.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="NetworkProtocolUnknownErrorReply" ID="NetworkProtocolUnknownErrorReply"></a>
-<h2>NetworkProtocolUnknownErrorReply</h2>
-<p>
-    Class implementing a QNetworkReply subclass reporting an unknown protocol
-    error.
-</p>
-<h3>Derived from</h3>
-QNetworkReply
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#NetworkProtocolUnknownErrorReply.__init__">NetworkProtocolUnknownErrorReply</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#NetworkProtocolUnknownErrorReply.__fireSignals">__fireSignals</a></td>
-<td>Private method to send some signals to end the connection.</td>
-</tr><tr>
-<td><a href="#NetworkProtocolUnknownErrorReply.abort">abort</a></td>
-<td>Public slot to abort the operation.</td>
-</tr><tr>
-<td><a href="#NetworkProtocolUnknownErrorReply.bytesAvailable">bytesAvailable</a></td>
-<td>Public method to determined the bytes available for being read.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="NetworkProtocolUnknownErrorReply.__init__" ID="NetworkProtocolUnknownErrorReply.__init__"></a>
-<h4>NetworkProtocolUnknownErrorReply (Constructor)</h4>
-<b>NetworkProtocolUnknownErrorReply</b>(<i>protocol, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>protocol</i></dt>
-<dd>
-protocol name (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="NetworkProtocolUnknownErrorReply.__fireSignals" ID="NetworkProtocolUnknownErrorReply.__fireSignals"></a>
-<h4>NetworkProtocolUnknownErrorReply.__fireSignals</h4>
-<b>__fireSignals</b>(<i></i>)
-<p>
-        Private method to send some signals to end the connection.
-</p><a NAME="NetworkProtocolUnknownErrorReply.abort" ID="NetworkProtocolUnknownErrorReply.abort"></a>
-<h4>NetworkProtocolUnknownErrorReply.abort</h4>
-<b>abort</b>(<i></i>)
-<p>
-        Public slot to abort the operation.
-</p><a NAME="NetworkProtocolUnknownErrorReply.bytesAvailable" ID="NetworkProtocolUnknownErrorReply.bytesAvailable"></a>
-<h4>NetworkProtocolUnknownErrorReply.bytesAvailable</h4>
-<b>bytesAvailable</b>(<i></i>)
-<p>
-        Public method to determined the bytes available for being read.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-bytes available (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.NetworkReply.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.NetworkReply</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.NetworkReply</h1>
-<p>
-Module implementing a network reply object for special data.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#NetworkReply">NetworkReply</a></td>
-<td>Class implementing a QNetworkReply subclass for special data.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="NetworkReply" ID="NetworkReply"></a>
-<h2>NetworkReply</h2>
-<p>
-    Class implementing a QNetworkReply subclass for special data.
-</p>
-<h3>Derived from</h3>
-QNetworkReply
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#NetworkReply.__init__">NetworkReply</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#NetworkReply.abort">abort</a></td>
-<td>Public slot to abort the operation.</td>
-</tr><tr>
-<td><a href="#NetworkReply.bytesAvailable">bytesAvailable</a></td>
-<td>Public method to determined the bytes available for being read.</td>
-</tr><tr>
-<td><a href="#NetworkReply.isFinished">isFinished</a></td>
-<td>Public method to check, if the reply has finished.</td>
-</tr><tr>
-<td><a href="#NetworkReply.readData">readData</a></td>
-<td>Public method to retrieve data from the reply object.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="NetworkReply.__init__" ID="NetworkReply.__init__"></a>
-<h4>NetworkReply (Constructor)</h4>
-<b>NetworkReply</b>(<i>request, fileData, mimeType, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd><dt><i>fileData</i></dt>
-<dd>
-reference to the data buffer (QByteArray)
-</dd><dt><i>mimeType</i></dt>
-<dd>
-for the reply (string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="NetworkReply.abort" ID="NetworkReply.abort"></a>
-<h4>NetworkReply.abort</h4>
-<b>abort</b>(<i></i>)
-<p>
-        Public slot to abort the operation.
-</p><a NAME="NetworkReply.bytesAvailable" ID="NetworkReply.bytesAvailable"></a>
-<h4>NetworkReply.bytesAvailable</h4>
-<b>bytesAvailable</b>(<i></i>)
-<p>
-        Public method to determined the bytes available for being read.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-bytes available (integer)
-</dd>
-</dl><a NAME="NetworkReply.isFinished" ID="NetworkReply.isFinished"></a>
-<h4>NetworkReply.isFinished</h4>
-<b>isFinished</b>(<i></i>)
-<p>
-        Public method to check, if the reply has finished.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the finished state (boolean)
-</dd>
-</dl><a NAME="NetworkReply.readData" ID="NetworkReply.readData"></a>
-<h4>NetworkReply.readData</h4>
-<b>readData</b>(<i>maxlen</i>)
-<p>
-        Public method to retrieve data from the reply object.
-</p><dl>
-<dt><i>maxlen</i></dt>
-<dd>
-maximum number of bytes to read (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-string containing the data (bytes)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.NoCacheHostsDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.NoCacheHostsDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.NoCacheHostsDialog</h1>
-<p>
-Module implementing a dialog to manage the list of hosts not to be cached.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#NoCacheHostsDialog">NoCacheHostsDialog</a></td>
-<td>Class implementing a dialog to manage the list of hosts not to be cached.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="NoCacheHostsDialog" ID="NoCacheHostsDialog"></a>
-<h2>NoCacheHostsDialog</h2>
-<p>
-    Class implementing a dialog to manage the list of hosts not to be cached.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_NoCacheHostsDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#NoCacheHostsDialog.__init__">NoCacheHostsDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#NoCacheHostsDialog.accept">accept</a></td>
-<td>Public method to accept the dialog data.</td>
-</tr><tr>
-<td><a href="#NoCacheHostsDialog.on_addButton_clicked">on_addButton_clicked</a></td>
-<td>Private slot to add an entry to the list.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="NoCacheHostsDialog.__init__" ID="NoCacheHostsDialog.__init__"></a>
-<h4>NoCacheHostsDialog (Constructor)</h4>
-<b>NoCacheHostsDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="NoCacheHostsDialog.accept" ID="NoCacheHostsDialog.accept"></a>
-<h4>NoCacheHostsDialog.accept</h4>
-<b>accept</b>(<i></i>)
-<p>
-        Public method to accept the dialog data.
-</p><a NAME="NoCacheHostsDialog.on_addButton_clicked" ID="NoCacheHostsDialog.on_addButton_clicked"></a>
-<h4>NoCacheHostsDialog.on_addButton_clicked</h4>
-<b>on_addButton_clicked</b>(<i></i>)
-<p>
-        Private slot to add an entry to the list.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.QtHelpAccessHandler.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.QtHelpAccessHandler</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.QtHelpAccessHandler</h1>
-<p>
-Module implementing a scheme access handler for QtHelp.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>ExtensionMap</td></tr><tr><td>QtDocPath</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#QtHelpAccessHandler">QtHelpAccessHandler</a></td>
-<td>Class implementing a scheme access handler for QtHelp.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="QtHelpAccessHandler" ID="QtHelpAccessHandler"></a>
-<h2>QtHelpAccessHandler</h2>
-<p>
-    Class implementing a scheme access handler for QtHelp.
-</p>
-<h3>Derived from</h3>
-SchemeAccessHandler
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#QtHelpAccessHandler.__init__">QtHelpAccessHandler</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#QtHelpAccessHandler.__mimeFromUrl">__mimeFromUrl</a></td>
-<td>Private method to guess the mime type given an URL.</td>
-</tr><tr>
-<td><a href="#QtHelpAccessHandler.createRequest">createRequest</a></td>
-<td>Public method to create a request.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="QtHelpAccessHandler.__init__" ID="QtHelpAccessHandler.__init__"></a>
-<h4>QtHelpAccessHandler (Constructor)</h4>
-<b>QtHelpAccessHandler</b>(<i>engine, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the help engine (QHelpEngine)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="QtHelpAccessHandler.__mimeFromUrl" ID="QtHelpAccessHandler.__mimeFromUrl"></a>
-<h4>QtHelpAccessHandler.__mimeFromUrl</h4>
-<b>__mimeFromUrl</b>(<i>url</i>)
-<p>
-        Private method to guess the mime type given an URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to guess the mime type from (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-mime type for the given URL (string)
-</dd>
-</dl><a NAME="QtHelpAccessHandler.createRequest" ID="QtHelpAccessHandler.createRequest"></a>
-<h4>QtHelpAccessHandler.createRequest</h4>
-<b>createRequest</b>(<i>op, request, outgoingData=None</i>)
-<p>
-        Public method to create a request.
-</p><dl>
-<dt><i>op</i></dt>
-<dd>
-the operation to be performed
-            (QNetworkAccessManager.Operation)
-</dd><dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd><dt><i>outgoingData</i></dt>
-<dd>
-reference to an IODevice containing data to be sent
-            (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the created reply object (QNetworkReply)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.SchemeAccessHandler.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.SchemeAccessHandler</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.SchemeAccessHandler</h1>
-<p>
-Module implementing the base class for specific scheme access handlers.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SchemeAccessHandler">SchemeAccessHandler</a></td>
-<td>Clase implementing the base class for specific scheme access handlers.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SchemeAccessHandler" ID="SchemeAccessHandler"></a>
-<h2>SchemeAccessHandler</h2>
-<p>
-    Clase implementing the base class for specific scheme access handlers.
-</p>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SchemeAccessHandler.__init__">SchemeAccessHandler</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SchemeAccessHandler.createRequest">createRequest</a></td>
-<td>Public method to create a request.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SchemeAccessHandler.__init__" ID="SchemeAccessHandler.__init__"></a>
-<h4>SchemeAccessHandler (Constructor)</h4>
-<b>SchemeAccessHandler</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="SchemeAccessHandler.createRequest" ID="SchemeAccessHandler.createRequest"></a>
-<h4>SchemeAccessHandler.createRequest</h4>
-<b>createRequest</b>(<i>op, request, outgoingData=None</i>)
-<p>
-        Public method to create a request.
-</p><dl>
-<dt><i>op</i></dt>
-<dd>
-the operation to be performed
-            (QNetworkAccessManager.Operation)
-</dd><dt><i>request</i></dt>
-<dd>
-reference to the request object (QNetworkRequest)
-</dd><dt><i>outgoingData</i></dt>
-<dd>
-reference to an IODevice containing data to be sent
-            (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the created reply object (QNetworkReply)
-</dd>
-</dl><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-raised to indicate that the method must
-            be implemented by a subclass
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Network.SendRefererWhitelistDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network.SendRefererWhitelistDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Network.SendRefererWhitelistDialog</h1>
-<p>
-Module implementing a dialog to manage the Send Referer whitelist.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SendRefererWhitelistDialog">SendRefererWhitelistDialog</a></td>
-<td>Class implementing a dialog to manage the Send Referer whitelist.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SendRefererWhitelistDialog" ID="SendRefererWhitelistDialog"></a>
-<h2>SendRefererWhitelistDialog</h2>
-<p>
-    Class implementing a dialog to manage the Send Referer whitelist.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_SendRefererWhitelistDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SendRefererWhitelistDialog.__init__">SendRefererWhitelistDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SendRefererWhitelistDialog.accept">accept</a></td>
-<td>Public method to accept the dialog data.</td>
-</tr><tr>
-<td><a href="#SendRefererWhitelistDialog.on_addButton_clicked">on_addButton_clicked</a></td>
-<td>Private slot to add an entry to the whitelist.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SendRefererWhitelistDialog.__init__" ID="SendRefererWhitelistDialog.__init__"></a>
-<h4>SendRefererWhitelistDialog (Constructor)</h4>
-<b>SendRefererWhitelistDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="SendRefererWhitelistDialog.accept" ID="SendRefererWhitelistDialog.accept"></a>
-<h4>SendRefererWhitelistDialog.accept</h4>
-<b>accept</b>(<i></i>)
-<p>
-        Public method to accept the dialog data.
-</p><a NAME="SendRefererWhitelistDialog.on_addButton_clicked" ID="SendRefererWhitelistDialog.on_addButton_clicked"></a>
-<h4>SendRefererWhitelistDialog.on_addButton_clicked</h4>
-<b>on_addButton_clicked</b>(<i></i>)
-<p>
-        Private slot to add an entry to the whitelist.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog</h1>
-<p>
-Module implementing a dialog to configure the offline storage.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#OfflineStorageConfigDialog">OfflineStorageConfigDialog</a></td>
-<td>Class implementing a dialog to configure the offline storage.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="OfflineStorageConfigDialog" ID="OfflineStorageConfigDialog"></a>
-<h2>OfflineStorageConfigDialog</h2>
-<p>
-    Class implementing a dialog to configure the offline storage.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_OfflineStorageConfigDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#OfflineStorageConfigDialog.__init__">OfflineStorageConfigDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#OfflineStorageConfigDialog.on_showDatabasesButton_clicked">on_showDatabasesButton_clicked</a></td>
-<td>Private slot to show a dialog with all databases.</td>
-</tr><tr>
-<td><a href="#OfflineStorageConfigDialog.storeData">storeData</a></td>
-<td>Public slot to store the configuration data.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="OfflineStorageConfigDialog.__init__" ID="OfflineStorageConfigDialog.__init__"></a>
-<h4>OfflineStorageConfigDialog (Constructor)</h4>
-<b>OfflineStorageConfigDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="OfflineStorageConfigDialog.on_showDatabasesButton_clicked" ID="OfflineStorageConfigDialog.on_showDatabasesButton_clicked"></a>
-<h4>OfflineStorageConfigDialog.on_showDatabasesButton_clicked</h4>
-<b>on_showDatabasesButton_clicked</b>(<i></i>)
-<p>
-        Private slot to show a dialog with all databases.
-</p><a NAME="OfflineStorageConfigDialog.storeData" ID="OfflineStorageConfigDialog.storeData"></a>
-<h4>OfflineStorageConfigDialog.storeData</h4>
-<b>storeData</b>(<i></i>)
-<p>
-        Public slot to store the configuration data.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.OfflineStorage.WebDatabasesDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.OfflineStorage.WebDatabasesDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.OfflineStorage.WebDatabasesDialog</h1>
-<p>
-Module implementing a dialog to show all web databases.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#WebDatabasesDialog">WebDatabasesDialog</a></td>
-<td>Class implementing a dialog to show all web databases.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="WebDatabasesDialog" ID="WebDatabasesDialog"></a>
-<h2>WebDatabasesDialog</h2>
-<p>
-    Class implementing a dialog to show all web databases.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_WebDatabasesDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#WebDatabasesDialog.__init__">WebDatabasesDialog</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="WebDatabasesDialog.__init__" ID="WebDatabasesDialog.__init__"></a>
-<h4>WebDatabasesDialog (Constructor)</h4>
-<b>WebDatabasesDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,264 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.OfflineStorage.WebDatabasesModel</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.OfflineStorage.WebDatabasesModel</h1>
-<p>
-Module implementing the web databases model.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#WebDatabasesModel">WebDatabasesModel</a></td>
-<td>Class implementing the web databases model.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="WebDatabasesModel" ID="WebDatabasesModel"></a>
-<h2>WebDatabasesModel</h2>
-<p>
-    Class implementing the web databases model.
-</p>
-<h3>Derived from</h3>
-QAbstractItemModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#WebDatabasesModel.__init__">WebDatabasesModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#WebDatabasesModel.__dataString">__dataString</a></td>
-<td>Private method to generate a formatted data string.</td>
-</tr><tr>
-<td><a href="#WebDatabasesModel.columnCount">columnCount</a></td>
-<td>Public method to get the number of columns.</td>
-</tr><tr>
-<td><a href="#WebDatabasesModel.data">data</a></td>
-<td>Public method to get data from the model.</td>
-</tr><tr>
-<td><a href="#WebDatabasesModel.hasChildren">hasChildren</a></td>
-<td>Public method to check, if a parent node has some children.</td>
-</tr><tr>
-<td><a href="#WebDatabasesModel.headerData">headerData</a></td>
-<td>Public method to get the header data.</td>
-</tr><tr>
-<td><a href="#WebDatabasesModel.index">index</a></td>
-<td>Public method to get a model index for an entry.</td>
-</tr><tr>
-<td><a href="#WebDatabasesModel.parent">parent</a></td>
-<td>Public method to get the index of the parent entry.</td>
-</tr><tr>
-<td><a href="#WebDatabasesModel.removeRows">removeRows</a></td>
-<td>Public method to remove databases from the model.</td>
-</tr><tr>
-<td><a href="#WebDatabasesModel.rowCount">rowCount</a></td>
-<td>Public method to determine the number of rows.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="WebDatabasesModel.__init__" ID="WebDatabasesModel.__init__"></a>
-<h4>WebDatabasesModel (Constructor)</h4>
-<b>WebDatabasesModel</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="WebDatabasesModel.__dataString" ID="WebDatabasesModel.__dataString"></a>
-<h4>WebDatabasesModel.__dataString</h4>
-<b>__dataString</b>(<i>size</i>)
-<p>
-        Private method to generate a formatted data string.
-</p><dl>
-<dt><i>size</i></dt>
-<dd>
-size to be formatted (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-formatted data string (string)
-</dd>
-</dl><a NAME="WebDatabasesModel.columnCount" ID="WebDatabasesModel.columnCount"></a>
-<h4>WebDatabasesModel.columnCount</h4>
-<b>columnCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of columns.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl><a NAME="WebDatabasesModel.data" ID="WebDatabasesModel.data"></a>
-<h4>WebDatabasesModel.data</h4>
-<b>data</b>(<i>index, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get data from the model.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of entry to get data for (QModelIndex)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-entry data
-</dd>
-</dl><a NAME="WebDatabasesModel.hasChildren" ID="WebDatabasesModel.hasChildren"></a>
-<h4>WebDatabasesModel.hasChildren</h4>
-<b>hasChildren</b>(<i>parent=None</i>)
-<p>
-        Public method to check, if a parent node has some children.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of the parent node (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the presence of children (boolean)
-</dd>
-</dl><a NAME="WebDatabasesModel.headerData" ID="WebDatabasesModel.headerData"></a>
-<h4>WebDatabasesModel.headerData</h4>
-<b>headerData</b>(<i>section, orientation, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get the header data.
-</p><dl>
-<dt><i>section</i></dt>
-<dd>
-section number (integer)
-</dd><dt><i>orientation</i></dt>
-<dd>
-header orientation (Qt.Orientation)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-header data
-</dd>
-</dl><a NAME="WebDatabasesModel.index" ID="WebDatabasesModel.index"></a>
-<h4>WebDatabasesModel.index</h4>
-<b>index</b>(<i>row, column, parent=None</i>)
-<p>
-        Public method to get a model index for an entry.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row number (integer)
-</dd><dt><i>column</i></dt>
-<dd>
-column number (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-index of the parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-index (QModelIndex)
-</dd>
-</dl><a NAME="WebDatabasesModel.parent" ID="WebDatabasesModel.parent"></a>
-<h4>WebDatabasesModel.parent</h4>
-<b>parent</b>(<i>index=None</i>)
-<p>
-        Public method to get the index of the parent entry.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the child entry (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-index of the parent entry (QModelIndex)
-</dd>
-</dl><a NAME="WebDatabasesModel.removeRows" ID="WebDatabasesModel.removeRows"></a>
-<h4>WebDatabasesModel.removeRows</h4>
-<b>removeRows</b>(<i>row, count, parent=None</i>)
-<p>
-        Public method to remove databases from the model.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-row of the first database to remove (integer)
-</dd><dt><i>count</i></dt>
-<dd>
-number of databases to remove (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-index of the security origin (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating successful removal (boolean)
-</dd>
-</dl><a NAME="WebDatabasesModel.rowCount" ID="WebDatabasesModel.rowCount"></a>
-<h4>WebDatabasesModel.rowCount</h4>
-<b>rowCount</b>(<i>parent=None</i>)
-<p>
-        Public method to determine the number of rows.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-index of parent (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of rows (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.OpenSearch.OpenSearchDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.OpenSearch.OpenSearchDialog</h1>
-<p>
-Module implementing a dialog for the configuration of search engines.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchDialog">OpenSearchDialog</a></td>
-<td>Class implementing a dialog for the configuration of search engines.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="OpenSearchDialog" ID="OpenSearchDialog"></a>
-<h2>OpenSearchDialog</h2>
-<p>
-    Class implementing a dialog for the configuration of search engines.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_OpenSearchDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchDialog.__init__">OpenSearchDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#OpenSearchDialog.__selectionChanged">__selectionChanged</a></td>
-<td>Private slot to handle a change of the selection.</td>
-</tr><tr>
-<td><a href="#OpenSearchDialog.on_addButton_clicked">on_addButton_clicked</a></td>
-<td>Private slot to add a new search engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchDialog.on_deleteButton_clicked">on_deleteButton_clicked</a></td>
-<td>Private slot to delete the selected search engines.</td>
-</tr><tr>
-<td><a href="#OpenSearchDialog.on_editButton_clicked">on_editButton_clicked</a></td>
-<td>Private slot to edit the data of the current search engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchDialog.on_restoreButton_clicked">on_restoreButton_clicked</a></td>
-<td>Private slot to restore the default search engines.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="OpenSearchDialog.__init__" ID="OpenSearchDialog.__init__"></a>
-<h4>OpenSearchDialog (Constructor)</h4>
-<b>OpenSearchDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QWidget)
-</dd>
-</dl><a NAME="OpenSearchDialog.__selectionChanged" ID="OpenSearchDialog.__selectionChanged"></a>
-<h4>OpenSearchDialog.__selectionChanged</h4>
-<b>__selectionChanged</b>(<i>selected, deselected</i>)
-<p>
-        Private slot to handle a change of the selection.
-</p><dl>
-<dt><i>selected</i></dt>
-<dd>
-item selection of selected items (QItemSelection)
-</dd><dt><i>deselected</i></dt>
-<dd>
-item selection of deselected items (QItemSelection)
-</dd>
-</dl><a NAME="OpenSearchDialog.on_addButton_clicked" ID="OpenSearchDialog.on_addButton_clicked"></a>
-<h4>OpenSearchDialog.on_addButton_clicked</h4>
-<b>on_addButton_clicked</b>(<i></i>)
-<p>
-        Private slot to add a new search engine.
-</p><a NAME="OpenSearchDialog.on_deleteButton_clicked" ID="OpenSearchDialog.on_deleteButton_clicked"></a>
-<h4>OpenSearchDialog.on_deleteButton_clicked</h4>
-<b>on_deleteButton_clicked</b>(<i></i>)
-<p>
-        Private slot to delete the selected search engines.
-</p><a NAME="OpenSearchDialog.on_editButton_clicked" ID="OpenSearchDialog.on_editButton_clicked"></a>
-<h4>OpenSearchDialog.on_editButton_clicked</h4>
-<b>on_editButton_clicked</b>(<i></i>)
-<p>
-        Private slot to edit the data of the current search engine.
-</p><a NAME="OpenSearchDialog.on_restoreButton_clicked" ID="OpenSearchDialog.on_restoreButton_clicked"></a>
-<h4>OpenSearchDialog.on_restoreButton_clicked</h4>
-<b>on_restoreButton_clicked</b>(<i></i>)
-<p>
-        Private slot to restore the default search engines.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchEditDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.OpenSearch.OpenSearchEditDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.OpenSearch.OpenSearchEditDialog</h1>
-<p>
-Module implementing a dialog to edit the data of a search engine.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchEditDialog">OpenSearchEditDialog</a></td>
-<td>Class implementing a dialog to edit the data of a search engine.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="OpenSearchEditDialog" ID="OpenSearchEditDialog"></a>
-<h2>OpenSearchEditDialog</h2>
-<p>
-    Class implementing a dialog to edit the data of a search engine.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_OpenSearchEditDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchEditDialog.__init__">OpenSearchEditDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#OpenSearchEditDialog.accept">accept</a></td>
-<td>Public slot to accept the data entered.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="OpenSearchEditDialog.__init__" ID="OpenSearchEditDialog.__init__"></a>
-<h4>OpenSearchEditDialog (Constructor)</h4>
-<b>OpenSearchEditDialog</b>(<i>engine, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the search engine (OpenSearchEngine)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QWidget)
-</dd>
-</dl><a NAME="OpenSearchEditDialog.accept" ID="OpenSearchEditDialog.accept"></a>
-<h4>OpenSearchEditDialog.accept</h4>
-<b>accept</b>(<i></i>)
-<p>
-        Public slot to accept the data entered.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchEngine.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,584 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.OpenSearch.OpenSearchEngine</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.OpenSearch.OpenSearchEngine</h1>
-<p>
-Module implementing the open search engine.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchEngine">OpenSearchEngine</a></td>
-<td>Class implementing the open search engine.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="OpenSearchEngine" ID="OpenSearchEngine"></a>
-<h2>OpenSearchEngine</h2>
-<p>
-    Class implementing the open search engine.
-</p><h3>Signals</h3>
-<dl>
-<dt>imageChanged()</dt>
-<dd>
-emitted after the icon has been changed
-</dd><dt>suggestions(list of strings)</dt>
-<dd>
-emitted after the suggestions have
-            been received
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchEngine.parseTemplate">parseTemplate</a></td>
-<td>Class method to parse a search template.</td>
-</tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchEngine.__init__">OpenSearchEngine</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.__eq__">__eq__</a></td>
-<td>Special method implementing the == operator.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.__imageObtained">__imageObtained</a></td>
-<td>Private slot to receive the image of the engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.__lt__">__lt__</a></td>
-<td>Special method implementing the < operator.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.__suggestionsObtained">__suggestionsObtained</a></td>
-<td>Private slot to receive the suggestions.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.description">description</a></td>
-<td>Public method to get the description of the engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.image">image</a></td>
-<td>Public method to get the image of the engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.imageUrl">imageUrl</a></td>
-<td>Public method to get the image URL of the engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.isValid">isValid</a></td>
-<td>Public method to check, if the engine is valid.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.loadImage">loadImage</a></td>
-<td>Public method to load the image of the engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.name">name</a></td>
-<td>Public method to get the name of the engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.networkAccessManager">networkAccessManager</a></td>
-<td>Public method to get a reference to the network access manager object.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.providesSuggestions">providesSuggestions</a></td>
-<td>Public method to check, if the engine provides suggestions.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.requestSuggestions">requestSuggestions</a></td>
-<td>Public method to request suggestions.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.searchMethod">searchMethod</a></td>
-<td>Public method to get the HTTP request method used to perform search requests.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.searchParameters">searchParameters</a></td>
-<td>Public method to get the search parameters of the engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.searchUrl">searchUrl</a></td>
-<td>Public method to get a URL ready for searching.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.searchUrlTemplate">searchUrlTemplate</a></td>
-<td>Public method to get the search URL template of the engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.setDescription">setDescription</a></td>
-<td>Public method to set the engine description.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.setImage">setImage</a></td>
-<td>Public method to set the image of the engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.setImageUrl">setImageUrl</a></td>
-<td>Public method to set the engine image URL.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.setImageUrlAndLoad">setImageUrlAndLoad</a></td>
-<td>Public method to set the engine image URL.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.setName">setName</a></td>
-<td>Public method to set the engine name.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.setNetworkAccessManager">setNetworkAccessManager</a></td>
-<td>Public method to set the reference to the network access manager.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.setSearchMethod">setSearchMethod</a></td>
-<td>Public method to set the HTTP request method used to perform search requests.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.setSearchParameters">setSearchParameters</a></td>
-<td>Public method to set the engine search parameters.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.setSearchUrlTemplate">setSearchUrlTemplate</a></td>
-<td>Public method to set the engine search URL template.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.setSuggestionsMethod">setSuggestionsMethod</a></td>
-<td>Public method to set the HTTP request method used to perform suggestions requests.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.setSuggestionsParameters">setSuggestionsParameters</a></td>
-<td>Public method to set the engine suggestions parameters.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.setSuggestionsUrlTemplate">setSuggestionsUrlTemplate</a></td>
-<td>Public method to set the engine suggestions URL template.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.suggestionsMethod">suggestionsMethod</a></td>
-<td>Public method to get the HTTP request method used to perform suggestions requests.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.suggestionsParameters">suggestionsParameters</a></td>
-<td>Public method to get the suggestions parameters of the engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.suggestionsUrl">suggestionsUrl</a></td>
-<td>Public method to get a URL ready for suggestions.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngine.suggestionsUrlTemplate">suggestionsUrlTemplate</a></td>
-<td>Public method to get the search URL template of the engine.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="OpenSearchEngine.parseTemplate" ID="OpenSearchEngine.parseTemplate"></a>
-<h4>OpenSearchEngine.parseTemplate (class method)</h4>
-<b>parseTemplate</b>(<i>searchTerm, searchTemplate</i>)
-<p>
-        Class method to parse a search template.
-</p><dl>
-<dt><i>searchTerm</i></dt>
-<dd>
-term to search for (string)
-</dd><dt><i>searchTemplate</i></dt>
-<dd>
-template to be parsed (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-parsed template (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.__init__" ID="OpenSearchEngine.__init__"></a>
-<h4>OpenSearchEngine (Constructor)</h4>
-<b>OpenSearchEngine</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="OpenSearchEngine.__eq__" ID="OpenSearchEngine.__eq__"></a>
-<h4>OpenSearchEngine.__eq__</h4>
-<b>__eq__</b>(<i>other</i>)
-<p>
-        Special method implementing the == operator.
-</p><dl>
-<dt><i>other</i></dt>
-<dd>
-reference to an open search engine (OpenSearchEngine)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating equality (boolean)
-</dd>
-</dl><a NAME="OpenSearchEngine.__imageObtained" ID="OpenSearchEngine.__imageObtained"></a>
-<h4>OpenSearchEngine.__imageObtained</h4>
-<b>__imageObtained</b>(<i>reply</i>)
-<p>
-        Private slot to receive the image of the engine.
-</p><dl>
-<dt><i>reply</i> (QNetworkReply)</dt>
-<dd>
-reference to the network reply
-</dd>
-</dl><a NAME="OpenSearchEngine.__lt__" ID="OpenSearchEngine.__lt__"></a>
-<h4>OpenSearchEngine.__lt__</h4>
-<b>__lt__</b>(<i>other</i>)
-<p>
-        Special method implementing the < operator.
-</p><dl>
-<dt><i>other</i></dt>
-<dd>
-reference to an open search engine (OpenSearchEngine)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating less than (boolean)
-</dd>
-</dl><a NAME="OpenSearchEngine.__suggestionsObtained" ID="OpenSearchEngine.__suggestionsObtained"></a>
-<h4>OpenSearchEngine.__suggestionsObtained</h4>
-<b>__suggestionsObtained</b>(<i></i>)
-<p>
-        Private slot to receive the suggestions.
-</p><a NAME="OpenSearchEngine.description" ID="OpenSearchEngine.description"></a>
-<h4>OpenSearchEngine.description</h4>
-<b>description</b>(<i></i>)
-<p>
-        Public method to get the description of the engine.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-description of the engine (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.image" ID="OpenSearchEngine.image"></a>
-<h4>OpenSearchEngine.image</h4>
-<b>image</b>(<i></i>)
-<p>
-        Public method to get the image of the engine.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-image of the engine (QImage)
-</dd>
-</dl><a NAME="OpenSearchEngine.imageUrl" ID="OpenSearchEngine.imageUrl"></a>
-<h4>OpenSearchEngine.imageUrl</h4>
-<b>imageUrl</b>(<i></i>)
-<p>
-        Public method to get the image URL of the engine.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-image URL of the engine (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.isValid" ID="OpenSearchEngine.isValid"></a>
-<h4>OpenSearchEngine.isValid</h4>
-<b>isValid</b>(<i></i>)
-<p>
-        Public method to check, if the engine is valid.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating validity (boolean)
-</dd>
-</dl><a NAME="OpenSearchEngine.loadImage" ID="OpenSearchEngine.loadImage"></a>
-<h4>OpenSearchEngine.loadImage</h4>
-<b>loadImage</b>(<i></i>)
-<p>
-        Public method to load the image of the engine.
-</p><a NAME="OpenSearchEngine.name" ID="OpenSearchEngine.name"></a>
-<h4>OpenSearchEngine.name</h4>
-<b>name</b>(<i></i>)
-<p>
-        Public method to get the name of the engine.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-name of the engine (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.networkAccessManager" ID="OpenSearchEngine.networkAccessManager"></a>
-<h4>OpenSearchEngine.networkAccessManager</h4>
-<b>networkAccessManager</b>(<i></i>)
-<p>
-        Public method to get a reference to the network access manager object.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the network access manager object
-            (QNetworkAccessManager)
-</dd>
-</dl><a NAME="OpenSearchEngine.providesSuggestions" ID="OpenSearchEngine.providesSuggestions"></a>
-<h4>OpenSearchEngine.providesSuggestions</h4>
-<b>providesSuggestions</b>(<i></i>)
-<p>
-        Public method to check, if the engine provides suggestions.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating suggestions are provided (boolean)
-</dd>
-</dl><a NAME="OpenSearchEngine.requestSuggestions" ID="OpenSearchEngine.requestSuggestions"></a>
-<h4>OpenSearchEngine.requestSuggestions</h4>
-<b>requestSuggestions</b>(<i>searchTerm</i>)
-<p>
-        Public method to request suggestions.
-</p><dl>
-<dt><i>searchTerm</i></dt>
-<dd>
-term to get suggestions for (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.searchMethod" ID="OpenSearchEngine.searchMethod"></a>
-<h4>OpenSearchEngine.searchMethod</h4>
-<b>searchMethod</b>(<i></i>)
-<p>
-        Public method to get the HTTP request method used to perform search
-        requests.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-HTTP request method (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.searchParameters" ID="OpenSearchEngine.searchParameters"></a>
-<h4>OpenSearchEngine.searchParameters</h4>
-<b>searchParameters</b>(<i></i>)
-<p>
-        Public method to get the search parameters of the engine.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-search parameters of the engine (list of two tuples)
-</dd>
-</dl><a NAME="OpenSearchEngine.searchUrl" ID="OpenSearchEngine.searchUrl"></a>
-<h4>OpenSearchEngine.searchUrl</h4>
-<b>searchUrl</b>(<i>searchTerm</i>)
-<p>
-        Public method to get a URL ready for searching.
-</p><dl>
-<dt><i>searchTerm</i></dt>
-<dd>
-term to search for (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-URL (QUrl)
-</dd>
-</dl><a NAME="OpenSearchEngine.searchUrlTemplate" ID="OpenSearchEngine.searchUrlTemplate"></a>
-<h4>OpenSearchEngine.searchUrlTemplate</h4>
-<b>searchUrlTemplate</b>(<i></i>)
-<p>
-        Public method to get the search URL template of the engine.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-search URL template of the engine (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.setDescription" ID="OpenSearchEngine.setDescription"></a>
-<h4>OpenSearchEngine.setDescription</h4>
-<b>setDescription</b>(<i>description</i>)
-<p>
-        Public method to set the engine description.
-</p><dl>
-<dt><i>description</i></dt>
-<dd>
-description of the engine (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.setImage" ID="OpenSearchEngine.setImage"></a>
-<h4>OpenSearchEngine.setImage</h4>
-<b>setImage</b>(<i>image</i>)
-<p>
-        Public method to set the image of the engine.
-</p><dl>
-<dt><i>image</i></dt>
-<dd>
-image to be set (QImage)
-</dd>
-</dl><a NAME="OpenSearchEngine.setImageUrl" ID="OpenSearchEngine.setImageUrl"></a>
-<h4>OpenSearchEngine.setImageUrl</h4>
-<b>setImageUrl</b>(<i>imageUrl</i>)
-<p>
-        Public method to set the engine image URL.
-</p><dl>
-<dt><i>imageUrl</i></dt>
-<dd>
-image URL of the engine (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.setImageUrlAndLoad" ID="OpenSearchEngine.setImageUrlAndLoad"></a>
-<h4>OpenSearchEngine.setImageUrlAndLoad</h4>
-<b>setImageUrlAndLoad</b>(<i>imageUrl</i>)
-<p>
-        Public method to set the engine image URL.
-</p><dl>
-<dt><i>imageUrl</i></dt>
-<dd>
-image URL of the engine (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.setName" ID="OpenSearchEngine.setName"></a>
-<h4>OpenSearchEngine.setName</h4>
-<b>setName</b>(<i>name</i>)
-<p>
-        Public method to set the engine name.
-</p><dl>
-<dt><i>name</i></dt>
-<dd>
-name of the engine (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.setNetworkAccessManager" ID="OpenSearchEngine.setNetworkAccessManager"></a>
-<h4>OpenSearchEngine.setNetworkAccessManager</h4>
-<b>setNetworkAccessManager</b>(<i>networkAccessManager</i>)
-<p>
-        Public method to set the reference to the network access manager.
-</p><dl>
-<dt><i>networkAccessManager</i></dt>
-<dd>
-reference to the network access manager
-            object (QNetworkAccessManager)
-</dd>
-</dl><a NAME="OpenSearchEngine.setSearchMethod" ID="OpenSearchEngine.setSearchMethod"></a>
-<h4>OpenSearchEngine.setSearchMethod</h4>
-<b>setSearchMethod</b>(<i>method</i>)
-<p>
-        Public method to set the HTTP request method used to perform search
-        requests.
-</p><dl>
-<dt><i>method</i></dt>
-<dd>
-HTTP request method (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.setSearchParameters" ID="OpenSearchEngine.setSearchParameters"></a>
-<h4>OpenSearchEngine.setSearchParameters</h4>
-<b>setSearchParameters</b>(<i>searchParameters</i>)
-<p>
-        Public method to set the engine search parameters.
-</p><dl>
-<dt><i>searchParameters</i></dt>
-<dd>
-search parameters of the engine
-            (list of two tuples)
-</dd>
-</dl><a NAME="OpenSearchEngine.setSearchUrlTemplate" ID="OpenSearchEngine.setSearchUrlTemplate"></a>
-<h4>OpenSearchEngine.setSearchUrlTemplate</h4>
-<b>setSearchUrlTemplate</b>(<i>searchUrlTemplate</i>)
-<p>
-        Public method to set the engine search URL template.
-</p><p>
-        The URL template is processed according to the specification:
-        <a
-          href="http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_URL_template_syntax">
-        http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_URL_template_syntax</a>
-</p><p>
-        A list of template parameters currently supported and what they are
-        replaced with:
-        <table>
-        <tr><td><b>Parameter</b></td><td><b>Value</b></td></tr>
-        <tr><td>{count}</td><td>20</td></tr>
-        <tr><td>{startIndex}</td><td>0</td></tr>
-        <tr><td>{startPage}</td><td>0</td></tr>
-        <tr><td>{language}</td>
-          <td>the default language code (RFC 3066)</td></tr>
-        <tr><td>{country}</td>
-          <td>the default language code (RFC 3066) converted to lower
-              case</td></tr>
-        <tr><td>{inputEncoding}</td><td>UTF-8</td></tr>
-        <tr><td>{outputEncoding}</td><td>UTF-8</td></tr>
-        <tr><td>{searchTerms}</td><td>the string supplied by the user</td></tr>
-        <tr><td>{*:source}</td>
-          <td>application name, QCoreApplication::applicationName()</td></tr>
-        </table>
-</p><dl>
-<dt><i>searchUrlTemplate</i></dt>
-<dd>
-search URL template of the engine (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.setSuggestionsMethod" ID="OpenSearchEngine.setSuggestionsMethod"></a>
-<h4>OpenSearchEngine.setSuggestionsMethod</h4>
-<b>setSuggestionsMethod</b>(<i>method</i>)
-<p>
-        Public method to set the HTTP request method used to perform
-        suggestions requests.
-</p><dl>
-<dt><i>method</i></dt>
-<dd>
-HTTP request method (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.setSuggestionsParameters" ID="OpenSearchEngine.setSuggestionsParameters"></a>
-<h4>OpenSearchEngine.setSuggestionsParameters</h4>
-<b>setSuggestionsParameters</b>(<i>suggestionsParameters</i>)
-<p>
-        Public method to set the engine suggestions parameters.
-</p><dl>
-<dt><i>suggestionsParameters</i></dt>
-<dd>
-suggestions parameters of the
-            engine (list of two tuples)
-</dd>
-</dl><a NAME="OpenSearchEngine.setSuggestionsUrlTemplate" ID="OpenSearchEngine.setSuggestionsUrlTemplate"></a>
-<h4>OpenSearchEngine.setSuggestionsUrlTemplate</h4>
-<b>setSuggestionsUrlTemplate</b>(<i>suggestionsUrlTemplate</i>)
-<p>
-        Public method to set the engine suggestions URL template.
-</p><dl>
-<dt><i>suggestionsUrlTemplate</i></dt>
-<dd>
-suggestions URL template of the
-            engine (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.suggestionsMethod" ID="OpenSearchEngine.suggestionsMethod"></a>
-<h4>OpenSearchEngine.suggestionsMethod</h4>
-<b>suggestionsMethod</b>(<i></i>)
-<p>
-        Public method to get the HTTP request method used to perform
-        suggestions requests.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-HTTP request method (string)
-</dd>
-</dl><a NAME="OpenSearchEngine.suggestionsParameters" ID="OpenSearchEngine.suggestionsParameters"></a>
-<h4>OpenSearchEngine.suggestionsParameters</h4>
-<b>suggestionsParameters</b>(<i></i>)
-<p>
-        Public method to get the suggestions parameters of the engine.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-suggestions parameters of the engine (list of two tuples)
-</dd>
-</dl><a NAME="OpenSearchEngine.suggestionsUrl" ID="OpenSearchEngine.suggestionsUrl"></a>
-<h4>OpenSearchEngine.suggestionsUrl</h4>
-<b>suggestionsUrl</b>(<i>searchTerm</i>)
-<p>
-        Public method to get a URL ready for suggestions.
-</p><dl>
-<dt><i>searchTerm</i></dt>
-<dd>
-term to search for (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-URL (QUrl)
-</dd>
-</dl><a NAME="OpenSearchEngine.suggestionsUrlTemplate" ID="OpenSearchEngine.suggestionsUrlTemplate"></a>
-<h4>OpenSearchEngine.suggestionsUrlTemplate</h4>
-<b>suggestionsUrlTemplate</b>(<i></i>)
-<p>
-        Public method to get the search URL template of the engine.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-search URL template of the engine (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchEngineAction.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.OpenSearch.OpenSearchEngineAction</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.OpenSearch.OpenSearchEngineAction</h1>
-<p>
-Module implementing a QAction subclass for open search.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchEngineAction">OpenSearchEngineAction</a></td>
-<td>Class implementing a QAction subclass for open search.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="OpenSearchEngineAction" ID="OpenSearchEngineAction"></a>
-<h2>OpenSearchEngineAction</h2>
-<p>
-    Class implementing a QAction subclass for open search.
-</p>
-<h3>Derived from</h3>
-QAction
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchEngineAction.__init__">OpenSearchEngineAction</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#OpenSearchEngineAction.__imageChanged">__imageChanged</a></td>
-<td>Private slot handling a change of the associated image.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="OpenSearchEngineAction.__init__" ID="OpenSearchEngineAction.__init__"></a>
-<h4>OpenSearchEngineAction (Constructor)</h4>
-<b>OpenSearchEngineAction</b>(<i>engine, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the open search engine object
-            (OpenSearchEngine)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="OpenSearchEngineAction.__imageChanged" ID="OpenSearchEngineAction.__imageChanged"></a>
-<h4>OpenSearchEngineAction.__imageChanged</h4>
-<b>__imageChanged</b>(<i></i>)
-<p>
-        Private slot handling a change of the associated image.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,240 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.OpenSearch.OpenSearchEngineModel</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.OpenSearch.OpenSearchEngineModel</h1>
-<p>
-Module implementing a model for search engines.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchEngineModel">OpenSearchEngineModel</a></td>
-<td>Class implementing a model for search engines.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="OpenSearchEngineModel" ID="OpenSearchEngineModel"></a>
-<h2>OpenSearchEngineModel</h2>
-<p>
-    Class implementing a model for search engines.
-</p>
-<h3>Derived from</h3>
-QAbstractTableModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchEngineModel.__init__">OpenSearchEngineModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#OpenSearchEngineModel.__enginesChanged">__enginesChanged</a></td>
-<td>Private slot handling a change of the registered engines.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngineModel.columnCount">columnCount</a></td>
-<td>Public method to get the number of columns of the model.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngineModel.data">data</a></td>
-<td>Public method to get data from the model.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngineModel.flags">flags</a></td>
-<td>Public method to get flags for a model cell.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngineModel.headerData">headerData</a></td>
-<td>Public method to get the header data.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngineModel.removeRows">removeRows</a></td>
-<td>Public method to remove entries from the model.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngineModel.rowCount">rowCount</a></td>
-<td>Public method to get the number of rows of the model.</td>
-</tr><tr>
-<td><a href="#OpenSearchEngineModel.setData">setData</a></td>
-<td>Public method to set the data of a model cell.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="OpenSearchEngineModel.__init__" ID="OpenSearchEngineModel.__init__"></a>
-<h4>OpenSearchEngineModel (Constructor)</h4>
-<b>OpenSearchEngineModel</b>(<i>manager, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>manager</i></dt>
-<dd>
-reference to the search engine manager
-            (OpenSearchManager)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="OpenSearchEngineModel.__enginesChanged" ID="OpenSearchEngineModel.__enginesChanged"></a>
-<h4>OpenSearchEngineModel.__enginesChanged</h4>
-<b>__enginesChanged</b>(<i></i>)
-<p>
-        Private slot handling a change of the registered engines.
-</p><a NAME="OpenSearchEngineModel.columnCount" ID="OpenSearchEngineModel.columnCount"></a>
-<h4>OpenSearchEngineModel.columnCount</h4>
-<b>columnCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of columns of the model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex) (Unused)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl><a NAME="OpenSearchEngineModel.data" ID="OpenSearchEngineModel.data"></a>
-<h4>OpenSearchEngineModel.data</h4>
-<b>data</b>(<i>index, role</i>)
-<p>
-        Public method to get data from the model.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index to get data for (QModelIndex)
-</dd><dt><i>role</i></dt>
-<dd>
-role of the data to retrieve (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested data
-</dd>
-</dl><a NAME="OpenSearchEngineModel.flags" ID="OpenSearchEngineModel.flags"></a>
-<h4>OpenSearchEngineModel.flags</h4>
-<b>flags</b>(<i>index</i>)
-<p>
-        Public method to get flags for a model cell.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the model cell (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flags (Qt.ItemFlags)
-</dd>
-</dl><a NAME="OpenSearchEngineModel.headerData" ID="OpenSearchEngineModel.headerData"></a>
-<h4>OpenSearchEngineModel.headerData</h4>
-<b>headerData</b>(<i>section, orientation, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get the header data.
-</p><dl>
-<dt><i>section</i></dt>
-<dd>
-section number (integer)
-</dd><dt><i>orientation</i></dt>
-<dd>
-header orientation (Qt.Orientation)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-header data
-</dd>
-</dl><a NAME="OpenSearchEngineModel.removeRows" ID="OpenSearchEngineModel.removeRows"></a>
-<h4>OpenSearchEngineModel.removeRows</h4>
-<b>removeRows</b>(<i>row, count, parent=None</i>)
-<p>
-        Public method to remove entries from the model.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-start row (integer)
-</dd><dt><i>count</i></dt>
-<dd>
-number of rows to remove (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="OpenSearchEngineModel.rowCount" ID="OpenSearchEngineModel.rowCount"></a>
-<h4>OpenSearchEngineModel.rowCount</h4>
-<b>rowCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of rows of the model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of rows (integer)
-</dd>
-</dl><a NAME="OpenSearchEngineModel.setData" ID="OpenSearchEngineModel.setData"></a>
-<h4>OpenSearchEngineModel.setData</h4>
-<b>setData</b>(<i>index, value, role=Qt.EditRole</i>)
-<p>
-        Public method to set the data of a model cell.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the model cell (QModelIndex)
-</dd><dt><i>value</i></dt>
-<dd>
-value to be set
-</dd><dt><i>role</i></dt>
-<dd>
-role of the data (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,516 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.OpenSearch.OpenSearchManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.OpenSearch.OpenSearchManager</h1>
-<p>
-Module implementing a manager for open search engines.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchManager">OpenSearchManager</a></td>
-<td>Class implementing a manager for open search engines.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="OpenSearchManager" ID="OpenSearchManager"></a>
-<h2>OpenSearchManager</h2>
-<p>
-    Class implementing a manager for open search engines.
-</p><h3>Signals</h3>
-<dl>
-<dt>changed()</dt>
-<dd>
-emitted to indicate a change
-</dd><dt>currentEngineChanged()</dt>
-<dd>
-emitted to indicate a change of
-            the current search engine
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchManager.__init__">OpenSearchManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.__addEngineByEngine">__addEngineByEngine</a></td>
-<td>Private method to add a new search engine given a reference to an engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.__addEngineByFile">__addEngineByFile</a></td>
-<td>Private method to add a new search engine given a filename.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.__addEngineByUrl">__addEngineByUrl</a></td>
-<td>Private method to add a new search engine given its URL.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.__confirmAddition">__confirmAddition</a></td>
-<td>Private method to confirm the addition of a new search engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.__engineFromUrlAvailable">__engineFromUrlAvailable</a></td>
-<td>Private slot to add a search engine from the net.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.addEngine">addEngine</a></td>
-<td>Public method to add a new search engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.allEnginesNames">allEnginesNames</a></td>
-<td>Public method to get a list of all engine names.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.close">close</a></td>
-<td>Public method to close the open search engines manager.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.convertKeywordSearchToUrl">convertKeywordSearchToUrl</a></td>
-<td>Public method to get the search URL for a keyword search.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.currentEngine">currentEngine</a></td>
-<td>Public method to get a reference to the current engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.currentEngineName">currentEngineName</a></td>
-<td>Public method to get the name of the current search engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.engine">engine</a></td>
-<td>Public method to get a reference to the named engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.engineExists">engineExists</a></td>
-<td>Public method to check, if an engine exists.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.engineForKeyword">engineForKeyword</a></td>
-<td>Public method to get the engine for a keyword.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.enginesChanged">enginesChanged</a></td>
-<td>Public slot to tell the search engine manager, that something has changed.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.enginesCount">enginesCount</a></td>
-<td>Public method to get the number of available engines.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.enginesDirectory">enginesDirectory</a></td>
-<td>Public method to determine the directory containing the search engine descriptions.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.generateEngineFileName">generateEngineFileName</a></td>
-<td>Public method to generate a valid engine file name.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.keywordsForEngine">keywordsForEngine</a></td>
-<td>Public method to get the keywords for a given engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.load">load</a></td>
-<td>Public method to load the search engines configuration.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.loadDirectory">loadDirectory</a></td>
-<td>Public method to load the search engine definitions from files.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.removeEngine">removeEngine</a></td>
-<td>Public method to remove an engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.restoreDefaults">restoreDefaults</a></td>
-<td>Public method to restore the default search engines.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.save">save</a></td>
-<td>Public method to save the search engines configuration.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.saveDirectory">saveDirectory</a></td>
-<td>Public method to save the search engine definitions to files.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.setCurrentEngine">setCurrentEngine</a></td>
-<td>Public method to set the current engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.setCurrentEngineName">setCurrentEngineName</a></td>
-<td>Public method to set the current engine by name.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.setEngineForKeyword">setEngineForKeyword</a></td>
-<td>Public method to set the engine for a keyword.</td>
-</tr><tr>
-<td><a href="#OpenSearchManager.setKeywordsForEngine">setKeywordsForEngine</a></td>
-<td>Public method to set the keywords for an engine.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="OpenSearchManager.__init__" ID="OpenSearchManager.__init__"></a>
-<h4>OpenSearchManager (Constructor)</h4>
-<b>OpenSearchManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="OpenSearchManager.__addEngineByEngine" ID="OpenSearchManager.__addEngineByEngine"></a>
-<h4>OpenSearchManager.__addEngineByEngine</h4>
-<b>__addEngineByEngine</b>(<i>engine</i>)
-<p>
-        Private method to add a new search engine given a reference to an
-        engine.
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to an engine object (OpenSearchEngine)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="OpenSearchManager.__addEngineByFile" ID="OpenSearchManager.__addEngineByFile"></a>
-<h4>OpenSearchManager.__addEngineByFile</h4>
-<b>__addEngineByFile</b>(<i>filename</i>)
-<p>
-        Private method to add a new search engine given a filename.
-</p><dl>
-<dt><i>filename</i></dt>
-<dd>
-name of a file containing the engine definition
-            (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="OpenSearchManager.__addEngineByUrl" ID="OpenSearchManager.__addEngineByUrl"></a>
-<h4>OpenSearchManager.__addEngineByUrl</h4>
-<b>__addEngineByUrl</b>(<i>url</i>)
-<p>
-        Private method to add a new search engine given its URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the engine definition file (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="OpenSearchManager.__confirmAddition" ID="OpenSearchManager.__confirmAddition"></a>
-<h4>OpenSearchManager.__confirmAddition</h4>
-<b>__confirmAddition</b>(<i>engine</i>)
-<p>
-        Private method to confirm the addition of a new search engine.
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the engine to be added (OpenSearchEngine)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the engine shall be added (boolean)
-</dd>
-</dl><a NAME="OpenSearchManager.__engineFromUrlAvailable" ID="OpenSearchManager.__engineFromUrlAvailable"></a>
-<h4>OpenSearchManager.__engineFromUrlAvailable</h4>
-<b>__engineFromUrlAvailable</b>(<i>reply</i>)
-<p>
-        Private slot to add a search engine from the net.
-</p><dl>
-<dt><i>reply</i> (QNetworkReply)</dt>
-<dd>
-reference to the network reply
-</dd>
-</dl><a NAME="OpenSearchManager.addEngine" ID="OpenSearchManager.addEngine"></a>
-<h4>OpenSearchManager.addEngine</h4>
-<b>addEngine</b>(<i>engine</i>)
-<p>
-        Public method to add a new search engine.
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-URL of the engine definition file (QUrl) or
-            name of a file containing the engine definition (string)
-            or reference to an engine object (OpenSearchEngine)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="OpenSearchManager.allEnginesNames" ID="OpenSearchManager.allEnginesNames"></a>
-<h4>OpenSearchManager.allEnginesNames</h4>
-<b>allEnginesNames</b>(<i></i>)
-<p>
-        Public method to get a list of all engine names.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-sorted list of all engine names (list of strings)
-</dd>
-</dl><a NAME="OpenSearchManager.close" ID="OpenSearchManager.close"></a>
-<h4>OpenSearchManager.close</h4>
-<b>close</b>(<i></i>)
-<p>
-        Public method to close the open search engines manager.
-</p><a NAME="OpenSearchManager.convertKeywordSearchToUrl" ID="OpenSearchManager.convertKeywordSearchToUrl"></a>
-<h4>OpenSearchManager.convertKeywordSearchToUrl</h4>
-<b>convertKeywordSearchToUrl</b>(<i>keywordSearch</i>)
-<p>
-        Public method to get the search URL for a keyword search.
-</p><dl>
-<dt><i>keywordSearch</i></dt>
-<dd>
-search string for keyword search (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-search URL (QUrl)
-</dd>
-</dl><a NAME="OpenSearchManager.currentEngine" ID="OpenSearchManager.currentEngine"></a>
-<h4>OpenSearchManager.currentEngine</h4>
-<b>currentEngine</b>(<i></i>)
-<p>
-        Public method to get a reference to the current engine.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the current engine (OpenSearchEngine)
-</dd>
-</dl><a NAME="OpenSearchManager.currentEngineName" ID="OpenSearchManager.currentEngineName"></a>
-<h4>OpenSearchManager.currentEngineName</h4>
-<b>currentEngineName</b>(<i></i>)
-<p>
-        Public method to get the name of the current search engine.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-name of the current search engine (string)
-</dd>
-</dl><a NAME="OpenSearchManager.engine" ID="OpenSearchManager.engine"></a>
-<h4>OpenSearchManager.engine</h4>
-<b>engine</b>(<i>name</i>)
-<p>
-        Public method to get a reference to the named engine.
-</p><dl>
-<dt><i>name</i></dt>
-<dd>
-name of the engine (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the engine (OpenSearchEngine)
-</dd>
-</dl><a NAME="OpenSearchManager.engineExists" ID="OpenSearchManager.engineExists"></a>
-<h4>OpenSearchManager.engineExists</h4>
-<b>engineExists</b>(<i>name</i>)
-<p>
-        Public method to check, if an engine exists.
-</p><dl>
-<dt><i>name</i></dt>
-<dd>
-name of the engine (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating an existing engine (boolean)
-</dd>
-</dl><a NAME="OpenSearchManager.engineForKeyword" ID="OpenSearchManager.engineForKeyword"></a>
-<h4>OpenSearchManager.engineForKeyword</h4>
-<b>engineForKeyword</b>(<i>keyword</i>)
-<p>
-        Public method to get the engine for a keyword.
-</p><dl>
-<dt><i>keyword</i></dt>
-<dd>
-keyword to get engine for (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the search engine object (OpenSearchEngine)
-</dd>
-</dl><a NAME="OpenSearchManager.enginesChanged" ID="OpenSearchManager.enginesChanged"></a>
-<h4>OpenSearchManager.enginesChanged</h4>
-<b>enginesChanged</b>(<i></i>)
-<p>
-        Public slot to tell the search engine manager, that something has
-        changed.
-</p><a NAME="OpenSearchManager.enginesCount" ID="OpenSearchManager.enginesCount"></a>
-<h4>OpenSearchManager.enginesCount</h4>
-<b>enginesCount</b>(<i></i>)
-<p>
-        Public method to get the number of available engines.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-number of engines (integer)
-</dd>
-</dl><a NAME="OpenSearchManager.enginesDirectory" ID="OpenSearchManager.enginesDirectory"></a>
-<h4>OpenSearchManager.enginesDirectory</h4>
-<b>enginesDirectory</b>(<i></i>)
-<p>
-        Public method to determine the directory containing the search engine
-        descriptions.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-directory name (string)
-</dd>
-</dl><a NAME="OpenSearchManager.generateEngineFileName" ID="OpenSearchManager.generateEngineFileName"></a>
-<h4>OpenSearchManager.generateEngineFileName</h4>
-<b>generateEngineFileName</b>(<i>engineName</i>)
-<p>
-        Public method to generate a valid engine file name.
-</p><dl>
-<dt><i>engineName</i></dt>
-<dd>
-name of the engine (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-valid engine file name (string)
-</dd>
-</dl><a NAME="OpenSearchManager.keywordsForEngine" ID="OpenSearchManager.keywordsForEngine"></a>
-<h4>OpenSearchManager.keywordsForEngine</h4>
-<b>keywordsForEngine</b>(<i>engine</i>)
-<p>
-        Public method to get the keywords for a given engine.
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the search engine object (OpenSearchEngine)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-list of keywords (list of strings)
-</dd>
-</dl><a NAME="OpenSearchManager.load" ID="OpenSearchManager.load"></a>
-<h4>OpenSearchManager.load</h4>
-<b>load</b>(<i></i>)
-<p>
-        Public method to load the search engines configuration.
-</p><a NAME="OpenSearchManager.loadDirectory" ID="OpenSearchManager.loadDirectory"></a>
-<h4>OpenSearchManager.loadDirectory</h4>
-<b>loadDirectory</b>(<i>dirName</i>)
-<p>
-        Public method to load the search engine definitions from files.
-</p><dl>
-<dt><i>dirName</i></dt>
-<dd>
-name of the directory to load the files from (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="OpenSearchManager.removeEngine" ID="OpenSearchManager.removeEngine"></a>
-<h4>OpenSearchManager.removeEngine</h4>
-<b>removeEngine</b>(<i>name</i>)
-<p>
-        Public method to remove an engine.
-</p><dl>
-<dt><i>name</i></dt>
-<dd>
-name of the engine (string)
-</dd>
-</dl><a NAME="OpenSearchManager.restoreDefaults" ID="OpenSearchManager.restoreDefaults"></a>
-<h4>OpenSearchManager.restoreDefaults</h4>
-<b>restoreDefaults</b>(<i></i>)
-<p>
-        Public method to restore the default search engines.
-</p><a NAME="OpenSearchManager.save" ID="OpenSearchManager.save"></a>
-<h4>OpenSearchManager.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public method to save the search engines configuration.
-</p><a NAME="OpenSearchManager.saveDirectory" ID="OpenSearchManager.saveDirectory"></a>
-<h4>OpenSearchManager.saveDirectory</h4>
-<b>saveDirectory</b>(<i>dirName</i>)
-<p>
-        Public method to save the search engine definitions to files.
-</p><dl>
-<dt><i>dirName</i></dt>
-<dd>
-name of the directory to write the files to (string)
-</dd>
-</dl><a NAME="OpenSearchManager.setCurrentEngine" ID="OpenSearchManager.setCurrentEngine"></a>
-<h4>OpenSearchManager.setCurrentEngine</h4>
-<b>setCurrentEngine</b>(<i>engine</i>)
-<p>
-        Public method to set the current engine.
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the new current engine (OpenSearchEngine)
-</dd>
-</dl><a NAME="OpenSearchManager.setCurrentEngineName" ID="OpenSearchManager.setCurrentEngineName"></a>
-<h4>OpenSearchManager.setCurrentEngineName</h4>
-<b>setCurrentEngineName</b>(<i>name</i>)
-<p>
-        Public method to set the current engine by name.
-</p><dl>
-<dt><i>name</i></dt>
-<dd>
-name of the new current engine (string)
-</dd>
-</dl><a NAME="OpenSearchManager.setEngineForKeyword" ID="OpenSearchManager.setEngineForKeyword"></a>
-<h4>OpenSearchManager.setEngineForKeyword</h4>
-<b>setEngineForKeyword</b>(<i>keyword, engine</i>)
-<p>
-        Public method to set the engine for a keyword.
-</p><dl>
-<dt><i>keyword</i></dt>
-<dd>
-keyword to get engine for (string)
-</dd><dt><i>engine</i></dt>
-<dd>
-reference to the search engine object (OpenSearchEngine)
-            or None to remove the keyword
-</dd>
-</dl><a NAME="OpenSearchManager.setKeywordsForEngine" ID="OpenSearchManager.setKeywordsForEngine"></a>
-<h4>OpenSearchManager.setKeywordsForEngine</h4>
-<b>setKeywordsForEngine</b>(<i>engine, keywords</i>)
-<p>
-        Public method to set the keywords for an engine.
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the search engine object (OpenSearchEngine)
-</dd><dt><i>keywords</i></dt>
-<dd>
-list of keywords (list of strings)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchReader.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.OpenSearch.OpenSearchReader</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.OpenSearch.OpenSearchReader</h1>
-<p>
-Module implementing a reader for open search engine descriptions.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchReader">OpenSearchReader</a></td>
-<td>Class implementing a reader for open search engine descriptions.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="OpenSearchReader" ID="OpenSearchReader"></a>
-<h2>OpenSearchReader</h2>
-<p>
-    Class implementing a reader for open search engine descriptions.
-</p>
-<h3>Derived from</h3>
-QXmlStreamReader
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchReader.__read">__read</a></td>
-<td>Private method to read and parse the description.</td>
-</tr><tr>
-<td><a href="#OpenSearchReader.read">read</a></td>
-<td>Public method to read the description.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="OpenSearchReader.__read" ID="OpenSearchReader.__read"></a>
-<h4>OpenSearchReader.__read</h4>
-<b>__read</b>(<i></i>)
-<p>
-        Private method to read and parse the description.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-search engine object (OpenSearchEngine)
-</dd>
-</dl><a NAME="OpenSearchReader.read" ID="OpenSearchReader.read"></a>
-<h4>OpenSearchReader.read</h4>
-<b>read</b>(<i>device</i>)
-<p>
-        Public method to read the description.
-</p><dl>
-<dt><i>device</i></dt>
-<dd>
-device to read the description from (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-search engine object (OpenSearchEngine)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.OpenSearch.OpenSearchWriter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.OpenSearch.OpenSearchWriter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.OpenSearch.OpenSearchWriter</h1>
-<p>
-Module implementing a writer for open search engine descriptions.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchWriter">OpenSearchWriter</a></td>
-<td>Class implementing a writer for open search engine descriptions.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="OpenSearchWriter" ID="OpenSearchWriter"></a>
-<h2>OpenSearchWriter</h2>
-<p>
-    Class implementing a writer for open search engine descriptions.
-</p>
-<h3>Derived from</h3>
-QXmlStreamWriter
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#OpenSearchWriter.__init__">OpenSearchWriter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#OpenSearchWriter.__write">__write</a></td>
-<td>Private method to write the description of an engine.</td>
-</tr><tr>
-<td><a href="#OpenSearchWriter.write">write</a></td>
-<td>Public method to write the description of an engine.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="OpenSearchWriter.__init__" ID="OpenSearchWriter.__init__"></a>
-<h4>OpenSearchWriter (Constructor)</h4>
-<b>OpenSearchWriter</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="OpenSearchWriter.__write" ID="OpenSearchWriter.__write"></a>
-<h4>OpenSearchWriter.__write</h4>
-<b>__write</b>(<i>engine</i>)
-<p>
-        Private method to write the description of an engine.
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the engine (OpenSearchEngine)
-</dd>
-</dl><a NAME="OpenSearchWriter.write" ID="OpenSearchWriter.write"></a>
-<h4>OpenSearchWriter.write</h4>
-<b>write</b>(<i>device, engine</i>)
-<p>
-        Public method to write the description of an engine.
-</p><dl>
-<dt><i>device</i></dt>
-<dd>
-reference to the device to write to (QIODevice)
-</dd><dt><i>engine</i></dt>
-<dd>
-reference to the engine (OpenSearchEngine)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.PageScreenDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.PageScreenDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.PageScreenDialog</h1>
-<p>
-Module implementing a dialog to save a screenshot of a web page.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#PageScreenDialog">PageScreenDialog</a></td>
-<td>Class implementing a dialog to save a screenshot of a web page.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="PageScreenDialog" ID="PageScreenDialog"></a>
-<h2>PageScreenDialog</h2>
-<p>
-    Class implementing a dialog to save a screenshot of a web page.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_PageScreenDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#PageScreenDialog.__init__">PageScreenDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#PageScreenDialog.__createPixmap">__createPixmap</a></td>
-<td>Private slot to create a pixmap of the associated view's page.</td>
-</tr><tr>
-<td><a href="#PageScreenDialog.__savePageScreen">__savePageScreen</a></td>
-<td>Private slot to save the page screen.</td>
-</tr><tr>
-<td><a href="#PageScreenDialog.on_buttonBox_clicked">on_buttonBox_clicked</a></td>
-<td>Private slot to handle clicks of the dialog buttons.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="PageScreenDialog.__init__" ID="PageScreenDialog.__init__"></a>
-<h4>PageScreenDialog (Constructor)</h4>
-<b>PageScreenDialog</b>(<i>view, visibleOnly=False, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>view</i></dt>
-<dd>
-reference to the web view containing the page to be saved
-            (HelpBrowser)
-</dd><dt><i>visibleOnly</i></dt>
-<dd>
-flag indicating to just save the visible part
-            of the page (boolean)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="PageScreenDialog.__createPixmap" ID="PageScreenDialog.__createPixmap"></a>
-<h4>PageScreenDialog.__createPixmap</h4>
-<b>__createPixmap</b>(<i>visibleOnly</i>)
-<p>
-        Private slot to create a pixmap of the associated view's page.
-</p><dl>
-<dt><i>visibleOnly</i></dt>
-<dd>
-flag indicating to just save the visible part
-            of the page (boolean)
-</dd>
-</dl><a NAME="PageScreenDialog.__savePageScreen" ID="PageScreenDialog.__savePageScreen"></a>
-<h4>PageScreenDialog.__savePageScreen</h4>
-<b>__savePageScreen</b>(<i></i>)
-<p>
-        Private slot to save the page screen.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="PageScreenDialog.on_buttonBox_clicked" ID="PageScreenDialog.on_buttonBox_clicked"></a>
-<h4>PageScreenDialog.on_buttonBox_clicked</h4>
-<b>on_buttonBox_clicked</b>(<i>button</i>)
-<p>
-        Private slot to handle clicks of the dialog buttons.
-</p><dl>
-<dt><i>button</i></dt>
-<dd>
-button that was clicked (QAbstractButton)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Passwords.LoginForm.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Passwords.LoginForm</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Passwords.LoginForm</h1>
-<p>
-Module implementing a data structure for login forms.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#LoginForm">LoginForm</a></td>
-<td>Class implementing a data structure for login forms.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="LoginForm" ID="LoginForm"></a>
-<h2>LoginForm</h2>
-<p>
-    Class implementing a data structure for login forms.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#LoginForm.__init__">LoginForm</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#LoginForm.isValid">isValid</a></td>
-<td>Public method to test for validity.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="LoginForm.__init__" ID="LoginForm.__init__"></a>
-<h4>LoginForm (Constructor)</h4>
-<b>LoginForm</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="LoginForm.isValid" ID="LoginForm.isValid"></a>
-<h4>LoginForm.isValid</h4>
-<b>isValid</b>(<i></i>)
-<p>
-        Public method to test for validity.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a valid form (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Passwords.PasswordManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,389 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Passwords.PasswordManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Passwords.PasswordManager</h1>
-<p>
-Module implementing the password manager.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#PasswordManager">PasswordManager</a></td>
-<td>Class implementing the password manager.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="PasswordManager" ID="PasswordManager"></a>
-<h2>PasswordManager</h2>
-<p>
-    Class implementing the password manager.
-</p><h3>Signals</h3>
-<dl>
-<dt>changed()</dt>
-<dd>
-emitted to indicate a change
-</dd><dt>passwordsSaved()</dt>
-<dd>
-emitted after the passwords were saved
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>FORMS</td></tr><tr><td>NEVER</td></tr><tr><td>SEPARATOR</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#PasswordManager.__init__">PasswordManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#PasswordManager.__createKey">__createKey</a></td>
-<td>Private method to create the key string for the login credentials.</td>
-</tr><tr>
-<td><a href="#PasswordManager.__extractMultipartQueryItems">__extractMultipartQueryItems</a></td>
-<td>Private method to extract the query items for a post operation.</td>
-</tr><tr>
-<td><a href="#PasswordManager.__findForm">__findForm</a></td>
-<td>Private method to find the form used for logging in.</td>
-</tr><tr>
-<td><a href="#PasswordManager.__load">__load</a></td>
-<td>Private method to load the saved login credentials.</td>
-</tr><tr>
-<td><a href="#PasswordManager.__loadNonXml">__loadNonXml</a></td>
-<td>Private method to load non-XML password files.</td>
-</tr><tr>
-<td><a href="#PasswordManager.__stripUrl">__stripUrl</a></td>
-<td>Private method to strip off all unneeded parts of a URL.</td>
-</tr><tr>
-<td><a href="#PasswordManager.allSiteNames">allSiteNames</a></td>
-<td>Public method to get a list of all site names.</td>
-</tr><tr>
-<td><a href="#PasswordManager.clear">clear</a></td>
-<td>Public slot to clear the saved passwords.</td>
-</tr><tr>
-<td><a href="#PasswordManager.close">close</a></td>
-<td>Public method to close the passwords manager.</td>
-</tr><tr>
-<td><a href="#PasswordManager.fill">fill</a></td>
-<td>Public slot to fill login forms with saved data.</td>
-</tr><tr>
-<td><a href="#PasswordManager.getFileName">getFileName</a></td>
-<td>Public method to get the file name of the passwords file.</td>
-</tr><tr>
-<td><a href="#PasswordManager.getLogin">getLogin</a></td>
-<td>Public method to get the login credentials.</td>
-</tr><tr>
-<td><a href="#PasswordManager.masterPasswordChanged">masterPasswordChanged</a></td>
-<td>Public slot to handle the change of the master password.</td>
-</tr><tr>
-<td><a href="#PasswordManager.post">post</a></td>
-<td>Public method to check, if the data to be sent contains login data.</td>
-</tr><tr>
-<td><a href="#PasswordManager.reload">reload</a></td>
-<td>Public method to reload the login data.</td>
-</tr><tr>
-<td><a href="#PasswordManager.removePassword">removePassword</a></td>
-<td>Public method to remove a password entry.</td>
-</tr><tr>
-<td><a href="#PasswordManager.save">save</a></td>
-<td>Public slot to save the login entries to disk.</td>
-</tr><tr>
-<td><a href="#PasswordManager.setLogin">setLogin</a></td>
-<td>Public method to set the login credentials.</td>
-</tr><tr>
-<td><a href="#PasswordManager.siteInfo">siteInfo</a></td>
-<td>Public method to get a reference to the named site.</td>
-</tr><tr>
-<td><a href="#PasswordManager.sitesCount">sitesCount</a></td>
-<td>Public method to get the number of available sites.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="PasswordManager.__init__" ID="PasswordManager.__init__"></a>
-<h4>PasswordManager (Constructor)</h4>
-<b>PasswordManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="PasswordManager.__createKey" ID="PasswordManager.__createKey"></a>
-<h4>PasswordManager.__createKey</h4>
-<b>__createKey</b>(<i>url, realm</i>)
-<p>
-        Private method to create the key string for the login credentials.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to get the credentials for (QUrl)
-</dd><dt><i>realm</i></dt>
-<dd>
-realm to get the credentials for (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-key string (string)
-</dd>
-</dl><a NAME="PasswordManager.__extractMultipartQueryItems" ID="PasswordManager.__extractMultipartQueryItems"></a>
-<h4>PasswordManager.__extractMultipartQueryItems</h4>
-<b>__extractMultipartQueryItems</b>(<i>data, boundary</i>)
-<p>
-        Private method to extract the query items for a post operation.
-</p><dl>
-<dt><i>data</i></dt>
-<dd>
-data to be sent (QByteArray)
-</dd><dt><i>boundary</i></dt>
-<dd>
-boundary string (QByteArray)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-set of name, value pairs (set of tuple of string, string)
-</dd>
-</dl><a NAME="PasswordManager.__findForm" ID="PasswordManager.__findForm"></a>
-<h4>PasswordManager.__findForm</h4>
-<b>__findForm</b>(<i>webPage, data, boundary=None</i>)
-<p>
-        Private method to find the form used for logging in.
-</p><dl>
-<dt><i>webPage</i></dt>
-<dd>
-reference to the web page (QWebPage)
-</dd><dt><i>data</i></dt>
-<dd>
-data to be sent (QByteArray)
-</dd><dt><i>boundary=</i></dt>
-<dd>
-boundary string (QByteArray) for multipart
-            encoded data, None for urlencoded data
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-parsed form (LoginForm)
-</dd>
-</dl><a NAME="PasswordManager.__load" ID="PasswordManager.__load"></a>
-<h4>PasswordManager.__load</h4>
-<b>__load</b>(<i></i>)
-<p>
-        Private method to load the saved login credentials.
-</p><a NAME="PasswordManager.__loadNonXml" ID="PasswordManager.__loadNonXml"></a>
-<h4>PasswordManager.__loadNonXml</h4>
-<b>__loadNonXml</b>(<i>loginFile</i>)
-<p>
-        Private method to load non-XML password files.
-</p><p>
-        This method is to convert from the old, non-XML format to the new
-        XML based format.
-</p><dl>
-<dt><i>loginFile</i></dt>
-<dd>
-name of the non-XML password file (string)
-</dd>
-</dl><a NAME="PasswordManager.__stripUrl" ID="PasswordManager.__stripUrl"></a>
-<h4>PasswordManager.__stripUrl</h4>
-<b>__stripUrl</b>(<i>url</i>)
-<p>
-        Private method to strip off all unneeded parts of a URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to be stripped (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-stripped URL (QUrl)
-</dd>
-</dl><a NAME="PasswordManager.allSiteNames" ID="PasswordManager.allSiteNames"></a>
-<h4>PasswordManager.allSiteNames</h4>
-<b>allSiteNames</b>(<i></i>)
-<p>
-        Public method to get a list of all site names.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-sorted list of all site names (list of strings)
-</dd>
-</dl><a NAME="PasswordManager.clear" ID="PasswordManager.clear"></a>
-<h4>PasswordManager.clear</h4>
-<b>clear</b>(<i></i>)
-<p>
-        Public slot to clear the saved passwords.
-</p><a NAME="PasswordManager.close" ID="PasswordManager.close"></a>
-<h4>PasswordManager.close</h4>
-<b>close</b>(<i></i>)
-<p>
-        Public method to close the passwords manager.
-</p><a NAME="PasswordManager.fill" ID="PasswordManager.fill"></a>
-<h4>PasswordManager.fill</h4>
-<b>fill</b>(<i>page</i>)
-<p>
-        Public slot to fill login forms with saved data.
-</p><dl>
-<dt><i>page</i></dt>
-<dd>
-reference to the web page (QWebPage)
-</dd>
-</dl><a NAME="PasswordManager.getFileName" ID="PasswordManager.getFileName"></a>
-<h4>PasswordManager.getFileName</h4>
-<b>getFileName</b>(<i></i>)
-<p>
-        Public method to get the file name of the passwords file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-name of the passwords file (string)
-</dd>
-</dl><a NAME="PasswordManager.getLogin" ID="PasswordManager.getLogin"></a>
-<h4>PasswordManager.getLogin</h4>
-<b>getLogin</b>(<i>url, realm</i>)
-<p>
-        Public method to get the login credentials.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to get the credentials for (QUrl)
-</dd><dt><i>realm</i></dt>
-<dd>
-realm to get the credentials for (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple containing the user name (string) and password (string)
-</dd>
-</dl><a NAME="PasswordManager.masterPasswordChanged" ID="PasswordManager.masterPasswordChanged"></a>
-<h4>PasswordManager.masterPasswordChanged</h4>
-<b>masterPasswordChanged</b>(<i>oldPassword, newPassword</i>)
-<p>
-        Public slot to handle the change of the master password.
-</p><dl>
-<dt><i>oldPassword</i></dt>
-<dd>
-current master password (string)
-</dd><dt><i>newPassword</i></dt>
-<dd>
-new master password (string)
-</dd>
-</dl><a NAME="PasswordManager.post" ID="PasswordManager.post"></a>
-<h4>PasswordManager.post</h4>
-<b>post</b>(<i>request, data</i>)
-<p>
-        Public method to check, if the data to be sent contains login data.
-</p><dl>
-<dt><i>request</i></dt>
-<dd>
-reference to the network request (QNetworkRequest)
-</dd><dt><i>data</i></dt>
-<dd>
-data to be sent (QByteArray)
-</dd>
-</dl><a NAME="PasswordManager.reload" ID="PasswordManager.reload"></a>
-<h4>PasswordManager.reload</h4>
-<b>reload</b>(<i></i>)
-<p>
-        Public method to reload the login data.
-</p><a NAME="PasswordManager.removePassword" ID="PasswordManager.removePassword"></a>
-<h4>PasswordManager.removePassword</h4>
-<b>removePassword</b>(<i>site</i>)
-<p>
-        Public method to remove a password entry.
-</p><dl>
-<dt><i>site</i></dt>
-<dd>
-web site name (string)
-</dd>
-</dl><a NAME="PasswordManager.save" ID="PasswordManager.save"></a>
-<h4>PasswordManager.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public slot to save the login entries to disk.
-</p><a NAME="PasswordManager.setLogin" ID="PasswordManager.setLogin"></a>
-<h4>PasswordManager.setLogin</h4>
-<b>setLogin</b>(<i>url, realm, username, password</i>)
-<p>
-        Public method to set the login credentials.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to set the credentials for (QUrl)
-</dd><dt><i>realm</i></dt>
-<dd>
-realm to set the credentials for (string)
-</dd><dt><i>username</i></dt>
-<dd>
-username for the login (string)
-</dd><dt><i>password</i></dt>
-<dd>
-password for the login (string)
-</dd>
-</dl><a NAME="PasswordManager.siteInfo" ID="PasswordManager.siteInfo"></a>
-<h4>PasswordManager.siteInfo</h4>
-<b>siteInfo</b>(<i>site</i>)
-<p>
-        Public method to get a reference to the named site.
-</p><dl>
-<dt><i>site</i></dt>
-<dd>
-web site name (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple containing the user name (string) and password (string)
-</dd>
-</dl><a NAME="PasswordManager.sitesCount" ID="PasswordManager.sitesCount"></a>
-<h4>PasswordManager.sitesCount</h4>
-<b>sitesCount</b>(<i></i>)
-<p>
-        Public method to get the number of available sites.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-number of sites (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Passwords.PasswordModel.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Passwords.PasswordModel</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Passwords.PasswordModel</h1>
-<p>
-Module implementing a model for password management.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#PasswordModel">PasswordModel</a></td>
-<td>Class implementing a model for password management.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="PasswordModel" ID="PasswordModel"></a>
-<h2>PasswordModel</h2>
-<p>
-    Class implementing a model for password management.
-</p>
-<h3>Derived from</h3>
-QAbstractTableModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#PasswordModel.__init__">PasswordModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#PasswordModel.__passwordsChanged">__passwordsChanged</a></td>
-<td>Private slot handling a change of the registered passwords.</td>
-</tr><tr>
-<td><a href="#PasswordModel.columnCount">columnCount</a></td>
-<td>Public method to get the number of columns of the model.</td>
-</tr><tr>
-<td><a href="#PasswordModel.data">data</a></td>
-<td>Public method to get data from the model.</td>
-</tr><tr>
-<td><a href="#PasswordModel.headerData">headerData</a></td>
-<td>Public method to get the header data.</td>
-</tr><tr>
-<td><a href="#PasswordModel.removeRows">removeRows</a></td>
-<td>Public method to remove entries from the model.</td>
-</tr><tr>
-<td><a href="#PasswordModel.rowCount">rowCount</a></td>
-<td>Public method to get the number of rows of the model.</td>
-</tr><tr>
-<td><a href="#PasswordModel.setShowPasswords">setShowPasswords</a></td>
-<td>Public methods to show passwords.</td>
-</tr><tr>
-<td><a href="#PasswordModel.showPasswords">showPasswords</a></td>
-<td>Public method to indicate, if passwords shall be shown.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="PasswordModel.__init__" ID="PasswordModel.__init__"></a>
-<h4>PasswordModel (Constructor)</h4>
-<b>PasswordModel</b>(<i>manager, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>manager</i></dt>
-<dd>
-reference to the password manager (PasswordManager)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="PasswordModel.__passwordsChanged" ID="PasswordModel.__passwordsChanged"></a>
-<h4>PasswordModel.__passwordsChanged</h4>
-<b>__passwordsChanged</b>(<i></i>)
-<p>
-        Private slot handling a change of the registered passwords.
-</p><a NAME="PasswordModel.columnCount" ID="PasswordModel.columnCount"></a>
-<h4>PasswordModel.columnCount</h4>
-<b>columnCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of columns of the model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex) (Unused)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl><a NAME="PasswordModel.data" ID="PasswordModel.data"></a>
-<h4>PasswordModel.data</h4>
-<b>data</b>(<i>index, role</i>)
-<p>
-        Public method to get data from the model.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index to get data for (QModelIndex)
-</dd><dt><i>role</i></dt>
-<dd>
-role of the data to retrieve (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested data
-</dd>
-</dl><a NAME="PasswordModel.headerData" ID="PasswordModel.headerData"></a>
-<h4>PasswordModel.headerData</h4>
-<b>headerData</b>(<i>section, orientation, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get the header data.
-</p><dl>
-<dt><i>section</i></dt>
-<dd>
-section number (integer)
-</dd><dt><i>orientation</i></dt>
-<dd>
-header orientation (Qt.Orientation)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-header data
-</dd>
-</dl><a NAME="PasswordModel.removeRows" ID="PasswordModel.removeRows"></a>
-<h4>PasswordModel.removeRows</h4>
-<b>removeRows</b>(<i>row, count, parent=None</i>)
-<p>
-        Public method to remove entries from the model.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-start row (integer)
-</dd><dt><i>count</i></dt>
-<dd>
-number of rows to remove (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="PasswordModel.rowCount" ID="PasswordModel.rowCount"></a>
-<h4>PasswordModel.rowCount</h4>
-<b>rowCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of rows of the model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of rows (integer)
-</dd>
-</dl><a NAME="PasswordModel.setShowPasswords" ID="PasswordModel.setShowPasswords"></a>
-<h4>PasswordModel.setShowPasswords</h4>
-<b>setShowPasswords</b>(<i>on</i>)
-<p>
-        Public methods to show passwords.
-</p><dl>
-<dt><i>on</i></dt>
-<dd>
-flag indicating if passwords shall be shown (boolean)
-</dd>
-</dl><a NAME="PasswordModel.showPasswords" ID="PasswordModel.showPasswords"></a>
-<h4>PasswordModel.showPasswords</h4>
-<b>showPasswords</b>(<i></i>)
-<p>
-        Public method to indicate, if passwords shall be shown.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating if passwords shall be shown (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Passwords.PasswordReader.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Passwords.PasswordReader</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Passwords.PasswordReader</h1>
-<p>
-Module implementing a class to read login data files.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#PasswordReader">PasswordReader</a></td>
-<td>Class implementing a reader object for login data files.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="PasswordReader" ID="PasswordReader"></a>
-<h2>PasswordReader</h2>
-<p>
-    Class implementing a reader object for login data files.
-</p>
-<h3>Derived from</h3>
-QXmlStreamReader
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#PasswordReader.__init__">PasswordReader</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#PasswordReader.__readForms">__readForms</a></td>
-<td>Private method to read the forms information.</td>
-</tr><tr>
-<td><a href="#PasswordReader.__readLogins">__readLogins</a></td>
-<td>Private method to read the login information.</td>
-</tr><tr>
-<td><a href="#PasswordReader.__readNevers">__readNevers</a></td>
-<td>Private method to read the never URLs.</td>
-</tr><tr>
-<td><a href="#PasswordReader.__readPasswords">__readPasswords</a></td>
-<td>Private method to read and parse the login data file.</td>
-</tr><tr>
-<td><a href="#PasswordReader.__skipUnknownElement">__skipUnknownElement</a></td>
-<td>Private method to skip over all unknown elements.</td>
-</tr><tr>
-<td><a href="#PasswordReader.read">read</a></td>
-<td>Public method to read a login data file.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="PasswordReader.__init__" ID="PasswordReader.__init__"></a>
-<h4>PasswordReader (Constructor)</h4>
-<b>PasswordReader</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="PasswordReader.__readForms" ID="PasswordReader.__readForms"></a>
-<h4>PasswordReader.__readForms</h4>
-<b>__readForms</b>(<i></i>)
-<p>
-        Private method to read the forms information.
-</p><a NAME="PasswordReader.__readLogins" ID="PasswordReader.__readLogins"></a>
-<h4>PasswordReader.__readLogins</h4>
-<b>__readLogins</b>(<i></i>)
-<p>
-        Private method to read the login information.
-</p><a NAME="PasswordReader.__readNevers" ID="PasswordReader.__readNevers"></a>
-<h4>PasswordReader.__readNevers</h4>
-<b>__readNevers</b>(<i></i>)
-<p>
-        Private method to read the never URLs.
-</p><a NAME="PasswordReader.__readPasswords" ID="PasswordReader.__readPasswords"></a>
-<h4>PasswordReader.__readPasswords</h4>
-<b>__readPasswords</b>(<i></i>)
-<p>
-        Private method to read and parse the login data file.
-</p><a NAME="PasswordReader.__skipUnknownElement" ID="PasswordReader.__skipUnknownElement"></a>
-<h4>PasswordReader.__skipUnknownElement</h4>
-<b>__skipUnknownElement</b>(<i></i>)
-<p>
-        Private method to skip over all unknown elements.
-</p><a NAME="PasswordReader.read" ID="PasswordReader.read"></a>
-<h4>PasswordReader.read</h4>
-<b>read</b>(<i>fileNameOrDevice</i>)
-<p>
-        Public method to read a login data file.
-</p><dl>
-<dt><i>fileNameOrDevice</i></dt>
-<dd>
-name of the file to read (string)
-            or reference to the device to read (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple containing the logins, forms and never URLs
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Passwords.PasswordWriter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Passwords.PasswordWriter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Passwords.PasswordWriter</h1>
-<p>
-Module implementing a class to write login data files.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#PasswordWriter">PasswordWriter</a></td>
-<td>Class implementing a writer object to generate login data files.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="PasswordWriter" ID="PasswordWriter"></a>
-<h2>PasswordWriter</h2>
-<p>
-    Class implementing a writer object to generate login data files.
-</p>
-<h3>Derived from</h3>
-QXmlStreamWriter
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#PasswordWriter.__init__">PasswordWriter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#PasswordWriter.__write">__write</a></td>
-<td>Private method to write an login data file.</td>
-</tr><tr>
-<td><a href="#PasswordWriter.__writeForms">__writeForms</a></td>
-<td>Private method to write forms data.</td>
-</tr><tr>
-<td><a href="#PasswordWriter.__writeLogins">__writeLogins</a></td>
-<td>Private method to write the login data.</td>
-</tr><tr>
-<td><a href="#PasswordWriter.__writeNevers">__writeNevers</a></td>
-<td>Private method to write the URLs never to store login data for.</td>
-</tr><tr>
-<td><a href="#PasswordWriter.write">write</a></td>
-<td>Public method to write an login data file.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="PasswordWriter.__init__" ID="PasswordWriter.__init__"></a>
-<h4>PasswordWriter (Constructor)</h4>
-<b>PasswordWriter</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="PasswordWriter.__write" ID="PasswordWriter.__write"></a>
-<h4>PasswordWriter.__write</h4>
-<b>__write</b>(<i>logins, forms, nevers</i>)
-<p>
-        Private method to write an login data file.
-</p><dl>
-<dt><i>logins</i></dt>
-<dd>
-dictionary with login data (user name, password)
-</dd><dt><i>forms</i></dt>
-<dd>
-list of forms data (list of LoginForm)
-</dd><dt><i>nevers</i></dt>
-<dd>
-list of URLs to never store data for (list of strings)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="PasswordWriter.__writeForms" ID="PasswordWriter.__writeForms"></a>
-<h4>PasswordWriter.__writeForms</h4>
-<b>__writeForms</b>(<i>forms</i>)
-<p>
-        Private method to write forms data.
-</p><dl>
-<dt><i>forms</i></dt>
-<dd>
-list of forms data (list of LoginForm)
-</dd>
-</dl><a NAME="PasswordWriter.__writeLogins" ID="PasswordWriter.__writeLogins"></a>
-<h4>PasswordWriter.__writeLogins</h4>
-<b>__writeLogins</b>(<i>logins</i>)
-<p>
-        Private method to write the login data.
-</p><dl>
-<dt><i>logins</i></dt>
-<dd>
-dictionary with login data (user name, password)
-</dd>
-</dl><a NAME="PasswordWriter.__writeNevers" ID="PasswordWriter.__writeNevers"></a>
-<h4>PasswordWriter.__writeNevers</h4>
-<b>__writeNevers</b>(<i>nevers</i>)
-<p>
-        Private method to write the URLs never to store login data for.
-</p><dl>
-<dt><i>nevers</i></dt>
-<dd>
-list of URLs to never store data for (list of strings)
-</dd>
-</dl><a NAME="PasswordWriter.write" ID="PasswordWriter.write"></a>
-<h4>PasswordWriter.write</h4>
-<b>write</b>(<i>fileNameOrDevice, logins, forms, nevers</i>)
-<p>
-        Public method to write an login data file.
-</p><dl>
-<dt><i>fileNameOrDevice</i></dt>
-<dd>
-name of the file to write (string)
-            or device to write to (QIODevice)
-</dd><dt><i>logins</i></dt>
-<dd>
-dictionary with login data (user name, password)
-</dd><dt><i>forms</i></dt>
-<dd>
-list of forms data (list of LoginForm)
-</dd><dt><i>nevers</i></dt>
-<dd>
-list of URLs to never store data for (list of strings)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Passwords.PasswordsDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Passwords.PasswordsDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Passwords.PasswordsDialog</h1>
-<p>
-Module implementing a dialog to show all saved logins.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#PasswordsDialog">PasswordsDialog</a></td>
-<td>Class implementing a dialog to show all saved logins.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="PasswordsDialog" ID="PasswordsDialog"></a>
-<h2>PasswordsDialog</h2>
-<p>
-    Class implementing a dialog to show all saved logins.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_PasswordsDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#PasswordsDialog.__init__">PasswordsDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#PasswordsDialog.__calculateHeaderSizes">__calculateHeaderSizes</a></td>
-<td>Private method to calculate the section sizes of the horizontal header.</td>
-</tr><tr>
-<td><a href="#PasswordsDialog.on_passwordsButton_clicked">on_passwordsButton_clicked</a></td>
-<td>Private slot to switch the password display mode.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="PasswordsDialog.__init__" ID="PasswordsDialog.__init__"></a>
-<h4>PasswordsDialog (Constructor)</h4>
-<b>PasswordsDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="PasswordsDialog.__calculateHeaderSizes" ID="PasswordsDialog.__calculateHeaderSizes"></a>
-<h4>PasswordsDialog.__calculateHeaderSizes</h4>
-<b>__calculateHeaderSizes</b>(<i></i>)
-<p>
-        Private method to calculate the section sizes of the horizontal header.
-</p><a NAME="PasswordsDialog.on_passwordsButton_clicked" ID="PasswordsDialog.on_passwordsButton_clicked"></a>
-<h4>PasswordsDialog.on_passwordsButton_clicked</h4>
-<b>on_passwordsButton_clicked</b>(<i></i>)
-<p>
-        Private slot to switch the password display mode.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.PersonalInformationManager.PersonalDataDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.PersonalInformationManager.PersonalDataDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.PersonalInformationManager.PersonalDataDialog</h1>
-<p>
-Module implementing a dialog to enter personal data.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#PersonalDataDialog">PersonalDataDialog</a></td>
-<td>Class implementing a dialog to enter personal data.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="PersonalDataDialog" ID="PersonalDataDialog"></a>
-<h2>PersonalDataDialog</h2>
-<p>
-    Class implementing a dialog to enter personal data.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_PersonalDataDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#PersonalDataDialog.__init__">PersonalDataDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#PersonalDataDialog.storeData">storeData</a></td>
-<td>Public method to store the entered personal information.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="PersonalDataDialog.__init__" ID="PersonalDataDialog.__init__"></a>
-<h4>PersonalDataDialog (Constructor)</h4>
-<b>PersonalDataDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="PersonalDataDialog.storeData" ID="PersonalDataDialog.storeData"></a>
-<h4>PersonalDataDialog.storeData</h4>
-<b>storeData</b>(<i></i>)
-<p>
-        Public method to store the entered personal information.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,201 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager</h1>
-<p>
-Module implementing a personal information manager used to complete form
-fields.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#PersonalInformationManager">PersonalInformationManager</a></td>
-<td>Class implementing the personal information manager used to complete form fields.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="PersonalInformationManager" ID="PersonalInformationManager"></a>
-<h2>PersonalInformationManager</h2>
-<p>
-    Class implementing the personal information manager used to complete form
-    fields.
-</p>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>Address</td></tr><tr><td>City</td></tr><tr><td>Country</td></tr><tr><td>Email</td></tr><tr><td>FirstName</td></tr><tr><td>FullName</td></tr><tr><td>HomePage</td></tr><tr><td>Invalid</td></tr><tr><td>LastName</td></tr><tr><td>Max</td></tr><tr><td>Mobile</td></tr><tr><td>Phone</td></tr><tr><td>Special1</td></tr><tr><td>Special2</td></tr><tr><td>Special3</td></tr><tr><td>Special4</td></tr><tr><td>State</td></tr><tr><td>Zip</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#PersonalInformationManager.__init__">PersonalInformationManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#PersonalInformationManager.__insertData">__insertData</a></td>
-<td>Private slot to insert the selected personal information.</td>
-</tr><tr>
-<td><a href="#PersonalInformationManager.__loadSettings">__loadSettings</a></td>
-<td>Private method to load the settings.</td>
-</tr><tr>
-<td><a href="#PersonalInformationManager.__nameMatch">__nameMatch</a></td>
-<td>Private method to find the information entry for the given field.</td>
-</tr><tr>
-<td><a href="#PersonalInformationManager.__pageLoadFinished">__pageLoadFinished</a></td>
-<td>Private slot to handle the completion of a page load.</td>
-</tr><tr>
-<td><a href="#PersonalInformationManager.connectPage">connectPage</a></td>
-<td>Public method to allow the personal information manager to connect to the page.</td>
-</tr><tr>
-<td><a href="#PersonalInformationManager.createSubMenu">createSubMenu</a></td>
-<td>Public method to create the personal information sub-menu.</td>
-</tr><tr>
-<td><a href="#PersonalInformationManager.showConfigurationDialog">showConfigurationDialog</a></td>
-<td>Public method to show the configuration dialog.</td>
-</tr><tr>
-<td><a href="#PersonalInformationManager.viewKeyPressEvent">viewKeyPressEvent</a></td>
-<td>Protected method to handle key press events we are interested in.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="PersonalInformationManager.__init__" ID="PersonalInformationManager.__init__"></a>
-<h4>PersonalInformationManager (Constructor)</h4>
-<b>PersonalInformationManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="PersonalInformationManager.__insertData" ID="PersonalInformationManager.__insertData"></a>
-<h4>PersonalInformationManager.__insertData</h4>
-<b>__insertData</b>(<i>act</i>)
-<p>
-        Private slot to insert the selected personal information.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action that triggered
-</dd>
-</dl><a NAME="PersonalInformationManager.__loadSettings" ID="PersonalInformationManager.__loadSettings"></a>
-<h4>PersonalInformationManager.__loadSettings</h4>
-<b>__loadSettings</b>(<i></i>)
-<p>
-        Private method to load the settings.
-</p><a NAME="PersonalInformationManager.__nameMatch" ID="PersonalInformationManager.__nameMatch"></a>
-<h4>PersonalInformationManager.__nameMatch</h4>
-<b>__nameMatch</b>(<i>name</i>)
-<p>
-        Private method to find the information entry for the given field.
-</p><dl>
-<dt><i>name</i></dt>
-<dd>
-name of the form field (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-value of the information entry (integer)
-</dd>
-</dl><a NAME="PersonalInformationManager.__pageLoadFinished" ID="PersonalInformationManager.__pageLoadFinished"></a>
-<h4>PersonalInformationManager.__pageLoadFinished</h4>
-<b>__pageLoadFinished</b>(<i>ok, page</i>)
-<p>
-        Private slot to handle the completion of a page load.
-</p><dl>
-<dt><i>ok</i> (bool)</dt>
-<dd>
-flag indicating a successful load
-</dd><dt><i>page</i> (HelpWebPage)</dt>
-<dd>
-reference to the web page object
-</dd>
-</dl><a NAME="PersonalInformationManager.connectPage" ID="PersonalInformationManager.connectPage"></a>
-<h4>PersonalInformationManager.connectPage</h4>
-<b>connectPage</b>(<i>page</i>)
-<p>
-        Public method to allow the personal information manager to connect to
-        the page.
-</p><dl>
-<dt><i>page</i></dt>
-<dd>
-reference to the web page (HelpWebPage)
-</dd>
-</dl><a NAME="PersonalInformationManager.createSubMenu" ID="PersonalInformationManager.createSubMenu"></a>
-<h4>PersonalInformationManager.createSubMenu</h4>
-<b>createSubMenu</b>(<i>menu, view, hitTestResult</i>)
-<p>
-        Public method to create the personal information sub-menu.
-</p><dl>
-<dt><i>menu</i></dt>
-<dd>
-reference to the main menu (QMenu)
-</dd><dt><i>view</i></dt>
-<dd>
-reference to the view (HelpBrowser)
-</dd><dt><i>hitTestResult</i></dt>
-<dd>
-reference to the hit test result
-            (QWebHitTestResult)
-</dd>
-</dl><a NAME="PersonalInformationManager.showConfigurationDialog" ID="PersonalInformationManager.showConfigurationDialog"></a>
-<h4>PersonalInformationManager.showConfigurationDialog</h4>
-<b>showConfigurationDialog</b>(<i></i>)
-<p>
-        Public method to show the configuration dialog.
-</p><a NAME="PersonalInformationManager.viewKeyPressEvent" ID="PersonalInformationManager.viewKeyPressEvent"></a>
-<h4>PersonalInformationManager.viewKeyPressEvent</h4>
-<b>viewKeyPressEvent</b>(<i>view, evt</i>)
-<p>
-        Protected method to handle key press events we are interested in.
-</p><dl>
-<dt><i>view</i></dt>
-<dd>
-reference to the view (HelpBrowser)
-</dd><dt><i>evt</i></dt>
-<dd>
-reference to the key event (QKeyEvent)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating handling of the event (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.QtHelpDocumentationDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.QtHelpDocumentationDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.QtHelpDocumentationDialog</h1>
-<p>
-Module implementing a dialog to manage the QtHelp documentation database.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#QtHelpDocumentationDialog">QtHelpDocumentationDialog</a></td>
-<td>Class implementing a dialog to manage the QtHelp documentation database.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="QtHelpDocumentationDialog" ID="QtHelpDocumentationDialog"></a>
-<h2>QtHelpDocumentationDialog</h2>
-<p>
-    Class implementing a dialog to manage the QtHelp documentation database.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_QtHelpDocumentationDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#QtHelpDocumentationDialog.__init__">QtHelpDocumentationDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#QtHelpDocumentationDialog.__registerDocumentations">__registerDocumentations</a></td>
-<td>Private method to register a given list of documentations.</td>
-</tr><tr>
-<td><a href="#QtHelpDocumentationDialog.getTabsToClose">getTabsToClose</a></td>
-<td>Public method to get the list of tabs to close.</td>
-</tr><tr>
-<td><a href="#QtHelpDocumentationDialog.hasChanges">hasChanges</a></td>
-<td>Public slot to test the dialog for changes.</td>
-</tr><tr>
-<td><a href="#QtHelpDocumentationDialog.on_addButton_clicked">on_addButton_clicked</a></td>
-<td>Private slot to add QtHelp documents to the help database.</td>
-</tr><tr>
-<td><a href="#QtHelpDocumentationDialog.on_addPluginButton_clicked">on_addPluginButton_clicked</a></td>
-<td>Private slot to add QtHelp documents provided by plug-ins to the help database.</td>
-</tr><tr>
-<td><a href="#QtHelpDocumentationDialog.on_documentsList_itemSelectionChanged">on_documentsList_itemSelectionChanged</a></td>
-<td>Private slot handling a change of the documents selection.</td>
-</tr><tr>
-<td><a href="#QtHelpDocumentationDialog.on_managePluginButton_clicked">on_managePluginButton_clicked</a></td>
-<td>Private slot to manage the QtHelp documents provided by plug-ins.</td>
-</tr><tr>
-<td><a href="#QtHelpDocumentationDialog.on_removeButton_clicked">on_removeButton_clicked</a></td>
-<td>Private slot to remove a document from the help database.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="QtHelpDocumentationDialog.__init__" ID="QtHelpDocumentationDialog.__init__"></a>
-<h4>QtHelpDocumentationDialog (Constructor)</h4>
-<b>QtHelpDocumentationDialog</b>(<i>engine, parent</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the help engine (QHelpEngine)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="QtHelpDocumentationDialog.__registerDocumentations" ID="QtHelpDocumentationDialog.__registerDocumentations"></a>
-<h4>QtHelpDocumentationDialog.__registerDocumentations</h4>
-<b>__registerDocumentations</b>(<i>fileNames</i>)
-<p>
-        Private method to register a given list of documentations.
-</p><dl>
-<dt><i>fileNames</i> (list of str)</dt>
-<dd>
-list of documentation files to be registered
-</dd>
-</dl><a NAME="QtHelpDocumentationDialog.getTabsToClose" ID="QtHelpDocumentationDialog.getTabsToClose"></a>
-<h4>QtHelpDocumentationDialog.getTabsToClose</h4>
-<b>getTabsToClose</b>(<i></i>)
-<p>
-        Public method to get the list of tabs to close.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of tab ids to be closed (list of integers)
-</dd>
-</dl><a NAME="QtHelpDocumentationDialog.hasChanges" ID="QtHelpDocumentationDialog.hasChanges"></a>
-<h4>QtHelpDocumentationDialog.hasChanges</h4>
-<b>hasChanges</b>(<i></i>)
-<p>
-        Public slot to test the dialog for changes.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating presence of changes
-</dd>
-</dl><a NAME="QtHelpDocumentationDialog.on_addButton_clicked" ID="QtHelpDocumentationDialog.on_addButton_clicked"></a>
-<h4>QtHelpDocumentationDialog.on_addButton_clicked</h4>
-<b>on_addButton_clicked</b>(<i></i>)
-<p>
-        Private slot to add QtHelp documents to the help database.
-</p><a NAME="QtHelpDocumentationDialog.on_addPluginButton_clicked" ID="QtHelpDocumentationDialog.on_addPluginButton_clicked"></a>
-<h4>QtHelpDocumentationDialog.on_addPluginButton_clicked</h4>
-<b>on_addPluginButton_clicked</b>(<i></i>)
-<p>
-        Private slot to add QtHelp documents provided by plug-ins to
-        the help database.
-</p><a NAME="QtHelpDocumentationDialog.on_documentsList_itemSelectionChanged" ID="QtHelpDocumentationDialog.on_documentsList_itemSelectionChanged"></a>
-<h4>QtHelpDocumentationDialog.on_documentsList_itemSelectionChanged</h4>
-<b>on_documentsList_itemSelectionChanged</b>(<i></i>)
-<p>
-        Private slot handling a change of the documents selection.
-</p><a NAME="QtHelpDocumentationDialog.on_managePluginButton_clicked" ID="QtHelpDocumentationDialog.on_managePluginButton_clicked"></a>
-<h4>QtHelpDocumentationDialog.on_managePluginButton_clicked</h4>
-<b>on_managePluginButton_clicked</b>(<i></i>)
-<p>
-        Private slot to manage the QtHelp documents provided by plug-ins.
-</p><a NAME="QtHelpDocumentationDialog.on_removeButton_clicked" ID="QtHelpDocumentationDialog.on_removeButton_clicked"></a>
-<h4>QtHelpDocumentationDialog.on_removeButton_clicked</h4>
-<b>on_removeButton_clicked</b>(<i></i>)
-<p>
-        Private slot to remove a document from the help database.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.QtHelpDocumentationSelectionDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.QtHelpDocumentationSelectionDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.QtHelpDocumentationSelectionDialog</h1>
-<p>
-Module implementing a dialog to select QtHelp documentation sets to be
-installed.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#QtHelpDocumentationSelectionDialog">QtHelpDocumentationSelectionDialog</a></td>
-<td>Class implementing a dialog to select QtHelp documentation sets to be installed.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="QtHelpDocumentationSelectionDialog" ID="QtHelpDocumentationSelectionDialog"></a>
-<h2>QtHelpDocumentationSelectionDialog</h2>
-<p>
-    Class implementing a dialog to select QtHelp documentation sets to be
-    installed.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_QtHelpDocumentationSelectionDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>AddMode</td></tr><tr><td>ManageMode</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#QtHelpDocumentationSelectionDialog.__init__">QtHelpDocumentationSelectionDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#QtHelpDocumentationSelectionDialog.__deleteCategory">__deleteCategory</a></td>
-<td>Private method to delete a category.</td>
-</tr><tr>
-<td><a href="#QtHelpDocumentationSelectionDialog.getData">getData</a></td>
-<td>Public method to retrieve the selected help documents.</td>
-</tr><tr>
-<td><a href="#QtHelpDocumentationSelectionDialog.on_deleteAllButton_clicked">on_deleteAllButton_clicked</a></td>
-<td>Private slot to delete all documentation sets.</td>
-</tr><tr>
-<td><a href="#QtHelpDocumentationSelectionDialog.on_deleteButton_clicked">on_deleteButton_clicked</a></td>
-<td>Private slot to delete the selected documentation sets.</td>
-</tr><tr>
-<td><a href="#QtHelpDocumentationSelectionDialog.on_deleteCategoryButton_clicked">on_deleteCategoryButton_clicked</a></td>
-<td>Private slot to delete the selected documentation set categories.</td>
-</tr><tr>
-<td><a href="#QtHelpDocumentationSelectionDialog.on_documentationList_itemSelectionChanged">on_documentationList_itemSelectionChanged</a></td>
-<td>Private slot handling the selection of items.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="QtHelpDocumentationSelectionDialog.__init__" ID="QtHelpDocumentationSelectionDialog.__init__"></a>
-<h4>QtHelpDocumentationSelectionDialog (Constructor)</h4>
-<b>QtHelpDocumentationSelectionDialog</b>(<i>helpDocuments, mode, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>helpDocuments</i> (dict of lists of str)</dt>
-<dd>
-dictionary containing the lists of help documents
-            to be shown
-</dd><dt><i>mode</i> (str)</dt>
-<dd>
-mode of the dialog
-</dd><dt><i>parent</i> (QWidget)</dt>
-<dd>
-reference to the parent widget
-</dd>
-</dl><a NAME="QtHelpDocumentationSelectionDialog.__deleteCategory" ID="QtHelpDocumentationSelectionDialog.__deleteCategory"></a>
-<h4>QtHelpDocumentationSelectionDialog.__deleteCategory</h4>
-<b>__deleteCategory</b>(<i>category</i>)
-<p>
-        Private method to delete a category.
-</p><dl>
-<dt><i>category</i> (QTreeWidgetItem)</dt>
-<dd>
-reference to the category item
-</dd>
-</dl><a NAME="QtHelpDocumentationSelectionDialog.getData" ID="QtHelpDocumentationSelectionDialog.getData"></a>
-<h4>QtHelpDocumentationSelectionDialog.getData</h4>
-<b>getData</b>(<i></i>)
-<p>
-        Public method to retrieve the selected help documents.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of QtHelp documentation sets to be installed
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="QtHelpDocumentationSelectionDialog.on_deleteAllButton_clicked" ID="QtHelpDocumentationSelectionDialog.on_deleteAllButton_clicked"></a>
-<h4>QtHelpDocumentationSelectionDialog.on_deleteAllButton_clicked</h4>
-<b>on_deleteAllButton_clicked</b>(<i></i>)
-<p>
-        Private slot to delete all documentation sets.
-</p><a NAME="QtHelpDocumentationSelectionDialog.on_deleteButton_clicked" ID="QtHelpDocumentationSelectionDialog.on_deleteButton_clicked"></a>
-<h4>QtHelpDocumentationSelectionDialog.on_deleteButton_clicked</h4>
-<b>on_deleteButton_clicked</b>(<i></i>)
-<p>
-        Private slot to delete the selected documentation sets.
-</p><a NAME="QtHelpDocumentationSelectionDialog.on_deleteCategoryButton_clicked" ID="QtHelpDocumentationSelectionDialog.on_deleteCategoryButton_clicked"></a>
-<h4>QtHelpDocumentationSelectionDialog.on_deleteCategoryButton_clicked</h4>
-<b>on_deleteCategoryButton_clicked</b>(<i></i>)
-<p>
-        Private slot to delete the selected documentation set categories.
-</p><a NAME="QtHelpDocumentationSelectionDialog.on_documentationList_itemSelectionChanged" ID="QtHelpDocumentationSelectionDialog.on_documentationList_itemSelectionChanged"></a>
-<h4>QtHelpDocumentationSelectionDialog.on_documentationList_itemSelectionChanged</h4>
-<b>on_documentationList_itemSelectionChanged</b>(<i></i>)
-<p>
-        Private slot handling the selection of items.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.QtHelpFiltersDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,181 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.QtHelpFiltersDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.QtHelpFiltersDialog</h1>
-<p>
-Module implementing a dialog to manage the QtHelp filters.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#QtHelpFiltersDialog">QtHelpFiltersDialog</a></td>
-<td>Class implementing a dialog to manage the QtHelp filters.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="QtHelpFiltersDialog" ID="QtHelpFiltersDialog"></a>
-<h2>QtHelpFiltersDialog</h2>
-<p>
-    Class implementing a dialog to manage the QtHelp filters.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_QtHelpFiltersDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#QtHelpFiltersDialog.__init__">QtHelpFiltersDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#QtHelpFiltersDialog.__removeAttributes">__removeAttributes</a></td>
-<td>Private method to remove attributes from the Qt Help database.</td>
-</tr><tr>
-<td><a href="#QtHelpFiltersDialog.on_addButton_clicked">on_addButton_clicked</a></td>
-<td>Private slot to add a new filter.</td>
-</tr><tr>
-<td><a href="#QtHelpFiltersDialog.on_attributesList_itemChanged">on_attributesList_itemChanged</a></td>
-<td>Private slot to handle a change of an attribute.</td>
-</tr><tr>
-<td><a href="#QtHelpFiltersDialog.on_attributesList_itemSelectionChanged">on_attributesList_itemSelectionChanged</a></td>
-<td>Private slot handling the selection of attributes.</td>
-</tr><tr>
-<td><a href="#QtHelpFiltersDialog.on_buttonBox_accepted">on_buttonBox_accepted</a></td>
-<td>Private slot to update the database, if the dialog is accepted.</td>
-</tr><tr>
-<td><a href="#QtHelpFiltersDialog.on_filtersList_currentItemChanged">on_filtersList_currentItemChanged</a></td>
-<td>Private slot to update the attributes depending on the current filter.</td>
-</tr><tr>
-<td><a href="#QtHelpFiltersDialog.on_filtersList_itemSelectionChanged">on_filtersList_itemSelectionChanged</a></td>
-<td>Private slot handling a change of selected filters.</td>
-</tr><tr>
-<td><a href="#QtHelpFiltersDialog.on_removeAttributeButton_clicked">on_removeAttributeButton_clicked</a></td>
-<td>Private slot to remove the selected filter attributes.</td>
-</tr><tr>
-<td><a href="#QtHelpFiltersDialog.on_removeButton_clicked">on_removeButton_clicked</a></td>
-<td>Private slot to remove the selected filters.</td>
-</tr><tr>
-<td><a href="#QtHelpFiltersDialog.on_unusedAttributesButton_clicked">on_unusedAttributesButton_clicked</a></td>
-<td>Private slot to select all unused attributes.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="QtHelpFiltersDialog.__init__" ID="QtHelpFiltersDialog.__init__"></a>
-<h4>QtHelpFiltersDialog (Constructor)</h4>
-<b>QtHelpFiltersDialog</b>(<i>engine, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>engine</i></dt>
-<dd>
-reference to the help engine (QHelpEngine)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="QtHelpFiltersDialog.__removeAttributes" ID="QtHelpFiltersDialog.__removeAttributes"></a>
-<h4>QtHelpFiltersDialog.__removeAttributes</h4>
-<b>__removeAttributes</b>(<i></i>)
-<p>
-        Private method to remove attributes from the Qt Help database.
-</p><a NAME="QtHelpFiltersDialog.on_addButton_clicked" ID="QtHelpFiltersDialog.on_addButton_clicked"></a>
-<h4>QtHelpFiltersDialog.on_addButton_clicked</h4>
-<b>on_addButton_clicked</b>(<i></i>)
-<p>
-        Private slot to add a new filter.
-</p><a NAME="QtHelpFiltersDialog.on_attributesList_itemChanged" ID="QtHelpFiltersDialog.on_attributesList_itemChanged"></a>
-<h4>QtHelpFiltersDialog.on_attributesList_itemChanged</h4>
-<b>on_attributesList_itemChanged</b>(<i>item, column</i>)
-<p>
-        Private slot to handle a change of an attribute.
-</p><dl>
-<dt><i>item</i></dt>
-<dd>
-reference to the changed item (QTreeWidgetItem)
-</dd><dt><i>column</i></dt>
-<dd>
-column containing the change (integer)
-</dd>
-</dl><a NAME="QtHelpFiltersDialog.on_attributesList_itemSelectionChanged" ID="QtHelpFiltersDialog.on_attributesList_itemSelectionChanged"></a>
-<h4>QtHelpFiltersDialog.on_attributesList_itemSelectionChanged</h4>
-<b>on_attributesList_itemSelectionChanged</b>(<i></i>)
-<p>
-        Private slot handling the selection of attributes.
-</p><a NAME="QtHelpFiltersDialog.on_buttonBox_accepted" ID="QtHelpFiltersDialog.on_buttonBox_accepted"></a>
-<h4>QtHelpFiltersDialog.on_buttonBox_accepted</h4>
-<b>on_buttonBox_accepted</b>(<i></i>)
-<p>
-        Private slot to update the database, if the dialog is accepted.
-</p><a NAME="QtHelpFiltersDialog.on_filtersList_currentItemChanged" ID="QtHelpFiltersDialog.on_filtersList_currentItemChanged"></a>
-<h4>QtHelpFiltersDialog.on_filtersList_currentItemChanged</h4>
-<b>on_filtersList_currentItemChanged</b>(<i>current, previous</i>)
-<p>
-        Private slot to update the attributes depending on the current filter.
-</p><dl>
-<dt><i>current</i></dt>
-<dd>
-reference to the current item (QListWidgetitem)
-</dd><dt><i>previous</i></dt>
-<dd>
-reference to the previous current item
-            (QListWidgetItem)
-</dd>
-</dl><a NAME="QtHelpFiltersDialog.on_filtersList_itemSelectionChanged" ID="QtHelpFiltersDialog.on_filtersList_itemSelectionChanged"></a>
-<h4>QtHelpFiltersDialog.on_filtersList_itemSelectionChanged</h4>
-<b>on_filtersList_itemSelectionChanged</b>(<i></i>)
-<p>
-        Private slot handling a change of selected filters.
-</p><a NAME="QtHelpFiltersDialog.on_removeAttributeButton_clicked" ID="QtHelpFiltersDialog.on_removeAttributeButton_clicked"></a>
-<h4>QtHelpFiltersDialog.on_removeAttributeButton_clicked</h4>
-<b>on_removeAttributeButton_clicked</b>(<i></i>)
-<p>
-        Private slot to remove the selected filter attributes.
-</p><a NAME="QtHelpFiltersDialog.on_removeButton_clicked" ID="QtHelpFiltersDialog.on_removeButton_clicked"></a>
-<h4>QtHelpFiltersDialog.on_removeButton_clicked</h4>
-<b>on_removeButton_clicked</b>(<i></i>)
-<p>
-        Private slot to remove the selected filters.
-</p><a NAME="QtHelpFiltersDialog.on_unusedAttributesButton_clicked" ID="QtHelpFiltersDialog.on_unusedAttributesButton_clicked"></a>
-<h4>QtHelpFiltersDialog.on_unusedAttributesButton_clicked</h4>
-<b>on_unusedAttributesButton_clicked</b>(<i></i>)
-<p>
-        Private slot to select all unused attributes.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.SearchWidget.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.SearchWidget</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.SearchWidget</h1>
-<p>
-Module implementing the search bar for the web browser.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SearchWidget">SearchWidget</a></td>
-<td>Class implementing the search bar for the web browser.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SearchWidget" ID="SearchWidget"></a>
-<h2>SearchWidget</h2>
-<p>
-    Class implementing the search bar for the web browser.
-</p>
-<h3>Derived from</h3>
-QWidget, Ui_SearchWidget
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SearchWidget.__init__">SearchWidget</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SearchWidget.__findByReturnPressed">__findByReturnPressed</a></td>
-<td>Private slot to handle the returnPressed signal of the findtext combobox.</td>
-</tr><tr>
-<td><a href="#SearchWidget.__findNextPrev">__findNextPrev</a></td>
-<td>Private slot to find the next occurrence of text.</td>
-</tr><tr>
-<td><a href="#SearchWidget.__searchTextEdited">__searchTextEdited</a></td>
-<td>Private slot to perform an incremental search.</td>
-</tr><tr>
-<td><a href="#SearchWidget.__setFindtextComboBackground">__setFindtextComboBackground</a></td>
-<td>Private slot to change the findtext combo background to indicate errors.</td>
-</tr><tr>
-<td><a href="#SearchWidget.findNext">findNext</a></td>
-<td>Public slot to find the next occurrence.</td>
-</tr><tr>
-<td><a href="#SearchWidget.findPrevious">findPrevious</a></td>
-<td>Public slot to find the previous occurrence.</td>
-</tr><tr>
-<td><a href="#SearchWidget.keyPressEvent">keyPressEvent</a></td>
-<td>Protected slot to handle key press events.</td>
-</tr><tr>
-<td><a href="#SearchWidget.on_closeButton_clicked">on_closeButton_clicked</a></td>
-<td>Private slot to close the widget.</td>
-</tr><tr>
-<td><a href="#SearchWidget.on_findNextButton_clicked">on_findNextButton_clicked</a></td>
-<td>Private slot to find the next occurrence.</td>
-</tr><tr>
-<td><a href="#SearchWidget.on_findPrevButton_clicked">on_findPrevButton_clicked</a></td>
-<td>Private slot to find the previous occurrence.</td>
-</tr><tr>
-<td><a href="#SearchWidget.on_findtextCombo_editTextChanged">on_findtextCombo_editTextChanged</a></td>
-<td>Private slot to enable/disable the find buttons.</td>
-</tr><tr>
-<td><a href="#SearchWidget.on_highlightAllCheckBox_toggled">on_highlightAllCheckBox_toggled</a></td>
-<td>Private slot to toggle the highlight of all occurrences.</td>
-</tr><tr>
-<td><a href="#SearchWidget.showFind">showFind</a></td>
-<td>Public method to display this dialog.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SearchWidget.__init__" ID="SearchWidget.__init__"></a>
-<h4>SearchWidget (Constructor)</h4>
-<b>SearchWidget</b>(<i>mainWindow, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>mainWindow</i></dt>
-<dd>
-reference to the main window (QMainWindow)
-</dd><dt><i>parent</i></dt>
-<dd>
-parent widget of this dialog (QWidget)
-</dd>
-</dl><a NAME="SearchWidget.__findByReturnPressed" ID="SearchWidget.__findByReturnPressed"></a>
-<h4>SearchWidget.__findByReturnPressed</h4>
-<b>__findByReturnPressed</b>(<i></i>)
-<p>
-        Private slot to handle the returnPressed signal of the findtext
-        combobox.
-</p><a NAME="SearchWidget.__findNextPrev" ID="SearchWidget.__findNextPrev"></a>
-<h4>SearchWidget.__findNextPrev</h4>
-<b>__findNextPrev</b>(<i></i>)
-<p>
-        Private slot to find the next occurrence of text.
-</p><a NAME="SearchWidget.__searchTextEdited" ID="SearchWidget.__searchTextEdited"></a>
-<h4>SearchWidget.__searchTextEdited</h4>
-<b>__searchTextEdited</b>(<i>txt</i>)
-<p>
-        Private slot to perform an incremental search.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-current text of the search combos line edit (string)
-            (unused)
-</dd>
-</dl><a NAME="SearchWidget.__setFindtextComboBackground" ID="SearchWidget.__setFindtextComboBackground"></a>
-<h4>SearchWidget.__setFindtextComboBackground</h4>
-<b>__setFindtextComboBackground</b>(<i>error</i>)
-<p>
-        Private slot to change the findtext combo background to indicate
-        errors.
-</p><dl>
-<dt><i>error</i></dt>
-<dd>
-flag indicating an error condition (boolean)
-</dd>
-</dl><a NAME="SearchWidget.findNext" ID="SearchWidget.findNext"></a>
-<h4>SearchWidget.findNext</h4>
-<b>findNext</b>(<i></i>)
-<p>
-        Public slot to find the next occurrence.
-</p><a NAME="SearchWidget.findPrevious" ID="SearchWidget.findPrevious"></a>
-<h4>SearchWidget.findPrevious</h4>
-<b>findPrevious</b>(<i></i>)
-<p>
-        Public slot to find the previous occurrence.
-</p><a NAME="SearchWidget.keyPressEvent" ID="SearchWidget.keyPressEvent"></a>
-<h4>SearchWidget.keyPressEvent</h4>
-<b>keyPressEvent</b>(<i>event</i>)
-<p>
-        Protected slot to handle key press events.
-</p><dl>
-<dt><i>event</i></dt>
-<dd>
-reference to the key press event (QKeyEvent)
-</dd>
-</dl><a NAME="SearchWidget.on_closeButton_clicked" ID="SearchWidget.on_closeButton_clicked"></a>
-<h4>SearchWidget.on_closeButton_clicked</h4>
-<b>on_closeButton_clicked</b>(<i></i>)
-<p>
-        Private slot to close the widget.
-</p><a NAME="SearchWidget.on_findNextButton_clicked" ID="SearchWidget.on_findNextButton_clicked"></a>
-<h4>SearchWidget.on_findNextButton_clicked</h4>
-<b>on_findNextButton_clicked</b>(<i></i>)
-<p>
-        Private slot to find the next occurrence.
-</p><a NAME="SearchWidget.on_findPrevButton_clicked" ID="SearchWidget.on_findPrevButton_clicked"></a>
-<h4>SearchWidget.on_findPrevButton_clicked</h4>
-<b>on_findPrevButton_clicked</b>(<i></i>)
-<p>
-        Private slot to find the previous occurrence.
-</p><a NAME="SearchWidget.on_findtextCombo_editTextChanged" ID="SearchWidget.on_findtextCombo_editTextChanged"></a>
-<h4>SearchWidget.on_findtextCombo_editTextChanged</h4>
-<b>on_findtextCombo_editTextChanged</b>(<i>txt</i>)
-<p>
-        Private slot to enable/disable the find buttons.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-text of the combobox (string)
-</dd>
-</dl><a NAME="SearchWidget.on_highlightAllCheckBox_toggled" ID="SearchWidget.on_highlightAllCheckBox_toggled"></a>
-<h4>SearchWidget.on_highlightAllCheckBox_toggled</h4>
-<b>on_highlightAllCheckBox_toggled</b>(<i>checked</i>)
-<p>
-        Private slot to toggle the highlight of all occurrences.
-</p><dl>
-<dt><i>checked</i></dt>
-<dd>
-flag indicating the check box toggle state (boolean)
-</dd>
-</dl><a NAME="SearchWidget.showFind" ID="SearchWidget.showFind"></a>
-<h4>SearchWidget.showFind</h4>
-<b>showFind</b>(<i></i>)
-<p>
-        Public method to display this dialog.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.SiteInfo.SiteInfoDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,163 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.SiteInfo.SiteInfoDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.SiteInfo.SiteInfoDialog</h1>
-<p>
-Module implementing a dialog to show some information about a site.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SiteInfoDialog">SiteInfoDialog</a></td>
-<td>Class implementing a dialog to show some information about a site.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SiteInfoDialog" ID="SiteInfoDialog"></a>
-<h2>SiteInfoDialog</h2>
-<p>
-    Class implementing a dialog to show some information about a site.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_SiteInfoDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>nokStyle</td></tr><tr><td>okStyle</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SiteInfoDialog.__init__">SiteInfoDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SiteInfoDialog.__copyAction">__copyAction</a></td>
-<td>Private slot to copy the image URL or the image name to the clipboard.</td>
-</tr><tr>
-<td><a href="#SiteInfoDialog.__imagesTreeContextMenuRequested">__imagesTreeContextMenuRequested</a></td>
-<td>Private slot to show a context menu for the images list.</td>
-</tr><tr>
-<td><a href="#SiteInfoDialog.__saveImage">__saveImage</a></td>
-<td>Private slot to save the selected image to disk.</td>
-</tr><tr>
-<td><a href="#SiteInfoDialog.on_databasesList_currentItemChanged">on_databasesList_currentItemChanged</a></td>
-<td>Private slot to show data about the selected database.</td>
-</tr><tr>
-<td><a href="#SiteInfoDialog.on_imagesTree_currentItemChanged">on_imagesTree_currentItemChanged</a></td>
-<td>Private slot to show a preview of the selected image.</td>
-</tr><tr>
-<td><a href="#SiteInfoDialog.on_securityDetailsButton_clicked">on_securityDetailsButton_clicked</a></td>
-<td>Private slot to show security details.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SiteInfoDialog.__init__" ID="SiteInfoDialog.__init__"></a>
-<h4>SiteInfoDialog (Constructor)</h4>
-<b>SiteInfoDialog</b>(<i>browser, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>browser</i></dt>
-<dd>
-reference to the browser window (HelpBrowser)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="SiteInfoDialog.__copyAction" ID="SiteInfoDialog.__copyAction"></a>
-<h4>SiteInfoDialog.__copyAction</h4>
-<b>__copyAction</b>(<i>act</i>)
-<p>
-        Private slot to copy the image URL or the image name to the clipboard.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action that triggered
-</dd>
-</dl><a NAME="SiteInfoDialog.__imagesTreeContextMenuRequested" ID="SiteInfoDialog.__imagesTreeContextMenuRequested"></a>
-<h4>SiteInfoDialog.__imagesTreeContextMenuRequested</h4>
-<b>__imagesTreeContextMenuRequested</b>(<i>pos</i>)
-<p>
-        Private slot to show a context menu for the images list.
-</p><dl>
-<dt><i>pos</i></dt>
-<dd>
-position for the menu (QPoint)
-</dd>
-</dl><a NAME="SiteInfoDialog.__saveImage" ID="SiteInfoDialog.__saveImage"></a>
-<h4>SiteInfoDialog.__saveImage</h4>
-<b>__saveImage</b>(<i>act</i>)
-<p>
-        Private slot to save the selected image to disk.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action that triggered
-</dd>
-</dl><a NAME="SiteInfoDialog.on_databasesList_currentItemChanged" ID="SiteInfoDialog.on_databasesList_currentItemChanged"></a>
-<h4>SiteInfoDialog.on_databasesList_currentItemChanged</h4>
-<b>on_databasesList_currentItemChanged</b>(<i>current, previous</i>)
-<p>
-        Private slot to show data about the selected database.
-</p><dl>
-<dt><i>current</i></dt>
-<dd>
-current database entry (QTreeWidgetItem)
-</dd><dt><i>previous</i></dt>
-<dd>
-old current entry (QTreeWidgetItem)
-</dd>
-</dl><a NAME="SiteInfoDialog.on_imagesTree_currentItemChanged" ID="SiteInfoDialog.on_imagesTree_currentItemChanged"></a>
-<h4>SiteInfoDialog.on_imagesTree_currentItemChanged</h4>
-<b>on_imagesTree_currentItemChanged</b>(<i>current, previous</i>)
-<p>
-        Private slot to show a preview of the selected image.
-</p><dl>
-<dt><i>current</i></dt>
-<dd>
-current image entry (QTreeWidgetItem)
-</dd><dt><i>previous</i></dt>
-<dd>
-old current entry (QTreeWidgetItem)
-</dd>
-</dl><a NAME="SiteInfoDialog.on_securityDetailsButton_clicked" ID="SiteInfoDialog.on_securityDetailsButton_clicked"></a>
-<h4>SiteInfoDialog.on_securityDetailsButton_clicked</h4>
-<b>on_securityDetailsButton_clicked</b>(<i></i>)
-<p>
-        Private slot to show security details.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.SpeedDial.Page.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.SpeedDial.Page</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.SpeedDial.Page</h1>
-<p>
-Module implementing a structure to hold the data for a speed dial page.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#Page">Page</a></td>
-<td>Class to hold the data for a speed dial page.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="Page" ID="Page"></a>
-<h2>Page</h2>
-<p>
-    Class to hold the data for a speed dial page.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#Page.__init__">Page</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#Page.__eq__">__eq__</a></td>
-<td>Special method implementing the equality operator.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="Page.__init__" ID="Page.__init__"></a>
-<h4>Page (Constructor)</h4>
-<b>Page</b>(<i>url="", title="", broken=False</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the page (string)
-</dd><dt><i>title</i></dt>
-<dd>
-title of the page (string)
-</dd><dt><i>broken</i></dt>
-<dd>
-flag indicating a broken connection (boolean)
-</dd>
-</dl><a NAME="Page.__eq__" ID="Page.__eq__"></a>
-<h4>Page.__eq__</h4>
-<b>__eq__</b>(<i>other</i>)
-<p>
-        Special method implementing the equality operator.
-</p><dl>
-<dt><i>other</i></dt>
-<dd>
-reference to the other page object (Page)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating equality (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.SpeedDial.PageThumbnailer.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.SpeedDial.PageThumbnailer</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.SpeedDial.PageThumbnailer</h1>
-<p>
-Module implementing an object to create a thumbnail image of a web site.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#PageThumbnailer">PageThumbnailer</a></td>
-<td>Class implementing a thumbnail creator for web sites.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="PageThumbnailer" ID="PageThumbnailer"></a>
-<h2>PageThumbnailer</h2>
-<p>
-    Class implementing a thumbnail creator for web sites.
-</p><h3>Signals</h3>
-<dl>
-<dt>thumbnailCreated(QPixmap)</dt>
-<dd>
-emitted after the thumbnail has been
-        created
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#PageThumbnailer.__init__">PageThumbnailer</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#PageThumbnailer.__createThumbnail">__createThumbnail</a></td>
-<td>Private slot creating the thumbnail of the web site.</td>
-</tr><tr>
-<td><a href="#PageThumbnailer.loadTitle">loadTitle</a></td>
-<td>Public method to check, if the title is loaded from the web site.</td>
-</tr><tr>
-<td><a href="#PageThumbnailer.setLoadTitle">setLoadTitle</a></td>
-<td>Public method to set a flag indicating to load the title from the web site.</td>
-</tr><tr>
-<td><a href="#PageThumbnailer.setSize">setSize</a></td>
-<td>Public method to set the size of the image.</td>
-</tr><tr>
-<td><a href="#PageThumbnailer.setUrl">setUrl</a></td>
-<td>Public method to set the URL of the site to be thumbnailed.</td>
-</tr><tr>
-<td><a href="#PageThumbnailer.start">start</a></td>
-<td>Public method to start the thumbnailing action.</td>
-</tr><tr>
-<td><a href="#PageThumbnailer.title">title</a></td>
-<td>Public method to get the title of the thumbnail.</td>
-</tr><tr>
-<td><a href="#PageThumbnailer.url">url</a></td>
-<td>Public method to get the URL of the thumbnail.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="PageThumbnailer.__init__" ID="PageThumbnailer.__init__"></a>
-<h4>PageThumbnailer (Constructor)</h4>
-<b>PageThumbnailer</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="PageThumbnailer.__createThumbnail" ID="PageThumbnailer.__createThumbnail"></a>
-<h4>PageThumbnailer.__createThumbnail</h4>
-<b>__createThumbnail</b>(<i>status</i>)
-<p>
-        Private slot creating the thumbnail of the web site.
-</p><dl>
-<dt><i>status</i></dt>
-<dd>
-flag indicating a successful load of the web site
-            (boolean)
-</dd>
-</dl><a NAME="PageThumbnailer.loadTitle" ID="PageThumbnailer.loadTitle"></a>
-<h4>PageThumbnailer.loadTitle</h4>
-<b>loadTitle</b>(<i></i>)
-<p>
-        Public method to check, if the title is loaded from the web site.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating, that the title is loaded (boolean)
-</dd>
-</dl><a NAME="PageThumbnailer.setLoadTitle" ID="PageThumbnailer.setLoadTitle"></a>
-<h4>PageThumbnailer.setLoadTitle</h4>
-<b>setLoadTitle</b>(<i>load</i>)
-<p>
-        Public method to set a flag indicating to load the title from
-        the web site.
-</p><dl>
-<dt><i>load</i></dt>
-<dd>
-flag indicating to load the title (boolean)
-</dd>
-</dl><a NAME="PageThumbnailer.setSize" ID="PageThumbnailer.setSize"></a>
-<h4>PageThumbnailer.setSize</h4>
-<b>setSize</b>(<i>size</i>)
-<p>
-        Public method to set the size of the image.
-</p><dl>
-<dt><i>size</i></dt>
-<dd>
-size of the image (QSize)
-</dd>
-</dl><a NAME="PageThumbnailer.setUrl" ID="PageThumbnailer.setUrl"></a>
-<h4>PageThumbnailer.setUrl</h4>
-<b>setUrl</b>(<i>url</i>)
-<p>
-        Public method to set the URL of the site to be thumbnailed.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the web site (QUrl)
-</dd>
-</dl><a NAME="PageThumbnailer.start" ID="PageThumbnailer.start"></a>
-<h4>PageThumbnailer.start</h4>
-<b>start</b>(<i></i>)
-<p>
-        Public method to start the thumbnailing action.
-</p><a NAME="PageThumbnailer.title" ID="PageThumbnailer.title"></a>
-<h4>PageThumbnailer.title</h4>
-<b>title</b>(<i></i>)
-<p>
-        Public method to get the title of the thumbnail.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-title of the thumbnail (string)
-</dd>
-</dl><a NAME="PageThumbnailer.url" ID="PageThumbnailer.url"></a>
-<h4>PageThumbnailer.url</h4>
-<b>url</b>(<i></i>)
-<p>
-        Public method to get the URL of the thumbnail.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-URL of the thumbnail (QUrl)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.SpeedDial.SpeedDial.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,428 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.SpeedDial.SpeedDial</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.SpeedDial.SpeedDial</h1>
-<p>
-Module implementing the speed dial.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SpeedDial">SpeedDial</a></td>
-<td>Class implementing the speed dial.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SpeedDial" ID="SpeedDial"></a>
-<h2>SpeedDial</h2>
-<p>
-    Class implementing the speed dial.
-</p><h3>Signals</h3>
-<dl>
-<dt>pagesChanged()</dt>
-<dd>
-emitted after the list of pages changed
-</dd><dt>speedDialSaved()</dt>
-<dd>
-emitted after the speed dial data was saved
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SpeedDial.__init__">SpeedDial</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SpeedDial.__cleanFrames">__cleanFrames</a></td>
-<td>Private method to clean all frames.</td>
-</tr><tr>
-<td><a href="#SpeedDial.__imageFileName">__imageFileName</a></td>
-<td>Private method to generate the image file name for a URL.</td>
-</tr><tr>
-<td><a href="#SpeedDial.__initialize">__initialize</a></td>
-<td>Private method to initialize the speed dial.</td>
-</tr><tr>
-<td><a href="#SpeedDial.__load">__load</a></td>
-<td>Private method to load the speed dial configuration.</td>
-</tr><tr>
-<td><a href="#SpeedDial.__pagesChanged">__pagesChanged</a></td>
-<td>Private slot to react on a change of the pages configuration.</td>
-</tr><tr>
-<td><a href="#SpeedDial.__thumbnailCreated">__thumbnailCreated</a></td>
-<td>Private slot to handle the creation of a thumbnail image.</td>
-</tr><tr>
-<td><a href="#SpeedDial.addPage">addPage</a></td>
-<td>Public method to add a page for the given data.</td>
-</tr><tr>
-<td><a href="#SpeedDial.addWebFrame">addWebFrame</a></td>
-<td>Public method to add a web frame.</td>
-</tr><tr>
-<td><a href="#SpeedDial.changed">changed</a></td>
-<td>Public slot to react on changed pages.</td>
-</tr><tr>
-<td><a href="#SpeedDial.close">close</a></td>
-<td>Public method to close the user agents manager.</td>
-</tr><tr>
-<td><a href="#SpeedDial.getFileName">getFileName</a></td>
-<td>Public method to get the file name of the user agents file.</td>
-</tr><tr>
-<td><a href="#SpeedDial.initialScript">initialScript</a></td>
-<td>Public method to get the 'initial' JavaScript script.</td>
-</tr><tr>
-<td><a href="#SpeedDial.loadThumbnail">loadThumbnail</a></td>
-<td>Public slot to load a thumbnail of the given URL.</td>
-</tr><tr>
-<td><a href="#SpeedDial.pageForUrl">pageForUrl</a></td>
-<td>Public method to get the page for the given URL.</td>
-</tr><tr>
-<td><a href="#SpeedDial.pagesInRow">pagesInRow</a></td>
-<td>Public method to get the number of dials per row.</td>
-</tr><tr>
-<td><a href="#SpeedDial.reload">reload</a></td>
-<td>Public method to reload the speed dial data.</td>
-</tr><tr>
-<td><a href="#SpeedDial.removeImageForUrl">removeImageForUrl</a></td>
-<td>Public slot to remove the image for a URL.</td>
-</tr><tr>
-<td><a href="#SpeedDial.removePage">removePage</a></td>
-<td>Public method to remove a page.</td>
-</tr><tr>
-<td><a href="#SpeedDial.resetDials">resetDials</a></td>
-<td>Public method to reset the speed dials to the default values.</td>
-</tr><tr>
-<td><a href="#SpeedDial.save">save</a></td>
-<td>Public method to save the speed dial configuration.</td>
-</tr><tr>
-<td><a href="#SpeedDial.sdSize">sdSize</a></td>
-<td>Public method to get the speed dial size.</td>
-</tr><tr>
-<td><a href="#SpeedDial.setPagesInRow">setPagesInRow</a></td>
-<td>Public slot to set the number of pages per row.</td>
-</tr><tr>
-<td><a href="#SpeedDial.setSdSize">setSdSize</a></td>
-<td>Public slot to set the size of the speed dial.</td>
-</tr><tr>
-<td><a href="#SpeedDial.unescapeTitle">unescapeTitle</a></td>
-<td>Public slot to unescape the titel string.</td>
-</tr><tr>
-<td><a href="#SpeedDial.urlForShortcut">urlForShortcut</a></td>
-<td>Public method to get the URL for the given shortcut key.</td>
-</tr><tr>
-<td><a href="#SpeedDial.urlFromUserInput">urlFromUserInput</a></td>
-<td>Public slot to get the URL from user input.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SpeedDial.__init__" ID="SpeedDial.__init__"></a>
-<h4>SpeedDial (Constructor)</h4>
-<b>SpeedDial</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="SpeedDial.__cleanFrames" ID="SpeedDial.__cleanFrames"></a>
-<h4>SpeedDial.__cleanFrames</h4>
-<b>__cleanFrames</b>(<i></i>)
-<p>
-        Private method to clean all frames.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of speed dial frames (list of QWebFrame)
-</dd>
-</dl><a NAME="SpeedDial.__imageFileName" ID="SpeedDial.__imageFileName"></a>
-<h4>SpeedDial.__imageFileName</h4>
-<b>__imageFileName</b>(<i>url</i>)
-<p>
-        Private method to generate the image file name for a URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to generate the file name from (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-name of the image file (string)
-</dd>
-</dl><a NAME="SpeedDial.__initialize" ID="SpeedDial.__initialize"></a>
-<h4>SpeedDial.__initialize</h4>
-<b>__initialize</b>(<i></i>)
-<p>
-        Private method to initialize the speed dial.
-</p><a NAME="SpeedDial.__load" ID="SpeedDial.__load"></a>
-<h4>SpeedDial.__load</h4>
-<b>__load</b>(<i></i>)
-<p>
-        Private method to load the speed dial configuration.
-</p><a NAME="SpeedDial.__pagesChanged" ID="SpeedDial.__pagesChanged"></a>
-<h4>SpeedDial.__pagesChanged</h4>
-<b>__pagesChanged</b>(<i></i>)
-<p>
-        Private slot to react on a change of the pages configuration.
-</p><a NAME="SpeedDial.__thumbnailCreated" ID="SpeedDial.__thumbnailCreated"></a>
-<h4>SpeedDial.__thumbnailCreated</h4>
-<b>__thumbnailCreated</b>(<i>image, thumbnailer</i>)
-<p>
-        Private slot to handle the creation of a thumbnail image.
-</p><dl>
-<dt><i>image</i> (QPixmap)</dt>
-<dd>
-thumbnail image
-</dd><dt><i>thumbnailer</i> (PageThumbnailer)</dt>
-<dd>
-reference to the page thumbnailer
-</dd>
-</dl><a NAME="SpeedDial.addPage" ID="SpeedDial.addPage"></a>
-<h4>SpeedDial.addPage</h4>
-<b>addPage</b>(<i>url, title</i>)
-<p>
-        Public method to add a page for the given data.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the page (QUrl)
-</dd><dt><i>title</i></dt>
-<dd>
-title of the page (string)
-</dd>
-</dl><a NAME="SpeedDial.addWebFrame" ID="SpeedDial.addWebFrame"></a>
-<h4>SpeedDial.addWebFrame</h4>
-<b>addWebFrame</b>(<i>frame</i>)
-<p>
-        Public method to add a web frame.
-</p><dl>
-<dt><i>frame</i></dt>
-<dd>
-reference to the frame to be added (QWebFrame)
-</dd>
-</dl><a NAME="SpeedDial.changed" ID="SpeedDial.changed"></a>
-<h4>SpeedDial.changed</h4>
-<b>changed</b>(<i>allPages</i>)
-<p>
-        Public slot to react on changed pages.
-</p><dl>
-<dt><i>allPages</i></dt>
-<dd>
-string giving all pages (string)
-</dd>
-</dl><a NAME="SpeedDial.close" ID="SpeedDial.close"></a>
-<h4>SpeedDial.close</h4>
-<b>close</b>(<i></i>)
-<p>
-        Public method to close the user agents manager.
-</p><a NAME="SpeedDial.getFileName" ID="SpeedDial.getFileName"></a>
-<h4>SpeedDial.getFileName</h4>
-<b>getFileName</b>(<i></i>)
-<p>
-        Public method to get the file name of the user agents file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-name of the user agents file (string)
-</dd>
-</dl><a NAME="SpeedDial.initialScript" ID="SpeedDial.initialScript"></a>
-<h4>SpeedDial.initialScript</h4>
-<b>initialScript</b>(<i></i>)
-<p>
-        Public method to get the 'initial' JavaScript script.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-initial JavaScript script (string)
-</dd>
-</dl><a NAME="SpeedDial.loadThumbnail" ID="SpeedDial.loadThumbnail"></a>
-<h4>SpeedDial.loadThumbnail</h4>
-<b>loadThumbnail</b>(<i>url, loadTitle=False</i>)
-<p>
-        Public slot to load a thumbnail of the given URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the thumbnail (string)
-</dd><dt><i>loadTitle</i></dt>
-<dd>
-flag indicating to get the title for the thumbnail
-            from the site (boolean)
-</dd>
-</dl><a NAME="SpeedDial.pageForUrl" ID="SpeedDial.pageForUrl"></a>
-<h4>SpeedDial.pageForUrl</h4>
-<b>pageForUrl</b>(<i>url</i>)
-<p>
-        Public method to get the page for the given URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to be searched for (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-page for the URL (Page)
-</dd>
-</dl><a NAME="SpeedDial.pagesInRow" ID="SpeedDial.pagesInRow"></a>
-<h4>SpeedDial.pagesInRow</h4>
-<b>pagesInRow</b>(<i></i>)
-<p>
-        Public method to get the number of dials per row.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-number of dials per row (integer)
-</dd>
-</dl><a NAME="SpeedDial.reload" ID="SpeedDial.reload"></a>
-<h4>SpeedDial.reload</h4>
-<b>reload</b>(<i></i>)
-<p>
-        Public method to reload the speed dial data.
-</p><a NAME="SpeedDial.removeImageForUrl" ID="SpeedDial.removeImageForUrl"></a>
-<h4>SpeedDial.removeImageForUrl</h4>
-<b>removeImageForUrl</b>(<i>url</i>)
-<p>
-        Public slot to remove the image for a URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to remove the image for (string)
-</dd>
-</dl><a NAME="SpeedDial.removePage" ID="SpeedDial.removePage"></a>
-<h4>SpeedDial.removePage</h4>
-<b>removePage</b>(<i>url</i>)
-<p>
-        Public method to remove a page.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL of the page (QUrl)
-</dd>
-</dl><a NAME="SpeedDial.resetDials" ID="SpeedDial.resetDials"></a>
-<h4>SpeedDial.resetDials</h4>
-<b>resetDials</b>(<i></i>)
-<p>
-        Public method to reset the speed dials to the default values.
-</p><a NAME="SpeedDial.save" ID="SpeedDial.save"></a>
-<h4>SpeedDial.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public method to save the speed dial configuration.
-</p><a NAME="SpeedDial.sdSize" ID="SpeedDial.sdSize"></a>
-<h4>SpeedDial.sdSize</h4>
-<b>sdSize</b>(<i></i>)
-<p>
-        Public method to get the speed dial size.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-speed dial size (integer)
-</dd>
-</dl><a NAME="SpeedDial.setPagesInRow" ID="SpeedDial.setPagesInRow"></a>
-<h4>SpeedDial.setPagesInRow</h4>
-<b>setPagesInRow</b>(<i>count</i>)
-<p>
-        Public slot to set the number of pages per row.
-</p><dl>
-<dt><i>count</i></dt>
-<dd>
-number of pages per row (integer)
-</dd>
-</dl><a NAME="SpeedDial.setSdSize" ID="SpeedDial.setSdSize"></a>
-<h4>SpeedDial.setSdSize</h4>
-<b>setSdSize</b>(<i>size</i>)
-<p>
-        Public slot to set the size of the speed dial.
-</p><dl>
-<dt><i>size</i></dt>
-<dd>
-size of the speed dial (integer)
-</dd>
-</dl><a NAME="SpeedDial.unescapeTitle" ID="SpeedDial.unescapeTitle"></a>
-<h4>SpeedDial.unescapeTitle</h4>
-<b>unescapeTitle</b>(<i>title</i>)
-<p>
-        Public slot to unescape the titel string.
-</p><dl>
-<dt><i>title</i></dt>
-<dd>
-escaped title (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-un-escaped title (string)
-</dd>
-</dl><a NAME="SpeedDial.urlForShortcut" ID="SpeedDial.urlForShortcut"></a>
-<h4>SpeedDial.urlForShortcut</h4>
-<b>urlForShortcut</b>(<i>key</i>)
-<p>
-        Public method to get the URL for the given shortcut key.
-</p><dl>
-<dt><i>key</i></dt>
-<dd>
-shortcut key (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-URL for the key (QUrl)
-</dd>
-</dl><a NAME="SpeedDial.urlFromUserInput" ID="SpeedDial.urlFromUserInput"></a>
-<h4>SpeedDial.urlFromUserInput</h4>
-<b>urlFromUserInput</b>(<i>url</i>)
-<p>
-        Public slot to get the URL from user input.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL entered by the user (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-sanitized URL (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.SpeedDial.SpeedDialReader.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.SpeedDial.SpeedDialReader</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.SpeedDial.SpeedDialReader</h1>
-<p>
-Module implementing a class to read speed dial data files.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SpeedDialReader">SpeedDialReader</a></td>
-<td>Class implementing a reader object for speed dial data files.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SpeedDialReader" ID="SpeedDialReader"></a>
-<h2>SpeedDialReader</h2>
-<p>
-    Class implementing a reader object for speed dial data files.
-</p>
-<h3>Derived from</h3>
-QXmlStreamReader
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SpeedDialReader.__init__">SpeedDialReader</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SpeedDialReader.__readSpeedDial">__readSpeedDial</a></td>
-<td>Private method to read the speed dial data.</td>
-</tr><tr>
-<td><a href="#SpeedDialReader.__skipUnknownElement">__skipUnknownElement</a></td>
-<td>Private method to skip over all unknown elements.</td>
-</tr><tr>
-<td><a href="#SpeedDialReader.read">read</a></td>
-<td>Public method to read a user agent file.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SpeedDialReader.__init__" ID="SpeedDialReader.__init__"></a>
-<h4>SpeedDialReader (Constructor)</h4>
-<b>SpeedDialReader</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="SpeedDialReader.__readSpeedDial" ID="SpeedDialReader.__readSpeedDial"></a>
-<h4>SpeedDialReader.__readSpeedDial</h4>
-<b>__readSpeedDial</b>(<i></i>)
-<p>
-        Private method to read the speed dial data.
-</p><a NAME="SpeedDialReader.__skipUnknownElement" ID="SpeedDialReader.__skipUnknownElement"></a>
-<h4>SpeedDialReader.__skipUnknownElement</h4>
-<b>__skipUnknownElement</b>(<i></i>)
-<p>
-        Private method to skip over all unknown elements.
-</p><a NAME="SpeedDialReader.read" ID="SpeedDialReader.read"></a>
-<h4>SpeedDialReader.read</h4>
-<b>read</b>(<i>fileNameOrDevice</i>)
-<p>
-        Public method to read a user agent file.
-</p><dl>
-<dt><i>fileNameOrDevice</i></dt>
-<dd>
-name of the file to read (string)
-            or reference to the device to read (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-list of speed dial pages (list of Page), number of pages per
-            row (integer) and size of the speed dial pages (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.SpeedDial.SpeedDialWriter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.SpeedDial.SpeedDialWriter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.SpeedDial.SpeedDialWriter</h1>
-<p>
-Module implementing a class to write speed dial data files.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SpeedDialWriter">SpeedDialWriter</a></td>
-<td>Class implementing a writer object to generate speed dial data files.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SpeedDialWriter" ID="SpeedDialWriter"></a>
-<h2>SpeedDialWriter</h2>
-<p>
-    Class implementing a writer object to generate speed dial data files.
-</p>
-<h3>Derived from</h3>
-QXmlStreamWriter
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SpeedDialWriter.__init__">SpeedDialWriter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SpeedDialWriter.__write">__write</a></td>
-<td>Private method to write a speed dial file.</td>
-</tr><tr>
-<td><a href="#SpeedDialWriter.write">write</a></td>
-<td>Public method to write a speed dial data file.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SpeedDialWriter.__init__" ID="SpeedDialWriter.__init__"></a>
-<h4>SpeedDialWriter (Constructor)</h4>
-<b>SpeedDialWriter</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="SpeedDialWriter.__write" ID="SpeedDialWriter.__write"></a>
-<h4>SpeedDialWriter.__write</h4>
-<b>__write</b>(<i>pages, pagesPerRow, speedDialSize</i>)
-<p>
-        Private method to write a speed dial file.
-</p><dl>
-<dt><i>pages</i></dt>
-<dd>
-list of speed dial pages (list of Page)
-</dd><dt><i>pagesPerRow</i></dt>
-<dd>
-number of pages per row (integer)
-</dd><dt><i>speedDialSize</i></dt>
-<dd>
-size of the speed dial pages (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="SpeedDialWriter.write" ID="SpeedDialWriter.write"></a>
-<h4>SpeedDialWriter.write</h4>
-<b>write</b>(<i>fileNameOrDevice, pages, pagesPerRow, speedDialSize</i>)
-<p>
-        Public method to write a speed dial data file.
-</p><dl>
-<dt><i>fileNameOrDevice</i></dt>
-<dd>
-name of the file to write (string)
-            or device to write to (QIODevice)
-</dd><dt><i>pages</i></dt>
-<dd>
-list of speed dial pages (list of Page)
-</dd><dt><i>pagesPerRow</i></dt>
-<dd>
-number of pages per row (integer)
-</dd><dt><i>speedDialSize</i></dt>
-<dd>
-size of the speed dial pages (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Sync.DirectorySyncHandler.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,248 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Sync.DirectorySyncHandler</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Sync.DirectorySyncHandler</h1>
-<p>
-Module implementing a synchronization handler using a shared directory.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#DirectorySyncHandler">DirectorySyncHandler</a></td>
-<td>Class implementing a synchronization handler using a shared directory.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="DirectorySyncHandler" ID="DirectorySyncHandler"></a>
-<h2>DirectorySyncHandler</h2>
-<p>
-    Class implementing a synchronization handler using a shared directory.
-</p><h3>Signals</h3>
-<dl>
-<dt>syncError(message)</dt>
-<dd>
-emitted for a general error with the error
-        message (string)
-</dd><dt>syncFinished(type_, done, download)</dt>
-<dd>
-emitted after a
-        synchronization has finished (string one of "bookmarks", "history",
-        "passwords", "useragents" or "speeddial", boolean, boolean)
-</dd><dt>syncMessage(message)</dt>
-<dd>
-emitted to send a message about
-        synchronization (string)
-</dd><dt>syncStatus(type_, message)</dt>
-<dd>
-emitted to indicate the synchronization
-        status (string one of "bookmarks", "history", "passwords",
-        "useragents" or "speeddial", string)
-</dd>
-</dl>
-<h3>Derived from</h3>
-SyncHandler
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#DirectorySyncHandler.__init__">DirectorySyncHandler</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#DirectorySyncHandler.__downloadFile">__downloadFile</a></td>
-<td>Private method to downlaod the given file.</td>
-</tr><tr>
-<td><a href="#DirectorySyncHandler.__initialSync">__initialSync</a></td>
-<td>Private slot to do the initial synchronization.</td>
-</tr><tr>
-<td><a href="#DirectorySyncHandler.__initialSyncFile">__initialSyncFile</a></td>
-<td>Private method to do the initial synchronization of the given file.</td>
-</tr><tr>
-<td><a href="#DirectorySyncHandler.__syncFile">__syncFile</a></td>
-<td>Private method to synchronize the given file.</td>
-</tr><tr>
-<td><a href="#DirectorySyncHandler.__uploadFile">__uploadFile</a></td>
-<td>Private method to upload the given file.</td>
-</tr><tr>
-<td><a href="#DirectorySyncHandler.initialLoadAndCheck">initialLoadAndCheck</a></td>
-<td>Public method to do the initial check.</td>
-</tr><tr>
-<td><a href="#DirectorySyncHandler.shutdown">shutdown</a></td>
-<td>Public method to shut down the handler.</td>
-</tr><tr>
-<td><a href="#DirectorySyncHandler.syncBookmarks">syncBookmarks</a></td>
-<td>Public method to synchronize the bookmarks.</td>
-</tr><tr>
-<td><a href="#DirectorySyncHandler.syncHistory">syncHistory</a></td>
-<td>Public method to synchronize the history.</td>
-</tr><tr>
-<td><a href="#DirectorySyncHandler.syncPasswords">syncPasswords</a></td>
-<td>Public method to synchronize the passwords.</td>
-</tr><tr>
-<td><a href="#DirectorySyncHandler.syncSpeedDial">syncSpeedDial</a></td>
-<td>Public method to synchronize the speed dial data.</td>
-</tr><tr>
-<td><a href="#DirectorySyncHandler.syncUserAgents">syncUserAgents</a></td>
-<td>Public method to synchronize the user agents.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="DirectorySyncHandler.__init__" ID="DirectorySyncHandler.__init__"></a>
-<h4>DirectorySyncHandler (Constructor)</h4>
-<b>DirectorySyncHandler</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="DirectorySyncHandler.__downloadFile" ID="DirectorySyncHandler.__downloadFile"></a>
-<h4>DirectorySyncHandler.__downloadFile</h4>
-<b>__downloadFile</b>(<i>type_, fileName, timestamp</i>)
-<p>
-        Private method to downlaod the given file.
-</p><dl>
-<dt><i>type_</i></dt>
-<dd>
-type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-</dd><dt><i>fileName</i></dt>
-<dd>
-name of the file to be downloaded (string)
-</dd><dt><i>timestamp</i></dt>
-<dd>
-time stamp in seconds of the file to be downloaded
-            (integer)
-</dd>
-</dl><a NAME="DirectorySyncHandler.__initialSync" ID="DirectorySyncHandler.__initialSync"></a>
-<h4>DirectorySyncHandler.__initialSync</h4>
-<b>__initialSync</b>(<i></i>)
-<p>
-        Private slot to do the initial synchronization.
-</p><a NAME="DirectorySyncHandler.__initialSyncFile" ID="DirectorySyncHandler.__initialSyncFile"></a>
-<h4>DirectorySyncHandler.__initialSyncFile</h4>
-<b>__initialSyncFile</b>(<i>type_, fileName</i>)
-<p>
-        Private method to do the initial synchronization of the given file.
-</p><dl>
-<dt><i>type_</i></dt>
-<dd>
-type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-</dd><dt><i>fileName</i></dt>
-<dd>
-name of the file to be synchronized (string)
-</dd>
-</dl><a NAME="DirectorySyncHandler.__syncFile" ID="DirectorySyncHandler.__syncFile"></a>
-<h4>DirectorySyncHandler.__syncFile</h4>
-<b>__syncFile</b>(<i>type_, fileName</i>)
-<p>
-        Private method to synchronize the given file.
-</p><dl>
-<dt><i>type_</i></dt>
-<dd>
-type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-</dd><dt><i>fileName</i></dt>
-<dd>
-name of the file to be synchronized (string)
-</dd>
-</dl><a NAME="DirectorySyncHandler.__uploadFile" ID="DirectorySyncHandler.__uploadFile"></a>
-<h4>DirectorySyncHandler.__uploadFile</h4>
-<b>__uploadFile</b>(<i>type_, fileName</i>)
-<p>
-        Private method to upload the given file.
-</p><dl>
-<dt><i>type_</i></dt>
-<dd>
-type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-</dd><dt><i>fileName</i></dt>
-<dd>
-name of the file to be uploaded (string)
-</dd>
-</dl><a NAME="DirectorySyncHandler.initialLoadAndCheck" ID="DirectorySyncHandler.initialLoadAndCheck"></a>
-<h4>DirectorySyncHandler.initialLoadAndCheck</h4>
-<b>initialLoadAndCheck</b>(<i>forceUpload</i>)
-<p>
-        Public method to do the initial check.
-</p><dl>
-<dt><i>forceUpload=</i></dt>
-<dd>
-flag indicating a forced upload of the files
-            (boolean)
-</dd>
-</dl><a NAME="DirectorySyncHandler.shutdown" ID="DirectorySyncHandler.shutdown"></a>
-<h4>DirectorySyncHandler.shutdown</h4>
-<b>shutdown</b>(<i></i>)
-<p>
-        Public method to shut down the handler.
-</p><a NAME="DirectorySyncHandler.syncBookmarks" ID="DirectorySyncHandler.syncBookmarks"></a>
-<h4>DirectorySyncHandler.syncBookmarks</h4>
-<b>syncBookmarks</b>(<i></i>)
-<p>
-        Public method to synchronize the bookmarks.
-</p><a NAME="DirectorySyncHandler.syncHistory" ID="DirectorySyncHandler.syncHistory"></a>
-<h4>DirectorySyncHandler.syncHistory</h4>
-<b>syncHistory</b>(<i></i>)
-<p>
-        Public method to synchronize the history.
-</p><a NAME="DirectorySyncHandler.syncPasswords" ID="DirectorySyncHandler.syncPasswords"></a>
-<h4>DirectorySyncHandler.syncPasswords</h4>
-<b>syncPasswords</b>(<i></i>)
-<p>
-        Public method to synchronize the passwords.
-</p><a NAME="DirectorySyncHandler.syncSpeedDial" ID="DirectorySyncHandler.syncSpeedDial"></a>
-<h4>DirectorySyncHandler.syncSpeedDial</h4>
-<b>syncSpeedDial</b>(<i></i>)
-<p>
-        Public method to synchronize the speed dial data.
-</p><a NAME="DirectorySyncHandler.syncUserAgents" ID="DirectorySyncHandler.syncUserAgents"></a>
-<h4>DirectorySyncHandler.syncUserAgents</h4>
-<b>syncUserAgents</b>(<i></i>)
-<p>
-        Public method to synchronize the user agents.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Sync.FtpSyncHandler.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,328 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Sync.FtpSyncHandler</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Sync.FtpSyncHandler</h1>
-<p>
-Module implementing a synchronization handler using FTP.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FtpSyncHandler">FtpSyncHandler</a></td>
-<td>Class implementing a synchronization handler using FTP.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FtpSyncHandler" ID="FtpSyncHandler"></a>
-<h2>FtpSyncHandler</h2>
-<p>
-    Class implementing a synchronization handler using FTP.
-</p><h3>Signals</h3>
-<dl>
-<dt>syncError(message)</dt>
-<dd>
-emitted for a general error with the error
-        message (string)
-</dd><dt>syncFinished(type_, done, download)</dt>
-<dd>
-emitted after a
-        synchronization has finished (string one of "bookmarks", "history",
-        "passwords", "useragents" or "speeddial", boolean, boolean)
-</dd><dt>syncMessage(message)</dt>
-<dd>
-emitted to send a message about
-        synchronization (string)
-</dd><dt>syncStatus(type_, message)</dt>
-<dd>
-emitted to indicate the synchronization
-        status (string one of "bookmarks", "history", "passwords",
-        "useragents" or "speeddial", string)
-</dd>
-</dl>
-<h3>Derived from</h3>
-SyncHandler
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FtpSyncHandler.__init__">FtpSyncHandler</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.__changeToStore">__changeToStore</a></td>
-<td>Private slot to change to the storage directory.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.__connectAndLogin">__connectAndLogin</a></td>
-<td>Private method to connect to the FTP server and log in.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.__dirListCallback">__dirListCallback</a></td>
-<td>Private slot handling the receipt of directory listing lines.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.__doFtpCommands">__doFtpCommands</a></td>
-<td>Private slot executing the sequence of FTP commands.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.__downloadFile">__downloadFile</a></td>
-<td>Private method to downlaod the given file.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.__downloadFileCallback">__downloadFileCallback</a></td>
-<td>Private method receiving the downloaded data.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.__idleTimeout">__idleTimeout</a></td>
-<td>Private slot to prevent a disconnect from the server.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.__initialSync">__initialSync</a></td>
-<td>Private slot to do the initial synchronization.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.__initialSyncFile">__initialSyncFile</a></td>
-<td>Private method to do the initial synchronization of the given file.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.__syncFile">__syncFile</a></td>
-<td>Private method to synchronize the given file.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.__uploadFile">__uploadFile</a></td>
-<td>Private method to upload the given file.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.initialLoadAndCheck">initialLoadAndCheck</a></td>
-<td>Public method to do the initial check.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.shutdown">shutdown</a></td>
-<td>Public method to shut down the handler.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.syncBookmarks">syncBookmarks</a></td>
-<td>Public method to synchronize the bookmarks.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.syncHistory">syncHistory</a></td>
-<td>Public method to synchronize the history.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.syncPasswords">syncPasswords</a></td>
-<td>Public method to synchronize the passwords.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.syncSpeedDial">syncSpeedDial</a></td>
-<td>Public method to synchronize the speed dial data.</td>
-</tr><tr>
-<td><a href="#FtpSyncHandler.syncUserAgents">syncUserAgents</a></td>
-<td>Public method to synchronize the user agents.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FtpSyncHandler.__init__" ID="FtpSyncHandler.__init__"></a>
-<h4>FtpSyncHandler (Constructor)</h4>
-<b>FtpSyncHandler</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="FtpSyncHandler.__changeToStore" ID="FtpSyncHandler.__changeToStore"></a>
-<h4>FtpSyncHandler.__changeToStore</h4>
-<b>__changeToStore</b>(<i></i>)
-<p>
-        Private slot to change to the storage directory.
-</p><p>
-        This action will create the storage path on the server, if it
-        does not exist. Upon return, the current directory of the server
-        is the sync directory.
-</p><a NAME="FtpSyncHandler.__connectAndLogin" ID="FtpSyncHandler.__connectAndLogin"></a>
-<h4>FtpSyncHandler.__connectAndLogin</h4>
-<b>__connectAndLogin</b>(<i></i>)
-<p>
-        Private method to connect to the FTP server and log in.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a successful log in (boolean)
-</dd>
-</dl><a NAME="FtpSyncHandler.__dirListCallback" ID="FtpSyncHandler.__dirListCallback"></a>
-<h4>FtpSyncHandler.__dirListCallback</h4>
-<b>__dirListCallback</b>(<i>line</i>)
-<p>
-        Private slot handling the receipt of directory listing lines.
-</p><dl>
-<dt><i>line</i></dt>
-<dd>
-the received line of the directory listing (string)
-</dd>
-</dl><a NAME="FtpSyncHandler.__doFtpCommands" ID="FtpSyncHandler.__doFtpCommands"></a>
-<h4>FtpSyncHandler.__doFtpCommands</h4>
-<b>__doFtpCommands</b>(<i></i>)
-<p>
-        Private slot executing the sequence of FTP commands.
-</p><a NAME="FtpSyncHandler.__downloadFile" ID="FtpSyncHandler.__downloadFile"></a>
-<h4>FtpSyncHandler.__downloadFile</h4>
-<b>__downloadFile</b>(<i>type_, fileName, timestamp</i>)
-<p>
-        Private method to downlaod the given file.
-</p><dl>
-<dt><i>type_</i></dt>
-<dd>
-type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-</dd><dt><i>fileName</i></dt>
-<dd>
-name of the file to be downloaded (string)
-</dd><dt><i>timestamp</i></dt>
-<dd>
-time stamp in seconds of the file to be downloaded
-            (integer)
-</dd>
-</dl><a NAME="FtpSyncHandler.__downloadFileCallback" ID="FtpSyncHandler.__downloadFileCallback"></a>
-<h4>FtpSyncHandler.__downloadFileCallback</h4>
-<b>__downloadFileCallback</b>(<i>buffer, data</i>)
-<p>
-        Private method receiving the downloaded data.
-</p><dl>
-<dt><i>buffer</i></dt>
-<dd>
-reference to the buffer (io.BytesIO)
-</dd><dt><i>data</i></dt>
-<dd>
-byte string to store in the buffer (bytes)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of bytes written to the buffer (integer)
-</dd>
-</dl><a NAME="FtpSyncHandler.__idleTimeout" ID="FtpSyncHandler.__idleTimeout"></a>
-<h4>FtpSyncHandler.__idleTimeout</h4>
-<b>__idleTimeout</b>(<i></i>)
-<p>
-        Private slot to prevent a disconnect from the server.
-</p><a NAME="FtpSyncHandler.__initialSync" ID="FtpSyncHandler.__initialSync"></a>
-<h4>FtpSyncHandler.__initialSync</h4>
-<b>__initialSync</b>(<i></i>)
-<p>
-        Private slot to do the initial synchronization.
-</p><a NAME="FtpSyncHandler.__initialSyncFile" ID="FtpSyncHandler.__initialSyncFile"></a>
-<h4>FtpSyncHandler.__initialSyncFile</h4>
-<b>__initialSyncFile</b>(<i>type_, fileName</i>)
-<p>
-        Private method to do the initial synchronization of the given file.
-</p><dl>
-<dt><i>type_</i></dt>
-<dd>
-type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-</dd><dt><i>fileName</i></dt>
-<dd>
-name of the file to be synchronized (string)
-</dd>
-</dl><a NAME="FtpSyncHandler.__syncFile" ID="FtpSyncHandler.__syncFile"></a>
-<h4>FtpSyncHandler.__syncFile</h4>
-<b>__syncFile</b>(<i>type_, fileName</i>)
-<p>
-        Private method to synchronize the given file.
-</p><dl>
-<dt><i>type_</i></dt>
-<dd>
-type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-</dd><dt><i>fileName</i></dt>
-<dd>
-name of the file to be synchronized (string)
-</dd>
-</dl><a NAME="FtpSyncHandler.__uploadFile" ID="FtpSyncHandler.__uploadFile"></a>
-<h4>FtpSyncHandler.__uploadFile</h4>
-<b>__uploadFile</b>(<i>type_, fileName</i>)
-<p>
-        Private method to upload the given file.
-</p><dl>
-<dt><i>type_</i></dt>
-<dd>
-type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-</dd><dt><i>fileName</i></dt>
-<dd>
-name of the file to be uploaded (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="FtpSyncHandler.initialLoadAndCheck" ID="FtpSyncHandler.initialLoadAndCheck"></a>
-<h4>FtpSyncHandler.initialLoadAndCheck</h4>
-<b>initialLoadAndCheck</b>(<i>forceUpload</i>)
-<p>
-        Public method to do the initial check.
-</p><dl>
-<dt><i>forceUpload=</i></dt>
-<dd>
-flag indicating a forced upload of the files
-            (boolean)
-</dd>
-</dl><a NAME="FtpSyncHandler.shutdown" ID="FtpSyncHandler.shutdown"></a>
-<h4>FtpSyncHandler.shutdown</h4>
-<b>shutdown</b>(<i></i>)
-<p>
-        Public method to shut down the handler.
-</p><a NAME="FtpSyncHandler.syncBookmarks" ID="FtpSyncHandler.syncBookmarks"></a>
-<h4>FtpSyncHandler.syncBookmarks</h4>
-<b>syncBookmarks</b>(<i></i>)
-<p>
-        Public method to synchronize the bookmarks.
-</p><a NAME="FtpSyncHandler.syncHistory" ID="FtpSyncHandler.syncHistory"></a>
-<h4>FtpSyncHandler.syncHistory</h4>
-<b>syncHistory</b>(<i></i>)
-<p>
-        Public method to synchronize the history.
-</p><a NAME="FtpSyncHandler.syncPasswords" ID="FtpSyncHandler.syncPasswords"></a>
-<h4>FtpSyncHandler.syncPasswords</h4>
-<b>syncPasswords</b>(<i></i>)
-<p>
-        Public method to synchronize the passwords.
-</p><a NAME="FtpSyncHandler.syncSpeedDial" ID="FtpSyncHandler.syncSpeedDial"></a>
-<h4>FtpSyncHandler.syncSpeedDial</h4>
-<b>syncSpeedDial</b>(<i></i>)
-<p>
-        Public method to synchronize the speed dial data.
-</p><a NAME="FtpSyncHandler.syncUserAgents" ID="FtpSyncHandler.syncUserAgents"></a>
-<h4>FtpSyncHandler.syncUserAgents</h4>
-<b>syncUserAgents</b>(<i></i>)
-<p>
-        Public method to synchronize the user agents.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncAssistantDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Sync.SyncAssistantDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Sync.SyncAssistantDialog</h1>
-<p>
-Module implementing a wizard dialog to enter the synchronization data.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SyncAssistantDialog">SyncAssistantDialog</a></td>
-<td>Class implementing a wizard dialog to enter the synchronization data.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SyncAssistantDialog" ID="SyncAssistantDialog"></a>
-<h2>SyncAssistantDialog</h2>
-<p>
-    Class implementing a wizard dialog to enter the synchronization data.
-</p>
-<h3>Derived from</h3>
-QWizard
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SyncAssistantDialog.__init__">SyncAssistantDialog</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SyncAssistantDialog.__init__" ID="SyncAssistantDialog.__init__"></a>
-<h4>SyncAssistantDialog (Constructor)</h4>
-<b>SyncAssistantDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncCheckPage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,155 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Sync.SyncCheckPage</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Sync.SyncCheckPage</h1>
-<p>
-Module implementing the synchronization status wizard page.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SyncCheckPage">SyncCheckPage</a></td>
-<td>Class implementing the synchronization status wizard page.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SyncCheckPage" ID="SyncCheckPage"></a>
-<h2>SyncCheckPage</h2>
-<p>
-    Class implementing the synchronization status wizard page.
-</p>
-<h3>Derived from</h3>
-QWizardPage, Ui_SyncCheckPage
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SyncCheckPage.__init__">SyncCheckPage</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SyncCheckPage.__makeAnimatedLabel">__makeAnimatedLabel</a></td>
-<td>Private slot to create an animated label.</td>
-</tr><tr>
-<td><a href="#SyncCheckPage.__syncError">__syncError</a></td>
-<td>Private slot to handle general synchronization issues.</td>
-</tr><tr>
-<td><a href="#SyncCheckPage.__updateLabels">__updateLabels</a></td>
-<td>Private slot to handle a finished synchronization event.</td>
-</tr><tr>
-<td><a href="#SyncCheckPage.__updateMessages">__updateMessages</a></td>
-<td>Private slot to update the synchronization status info.</td>
-</tr><tr>
-<td><a href="#SyncCheckPage.initializePage">initializePage</a></td>
-<td>Public method to initialize the page.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SyncCheckPage.__init__" ID="SyncCheckPage.__init__"></a>
-<h4>SyncCheckPage (Constructor)</h4>
-<b>SyncCheckPage</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="SyncCheckPage.__makeAnimatedLabel" ID="SyncCheckPage.__makeAnimatedLabel"></a>
-<h4>SyncCheckPage.__makeAnimatedLabel</h4>
-<b>__makeAnimatedLabel</b>(<i>fileName, label</i>)
-<p>
-        Private slot to create an animated label.
-</p><dl>
-<dt><i>fileName</i></dt>
-<dd>
-name of the file containing the animation (string)
-</dd><dt><i>label</i></dt>
-<dd>
-reference to the label to be animated (QLabel)
-</dd>
-</dl><a NAME="SyncCheckPage.__syncError" ID="SyncCheckPage.__syncError"></a>
-<h4>SyncCheckPage.__syncError</h4>
-<b>__syncError</b>(<i>message</i>)
-<p>
-        Private slot to handle general synchronization issues.
-</p><dl>
-<dt><i>message</i></dt>
-<dd>
-error message (string)
-</dd>
-</dl><a NAME="SyncCheckPage.__updateLabels" ID="SyncCheckPage.__updateLabels"></a>
-<h4>SyncCheckPage.__updateLabels</h4>
-<b>__updateLabels</b>(<i>type_, status, download</i>)
-<p>
-        Private slot to handle a finished synchronization event.
-</p><dl>
-<dt><i>type_</i></dt>
-<dd>
-type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-</dd><dt><i>status</i></dt>
-<dd>
-flag indicating success (boolean)
-</dd><dt><i>download</i></dt>
-<dd>
-flag indicating a download of a file (boolean)
-</dd>
-</dl><a NAME="SyncCheckPage.__updateMessages" ID="SyncCheckPage.__updateMessages"></a>
-<h4>SyncCheckPage.__updateMessages</h4>
-<b>__updateMessages</b>(<i>type_, msg</i>)
-<p>
-        Private slot to update the synchronization status info.
-</p><dl>
-<dt><i>type_</i></dt>
-<dd>
-type of synchronization data (string)
-</dd><dt><i>msg</i></dt>
-<dd>
-synchronization message (string)
-</dd>
-</dl><a NAME="SyncCheckPage.initializePage" ID="SyncCheckPage.initializePage"></a>
-<h4>SyncCheckPage.initializePage</h4>
-<b>initializePage</b>(<i></i>)
-<p>
-        Public method to initialize the page.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncDataPage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Sync.SyncDataPage</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Sync.SyncDataPage</h1>
-<p>
-Module implementing the synchronization data wizard page.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SyncDataPage">SyncDataPage</a></td>
-<td>Class implementing the synchronization data wizard page.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SyncDataPage" ID="SyncDataPage"></a>
-<h2>SyncDataPage</h2>
-<p>
-    Class implementing the synchronization data wizard page.
-</p>
-<h3>Derived from</h3>
-QWizardPage, Ui_SyncDataPage
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SyncDataPage.__init__">SyncDataPage</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SyncDataPage.nextId">nextId</a></td>
-<td>Public method returning the ID of the next wizard page.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SyncDataPage.__init__" ID="SyncDataPage.__init__"></a>
-<h4>SyncDataPage (Constructor)</h4>
-<b>SyncDataPage</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="SyncDataPage.nextId" ID="SyncDataPage.nextId"></a>
-<h4>SyncDataPage.nextId</h4>
-<b>nextId</b>(<i></i>)
-<p>
-        Public method returning the ID of the next wizard page.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-next wizard page ID (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncDirectorySettingsPage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Sync.SyncDirectorySettingsPage</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Sync.SyncDirectorySettingsPage</h1>
-<p>
-Module implementing the synchronization shared directory settings wizard page.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SyncDirectorySettingsPage">SyncDirectorySettingsPage</a></td>
-<td>Class implementing the shared directory host settings wizard page.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SyncDirectorySettingsPage" ID="SyncDirectorySettingsPage"></a>
-<h2>SyncDirectorySettingsPage</h2>
-<p>
-    Class implementing the shared directory host settings wizard page.
-</p>
-<h3>Derived from</h3>
-QWizardPage, Ui_SyncDirectorySettingsPage
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SyncDirectorySettingsPage.__init__">SyncDirectorySettingsPage</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SyncDirectorySettingsPage.isComplete">isComplete</a></td>
-<td>Public method to check the completeness of the page.</td>
-</tr><tr>
-<td><a href="#SyncDirectorySettingsPage.nextId">nextId</a></td>
-<td>Public method returning the ID of the next wizard page.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SyncDirectorySettingsPage.__init__" ID="SyncDirectorySettingsPage.__init__"></a>
-<h4>SyncDirectorySettingsPage (Constructor)</h4>
-<b>SyncDirectorySettingsPage</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="SyncDirectorySettingsPage.isComplete" ID="SyncDirectorySettingsPage.isComplete"></a>
-<h4>SyncDirectorySettingsPage.isComplete</h4>
-<b>isComplete</b>(<i></i>)
-<p>
-        Public method to check the completeness of the page.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating completeness (boolean)
-</dd>
-</dl><a NAME="SyncDirectorySettingsPage.nextId" ID="SyncDirectorySettingsPage.nextId"></a>
-<h4>SyncDirectorySettingsPage.nextId</h4>
-<b>nextId</b>(<i></i>)
-<p>
-        Public method returning the ID of the next wizard page.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-next wizard page ID (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncEncryptionPage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Sync.SyncEncryptionPage</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Sync.SyncEncryptionPage</h1>
-<p>
-Module implementing encryption settings wizard page.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SyncEncryptionPage">SyncEncryptionPage</a></td>
-<td>Class implementing encryption settings wizard page.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SyncEncryptionPage" ID="SyncEncryptionPage"></a>
-<h2>SyncEncryptionPage</h2>
-<p>
-    Class implementing encryption settings wizard page.
-</p>
-<h3>Derived from</h3>
-QWizardPage, Ui_SyncEncryptionPage
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SyncEncryptionPage.__init__">SyncEncryptionPage</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SyncEncryptionPage.__updateUI">__updateUI</a></td>
-<td>Private slot to update the variable parts of the UI.</td>
-</tr><tr>
-<td><a href="#SyncEncryptionPage.isComplete">isComplete</a></td>
-<td>Public method to check the completeness of the page.</td>
-</tr><tr>
-<td><a href="#SyncEncryptionPage.nextId">nextId</a></td>
-<td>Public method returning the ID of the next wizard page.</td>
-</tr><tr>
-<td><a href="#SyncEncryptionPage.on_encryptionGroupBox_toggled">on_encryptionGroupBox_toggled</a></td>
-<td>Private slot to handle changes of the encryption selection.</td>
-</tr><tr>
-<td><a href="#SyncEncryptionPage.on_encryptionKeyAgainEdit_textChanged">on_encryptionKeyAgainEdit_textChanged</a></td>
-<td>Private slot to handle changes of the encryption key repetition.</td>
-</tr><tr>
-<td><a href="#SyncEncryptionPage.on_encryptionKeyEdit_textChanged">on_encryptionKeyEdit_textChanged</a></td>
-<td>Private slot to handle changes of the encryption key.</td>
-</tr><tr>
-<td><a href="#SyncEncryptionPage.on_reencryptCheckBox_toggled">on_reencryptCheckBox_toggled</a></td>
-<td>Private slot to handle changes of the re-encryption selection.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SyncEncryptionPage.__init__" ID="SyncEncryptionPage.__init__"></a>
-<h4>SyncEncryptionPage (Constructor)</h4>
-<b>SyncEncryptionPage</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="SyncEncryptionPage.__updateUI" ID="SyncEncryptionPage.__updateUI"></a>
-<h4>SyncEncryptionPage.__updateUI</h4>
-<b>__updateUI</b>(<i></i>)
-<p>
-        Private slot to update the variable parts of the UI.
-</p><a NAME="SyncEncryptionPage.isComplete" ID="SyncEncryptionPage.isComplete"></a>
-<h4>SyncEncryptionPage.isComplete</h4>
-<b>isComplete</b>(<i></i>)
-<p>
-        Public method to check the completeness of the page.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating completeness (boolean)
-</dd>
-</dl><a NAME="SyncEncryptionPage.nextId" ID="SyncEncryptionPage.nextId"></a>
-<h4>SyncEncryptionPage.nextId</h4>
-<b>nextId</b>(<i></i>)
-<p>
-        Public method returning the ID of the next wizard page.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-next wizard page ID (integer)
-</dd>
-</dl><a NAME="SyncEncryptionPage.on_encryptionGroupBox_toggled" ID="SyncEncryptionPage.on_encryptionGroupBox_toggled"></a>
-<h4>SyncEncryptionPage.on_encryptionGroupBox_toggled</h4>
-<b>on_encryptionGroupBox_toggled</b>(<i>on</i>)
-<p>
-        Private slot to handle changes of the encryption selection.
-</p><dl>
-<dt><i>on</i></dt>
-<dd>
-state of the group box (boolean)
-</dd>
-</dl><a NAME="SyncEncryptionPage.on_encryptionKeyAgainEdit_textChanged" ID="SyncEncryptionPage.on_encryptionKeyAgainEdit_textChanged"></a>
-<h4>SyncEncryptionPage.on_encryptionKeyAgainEdit_textChanged</h4>
-<b>on_encryptionKeyAgainEdit_textChanged</b>(<i>txt</i>)
-<p>
-        Private slot to handle changes of the encryption key repetition.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-content of the edit widget (string)
-</dd>
-</dl><a NAME="SyncEncryptionPage.on_encryptionKeyEdit_textChanged" ID="SyncEncryptionPage.on_encryptionKeyEdit_textChanged"></a>
-<h4>SyncEncryptionPage.on_encryptionKeyEdit_textChanged</h4>
-<b>on_encryptionKeyEdit_textChanged</b>(<i>txt</i>)
-<p>
-        Private slot to handle changes of the encryption key.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-content of the edit widget (string)
-</dd>
-</dl><a NAME="SyncEncryptionPage.on_reencryptCheckBox_toggled" ID="SyncEncryptionPage.on_reencryptCheckBox_toggled"></a>
-<h4>SyncEncryptionPage.on_reencryptCheckBox_toggled</h4>
-<b>on_reencryptCheckBox_toggled</b>(<i>on</i>)
-<p>
-        Private slot to handle changes of the re-encryption selection.
-</p><dl>
-<dt><i>on</i></dt>
-<dd>
-state of the check box (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncFtpSettingsPage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Sync.SyncFtpSettingsPage</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Sync.SyncFtpSettingsPage</h1>
-<p>
-Module implementing the synchronization FTP host settings wizard page.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SyncFtpSettingsPage">SyncFtpSettingsPage</a></td>
-<td>Class implementing the synchronization FTP host settings wizard page.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SyncFtpSettingsPage" ID="SyncFtpSettingsPage"></a>
-<h2>SyncFtpSettingsPage</h2>
-<p>
-    Class implementing the synchronization FTP host settings wizard page.
-</p>
-<h3>Derived from</h3>
-QWizardPage, Ui_SyncFtpSettingsPage
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SyncFtpSettingsPage.__init__">SyncFtpSettingsPage</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SyncFtpSettingsPage.isComplete">isComplete</a></td>
-<td>Public method to check the completeness of the page.</td>
-</tr><tr>
-<td><a href="#SyncFtpSettingsPage.nextId">nextId</a></td>
-<td>Public method returning the ID of the next wizard page.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SyncFtpSettingsPage.__init__" ID="SyncFtpSettingsPage.__init__"></a>
-<h4>SyncFtpSettingsPage (Constructor)</h4>
-<b>SyncFtpSettingsPage</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="SyncFtpSettingsPage.isComplete" ID="SyncFtpSettingsPage.isComplete"></a>
-<h4>SyncFtpSettingsPage.isComplete</h4>
-<b>isComplete</b>(<i></i>)
-<p>
-        Public method to check the completeness of the page.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating completeness (boolean)
-</dd>
-</dl><a NAME="SyncFtpSettingsPage.nextId" ID="SyncFtpSettingsPage.nextId"></a>
-<h4>SyncFtpSettingsPage.nextId</h4>
-<b>nextId</b>(<i></i>)
-<p>
-        Public method returning the ID of the next wizard page.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-next wizard page ID (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncGlobals.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Sync.SyncGlobals</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Sync.SyncGlobals</h1>
-<p>
-Module implementing some global definitions.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>PageCheck</td></tr><tr><td>PageData</td></tr><tr><td>PageDirectorySettings</td></tr><tr><td>PageEncryption</td></tr><tr><td>PageFTPSettings</td></tr><tr><td>PageType</td></tr><tr><td>SyncTypeDirectory</td></tr><tr><td>SyncTypeFtp</td></tr><tr><td>SyncTypeNone</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncHandler.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,265 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Sync.SyncHandler</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Sync.SyncHandler</h1>
-<p>
-Module containing a base class for synchronization handlers.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SyncHandler">SyncHandler</a></td>
-<td>Base class for synchronization handlers.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SyncHandler" ID="SyncHandler"></a>
-<h2>SyncHandler</h2>
-<p>
-    Base class for synchronization handlers.
-</p><h3>Signals</h3>
-<dl>
-<dt>syncError(message)</dt>
-<dd>
-emitted for a general error with the error
-        message (string)
-</dd><dt>syncFinished(type_, done, download)</dt>
-<dd>
-emitted after a
-        synchronization has finished (string one of "bookmarks", "history",
-        "passwords", "useragents" or "speeddial", boolean, boolean)
-</dd><dt>syncMessage(message)</dt>
-<dd>
-emitted to send a message about
-        synchronization (string)
-</dd><dt>syncStatus(type_, message)</dt>
-<dd>
-emitted to indicate the synchronization
-        status (string one of "bookmarks", "history", "passwords",
-        "useragents" or "speeddial", string)
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SyncHandler.__init__">SyncHandler</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SyncHandler.initialLoadAndCheck">initialLoadAndCheck</a></td>
-<td>Public method to do the initial check.</td>
-</tr><tr>
-<td><a href="#SyncHandler.readFile">readFile</a></td>
-<td>Public method to read a file.</td>
-</tr><tr>
-<td><a href="#SyncHandler.shutdown">shutdown</a></td>
-<td>Public method to shut down the handler.</td>
-</tr><tr>
-<td><a href="#SyncHandler.syncBookmarks">syncBookmarks</a></td>
-<td>Public method to synchronize the bookmarks.</td>
-</tr><tr>
-<td><a href="#SyncHandler.syncHistory">syncHistory</a></td>
-<td>Public method to synchronize the history.</td>
-</tr><tr>
-<td><a href="#SyncHandler.syncPasswords">syncPasswords</a></td>
-<td>Public method to synchronize the passwords.</td>
-</tr><tr>
-<td><a href="#SyncHandler.syncSpeedDial">syncSpeedDial</a></td>
-<td>Public method to synchronize the speed dial data.</td>
-</tr><tr>
-<td><a href="#SyncHandler.syncUserAgents">syncUserAgents</a></td>
-<td>Public method to synchronize the user agents.</td>
-</tr><tr>
-<td><a href="#SyncHandler.writeFile">writeFile</a></td>
-<td>Public method to write the data to a file.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SyncHandler.__init__" ID="SyncHandler.__init__"></a>
-<h4>SyncHandler (Constructor)</h4>
-<b>SyncHandler</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="SyncHandler.initialLoadAndCheck" ID="SyncHandler.initialLoadAndCheck"></a>
-<h4>SyncHandler.initialLoadAndCheck</h4>
-<b>initialLoadAndCheck</b>(<i>forceUpload</i>)
-<p>
-        Public method to do the initial check.
-</p><dl>
-<dt><i>forceUpload=</i></dt>
-<dd>
-flag indicating a forced upload of the files
-            (boolean)
-</dd>
-</dl><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-raised to indicate that this method
-            must be implemented by subclasses
-</dd>
-</dl><a NAME="SyncHandler.readFile" ID="SyncHandler.readFile"></a>
-<h4>SyncHandler.readFile</h4>
-<b>readFile</b>(<i>fileName, type_</i>)
-<p>
-        Public method to read a file.
-</p><p>
-        If encrypted synchronization is enabled, the data will be encrypted
-        using the relevant encryption key.
-</p><dl>
-<dt><i>fileName</i></dt>
-<dd>
-name of the file to be read (string)
-</dd><dt><i>type_</i></dt>
-<dd>
-type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-data of the file, optionally encrypted (QByteArray)
-</dd>
-</dl><a NAME="SyncHandler.shutdown" ID="SyncHandler.shutdown"></a>
-<h4>SyncHandler.shutdown</h4>
-<b>shutdown</b>(<i></i>)
-<p>
-        Public method to shut down the handler.
-</p><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-raised to indicate that this method
-            must be implemented by subclasses
-</dd>
-</dl><a NAME="SyncHandler.syncBookmarks" ID="SyncHandler.syncBookmarks"></a>
-<h4>SyncHandler.syncBookmarks</h4>
-<b>syncBookmarks</b>(<i></i>)
-<p>
-        Public method to synchronize the bookmarks.
-</p><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-raised to indicate that this method
-            must be implemented by subclasses
-</dd>
-</dl><a NAME="SyncHandler.syncHistory" ID="SyncHandler.syncHistory"></a>
-<h4>SyncHandler.syncHistory</h4>
-<b>syncHistory</b>(<i></i>)
-<p>
-        Public method to synchronize the history.
-</p><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-raised to indicate that this method
-            must be implemented by subclasses
-</dd>
-</dl><a NAME="SyncHandler.syncPasswords" ID="SyncHandler.syncPasswords"></a>
-<h4>SyncHandler.syncPasswords</h4>
-<b>syncPasswords</b>(<i></i>)
-<p>
-        Public method to synchronize the passwords.
-</p><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-raised to indicate that this method
-            must be implemented by subclasses
-</dd>
-</dl><a NAME="SyncHandler.syncSpeedDial" ID="SyncHandler.syncSpeedDial"></a>
-<h4>SyncHandler.syncSpeedDial</h4>
-<b>syncSpeedDial</b>(<i></i>)
-<p>
-        Public method to synchronize the speed dial data.
-</p><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-raised to indicate that this method
-            must be implemented by subclasses
-</dd>
-</dl><a NAME="SyncHandler.syncUserAgents" ID="SyncHandler.syncUserAgents"></a>
-<h4>SyncHandler.syncUserAgents</h4>
-<b>syncUserAgents</b>(<i></i>)
-<p>
-        Public method to synchronize the user agents.
-</p><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-raised to indicate that this method
-            must be implemented by subclasses
-</dd>
-</dl><a NAME="SyncHandler.writeFile" ID="SyncHandler.writeFile"></a>
-<h4>SyncHandler.writeFile</h4>
-<b>writeFile</b>(<i>data, fileName, type_, timestamp=0</i>)
-<p>
-        Public method to write the data to a file.
-</p><p>
-        If encrypted synchronization is enabled, the data will be decrypted
-        using the relevant encryption key.
-</p><dl>
-<dt><i>data</i></dt>
-<dd>
-data to be written and optionally decrypted (QByteArray)
-</dd><dt><i>fileName</i></dt>
-<dd>
-name of the file the data is to be written to (string)
-</dd><dt><i>type_</i></dt>
-<dd>
-type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-</dd><dt><i>timestamp</i></dt>
-<dd>
-timestamp to be given to the file (int)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple giving a success flag and an error string (boolean,
-            string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncHostTypePage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Sync.SyncHostTypePage</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Sync.SyncHostTypePage</h1>
-<p>
-Module implementing the synchronization host type wizard page.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SyncHostTypePage">SyncHostTypePage</a></td>
-<td>Class implementing the synchronization host type wizard page.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SyncHostTypePage" ID="SyncHostTypePage"></a>
-<h2>SyncHostTypePage</h2>
-<p>
-    Class implementing the synchronization host type wizard page.
-</p>
-<h3>Derived from</h3>
-QWizardPage, Ui_SyncHostTypePage
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SyncHostTypePage.__init__">SyncHostTypePage</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SyncHostTypePage.nextId">nextId</a></td>
-<td>Public method returning the ID of the next wizard page.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SyncHostTypePage.__init__" ID="SyncHostTypePage.__init__"></a>
-<h4>SyncHostTypePage (Constructor)</h4>
-<b>SyncHostTypePage</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="SyncHostTypePage.nextId" ID="SyncHostTypePage.nextId"></a>
-<h4>SyncHostTypePage.nextId</h4>
-<b>nextId</b>(<i></i>)
-<p>
-        Public method returning the ID of the next wizard page.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-next wizard page ID (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.Sync.SyncManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,250 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Sync.SyncManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.Sync.SyncManager</h1>
-<p>
-Module implementing the synchronization manager class.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SyncManager">SyncManager</a></td>
-<td>Class implementing the synchronization manager.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SyncManager" ID="SyncManager"></a>
-<h2>SyncManager</h2>
-<p>
-    Class implementing the synchronization manager.
-</p><h3>Signals</h3>
-<dl>
-<dt>syncError(message)</dt>
-<dd>
-emitted for a general error with the error
-        message (string)
-</dd><dt>syncFinished(type_, done, download)</dt>
-<dd>
-emitted after a
-        synchronization has finished (string one of "bookmarks", "history",
-        "passwords", "useragents" or "speeddial", boolean, boolean)
-</dd><dt>syncMessage(message)</dt>
-<dd>
-emitted to give status info about the sync
-        process (string)
-</dd><dt>syncStatus(type_, message)</dt>
-<dd>
-emitted to indicate the synchronization
-        status (string one of "bookmarks", "history", "passwords",
-        "useragents" or "speeddial", string)
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SyncManager.__init__">SyncManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SyncManager.__syncBookmarks">__syncBookmarks</a></td>
-<td>Private slot to synchronize the bookmarks.</td>
-</tr><tr>
-<td><a href="#SyncManager.__syncError">__syncError</a></td>
-<td>Private slot to handle general synchronization issues.</td>
-</tr><tr>
-<td><a href="#SyncManager.__syncFinished">__syncFinished</a></td>
-<td>Private slot to handle a finished synchronization event.</td>
-</tr><tr>
-<td><a href="#SyncManager.__syncHistory">__syncHistory</a></td>
-<td>Private slot to synchronize the history.</td>
-</tr><tr>
-<td><a href="#SyncManager.__syncPasswords">__syncPasswords</a></td>
-<td>Private slot to synchronize the passwords.</td>
-</tr><tr>
-<td><a href="#SyncManager.__syncSpeedDial">__syncSpeedDial</a></td>
-<td>Private slot to synchronize the speed dial settings.</td>
-</tr><tr>
-<td><a href="#SyncManager.__syncStatus">__syncStatus</a></td>
-<td>Private slot to handle a status update of a synchronization event.</td>
-</tr><tr>
-<td><a href="#SyncManager.__syncUserAgents">__syncUserAgents</a></td>
-<td>Private slot to synchronize the user agent settings.</td>
-</tr><tr>
-<td><a href="#SyncManager.close">close</a></td>
-<td>Public slot to shut down the synchronization manager.</td>
-</tr><tr>
-<td><a href="#SyncManager.handler">handler</a></td>
-<td>Public method to get a reference to the sync handler object.</td>
-</tr><tr>
-<td><a href="#SyncManager.loadSettings">loadSettings</a></td>
-<td>Public method to load the settings.</td>
-</tr><tr>
-<td><a href="#SyncManager.showSyncDialog">showSyncDialog</a></td>
-<td>Public method to show the synchronization dialog.</td>
-</tr><tr>
-<td><a href="#SyncManager.syncEnabled">syncEnabled</a></td>
-<td>Public method to check, if synchronization is enabled.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SyncManager.__init__" ID="SyncManager.__init__"></a>
-<h4>SyncManager (Constructor)</h4>
-<b>SyncManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="SyncManager.__syncBookmarks" ID="SyncManager.__syncBookmarks"></a>
-<h4>SyncManager.__syncBookmarks</h4>
-<b>__syncBookmarks</b>(<i></i>)
-<p>
-        Private slot to synchronize the bookmarks.
-</p><a NAME="SyncManager.__syncError" ID="SyncManager.__syncError"></a>
-<h4>SyncManager.__syncError</h4>
-<b>__syncError</b>(<i>message</i>)
-<p>
-        Private slot to handle general synchronization issues.
-</p><dl>
-<dt><i>message</i></dt>
-<dd>
-error message (string)
-</dd>
-</dl><a NAME="SyncManager.__syncFinished" ID="SyncManager.__syncFinished"></a>
-<h4>SyncManager.__syncFinished</h4>
-<b>__syncFinished</b>(<i>type_, status, download</i>)
-<p>
-        Private slot to handle a finished synchronization event.
-</p><dl>
-<dt><i>type_</i></dt>
-<dd>
-type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-</dd><dt><i>status</i></dt>
-<dd>
-flag indicating success (boolean)
-</dd><dt><i>download</i></dt>
-<dd>
-flag indicating a download of a file (boolean)
-</dd>
-</dl><a NAME="SyncManager.__syncHistory" ID="SyncManager.__syncHistory"></a>
-<h4>SyncManager.__syncHistory</h4>
-<b>__syncHistory</b>(<i></i>)
-<p>
-        Private slot to synchronize the history.
-</p><a NAME="SyncManager.__syncPasswords" ID="SyncManager.__syncPasswords"></a>
-<h4>SyncManager.__syncPasswords</h4>
-<b>__syncPasswords</b>(<i></i>)
-<p>
-        Private slot to synchronize the passwords.
-</p><a NAME="SyncManager.__syncSpeedDial" ID="SyncManager.__syncSpeedDial"></a>
-<h4>SyncManager.__syncSpeedDial</h4>
-<b>__syncSpeedDial</b>(<i></i>)
-<p>
-        Private slot to synchronize the speed dial settings.
-</p><a NAME="SyncManager.__syncStatus" ID="SyncManager.__syncStatus"></a>
-<h4>SyncManager.__syncStatus</h4>
-<b>__syncStatus</b>(<i>type_, message</i>)
-<p>
-        Private slot to handle a status update of a synchronization event.
-</p><dl>
-<dt><i>type_</i></dt>
-<dd>
-type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-</dd><dt><i>message</i></dt>
-<dd>
-status message for the event (string)
-</dd>
-</dl><a NAME="SyncManager.__syncUserAgents" ID="SyncManager.__syncUserAgents"></a>
-<h4>SyncManager.__syncUserAgents</h4>
-<b>__syncUserAgents</b>(<i></i>)
-<p>
-        Private slot to synchronize the user agent settings.
-</p><a NAME="SyncManager.close" ID="SyncManager.close"></a>
-<h4>SyncManager.close</h4>
-<b>close</b>(<i></i>)
-<p>
-        Public slot to shut down the synchronization manager.
-</p><a NAME="SyncManager.handler" ID="SyncManager.handler"></a>
-<h4>SyncManager.handler</h4>
-<b>handler</b>(<i></i>)
-<p>
-        Public method to get a reference to the sync handler object.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the sync handler object (SyncHandler)
-</dd>
-</dl><a NAME="SyncManager.loadSettings" ID="SyncManager.loadSettings"></a>
-<h4>SyncManager.loadSettings</h4>
-<b>loadSettings</b>(<i>forceUpload=False</i>)
-<p>
-        Public method to load the settings.
-</p><dl>
-<dt><i>forceUpload=</i></dt>
-<dd>
-flag indicating a forced upload of the files
-            (boolean)
-</dd>
-</dl><a NAME="SyncManager.showSyncDialog" ID="SyncManager.showSyncDialog"></a>
-<h4>SyncManager.showSyncDialog</h4>
-<b>showSyncDialog</b>(<i></i>)
-<p>
-        Public method to show the synchronization dialog.
-</p><a NAME="SyncManager.syncEnabled" ID="SyncManager.syncEnabled"></a>
-<h4>SyncManager.syncEnabled</h4>
-<b>syncEnabled</b>(<i></i>)
-<p>
-        Public method to check, if synchronization is enabled.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating enabled synchronization
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog</h1>
-<p>
-Module implementing a dialog to select the action to be performed on the
-bookmark.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#BookmarkActionSelectionDialog">BookmarkActionSelectionDialog</a></td>
-<td>Class implementing a dialog to select the action to be performed on the bookmark.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="BookmarkActionSelectionDialog" ID="BookmarkActionSelectionDialog"></a>
-<h2>BookmarkActionSelectionDialog</h2>
-<p>
-    Class implementing a dialog to select the action to be performed on
-    the bookmark.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_BookmarkActionSelectionDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>AddBookmark</td></tr><tr><td>AddSpeeddial</td></tr><tr><td>EditBookmark</td></tr><tr><td>RemoveSpeeddial</td></tr><tr><td>Undefined</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#BookmarkActionSelectionDialog.__init__">BookmarkActionSelectionDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#BookmarkActionSelectionDialog.getAction">getAction</a></td>
-<td>Public method to get the selected action.</td>
-</tr><tr>
-<td><a href="#BookmarkActionSelectionDialog.on_bookmarkPushButton_clicked">on_bookmarkPushButton_clicked</a></td>
-<td>Private slot handling selection of a bookmark action.</td>
-</tr><tr>
-<td><a href="#BookmarkActionSelectionDialog.on_speeddialPushButton_clicked">on_speeddialPushButton_clicked</a></td>
-<td>Private slot handling selection of a speed dial action.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="BookmarkActionSelectionDialog.__init__" ID="BookmarkActionSelectionDialog.__init__"></a>
-<h4>BookmarkActionSelectionDialog (Constructor)</h4>
-<b>BookmarkActionSelectionDialog</b>(<i>url, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to be worked on (QUrl)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="BookmarkActionSelectionDialog.getAction" ID="BookmarkActionSelectionDialog.getAction"></a>
-<h4>BookmarkActionSelectionDialog.getAction</h4>
-<b>getAction</b>(<i></i>)
-<p>
-        Public method to get the selected action.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the associated action
-</dd>
-</dl><a NAME="BookmarkActionSelectionDialog.on_bookmarkPushButton_clicked" ID="BookmarkActionSelectionDialog.on_bookmarkPushButton_clicked"></a>
-<h4>BookmarkActionSelectionDialog.on_bookmarkPushButton_clicked</h4>
-<b>on_bookmarkPushButton_clicked</b>(<i></i>)
-<p>
-        Private slot handling selection of a bookmark action.
-</p><a NAME="BookmarkActionSelectionDialog.on_speeddialPushButton_clicked" ID="BookmarkActionSelectionDialog.on_speeddialPushButton_clicked"></a>
-<h4>BookmarkActionSelectionDialog.on_speeddialPushButton_clicked</h4>
-<b>on_speeddialPushButton_clicked</b>(<i></i>)
-<p>
-        Private slot handling selection of a speed dial action.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.UrlBar.BookmarkInfoDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.UrlBar.BookmarkInfoDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.UrlBar.BookmarkInfoDialog</h1>
-<p>
-Module implementing a dialog to show some bookmark info.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#BookmarkInfoDialog">BookmarkInfoDialog</a></td>
-<td>Class implementing a dialog to show some bookmark info.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="BookmarkInfoDialog" ID="BookmarkInfoDialog"></a>
-<h2>BookmarkInfoDialog</h2>
-<p>
-    Class implementing a dialog to show some bookmark info.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_BookmarkInfoDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#BookmarkInfoDialog.__init__">BookmarkInfoDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#BookmarkInfoDialog.accept">accept</a></td>
-<td>Public slot handling the acceptance of the dialog.</td>
-</tr><tr>
-<td><a href="#BookmarkInfoDialog.on_removeButton_clicked">on_removeButton_clicked</a></td>
-<td>Private slot to remove the current bookmark.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="BookmarkInfoDialog.__init__" ID="BookmarkInfoDialog.__init__"></a>
-<h4>BookmarkInfoDialog (Constructor)</h4>
-<b>BookmarkInfoDialog</b>(<i>bookmark, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>bookmark</i></dt>
-<dd>
-reference to the bookmark to be shown (Bookmark)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="BookmarkInfoDialog.accept" ID="BookmarkInfoDialog.accept"></a>
-<h4>BookmarkInfoDialog.accept</h4>
-<b>accept</b>(<i></i>)
-<p>
-        Public slot handling the acceptance of the dialog.
-</p><a NAME="BookmarkInfoDialog.on_removeButton_clicked" ID="BookmarkInfoDialog.on_removeButton_clicked"></a>
-<h4>BookmarkInfoDialog.on_removeButton_clicked</h4>
-<b>on_removeButton_clicked</b>(<i></i>)
-<p>
-        Private slot to remove the current bookmark.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.UrlBar.FavIconLabel.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.UrlBar.FavIconLabel</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.UrlBar.FavIconLabel</h1>
-<p>
-Module implementing the label to show the web site icon.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FavIconLabel">FavIconLabel</a></td>
-<td>Class implementing the label to show the web site icon.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="FavIconLabel" ID="FavIconLabel"></a>
-<h2>FavIconLabel</h2>
-<p>
-    Class implementing the label to show the web site icon.
-</p>
-<h3>Derived from</h3>
-QLabel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FavIconLabel.__init__">FavIconLabel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FavIconLabel.__browserIconChanged">__browserIconChanged</a></td>
-<td>Private slot to set the icon.</td>
-</tr><tr>
-<td><a href="#FavIconLabel.__clearIcon">__clearIcon</a></td>
-<td>Private slot to clear the icon.</td>
-</tr><tr>
-<td><a href="#FavIconLabel.mouseMoveEvent">mouseMoveEvent</a></td>
-<td>Protected method to handle mouse move events.</td>
-</tr><tr>
-<td><a href="#FavIconLabel.mousePressEvent">mousePressEvent</a></td>
-<td>Protected method to handle mouse press events.</td>
-</tr><tr>
-<td><a href="#FavIconLabel.setBrowser">setBrowser</a></td>
-<td>Public method to set the browser connection.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FavIconLabel.__init__" ID="FavIconLabel.__init__"></a>
-<h4>FavIconLabel (Constructor)</h4>
-<b>FavIconLabel</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="FavIconLabel.__browserIconChanged" ID="FavIconLabel.__browserIconChanged"></a>
-<h4>FavIconLabel.__browserIconChanged</h4>
-<b>__browserIconChanged</b>(<i></i>)
-<p>
-        Private slot to set the icon.
-</p><a NAME="FavIconLabel.__clearIcon" ID="FavIconLabel.__clearIcon"></a>
-<h4>FavIconLabel.__clearIcon</h4>
-<b>__clearIcon</b>(<i></i>)
-<p>
-        Private slot to clear the icon.
-</p><a NAME="FavIconLabel.mouseMoveEvent" ID="FavIconLabel.mouseMoveEvent"></a>
-<h4>FavIconLabel.mouseMoveEvent</h4>
-<b>mouseMoveEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle mouse move events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the mouse event (QMouseEvent)
-</dd>
-</dl><a NAME="FavIconLabel.mousePressEvent" ID="FavIconLabel.mousePressEvent"></a>
-<h4>FavIconLabel.mousePressEvent</h4>
-<b>mousePressEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle mouse press events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the mouse event (QMouseEvent)
-</dd>
-</dl><a NAME="FavIconLabel.setBrowser" ID="FavIconLabel.setBrowser"></a>
-<h4>FavIconLabel.setBrowser</h4>
-<b>setBrowser</b>(<i>browser</i>)
-<p>
-        Public method to set the browser connection.
-</p><dl>
-<dt><i>browser</i></dt>
-<dd>
-reference to the browser widegt (HelpBrowser)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.UrlBar.SslLabel.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.UrlBar.SslLabel</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.UrlBar.SslLabel</h1>
-<p>
-Module implementing the label to show some SSL info.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#SslLabel">SslLabel</a></td>
-<td>Class implementing the label to show some SSL info.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="SslLabel" ID="SslLabel"></a>
-<h2>SslLabel</h2>
-<p>
-    Class implementing the label to show some SSL info.
-</p><h3>Signals</h3>
-<dl>
-<dt>clicked(pos)</dt>
-<dd>
-emitted to indicate a click of the label (QPoint)
-</dd>
-</dl>
-<h3>Derived from</h3>
-QLabel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>nokStyle</td></tr><tr><td>okStyle</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#SslLabel.__init__">SslLabel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#SslLabel.mouseDoubleClickEvent">mouseDoubleClickEvent</a></td>
-<td>Protected method to handle mouse double click events.</td>
-</tr><tr>
-<td><a href="#SslLabel.mouseReleaseEvent">mouseReleaseEvent</a></td>
-<td>Protected method to handle mouse release events.</td>
-</tr><tr>
-<td><a href="#SslLabel.setValidity">setValidity</a></td>
-<td>Public method to set the validity indication.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="SslLabel.__init__" ID="SslLabel.__init__"></a>
-<h4>SslLabel (Constructor)</h4>
-<b>SslLabel</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="SslLabel.mouseDoubleClickEvent" ID="SslLabel.mouseDoubleClickEvent"></a>
-<h4>SslLabel.mouseDoubleClickEvent</h4>
-<b>mouseDoubleClickEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle mouse double click events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the mouse event (QMouseEvent)
-</dd>
-</dl><a NAME="SslLabel.mouseReleaseEvent" ID="SslLabel.mouseReleaseEvent"></a>
-<h4>SslLabel.mouseReleaseEvent</h4>
-<b>mouseReleaseEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle mouse release events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the mouse event (QMouseEvent)
-</dd>
-</dl><a NAME="SslLabel.setValidity" ID="SslLabel.setValidity"></a>
-<h4>SslLabel.setValidity</h4>
-<b>setValidity</b>(<i>valid</i>)
-<p>
-        Public method to set the validity indication.
-</p><dl>
-<dt><i>valid</i></dt>
-<dd>
-flag indicating the certificate validity (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.UrlBar.StackedUrlBar.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.UrlBar.StackedUrlBar</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.UrlBar.StackedUrlBar</h1>
-<p>
-Module implementing a widget to stack url bars.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#StackedUrlBar">StackedUrlBar</a></td>
-<td>Class implementing a widget to stack url bars.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="StackedUrlBar" ID="StackedUrlBar"></a>
-<h2>StackedUrlBar</h2>
-<p>
-    Class implementing a widget to stack url bars.
-</p>
-<h3>Derived from</h3>
-QStackedWidget
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#StackedUrlBar.__init__">StackedUrlBar</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#StackedUrlBar.currentUrlBar">currentUrlBar</a></td>
-<td>Public method to get a reference to the current url bar.</td>
-</tr><tr>
-<td><a href="#StackedUrlBar.moveBar">moveBar</a></td>
-<td>Public slot to move a url bar.</td>
-</tr><tr>
-<td><a href="#StackedUrlBar.urlBar">urlBar</a></td>
-<td>Public method to get a reference to the url bar for a given index.</td>
-</tr><tr>
-<td><a href="#StackedUrlBar.urlBars">urlBars</a></td>
-<td>Public method to get a list of references to all url bars.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="StackedUrlBar.__init__" ID="StackedUrlBar.__init__"></a>
-<h4>StackedUrlBar (Constructor)</h4>
-<b>StackedUrlBar</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="StackedUrlBar.currentUrlBar" ID="StackedUrlBar.currentUrlBar"></a>
-<h4>StackedUrlBar.currentUrlBar</h4>
-<b>currentUrlBar</b>(<i></i>)
-<p>
-        Public method to get a reference to the current url bar.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the current url bar (UrlBar)
-</dd>
-</dl><a NAME="StackedUrlBar.moveBar" ID="StackedUrlBar.moveBar"></a>
-<h4>StackedUrlBar.moveBar</h4>
-<b>moveBar</b>(<i>from_, to_</i>)
-<p>
-        Public slot to move a url bar.
-</p><dl>
-<dt><i>from_</i></dt>
-<dd>
-index of url bar to be moved (integer)
-</dd><dt><i>to_</i></dt>
-<dd>
-into to move the url bar to (integer)
-</dd>
-</dl><a NAME="StackedUrlBar.urlBar" ID="StackedUrlBar.urlBar"></a>
-<h4>StackedUrlBar.urlBar</h4>
-<b>urlBar</b>(<i>index</i>)
-<p>
-        Public method to get a reference to the url bar for a given index.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the url bar (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the url bar for the given index (UrlBar)
-</dd>
-</dl><a NAME="StackedUrlBar.urlBars" ID="StackedUrlBar.urlBars"></a>
-<h4>StackedUrlBar.urlBars</h4>
-<b>urlBars</b>(<i></i>)
-<p>
-        Public method to get a list of references to all url bars.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of references to url bars (list of UrlBar)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.UrlBar.UrlBar.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.UrlBar.UrlBar</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.UrlBar.UrlBar</h1>
-<p>
-Module implementing the URL bar widget.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#UrlBar">UrlBar</a></td>
-<td>Class implementing a line edit for entering URLs.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="UrlBar" ID="UrlBar"></a>
-<h2>UrlBar</h2>
-<p>
-    Class implementing a line edit for entering URLs.
-</p>
-<h3>Derived from</h3>
-E5LineEdit
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#UrlBar.__init__">UrlBar</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#UrlBar.__bookmarkChanged">__bookmarkChanged</a></td>
-<td>Private slot to handle bookmark or speed dial changes.</td>
-</tr><tr>
-<td><a href="#UrlBar.__browserUrlChanged">__browserUrlChanged</a></td>
-<td>Private slot to handle a URL change of the associated browser.</td>
-</tr><tr>
-<td><a href="#UrlBar.__checkBookmark">__checkBookmark</a></td>
-<td>Private slot to check the current URL for the bookmarked state.</td>
-</tr><tr>
-<td><a href="#UrlBar.__loadFinished">__loadFinished</a></td>
-<td>Private slot to set some data after the page was loaded.</td>
-</tr><tr>
-<td><a href="#UrlBar.__loadStarted">__loadStarted</a></td>
-<td>Private slot to perform actions before the page is loaded.</td>
-</tr><tr>
-<td><a href="#UrlBar.__privacyClicked">__privacyClicked</a></td>
-<td>Private slot to handle the click of the private mode button.</td>
-</tr><tr>
-<td><a href="#UrlBar.__rssClicked">__rssClicked</a></td>
-<td>Private slot to handle clicking the RSS icon.</td>
-</tr><tr>
-<td><a href="#UrlBar.__showBookmarkInfo">__showBookmarkInfo</a></td>
-<td>Private slot to show a dialog with some bookmark info.</td>
-</tr><tr>
-<td><a href="#UrlBar.__textChanged">__textChanged</a></td>
-<td>Private slot to handle changes of the text.</td>
-</tr><tr>
-<td><a href="#UrlBar.browser">browser</a></td>
-<td>Public method to get the associated browser.</td>
-</tr><tr>
-<td><a href="#UrlBar.dragEnterEvent">dragEnterEvent</a></td>
-<td>Protected method to handle drag enter events.</td>
-</tr><tr>
-<td><a href="#UrlBar.dropEvent">dropEvent</a></td>
-<td>Protected method to handle drop events.</td>
-</tr><tr>
-<td><a href="#UrlBar.focusOutEvent">focusOutEvent</a></td>
-<td>Protected method to handle focus out event.</td>
-</tr><tr>
-<td><a href="#UrlBar.keyPressEvent">keyPressEvent</a></td>
-<td>Protected method to handle key presses.</td>
-</tr><tr>
-<td><a href="#UrlBar.mouseDoubleClickEvent">mouseDoubleClickEvent</a></td>
-<td>Protected method to handle mouse double click events.</td>
-</tr><tr>
-<td><a href="#UrlBar.mousePressEvent">mousePressEvent</a></td>
-<td>Protected method called by a mouse press event.</td>
-</tr><tr>
-<td><a href="#UrlBar.paintEvent">paintEvent</a></td>
-<td>Protected method handling a paint event.</td>
-</tr><tr>
-<td><a href="#UrlBar.preferencesChanged">preferencesChanged</a></td>
-<td>Public slot to handle a change of preferences.</td>
-</tr><tr>
-<td><a href="#UrlBar.setBrowser">setBrowser</a></td>
-<td>Public method to set the browser connection.</td>
-</tr><tr>
-<td><a href="#UrlBar.setPrivateMode">setPrivateMode</a></td>
-<td>Public method to set the private mode.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="UrlBar.__init__" ID="UrlBar.__init__"></a>
-<h4>UrlBar (Constructor)</h4>
-<b>UrlBar</b>(<i>mainWindow, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>mainWindow</i></dt>
-<dd>
-reference to the main window (HelpWindow)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (HelpBrowser)
-</dd>
-</dl><a NAME="UrlBar.__bookmarkChanged" ID="UrlBar.__bookmarkChanged"></a>
-<h4>UrlBar.__bookmarkChanged</h4>
-<b>__bookmarkChanged</b>(<i></i>)
-<p>
-        Private slot to handle bookmark or speed dial changes.
-</p><a NAME="UrlBar.__browserUrlChanged" ID="UrlBar.__browserUrlChanged"></a>
-<h4>UrlBar.__browserUrlChanged</h4>
-<b>__browserUrlChanged</b>(<i>url</i>)
-<p>
-        Private slot to handle a URL change of the associated browser.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-new URL of the browser (QUrl)
-</dd>
-</dl><a NAME="UrlBar.__checkBookmark" ID="UrlBar.__checkBookmark"></a>
-<h4>UrlBar.__checkBookmark</h4>
-<b>__checkBookmark</b>(<i></i>)
-<p>
-        Private slot to check the current URL for the bookmarked state.
-</p><a NAME="UrlBar.__loadFinished" ID="UrlBar.__loadFinished"></a>
-<h4>UrlBar.__loadFinished</h4>
-<b>__loadFinished</b>(<i>ok</i>)
-<p>
-        Private slot to set some data after the page was loaded.
-</p><dl>
-<dt><i>ok</i></dt>
-<dd>
-flag indicating a successful load (boolean)
-</dd>
-</dl><a NAME="UrlBar.__loadStarted" ID="UrlBar.__loadStarted"></a>
-<h4>UrlBar.__loadStarted</h4>
-<b>__loadStarted</b>(<i></i>)
-<p>
-        Private slot to perform actions before the page is loaded.
-</p><a NAME="UrlBar.__privacyClicked" ID="UrlBar.__privacyClicked"></a>
-<h4>UrlBar.__privacyClicked</h4>
-<b>__privacyClicked</b>(<i></i>)
-<p>
-        Private slot to handle the click of the private mode button.
-</p><a NAME="UrlBar.__rssClicked" ID="UrlBar.__rssClicked"></a>
-<h4>UrlBar.__rssClicked</h4>
-<b>__rssClicked</b>(<i></i>)
-<p>
-        Private slot to handle clicking the RSS icon.
-</p><a NAME="UrlBar.__showBookmarkInfo" ID="UrlBar.__showBookmarkInfo"></a>
-<h4>UrlBar.__showBookmarkInfo</h4>
-<b>__showBookmarkInfo</b>(<i></i>)
-<p>
-        Private slot to show a dialog with some bookmark info.
-</p><a NAME="UrlBar.__textChanged" ID="UrlBar.__textChanged"></a>
-<h4>UrlBar.__textChanged</h4>
-<b>__textChanged</b>(<i>txt</i>)
-<p>
-        Private slot to handle changes of the text.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-current text (string)
-</dd>
-</dl><a NAME="UrlBar.browser" ID="UrlBar.browser"></a>
-<h4>UrlBar.browser</h4>
-<b>browser</b>(<i></i>)
-<p>
-        Public method to get the associated browser.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the associated browser (HelpBrowser)
-</dd>
-</dl><a NAME="UrlBar.dragEnterEvent" ID="UrlBar.dragEnterEvent"></a>
-<h4>UrlBar.dragEnterEvent</h4>
-<b>dragEnterEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle drag enter events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the drag enter event (QDragEnterEvent)
-</dd>
-</dl><a NAME="UrlBar.dropEvent" ID="UrlBar.dropEvent"></a>
-<h4>UrlBar.dropEvent</h4>
-<b>dropEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle drop events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the drop event (QDropEvent)
-</dd>
-</dl><a NAME="UrlBar.focusOutEvent" ID="UrlBar.focusOutEvent"></a>
-<h4>UrlBar.focusOutEvent</h4>
-<b>focusOutEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle focus out event.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the focus event (QFocusEvent)
-</dd>
-</dl><a NAME="UrlBar.keyPressEvent" ID="UrlBar.keyPressEvent"></a>
-<h4>UrlBar.keyPressEvent</h4>
-<b>keyPressEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle key presses.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the key press event (QKeyEvent)
-</dd>
-</dl><a NAME="UrlBar.mouseDoubleClickEvent" ID="UrlBar.mouseDoubleClickEvent"></a>
-<h4>UrlBar.mouseDoubleClickEvent</h4>
-<b>mouseDoubleClickEvent</b>(<i>evt</i>)
-<p>
-        Protected method to handle mouse double click events.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the mouse event (QMouseEvent)
-</dd>
-</dl><a NAME="UrlBar.mousePressEvent" ID="UrlBar.mousePressEvent"></a>
-<h4>UrlBar.mousePressEvent</h4>
-<b>mousePressEvent</b>(<i>evt</i>)
-<p>
-        Protected method called by a mouse press event.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the mouse event (QMouseEvent)
-</dd>
-</dl><a NAME="UrlBar.paintEvent" ID="UrlBar.paintEvent"></a>
-<h4>UrlBar.paintEvent</h4>
-<b>paintEvent</b>(<i>evt</i>)
-<p>
-        Protected method handling a paint event.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the paint event (QPaintEvent)
-</dd>
-</dl><a NAME="UrlBar.preferencesChanged" ID="UrlBar.preferencesChanged"></a>
-<h4>UrlBar.preferencesChanged</h4>
-<b>preferencesChanged</b>(<i></i>)
-<p>
-        Public slot to handle a change of preferences.
-</p><a NAME="UrlBar.setBrowser" ID="UrlBar.setBrowser"></a>
-<h4>UrlBar.setBrowser</h4>
-<b>setBrowser</b>(<i>browser</i>)
-<p>
-        Public method to set the browser connection.
-</p><dl>
-<dt><i>browser</i></dt>
-<dd>
-reference to the browser widegt (HelpBrowser)
-</dd>
-</dl><a NAME="UrlBar.setPrivateMode" ID="UrlBar.setPrivateMode"></a>
-<h4>UrlBar.setPrivateMode</h4>
-<b>setPrivateMode</b>(<i>on</i>)
-<p>
-        Public method to set the private mode.
-</p><dl>
-<dt><i>on</i></dt>
-<dd>
-flag indicating the privacy state (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.UserAgent.UserAgentManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,260 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.UserAgent.UserAgentManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.UserAgent.UserAgentManager</h1>
-<p>
-Module implementing a user agent manager.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#UserAgentManager">UserAgentManager</a></td>
-<td>Class implementing a user agent manager.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="UserAgentManager" ID="UserAgentManager"></a>
-<h2>UserAgentManager</h2>
-<p>
-    Class implementing a user agent manager.
-</p><h3>Signals</h3>
-<dl>
-<dt>changed()</dt>
-<dd>
-emitted to indicate a change
-</dd><dt>userAgentSettingsSaved()</dt>
-<dd>
-emitted after the user agent settings
-        were saved
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#UserAgentManager.__init__">UserAgentManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#UserAgentManager.__load">__load</a></td>
-<td>Private method to load the saved user agent settings.</td>
-</tr><tr>
-<td><a href="#UserAgentManager.__loadNonXml">__loadNonXml</a></td>
-<td>Private method to load non-XML user agent files.</td>
-</tr><tr>
-<td><a href="#UserAgentManager.allHostNames">allHostNames</a></td>
-<td>Public method to get a list of all host names we a user agent setting for.</td>
-</tr><tr>
-<td><a href="#UserAgentManager.close">close</a></td>
-<td>Public method to close the user agents manager.</td>
-</tr><tr>
-<td><a href="#UserAgentManager.getFileName">getFileName</a></td>
-<td>Public method to get the file name of the user agents file.</td>
-</tr><tr>
-<td><a href="#UserAgentManager.hostsCount">hostsCount</a></td>
-<td>Public method to get the number of available user agent settings.</td>
-</tr><tr>
-<td><a href="#UserAgentManager.reload">reload</a></td>
-<td>Public method to reload the user agent settings.</td>
-</tr><tr>
-<td><a href="#UserAgentManager.removeUserAgent">removeUserAgent</a></td>
-<td>Public method to remove a user agent entry.</td>
-</tr><tr>
-<td><a href="#UserAgentManager.save">save</a></td>
-<td>Public slot to save the user agent entries to disk.</td>
-</tr><tr>
-<td><a href="#UserAgentManager.setUserAgent">setUserAgent</a></td>
-<td>Public method to set the user agent string for a host.</td>
-</tr><tr>
-<td><a href="#UserAgentManager.setUserAgentForUrl">setUserAgentForUrl</a></td>
-<td>Public method to set the user agent string for an URL.</td>
-</tr><tr>
-<td><a href="#UserAgentManager.userAgent">userAgent</a></td>
-<td>Public method to get the user agent setting for a host.</td>
-</tr><tr>
-<td><a href="#UserAgentManager.userAgentForUrl">userAgentForUrl</a></td>
-<td>Public method to determine the user agent for the given URL.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="UserAgentManager.__init__" ID="UserAgentManager.__init__"></a>
-<h4>UserAgentManager (Constructor)</h4>
-<b>UserAgentManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="UserAgentManager.__load" ID="UserAgentManager.__load"></a>
-<h4>UserAgentManager.__load</h4>
-<b>__load</b>(<i></i>)
-<p>
-        Private method to load the saved user agent settings.
-</p><a NAME="UserAgentManager.__loadNonXml" ID="UserAgentManager.__loadNonXml"></a>
-<h4>UserAgentManager.__loadNonXml</h4>
-<b>__loadNonXml</b>(<i>agentFile</i>)
-<p>
-        Private method to load non-XML user agent files.
-</p><p>
-        This method is to convert from the old, non-XML format to the new
-        XML based format.
-</p><dl>
-<dt><i>agentFile</i></dt>
-<dd>
-name of the non-XML user agent file (string)
-</dd>
-</dl><a NAME="UserAgentManager.allHostNames" ID="UserAgentManager.allHostNames"></a>
-<h4>UserAgentManager.allHostNames</h4>
-<b>allHostNames</b>(<i></i>)
-<p>
-        Public method to get a list of all host names we a user agent setting
-        for.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-sorted list of all host names (list of strings)
-</dd>
-</dl><a NAME="UserAgentManager.close" ID="UserAgentManager.close"></a>
-<h4>UserAgentManager.close</h4>
-<b>close</b>(<i></i>)
-<p>
-        Public method to close the user agents manager.
-</p><a NAME="UserAgentManager.getFileName" ID="UserAgentManager.getFileName"></a>
-<h4>UserAgentManager.getFileName</h4>
-<b>getFileName</b>(<i></i>)
-<p>
-        Public method to get the file name of the user agents file.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-name of the user agents file (string)
-</dd>
-</dl><a NAME="UserAgentManager.hostsCount" ID="UserAgentManager.hostsCount"></a>
-<h4>UserAgentManager.hostsCount</h4>
-<b>hostsCount</b>(<i></i>)
-<p>
-        Public method to get the number of available user agent settings.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-number of user agent settings (integer)
-</dd>
-</dl><a NAME="UserAgentManager.reload" ID="UserAgentManager.reload"></a>
-<h4>UserAgentManager.reload</h4>
-<b>reload</b>(<i></i>)
-<p>
-        Public method to reload the user agent settings.
-</p><a NAME="UserAgentManager.removeUserAgent" ID="UserAgentManager.removeUserAgent"></a>
-<h4>UserAgentManager.removeUserAgent</h4>
-<b>removeUserAgent</b>(<i>host</i>)
-<p>
-        Public method to remove a user agent entry.
-</p><dl>
-<dt><i>host</i></dt>
-<dd>
-host name (string)
-</dd>
-</dl><a NAME="UserAgentManager.save" ID="UserAgentManager.save"></a>
-<h4>UserAgentManager.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public slot to save the user agent entries to disk.
-</p><a NAME="UserAgentManager.setUserAgent" ID="UserAgentManager.setUserAgent"></a>
-<h4>UserAgentManager.setUserAgent</h4>
-<b>setUserAgent</b>(<i>host, agent</i>)
-<p>
-        Public method to set the user agent string for a host.
-</p><dl>
-<dt><i>host</i></dt>
-<dd>
-host name (string)
-</dd><dt><i>agent</i></dt>
-<dd>
-user agent string (string)
-</dd>
-</dl><a NAME="UserAgentManager.setUserAgentForUrl" ID="UserAgentManager.setUserAgentForUrl"></a>
-<h4>UserAgentManager.setUserAgentForUrl</h4>
-<b>setUserAgentForUrl</b>(<i>url, agent</i>)
-<p>
-        Public method to set the user agent string for an URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to register user agent setting for (QUrl)
-</dd><dt><i>agent</i></dt>
-<dd>
-new current user agent string (string)
-</dd>
-</dl><a NAME="UserAgentManager.userAgent" ID="UserAgentManager.userAgent"></a>
-<h4>UserAgentManager.userAgent</h4>
-<b>userAgent</b>(<i>host</i>)
-<p>
-        Public method to get the user agent setting for a host.
-</p><dl>
-<dt><i>host</i></dt>
-<dd>
-host name (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-user agent string (string)
-</dd>
-</dl><a NAME="UserAgentManager.userAgentForUrl" ID="UserAgentManager.userAgentForUrl"></a>
-<h4>UserAgentManager.userAgentForUrl</h4>
-<b>userAgentForUrl</b>(<i>url</i>)
-<p>
-        Public method to determine the user agent for the given URL.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to determine user agent for (QUrl)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-user agent string (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.UserAgent.UserAgentMenu.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.UserAgent.UserAgentMenu</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.UserAgent.UserAgentMenu</h1>
-<p>
-Module implementing a menu to select the user agent string.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#UserAgentMenu">UserAgentMenu</a></td>
-<td>Class implementing a menu to select the user agent string.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="UserAgentMenu" ID="UserAgentMenu"></a>
-<h2>UserAgentMenu</h2>
-<p>
-    Class implementing a menu to select the user agent string.
-</p>
-<h3>Derived from</h3>
-QMenu
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#UserAgentMenu.__init__">UserAgentMenu</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#UserAgentMenu.__addDefaultActions">__addDefaultActions</a></td>
-<td>Private slot to add the default user agent entries.</td>
-</tr><tr>
-<td><a href="#UserAgentMenu.__changeUserAgent">__changeUserAgent</a></td>
-<td>Private slot to change the user agent.</td>
-</tr><tr>
-<td><a href="#UserAgentMenu.__populateMenu">__populateMenu</a></td>
-<td>Private slot to populate the menu.</td>
-</tr><tr>
-<td><a href="#UserAgentMenu.__switchToDefaultUserAgent">__switchToDefaultUserAgent</a></td>
-<td>Private slot to set the default user agent.</td>
-</tr><tr>
-<td><a href="#UserAgentMenu.__switchToOtherUserAgent">__switchToOtherUserAgent</a></td>
-<td>Private slot to set a custom user agent string.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="UserAgentMenu.__init__" ID="UserAgentMenu.__init__"></a>
-<h4>UserAgentMenu (Constructor)</h4>
-<b>UserAgentMenu</b>(<i>title, url=None, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>title</i></dt>
-<dd>
-title of the menu (string)
-</dd><dt><i>url</i></dt>
-<dd>
-URL to set user agent for (QUrl)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="UserAgentMenu.__addDefaultActions" ID="UserAgentMenu.__addDefaultActions"></a>
-<h4>UserAgentMenu.__addDefaultActions</h4>
-<b>__addDefaultActions</b>(<i></i>)
-<p>
-        Private slot to add the default user agent entries.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating that a user agent entry is checked (boolean)
-</dd>
-</dl><a NAME="UserAgentMenu.__changeUserAgent" ID="UserAgentMenu.__changeUserAgent"></a>
-<h4>UserAgentMenu.__changeUserAgent</h4>
-<b>__changeUserAgent</b>(<i>act</i>)
-<p>
-        Private slot to change the user agent.
-</p><dl>
-<dt><i>act</i> (QAction)</dt>
-<dd>
-reference to the action that triggered
-</dd>
-</dl><a NAME="UserAgentMenu.__populateMenu" ID="UserAgentMenu.__populateMenu"></a>
-<h4>UserAgentMenu.__populateMenu</h4>
-<b>__populateMenu</b>(<i></i>)
-<p>
-        Private slot to populate the menu.
-</p><a NAME="UserAgentMenu.__switchToDefaultUserAgent" ID="UserAgentMenu.__switchToDefaultUserAgent"></a>
-<h4>UserAgentMenu.__switchToDefaultUserAgent</h4>
-<b>__switchToDefaultUserAgent</b>(<i></i>)
-<p>
-        Private slot to set the default user agent.
-</p><a NAME="UserAgentMenu.__switchToOtherUserAgent" ID="UserAgentMenu.__switchToOtherUserAgent"></a>
-<h4>UserAgentMenu.__switchToOtherUserAgent</h4>
-<b>__switchToOtherUserAgent</b>(<i></i>)
-<p>
-        Private slot to set a custom user agent string.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.UserAgent.UserAgentModel.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.UserAgent.UserAgentModel</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.UserAgent.UserAgentModel</h1>
-<p>
-Module implementing a model for user agent management.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#UserAgentModel">UserAgentModel</a></td>
-<td>Class implementing a model for user agent management.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="UserAgentModel" ID="UserAgentModel"></a>
-<h2>UserAgentModel</h2>
-<p>
-    Class implementing a model for user agent management.
-</p>
-<h3>Derived from</h3>
-QAbstractTableModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#UserAgentModel.__init__">UserAgentModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#UserAgentModel.__userAgentsChanged">__userAgentsChanged</a></td>
-<td>Private slot handling a change of the registered user agent strings.</td>
-</tr><tr>
-<td><a href="#UserAgentModel.columnCount">columnCount</a></td>
-<td>Public method to get the number of columns of the model.</td>
-</tr><tr>
-<td><a href="#UserAgentModel.data">data</a></td>
-<td>Public method to get data from the model.</td>
-</tr><tr>
-<td><a href="#UserAgentModel.headerData">headerData</a></td>
-<td>Public method to get the header data.</td>
-</tr><tr>
-<td><a href="#UserAgentModel.removeRows">removeRows</a></td>
-<td>Public method to remove entries from the model.</td>
-</tr><tr>
-<td><a href="#UserAgentModel.rowCount">rowCount</a></td>
-<td>Public method to get the number of rows of the model.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="UserAgentModel.__init__" ID="UserAgentModel.__init__"></a>
-<h4>UserAgentModel (Constructor)</h4>
-<b>UserAgentModel</b>(<i>manager, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>manager</i></dt>
-<dd>
-reference to the user agent manager (UserAgentManager)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="UserAgentModel.__userAgentsChanged" ID="UserAgentModel.__userAgentsChanged"></a>
-<h4>UserAgentModel.__userAgentsChanged</h4>
-<b>__userAgentsChanged</b>(<i></i>)
-<p>
-        Private slot handling a change of the registered user agent strings.
-</p><a NAME="UserAgentModel.columnCount" ID="UserAgentModel.columnCount"></a>
-<h4>UserAgentModel.columnCount</h4>
-<b>columnCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of columns of the model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex) (Unused)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl><a NAME="UserAgentModel.data" ID="UserAgentModel.data"></a>
-<h4>UserAgentModel.data</h4>
-<b>data</b>(<i>index, role</i>)
-<p>
-        Public method to get data from the model.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index to get data for (QModelIndex)
-</dd><dt><i>role</i></dt>
-<dd>
-role of the data to retrieve (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested data
-</dd>
-</dl><a NAME="UserAgentModel.headerData" ID="UserAgentModel.headerData"></a>
-<h4>UserAgentModel.headerData</h4>
-<b>headerData</b>(<i>section, orientation, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get the header data.
-</p><dl>
-<dt><i>section</i></dt>
-<dd>
-section number (integer)
-</dd><dt><i>orientation</i></dt>
-<dd>
-header orientation (Qt.Orientation)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-header data
-</dd>
-</dl><a NAME="UserAgentModel.removeRows" ID="UserAgentModel.removeRows"></a>
-<h4>UserAgentModel.removeRows</h4>
-<b>removeRows</b>(<i>row, count, parent=None</i>)
-<p>
-        Public method to remove entries from the model.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-start row (integer)
-</dd><dt><i>count</i></dt>
-<dd>
-number of rows to remove (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="UserAgentModel.rowCount" ID="UserAgentModel.rowCount"></a>
-<h4>UserAgentModel.rowCount</h4>
-<b>rowCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of rows of the model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of rows (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.UserAgent.UserAgentReader.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.UserAgent.UserAgentReader</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.UserAgent.UserAgentReader</h1>
-<p>
-Module implementing a class to read user agent data files.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#UserAgentReader">UserAgentReader</a></td>
-<td>Class implementing a reader object for user agent data files.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="UserAgentReader" ID="UserAgentReader"></a>
-<h2>UserAgentReader</h2>
-<p>
-    Class implementing a reader object for user agent data files.
-</p>
-<h3>Derived from</h3>
-QXmlStreamReader
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#UserAgentReader.__init__">UserAgentReader</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#UserAgentReader.__readUserAgents">__readUserAgents</a></td>
-<td>Private method to read the user agents data.</td>
-</tr><tr>
-<td><a href="#UserAgentReader.__skipUnknownElement">__skipUnknownElement</a></td>
-<td>Private method to skip over all unknown elements.</td>
-</tr><tr>
-<td><a href="#UserAgentReader.read">read</a></td>
-<td>Public method to read a user agent file.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="UserAgentReader.__init__" ID="UserAgentReader.__init__"></a>
-<h4>UserAgentReader (Constructor)</h4>
-<b>UserAgentReader</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="UserAgentReader.__readUserAgents" ID="UserAgentReader.__readUserAgents"></a>
-<h4>UserAgentReader.__readUserAgents</h4>
-<b>__readUserAgents</b>(<i></i>)
-<p>
-        Private method to read the user agents data.
-</p><a NAME="UserAgentReader.__skipUnknownElement" ID="UserAgentReader.__skipUnknownElement"></a>
-<h4>UserAgentReader.__skipUnknownElement</h4>
-<b>__skipUnknownElement</b>(<i></i>)
-<p>
-        Private method to skip over all unknown elements.
-</p><a NAME="UserAgentReader.read" ID="UserAgentReader.read"></a>
-<h4>UserAgentReader.read</h4>
-<b>read</b>(<i>fileNameOrDevice</i>)
-<p>
-        Public method to read a user agent file.
-</p><dl>
-<dt><i>fileNameOrDevice</i></dt>
-<dd>
-name of the file to read (string)
-            or reference to the device to read (QIODevice)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-dictionary with user agent data (host as key, agent string as
-            value)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.UserAgent.UserAgentWriter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.UserAgent.UserAgentWriter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.UserAgent.UserAgentWriter</h1>
-<p>
-Module implementing a class to write user agent data files.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#UserAgentWriter">UserAgentWriter</a></td>
-<td>Class implementing a writer object to generate user agent data files.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="UserAgentWriter" ID="UserAgentWriter"></a>
-<h2>UserAgentWriter</h2>
-<p>
-    Class implementing a writer object to generate user agent data files.
-</p>
-<h3>Derived from</h3>
-QXmlStreamWriter
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#UserAgentWriter.__init__">UserAgentWriter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#UserAgentWriter.__write">__write</a></td>
-<td>Private method to write a user agent file.</td>
-</tr><tr>
-<td><a href="#UserAgentWriter.write">write</a></td>
-<td>Public method to write a user agent data file.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="UserAgentWriter.__init__" ID="UserAgentWriter.__init__"></a>
-<h4>UserAgentWriter (Constructor)</h4>
-<b>UserAgentWriter</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="UserAgentWriter.__write" ID="UserAgentWriter.__write"></a>
-<h4>UserAgentWriter.__write</h4>
-<b>__write</b>(<i>agents</i>)
-<p>
-        Private method to write a user agent file.
-</p><dl>
-<dt><i>agents</i></dt>
-<dd>
-dictionary with user agent data (host as key, agent
-            string as value)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="UserAgentWriter.write" ID="UserAgentWriter.write"></a>
-<h4>UserAgentWriter.write</h4>
-<b>write</b>(<i>fileNameOrDevice, agents</i>)
-<p>
-        Public method to write a user agent data file.
-</p><dl>
-<dt><i>fileNameOrDevice</i></dt>
-<dd>
-name of the file to write (string)
-            or device to write to (QIODevice)
-</dd><dt><i>agents</i></dt>
-<dd>
-dictionary with user agent data (host as key, agent
-            string as value)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.UserAgent.UserAgentsDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.UserAgent.UserAgentsDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.UserAgent.UserAgentsDialog</h1>
-<p>
-Module implementing a dialog to show all saved user agent settings.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#UserAgentsDialog">UserAgentsDialog</a></td>
-<td>Class implementing a dialog to show all saved user agent settings.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="UserAgentsDialog" ID="UserAgentsDialog"></a>
-<h2>UserAgentsDialog</h2>
-<p>
-    Class implementing a dialog to show all saved user agent settings.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_UserAgentsDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#UserAgentsDialog.__init__">UserAgentsDialog</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="UserAgentsDialog.__init__" ID="UserAgentsDialog.__init__"></a>
-<h4>UserAgentsDialog (Constructor)</h4>
-<b>UserAgentsDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.VirusTotal.VirusTotalApi.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,287 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.VirusTotal.VirusTotalApi</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.VirusTotal.VirusTotalApi</h1>
-<p>
-Module implementing the <a href="http://www.virustotal.com">VirusTotal</a>
-API class.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#VirusTotalAPI">VirusTotalAPI</a></td>
-<td>Class implementing the <a href="http://www.virustotal.com">VirusTotal</a> API.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="VirusTotalAPI" ID="VirusTotalAPI"></a>
-<h2>VirusTotalAPI</h2>
-<p>
-    Class implementing the <a href="http://www.virustotal.com">VirusTotal</a>
-    API.
-</p><h3>Signals</h3>
-<dl>
-<dt>checkServiceKeyFinished(bool, str)</dt>
-<dd>
-emitted after the service key
-        check has been performed. It gives a flag indicating validity
-        (boolean) and an error message in case of a network error (string).
-</dd><dt>fileScanReport(str)</dt>
-<dd>
-emitted with the URL of the file scan report
-        page
-</dd><dt>submitUrlError(str)</dt>
-<dd>
-emitted with the error string, if the URL scan
-        submission returned an error.
-</dd><dt>urlScanReport(str)</dt>
-<dd>
-emitted with the URL of the URL scan report page
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>GetDomainReportPattern</td></tr><tr><td>GetFileReportPattern</td></tr><tr><td>GetIpAddressReportPattern</td></tr><tr><td>GetUrlReportPattern</td></tr><tr><td>ScanUrlPattern</td></tr><tr><td>ServiceCode_InvalidKey</td></tr><tr><td>ServiceCode_InvalidPrivilege</td></tr><tr><td>ServiceCode_RateLimitExceeded</td></tr><tr><td>ServiceResult_ItemNotPresent</td></tr><tr><td>ServiceResult_ItemPresent</td></tr><tr><td>ServiceResult_ItemQueued</td></tr><tr><td>TestServiceKeyScanID</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#VirusTotalAPI.__init__">VirusTotalAPI</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.__checkServiceKeyValidityFinished">__checkServiceKeyValidityFinished</a></td>
-<td>Private slot to determine the result of the service key validity check.</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.__getDomainReportFinished">__getDomainReportFinished</a></td>
-<td>Private slot to process the IP address report data.</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.__getFileScanReportUrl">__getFileScanReportUrl</a></td>
-<td>Private method to get the report URL for a file scan.</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.__getFileScanReportUrlFinished">__getFileScanReportUrlFinished</a></td>
-<td>Private slot to determine the result of the file scan report URL request.</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.__getIpAddressReportFinished">__getIpAddressReportFinished</a></td>
-<td>Private slot to process the IP address report data.</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.__getUrlScanReportUrl">__getUrlScanReportUrl</a></td>
-<td>Private method to get the report URL for a URL scan.</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.__getUrlScanReportUrlFinished">__getUrlScanReportUrlFinished</a></td>
-<td>Private slot to determine the result of the URL scan report URL request.</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.__loadSettings">__loadSettings</a></td>
-<td>Private method to load the settings.</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.__submitUrlFinished">__submitUrlFinished</a></td>
-<td>Private slot to determine the result of the URL scan submission.</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.checkServiceKeyValidity">checkServiceKeyValidity</a></td>
-<td>Public method to check the validity of the given service key.</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.close">close</a></td>
-<td>Public slot to close the API.</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.getDomainReport">getDomainReport</a></td>
-<td>Public method to retrieve a report for a domain.</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.getIpAddressReport">getIpAddressReport</a></td>
-<td>Public method to retrieve a report for an IP address.</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.preferencesChanged">preferencesChanged</a></td>
-<td>Public slot to handle a change of preferences.</td>
-</tr><tr>
-<td><a href="#VirusTotalAPI.submitUrl">submitUrl</a></td>
-<td>Public method to submit an URL to be scanned.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="VirusTotalAPI.__init__" ID="VirusTotalAPI.__init__"></a>
-<h4>VirusTotalAPI (Constructor)</h4>
-<b>VirusTotalAPI</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="VirusTotalAPI.__checkServiceKeyValidityFinished" ID="VirusTotalAPI.__checkServiceKeyValidityFinished"></a>
-<h4>VirusTotalAPI.__checkServiceKeyValidityFinished</h4>
-<b>__checkServiceKeyValidityFinished</b>(<i>reply</i>)
-<p>
-        Private slot to determine the result of the service key validity check.
-</p><dl>
-<dt><i>reply</i> (QNetworkReply)</dt>
-<dd>
-reference to the network reply
-</dd>
-</dl><a NAME="VirusTotalAPI.__getDomainReportFinished" ID="VirusTotalAPI.__getDomainReportFinished"></a>
-<h4>VirusTotalAPI.__getDomainReportFinished</h4>
-<b>__getDomainReportFinished</b>(<i>reply</i>)
-<p>
-        Private slot to process the IP address report data.
-</p><dl>
-<dt><i>reply</i> (QNetworkReply)</dt>
-<dd>
-reference to the network reply
-</dd>
-</dl><a NAME="VirusTotalAPI.__getFileScanReportUrl" ID="VirusTotalAPI.__getFileScanReportUrl"></a>
-<h4>VirusTotalAPI.__getFileScanReportUrl</h4>
-<b>__getFileScanReportUrl</b>(<i>scanId</i>)
-<p>
-        Private method to get the report URL for a file scan.
-</p><dl>
-<dt><i>scanId</i></dt>
-<dd>
-ID of the scan to get the report URL for (string)
-</dd>
-</dl><a NAME="VirusTotalAPI.__getFileScanReportUrlFinished" ID="VirusTotalAPI.__getFileScanReportUrlFinished"></a>
-<h4>VirusTotalAPI.__getFileScanReportUrlFinished</h4>
-<b>__getFileScanReportUrlFinished</b>(<i>reply</i>)
-<p>
-        Private slot to determine the result of the file scan report URL
-        request.
-</p><dl>
-<dt><i>reply</i> (QNetworkReply)</dt>
-<dd>
-reference to the network reply
-</dd>
-</dl><a NAME="VirusTotalAPI.__getIpAddressReportFinished" ID="VirusTotalAPI.__getIpAddressReportFinished"></a>
-<h4>VirusTotalAPI.__getIpAddressReportFinished</h4>
-<b>__getIpAddressReportFinished</b>(<i>reply</i>)
-<p>
-        Private slot to process the IP address report data.
-</p><dl>
-<dt><i>reply</i> (QNetworkReply)</dt>
-<dd>
-reference to the network reply
-</dd>
-</dl><a NAME="VirusTotalAPI.__getUrlScanReportUrl" ID="VirusTotalAPI.__getUrlScanReportUrl"></a>
-<h4>VirusTotalAPI.__getUrlScanReportUrl</h4>
-<b>__getUrlScanReportUrl</b>(<i>scanId</i>)
-<p>
-        Private method to get the report URL for a URL scan.
-</p><dl>
-<dt><i>scanId</i></dt>
-<dd>
-ID of the scan to get the report URL for (string)
-</dd>
-</dl><a NAME="VirusTotalAPI.__getUrlScanReportUrlFinished" ID="VirusTotalAPI.__getUrlScanReportUrlFinished"></a>
-<h4>VirusTotalAPI.__getUrlScanReportUrlFinished</h4>
-<b>__getUrlScanReportUrlFinished</b>(<i>reply</i>)
-<p>
-        Private slot to determine the result of the URL scan report URL
-        request.
-</p><dl>
-<dt><i>reply</i> (QNetworkReply)</dt>
-<dd>
-reference to the network reply
-</dd>
-</dl><a NAME="VirusTotalAPI.__loadSettings" ID="VirusTotalAPI.__loadSettings"></a>
-<h4>VirusTotalAPI.__loadSettings</h4>
-<b>__loadSettings</b>(<i></i>)
-<p>
-        Private method to load the settings.
-</p><a NAME="VirusTotalAPI.__submitUrlFinished" ID="VirusTotalAPI.__submitUrlFinished"></a>
-<h4>VirusTotalAPI.__submitUrlFinished</h4>
-<b>__submitUrlFinished</b>(<i>reply</i>)
-<p>
-        Private slot to determine the result of the URL scan submission.
-</p><dl>
-<dt><i>reply</i> (QNetworkReply)</dt>
-<dd>
-reference to the network reply
-</dd>
-</dl><a NAME="VirusTotalAPI.checkServiceKeyValidity" ID="VirusTotalAPI.checkServiceKeyValidity"></a>
-<h4>VirusTotalAPI.checkServiceKeyValidity</h4>
-<b>checkServiceKeyValidity</b>(<i>key, protocol=""</i>)
-<p>
-        Public method to check the validity of the given service key.
-</p><dl>
-<dt><i>key</i></dt>
-<dd>
-service key (string)
-</dd><dt><i>protocol</i></dt>
-<dd>
-protocol used to access VirusTotal (string)
-</dd>
-</dl><a NAME="VirusTotalAPI.close" ID="VirusTotalAPI.close"></a>
-<h4>VirusTotalAPI.close</h4>
-<b>close</b>(<i></i>)
-<p>
-        Public slot to close the API.
-</p><a NAME="VirusTotalAPI.getDomainReport" ID="VirusTotalAPI.getDomainReport"></a>
-<h4>VirusTotalAPI.getDomainReport</h4>
-<b>getDomainReport</b>(<i>domain</i>)
-<p>
-        Public method to retrieve a report for a domain.
-</p><dl>
-<dt><i>domain</i> (str)</dt>
-<dd>
-domain name
-</dd>
-</dl><a NAME="VirusTotalAPI.getIpAddressReport" ID="VirusTotalAPI.getIpAddressReport"></a>
-<h4>VirusTotalAPI.getIpAddressReport</h4>
-<b>getIpAddressReport</b>(<i>ipAddress</i>)
-<p>
-        Public method to retrieve a report for an IP address.
-</p><dl>
-<dt><i>ipAddress</i> (str)</dt>
-<dd>
-valid IPv4 address in dotted quad notation
-</dd>
-</dl><a NAME="VirusTotalAPI.preferencesChanged" ID="VirusTotalAPI.preferencesChanged"></a>
-<h4>VirusTotalAPI.preferencesChanged</h4>
-<b>preferencesChanged</b>(<i></i>)
-<p>
-        Public slot to handle a change of preferences.
-</p><a NAME="VirusTotalAPI.submitUrl" ID="VirusTotalAPI.submitUrl"></a>
-<h4>VirusTotalAPI.submitUrl</h4>
-<b>submitUrl</b>(<i>url</i>)
-<p>
-        Public method to submit an URL to be scanned.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-url to be scanned (QUrl)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.VirusTotal.VirusTotalDomainReportDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.VirusTotal.VirusTotalDomainReportDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.VirusTotal.VirusTotalDomainReportDialog</h1>
-<p>
-Module implementing a dialog to show the VirusTotal domain report.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#VirusTotalDomainReportDialog">VirusTotalDomainReportDialog</a></td>
-<td>Class implementing a dialog to show the VirusTotal domain report.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="VirusTotalDomainReportDialog" ID="VirusTotalDomainReportDialog"></a>
-<h2>VirusTotalDomainReportDialog</h2>
-<p>
-    Class implementing a dialog to show the VirusTotal domain report.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_VirusTotalDomainReportDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#VirusTotalDomainReportDialog.__init__">VirusTotalDomainReportDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#VirusTotalDomainReportDialog.on_whoisButton_clicked">on_whoisButton_clicked</a></td>
-<td>Private slot to show the whois information.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="VirusTotalDomainReportDialog.__init__" ID="VirusTotalDomainReportDialog.__init__"></a>
-<h4>VirusTotalDomainReportDialog (Constructor)</h4>
-<b>VirusTotalDomainReportDialog</b>(<i>domain, resolutions, urls, subdomains, bdCategory, tmCategory, wtsCategory, whois, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>domain</i> (str)</dt>
-<dd>
-domain name
-</dd><dt><i>resolutions</i> (list of dict)</dt>
-<dd>
-list of resolved host names
-</dd><dt><i>urls</i> (list of dict)</dt>
-<dd>
-list of detected URLs
-</dd><dt><i>subdomains</i> (list of str)</dt>
-<dd>
-list of subdomains
-</dd><dt><i>bdCategory</i> (str)</dt>
-<dd>
-BitDefender categorization
-</dd><dt><i>tmCategory</i> (str)</dt>
-<dd>
-TrendMicro categorization
-</dd><dt><i>wtsCategory</i> (str)</dt>
-<dd>
-Websense ThreatSeeker categorization
-</dd><dt><i>whois</i> (str)</dt>
-<dd>
-whois information
-</dd><dt><i>parent</i> (QWidget)</dt>
-<dd>
-reference to the parent widget
-</dd>
-</dl><a NAME="VirusTotalDomainReportDialog.on_whoisButton_clicked" ID="VirusTotalDomainReportDialog.on_whoisButton_clicked"></a>
-<h4>VirusTotalDomainReportDialog.on_whoisButton_clicked</h4>
-<b>on_whoisButton_clicked</b>(<i></i>)
-<p>
-        Private slot to show the whois information.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.VirusTotal.VirusTotalIpReportDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.VirusTotal.VirusTotalIpReportDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.VirusTotal.VirusTotalIpReportDialog</h1>
-<p>
-Module implementing a dialog to show the VirusTotal IP address report.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#VirusTotalIpReportDialog">VirusTotalIpReportDialog</a></td>
-<td>Class implementing a dialog to show the VirusTotal IP address report.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="VirusTotalIpReportDialog" ID="VirusTotalIpReportDialog"></a>
-<h2>VirusTotalIpReportDialog</h2>
-<p>
-    Class implementing a dialog to show the VirusTotal IP address report.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_VirusTotalIpReportDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#VirusTotalIpReportDialog.__init__">VirusTotalIpReportDialog</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="VirusTotalIpReportDialog.__init__" ID="VirusTotalIpReportDialog.__init__"></a>
-<h4>VirusTotalIpReportDialog (Constructor)</h4>
-<b>VirusTotalIpReportDialog</b>(<i>ip, owner, resolutions, urls, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>ip</i> (str)</dt>
-<dd>
-IP address
-</dd><dt><i>owner</i> (str)</dt>
-<dd>
-owner of the IP address
-</dd><dt><i>resolutions</i> (list of dict)</dt>
-<dd>
-list of resolved host names
-</dd><dt><i>urls</i> (list of dict)</dt>
-<dd>
-list of detected URLs
-</dd><dt><i>parent</i> (QWidget)</dt>
-<dd>
-reference to the parent widget
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.VirusTotal.VirusTotalWhoisDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.VirusTotal.VirusTotalWhoisDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.VirusTotal.VirusTotalWhoisDialog</h1>
-<p>
-Module implementing a dialog to show the 'whois' information.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#VirusTotalWhoisDialog">VirusTotalWhoisDialog</a></td>
-<td>Class implementing a dialog to show the 'whois' information.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="VirusTotalWhoisDialog" ID="VirusTotalWhoisDialog"></a>
-<h2>VirusTotalWhoisDialog</h2>
-<p>
-    Class implementing a dialog to show the 'whois' information.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_VirusTotalWhoisDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#VirusTotalWhoisDialog.__init__">VirusTotalWhoisDialog</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="VirusTotalWhoisDialog.__init__" ID="VirusTotalWhoisDialog.__init__"></a>
-<h4>VirusTotalWhoisDialog (Constructor)</h4>
-<b>VirusTotalWhoisDialog</b>(<i>domain, whois, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>domain</i> (str)</dt>
-<dd>
-domain name
-</dd><dt><i>whois</i> (str)</dt>
-<dd>
-whois information
-</dd><dt><i>parent</i> (QWidget)</dt>
-<dd>
-reference to the parent widget
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,276 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash</h1>
-<p>
-Module implementing the Flash blocker.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#ClickToFlash">ClickToFlash</a></td>
-<td>Class implementing the Flash blocker.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="ClickToFlash" ID="ClickToFlash"></a>
-<h2>ClickToFlash</h2>
-<p>
-    Class implementing the Flash blocker.
-</p>
-<h3>Derived from</h3>
-QWidget, Ui_ClickToFlash
-<h3>Class Attributes</h3>
-<table>
-<tr><td>_acceptedArgNames</td></tr><tr><td>_acceptedArgValues</td></tr><tr><td>_acceptedUrl</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr>
-<td><a href="#ClickToFlash.isAlreadyAccepted">isAlreadyAccepted</a></td>
-<td>Class method to check, if the given parameter combination is being accepted.</td>
-</tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#ClickToFlash.__init__">ClickToFlash</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#ClickToFlash.__addToWhitelist">__addToWhitelist</a></td>
-<td>Private slot to add the host to the whitelist.</td>
-</tr><tr>
-<td><a href="#ClickToFlash.__checkElement">__checkElement</a></td>
-<td>Private slot to check an element against the saved arguments.</td>
-</tr><tr>
-<td><a href="#ClickToFlash.__checkUrlOnElement">__checkUrlOnElement</a></td>
-<td>Private slot to check the URL of an element.</td>
-</tr><tr>
-<td><a href="#ClickToFlash.__configure">__configure</a></td>
-<td>Private slot to configure the whitelist.</td>
-</tr><tr>
-<td><a href="#ClickToFlash.__elide">__elide</a></td>
-<td>Private method to elide some text.</td>
-</tr><tr>
-<td><a href="#ClickToFlash.__findElement">__findElement</a></td>
-<td>Private method to find the element belonging to this ClickToFlash instance.</td>
-</tr><tr>
-<td><a href="#ClickToFlash.__hideAdBlocked">__hideAdBlocked</a></td>
-<td>Private slot to hide the object.</td>
-</tr><tr>
-<td><a href="#ClickToFlash.__load">__load</a></td>
-<td>Private slot to load the flash content.</td>
-</tr><tr>
-<td><a href="#ClickToFlash.__removeFromWhitelist">__removeFromWhitelist</a></td>
-<td>Private slot to remove the host from the whitelist.</td>
-</tr><tr>
-<td><a href="#ClickToFlash.__showContextMenu">__showContextMenu</a></td>
-<td>Private slot to show the context menu.</td>
-</tr><tr>
-<td><a href="#ClickToFlash.__showInfo">__showInfo</a></td>
-<td>Private slot to show information about the blocked object.</td>
-</tr><tr>
-<td><a href="#ClickToFlash.on_loadFlashButton_clicked">on_loadFlashButton_clicked</a></td>
-<td>Private slot handling the flash activation.</td>
-</tr><tr>
-<td><a href="#ClickToFlash.swapping">swapping</a></td>
-<td>Public method to check, if the plug-in is swapping.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="ClickToFlash.isAlreadyAccepted" ID="ClickToFlash.isAlreadyAccepted"></a>
-<h4>ClickToFlash.isAlreadyAccepted (class method)</h4>
-<b>isAlreadyAccepted</b>(<i>url, argumentNames, argumentValues</i>)
-<p>
-        Class method to check, if the given parameter combination is being
-        accepted.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-URL to be checked for (QUrl)
-</dd><dt><i>argumentNames</i></dt>
-<dd>
-argument names to be checked for (list of strings)
-</dd><dt><i>argumentValues</i></dt>
-<dd>
-argument values to be checked for (list of
-            strings)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating that this was already accepted (boolean)
-</dd>
-</dl><a NAME="ClickToFlash.__init__" ID="ClickToFlash.__init__"></a>
-<h4>ClickToFlash (Constructor)</h4>
-<b>ClickToFlash</b>(<i>plugin, mimeType, url, argumentNames, argumentValues, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>plugin</i></dt>
-<dd>
-reference to the plug-in (ClickToFlashPlugin)
-</dd><dt><i>mimeType</i></dt>
-<dd>
-MIME type for the plug-in (string)
-</dd><dt><i>url</i></dt>
-<dd>
-requested URL (QUrl)
-</dd><dt><i>argumentNames</i></dt>
-<dd>
-list of argument names (list of strings)
-</dd><dt><i>argumentValues</i></dt>
-<dd>
-list of argument values (list of strings)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="ClickToFlash.__addToWhitelist" ID="ClickToFlash.__addToWhitelist"></a>
-<h4>ClickToFlash.__addToWhitelist</h4>
-<b>__addToWhitelist</b>(<i></i>)
-<p>
-        Private slot to add the host to the whitelist.
-</p><a NAME="ClickToFlash.__checkElement" ID="ClickToFlash.__checkElement"></a>
-<h4>ClickToFlash.__checkElement</h4>
-<b>__checkElement</b>(<i>element</i>)
-<p>
-        Private slot to check an element against the saved arguments.
-</p><dl>
-<dt><i>element</i></dt>
-<dd>
-reference to the element to check (QWebElement)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a positive result (boolean)
-</dd>
-</dl><a NAME="ClickToFlash.__checkUrlOnElement" ID="ClickToFlash.__checkUrlOnElement"></a>
-<h4>ClickToFlash.__checkUrlOnElement</h4>
-<b>__checkUrlOnElement</b>(<i>element, view</i>)
-<p>
-        Private slot to check the URL of an element.
-</p><dl>
-<dt><i>element</i></dt>
-<dd>
-reference to the element to check (QWebElement)
-</dd><dt><i>view</i></dt>
-<dd>
-reference to the view object (QWebView)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a positive result (boolean)
-</dd>
-</dl><a NAME="ClickToFlash.__configure" ID="ClickToFlash.__configure"></a>
-<h4>ClickToFlash.__configure</h4>
-<b>__configure</b>(<i></i>)
-<p>
-        Private slot to configure the whitelist.
-</p><a NAME="ClickToFlash.__elide" ID="ClickToFlash.__elide"></a>
-<h4>ClickToFlash.__elide</h4>
-<b>__elide</b>(<i>txt, mode=Qt.ElideMiddle, length=40</i>)
-<p>
-        Private method to elide some text.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-text to be elided (string)
-</dd><dt><i>mode=</i></dt>
-<dd>
-elide mode (Qt.TextElideMode)
-</dd><dt><i>length=</i></dt>
-<dd>
-amount of characters to be used (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-the elided text (string)
-</dd>
-</dl><a NAME="ClickToFlash.__findElement" ID="ClickToFlash.__findElement"></a>
-<h4>ClickToFlash.__findElement</h4>
-<b>__findElement</b>(<i></i>)
-<p>
-        Private method to find the element belonging to this ClickToFlash
-        instance.
-</p><a NAME="ClickToFlash.__hideAdBlocked" ID="ClickToFlash.__hideAdBlocked"></a>
-<h4>ClickToFlash.__hideAdBlocked</h4>
-<b>__hideAdBlocked</b>(<i></i>)
-<p>
-        Private slot to hide the object.
-</p><a NAME="ClickToFlash.__load" ID="ClickToFlash.__load"></a>
-<h4>ClickToFlash.__load</h4>
-<b>__load</b>(<i>allPlayers=False</i>)
-<p>
-        Private slot to load the flash content.
-</p><dl>
-<dt><i>allPlayers</i></dt>
-<dd>
-flag indicating to load all flash players (boolean)
-</dd>
-</dl><a NAME="ClickToFlash.__removeFromWhitelist" ID="ClickToFlash.__removeFromWhitelist"></a>
-<h4>ClickToFlash.__removeFromWhitelist</h4>
-<b>__removeFromWhitelist</b>(<i></i>)
-<p>
-        Private slot to remove the host from the whitelist.
-</p><a NAME="ClickToFlash.__showContextMenu" ID="ClickToFlash.__showContextMenu"></a>
-<h4>ClickToFlash.__showContextMenu</h4>
-<b>__showContextMenu</b>(<i></i>)
-<p>
-        Private slot to show the context menu.
-</p><a NAME="ClickToFlash.__showInfo" ID="ClickToFlash.__showInfo"></a>
-<h4>ClickToFlash.__showInfo</h4>
-<b>__showInfo</b>(<i></i>)
-<p>
-        Private slot to show information about the blocked object.
-</p><a NAME="ClickToFlash.on_loadFlashButton_clicked" ID="ClickToFlash.on_loadFlashButton_clicked"></a>
-<h4>ClickToFlash.on_loadFlashButton_clicked</h4>
-<b>on_loadFlashButton_clicked</b>(<i></i>)
-<p>
-        Private slot handling the flash activation.
-</p><a NAME="ClickToFlash.swapping" ID="ClickToFlash.swapping"></a>
-<h4>ClickToFlash.swapping</h4>
-<b>swapping</b>(<i></i>)
-<p>
-        Public method to check, if the plug-in is swapping.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the swapping status (boolean)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,228 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin</h1>
-<p>
-Module implementing the Flash blocker plug-in.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#ClickToFlashPlugin">ClickToFlashPlugin</a></td>
-<td>Class implementing the flash blocker plug-in.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="ClickToFlashPlugin" ID="ClickToFlashPlugin"></a>
-<h2>ClickToFlashPlugin</h2>
-<p>
-    Class implementing the flash blocker plug-in.
-</p>
-<h3>Derived from</h3>
-WebPluginInterface
-<h3>Class Attributes</h3>
-<table>
-<tr><td>ClickToFlashData</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr>
-<td><a href="#ClickToFlashPlugin.getIconName">getIconName</a></td>
-<td>Class method to get the icon name for the mime type.</td>
-</tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#ClickToFlashPlugin.__init__">ClickToFlashPlugin</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#ClickToFlashPlugin.__enabled">__enabled</a></td>
-<td>Private method to check, if the plug-in is enabled.</td>
-</tr><tr>
-<td><a href="#ClickToFlashPlugin.__load">__load</a></td>
-<td>Private method to load the configuration.</td>
-</tr><tr>
-<td><a href="#ClickToFlashPlugin.__save">__save</a></td>
-<td>Private method to save the configuration.</td>
-</tr><tr>
-<td><a href="#ClickToFlashPlugin.addToWhitelist">addToWhitelist</a></td>
-<td>Public method to add a host to the whitelist.</td>
-</tr><tr>
-<td><a href="#ClickToFlashPlugin.configure">configure</a></td>
-<td>Public method to configure the plug-in.</td>
-</tr><tr>
-<td><a href="#ClickToFlashPlugin.create">create</a></td>
-<td>Public method to create a plug-in instance for the given data.</td>
-</tr><tr>
-<td><a href="#ClickToFlashPlugin.isAnonymous">isAnonymous</a></td>
-<td>Public method to indicate an anonymous plug-in.</td>
-</tr><tr>
-<td><a href="#ClickToFlashPlugin.metaPlugin">metaPlugin</a></td>
-<td>Public method to create a meta plug-in object containing plug-in info.</td>
-</tr><tr>
-<td><a href="#ClickToFlashPlugin.onWhitelist">onWhitelist</a></td>
-<td>Public method to check, if a host is on the whitelist.</td>
-</tr><tr>
-<td><a href="#ClickToFlashPlugin.removeFromWhitelist">removeFromWhitelist</a></td>
-<td>Public method to remove a host from the whitelist.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="ClickToFlashPlugin.getIconName" ID="ClickToFlashPlugin.getIconName"></a>
-<h4>ClickToFlashPlugin.getIconName (class method)</h4>
-<b>getIconName</b>(<i>mimeType</i>)
-<p>
-        Class method to get the icon name for the mime type.
-</p><dl>
-<dt><i>mimeType</i></dt>
-<dd>
-mime type to get the icon for (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-name of the icon file (string)
-</dd>
-</dl><a NAME="ClickToFlashPlugin.__init__" ID="ClickToFlashPlugin.__init__"></a>
-<h4>ClickToFlashPlugin (Constructor)</h4>
-<b>ClickToFlashPlugin</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="ClickToFlashPlugin.__enabled" ID="ClickToFlashPlugin.__enabled"></a>
-<h4>ClickToFlashPlugin.__enabled</h4>
-<b>__enabled</b>(<i></i>)
-<p>
-        Private method to check, if the plug-in is enabled.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-enabled status (boolean)
-</dd>
-</dl><a NAME="ClickToFlashPlugin.__load" ID="ClickToFlashPlugin.__load"></a>
-<h4>ClickToFlashPlugin.__load</h4>
-<b>__load</b>(<i></i>)
-<p>
-        Private method to load the configuration.
-</p><a NAME="ClickToFlashPlugin.__save" ID="ClickToFlashPlugin.__save"></a>
-<h4>ClickToFlashPlugin.__save</h4>
-<b>__save</b>(<i></i>)
-<p>
-        Private method to save the configuration.
-</p><a NAME="ClickToFlashPlugin.addToWhitelist" ID="ClickToFlashPlugin.addToWhitelist"></a>
-<h4>ClickToFlashPlugin.addToWhitelist</h4>
-<b>addToWhitelist</b>(<i>host</i>)
-<p>
-        Public method to add a host to the whitelist.
-</p><dl>
-<dt><i>host</i></dt>
-<dd>
-host to be added (string)
-</dd>
-</dl><a NAME="ClickToFlashPlugin.configure" ID="ClickToFlashPlugin.configure"></a>
-<h4>ClickToFlashPlugin.configure</h4>
-<b>configure</b>(<i></i>)
-<p>
-        Public method to configure the plug-in.
-</p><a NAME="ClickToFlashPlugin.create" ID="ClickToFlashPlugin.create"></a>
-<h4>ClickToFlashPlugin.create</h4>
-<b>create</b>(<i>mimeType, url, argumentNames, argumentValues</i>)
-<p>
-        Public method to create a plug-in instance for the given data.
-</p><dl>
-<dt><i>mimeType</i></dt>
-<dd>
-MIME type for the plug-in (string)
-</dd><dt><i>url</i></dt>
-<dd>
-URL for the plug-in (QUrl)
-</dd><dt><i>argumentNames</i></dt>
-<dd>
-list of argument names (list of strings)
-</dd><dt><i>argumentValues</i></dt>
-<dd>
-list of argument values (list of strings)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the created object (QWidget)
-</dd>
-</dl><a NAME="ClickToFlashPlugin.isAnonymous" ID="ClickToFlashPlugin.isAnonymous"></a>
-<h4>ClickToFlashPlugin.isAnonymous</h4>
-<b>isAnonymous</b>(<i></i>)
-<p>
-        Public method to indicate an anonymous plug-in.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating anonymous state (boolean)
-</dd>
-</dl><a NAME="ClickToFlashPlugin.metaPlugin" ID="ClickToFlashPlugin.metaPlugin"></a>
-<h4>ClickToFlashPlugin.metaPlugin</h4>
-<b>metaPlugin</b>(<i></i>)
-<p>
-        Public method to create a meta plug-in object containing plug-in info.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-meta plug-in object (QWebPluginFactory.Plugin)
-</dd>
-</dl><a NAME="ClickToFlashPlugin.onWhitelist" ID="ClickToFlashPlugin.onWhitelist"></a>
-<h4>ClickToFlashPlugin.onWhitelist</h4>
-<b>onWhitelist</b>(<i>host</i>)
-<p>
-        Public method to check, if a host is on the whitelist.
-</p><dl>
-<dt><i>host</i></dt>
-<dd>
-host to check for (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating presence in the whitelist (boolean)
-</dd>
-</dl><a NAME="ClickToFlashPlugin.removeFromWhitelist" ID="ClickToFlashPlugin.removeFromWhitelist"></a>
-<h4>ClickToFlashPlugin.removeFromWhitelist</h4>
-<b>removeFromWhitelist</b>(<i>host</i>)
-<p>
-        Public method to remove a host from the whitelist.
-</p><dl>
-<dt><i>host</i></dt>
-<dd>
-host to be removed (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog</h1>
-<p>
-Module implementing a dialog to manage the ClickToFlash whitelist.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#ClickToFlashWhitelistDialog">ClickToFlashWhitelistDialog</a></td>
-<td>Class implementing a dialog to manage the ClickToFlash whitelist.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="ClickToFlashWhitelistDialog" ID="ClickToFlashWhitelistDialog"></a>
-<h2>ClickToFlashWhitelistDialog</h2>
-<p>
-    Class implementing a dialog to manage the ClickToFlash whitelist.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_ClickToFlashWhitelistDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#ClickToFlashWhitelistDialog.__init__">ClickToFlashWhitelistDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#ClickToFlashWhitelistDialog.getWhitelist">getWhitelist</a></td>
-<td>Public method to get the whitelisted hosts.</td>
-</tr><tr>
-<td><a href="#ClickToFlashWhitelistDialog.on_addButton_clicked">on_addButton_clicked</a></td>
-<td>Private slot to add an entry to the whitelist.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="ClickToFlashWhitelistDialog.__init__" ID="ClickToFlashWhitelistDialog.__init__"></a>
-<h4>ClickToFlashWhitelistDialog (Constructor)</h4>
-<b>ClickToFlashWhitelistDialog</b>(<i>whitelist, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>whitelist</i></dt>
-<dd>
-list of whitelisted hosts (list of string)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="ClickToFlashWhitelistDialog.getWhitelist" ID="ClickToFlashWhitelistDialog.getWhitelist"></a>
-<h4>ClickToFlashWhitelistDialog.getWhitelist</h4>
-<b>getWhitelist</b>(<i></i>)
-<p>
-        Public method to get the whitelisted hosts.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of whitelisted hosts (list of string)
-</dd>
-</dl><a NAME="ClickToFlashWhitelistDialog.on_addButton_clicked" ID="ClickToFlashWhitelistDialog.on_addButton_clicked"></a>
-<h4>ClickToFlashWhitelistDialog.on_addButton_clicked</h4>
-<b>on_addButton_clicked</b>(<i></i>)
-<p>
-        Private slot to add an entry to the whitelist.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.WebPlugins.WebPluginFactory.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,156 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.WebPlugins.WebPluginFactory</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.WebPlugins.WebPluginFactory</h1>
-<p>
-Module implementing the web plug-in factory.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#WebPluginFactory">WebPluginFactory</a></td>
-<td>Class implementing the web plug-in factory.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="WebPluginFactory" ID="WebPluginFactory"></a>
-<h2>WebPluginFactory</h2>
-<p>
-    Class implementing the web plug-in factory.
-</p>
-<h3>Derived from</h3>
-QWebPluginFactory
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#WebPluginFactory.__init__">WebPluginFactory</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#WebPluginFactory.__initialize">__initialize</a></td>
-<td>Private method to initialize the factory.</td>
-</tr><tr>
-<td><a href="#WebPluginFactory.create">create</a></td>
-<td>Public method to create a plug-in instance for the given MIME type with the given data.</td>
-</tr><tr>
-<td><a href="#WebPluginFactory.plugin">plugin</a></td>
-<td>Public method to get a reference to the named plug-in.</td>
-</tr><tr>
-<td><a href="#WebPluginFactory.plugins">plugins</a></td>
-<td>Public method to get a list of plug-ins.</td>
-</tr><tr>
-<td><a href="#WebPluginFactory.refreshPlugins">refreshPlugins</a></td>
-<td>Public method to refresh the list of supported plug-ins.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="WebPluginFactory.__init__" ID="WebPluginFactory.__init__"></a>
-<h4>WebPluginFactory (Constructor)</h4>
-<b>WebPluginFactory</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="WebPluginFactory.__initialize" ID="WebPluginFactory.__initialize"></a>
-<h4>WebPluginFactory.__initialize</h4>
-<b>__initialize</b>(<i></i>)
-<p>
-        Private method to initialize the factory.
-</p><a NAME="WebPluginFactory.create" ID="WebPluginFactory.create"></a>
-<h4>WebPluginFactory.create</h4>
-<b>create</b>(<i>mimeType, url, argumentNames, argumentValues</i>)
-<p>
-        Public method to create a plug-in instance for the given MIME type with
-        the given data.
-</p><dl>
-<dt><i>mimeType</i></dt>
-<dd>
-MIME type for the plug-in (string)
-</dd><dt><i>url</i></dt>
-<dd>
-URL for the plug-in (QUrl)
-</dd><dt><i>argumentNames</i></dt>
-<dd>
-list of argument names (list of strings)
-</dd><dt><i>argumentValues</i></dt>
-<dd>
-list of argument values (list of strings)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the created object (QObject)
-</dd>
-</dl><a NAME="WebPluginFactory.plugin" ID="WebPluginFactory.plugin"></a>
-<h4>WebPluginFactory.plugin</h4>
-<b>plugin</b>(<i>name</i>)
-<p>
-        Public method to get a reference to the named plug-in.
-</p><dl>
-<dt><i>name</i></dt>
-<dd>
-name of the plug-in (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the named plug-in
-</dd>
-</dl><a NAME="WebPluginFactory.plugins" ID="WebPluginFactory.plugins"></a>
-<h4>WebPluginFactory.plugins</h4>
-<b>plugins</b>(<i></i>)
-<p>
-        Public method to get a list of plug-ins.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of plug-ins (list of QWebPluginFactory.Plugin)
-</dd>
-</dl><a NAME="WebPluginFactory.refreshPlugins" ID="WebPluginFactory.refreshPlugins"></a>
-<h4>WebPluginFactory.refreshPlugins</h4>
-<b>refreshPlugins</b>(<i></i>)
-<p>
-        Public method to refresh the list of supported plug-ins.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.WebPlugins.WebPluginInterface.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.WebPlugins.WebPluginInterface</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.WebPlugins.WebPluginInterface</h1>
-<p>
-Module implementing the web plug-in interface.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#WebPluginInterface">WebPluginInterface</a></td>
-<td>Class implementing the web plug-in interface.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="WebPluginInterface" ID="WebPluginInterface"></a>
-<h2>WebPluginInterface</h2>
-<p>
-    Class implementing the web plug-in interface.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#WebPluginInterface.configure">configure</a></td>
-<td>Public method to configure the plug-in.</td>
-</tr><tr>
-<td><a href="#WebPluginInterface.create">create</a></td>
-<td>Public method to create a plug-in instance for the given data.</td>
-</tr><tr>
-<td><a href="#WebPluginInterface.isAnonymous">isAnonymous</a></td>
-<td>Public method to indicate an anonymous plug-in.</td>
-</tr><tr>
-<td><a href="#WebPluginInterface.metaPlugin">metaPlugin</a></td>
-<td>Public method to create a meta plug-in object containing plug-in info.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="WebPluginInterface.configure" ID="WebPluginInterface.configure"></a>
-<h4>WebPluginInterface.configure</h4>
-<b>configure</b>(<i></i>)
-<p>
-        Public method to configure the plug-in.
-</p><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-raised to indicate that this method
-            must be implemented by subclasses
-</dd>
-</dl><a NAME="WebPluginInterface.create" ID="WebPluginInterface.create"></a>
-<h4>WebPluginInterface.create</h4>
-<b>create</b>(<i>mimeType, url, argumentNames, argumentValues</i>)
-<p>
-        Public method to create a plug-in instance for the given data.
-</p><dl>
-<dt><i>mimeType</i></dt>
-<dd>
-MIME type for the plug-in (string)
-</dd><dt><i>url</i></dt>
-<dd>
-URL for the plug-in (QUrl)
-</dd><dt><i>argumentNames</i></dt>
-<dd>
-list of argument names (list of strings)
-</dd><dt><i>argumentValues</i></dt>
-<dd>
-list of argument values (list of strings)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the created object (QWidget)
-</dd>
-</dl><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-raised to indicate that this method
-            must be implemented by subclasses
-</dd>
-</dl><a NAME="WebPluginInterface.isAnonymous" ID="WebPluginInterface.isAnonymous"></a>
-<h4>WebPluginInterface.isAnonymous</h4>
-<b>isAnonymous</b>(<i></i>)
-<p>
-        Public method to indicate an anonymous plug-in.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating anonymous state (boolean)
-</dd>
-</dl><a NAME="WebPluginInterface.metaPlugin" ID="WebPluginInterface.metaPlugin"></a>
-<h4>WebPluginInterface.metaPlugin</h4>
-<b>metaPlugin</b>(<i></i>)
-<p>
-        Public method to create a meta plug-in object containing plug-in info.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-meta plug-in object (QWebPluginFactory.Plugin)
-</dd>
-</dl><dl>
-<dt>Raises <b>NotImplementedError</b>:</dt>
-<dd>
-raised to indicate that this method
-            must be implemented by subclasses
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.ZoomManager.ZoomManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.ZoomManager.ZoomManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.ZoomManager.ZoomManager</h1>
-<p>
-Module implementing a manager for site specific zoom level settings.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#ZoomManager">ZoomManager</a></td>
-<td>Class implementing a manager for site specific zoom level settings.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="ZoomManager" ID="ZoomManager"></a>
-<h2>ZoomManager</h2>
-<p>
-    Class implementing a manager for site specific zoom level settings.
-</p><h3>Signals</h3>
-<dl>
-<dt>changed()</dt>
-<dd>
-emitted to indicate a change of the zoom level
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#ZoomManager.__init__">ZoomManager</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#ZoomManager.__keyFromUrl">__keyFromUrl</a></td>
-<td>Private method to generate a DB key for an URL.</td>
-</tr><tr>
-<td><a href="#ZoomManager.allSiteNames">allSiteNames</a></td>
-<td>Public method to get a list of all site names.</td>
-</tr><tr>
-<td><a href="#ZoomManager.clear">clear</a></td>
-<td>Public method to clear the saved zoom values.</td>
-</tr><tr>
-<td><a href="#ZoomManager.close">close</a></td>
-<td>Public method to close the bookmark manager.</td>
-</tr><tr>
-<td><a href="#ZoomManager.load">load</a></td>
-<td>Public method to load the bookmarks.</td>
-</tr><tr>
-<td><a href="#ZoomManager.removeZoomValue">removeZoomValue</a></td>
-<td>Public method to remove a zoom value entry.</td>
-</tr><tr>
-<td><a href="#ZoomManager.save">save</a></td>
-<td>Public method to save the bookmarks.</td>
-</tr><tr>
-<td><a href="#ZoomManager.setZoomValue">setZoomValue</a></td>
-<td>Public method to record the zoom value for the given URL.</td>
-</tr><tr>
-<td><a href="#ZoomManager.siteInfo">siteInfo</a></td>
-<td>Public method to get the zoom value for the site.</td>
-</tr><tr>
-<td><a href="#ZoomManager.sitesCount">sitesCount</a></td>
-<td>Public method to get the number of available sites.</td>
-</tr><tr>
-<td><a href="#ZoomManager.zoomValue">zoomValue</a></td>
-<td>Public method to get the zoom value for an URL.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="ZoomManager.__init__" ID="ZoomManager.__init__"></a>
-<h4>ZoomManager (Constructor)</h4>
-<b>ZoomManager</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="ZoomManager.__keyFromUrl" ID="ZoomManager.__keyFromUrl"></a>
-<h4>ZoomManager.__keyFromUrl</h4>
-<b>__keyFromUrl</b>(<i>url</i>)
-<p>
-        Private method to generate a DB key for an URL.
-</p><dl>
-<dt><i>url</i> (QUrl)</dt>
-<dd>
-URL to generate a key for
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-key for the given URL
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl><a NAME="ZoomManager.allSiteNames" ID="ZoomManager.allSiteNames"></a>
-<h4>ZoomManager.allSiteNames</h4>
-<b>allSiteNames</b>(<i></i>)
-<p>
-        Public method to get a list of all site names.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-sorted list of all site names
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="ZoomManager.clear" ID="ZoomManager.clear"></a>
-<h4>ZoomManager.clear</h4>
-<b>clear</b>(<i></i>)
-<p>
-        Public method to clear the saved zoom values.
-</p><a NAME="ZoomManager.close" ID="ZoomManager.close"></a>
-<h4>ZoomManager.close</h4>
-<b>close</b>(<i></i>)
-<p>
-        Public method to close the bookmark manager.
-</p><a NAME="ZoomManager.load" ID="ZoomManager.load"></a>
-<h4>ZoomManager.load</h4>
-<b>load</b>(<i></i>)
-<p>
-        Public method to load the bookmarks.
-</p><a NAME="ZoomManager.removeZoomValue" ID="ZoomManager.removeZoomValue"></a>
-<h4>ZoomManager.removeZoomValue</h4>
-<b>removeZoomValue</b>(<i>site</i>)
-<p>
-        Public method to remove a zoom value entry.
-</p><dl>
-<dt><i>site</i> (str)</dt>
-<dd>
-web site name
-</dd>
-</dl><a NAME="ZoomManager.save" ID="ZoomManager.save"></a>
-<h4>ZoomManager.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public method to save the bookmarks.
-</p><a NAME="ZoomManager.setZoomValue" ID="ZoomManager.setZoomValue"></a>
-<h4>ZoomManager.setZoomValue</h4>
-<b>setZoomValue</b>(<i>url, zoomValue</i>)
-<p>
-        Public method to record the zoom value for the given URL.
-</p><p>
-        Note: Only zoom values not equal 100% are recorded.
-</p><dl>
-<dt><i>url</i> (QUrl)</dt>
-<dd>
-URL of the page to remember the zoom value for
-</dd><dt><i>zoomValue</i> (int)</dt>
-<dd>
-zoom value for the URL
-</dd>
-</dl><a NAME="ZoomManager.siteInfo" ID="ZoomManager.siteInfo"></a>
-<h4>ZoomManager.siteInfo</h4>
-<b>siteInfo</b>(<i>site</i>)
-<p>
-        Public method to get the zoom value for the site.
-</p><dl>
-<dt><i>site</i> (str)</dt>
-<dd>
-web site name
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-zoom value for the site
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-int
-</dd>
-</dl><a NAME="ZoomManager.sitesCount" ID="ZoomManager.sitesCount"></a>
-<h4>ZoomManager.sitesCount</h4>
-<b>sitesCount</b>(<i></i>)
-<p>
-        Public method to get the number of available sites.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-number of sites
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-int
-</dd>
-</dl><a NAME="ZoomManager.zoomValue" ID="ZoomManager.zoomValue"></a>
-<h4>ZoomManager.zoomValue</h4>
-<b>zoomValue</b>(<i>url</i>)
-<p>
-        Public method to get the zoom value for an URL.
-</p><dl>
-<dt><i>url</i> (QUrl)</dt>
-<dd>
-URL of the page to get the zoom value for
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-zoomValue zoom value for the URL
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-int
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.ZoomManager.ZoomValuesDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.ZoomManager.ZoomValuesDialog</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.ZoomManager.ZoomValuesDialog</h1>
-<p>
-Module implementing a dialog to show all saved zoom values.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#ZoomValuesDialog">ZoomValuesDialog</a></td>
-<td>Class implementing a dialog to show all saved zoom values.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="ZoomValuesDialog" ID="ZoomValuesDialog"></a>
-<h2>ZoomValuesDialog</h2>
-<p>
-    Class implementing a dialog to show all saved zoom values.
-</p>
-<h3>Derived from</h3>
-QDialog, Ui_ZoomValuesDialog
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#ZoomValuesDialog.__init__">ZoomValuesDialog</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#ZoomValuesDialog.__calculateHeaderSizes">__calculateHeaderSizes</a></td>
-<td>Private method to calculate the section sizes of the horizontal header.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="ZoomValuesDialog.__init__" ID="ZoomValuesDialog.__init__"></a>
-<h4>ZoomValuesDialog (Constructor)</h4>
-<b>ZoomValuesDialog</b>(<i>parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-reference to the parent widget (QWidget)
-</dd>
-</dl><a NAME="ZoomValuesDialog.__calculateHeaderSizes" ID="ZoomValuesDialog.__calculateHeaderSizes"></a>
-<h4>ZoomValuesDialog.__calculateHeaderSizes</h4>
-<b>__calculateHeaderSizes</b>(<i></i>)
-<p>
-        Private method to calculate the section sizes of the horizontal header.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Helpviewer.ZoomManager.ZoomValuesModel.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.ZoomManager.ZoomValuesModel</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Helpviewer.ZoomManager.ZoomValuesModel</h1>
-<p>
-Module implementing a model for zoom values management.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#ZoomValuesModel">ZoomValuesModel</a></td>
-<td>Class implementing a model for zoom values management.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="ZoomValuesModel" ID="ZoomValuesModel"></a>
-<h2>ZoomValuesModel</h2>
-<p>
-    Class implementing a model for zoom values management.
-</p>
-<h3>Derived from</h3>
-QAbstractTableModel
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#ZoomValuesModel.__init__">ZoomValuesModel</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#ZoomValuesModel.__zoomValuesChanged">__zoomValuesChanged</a></td>
-<td>Private slot handling a change of the registered zoom values.</td>
-</tr><tr>
-<td><a href="#ZoomValuesModel.columnCount">columnCount</a></td>
-<td>Public method to get the number of columns of the model.</td>
-</tr><tr>
-<td><a href="#ZoomValuesModel.data">data</a></td>
-<td>Public method to get data from the model.</td>
-</tr><tr>
-<td><a href="#ZoomValuesModel.headerData">headerData</a></td>
-<td>Public method to get the header data.</td>
-</tr><tr>
-<td><a href="#ZoomValuesModel.removeRows">removeRows</a></td>
-<td>Public method to remove entries from the model.</td>
-</tr><tr>
-<td><a href="#ZoomValuesModel.rowCount">rowCount</a></td>
-<td>Public method to get the number of rows of the model.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="ZoomValuesModel.__init__" ID="ZoomValuesModel.__init__"></a>
-<h4>ZoomValuesModel (Constructor)</h4>
-<b>ZoomValuesModel</b>(<i>manager, parent=None</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>manager</i></dt>
-<dd>
-reference to the zoom values manager (ZoomManager)
-</dd><dt><i>parent</i></dt>
-<dd>
-reference to the parent object (QObject)
-</dd>
-</dl><a NAME="ZoomValuesModel.__zoomValuesChanged" ID="ZoomValuesModel.__zoomValuesChanged"></a>
-<h4>ZoomValuesModel.__zoomValuesChanged</h4>
-<b>__zoomValuesChanged</b>(<i></i>)
-<p>
-        Private slot handling a change of the registered zoom values.
-</p><a NAME="ZoomValuesModel.columnCount" ID="ZoomValuesModel.columnCount"></a>
-<h4>ZoomValuesModel.columnCount</h4>
-<b>columnCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of columns of the model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex) (Unused)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of columns (integer)
-</dd>
-</dl><a NAME="ZoomValuesModel.data" ID="ZoomValuesModel.data"></a>
-<h4>ZoomValuesModel.data</h4>
-<b>data</b>(<i>index, role</i>)
-<p>
-        Public method to get data from the model.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index to get data for (QModelIndex)
-</dd><dt><i>role</i></dt>
-<dd>
-role of the data to retrieve (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-requested data
-</dd>
-</dl><a NAME="ZoomValuesModel.headerData" ID="ZoomValuesModel.headerData"></a>
-<h4>ZoomValuesModel.headerData</h4>
-<b>headerData</b>(<i>section, orientation, role=Qt.DisplayRole</i>)
-<p>
-        Public method to get the header data.
-</p><dl>
-<dt><i>section</i></dt>
-<dd>
-section number (integer)
-</dd><dt><i>orientation</i></dt>
-<dd>
-header orientation (Qt.Orientation)
-</dd><dt><i>role</i></dt>
-<dd>
-data role (integer)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-header data
-</dd>
-</dl><a NAME="ZoomValuesModel.removeRows" ID="ZoomValuesModel.removeRows"></a>
-<h4>ZoomValuesModel.removeRows</h4>
-<b>removeRows</b>(<i>row, count, parent=None</i>)
-<p>
-        Public method to remove entries from the model.
-</p><dl>
-<dt><i>row</i></dt>
-<dd>
-start row (integer)
-</dd><dt><i>count</i></dt>
-<dd>
-number of rows to remove (integer)
-</dd><dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating success (boolean)
-</dd>
-</dl><a NAME="ZoomValuesModel.rowCount" ID="ZoomValuesModel.rowCount"></a>
-<h4>ZoomValuesModel.rowCount</h4>
-<b>rowCount</b>(<i>parent=None</i>)
-<p>
-        Public method to get the number of rows of the model.
-</p><dl>
-<dt><i>parent</i></dt>
-<dd>
-parent index (QModelIndex)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-number of rows (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.PluginManager.PluginExceptions.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.PluginManager.PluginExceptions.html	Sat Sep 07 16:10:29 2019 +0200
@@ -50,9 +50,6 @@
 </tr><tr>
 <td><a href="#PluginPathError">PluginPathError</a></td>
 <td>Class defining an error raised, when the plugin paths were not found and could not be created.</td>
-</tr><tr>
-<td><a href="#PluginPy2IncompatibleError">PluginPy2IncompatibleError</a></td>
-<td>Class defining an error raised, when the plugin is incompatible with Python2.</td>
 </tr>
 </table>
 <h3>Functions</h3>
@@ -361,45 +358,5 @@
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="PluginPy2IncompatibleError" ID="PluginPy2IncompatibleError"></a>
-<h2>PluginPy2IncompatibleError</h2>
-<p>
-    Class defining an error raised, when the plugin is incompatible
-    with Python2.
-</p>
-<h3>Derived from</h3>
-PluginError
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#PluginPy2IncompatibleError.__init__">PluginPy2IncompatibleError</a></td>
-<td>Constructor</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="PluginPy2IncompatibleError.__init__" ID="PluginPy2IncompatibleError.__init__"></a>
-<h4>PluginPy2IncompatibleError (Constructor)</h4>
-<b>PluginPy2IncompatibleError</b>(<i>name</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>name</i></dt>
-<dd>
-name of the plugin module (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.PluginManager.PluginManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.PluginManager.PluginManager.html	Sat Sep 07 16:10:29 2019 +0200
@@ -866,10 +866,6 @@
 <dd>
 raised to indicate an issue loading
             the plug-in
-</dd><dt>Raises <b>PluginPy2IncompatibleError</b>:</dt>
-<dd>
-raised to indicate the Python 2
-            incompatibility of a plug-in
 </dd>
 </dl><a NAME="PluginManager.preferencesChanged" ID="PluginManager.preferencesChanged"></a>
 <h4>PluginManager.preferencesChanged</h4>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginAbout.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginAbout.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginCodeStyleChecker.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginCodeStyleChecker.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginEricapi.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginEricapi.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginEricdoc.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginEricdoc.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginPipInterface.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,268 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Plugins.PluginPipInterface</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Plugins.PluginPipInterface</h1>
-<p>
-Module implementing the pip interface plug-in.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pipPluginObject</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#PipInterfacePlugin">PipInterfacePlugin</a></td>
-<td>Class implementing the pip interface plug-in.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#createPipPage">createPipPage</a></td>
-<td>Module function to create the pip configuration page.</td>
-</tr><tr>
-<td><a href="#exeDisplayDataList">exeDisplayDataList</a></td>
-<td>Module function to support the display of some executable info.</td>
-</tr><tr>
-<td><a href="#getConfigData">getConfigData</a></td>
-<td>Module function returning data as required by the configuration dialog.</td>
-</tr><tr>
-<td><a href="#prepareUninstall">prepareUninstall</a></td>
-<td>Module function to prepare for an un-installation.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="PipInterfacePlugin" ID="PipInterfacePlugin"></a>
-<h2>PipInterfacePlugin</h2>
-<p>
-    Class implementing the pip interface plug-in.
-</p><h3>Signals</h3>
-<dl>
-<dt>currentEnvironmentChanged(str)</dt>
-<dd>
-emitted to signal a change of the
-        currently selected virtual environment
-</dd>
-</dl>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>PreferencesKey</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#PipInterfacePlugin.__init__">PipInterfacePlugin</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#PipInterfacePlugin.__initialize">__initialize</a></td>
-<td>Private slot to (re)initialize the plugin.</td>
-</tr><tr>
-<td><a href="#PipInterfacePlugin.activate">activate</a></td>
-<td>Public method to activate this plugin.</td>
-</tr><tr>
-<td><a href="#PipInterfacePlugin.deactivate">deactivate</a></td>
-<td>Public method to deactivate this plugin.</td>
-</tr><tr>
-<td><a href="#PipInterfacePlugin.getMenu">getMenu</a></td>
-<td>Public method to get a reference to the requested menu.</td>
-</tr><tr>
-<td><a href="#PipInterfacePlugin.getMenuNames">getMenuNames</a></td>
-<td>Public method to get the names of all menus.</td>
-</tr><tr>
-<td><a href="#PipInterfacePlugin.getPreferences">getPreferences</a></td>
-<td>Public method to retrieve the various pip related settings.</td>
-</tr><tr>
-<td><a href="#PipInterfacePlugin.setPreferences">setPreferences</a></td>
-<td>Public method to store the various pip related settings.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="PipInterfacePlugin.__init__" ID="PipInterfacePlugin.__init__"></a>
-<h4>PipInterfacePlugin (Constructor)</h4>
-<b>PipInterfacePlugin</b>(<i>ui</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>ui</i></dt>
-<dd>
-reference to the user interface object (UI.UserInterface)
-</dd>
-</dl><a NAME="PipInterfacePlugin.__initialize" ID="PipInterfacePlugin.__initialize"></a>
-<h4>PipInterfacePlugin.__initialize</h4>
-<b>__initialize</b>(<i></i>)
-<p>
-        Private slot to (re)initialize the plugin.
-</p><a NAME="PipInterfacePlugin.activate" ID="PipInterfacePlugin.activate"></a>
-<h4>PipInterfacePlugin.activate</h4>
-<b>activate</b>(<i></i>)
-<p>
-        Public method to activate this plugin.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-tuple of None and activation status
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-tuple of (None, bool)
-</dd>
-</dl><a NAME="PipInterfacePlugin.deactivate" ID="PipInterfacePlugin.deactivate"></a>
-<h4>PipInterfacePlugin.deactivate</h4>
-<b>deactivate</b>(<i></i>)
-<p>
-        Public method to deactivate this plugin.
-</p><a NAME="PipInterfacePlugin.getMenu" ID="PipInterfacePlugin.getMenu"></a>
-<h4>PipInterfacePlugin.getMenu</h4>
-<b>getMenu</b>(<i>name</i>)
-<p>
-        Public method to get a reference to the requested menu.
-</p><dl>
-<dt><i>name</i> (str)</dt>
-<dd>
-name of the menu
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the menu or None, if no
-            menu with the given name exists
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-QMenu or None
-</dd>
-</dl><a NAME="PipInterfacePlugin.getMenuNames" ID="PipInterfacePlugin.getMenuNames"></a>
-<h4>PipInterfacePlugin.getMenuNames</h4>
-<b>getMenuNames</b>(<i></i>)
-<p>
-        Public method to get the names of all menus.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-menu names
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="PipInterfacePlugin.getPreferences" ID="PipInterfacePlugin.getPreferences"></a>
-<h4>PipInterfacePlugin.getPreferences</h4>
-<b>getPreferences</b>(<i>key</i>)
-<p>
-        Public method to retrieve the various pip related settings.
-</p><dl>
-<dt><i>key</i> (str)</dt>
-<dd>
-the key of the value to get
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-the requested setting
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-any
-</dd>
-</dl><a NAME="PipInterfacePlugin.setPreferences" ID="PipInterfacePlugin.setPreferences"></a>
-<h4>PipInterfacePlugin.setPreferences</h4>
-<b>setPreferences</b>(<i>key, value</i>)
-<p>
-        Public method to store the various pip related settings.
-</p><dl>
-<dt><i>key</i> (str)</dt>
-<dd>
-the key of the setting to be set
-</dd><dt><i>value</i> (any)</dt>
-<dd>
-the value to be set
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="createPipPage" ID="createPipPage"></a>
-<h2>createPipPage</h2>
-<b>createPipPage</b>(<i>configDlg</i>)
-<p>
-    Module function to create the pip configuration page.
-</p><dl>
-<dt><i>configDlg</i></dt>
-<dd>
-reference to the configuration dialog
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the configuration page
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="exeDisplayDataList" ID="exeDisplayDataList"></a>
-<h2>exeDisplayDataList</h2>
-<b>exeDisplayDataList</b>(<i></i>)
-<p>
-    Module function to support the display of some executable info.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of dictionaries containing the data to query the presence of
-        the executable
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getConfigData" ID="getConfigData"></a>
-<h2>getConfigData</h2>
-<b>getConfigData</b>(<i></i>)
-<p>
-    Module function returning data as required by the configuration dialog.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-dictionary containing the relevant data
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="prepareUninstall" ID="prepareUninstall"></a>
-<h2>prepareUninstall</h2>
-<b>prepareUninstall</b>(<i></i>)
-<p>
-    Module function to prepare for an un-installation.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Plugins.PluginSyntaxChecker.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginSyntaxChecker.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginTabnanny.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginTabnanny.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginTranslator.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginTranslator.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>translatorPluginObject</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>translatorPluginObject</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginVcsGit.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginVcsGit.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>gitCfgPluginObject</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>gitCfgPluginObject</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginVcsMercurial.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginVcsMercurial.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>mercurialCfgPluginObject</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>mercurialCfgPluginObject</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginVcsPySvn.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginVcsPySvn.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>subversionCfgPluginObject</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>subversionCfgPluginObject</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginVcsSubversion.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginVcsSubversion.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>subversionCfgPluginObject</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>subversionCfgPluginObject</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginVirtualenvInterface.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Plugins.PluginVirtualenvInterface</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Plugins.PluginVirtualenvInterface</h1>
-<p>
-Module implementing the virtualenv interface plug-in.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#VirtualenvInterfacePlugin">VirtualenvInterfacePlugin</a></td>
-<td>Class implementing the virtualenv wizard plug-in.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="VirtualenvInterfacePlugin" ID="VirtualenvInterfacePlugin"></a>
-<h2>VirtualenvInterfacePlugin</h2>
-<p>
-    Class implementing the virtualenv wizard plug-in.
-</p>
-<h3>Derived from</h3>
-QObject
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#VirtualenvInterfacePlugin.__init__">VirtualenvInterfacePlugin</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#VirtualenvInterfacePlugin.__handle">__handle</a></td>
-<td>Private method to handle the creation of a virtual environment.</td>
-</tr><tr>
-<td><a href="#VirtualenvInterfacePlugin.__initAction">__initAction</a></td>
-<td>Private method to initialize the action.</td>
-</tr><tr>
-<td><a href="#VirtualenvInterfacePlugin.activate">activate</a></td>
-<td>Public method to activate this plug-in.</td>
-</tr><tr>
-<td><a href="#VirtualenvInterfacePlugin.deactivate">deactivate</a></td>
-<td>Public method to deactivate this plug-in.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="VirtualenvInterfacePlugin.__init__" ID="VirtualenvInterfacePlugin.__init__"></a>
-<h4>VirtualenvInterfacePlugin (Constructor)</h4>
-<b>VirtualenvInterfacePlugin</b>(<i>ui</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>ui</i></dt>
-<dd>
-reference to the user interface object (UI.UserInterface)
-</dd>
-</dl><a NAME="VirtualenvInterfacePlugin.__handle" ID="VirtualenvInterfacePlugin.__handle"></a>
-<h4>VirtualenvInterfacePlugin.__handle</h4>
-<b>__handle</b>(<i></i>)
-<p>
-        Private method to handle the creation of a virtual environment.
-</p><a NAME="VirtualenvInterfacePlugin.__initAction" ID="VirtualenvInterfacePlugin.__initAction"></a>
-<h4>VirtualenvInterfacePlugin.__initAction</h4>
-<b>__initAction</b>(<i></i>)
-<p>
-        Private method to initialize the action.
-</p><a NAME="VirtualenvInterfacePlugin.activate" ID="VirtualenvInterfacePlugin.activate"></a>
-<h4>VirtualenvInterfacePlugin.activate</h4>
-<b>activate</b>(<i></i>)
-<p>
-        Public method to activate this plug-in.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-tuple of None and activation status (boolean)
-</dd>
-</dl><a NAME="VirtualenvInterfacePlugin.deactivate" ID="VirtualenvInterfacePlugin.deactivate"></a>
-<h4>VirtualenvInterfacePlugin.deactivate</h4>
-<b>deactivate</b>(<i></i>)
-<p>
-        Public method to deactivate this plug-in.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Plugins.PluginVmListspace.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginVmListspace.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>displayString</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>displayString</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginVmTabview.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginVmTabview.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>displayString</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>displayString</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pluginType</td></tr><tr><td>pluginTypename</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginWizardDotDesktop.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginWizardDotDesktop.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginWizardE5MessageBox.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginWizardE5MessageBox.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginWizardEricPlugin.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginWizardEricPlugin.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginWizardPyRegExp.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginWizardPyRegExp.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginWizardQColorDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginWizardQColorDialog.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginWizardQFileDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginWizardQFileDialog.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginWizardQFontDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginWizardQFontDialog.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginWizardQInputDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginWizardQInputDialog.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginWizardQMessageBox.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginWizardQMessageBox.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginWizardQRegExp.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginWizardQRegExp.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginWizardQRegularExpression.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginWizardQRegularExpression.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.PluginWizardSetup.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.PluginWizardSetup.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>python2Compatible</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
+<tr><td>author</td></tr><tr><td>autoactivate</td></tr><tr><td>className</td></tr><tr><td>deactivateable</td></tr><tr><td>error</td></tr><tr><td>longDescription</td></tr><tr><td>name</td></tr><tr><td>needsRestart</td></tr><tr><td>packageName</td></tr><tr><td>pyqtApi</td></tr><tr><td>shortDescription</td></tr><tr><td>version</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.GitDiffHighlighter.html	Sat Sep 07 16:10:29 2019 +0200
@@ -30,141 +30,14 @@
 <h3>Classes</h3>
 <table>
 <tr>
-<td><a href="#E5GenericDiffHighlighter">E5GenericDiffHighlighter</a></td>
-<td>Class implementing a generic diff highlighter.</td>
-</tr><tr>
 <td><a href="#GitDiffHighlighter">GitDiffHighlighter</a></td>
 <td>Class implementing a diff highlighter for Git.</td>
 </tr>
 </table>
 <h3>Functions</h3>
 <table>
-<tr>
-<td><a href="#TERMINAL">TERMINAL</a></td>
-<td>Function to mark a pattern as the final one to search for.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="E5GenericDiffHighlighter" ID="E5GenericDiffHighlighter"></a>
-<h2>E5GenericDiffHighlighter</h2>
-<p>
-        Class implementing a generic diff highlighter.
-</p>
-<h3>Derived from</h3>
-QSyntaxHighlighter
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#E5GenericDiffHighlighter.__init__">E5GenericDiffHighlighter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#E5GenericDiffHighlighter.createRules">createRules</a></td>
-<td>Public method to create the highlighting rules.</td>
-</tr><tr>
-<td><a href="#E5GenericDiffHighlighter.formats">formats</a></td>
-<td>Public method to determine the highlighting formats for a line of text.</td>
-</tr><tr>
-<td><a href="#E5GenericDiffHighlighter.generateRules">generateRules</a></td>
-<td>Public method to generate the rule set.</td>
-</tr><tr>
-<td><a href="#E5GenericDiffHighlighter.highlightBlock">highlightBlock</a></td>
-<td>Public method to highlight a block of text.</td>
-</tr><tr>
-<td><a href="#E5GenericDiffHighlighter.makeFormat">makeFormat</a></td>
-<td>Public method to generate a format definition.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
 <tr><td>None</td></tr>
 </table>
-<a NAME="E5GenericDiffHighlighter.__init__" ID="E5GenericDiffHighlighter.__init__"></a>
-<h4>E5GenericDiffHighlighter (Constructor)</h4>
-<b>E5GenericDiffHighlighter</b>(<i>doc</i>)
-<p>
-            Constructor
-</p><dl>
-<dt><i>doc</i></dt>
-<dd>
-reference to the text document (QTextDocument)
-</dd>
-</dl><a NAME="E5GenericDiffHighlighter.createRules" ID="E5GenericDiffHighlighter.createRules"></a>
-<h4>E5GenericDiffHighlighter.createRules</h4>
-<b>createRules</b>(<i>*rules</i>)
-<p>
-            Public method to create the highlighting rules.
-</p><dl>
-<dt><i>rules</i></dt>
-<dd>
-set of highlighting rules (list of tuples of rule
-                pattern (string) and highlighting format (QTextCharFormat))
-</dd>
-</dl><a NAME="E5GenericDiffHighlighter.formats" ID="E5GenericDiffHighlighter.formats"></a>
-<h4>E5GenericDiffHighlighter.formats</h4>
-<b>formats</b>(<i>line</i>)
-<p>
-            Public method to determine the highlighting formats for a line of
-            text.
-</p><dl>
-<dt><i>line</i></dt>
-<dd>
-text line to be highlighted (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-list of matched highlighting rules (list of tuples of match
-                object and format (QTextCharFormat))
-</dd>
-</dl><a NAME="E5GenericDiffHighlighter.generateRules" ID="E5GenericDiffHighlighter.generateRules"></a>
-<h4>E5GenericDiffHighlighter.generateRules</h4>
-<b>generateRules</b>(<i></i>)
-<p>
-            Public method to generate the rule set.
-</p><p>
-            Note: This method must me implemented by derived syntax
-            highlighters.
-</p><a NAME="E5GenericDiffHighlighter.highlightBlock" ID="E5GenericDiffHighlighter.highlightBlock"></a>
-<h4>E5GenericDiffHighlighter.highlightBlock</h4>
-<b>highlightBlock</b>(<i>text</i>)
-<p>
-            Public method to highlight a block of text.
-</p><dl>
-<dt><i>text</i></dt>
-<dd>
-text to be highlighted (string)
-</dd>
-</dl><a NAME="E5GenericDiffHighlighter.makeFormat" ID="E5GenericDiffHighlighter.makeFormat"></a>
-<h4>E5GenericDiffHighlighter.makeFormat</h4>
-<b>makeFormat</b>(<i>fg=None, bg=None, bold=False</i>)
-<p>
-            Public method to generate a format definition.
-</p><dl>
-<dt><i>fg</i></dt>
-<dd>
-foreground color (QColor)
-</dd><dt><i>bg</i></dt>
-<dd>
-background color (QColor)
-</dd><dt><i>bold</i></dt>
-<dd>
-flag indicating bold text (boolean)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-format definiton (QTextCharFormat)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
 <a NAME="GitDiffHighlighter" ID="GitDiffHighlighter"></a>
 <h2>GitDiffHighlighter</h2>
@@ -216,23 +89,5 @@
         Public method to generate the rule set.
 </p>
 <div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="TERMINAL" ID="TERMINAL"></a>
-<h2>TERMINAL</h2>
-<b>TERMINAL</b>(<i>pattern</i>)
-<p>
-        Function to mark a pattern as the final one to search for.
-</p><dl>
-<dt><i>pattern</i></dt>
-<dd>
-pattern to be marked (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-marked pattern (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.GitLogBrowserDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.GitLogBrowserDialog.html	Sat Sep 07 16:10:29 2019 +0200
@@ -63,9 +63,6 @@
 <td><a href="#GitLogBrowserDialog.__actionMode">__actionMode</a></td>
 <td>Private method to get the selected action mode.</td>
 </tr><tr>
-<td><a href="#GitLogBrowserDialog.__actionsMenuHovered">__actionsMenuHovered</a></td>
-<td>Private slot to show the tooltip for an action menu entry.</td>
-</tr><tr>
 <td><a href="#GitLogBrowserDialog.__addFinishCallback">__addFinishCallback</a></td>
 <td>Private method to add a method to be called once the process finished.</td>
 </tr><tr>
@@ -334,16 +331,6 @@
 <dd>
 selected action mode (string, one of filter or find)
 </dd>
-</dl><a NAME="GitLogBrowserDialog.__actionsMenuHovered" ID="GitLogBrowserDialog.__actionsMenuHovered"></a>
-<h4>GitLogBrowserDialog.__actionsMenuHovered</h4>
-<b>__actionsMenuHovered</b>(<i>action</i>)
-<p>
-        Private slot to show the tooltip for an action menu entry.
-</p><dl>
-<dt><i>action</i> (QAction)</dt>
-<dd>
-action to show tooltip for
-</dd>
 </dl><a NAME="GitLogBrowserDialog.__addFinishCallback" ID="GitLogBrowserDialog.__addFinishCallback"></a>
 <h4>GitLogBrowserDialog.__addFinishCallback</h4>
 <b>__addFinishCallback</b>(<i>callback</i>)
--- a/eric6/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.GitStatusDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.GitStatusDialog.html	Sat Sep 07 16:10:29 2019 +0200
@@ -62,9 +62,6 @@
 <td><a href="#GitStatusDialog.__init__">GitStatusDialog</a></td>
 <td>Constructor</td>
 </tr><tr>
-<td><a href="#GitStatusDialog.__actionsMenuHovered">__actionsMenuHovered</a></td>
-<td>Private slot to show the tooltip for an action menu entry.</td>
-</tr><tr>
 <td><a href="#GitStatusDialog.__add">__add</a></td>
 <td>Private slot to handle the Add context menu entry.</td>
 </tr><tr>
@@ -245,16 +242,6 @@
 <dd>
 parent widget (QWidget)
 </dd>
-</dl><a NAME="GitStatusDialog.__actionsMenuHovered" ID="GitStatusDialog.__actionsMenuHovered"></a>
-<h4>GitStatusDialog.__actionsMenuHovered</h4>
-<b>__actionsMenuHovered</b>(<i>action</i>)
-<p>
-        Private slot to show the tooltip for an action menu entry.
-</p><dl>
-<dt><i>action</i> (QAction)</dt>
-<dd>
-action to show tooltip for
-</dd>
 </dl><a NAME="GitStatusDialog.__add" ID="GitStatusDialog.__add"></a>
 <h4>GitStatusDialog.__add</h4>
 <b>__add</b>(<i></i>)
--- a/eric6/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.GitUtilities.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.VcsPlugins.vcsGit.GitUtilities.html	Sat Sep 07 16:10:29 2019 +0200
@@ -39,9 +39,6 @@
 </tr><tr>
 <td><a href="#prepareProcess">prepareProcess</a></td>
 <td>Public function to prepare the given process.</td>
-</tr><tr>
-<td><a href="#strToQByteArray">strToQByteArray</a></td>
-<td>Module function to convert a Python string into a QByteArray.</td>
 </tr>
 </table>
 <hr /><hr />
@@ -73,18 +70,5 @@
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="strToQByteArray" ID="strToQByteArray"></a>
-<h2>strToQByteArray</h2>
-<b>strToQByteArray</b>(<i>txt</i>)
-<p>
-        Module function to convert a Python string into a QByteArray.
-</p><dl>
-<dt><i>txt</i> (str, bytes, bytearray, unicode)</dt>
-<dd>
-Python string to be converted
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.VcsPlugins.vcsMercurial.HgLogBrowserDialog.html	Sat Sep 07 16:10:29 2019 +0200
@@ -63,9 +63,6 @@
 <td><a href="#HgLogBrowserDialog.__actionMode">__actionMode</a></td>
 <td>Private method to get the selected action mode.</td>
 </tr><tr>
-<td><a href="#HgLogBrowserDialog.__actionsMenuHovered">__actionsMenuHovered</a></td>
-<td>Private slot to show the tooltip for an action menu entry.</td>
-</tr><tr>
 <td><a href="#HgLogBrowserDialog.__addFinishCallback">__addFinishCallback</a></td>
 <td>Private method to add a method to be called once the process finished.</td>
 </tr><tr>
@@ -355,16 +352,6 @@
 <dd>
 selected action mode (string, one of filter or find)
 </dd>
-</dl><a NAME="HgLogBrowserDialog.__actionsMenuHovered" ID="HgLogBrowserDialog.__actionsMenuHovered"></a>
-<h4>HgLogBrowserDialog.__actionsMenuHovered</h4>
-<b>__actionsMenuHovered</b>(<i>action</i>)
-<p>
-        Private slot to show the tooltip for an action menu entry.
-</p><dl>
-<dt><i>action</i> (QAction)</dt>
-<dd>
-action to show tooltip for
-</dd>
 </dl><a NAME="HgLogBrowserDialog.__addFinishCallback" ID="HgLogBrowserDialog.__addFinishCallback"></a>
 <h4>HgLogBrowserDialog.__addFinishCallback</h4>
 <b>__addFinishCallback</b>(<i>callback</i>)
--- a/eric6/Documentation/Source/eric6.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.VcsPlugins.vcsMercurial.HgStatusDialog.html	Sat Sep 07 16:10:29 2019 +0200
@@ -65,9 +65,6 @@
 <td><a href="#HgStatusDialog.__abortMerge">__abortMerge</a></td>
 <td>Private slot used to abort an uncommitted merge.</td>
 </tr><tr>
-<td><a href="#HgStatusDialog.__actionsMenuHovered">__actionsMenuHovered</a></td>
-<td>Private slot to show the tooltip for an action menu entry.</td>
-</tr><tr>
 <td><a href="#HgStatusDialog.__add">__add</a></td>
 <td>Private slot to handle the Add context menu entry.</td>
 </tr><tr>
@@ -223,17 +220,7 @@
 <b>__abortMerge</b>(<i></i>)
 <p>
         Private slot used to abort an uncommitted merge.
-</p><a NAME="HgStatusDialog.__actionsMenuHovered" ID="HgStatusDialog.__actionsMenuHovered"></a>
-<h4>HgStatusDialog.__actionsMenuHovered</h4>
-<b>__actionsMenuHovered</b>(<i>action</i>)
-<p>
-        Private slot to show the tooltip for an action menu entry.
-</p><dl>
-<dt><i>action</i> (QAction)</dt>
-<dd>
-action to show tooltip for
-</dd>
-</dl><a NAME="HgStatusDialog.__add" ID="HgStatusDialog.__add"></a>
+</p><a NAME="HgStatusDialog.__add" ID="HgStatusDialog.__add"></a>
 <h4>HgStatusDialog.__add</h4>
 <b>__add</b>(<i></i>)
 <p>
@@ -552,4 +539,4 @@
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
-</body></html>
\ No newline at end of file
+</body></html>
--- a/eric6/Documentation/Source/eric6.Plugins.WizardPlugins.InputDialogWizard.InputDialogWizardDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.WizardPlugins.InputDialogWizard.InputDialogWizardDialog.html	Sat Sep 07 16:10:29 2019 +0200
@@ -64,7 +64,7 @@
 <td>Constructor</td>
 </tr><tr>
 <td><a href="#InputDialogWizardDialog.getCode">getCode</a></td>
-<td>Public method to get the source code for Qt4/Qt5.</td>
+<td>Public method to get the source code for Qt5.</td>
 </tr><tr>
 <td><a href="#InputDialogWizardDialog.on_bTest_clicked">on_bTest_clicked</a></td>
 <td>Private method to test the selected options.</td>
@@ -94,7 +94,7 @@
 <h4>InputDialogWizardDialog.getCode</h4>
 <b>getCode</b>(<i>indLevel, indString</i>)
 <p>
-        Public method to get the source code for Qt4/Qt5.
+        Public method to get the source code for Qt5.
 </p><dl>
 <dt><i>indLevel</i></dt>
 <dd>
--- a/eric6/Documentation/Source/eric6.Plugins.WizardPlugins.MessageBoxWizard.MessageBoxWizardDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.WizardPlugins.MessageBoxWizard.MessageBoxWizardDialog.html	Sat Sep 07 16:10:29 2019 +0200
@@ -69,8 +69,8 @@
 <td><a href="#MessageBoxWizardDialog.__getButtonCode">__getButtonCode</a></td>
 <td>Private method to generate the button code.</td>
 </tr><tr>
-<td><a href="#MessageBoxWizardDialog.__testQt42">__testQt42</a></td>
-<td>Private method to test the selected options for Qt 4.2.0.</td>
+<td><a href="#MessageBoxWizardDialog.__testSelectedOptions">__testSelectedOptions</a></td>
+<td>Private method to test the selected options.</td>
 </tr><tr>
 <td><a href="#MessageBoxWizardDialog.getCode">getCode</a></td>
 <td>Public method to get the source code.</td>
@@ -125,11 +125,11 @@
 <dd>
 the button code (string)
 </dd>
-</dl><a NAME="MessageBoxWizardDialog.__testQt42" ID="MessageBoxWizardDialog.__testQt42"></a>
-<h4>MessageBoxWizardDialog.__testQt42</h4>
-<b>__testQt42</b>(<i></i>)
+</dl><a NAME="MessageBoxWizardDialog.__testSelectedOptions" ID="MessageBoxWizardDialog.__testSelectedOptions"></a>
+<h4>MessageBoxWizardDialog.__testSelectedOptions</h4>
+<b>__testSelectedOptions</b>(<i></i>)
 <p>
-        Private method to test the selected options for Qt 4.2.0.
+        Private method to test the selected options.
 </p><a NAME="MessageBoxWizardDialog.getCode" ID="MessageBoxWizardDialog.getCode"></a>
 <h4>MessageBoxWizardDialog.getCode</h4>
 <b>getCode</b>(<i>indLevel, indString</i>)
--- a/eric6/Documentation/Source/eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Plugins.WizardPlugins.PyRegExpWizard.PyRegExpWizardDialog.html	Sat Sep 07 16:10:29 2019 +0200
@@ -195,9 +195,6 @@
 <td><a href="#PyRegExpWizardWidget.on_poslookbehindButton_clicked">on_poslookbehindButton_clicked</a></td>
 <td>Private slot to handle the positive lookbehind toolbutton.</td>
 </tr><tr>
-<td><a href="#PyRegExpWizardWidget.on_py2Button_toggled">on_py2Button_toggled</a></td>
-<td>Private slot called when the Python version was selected.</td>
-</tr><tr>
 <td><a href="#PyRegExpWizardWidget.on_redoButton_clicked">on_redoButton_clicked</a></td>
 <td>Private slot to handle the redo action.</td>
 </tr><tr>
@@ -385,17 +382,7 @@
 <b>on_poslookbehindButton_clicked</b>(<i></i>)
 <p>
         Private slot to handle the positive lookbehind toolbutton.
-</p><a NAME="PyRegExpWizardWidget.on_py2Button_toggled" ID="PyRegExpWizardWidget.on_py2Button_toggled"></a>
-<h4>PyRegExpWizardWidget.on_py2Button_toggled</h4>
-<b>on_py2Button_toggled</b>(<i>checked</i>)
-<p>
-        Private slot called when the Python version was selected.
-</p><dl>
-<dt><i>checked</i></dt>
-<dd>
-state of the Python 2 button (boolean)
-</dd>
-</dl><a NAME="PyRegExpWizardWidget.on_redoButton_clicked" ID="PyRegExpWizardWidget.on_redoButton_clicked"></a>
+</p><a NAME="PyRegExpWizardWidget.on_redoButton_clicked" ID="PyRegExpWizardWidget.on_redoButton_clicked"></a>
 <h4>PyRegExpWizardWidget.on_redoButton_clicked</h4>
 <b>on_redoButton_clicked</b>(<i></i>)
 <p>
--- a/eric6/Documentation/Source/eric6.Preferences.ConfigurationPages.HelpAppearancePage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Preferences.ConfigurationPages.HelpAppearancePage</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Preferences.ConfigurationPages.HelpAppearancePage</h1>
-<p>
-Module implementing the Help Viewers configuration page.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpAppearancePage">HelpAppearancePage</a></td>
-<td>Class implementing the Help Viewer Appearance page.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#create">create</a></td>
-<td>Module function to create the configuration page.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="HelpAppearancePage" ID="HelpAppearancePage"></a>
-<h2>HelpAppearancePage</h2>
-<p>
-    Class implementing the Help Viewer Appearance page.
-</p>
-<h3>Derived from</h3>
-ConfigurationPageBase, Ui_HelpAppearancePage
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpAppearancePage.__init__">HelpAppearancePage</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpAppearancePage.on_fixedFontButton_clicked">on_fixedFontButton_clicked</a></td>
-<td>Private method used to select the fixed-width font.</td>
-</tr><tr>
-<td><a href="#HelpAppearancePage.on_standardFontButton_clicked">on_standardFontButton_clicked</a></td>
-<td>Private method used to select the standard font.</td>
-</tr><tr>
-<td><a href="#HelpAppearancePage.save">save</a></td>
-<td>Public slot to save the Help Viewers configuration.</td>
-</tr><tr>
-<td><a href="#HelpAppearancePage.setMode">setMode</a></td>
-<td>Public method to perform mode dependent setups.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpAppearancePage.__init__" ID="HelpAppearancePage.__init__"></a>
-<h4>HelpAppearancePage (Constructor)</h4>
-<b>HelpAppearancePage</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="HelpAppearancePage.on_fixedFontButton_clicked" ID="HelpAppearancePage.on_fixedFontButton_clicked"></a>
-<h4>HelpAppearancePage.on_fixedFontButton_clicked</h4>
-<b>on_fixedFontButton_clicked</b>(<i></i>)
-<p>
-        Private method used to select the fixed-width font.
-</p><a NAME="HelpAppearancePage.on_standardFontButton_clicked" ID="HelpAppearancePage.on_standardFontButton_clicked"></a>
-<h4>HelpAppearancePage.on_standardFontButton_clicked</h4>
-<b>on_standardFontButton_clicked</b>(<i></i>)
-<p>
-        Private method used to select the standard font.
-</p><a NAME="HelpAppearancePage.save" ID="HelpAppearancePage.save"></a>
-<h4>HelpAppearancePage.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public slot to save the Help Viewers configuration.
-</p><a NAME="HelpAppearancePage.setMode" ID="HelpAppearancePage.setMode"></a>
-<h4>HelpAppearancePage.setMode</h4>
-<b>setMode</b>(<i>displayMode</i>)
-<p>
-        Public method to perform mode dependent setups.
-</p><dl>
-<dt><i>displayMode</i></dt>
-<dd>
-mode of the configuration dialog
-            (ConfigurationWidget.DefaultMode,
-             ConfigurationWidget.HelpBrowserMode,
-             ConfigurationWidget.TrayStarterMode)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="create" ID="create"></a>
-<h2>create</h2>
-<b>create</b>(<i>dlg</i>)
-<p>
-    Module function to create the configuration page.
-</p><dl>
-<dt><i>dlg</i></dt>
-<dd>
-reference to the configuration dialog
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the instantiated page (ConfigurationPageBase)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage</h1>
-<p>
-Module implementing the Flash Cookies Manager configuration page.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpFlashCookieManagerPage">HelpFlashCookieManagerPage</a></td>
-<td>Class implementing the Flash Cookies Manager configuration page.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#create">create</a></td>
-<td>Module function to create the configuration page.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="HelpFlashCookieManagerPage" ID="HelpFlashCookieManagerPage"></a>
-<h2>HelpFlashCookieManagerPage</h2>
-<p>
-    Class implementing the Flash Cookies Manager configuration page.
-</p>
-<h3>Derived from</h3>
-ConfigurationPageBase, Ui_HelpFlashCookieManagerPage
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpFlashCookieManagerPage.__init__">HelpFlashCookieManagerPage</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpFlashCookieManagerPage.save">save</a></td>
-<td>Public slot to save the Flash Cookies Manager configuration.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpFlashCookieManagerPage.__init__" ID="HelpFlashCookieManagerPage.__init__"></a>
-<h4>HelpFlashCookieManagerPage (Constructor)</h4>
-<b>HelpFlashCookieManagerPage</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="HelpFlashCookieManagerPage.save" ID="HelpFlashCookieManagerPage.save"></a>
-<h4>HelpFlashCookieManagerPage.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public slot to save the Flash Cookies Manager configuration.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="create" ID="create"></a>
-<h2>create</h2>
-<b>create</b>(<i>dlg</i>)
-<p>
-    Module function to create the configuration page.
-</p><dl>
-<dt><i>dlg</i></dt>
-<dd>
-reference to the configuration dialog
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the instantiated page (ConfigurationPageBase)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Preferences.ConfigurationPages.HelpInterfacePage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Preferences.ConfigurationPages.HelpInterfacePage</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Preferences.ConfigurationPages.HelpInterfacePage</h1>
-<p>
-Module implementing the Interface configuration page (variant for web browser).
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpInterfacePage">HelpInterfacePage</a></td>
-<td>Class implementing the Interface configuration page (variant for web browser).</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#create">create</a></td>
-<td>Module function to create the configuration page.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="HelpInterfacePage" ID="HelpInterfacePage"></a>
-<h2>HelpInterfacePage</h2>
-<p>
-    Class implementing the Interface configuration page (variant for web
-    browser).
-</p>
-<h3>Derived from</h3>
-ConfigurationPageBase, Ui_HelpInterfacePage
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpInterfacePage.__init__">HelpInterfacePage</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpInterfacePage.__populateStyleCombo">__populateStyleCombo</a></td>
-<td>Private method to populate the style combo box.</td>
-</tr><tr>
-<td><a href="#HelpInterfacePage.save">save</a></td>
-<td>Public slot to save the Interface configuration.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpInterfacePage.__init__" ID="HelpInterfacePage.__init__"></a>
-<h4>HelpInterfacePage (Constructor)</h4>
-<b>HelpInterfacePage</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="HelpInterfacePage.__populateStyleCombo" ID="HelpInterfacePage.__populateStyleCombo"></a>
-<h4>HelpInterfacePage.__populateStyleCombo</h4>
-<b>__populateStyleCombo</b>(<i></i>)
-<p>
-        Private method to populate the style combo box.
-</p><a NAME="HelpInterfacePage.save" ID="HelpInterfacePage.save"></a>
-<h4>HelpInterfacePage.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public slot to save the Interface configuration.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="create" ID="create"></a>
-<h2>create</h2>
-<b>create</b>(<i>dlg</i>)
-<p>
-    Module function to create the configuration page.
-</p><dl>
-<dt><i>dlg</i></dt>
-<dd>
-reference to the configuration dialog
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the instantiated page (ConfigurationPageBase)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Preferences.ConfigurationPages.HelpVirusTotalPage</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Preferences.ConfigurationPages.HelpVirusTotalPage</h1>
-<p>
-Module implementing VirusTotal configuration page (help viewer variant).
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpVirusTotalPage">HelpVirusTotalPage</a></td>
-<td>Class implementing VirusTotal configuration page (help viewer variant).</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#create">create</a></td>
-<td>Module function to create the configuration page.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="HelpVirusTotalPage" ID="HelpVirusTotalPage"></a>
-<h2>HelpVirusTotalPage</h2>
-<p>
-    Class implementing VirusTotal configuration page (help viewer variant).
-</p>
-<h3>Derived from</h3>
-ConfigurationPageBase, Ui_HelpVirusTotalPage
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpVirusTotalPage.__init__">HelpVirusTotalPage</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpVirusTotalPage.__checkServiceKeyFinished">__checkServiceKeyFinished</a></td>
-<td>Private slot to receive the result of the service key check.</td>
-</tr><tr>
-<td><a href="#HelpVirusTotalPage.on_testButton_clicked">on_testButton_clicked</a></td>
-<td>Private slot to test the entered service key.</td>
-</tr><tr>
-<td><a href="#HelpVirusTotalPage.on_vtServiceKeyEdit_textChanged">on_vtServiceKeyEdit_textChanged</a></td>
-<td>Private slot to handle changes of the service key.</td>
-</tr><tr>
-<td><a href="#HelpVirusTotalPage.save">save</a></td>
-<td>Public slot to save the VirusTotal configuration.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpVirusTotalPage.__init__" ID="HelpVirusTotalPage.__init__"></a>
-<h4>HelpVirusTotalPage (Constructor)</h4>
-<b>HelpVirusTotalPage</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="HelpVirusTotalPage.__checkServiceKeyFinished" ID="HelpVirusTotalPage.__checkServiceKeyFinished"></a>
-<h4>HelpVirusTotalPage.__checkServiceKeyFinished</h4>
-<b>__checkServiceKeyFinished</b>(<i>result, msg</i>)
-<p>
-        Private slot to receive the result of the service key check.
-</p><dl>
-<dt><i>result</i></dt>
-<dd>
-flag indicating a successful check (boolean)
-</dd><dt><i>msg</i></dt>
-<dd>
-network error message (str)
-</dd>
-</dl><a NAME="HelpVirusTotalPage.on_testButton_clicked" ID="HelpVirusTotalPage.on_testButton_clicked"></a>
-<h4>HelpVirusTotalPage.on_testButton_clicked</h4>
-<b>on_testButton_clicked</b>(<i></i>)
-<p>
-        Private slot to test the entered service key.
-</p><a NAME="HelpVirusTotalPage.on_vtServiceKeyEdit_textChanged" ID="HelpVirusTotalPage.on_vtServiceKeyEdit_textChanged"></a>
-<h4>HelpVirusTotalPage.on_vtServiceKeyEdit_textChanged</h4>
-<b>on_vtServiceKeyEdit_textChanged</b>(<i>txt</i>)
-<p>
-        Private slot to handle changes of the service key.
-</p><dl>
-<dt><i>txt</i></dt>
-<dd>
-entered service key (string)
-</dd>
-</dl><a NAME="HelpVirusTotalPage.save" ID="HelpVirusTotalPage.save"></a>
-<h4>HelpVirusTotalPage.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public slot to save the VirusTotal configuration.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="create" ID="create"></a>
-<h2>create</h2>
-<b>create</b>(<i>dlg</i>)
-<p>
-    Module function to create the configuration page.
-</p><dl>
-<dt><i>dlg</i></dt>
-<dd>
-reference to the configuration dialog
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the instantiated page (ConfigurationPageBase)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Preferences.ConfigurationPages.HelpWebBrowserPage</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Preferences.ConfigurationPages.HelpWebBrowserPage</h1>
-<p>
-Module implementing the Help web browser configuration page.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#HelpWebBrowserPage">HelpWebBrowserPage</a></td>
-<td>Class implementing the Help web browser configuration page.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#create">create</a></td>
-<td>Module function to create the configuration page.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="HelpWebBrowserPage" ID="HelpWebBrowserPage"></a>
-<h2>HelpWebBrowserPage</h2>
-<p>
-    Class implementing the Help web browser configuration page.
-</p>
-<h3>Derived from</h3>
-ConfigurationPageBase, Ui_HelpWebBrowserPage
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#HelpWebBrowserPage.__init__">HelpWebBrowserPage</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#HelpWebBrowserPage.on_defaultHomeButton_clicked">on_defaultHomeButton_clicked</a></td>
-<td>Private slot to set the default home page.</td>
-</tr><tr>
-<td><a href="#HelpWebBrowserPage.on_noCacheHostsButton_clicked">on_noCacheHostsButton_clicked</a></td>
-<td>Private slot to edit the list of hosts exempted from caching.</td>
-</tr><tr>
-<td><a href="#HelpWebBrowserPage.on_refererWhitelistButton_clicked">on_refererWhitelistButton_clicked</a></td>
-<td>Private slot to edit the referer whitelist.</td>
-</tr><tr>
-<td><a href="#HelpWebBrowserPage.on_setCurrentPageButton_clicked">on_setCurrentPageButton_clicked</a></td>
-<td>Private slot to set the current page as the home page.</td>
-</tr><tr>
-<td><a href="#HelpWebBrowserPage.on_startupCombo_currentIndexChanged">on_startupCombo_currentIndexChanged</a></td>
-<td>Private slot to enable elements depending on the selected startup entry.</td>
-</tr><tr>
-<td><a href="#HelpWebBrowserPage.save">save</a></td>
-<td>Public slot to save the Help Viewers configuration.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="HelpWebBrowserPage.__init__" ID="HelpWebBrowserPage.__init__"></a>
-<h4>HelpWebBrowserPage (Constructor)</h4>
-<b>HelpWebBrowserPage</b>(<i>configDialog</i>)
-<p>
-        Constructor
-</p><dl>
-<dt><i>configDialog</i></dt>
-<dd>
-reference to the configuration dialog
-            (ConfigurationDialog)
-</dd>
-</dl><a NAME="HelpWebBrowserPage.on_defaultHomeButton_clicked" ID="HelpWebBrowserPage.on_defaultHomeButton_clicked"></a>
-<h4>HelpWebBrowserPage.on_defaultHomeButton_clicked</h4>
-<b>on_defaultHomeButton_clicked</b>(<i></i>)
-<p>
-        Private slot to set the default home page.
-</p><a NAME="HelpWebBrowserPage.on_noCacheHostsButton_clicked" ID="HelpWebBrowserPage.on_noCacheHostsButton_clicked"></a>
-<h4>HelpWebBrowserPage.on_noCacheHostsButton_clicked</h4>
-<b>on_noCacheHostsButton_clicked</b>(<i></i>)
-<p>
-        Private slot to edit the list of hosts exempted from caching.
-</p><a NAME="HelpWebBrowserPage.on_refererWhitelistButton_clicked" ID="HelpWebBrowserPage.on_refererWhitelistButton_clicked"></a>
-<h4>HelpWebBrowserPage.on_refererWhitelistButton_clicked</h4>
-<b>on_refererWhitelistButton_clicked</b>(<i></i>)
-<p>
-        Private slot to edit the referer whitelist.
-</p><a NAME="HelpWebBrowserPage.on_setCurrentPageButton_clicked" ID="HelpWebBrowserPage.on_setCurrentPageButton_clicked"></a>
-<h4>HelpWebBrowserPage.on_setCurrentPageButton_clicked</h4>
-<b>on_setCurrentPageButton_clicked</b>(<i></i>)
-<p>
-        Private slot to set the current page as the home page.
-</p><a NAME="HelpWebBrowserPage.on_startupCombo_currentIndexChanged" ID="HelpWebBrowserPage.on_startupCombo_currentIndexChanged"></a>
-<h4>HelpWebBrowserPage.on_startupCombo_currentIndexChanged</h4>
-<b>on_startupCombo_currentIndexChanged</b>(<i>index</i>)
-<p>
-        Private slot to enable elements depending on the selected startup
-        entry.
-</p><dl>
-<dt><i>index</i></dt>
-<dd>
-index of the selected entry (integer)
-</dd>
-</dl><a NAME="HelpWebBrowserPage.save" ID="HelpWebBrowserPage.save"></a>
-<h4>HelpWebBrowserPage.save</h4>
-<b>save</b>(<i></i>)
-<p>
-        Public slot to save the Help Viewers configuration.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="create" ID="create"></a>
-<h2>create</h2>
-<b>create</b>(<i>dlg</i>)
-<p>
-    Module function to create the configuration page.
-</p><dl>
-<dt><i>dlg</i></dt>
-<dd>
-reference to the configuration dialog
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the instantiated page (ConfigurationPageBase)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Preferences.ConfigurationPages.QtPage.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Preferences.ConfigurationPages.QtPage.html	Sat Sep 07 16:10:29 2019 +0200
@@ -63,13 +63,13 @@
 <td><a href="#QtPage.__init__">QtPage</a></td>
 <td>Constructor</td>
 </tr><tr>
-<td><a href="#QtPage.__updateQt4Sample">__updateQt4Sample</a></td>
-<td>Private slot to update the Qt4 tools sample label.</td>
+<td><a href="#QtPage.__updateQtSample">__updateQtSample</a></td>
+<td>Private slot to update the Qt tools sample label.</td>
 </tr><tr>
-<td><a href="#QtPage.on_qt4PostfixEdit_textChanged">on_qt4PostfixEdit_textChanged</a></td>
+<td><a href="#QtPage.on_qtPostfixEdit_textChanged">on_qtPostfixEdit_textChanged</a></td>
 <td>Private slot to handle a change in the entered Qt directory.</td>
 </tr><tr>
-<td><a href="#QtPage.on_qt4PrefixEdit_textChanged">on_qt4PrefixEdit_textChanged</a></td>
+<td><a href="#QtPage.on_qtPrefixEdit_textChanged">on_qtPrefixEdit_textChanged</a></td>
 <td>Private slot to handle a change in the entered Qt directory.</td>
 </tr><tr>
 <td><a href="#QtPage.save">save</a></td>
@@ -85,14 +85,14 @@
 <b>QtPage</b>(<i></i>)
 <p>
         Constructor
-</p><a NAME="QtPage.__updateQt4Sample" ID="QtPage.__updateQt4Sample"></a>
-<h4>QtPage.__updateQt4Sample</h4>
-<b>__updateQt4Sample</b>(<i></i>)
+</p><a NAME="QtPage.__updateQtSample" ID="QtPage.__updateQtSample"></a>
+<h4>QtPage.__updateQtSample</h4>
+<b>__updateQtSample</b>(<i></i>)
 <p>
-        Private slot to update the Qt4 tools sample label.
-</p><a NAME="QtPage.on_qt4PostfixEdit_textChanged" ID="QtPage.on_qt4PostfixEdit_textChanged"></a>
-<h4>QtPage.on_qt4PostfixEdit_textChanged</h4>
-<b>on_qt4PostfixEdit_textChanged</b>(<i>txt</i>)
+        Private slot to update the Qt tools sample label.
+</p><a NAME="QtPage.on_qtPostfixEdit_textChanged" ID="QtPage.on_qtPostfixEdit_textChanged"></a>
+<h4>QtPage.on_qtPostfixEdit_textChanged</h4>
+<b>on_qtPostfixEdit_textChanged</b>(<i>txt</i>)
 <p>
         Private slot to handle a change in the entered Qt directory.
 </p><dl>
@@ -100,9 +100,9 @@
 <dd>
 the entered string (string)
 </dd>
-</dl><a NAME="QtPage.on_qt4PrefixEdit_textChanged" ID="QtPage.on_qt4PrefixEdit_textChanged"></a>
-<h4>QtPage.on_qt4PrefixEdit_textChanged</h4>
-<b>on_qt4PrefixEdit_textChanged</b>(<i>txt</i>)
+</dl><a NAME="QtPage.on_qtPrefixEdit_textChanged" ID="QtPage.on_qtPrefixEdit_textChanged"></a>
+<h4>QtPage.on_qtPrefixEdit_textChanged</h4>
+<b>on_qtPrefixEdit_textChanged</b>(<i>txt</i>)
 <p>
         Private slot to handle a change in the entered Qt directory.
 </p><dl>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Documentation/Source/eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage.html	Sat Sep 07 16:10:29 2019 +0200
@@ -0,0 +1,105 @@
+<!DOCTYPE html>
+<html><head>
+<title>eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage</title>
+<meta charset="UTF-8">
+<style>
+body {
+    background: #EDECE6;
+    margin: 0em 1em 10em 1em;
+    color: black;
+}
+
+h1 { color: white; background: #85774A; }
+h2 { color: white; background: #85774A; }
+h3 { color: white; background: #9D936E; }
+h4 { color: white; background: #9D936E; }
+    
+a { color: #BA6D36; }
+
+</style>
+</head>
+<body><a NAME="top" ID="top"></a>
+<h1>eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage</h1>
+<p>
+Module implementing the Flash Cookies Manager configuration page.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#WebBrowserFlashCookieManagerPage">WebBrowserFlashCookieManagerPage</a></td>
+<td>Class implementing the Flash Cookies Manager configuration page.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr>
+<td><a href="#create">create</a></td>
+<td>Module function to create the configuration page.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="WebBrowserFlashCookieManagerPage" ID="WebBrowserFlashCookieManagerPage"></a>
+<h2>WebBrowserFlashCookieManagerPage</h2>
+<p>
+    Class implementing the Flash Cookies Manager configuration page.
+</p>
+<h3>Derived from</h3>
+ConfigurationPageBase, Ui_WebBrowserFlashCookieManagerPage
+<h3>Class Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Class Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Methods</h3>
+<table>
+<tr>
+<td><a href="#WebBrowserFlashCookieManagerPage.__init__">WebBrowserFlashCookieManagerPage</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#WebBrowserFlashCookieManagerPage.save">save</a></td>
+<td>Public slot to save the Flash Cookies Manager configuration.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="WebBrowserFlashCookieManagerPage.__init__" ID="WebBrowserFlashCookieManagerPage.__init__"></a>
+<h4>WebBrowserFlashCookieManagerPage (Constructor)</h4>
+<b>WebBrowserFlashCookieManagerPage</b>(<i></i>)
+<p>
+        Constructor
+</p><a NAME="WebBrowserFlashCookieManagerPage.save" ID="WebBrowserFlashCookieManagerPage.save"></a>
+<h4>WebBrowserFlashCookieManagerPage.save</h4>
+<b>save</b>(<i></i>)
+<p>
+        Public slot to save the Flash Cookies Manager configuration.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="create" ID="create"></a>
+<h2>create</h2>
+<b>create</b>(<i>dlg</i>)
+<p>
+    Module function to create the configuration page.
+</p><dl>
+<dt><i>dlg</i></dt>
+<dd>
+reference to the configuration dialog
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+reference to the instantiated page (ConfigurationPageBase)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Preferences.__init__.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Preferences.__init__.html	Sat Sep 07 16:10:29 2019 +0200
@@ -161,7 +161,7 @@
 <td>Module function to retrieve the Qt5DocDir setting.</td>
 </tr><tr>
 <td><a href="#getQtTranslationsDir">getQtTranslationsDir</a></td>
-<td>Module function to retrieve the Qt4TranslationsDir or Qt5TranslationsDir setting depending on the current Qt version.</td>
+<td>Module function to retrieve the Qt5TranslationsDir setting depending on the current Qt version.</td>
 </tr><tr>
 <td><a href="#getShell">getShell</a></td>
 <td>Module function to retrieve the various shell settings.</td>
@@ -393,16 +393,13 @@
 object
 <h3>Class Attributes</h3>
 <table>
-<tr><td>condaDefaults</td></tr><tr><td>cooperationDefaults</td></tr><tr><td>corbaDefaults</td></tr><tr><td>debuggerDefaults</td></tr><tr><td>diffColourDefaults</td></tr><tr><td>docuViewerDefaults</td></tr><tr><td>editorColourDefaults</td></tr><tr><td>editorDefaults</td></tr><tr><td>editorExporterDefaults</td></tr><tr><td>editorOtherFontsDefaults</td></tr><tr><td>editorTypingDefaults</td></tr><tr><td>geometryDefaults</td></tr><tr><td>graphicsDefaults</td></tr><tr><td>helpDefaults</td></tr><tr><td>hexEditorDefaults</td></tr><tr><td>iconEditorDefaults</td></tr><tr><td>iconsDefaults</td></tr><tr><td>ircDefaults</td></tr><tr><td>microPythonDefaults</td></tr><tr><td>multiProjectDefaults</td></tr><tr><td>pipDefaults</td></tr><tr><td>pluginManagerDefaults</td></tr><tr><td>printerDefaults</td></tr><tr><td>projectBrowserColourDefaults</td></tr><tr><td>projectBrowserFlagsDefaults</td></tr><tr><td>projectDefaults</td></tr><tr><td>protobufDefaults</td></tr><tr><td>pyflakesDefaults</td></tr><tr><td>qtDefaults</td></tr><tr><td>resetLayout</td></tr><tr><td>shellDefaults</td></tr><tr><td>sysDefaults</td></tr><tr><td>tasksDefaults</td></tr><tr><td>templatesDefaults</td></tr><tr><td>trayStarterDefaults</td></tr><tr><td>uiDefaults</td></tr><tr><td>userDefaults</td></tr><tr><td>varDefaults</td></tr><tr><td>vcsDefaults</td></tr><tr><td>webBrowserDefaults</td></tr><tr><td>webEngineSettingsIntitialized</td></tr><tr><td>webSettingsIntitialized</td></tr>
+<tr><td>condaDefaults</td></tr><tr><td>cooperationDefaults</td></tr><tr><td>corbaDefaults</td></tr><tr><td>debuggerDefaults</td></tr><tr><td>diffColourDefaults</td></tr><tr><td>docuViewerDefaults</td></tr><tr><td>editorColourDefaults</td></tr><tr><td>editorDefaults</td></tr><tr><td>editorExporterDefaults</td></tr><tr><td>editorOtherFontsDefaults</td></tr><tr><td>editorTypingDefaults</td></tr><tr><td>geometryDefaults</td></tr><tr><td>graphicsDefaults</td></tr><tr><td>helpDefaults</td></tr><tr><td>hexEditorDefaults</td></tr><tr><td>iconEditorDefaults</td></tr><tr><td>iconsDefaults</td></tr><tr><td>ircDefaults</td></tr><tr><td>microPythonDefaults</td></tr><tr><td>multiProjectDefaults</td></tr><tr><td>pipDefaults</td></tr><tr><td>pluginManagerDefaults</td></tr><tr><td>printerDefaults</td></tr><tr><td>projectBrowserColourDefaults</td></tr><tr><td>projectBrowserFlagsDefaults</td></tr><tr><td>projectDefaults</td></tr><tr><td>protobufDefaults</td></tr><tr><td>pyflakesDefaults</td></tr><tr><td>qtDefaults</td></tr><tr><td>resetLayout</td></tr><tr><td>shellDefaults</td></tr><tr><td>sysDefaults</td></tr><tr><td>tasksDefaults</td></tr><tr><td>templatesDefaults</td></tr><tr><td>trayStarterDefaults</td></tr><tr><td>uiDefaults</td></tr><tr><td>userDefaults</td></tr><tr><td>varDefaults</td></tr><tr><td>vcsDefaults</td></tr><tr><td>webBrowserDefaults</td></tr><tr><td>webEngineSettingsIntitialized</td></tr>
 </table>
 <h3>Class Methods</h3>
 <table>
 <tr>
 <td><a href="#Prefs.initWebEngineSettingsDefaults">initWebEngineSettingsDefaults</a></td>
 <td>Class method to initialize the web engine settings related defaults.</td>
-</tr><tr>
-<td><a href="#Prefs.initWebSettingsDefaults">initWebSettingsDefaults</a></td>
-<td>Class method to initialize the web settings related defaults.</td>
 </tr>
 </table>
 <h3>Methods</h3>
@@ -418,11 +415,6 @@
 <b>initWebEngineSettingsDefaults</b>(<i></i>)
 <p>
         Class method to initialize the web engine settings related defaults.
-</p><a NAME="Prefs.initWebSettingsDefaults" ID="Prefs.initWebSettingsDefaults"></a>
-<h4>Prefs.initWebSettingsDefaults (class method)</h4>
-<b>initWebSettingsDefaults</b>(<i></i>)
-<p>
-        Class method to initialize the web settings related defaults.
 </p>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
@@ -1216,7 +1208,7 @@
 </dl><dl>
 <dt>Returns:</dt>
 <dd>
-the requested Qt4DocDir setting (string)
+the requested Qt5DocDir setting (string)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -1225,7 +1217,7 @@
 <h2>getQtTranslationsDir</h2>
 <b>getQtTranslationsDir</b>(<i>prefClass=Prefs</i>)
 <p>
-    Module function to retrieve the Qt4TranslationsDir or Qt5TranslationsDir
+    Module function to retrieve the Qt5TranslationsDir
     setting depending on the current Qt version.
 </p><dl>
 <dt><i>prefClass</i></dt>
--- a/eric6/Documentation/Source/eric6.Project.CreateDialogCodeDialog.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Project.CreateDialogCodeDialog.html	Sat Sep 07 16:10:29 2019 +0200
@@ -21,7 +21,7 @@
 <body><a NAME="top" ID="top"></a>
 <h1>eric6.Project.CreateDialogCodeDialog</h1>
 <p>
-Module implementing a dialog to generate code for a Qt4/Qt5 dialog.
+Module implementing a dialog to generate code for a Qt5 dialog.
 </p>
 <h3>Global Attributes</h3>
 <table>
@@ -31,7 +31,7 @@
 <table>
 <tr>
 <td><a href="#CreateDialogCodeDialog">CreateDialogCodeDialog</a></td>
-<td>Class implementing a dialog to generate code for a Qt4/Qt5 dialog.</td>
+<td>Class implementing a dialog to generate code for a Qt5 dialog.</td>
 </tr>
 </table>
 <h3>Functions</h3>
@@ -42,7 +42,7 @@
 <a NAME="CreateDialogCodeDialog" ID="CreateDialogCodeDialog"></a>
 <h2>CreateDialogCodeDialog</h2>
 <p>
-    Class implementing a dialog to generate code for a Qt4/Qt5 dialog.
+    Class implementing a dialog to generate code for a Qt5 dialog.
 </p>
 <h3>Derived from</h3>
 QDialog, Ui_CreateDialogCodeDialog
--- a/eric6/Documentation/Source/eric6.QScintilla.QsciScintillaCompat.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.QScintilla.QsciScintillaCompat.html	Sat Sep 07 16:10:29 2019 +0200
@@ -277,12 +277,6 @@
 <td><a href="#QsciScintillaCompat.indicatorDefine">indicatorDefine</a></td>
 <td>Public method to define the appearance of an indicator.</td>
 </tr><tr>
-<td><a href="#QsciScintillaCompat.inputMethodEvent">inputMethodEvent</a></td>
-<td>Protected method to cope with a glitch in some Qscintilla versions handling input events.</td>
-</tr><tr>
-<td><a href="#QsciScintillaCompat.inputMethodQuery">inputMethodQuery</a></td>
-<td>Public method to cope with a glitch in some Qscintilla versions handling input events.</td>
-</tr><tr>
 <td><a href="#QsciScintillaCompat.insert">insert</a></td>
 <td>Public method to insert text at the cursor position.</td>
 </tr><tr>
@@ -1321,39 +1315,6 @@
 <dd>
 the indicator or style are not valid
 </dd>
-</dl><a NAME="QsciScintillaCompat.inputMethodEvent" ID="QsciScintillaCompat.inputMethodEvent"></a>
-<h4>QsciScintillaCompat.inputMethodEvent</h4>
-<b>inputMethodEvent</b>(<i>evt</i>)
-<p>
-            Protected method to cope with a glitch in some Qscintilla versions
-            handling input events.
-</p><p>
-            Note: This simply disables the Qscintilla behavior.
-</p><dl>
-<dt><i>evt</i></dt>
-<dd>
-reference to the input method event object
-                (QInputMethodEvent)
-</dd>
-</dl><a NAME="QsciScintillaCompat.inputMethodQuery" ID="QsciScintillaCompat.inputMethodQuery"></a>
-<h4>QsciScintillaCompat.inputMethodQuery</h4>
-<b>inputMethodQuery</b>(<i>query</i>)
-<p>
-            Public method to cope with a glitch in some Qscintilla versions
-            handling input events.
-</p><p>
-            Note: This simply disables the Qscintilla behavior.
-</p><dl>
-<dt><i>query</i></dt>
-<dd>
-reference to the input method query object
-                (Qt.InputMethodQuery)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-object containing the requested information
-</dd>
 </dl><a NAME="QsciScintillaCompat.insert" ID="QsciScintillaCompat.insert"></a>
 <h4>QsciScintillaCompat.insert</h4>
 <b>insert</b>(<i>txt</i>)
@@ -1413,7 +1374,7 @@
 <h4>QsciScintillaCompat.lineIndexFromPosition</h4>
 <b>lineIndexFromPosition</b>(<i>pos</i>)
 <p>
-            Public method to convert an absolute position to line and index.
+        Public method to convert an absolute position to line and index.
 </p><dl>
 <dt><i>pos</i></dt>
 <dd>
@@ -1510,7 +1471,7 @@
 <h4>QsciScintillaCompat.positionFromLineIndex</h4>
 <b>positionFromLineIndex</b>(<i>line, index</i>)
 <p>
-            Public method to convert line and index to an absolute position.
+        Public method to convert line and index to an absolute position.
 </p><dl>
 <dt><i>line</i></dt>
 <dd>
--- a/eric6/Documentation/Source/eric6.QScintilla.SpellChecker.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.QScintilla.SpellChecker.html	Sat Sep 07 16:10:29 2019 +0200
@@ -137,9 +137,6 @@
 <td><a href="#SpellChecker.initCheck">initCheck</a></td>
 <td>Public method to initialize a spell check.</td>
 </tr><tr>
-<td><a href="#SpellChecker.next">next</a></td>
-<td>Public method to advance to the next error.</td>
-</tr><tr>
 <td><a href="#SpellChecker.remove">remove</a></td>
 <td>Public method to add a word to the personal exclude list.</td>
 </tr><tr>
@@ -481,16 +478,6 @@
 <dd>
 flag indicating successful initialization (boolean)
 </dd>
-</dl><a NAME="SpellChecker.next" ID="SpellChecker.next"></a>
-<h4>SpellChecker.next</h4>
-<b>next</b>(<i></i>)
-<p>
-            Public method to advance to the next error.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-self
-</dd>
 </dl><a NAME="SpellChecker.remove" ID="SpellChecker.remove"></a>
 <h4>SpellChecker.remove</h4>
 <b>remove</b>(<i>word</i>)
--- a/eric6/Documentation/Source/eric6.Toolbox.PyQt4ImportHook.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Toolbox.PyQt4ImportHook</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.Toolbox.PyQt4ImportHook</h1>
-<p>
-Module implementing an import hook converting PyQt5 imports to PyQt4 imports.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#PyQt4Importer">PyQt4Importer</a></td>
-<td>Class implementing an importer converting PyQt5 imports to PyQt4 imports.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<hr /><hr />
-<a NAME="PyQt4Importer" ID="PyQt4Importer"></a>
-<h2>PyQt4Importer</h2>
-<p>
-    Class implementing an importer converting PyQt5 imports to PyQt4
-    imports.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#PyQt4Importer.__init__">PyQt4Importer</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#PyQt4Importer.find_module">find_module</a></td>
-<td>Public method returning the module loader.</td>
-</tr><tr>
-<td><a href="#PyQt4Importer.load_module">load_module</a></td>
-<td>Public method to load a module.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr>
-<td><a href="#PyQt4Importer.QComboBox_currentData">QComboBox_currentData</a></td>
-<td>Static method to emulate the currentData method of Qt5.</td>
-</tr>
-</table>
-<a NAME="PyQt4Importer.__init__" ID="PyQt4Importer.__init__"></a>
-<h4>PyQt4Importer (Constructor)</h4>
-<b>PyQt4Importer</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="PyQt4Importer.find_module" ID="PyQt4Importer.find_module"></a>
-<h4>PyQt4Importer.find_module</h4>
-<b>find_module</b>(<i>fullname, path=None</i>)
-<p>
-        Public method returning the module loader.
-</p><dl>
-<dt><i>fullname</i></dt>
-<dd>
-name of the module to be loaded (string)
-</dd><dt><i>path</i></dt>
-<dd>
-path to resolve the module name (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-module loader object
-</dd>
-</dl><a NAME="PyQt4Importer.load_module" ID="PyQt4Importer.load_module"></a>
-<h4>PyQt4Importer.load_module</h4>
-<b>load_module</b>(<i>fullname</i>)
-<p>
-        Public method to load a module.
-</p><dl>
-<dt><i>fullname</i></dt>
-<dd>
-name of the module to be loaded (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the loaded module (module)
-</dd>
-</dl><a NAME="PyQt4Importer.QComboBox_currentData" ID="PyQt4Importer.QComboBox_currentData"></a>
-<h4>PyQt4Importer.QComboBox_currentData (static)</h4>
-<b>QComboBox_currentData</b>(<i>role=None</i>)
-<p>
-        Static method to emulate the currentData method of Qt5.
-</p><dl>
-<dt><i>other</i> (QComboBox)</dt>
-<dd>
-reference to the combo box to get the user data of
-</dd><dt><i>role</i> (int)</dt>
-<dd>
-role of which data should be retrieved
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-stored data at current selection
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-any
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.Tools.TrayStarter.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Tools.TrayStarter.html	Sat Sep 07 16:10:29 2019 +0200
@@ -166,14 +166,11 @@
 </table>
 <a NAME="TrayStarter.__init__" ID="TrayStarter.__init__"></a>
 <h4>TrayStarter (Constructor)</h4>
-<b>TrayStarter</b>(<i>usePyQt4, settingsDir</i>)
+<b>TrayStarter</b>(<i>settingsDir</i>)
 <p>
         Constructor
 </p><dl>
-<dt><i>usePyQt4</i> (bool)</dt>
-<dd>
-flag indicating to use PyQt4
-</dd><dt><i>settingsDir</i> (str)</dt>
+<dt><i>settingsDir</i> (str)</dt>
 <dd>
 directory to be used for the settings files
 </dd>
--- a/eric6/Documentation/Source/eric6.Tools.webBrowserSupport.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Tools.webBrowserSupport.html	Sat Sep 07 16:10:29 2019 +0200
@@ -23,8 +23,8 @@
 <p>
 Script to determine the supported web browser variant.
 </p><p>
-It looks for QtWebEngine first and the old QtWebKit thereafter. It reports the
-variant found or the string 'None' if both are absent.
+It looks for QtWebEngine. It reports the variant found or the string 'None' if
+it is absent.
 </p>
 <h3>Global Attributes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.UI.Previewers.PreviewerHTML.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.UI.Previewers.PreviewerHTML.html	Sat Sep 07 16:10:29 2019 +0200
@@ -376,9 +376,6 @@
 <td><a href="#PreviewerHTML.on_jsCheckBox_clicked">on_jsCheckBox_clicked</a></td>
 <td>Private slot to enable/disable JavaScript.</td>
 </tr><tr>
-<td><a href="#PreviewerHTML.on_previewView_linkClicked">on_previewView_linkClicked</a></td>
-<td>Private slot handling the clicking of a link.</td>
-</tr><tr>
 <td><a href="#PreviewerHTML.on_previewView_titleChanged">on_previewView_titleChanged</a></td>
 <td>Private slot to handle a change of the title.</td>
 </tr><tr>
@@ -486,16 +483,6 @@
 <dd>
 state of the checkbox (boolean)
 </dd>
-</dl><a NAME="PreviewerHTML.on_previewView_linkClicked" ID="PreviewerHTML.on_previewView_linkClicked"></a>
-<h4>PreviewerHTML.on_previewView_linkClicked</h4>
-<b>on_previewView_linkClicked</b>(<i>url</i>)
-<p>
-        Private slot handling the clicking of a link.
-</p><dl>
-<dt><i>url</i> (QUrl)</dt>
-<dd>
-URL of the clicked link
-</dd>
 </dl><a NAME="PreviewerHTML.on_previewView_titleChanged" ID="PreviewerHTML.on_previewView_titleChanged"></a>
 <h4>PreviewerHTML.on_previewView_titleChanged</h4>
 <b>on_previewView_titleChanged</b>(<i>title</i>)
--- a/eric6/Documentation/Source/eric6.Utilities.__init__.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.Utilities.__init__.html	Sat Sep 07 16:10:29 2019 +0200
@@ -226,9 +226,6 @@
 <td><a href="#prepareQtMacBundle">prepareQtMacBundle</a></td>
 <td>Module function for starting Qt tools that are Mac OS X bundles.</td>
 </tr><tr>
-<td><a href="#quote">quote</a></td>
-<td>Replacement for the urllib.quote function because of unicode problems.</td>
-</tr><tr>
 <td><a href="#readEncodedFile">readEncodedFile</a></td>
 <td>Function to read a file and decode its contents into proper text.</td>
 </tr><tr>
@@ -1640,24 +1637,6 @@
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
-<a NAME="quote" ID="quote"></a>
-<h2>quote</h2>
-<b>quote</b>(<i>url</i>)
-<p>
-        Replacement for the urllib.quote function because of unicode problems.
-</p><dl>
-<dt><i>url</i></dt>
-<dd>
-text to quote (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-quoted url (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
 <a NAME="readEncodedFile" ID="readEncodedFile"></a>
 <h2>readEncodedFile</h2>
 <b>readEncodedFile</b>(<i>filename</i>)
--- a/eric6/Documentation/Source/eric6.VCS.VersionControl.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.VCS.VersionControl.html	Sat Sep 07 16:10:29 2019 +0200
@@ -830,7 +830,7 @@
 <dt>Returns:</dt>
 <dd>
 tuple containing a flag indicating an execution without errors
-            and a flag indicating the version controll status
+            and a flag indicating the version control status
 </dd>
 </dl><dl>
 <dt>Return Type:</dt>
--- a/eric6/Documentation/Source/eric6.WebBrowser.Bookmarks.BookmarksToolBar.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.WebBrowser.Bookmarks.BookmarksToolBar.html	Sat Sep 07 16:10:29 2019 +0200
@@ -124,7 +124,7 @@
 </p><dl>
 <dt><i>mainWindow</i></dt>
 <dd>
-reference to the main window (HelpWindow)
+reference to the main window (WebBrowserWindow)
 </dd><dt><i>model</i></dt>
 <dd>
 reference to the bookmarks model (BookmarksModel)
--- a/eric6/Documentation/Source/eric6.WebBrowser.SafeBrowsing.SafeBrowsingUtilities.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.WebBrowser.SafeBrowsing.SafeBrowsingUtilities</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.WebBrowser.SafeBrowsing.SafeBrowsingUtilities</h1>
-<p>
-Module implementing some utilities for Google Safe Browsing.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#toHex">toHex</a></td>
-<td>Public method to convert a bytes array to a hex string.</td>
-</tr><tr>
-<td><a href="#toHex_1">toHex</a></td>
-<td>Public method to convert a bytes array to a hex string.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="toHex" ID="toHex"></a>
-<h2>toHex</h2>
-<b>toHex</b>(<i>value</i>)
-<p>
-        Public method to convert a bytes array to a hex string.
-</p><dl>
-<dt><i>value</i> (bytes)</dt>
-<dd>
-value to be converted
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-hex string
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="toHex_1" ID="toHex_1"></a>
-<h2>toHex</h2>
-<b>toHex</b>(<i>value</i>)
-<p>
-        Public method to convert a bytes array to a hex string.
-</p><dl>
-<dt><i>value</i> (bytes)</dt>
-<dd>
-value to be converted
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-hex string
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.WebBrowser.Tools.FilePrinter.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,587 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.WebBrowser.Tools.FilePrinter</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.WebBrowser.Tools.FilePrinter</h1>
-<p>
-Module implementing an object for printing of files.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>_FilePrintJobs</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr>
-<td><a href="#FilePrinter">FilePrinter</a></td>
-<td>Class implementing methods for printing on *nix systems.</td>
-</tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#isCupsAvailable">isCupsAvailable</a></td>
-<td>Static method to test the availability of CUPS.</td>
-</tr><tr>
-<td><a href="#printFile">printFile</a></td>
-<td>Static method to print a file.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="FilePrinter" ID="FilePrinter"></a>
-<h2>FilePrinter</h2>
-<p>
-    Class implementing methods for printing on *nix systems.
-</p>
-<h3>Derived from</h3>
-object
-<h3>Class Attributes</h3>
-<table>
-<tr><td>ApplicationDeletesFiles</td></tr><tr><td>ApplicationSelectsPages</td></tr><tr><td>SystemDeletesFiles</td></tr><tr><td>SystemSelectsPages</td></tr>
-</table>
-<h3>Class Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Methods</h3>
-<table>
-<tr>
-<td><a href="#FilePrinter.__init__">FilePrinter</a></td>
-<td>Constructor</td>
-</tr><tr>
-<td><a href="#FilePrinter.__doCleanup">__doCleanup</a></td>
-<td>Private method to perform some internal cleanup actions.</td>
-</tr><tr>
-<td><a href="#FilePrinter.__processError">__processError</a></td>
-<td>Private slot handling process errors.</td>
-</tr><tr>
-<td><a href="#FilePrinter.__processFinished">__processFinished</a></td>
-<td>Private slot handling the end of the process.</td>
-</tr><tr>
-<td><a href="#FilePrinter._copies">_copies</a></td>
-<td>Protected method to assemble the number of copies arguments.</td>
-</tr><tr>
-<td><a href="#FilePrinter._cupsOptions">_cupsOptions</a></td>
-<td>Protected method to assemble the CUPS specific arguments.</td>
-</tr><tr>
-<td><a href="#FilePrinter._deleteFile">_deleteFile</a></td>
-<td>Protected method to assemble the jobname arguments.</td>
-</tr><tr>
-<td><a href="#FilePrinter._destination">_destination</a></td>
-<td>Protected method to assemble the printer destination arguments.</td>
-</tr><tr>
-<td><a href="#FilePrinter._doPrintFile">_doPrintFile</a></td>
-<td>Protected method to print a file.</td>
-</tr><tr>
-<td><a href="#FilePrinter._jobname">_jobname</a></td>
-<td>Protected method to assemble the jobname arguments.</td>
-</tr><tr>
-<td><a href="#FilePrinter._mediaPageSize">_mediaPageSize</a></td>
-<td>Protected method to get the page size argument.</td>
-</tr><tr>
-<td><a href="#FilePrinter._mediaPaperSource">_mediaPaperSource</a></td>
-<td>Protected method to get the paper source argument.</td>
-</tr><tr>
-<td><a href="#FilePrinter._optionCollateCopies">_optionCollateCopies</a></td>
-<td>Protected method to assemble the collate copies arguments.</td>
-</tr><tr>
-<td><a href="#FilePrinter._optionCupsProperties">_optionCupsProperties</a></td>
-<td>Protected method to assemble the CUPS properties arguments.</td>
-</tr><tr>
-<td><a href="#FilePrinter._optionDoubleSidedPrinting">_optionDoubleSidedPrinting</a></td>
-<td>Protected method to assemble the double sided printing arguments.</td>
-</tr><tr>
-<td><a href="#FilePrinter._optionMedia">_optionMedia</a></td>
-<td>Protected method to assemble the print media arguments.</td>
-</tr><tr>
-<td><a href="#FilePrinter._optionPageOrder">_optionPageOrder</a></td>
-<td>Protected method to assemble the page order arguments.</td>
-</tr><tr>
-<td><a href="#FilePrinter._pages">_pages</a></td>
-<td>Protected method to assemble the page range(s) arguments.</td>
-</tr><tr>
-<td><a href="#FilePrinter._printArguments">_printArguments</a></td>
-<td>Protected method to assemble the command line arguments for the print command.</td>
-</tr>
-</table>
-<h3>Static Methods</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<a NAME="FilePrinter.__init__" ID="FilePrinter.__init__"></a>
-<h4>FilePrinter (Constructor)</h4>
-<b>FilePrinter</b>(<i></i>)
-<p>
-        Constructor
-</p><a NAME="FilePrinter.__doCleanup" ID="FilePrinter.__doCleanup"></a>
-<h4>FilePrinter.__doCleanup</h4>
-<b>__doCleanup</b>(<i>deleteFile</i>)
-<p>
-        Private method to perform some internal cleanup actions.
-</p><dl>
-<dt><i>deleteFile</i> (bool)</dt>
-<dd>
-flag indicating to delete the print file
-</dd>
-</dl><a NAME="FilePrinter.__processError" ID="FilePrinter.__processError"></a>
-<h4>FilePrinter.__processError</h4>
-<b>__processError</b>(<i>error</i>)
-<p>
-        Private slot handling process errors.
-</p><dl>
-<dt><i>error</i> (QProcess.ProcessError)</dt>
-<dd>
-error value
-</dd>
-</dl><a NAME="FilePrinter.__processFinished" ID="FilePrinter.__processFinished"></a>
-<h4>FilePrinter.__processFinished</h4>
-<b>__processFinished</b>(<i>exitCode, exitStatus</i>)
-<p>
-        Private slot handling the end of the process.
-</p><dl>
-<dt><i>exitCode</i> (int)</dt>
-<dd>
-exit code of the process
-</dd><dt><i>exitStatus</i> (QProcess.ExitStatus)</dt>
-<dd>
-exit status of the process
-</dd>
-</dl><a NAME="FilePrinter._copies" ID="FilePrinter._copies"></a>
-<h4>FilePrinter._copies</h4>
-<b>_copies</b>(<i>printer, variant</i>)
-<p>
-        Protected method to assemble the number of copies arguments.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd><dt><i>variant</i> (str)</dt>
-<dd>
-string identifying the print command variant
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-assembled number of copies arguments
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="FilePrinter._cupsOptions" ID="FilePrinter._cupsOptions"></a>
-<h4>FilePrinter._cupsOptions</h4>
-<b>_cupsOptions</b>(<i>printer</i>)
-<p>
-        Protected method to assemble the CUPS specific arguments.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-assembled CUPS arguments
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="FilePrinter._deleteFile" ID="FilePrinter._deleteFile"></a>
-<h4>FilePrinter._deleteFile</h4>
-<b>_deleteFile</b>(<i>printer, fileDeletePolicy, variant</i>)
-<p>
-        Protected method to assemble the jobname arguments.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd><dt><i>fileDeletePolicy</i> (int (0 or 1))</dt>
-<dd>
-policy determining who deletes the file to be
-            printed (application or system)
-</dd><dt><i>variant</i> (str)</dt>
-<dd>
-string identifying the print command variant
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-assembled jobname arguments
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="FilePrinter._destination" ID="FilePrinter._destination"></a>
-<h4>FilePrinter._destination</h4>
-<b>_destination</b>(<i>printer, variant</i>)
-<p>
-        Protected method to assemble the printer destination arguments.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd><dt><i>variant</i> (str)</dt>
-<dd>
-string identifying the print command variant
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-assembled printer destination arguments
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="FilePrinter._doPrintFile" ID="FilePrinter._doPrintFile"></a>
-<h4>FilePrinter._doPrintFile</h4>
-<b>_doPrintFile</b>(<i>printer, fileName, fileDeletePolicy, pageSelectPolicy, pageRange</i>)
-<p>
-        Protected method to print a file.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd><dt><i>fileName</i> (str)</dt>
-<dd>
-name (path) of the file to be printed
-</dd><dt><i>fileDeletePolicy</i> (int (0 or 1))</dt>
-<dd>
-policy determining who deletes the file to be
-            printed (application or system)
-</dd><dt><i>pageSelectPolicy</i> (int (0 or 1))</dt>
-<dd>
-policy determining who selects the pages to be
-            printed (application or system)
-</dd><dt><i>pageRange</i> (str)</dt>
-<dd>
-string determining the page range(s) to be printed, if
-            SystemSelectsPages was given for pageSelectPolicy and user chose
-            Selection in print dialog
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating successful print job submission
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
-</dl><a NAME="FilePrinter._jobname" ID="FilePrinter._jobname"></a>
-<h4>FilePrinter._jobname</h4>
-<b>_jobname</b>(<i>printer, variant</i>)
-<p>
-        Protected method to assemble the jobname arguments.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd><dt><i>variant</i> (str)</dt>
-<dd>
-string identifying the print command variant
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-assembled jobname arguments
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="FilePrinter._mediaPageSize" ID="FilePrinter._mediaPageSize"></a>
-<h4>FilePrinter._mediaPageSize</h4>
-<b>_mediaPageSize</b>(<i>printer</i>)
-<p>
-        Protected method to get the page size argument.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-page size argument
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl><a NAME="FilePrinter._mediaPaperSource" ID="FilePrinter._mediaPaperSource"></a>
-<h4>FilePrinter._mediaPaperSource</h4>
-<b>_mediaPaperSource</b>(<i>printer</i>)
-<p>
-        Protected method to get the paper source argument.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-paper source argument
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl><a NAME="FilePrinter._optionCollateCopies" ID="FilePrinter._optionCollateCopies"></a>
-<h4>FilePrinter._optionCollateCopies</h4>
-<b>_optionCollateCopies</b>(<i>printer</i>)
-<p>
-        Protected method to assemble the collate copies arguments.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-assembled collate copies arguments
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="FilePrinter._optionCupsProperties" ID="FilePrinter._optionCupsProperties"></a>
-<h4>FilePrinter._optionCupsProperties</h4>
-<b>_optionCupsProperties</b>(<i>printer</i>)
-<p>
-        Protected method to assemble the CUPS properties arguments.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-assembled CUPS properties arguments
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="FilePrinter._optionDoubleSidedPrinting" ID="FilePrinter._optionDoubleSidedPrinting"></a>
-<h4>FilePrinter._optionDoubleSidedPrinting</h4>
-<b>_optionDoubleSidedPrinting</b>(<i>printer</i>)
-<p>
-        Protected method to assemble the double sided printing arguments.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-assembled double sided printing arguments
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="FilePrinter._optionMedia" ID="FilePrinter._optionMedia"></a>
-<h4>FilePrinter._optionMedia</h4>
-<b>_optionMedia</b>(<i>printer</i>)
-<p>
-        Protected method to assemble the print media arguments.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-assembled print media arguments
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="FilePrinter._optionPageOrder" ID="FilePrinter._optionPageOrder"></a>
-<h4>FilePrinter._optionPageOrder</h4>
-<b>_optionPageOrder</b>(<i>printer</i>)
-<p>
-        Protected method to assemble the page order arguments.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-assembled page order arguments
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="FilePrinter._pages" ID="FilePrinter._pages"></a>
-<h4>FilePrinter._pages</h4>
-<b>_pages</b>(<i>printer, pageSelectPolicy, pageRange, useCupsOptions, variant</i>)
-<p>
-        Protected method to assemble the page range(s) arguments.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd><dt><i>pageSelectPolicy</i> (int (0 or 1))</dt>
-<dd>
-policy determining who selects the pages to be
-            printed (application or system)
-</dd><dt><i>pageRange</i> (str)</dt>
-<dd>
-string determining the page range(s) to be printed, if
-            SystemSelectsPages was given for pageSelectPolicy and user chose
-            Selection in print dialog
-</dd><dt><i>useCupsOptions</i> (bool)</dt>
-<dd>
-flag indicating to assemble the arguments for
-            CUPS
-</dd><dt><i>variant</i> (str)</dt>
-<dd>
-string identifying the print command variant
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-assembled page range(s) arguments
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl><a NAME="FilePrinter._printArguments" ID="FilePrinter._printArguments"></a>
-<h4>FilePrinter._printArguments</h4>
-<b>_printArguments</b>(<i>printer, fileDeletePolicy, pageSelectPolicy, useCupsOptions, pageRange, variant</i>)
-<p>
-        Protected method to assemble the command line arguments for the print
-        command.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd><dt><i>fileDeletePolicy</i> (int (0 or 1))</dt>
-<dd>
-policy determining who deletes the file to be
-            printed (application or system)
-</dd><dt><i>pageSelectPolicy</i> (int (0 or 1))</dt>
-<dd>
-policy determining who selects the pages to be
-            printed (application or system)
-</dd><dt><i>useCupsOptions</i> (bool)</dt>
-<dd>
-flag indicating to assemble the arguments for
-            CUPS
-</dd><dt><i>pageRange</i> (str)</dt>
-<dd>
-string determining the page range(s) to be printed, if
-            SystemSelectsPages was given for pageSelectPolicy and user chose
-            Selection in print dialog
-</dd><dt><i>variant</i> (str)</dt>
-<dd>
-string identifying the print command variant
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-assembled command line arguments for the print command
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="isCupsAvailable" ID="isCupsAvailable"></a>
-<h2>isCupsAvailable</h2>
-<b>isCupsAvailable</b>(<i></i>)
-<p>
-    Static method to test the availability of CUPS.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating the availability of CUPS
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="printFile" ID="printFile"></a>
-<h2>printFile</h2>
-<b>printFile</b>(<i>printer, fileName, fileDeletePolicy=FilePrinter.ApplicationDeletesFiles, pageSelectPolicy=FilePrinter.ApplicationSelectsPages, pageRange=""</i>)
-<p>
-    Static method to print a file.
-</p><p>
-    Note: Only CUPS and LPR on *nix systems is supported.
-</p><dl>
-<dt><i>printer</i> (QPrinter)</dt>
-<dd>
-reference to the printer to print to
-</dd><dt><i>fileName</i> (str)</dt>
-<dd>
-name (path) of the file to be printed
-</dd><dt><i>fileDeletePolicy</i> (int (0 or 1))</dt>
-<dd>
-policy determining who deletes the file to be
-        printed (application or system)
-</dd><dt><i>pageSelectPolicy</i> (int (0 or 1))</dt>
-<dd>
-policy determining who selects the pages to be
-        printed (application or system)
-</dd><dt><i>pageRange</i> (str)</dt>
-<dd>
-string determining the page range(s) to be printed, if
-        SystemSelectsPages was given for pageSelectPolicy and user chose
-        Selection in print dialog
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.WebBrowser.Tools.WebHitTestResult.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.WebBrowser.Tools.WebHitTestResult.html	Sat Sep 07 16:10:29 2019 +0200
@@ -358,8 +358,6 @@
 <p>
         Public method to update the hit test data with data from the context
         menu event.
-</p><p>
-        Note: This works for Qt >= 5.7.0.
 </p><dl>
 <dt><i>data</i> (QWebEngineContextMenuData)</dt>
 <dd>
--- a/eric6/Documentation/Source/eric6.WebBrowser.UrlBar.UrlBar.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.WebBrowser.UrlBar.UrlBar.html	Sat Sep 07 16:10:29 2019 +0200
@@ -133,10 +133,10 @@
 </p><dl>
 <dt><i>mainWindow</i></dt>
 <dd>
-reference to the main window (HelpWindow)
+reference to the main window (WebBrowserWindow)
 </dd><dt><i>parent</i></dt>
 <dd>
-reference to the parent widget (HelpBrowser)
+reference to the parent widget (WebBrowserView)
 </dd>
 </dl><a NAME="UrlBar.__bookmarkChanged" ID="UrlBar.__bookmarkChanged"></a>
 <h4>UrlBar.__bookmarkChanged</h4>
--- a/eric6/Documentation/Source/eric6.WebBrowser.WebBrowserTabWidget.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.WebBrowser.WebBrowserTabWidget.html	Sat Sep 07 16:10:29 2019 +0200
@@ -36,7 +36,10 @@
 </table>
 <h3>Functions</h3>
 <table>
-<tr><td>None</td></tr>
+<tr>
+<td><a href="#isCupsAvailable">isCupsAvailable</a></td>
+<td>Static method to test the availability of CUPS.</td>
+</tr>
 </table>
 <hr /><hr />
 <a NAME="WebBrowserTabWidget" ID="WebBrowserTabWidget"></a>
@@ -128,9 +131,6 @@
 <td><a href="#WebBrowserTabWidget.__pathSelected">__pathSelected</a></td>
 <td>Private slot called when a URL is selected from the completer.</td>
 </tr><tr>
-<td><a href="#WebBrowserTabWidget.__pdfGeneratedForPrinting">__pdfGeneratedForPrinting</a></td>
-<td>Private slot to print the generated PDF data.</td>
-</tr><tr>
 <td><a href="#WebBrowserTabWidget.__pdfGeneratedForSave">__pdfGeneratedForSave</a></td>
 <td>Private slot to save the generated PDF data to a file.</td>
 </tr><tr>
@@ -409,16 +409,6 @@
 <dd>
 path to be shown (string)
 </dd>
-</dl><a NAME="WebBrowserTabWidget.__pdfGeneratedForPrinting" ID="WebBrowserTabWidget.__pdfGeneratedForPrinting"></a>
-<h4>WebBrowserTabWidget.__pdfGeneratedForPrinting</h4>
-<b>__pdfGeneratedForPrinting</b>(<i>pdfData</i>)
-<p>
-        Private slot to print the generated PDF data.
-</p><dl>
-<dt><i>pdfData</i> (QByteArray)</dt>
-<dd>
-generated PDF document
-</dd>
 </dl><a NAME="WebBrowserTabWidget.__pdfGeneratedForSave" ID="WebBrowserTabWidget.__pdfGeneratedForSave"></a>
 <h4>WebBrowserTabWidget.__pdfGeneratedForSave</h4>
 <b>__pdfGeneratedForSave</b>(<i>filePath, pdfData</i>)
@@ -857,5 +847,23 @@
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="isCupsAvailable" ID="isCupsAvailable"></a>
+<h2>isCupsAvailable</h2>
+<b>isCupsAvailable</b>(<i></i>)
+<p>
+    Static method to test the availability of CUPS.
+</p><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating the availability of CUPS
+</dd>
+</dl><dl>
+<dt>Return Type:</dt>
+<dd>
+bool
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.cleanupSource.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.cleanupSource</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.cleanupSource</h1>
-<p>
-Script for eric6 to clean up the source tree.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#cleanupSource">cleanupSource</a></td>
-<td>Cleanup the sources directory to get rid of leftover files and directories.</td>
-</tr><tr>
-<td><a href="#main">main</a></td>
-<td>The main function of the script.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="cleanupSource" ID="cleanupSource"></a>
-<h2>cleanupSource</h2>
-<b>cleanupSource</b>(<i>dirName</i>)
-<p>
-    Cleanup the sources directory to get rid of leftover files
-    and directories.
-</p><dl>
-<dt><i>dirName</i></dt>
-<dd>
-name of the directory to prune (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="main" ID="main"></a>
-<h2>main</h2>
-<b>main</b>(<i>argv</i>)
-<p>
-    The main function of the script.
-</p><dl>
-<dt><i>argv</i></dt>
-<dd>
-the list of command line arguments.
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.compileUiFiles.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.compileUiFiles</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.compileUiFiles</h1>
-<p>
-Script for eric6 to compile all .ui files to Python source.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#__pyName">__pyName</a></td>
-<td>Local function to create the Python source file name for the compiled .ui file.</td>
-</tr><tr>
-<td><a href="#compileUiFiles">compileUiFiles</a></td>
-<td>Compile the .ui files to Python sources.</td>
-</tr><tr>
-<td><a href="#main">main</a></td>
-<td>The main function of the script.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="__pyName" ID="__pyName"></a>
-<h2>__pyName</h2>
-<b>__pyName</b>(<i>py_dir, py_file</i>)
-<p>
-    Local function to create the Python source file name for the compiled
-    .ui file.
-</p><dl>
-<dt><i>py_dir</i></dt>
-<dd>
-suggested name of the directory (string)
-</dd><dt><i>py_file</i></dt>
-<dd>
-suggested name for the compile source file (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple of directory name (string) and source file name (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="compileUiFiles" ID="compileUiFiles"></a>
-<h2>compileUiFiles</h2>
-<b>compileUiFiles</b>(<i></i>)
-<p>
-    Compile the .ui files to Python sources.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="main" ID="main"></a>
-<h2>main</h2>
-<b>main</b>(<i>argv</i>)
-<p>
-    The main function of the script.
-</p><dl>
-<dt><i>argv</i></dt>
-<dd>
-the list of command line arguments.
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.create_windows_links.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.create_windows_links</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.create_windows_links</h1>
-<p>
-Installation script for the eric6 IDE and all eric6 related tools.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>PythonMarkers</td></tr><tr><td>includePythonVariant</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#createWindowsShortcut">createWindowsShortcut</a></td>
-<td>Create Windows shortcut.</td>
-</tr><tr>
-<td><a href="#getWinregEntry">getWinregEntry</a></td>
-<td>Function to get an entry from the Windows Registry.</td>
-</tr><tr>
-<td><a href="#main">main</a></td>
-<td>Create Desktop and Start Menu links.</td>
-</tr><tr>
-<td><a href="#windowsDesktopEntries">windowsDesktopEntries</a></td>
-<td>Function to generate data for the Windows Desktop links.</td>
-</tr><tr>
-<td><a href="#windowsDesktopNames">windowsDesktopNames</a></td>
-<td>Function to generate the link names for the Windows Desktop.</td>
-</tr><tr>
-<td><a href="#windowsProgramsEntry">windowsProgramsEntry</a></td>
-<td>Function to generate the name of the Start Menu top entry.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="createWindowsShortcut" ID="createWindowsShortcut"></a>
-<h2>createWindowsShortcut</h2>
-<b>createWindowsShortcut</b>(<i>linkPath, targetPath, iconPath</i>)
-<p>
-    Create Windows shortcut.
-</p><dl>
-<dt><i>linkPath</i> (str)</dt>
-<dd>
-path of the shortcut file
-</dd><dt><i>targetPath</i> (str)</dt>
-<dd>
-path the shortcut shall point to
-</dd><dt><i>iconPath</i> (str)</dt>
-<dd>
-path of the icon file
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getWinregEntry" ID="getWinregEntry"></a>
-<h2>getWinregEntry</h2>
-<b>getWinregEntry</b>(<i>name, path</i>)
-<p>
-    Function to get an entry from the Windows Registry.
-</p><dl>
-<dt><i>name</i> (str)</dt>
-<dd>
-variable name
-</dd><dt><i>path</i> (str)</dt>
-<dd>
-registry path of the variable
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-value of requested registry variable
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-any
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="main" ID="main"></a>
-<h2>main</h2>
-<b>main</b>(<i>argv</i>)
-<p>
-    Create Desktop and Start Menu links.
-</p><dl>
-<dt><i>argv</i> (list of str)</dt>
-<dd>
-list of command line arguments
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="windowsDesktopEntries" ID="windowsDesktopEntries"></a>
-<h2>windowsDesktopEntries</h2>
-<b>windowsDesktopEntries</b>(<i></i>)
-<p>
-    Function to generate data for the Windows Desktop links.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of tuples containing the desktop link name,
-        the link target and the icon target
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of tuples of (str, str, str)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="windowsDesktopNames" ID="windowsDesktopNames"></a>
-<h2>windowsDesktopNames</h2>
-<b>windowsDesktopNames</b>(<i></i>)
-<p>
-    Function to generate the link names for the Windows Desktop.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of desktop link names
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="windowsProgramsEntry" ID="windowsProgramsEntry"></a>
-<h2>windowsProgramsEntry</h2>
-<b>windowsProgramsEntry</b>(<i></i>)
-<p>
-    Function to generate the name of the Start Menu top entry.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-name of the Start Menu top entry
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.eric6_tray.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/eric6.eric6_tray.html	Sat Sep 07 16:10:29 2019 +0200
@@ -29,7 +29,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>PyQt4Option</td></tr><tr><td>SettingsDir</td></tr>
+<tr><td>SettingsDir</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/Documentation/Source/eric6.eric6_webbrowser.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.eric6_webbrowser</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.eric6_webbrowser</h1>
-<p>
-Eric6 Web Browser.
-</p><p>
-This is the main Python script that performs the necessary initialization
-of the web browser and starts the Qt event loop. This is a standalone version
-of the integrated helpviewer.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>app</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#createMainWidget">createMainWidget</a></td>
-<td>Function to create the main widget.</td>
-</tr><tr>
-<td><a href="#main">main</a></td>
-<td>Main entry point into the application.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="createMainWidget" ID="createMainWidget"></a>
-<h2>createMainWidget</h2>
-<b>createMainWidget</b>(<i>argv</i>)
-<p>
-    Function to create the main widget.
-</p><dl>
-<dt><i>argv</i> (list of str)</dt>
-<dd>
-list of command line parameters
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-reference to the main widget
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-QWidget
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="main" ID="main"></a>
-<h2>main</h2>
-<b>main</b>(<i></i>)
-<p>
-    Main entry point into the application.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.install-debugclients.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,194 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.install-debugclients</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.install-debugclients</h1>
-<p>
-Installation script for the eric6 debug clients.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>currDir</td></tr><tr><td>distDir</td></tr><tr><td>doCleanup</td></tr><tr><td>doCompile</td></tr><tr><td>installPackage</td></tr><tr><td>modDir</td></tr><tr><td>progName</td></tr><tr><td>pyModDir</td></tr><tr><td>sourceDir</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#cleanUp">cleanUp</a></td>
-<td>Uninstall the old eric debug client files.</td>
-</tr><tr>
-<td><a href="#cleanupSource">cleanupSource</a></td>
-<td>Cleanup the sources directory to get rid of leftover files and directories.</td>
-</tr><tr>
-<td><a href="#copyTree">copyTree</a></td>
-<td>Copy files of a directory tree.</td>
-</tr><tr>
-<td><a href="#exit">exit</a></td>
-<td>Exit the install script.</td>
-</tr><tr>
-<td><a href="#initGlobals">initGlobals</a></td>
-<td>Module function to set the values of globals that need more than a simple assignment.</td>
-</tr><tr>
-<td><a href="#installEricDebugClients">installEricDebugClients</a></td>
-<td>Actually perform the installation steps.</td>
-</tr><tr>
-<td><a href="#main">main</a></td>
-<td>The main function of the script.</td>
-</tr><tr>
-<td><a href="#shutilCopy">shutilCopy</a></td>
-<td>Wrapper function around shutil.copy() to ensure the permissions.</td>
-</tr><tr>
-<td><a href="#usage">usage</a></td>
-<td>Display a usage message and exit.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="cleanUp" ID="cleanUp"></a>
-<h2>cleanUp</h2>
-<b>cleanUp</b>(<i></i>)
-<p>
-    Uninstall the old eric debug client files.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="cleanupSource" ID="cleanupSource"></a>
-<h2>cleanupSource</h2>
-<b>cleanupSource</b>(<i>dirName</i>)
-<p>
-    Cleanup the sources directory to get rid of leftover files
-    and directories.
-</p><dl>
-<dt><i>dirName</i></dt>
-<dd>
-name of the directory to prune (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="copyTree" ID="copyTree"></a>
-<h2>copyTree</h2>
-<b>copyTree</b>(<i>src, dst, filters, excludeDirs=None, excludePatterns=None</i>)
-<p>
-    Copy files of a directory tree.
-</p><dl>
-<dt><i>src</i></dt>
-<dd>
-name of the source directory
-</dd><dt><i>dst</i></dt>
-<dd>
-name of the destination directory
-</dd><dt><i>filters</i></dt>
-<dd>
-list of filter pattern determining the files to be copied
-</dd><dt><i>excludeDirs</i></dt>
-<dd>
-list of (sub)directories to exclude from copying
-</dd><dt><i>excludePatterns=</i></dt>
-<dd>
-list of filter pattern determining the files to
-        be skipped
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="exit" ID="exit"></a>
-<h2>exit</h2>
-<b>exit</b>(<i>rcode=0</i>)
-<p>
-    Exit the install script.
-</p><dl>
-<dt><i>rcode</i></dt>
-<dd>
-result code to report back (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="initGlobals" ID="initGlobals"></a>
-<h2>initGlobals</h2>
-<b>initGlobals</b>(<i></i>)
-<p>
-    Module function to set the values of globals that need more than a
-    simple assignment.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="installEricDebugClients" ID="installEricDebugClients"></a>
-<h2>installEricDebugClients</h2>
-<b>installEricDebugClients</b>(<i></i>)
-<p>
-    Actually perform the installation steps.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-result code (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="main" ID="main"></a>
-<h2>main</h2>
-<b>main</b>(<i>argv</i>)
-<p>
-    The main function of the script.
-</p><dl>
-<dt><i>argv</i></dt>
-<dd>
-the list of command line arguments.
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="shutilCopy" ID="shutilCopy"></a>
-<h2>shutilCopy</h2>
-<b>shutilCopy</b>(<i>src, dst, perm=0o644</i>)
-<p>
-    Wrapper function around shutil.copy() to ensure the permissions.
-</p><dl>
-<dt><i>src</i></dt>
-<dd>
-source file name (string)
-</dd><dt><i>dst</i></dt>
-<dd>
-destination file name or directory name (string)
-</dd><dt><i>perm=</i></dt>
-<dd>
-permissions to be set (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="usage" ID="usage"></a>
-<h2>usage</h2>
-<b>usage</b>(<i>rcode=2</i>)
-<p>
-    Display a usage message and exit.
-</p><dl>
-<dt><i>rcode</i></dt>
-<dd>
-the return code passed back to the calling process.
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.install-i18n.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.install-i18n</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.install-i18n</h1>
-<p>
-Installation script for the eric6 IDE translation files.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>configDir</td></tr><tr><td>privateInstall</td></tr><tr><td>progName</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#getConfigDir">getConfigDir</a></td>
-<td>Global function to get the name of the directory storing the config data.</td>
-</tr><tr>
-<td><a href="#installTranslations">installTranslations</a></td>
-<td>Install the translation files into the right place.</td>
-</tr><tr>
-<td><a href="#main">main</a></td>
-<td>The main function of the script.</td>
-</tr><tr>
-<td><a href="#usage">usage</a></td>
-<td>Display a usage message and exit.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="getConfigDir" ID="getConfigDir"></a>
-<h2>getConfigDir</h2>
-<b>getConfigDir</b>(<i></i>)
-<p>
-    Global function to get the name of the directory storing the config data.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-directory name of the config dir (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="installTranslations" ID="installTranslations"></a>
-<h2>installTranslations</h2>
-<b>installTranslations</b>(<i></i>)
-<p>
-    Install the translation files into the right place.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="main" ID="main"></a>
-<h2>main</h2>
-<b>main</b>(<i>argv</i>)
-<p>
-    The main function of the script.
-</p><dl>
-<dt><i>argv</i></dt>
-<dd>
-list of command line arguments (list of strings)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="usage" ID="usage"></a>
-<h2>usage</h2>
-<b>usage</b>(<i>rcode=2</i>)
-<p>
-    Display a usage message and exit.
-</p><dl>
-<dt><i>rcode</i></dt>
-<dd>
-return code passed back to the calling process (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.install.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,634 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.install</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.install</h1>
-<p>
-Installation script for the eric6 IDE and all eric6 related tools.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>BlackLists</td></tr><tr><td>PlatformsBlackLists</td></tr><tr><td>PythonMarkers</td></tr><tr><td>PythonTextMarkers</td></tr><tr><td>apisDir</td></tr><tr><td>cfg</td></tr><tr><td>configLength</td></tr><tr><td>configName</td></tr><tr><td>currDir</td></tr><tr><td>defaultMacAppBundleName</td></tr><tr><td>defaultMacAppBundlePath</td></tr><tr><td>defaultMacPythonExe</td></tr><tr><td>distDir</td></tr><tr><td>doCleanDesktopLinks</td></tr><tr><td>doCleanup</td></tr><tr><td>doCompile</td></tr><tr><td>forceCleanDesktopLinks</td></tr><tr><td>includePythonVariant</td></tr><tr><td>installApis</td></tr><tr><td>macAppBundleName</td></tr><tr><td>macAppBundlePath</td></tr><tr><td>macPythonExe</td></tr><tr><td>modDir</td></tr><tr><td>platBinDir</td></tr><tr><td>platBinDirOld</td></tr><tr><td>progLanguages</td></tr><tr><td>progName</td></tr><tr><td>pyModDir</td></tr><tr><td>pyqtOverride</td></tr><tr><td>pyqtVariant</td></tr><tr><td>sourceDir</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#__pyName">__pyName</a></td>
-<td>Local function to create the Python source file name for the compiled .ui file.</td>
-</tr><tr>
-<td><a href="#cleanUp">cleanUp</a></td>
-<td>Uninstall the old eric files.</td>
-</tr><tr>
-<td><a href="#cleanUpLinuxSpecifics">cleanUpLinuxSpecifics</a></td>
-<td>Clean up Linux specific files.</td>
-</tr><tr>
-<td><a href="#cleanUpMacAppBundle">cleanUpMacAppBundle</a></td>
-<td>Uninstall the macOS application bundle.</td>
-</tr><tr>
-<td><a href="#cleanUpWindowsLinks">cleanUpWindowsLinks</a></td>
-<td>Clean up the Desktop and Start Menu entries for Windows.</td>
-</tr><tr>
-<td><a href="#cleanupSource">cleanupSource</a></td>
-<td>Cleanup the sources directory to get rid of leftover files and directories.</td>
-</tr><tr>
-<td><a href="#compileUiFiles">compileUiFiles</a></td>
-<td>Compile the .ui files to Python sources.</td>
-</tr><tr>
-<td><a href="#copyAppStreamFile">copyAppStreamFile</a></td>
-<td>Modify an appstream file and write it to its destination.</td>
-</tr><tr>
-<td><a href="#copyDesktopFile">copyDesktopFile</a></td>
-<td>Modify a desktop file and write it to its destination.</td>
-</tr><tr>
-<td><a href="#copyToFile">copyToFile</a></td>
-<td>Copy a string to a file.</td>
-</tr><tr>
-<td><a href="#copyTree">copyTree</a></td>
-<td>Copy Python, translation, documentation, wizards configuration, designer template files and DTDs of a directory tree.</td>
-</tr><tr>
-<td><a href="#createConfig">createConfig</a></td>
-<td>Create a config file with the respective config entries.</td>
-</tr><tr>
-<td><a href="#createGlobalPluginsDir">createGlobalPluginsDir</a></td>
-<td>Create the global plugins directory, if it doesn't exist.</td>
-</tr><tr>
-<td><a href="#createInstallConfig">createInstallConfig</a></td>
-<td>Create the installation config dictionary.</td>
-</tr><tr>
-<td><a href="#createLinuxSpecifics">createLinuxSpecifics</a></td>
-<td>Install Linux specific files.</td>
-</tr><tr>
-<td><a href="#createMacAppBundle">createMacAppBundle</a></td>
-<td>Create a Mac application bundle.</td>
-</tr><tr>
-<td><a href="#createPyWrapper">createPyWrapper</a></td>
-<td>Create an executable wrapper for a Python script.</td>
-</tr><tr>
-<td><a href="#createWindowsLinks">createWindowsLinks</a></td>
-<td>Create Desktop and Start Menu links.</td>
-</tr><tr>
-<td><a href="#createWindowsShortcut">createWindowsShortcut</a></td>
-<td>Create Windows shortcut.</td>
-</tr><tr>
-<td><a href="#determinePyQtVariant">determinePyQtVariant</a></td>
-<td>Module function to determine the PyQt variant to be used.</td>
-</tr><tr>
-<td><a href="#doDependancyChecks">doDependancyChecks</a></td>
-<td>Perform some dependency checks.</td>
-</tr><tr>
-<td><a href="#exit">exit</a></td>
-<td>Exit the install script.</td>
-</tr><tr>
-<td><a href="#getWinregEntry">getWinregEntry</a></td>
-<td>Function to get an entry from the Windows Registry.</td>
-</tr><tr>
-<td><a href="#initGlobals">initGlobals</a></td>
-<td>Module function to set the values of globals that need more than a simple assignment.</td>
-</tr><tr>
-<td><a href="#installEric">installEric</a></td>
-<td>Actually perform the installation steps.</td>
-</tr><tr>
-<td><a href="#main">main</a></td>
-<td>The main function of the script.</td>
-</tr><tr>
-<td><a href="#pipInstall">pipInstall</a></td>
-<td>Install the given package via pip.</td>
-</tr><tr>
-<td><a href="#prepareInfoFile">prepareInfoFile</a></td>
-<td>Function to prepare an Info.py file when installing from source.</td>
-</tr><tr>
-<td><a href="#shutilCopy">shutilCopy</a></td>
-<td>Wrapper function around shutil.copy() to ensure the permissions.</td>
-</tr><tr>
-<td><a href="#usage">usage</a></td>
-<td>Display a usage message and exit.</td>
-</tr><tr>
-<td><a href="#windowsDesktopEntries">windowsDesktopEntries</a></td>
-<td>Function to generate data for the Windows Desktop links.</td>
-</tr><tr>
-<td><a href="#windowsDesktopNames">windowsDesktopNames</a></td>
-<td>Function to generate the link names for the Windows Desktop.</td>
-</tr><tr>
-<td><a href="#windowsProgramsEntry">windowsProgramsEntry</a></td>
-<td>Function to generate the name of the Start Menu top entry.</td>
-</tr><tr>
-<td><a href="#wrapperNames">wrapperNames</a></td>
-<td>Create the platform specific names for the wrapper script.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="__pyName" ID="__pyName"></a>
-<h2>__pyName</h2>
-<b>__pyName</b>(<i>py_dir, py_file</i>)
-<p>
-    Local function to create the Python source file name for the compiled
-    .ui file.
-</p><dl>
-<dt><i>py_dir</i></dt>
-<dd>
-suggested name of the directory (string)
-</dd><dt><i>py_file</i></dt>
-<dd>
-suggested name for the compile source file (string)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-tuple of directory name (string) and source file name (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="cleanUp" ID="cleanUp"></a>
-<h2>cleanUp</h2>
-<b>cleanUp</b>(<i></i>)
-<p>
-    Uninstall the old eric files.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="cleanUpLinuxSpecifics" ID="cleanUpLinuxSpecifics"></a>
-<h2>cleanUpLinuxSpecifics</h2>
-<b>cleanUpLinuxSpecifics</b>(<i></i>)
-<p>
-    Clean up Linux specific files.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="cleanUpMacAppBundle" ID="cleanUpMacAppBundle"></a>
-<h2>cleanUpMacAppBundle</h2>
-<b>cleanUpMacAppBundle</b>(<i></i>)
-<p>
-    Uninstall the macOS application bundle.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="cleanUpWindowsLinks" ID="cleanUpWindowsLinks"></a>
-<h2>cleanUpWindowsLinks</h2>
-<b>cleanUpWindowsLinks</b>(<i></i>)
-<p>
-    Clean up the Desktop and Start Menu entries for Windows.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="cleanupSource" ID="cleanupSource"></a>
-<h2>cleanupSource</h2>
-<b>cleanupSource</b>(<i>dirName</i>)
-<p>
-    Cleanup the sources directory to get rid of leftover files
-    and directories.
-</p><dl>
-<dt><i>dirName</i></dt>
-<dd>
-name of the directory to prune (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="compileUiFiles" ID="compileUiFiles"></a>
-<h2>compileUiFiles</h2>
-<b>compileUiFiles</b>(<i></i>)
-<p>
-    Compile the .ui files to Python sources.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="copyAppStreamFile" ID="copyAppStreamFile"></a>
-<h2>copyAppStreamFile</h2>
-<b>copyAppStreamFile</b>(<i>src, dst, marker</i>)
-<p>
-    Modify an appstream file and write it to its destination.
-</p><dl>
-<dt><i>src</i></dt>
-<dd>
-source file name (string)
-</dd><dt><i>dst</i></dt>
-<dd>
-destination file name (string)
-</dd><dt><i>marker</i></dt>
-<dd>
-marker to be used (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="copyDesktopFile" ID="copyDesktopFile"></a>
-<h2>copyDesktopFile</h2>
-<b>copyDesktopFile</b>(<i>src, dst, marker</i>)
-<p>
-    Modify a desktop file and write it to its destination.
-</p><dl>
-<dt><i>src</i></dt>
-<dd>
-source file name (string)
-</dd><dt><i>dst</i></dt>
-<dd>
-destination file name (string)
-</dd><dt><i>marker</i></dt>
-<dd>
-marker to be used (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="copyToFile" ID="copyToFile"></a>
-<h2>copyToFile</h2>
-<b>copyToFile</b>(<i>name, text</i>)
-<p>
-    Copy a string to a file.
-</p><dl>
-<dt><i>name</i></dt>
-<dd>
-the name of the file.
-</dd><dt><i>text</i></dt>
-<dd>
-the contents to copy to the file.
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="copyTree" ID="copyTree"></a>
-<h2>copyTree</h2>
-<b>copyTree</b>(<i>src, dst, filters, excludeDirs=None, excludePatterns=None</i>)
-<p>
-    Copy Python, translation, documentation, wizards configuration,
-    designer template files and DTDs of a directory tree.
-</p><dl>
-<dt><i>src</i></dt>
-<dd>
-name of the source directory
-</dd><dt><i>dst</i></dt>
-<dd>
-name of the destination directory
-</dd><dt><i>filters</i></dt>
-<dd>
-list of filter pattern determining the files to be copied
-</dd><dt><i>excludeDirs</i></dt>
-<dd>
-list of (sub)directories to exclude from copying
-</dd><dt><i>excludePatterns=</i></dt>
-<dd>
-list of filter pattern determining the files to
-        be skipped
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="createConfig" ID="createConfig"></a>
-<h2>createConfig</h2>
-<b>createConfig</b>(<i></i>)
-<p>
-    Create a config file with the respective config entries.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="createGlobalPluginsDir" ID="createGlobalPluginsDir"></a>
-<h2>createGlobalPluginsDir</h2>
-<b>createGlobalPluginsDir</b>(<i></i>)
-<p>
-    Create the global plugins directory, if it doesn't exist.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="createInstallConfig" ID="createInstallConfig"></a>
-<h2>createInstallConfig</h2>
-<b>createInstallConfig</b>(<i></i>)
-<p>
-    Create the installation config dictionary.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="createLinuxSpecifics" ID="createLinuxSpecifics"></a>
-<h2>createLinuxSpecifics</h2>
-<b>createLinuxSpecifics</b>(<i></i>)
-<p>
-    Install Linux specific files.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="createMacAppBundle" ID="createMacAppBundle"></a>
-<h2>createMacAppBundle</h2>
-<b>createMacAppBundle</b>(<i>pydir</i>)
-<p>
-    Create a Mac application bundle.
-</p><dl>
-<dt><i>pydir</i> (str)</dt>
-<dd>
-the name of the directory where the Python script will
-        eventually be installed
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="createPyWrapper" ID="createPyWrapper"></a>
-<h2>createPyWrapper</h2>
-<b>createPyWrapper</b>(<i>pydir, wfile, isGuiScript=True</i>)
-<p>
-    Create an executable wrapper for a Python script.
-</p><dl>
-<dt><i>pydir</i></dt>
-<dd>
-the name of the directory where the Python script will
-        eventually be installed (string)
-</dd><dt><i>wfile</i></dt>
-<dd>
-the basename of the wrapper (string)
-</dd><dt><i>isGuiScript</i></dt>
-<dd>
-flag indicating a wrapper script for a GUI
-        application (boolean)
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-the platform specific name of the wrapper (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="createWindowsLinks" ID="createWindowsLinks"></a>
-<h2>createWindowsLinks</h2>
-<b>createWindowsLinks</b>(<i></i>)
-<p>
-    Create Desktop and Start Menu links.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="createWindowsShortcut" ID="createWindowsShortcut"></a>
-<h2>createWindowsShortcut</h2>
-<b>createWindowsShortcut</b>(<i>linkPath, targetPath, iconPath</i>)
-<p>
-    Create Windows shortcut.
-</p><dl>
-<dt><i>linkPath</i> (str)</dt>
-<dd>
-path of the shortcut file
-</dd><dt><i>targetPath</i> (str)</dt>
-<dd>
-path the shortcut shall point to
-</dd><dt><i>iconPath</i> (str)</dt>
-<dd>
-path of the icon file
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="determinePyQtVariant" ID="determinePyQtVariant"></a>
-<h2>determinePyQtVariant</h2>
-<b>determinePyQtVariant</b>(<i></i>)
-<p>
-    Module function to determine the PyQt variant to be used.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="doDependancyChecks" ID="doDependancyChecks"></a>
-<h2>doDependancyChecks</h2>
-<b>doDependancyChecks</b>(<i></i>)
-<p>
-    Perform some dependency checks.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="exit" ID="exit"></a>
-<h2>exit</h2>
-<b>exit</b>(<i>rcode=0</i>)
-<p>
-    Exit the install script.
-</p><dl>
-<dt><i>rcode</i></dt>
-<dd>
-result code to report back (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getWinregEntry" ID="getWinregEntry"></a>
-<h2>getWinregEntry</h2>
-<b>getWinregEntry</b>(<i>name, path</i>)
-<p>
-    Function to get an entry from the Windows Registry.
-</p><dl>
-<dt><i>name</i> (str)</dt>
-<dd>
-variable name
-</dd><dt><i>path</i> (str)</dt>
-<dd>
-registry path of the variable
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-value of requested registry variable
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-any
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="initGlobals" ID="initGlobals"></a>
-<h2>initGlobals</h2>
-<b>initGlobals</b>(<i></i>)
-<p>
-    Module function to set the values of globals that need more than a
-    simple assignment.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="installEric" ID="installEric"></a>
-<h2>installEric</h2>
-<b>installEric</b>(<i></i>)
-<p>
-    Actually perform the installation steps.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-result code (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="main" ID="main"></a>
-<h2>main</h2>
-<b>main</b>(<i>argv</i>)
-<p>
-    The main function of the script.
-</p><dl>
-<dt><i>argv</i> (list of str)</dt>
-<dd>
-list of command line arguments
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="pipInstall" ID="pipInstall"></a>
-<h2>pipInstall</h2>
-<b>pipInstall</b>(<i>packageName, message</i>)
-<p>
-    Install the given package via pip.
-</p><dl>
-<dt><i>packageName</i> (str)</dt>
-<dd>
-name of the package to be installed
-</dd><dt><i>message</i> (str)</dt>
-<dd>
-message to be shown to the user
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-flag indicating a successful installation
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-bool
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="prepareInfoFile" ID="prepareInfoFile"></a>
-<h2>prepareInfoFile</h2>
-<b>prepareInfoFile</b>(<i>fileName</i>)
-<p>
-    Function to prepare an Info.py file when installing from source.
-</p><dl>
-<dt><i>fileName</i></dt>
-<dd>
-name of the Python file containing the info (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="shutilCopy" ID="shutilCopy"></a>
-<h2>shutilCopy</h2>
-<b>shutilCopy</b>(<i>src, dst, perm=0o644</i>)
-<p>
-    Wrapper function around shutil.copy() to ensure the permissions.
-</p><dl>
-<dt><i>src</i></dt>
-<dd>
-source file name (string)
-</dd><dt><i>dst</i></dt>
-<dd>
-destination file name or directory name (string)
-</dd><dt><i>perm=</i></dt>
-<dd>
-permissions to be set (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="usage" ID="usage"></a>
-<h2>usage</h2>
-<b>usage</b>(<i>rcode=2</i>)
-<p>
-    Display a usage message and exit.
-</p><dl>
-<dt><i>rcode</i></dt>
-<dd>
-the return code passed back to the calling process.
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="windowsDesktopEntries" ID="windowsDesktopEntries"></a>
-<h2>windowsDesktopEntries</h2>
-<b>windowsDesktopEntries</b>(<i></i>)
-<p>
-    Function to generate data for the Windows Desktop links.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of tuples containing the desktop link name,
-        the link target and the icon target
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of tuples of (str, str, str)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="windowsDesktopNames" ID="windowsDesktopNames"></a>
-<h2>windowsDesktopNames</h2>
-<b>windowsDesktopNames</b>(<i></i>)
-<p>
-    Function to generate the link names for the Windows Desktop.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of desktop link names
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="windowsProgramsEntry" ID="windowsProgramsEntry"></a>
-<h2>windowsProgramsEntry</h2>
-<b>windowsProgramsEntry</b>(<i></i>)
-<p>
-    Function to generate the name of the Start Menu top entry.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-name of the Start Menu top entry
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="wrapperNames" ID="wrapperNames"></a>
-<h2>wrapperNames</h2>
-<b>wrapperNames</b>(<i>dname, wfile</i>)
-<p>
-    Create the platform specific names for the wrapper script.
-</p><dl>
-<dt><i>dname</i></dt>
-<dd>
-name of the directory to place the wrapper into
-</dd><dt><i>wfile</i></dt>
-<dd>
-basename (without extension) of the wrapper script
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-the names of the wrapper scripts
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.patch_modpython.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.patch_modpython</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.patch_modpython</h1>
-<p>
-Script to patch mod_python for usage with the eric6 IDE.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>modDir</td></tr><tr><td>progName</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#initGlobals">initGlobals</a></td>
-<td>Module function to set the values of globals that need more than a simple assignment.</td>
-</tr><tr>
-<td><a href="#main">main</a></td>
-<td>The main function of the script.</td>
-</tr><tr>
-<td><a href="#usage">usage</a></td>
-<td>Display a usage message and exit.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="initGlobals" ID="initGlobals"></a>
-<h2>initGlobals</h2>
-<b>initGlobals</b>(<i></i>)
-<p>
-    Module function to set the values of globals that need more than a
-    simple assignment.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="main" ID="main"></a>
-<h2>main</h2>
-<b>main</b>(<i>argv</i>)
-<p>
-    The main function of the script.
-</p><dl>
-<dt><i>argv</i></dt>
-<dd>
-list of command line arguments (list of strings)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="usage" ID="usage"></a>
-<h2>usage</h2>
-<b>usage</b>(<i>rcode=2</i>)
-<p>
-    Display a usage message and exit.
-</p><dl>
-<dt><i>rcode</i></dt>
-<dd>
-return code passed back to the calling process (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.uninstall-debugclients.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.uninstall-debugclients</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.uninstall-debugclients</h1>
-<p>
-Unnstallation script for the eric6 debug clients.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>currDir</td></tr><tr><td>installPackage</td></tr><tr><td>modDir</td></tr><tr><td>progName</td></tr><tr><td>pyModDir</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#exit">exit</a></td>
-<td>Exit the install script.</td>
-</tr><tr>
-<td><a href="#initGlobals">initGlobals</a></td>
-<td>Module function to set the values of globals that need more than a simple assignment.</td>
-</tr><tr>
-<td><a href="#main">main</a></td>
-<td>The main function of the script.</td>
-</tr><tr>
-<td><a href="#uninstallEricDebugClients">uninstallEricDebugClients</a></td>
-<td>Uninstall the old eric debug client files.</td>
-</tr><tr>
-<td><a href="#usage">usage</a></td>
-<td>Display a usage message and exit.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="exit" ID="exit"></a>
-<h2>exit</h2>
-<b>exit</b>(<i>rcode=0</i>)
-<p>
-    Exit the install script.
-</p><dl>
-<dt><i>rcode</i></dt>
-<dd>
-result code to report back (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="initGlobals" ID="initGlobals"></a>
-<h2>initGlobals</h2>
-<b>initGlobals</b>(<i></i>)
-<p>
-    Module function to set the values of globals that need more than a
-    simple assignment.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="main" ID="main"></a>
-<h2>main</h2>
-<b>main</b>(<i>argv</i>)
-<p>
-    The main function of the script.
-</p><dl>
-<dt><i>argv</i></dt>
-<dd>
-the list of command line arguments.
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="uninstallEricDebugClients" ID="uninstallEricDebugClients"></a>
-<h2>uninstallEricDebugClients</h2>
-<b>uninstallEricDebugClients</b>(<i></i>)
-<p>
-    Uninstall the old eric debug client files.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="usage" ID="usage"></a>
-<h2>usage</h2>
-<b>usage</b>(<i>rcode=2</i>)
-<p>
-    Display a usage message and exit.
-</p><dl>
-<dt><i>rcode</i></dt>
-<dd>
-return code passed back to the calling process (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/eric6.uninstall.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,286 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.uninstall</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body><a NAME="top" ID="top"></a>
-<h1>eric6.uninstall</h1>
-<p>
-Uninstallation script for the eric6 IDE and all eric6 related tools.
-</p>
-<h3>Global Attributes</h3>
-<table>
-<tr><td>PythonMarkers</td></tr><tr><td>currDir</td></tr><tr><td>defaultMacAppBundleName</td></tr><tr><td>defaultMacAppBundlePath</td></tr><tr><td>includePythonVariant</td></tr><tr><td>progLanguages</td></tr><tr><td>progName</td></tr><tr><td>pyModDir</td></tr><tr><td>settingsNameGlobal</td></tr><tr><td>settingsNameOrganization</td></tr>
-</table>
-<h3>Classes</h3>
-<table>
-<tr><td>None</td></tr>
-</table>
-<h3>Functions</h3>
-<table>
-<tr>
-<td><a href="#exit">exit</a></td>
-<td>Exit the uninstall script.</td>
-</tr><tr>
-<td><a href="#getConfigDir">getConfigDir</a></td>
-<td>Module function to get the name of the directory storing the config data.</td>
-</tr><tr>
-<td><a href="#getWinregEntry">getWinregEntry</a></td>
-<td>Function to get an entry from the Windows Registry.</td>
-</tr><tr>
-<td><a href="#initGlobals">initGlobals</a></td>
-<td>Set the values of globals that need more than a simple assignment.</td>
-</tr><tr>
-<td><a href="#main">main</a></td>
-<td>The main function of the script.</td>
-</tr><tr>
-<td><a href="#removeConfigurationData">removeConfigurationData</a></td>
-<td>Remove the eric configuration directory.</td>
-</tr><tr>
-<td><a href="#removeDataDirectory">removeDataDirectory</a></td>
-<td>Remove the eric data directory.</td>
-</tr><tr>
-<td><a href="#removePluginDirectories">removePluginDirectories</a></td>
-<td>Remove the plug-in directories.</td>
-</tr><tr>
-<td><a href="#uninstallEric">uninstallEric</a></td>
-<td>Uninstall the eric files.</td>
-</tr><tr>
-<td><a href="#uninstallLinuxSpecifics">uninstallLinuxSpecifics</a></td>
-<td>Uninstall Linux specific files.</td>
-</tr><tr>
-<td><a href="#uninstallMacAppBundle">uninstallMacAppBundle</a></td>
-<td>Uninstall the macOS application bundle.</td>
-</tr><tr>
-<td><a href="#uninstallWindowsLinks">uninstallWindowsLinks</a></td>
-<td>Clean up the Desktop and Start Menu entries for Windows.</td>
-</tr><tr>
-<td><a href="#usage">usage</a></td>
-<td>Display a usage message and exit.</td>
-</tr><tr>
-<td><a href="#windowsDesktopNames">windowsDesktopNames</a></td>
-<td>Function to generate the link names for the Windows Desktop.</td>
-</tr><tr>
-<td><a href="#windowsProgramsEntry">windowsProgramsEntry</a></td>
-<td>Function to generate the name of the Start Menu top entry.</td>
-</tr><tr>
-<td><a href="#wrapperNames">wrapperNames</a></td>
-<td>Create the platform specific names for the wrapper script.</td>
-</tr>
-</table>
-<hr /><hr />
-<a NAME="exit" ID="exit"></a>
-<h2>exit</h2>
-<b>exit</b>(<i>rcode=0</i>)
-<p>
-    Exit the uninstall script.
-</p><dl>
-<dt><i>rcode</i></dt>
-<dd>
-result code to report back (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getConfigDir" ID="getConfigDir"></a>
-<h2>getConfigDir</h2>
-<b>getConfigDir</b>(<i></i>)
-<p>
-    Module function to get the name of the directory storing the config data.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-directory name of the config dir (string)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="getWinregEntry" ID="getWinregEntry"></a>
-<h2>getWinregEntry</h2>
-<b>getWinregEntry</b>(<i>name, path</i>)
-<p>
-    Function to get an entry from the Windows Registry.
-</p><dl>
-<dt><i>name</i> (str)</dt>
-<dd>
-variable name
-</dd><dt><i>path</i> (str)</dt>
-<dd>
-registry path of the variable
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-value of requested registry variable
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-any
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="initGlobals" ID="initGlobals"></a>
-<h2>initGlobals</h2>
-<b>initGlobals</b>(<i></i>)
-<p>
-    Set the values of globals that need more than a simple assignment.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="main" ID="main"></a>
-<h2>main</h2>
-<b>main</b>(<i>argv</i>)
-<p>
-    The main function of the script.
-</p><dl>
-<dt><i>argv</i></dt>
-<dd>
-list of command line arguments
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="removeConfigurationData" ID="removeConfigurationData"></a>
-<h2>removeConfigurationData</h2>
-<b>removeConfigurationData</b>(<i></i>)
-<p>
-    Remove the eric configuration directory.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="removeDataDirectory" ID="removeDataDirectory"></a>
-<h2>removeDataDirectory</h2>
-<b>removeDataDirectory</b>(<i></i>)
-<p>
-    Remove the eric data directory.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="removePluginDirectories" ID="removePluginDirectories"></a>
-<h2>removePluginDirectories</h2>
-<b>removePluginDirectories</b>(<i></i>)
-<p>
-    Remove the plug-in directories.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="uninstallEric" ID="uninstallEric"></a>
-<h2>uninstallEric</h2>
-<b>uninstallEric</b>(<i></i>)
-<p>
-    Uninstall the eric files.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="uninstallLinuxSpecifics" ID="uninstallLinuxSpecifics"></a>
-<h2>uninstallLinuxSpecifics</h2>
-<b>uninstallLinuxSpecifics</b>(<i></i>)
-<p>
-    Uninstall Linux specific files.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="uninstallMacAppBundle" ID="uninstallMacAppBundle"></a>
-<h2>uninstallMacAppBundle</h2>
-<b>uninstallMacAppBundle</b>(<i></i>)
-<p>
-    Uninstall the macOS application bundle.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="uninstallWindowsLinks" ID="uninstallWindowsLinks"></a>
-<h2>uninstallWindowsLinks</h2>
-<b>uninstallWindowsLinks</b>(<i></i>)
-<p>
-    Clean up the Desktop and Start Menu entries for Windows.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="usage" ID="usage"></a>
-<h2>usage</h2>
-<b>usage</b>(<i>rcode=2</i>)
-<p>
-    Display a usage message and exit.
-</p><dl>
-<dt><i>rcode</i></dt>
-<dd>
-return code passed back to the calling process (integer)
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="windowsDesktopNames" ID="windowsDesktopNames"></a>
-<h2>windowsDesktopNames</h2>
-<b>windowsDesktopNames</b>(<i></i>)
-<p>
-    Function to generate the link names for the Windows Desktop.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-list of desktop link names
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-list of str
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="windowsProgramsEntry" ID="windowsProgramsEntry"></a>
-<h2>windowsProgramsEntry</h2>
-<b>windowsProgramsEntry</b>(<i></i>)
-<p>
-    Function to generate the name of the Start Menu top entry.
-</p><dl>
-<dt>Returns:</dt>
-<dd>
-name of the Start Menu top entry
-</dd>
-</dl><dl>
-<dt>Return Type:</dt>
-<dd>
-str
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
-<a NAME="wrapperNames" ID="wrapperNames"></a>
-<h2>wrapperNames</h2>
-<b>wrapperNames</b>(<i>dname, wfile</i>)
-<p>
-    Create the platform specific names for the wrapper script.
-</p><dl>
-<dt><i>dname</i></dt>
-<dd>
-name of the directory to place the wrapper into
-</dd><dt><i>wfile</i></dt>
-<dd>
-basename (without extension) of the wrapper script
-</dd>
-</dl><dl>
-<dt>Returns:</dt>
-<dd>
-the names of the wrapper scripts
-</dd>
-</dl>
-<div align="right"><a href="#top">Up</a></div>
-<hr />
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Globals.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/index-eric6.Globals.html	Sat Sep 07 16:10:29 2019 +0200
@@ -31,14 +31,8 @@
 <td><a href="eric6.Globals.AppInfo.html">AppInfo</a></td>
 <td>Module implementing a function to generate an application info.</td>
 </tr><tr>
-<td><a href="eric6.Globals.E5ConfigParser.html">E5ConfigParser</a></td>
-<td>Module implementing a ConfigParser wrapper for Python 2 to provide the dictionary like interface of the Python 3 variant.</td>
-</tr><tr>
 <td><a href="eric6.Globals.__init__.html">Globals</a></td>
 <td>Module defining common data to be used by all modules.</td>
-</tr><tr>
-<td><a href="eric6.Globals.compatibility_fixes.html">compatibility_fixes</a></td>
-<td>Module implementing some workarounds to let eric6 run under Python 2.</td>
 </tr>
 </table>
 </body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.AdBlock.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.AdBlock</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.AdBlock</h1>
-<p>
-Package implementing the advertisments blocker functionality.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.AdBlock.AdBlockAccessHandler.html">AdBlockAccessHandler</a></td>
-<td>Module implementing a scheme access handler for AdBlock URLs.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.AdBlock.AdBlockBlockedNetworkReply.html">AdBlockBlockedNetworkReply</a></td>
-<td>Module implementing a QNetworkReply subclass reporting a blocked request.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.AdBlock.AdBlockDialog.html">AdBlockDialog</a></td>
-<td>Module implementing the AdBlock configuration dialog.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.AdBlock.AdBlockExceptionsDialog.html">AdBlockExceptionsDialog</a></td>
-<td>Module implementing a dialog to configure the AdBlock exceptions.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.AdBlock.AdBlockIcon.html">AdBlockIcon</a></td>
-<td>Module implementing the AdBlock icon for the main window status bar.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.AdBlock.AdBlockManager.html">AdBlockManager</a></td>
-<td>Module implementing the AdBlock manager.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.AdBlock.AdBlockNetwork.html">AdBlockNetwork</a></td>
-<td>Module implementing the network block class.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.AdBlock.AdBlockPage.html">AdBlockPage</a></td>
-<td>Module implementing a class to apply AdBlock rules to a web page.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.AdBlock.AdBlockRule.html">AdBlockRule</a></td>
-<td>Module implementing the AdBlock rule class.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.AdBlock.AdBlockSubscription.html">AdBlockSubscription</a></td>
-<td>Module implementing the AdBlock subscription class.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.AdBlock.AdBlockTreeWidget.html">AdBlockTreeWidget</a></td>
-<td>Module implementing a tree widget for the AdBlock configuration dialog.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.Bookmarks.BookmarksImporters.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks.BookmarksImporters</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.Bookmarks.BookmarksImporters</h1>
-<p>
-Package implementing bookmarks importers for various sources.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksImporters.BookmarksImporter.html">BookmarksImporter</a></td>
-<td>Module implementing a base class for the bookmarks importers.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksImporters.ChromeImporter.html">ChromeImporter</a></td>
-<td>Module implementing an importer for Chrome bookmarks.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksImporters.FirefoxImporter.html">FirefoxImporter</a></td>
-<td>Module implementing an importer for Firefox bookmarks.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksImporters.HtmlImporter.html">HtmlImporter</a></td>
-<td>Module implementing an importer for HTML bookmark files.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksImporters.IExplorerImporter.html">IExplorerImporter</a></td>
-<td>Module implementing an importer for Internet Explorer bookmarks.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksImporters.OperaImporter.html">OperaImporter</a></td>
-<td>Module implementing an importer for Opera bookmarks.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksImporters.SafariImporter.html">SafariImporter</a></td>
-<td>Module implementing an importer for Apple Safari bookmarks.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksImporters.XbelImporter.html">XbelImporter</a></td>
-<td>Module implementing an importer for XBEL files.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksImporters.__init__.html">BookmarksImporters</a></td>
-<td>Package implementing bookmarks importers for various sources.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.Bookmarks.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Bookmarks</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.Bookmarks</h1>
-<p>
-Package implementing the bookmarks system.
-</p>
-
-<h3>Packages</h3>
-<table>
-<tr>
-<td><a href="index-eric6.Helpviewer.Bookmarks.BookmarksImporters.html">BookmarksImporters</a></td>
-<td>Package implementing bookmarks importers for various sources.</td>
-</tr>
-</table>
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.Bookmarks.AddBookmarkDialog.html">AddBookmarkDialog</a></td>
-<td>Module implementing a dialog to add a bookmark or a bookmark folder.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarkNode.html">BookmarkNode</a></td>
-<td>Module implementing the bookmark node.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarkPropertiesDialog.html">BookmarkPropertiesDialog</a></td>
-<td>Module implementing a dialog to show and edit bookmark properties.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksDialog.html">BookmarksDialog</a></td>
-<td>Module implementing a dialog to manage bookmarks.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksImportDialog.html">BookmarksImportDialog</a></td>
-<td>Module implementing a dialog for importing bookmarks from other sources.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksManager.html">BookmarksManager</a></td>
-<td>Module implementing the bookmarks manager.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksMenu.html">BookmarksMenu</a></td>
-<td>Module implementing the bookmarks menu.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksModel.html">BookmarksModel</a></td>
-<td>Module implementing the bookmark model class.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.BookmarksToolBar.html">BookmarksToolBar</a></td>
-<td>Module implementing a tool bar showing bookmarks.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.NsHtmlReader.html">NsHtmlReader</a></td>
-<td>Module implementing a class to read Netscape HTML bookmark files.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.NsHtmlWriter.html">NsHtmlWriter</a></td>
-<td>Module implementing a class to write Netscape HTML bookmark files.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.XbelReader.html">XbelReader</a></td>
-<td>Module implementing a class to read XBEL bookmark files.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Bookmarks.XbelWriter.html">XbelWriter</a></td>
-<td>Module implementing a class to write XBEL bookmark files.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.CookieJar.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.CookieJar</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.CookieJar</h1>
-<p>
-Package implementing a cookie jar and related dialogs with models.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.CookieJar.CookieDetailsDialog.html">CookieDetailsDialog</a></td>
-<td>Module implementing a dialog showing the cookie data.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.CookieJar.CookieExceptionsModel.html">CookieExceptionsModel</a></td>
-<td>Module implementing the cookie exceptions model.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.CookieJar.CookieJar.html">CookieJar</a></td>
-<td>Module implementing a QNetworkCookieJar subclass with various accept policies.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.CookieJar.CookieModel.html">CookieModel</a></td>
-<td>Module implementing the cookie model.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.CookieJar.CookiesConfigurationDialog.html">CookiesConfigurationDialog</a></td>
-<td>Module implementing the cookies configuration dialog.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.CookieJar.CookiesDialog.html">CookiesDialog</a></td>
-<td>Module implementing a dialog to show all cookies.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.CookieJar.CookiesExceptionsDialog.html">CookiesExceptionsDialog</a></td>
-<td>Module implementing a dialog for the configuration of cookie exceptions.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.Download.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Download</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.Download</h1>
-<p>
-Package implementing all download related modules.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.Download.DownloadAskActionDialog.html">DownloadAskActionDialog</a></td>
-<td>Module implementing a dialog to ask for a download action.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Download.DownloadItem.html">DownloadItem</a></td>
-<td>Module implementing a widget controlling a download.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Download.DownloadManager.html">DownloadManager</a></td>
-<td>Module implementing the download manager class.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Download.DownloadModel.html">DownloadModel</a></td>
-<td>Module implementing the download model.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Download.DownloadUtilities.html">DownloadUtilities</a></td>
-<td>Module implementing some utility functions for the Download package.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.FeaturePermissions.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.FeaturePermissions</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.FeaturePermissions</h1>
-<p>
-Package implementing feature permission related widgets for the eric6
-web browser.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.FeaturePermissions.FeaturePermissionBar.html">FeaturePermissionBar</a></td>
-<td>Module implementing the feature permission bar widget.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.FeaturePermissions.FeaturePermissionManager.html">FeaturePermissionManager</a></td>
-<td>Module implementing the feature permission manager object.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.FeaturePermissions.FeaturePermissionsDialog.html">FeaturePermissionsDialog</a></td>
-<td>Module implementing the feature permission dialog.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.Feeds.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Feeds</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.Feeds</h1>
-<p>
-Package implementing all RSS feed related modules.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.Feeds.FeedEditDialog.html">FeedEditDialog</a></td>
-<td>Module implementing a dialog to edit feed data.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Feeds.FeedsDialog.html">FeedsDialog</a></td>
-<td>Module implementing a dialog to add RSS feeds.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Feeds.FeedsManager.html">FeedsManager</a></td>
-<td>Module implementing a RSS feeds manager dialog.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.FlashCookieManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.FlashCookieManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.FlashCookieManager</h1>
-<p>
-Package implementing the Flash cookie manager and associated objects.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.FlashCookieManager.FlashCookie.html">FlashCookie</a></td>
-<td>Module implementing the Flash cookie class.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.FlashCookieManager.FlashCookieManager.html">FlashCookieManager</a></td>
-<td>Module implementing the Flash cookie manager.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.FlashCookieManager.FlashCookieManagerDialog.html">FlashCookieManagerDialog</a></td>
-<td>Module implementing a dialog to manage the flash cookies.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.FlashCookieManager.FlashCookieNotification.html">FlashCookieNotification</a></td>
-<td>Module implementing the feature permission bar widget.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.FlashCookieManager.FlashCookieReader.html">FlashCookieReader</a></td>
-<td>Module implementing a class to read flash cookies.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.FlashCookieManager.FlashCookieUtilities.html">FlashCookieUtilities</a></td>
-<td>Module implementing some utility functions.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration</h1>
-<p>
-Package implementing the GreaseMonkey configuration dialogs.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog.html">GreaseMonkeyConfigurationDialog</a></td>
-<td>Module implementing the GreaseMonkey scripts configuration dialog.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListDelegate.html">GreaseMonkeyConfigurationListDelegate</a></td>
-<td>Module implementing a delegate for the special list widget for GreaseMonkey scripts.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationListWidget.html">GreaseMonkeyConfigurationListWidget</a></td>
-<td>Module implementing a special list widget for GreaseMonkey scripts.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.GreaseMonkeyConfigurationScriptInfoDialog.html">GreaseMonkeyConfigurationScriptInfoDialog</a></td>
-<td>Module implementing a dialog to show GreaseMonkey script information.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.GreaseMonkey.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.GreaseMonkey</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.GreaseMonkey</h1>
-<p>
-Package implementing the GreaseMonkey support.
-</p>
-
-<h3>Packages</h3>
-<table>
-<tr>
-<td><a href="index-eric6.Helpviewer.GreaseMonkey.GreaseMonkeyConfiguration.html">GreaseMonkeyConfiguration</a></td>
-<td>Package implementing the GreaseMonkey configuration dialogs.</td>
-</tr>
-</table>
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyAddScriptDialog.html">GreaseMonkeyAddScriptDialog</a></td>
-<td>Module implementing a dialog for adding GreaseMonkey scripts..</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyDownloader.html">GreaseMonkeyDownloader</a></td>
-<td>Module implementing the downloader for GreaseMonkey scripts.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyJavaScript.html">GreaseMonkeyJavaScript</a></td>
-<td>Module containing some JavaScript resources.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyManager.html">GreaseMonkeyManager</a></td>
-<td>Module implementing the manager for GreaseMonkey scripts.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyScript.html">GreaseMonkeyScript</a></td>
-<td>Module implementing the GreaseMonkey script.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.GreaseMonkey.GreaseMonkeyUrlMatcher.html">GreaseMonkeyUrlMatcher</a></td>
-<td>Module implementing the GreaseMonkey URL matcher.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.History.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.History</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.History</h1>
-<p>
-Package implementing the history system.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.History.HistoryCompleter.html">HistoryCompleter</a></td>
-<td>Module implementing a special completer for the history.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.History.HistoryDialog.html">HistoryDialog</a></td>
-<td>Module implementing a dialog to manage history.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.History.HistoryFilterModel.html">HistoryFilterModel</a></td>
-<td>Module implementing the history filter model.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.History.HistoryManager.html">HistoryManager</a></td>
-<td>Module implementing the history manager.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.History.HistoryMenu.html">HistoryMenu</a></td>
-<td>Module implementing the history menu.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.History.HistoryModel.html">HistoryModel</a></td>
-<td>Module implementing the history model.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.History.HistoryTreeModel.html">HistoryTreeModel</a></td>
-<td>Module implementing the history tree model.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.Network.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Network</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.Network</h1>
-<p>
-Package containing network related modules.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.Network.AboutAccessHandler.html">AboutAccessHandler</a></td>
-<td>Module implementing a scheme access handler for about schemes.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.EmptyNetworkReply.html">EmptyNetworkReply</a></td>
-<td>Module implementing a network reply class for an empty reply (i.e.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.EricAccessHandler.html">EricAccessHandler</a></td>
-<td>Module implementing a scheme access handler for Python resources.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.FileAccessHandler.html">FileAccessHandler</a></td>
-<td>Module implementing a scheme access handler for file.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.FileReply.html">FileReply</a></td>
-<td>Module implementing a network reply class for directory resources.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.FollowRedirectReply.html">FollowRedirectReply</a></td>
-<td>Module implementing a network reply delegate allowing to check redirects.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.FtpAccessHandler.html">FtpAccessHandler</a></td>
-<td>Module implementing a scheme access handler for FTP.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.FtpReply.html">FtpReply</a></td>
-<td>Module implementing a network reply class for FTP resources.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.NetworkAccessManager.html">NetworkAccessManager</a></td>
-<td>Module implementing a QNetworkAccessManager subclass.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.NetworkAccessManagerProxy.html">NetworkAccessManagerProxy</a></td>
-<td>Module implementing a network access manager proxy for web pages.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.NetworkDiskCache.html">NetworkDiskCache</a></td>
-<td>Module implementing a disk cache respecting privacy.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.NetworkProtocolUnknownErrorReply.html">NetworkProtocolUnknownErrorReply</a></td>
-<td>Module implementing a QNetworkReply subclass reporting an unknown protocol error.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.NetworkReply.html">NetworkReply</a></td>
-<td>Module implementing a network reply object for special data.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.NoCacheHostsDialog.html">NoCacheHostsDialog</a></td>
-<td>Module implementing a dialog to manage the list of hosts not to be cached.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.QtHelpAccessHandler.html">QtHelpAccessHandler</a></td>
-<td>Module implementing a scheme access handler for QtHelp.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.SchemeAccessHandler.html">SchemeAccessHandler</a></td>
-<td>Module implementing the base class for specific scheme access handlers.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Network.SendRefererWhitelistDialog.html">SendRefererWhitelistDialog</a></td>
-<td>Module implementing a dialog to manage the Send Referer whitelist.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.OfflineStorage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.OfflineStorage</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.OfflineStorage</h1>
-<p>
-Package implementing the offline storage related dialogs and models.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.OfflineStorage.OfflineStorageConfigDialog.html">OfflineStorageConfigDialog</a></td>
-<td>Module implementing a dialog to configure the offline storage.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.OfflineStorage.WebDatabasesDialog.html">WebDatabasesDialog</a></td>
-<td>Module implementing a dialog to show all web databases.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.OfflineStorage.WebDatabasesModel.html">WebDatabasesModel</a></td>
-<td>Module implementing the web databases model.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.OpenSearch.DefaultSearchEngines.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.OpenSearch.DefaultSearchEngines</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.OpenSearch.DefaultSearchEngines</h1>
-<p>
-Package conatining the default search engine definitions.
-</p>
-
-
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.OpenSearch.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.OpenSearch</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.OpenSearch</h1>
-<p>
-Package implementing the opensearch search engine interfaces.
-</p>
-
-<h3>Packages</h3>
-<table>
-<tr>
-<td><a href="index-eric6.Helpviewer.OpenSearch.DefaultSearchEngines.html">DefaultSearchEngines</a></td>
-<td>Package conatining the default search engine definitions.</td>
-</tr>
-</table>
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.OpenSearch.OpenSearchDialog.html">OpenSearchDialog</a></td>
-<td>Module implementing a dialog for the configuration of search engines.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.OpenSearch.OpenSearchEditDialog.html">OpenSearchEditDialog</a></td>
-<td>Module implementing a dialog to edit the data of a search engine.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.OpenSearch.OpenSearchEngine.html">OpenSearchEngine</a></td>
-<td>Module implementing the open search engine.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.OpenSearch.OpenSearchEngineAction.html">OpenSearchEngineAction</a></td>
-<td>Module implementing a QAction subclass for open search.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.OpenSearch.OpenSearchEngineModel.html">OpenSearchEngineModel</a></td>
-<td>Module implementing a model for search engines.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.OpenSearch.OpenSearchManager.html">OpenSearchManager</a></td>
-<td>Module implementing a manager for open search engines.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.OpenSearch.OpenSearchReader.html">OpenSearchReader</a></td>
-<td>Module implementing a reader for open search engine descriptions.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.OpenSearch.OpenSearchWriter.html">OpenSearchWriter</a></td>
-<td>Module implementing a writer for open search engine descriptions.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.Passwords.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Passwords</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.Passwords</h1>
-<p>
-Package implementing the password management interface.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.Passwords.LoginForm.html">LoginForm</a></td>
-<td>Module implementing a data structure for login forms.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Passwords.PasswordManager.html">PasswordManager</a></td>
-<td>Module implementing the password manager.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Passwords.PasswordModel.html">PasswordModel</a></td>
-<td>Module implementing a model for password management.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Passwords.PasswordReader.html">PasswordReader</a></td>
-<td>Module implementing a class to read login data files.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Passwords.PasswordWriter.html">PasswordWriter</a></td>
-<td>Module implementing a class to write login data files.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Passwords.PasswordsDialog.html">PasswordsDialog</a></td>
-<td>Module implementing a dialog to show all saved logins.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.PersonalInformationManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.PersonalInformationManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.PersonalInformationManager</h1>
-<p>
-Package implementing the personal information manager for the completion of
-forms.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.PersonalInformationManager.PersonalDataDialog.html">PersonalDataDialog</a></td>
-<td>Module implementing a dialog to enter personal data.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.PersonalInformationManager.PersonalInformationManager.html">PersonalInformationManager</a></td>
-<td>Module implementing a personal information manager used to complete form fields.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.SiteInfo.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.SiteInfo</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.SiteInfo</h1>
-<p>
-Package implementing the site info widgets.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.SiteInfo.SiteInfoDialog.html">SiteInfoDialog</a></td>
-<td>Module implementing a dialog to show some information about a site.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.SpeedDial.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.SpeedDial</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.SpeedDial</h1>
-<p>
-Package implementing the speed dial functionality.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.SpeedDial.Page.html">Page</a></td>
-<td>Module implementing a structure to hold the data for a speed dial page.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.SpeedDial.PageThumbnailer.html">PageThumbnailer</a></td>
-<td>Module implementing an object to create a thumbnail image of a web site.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.SpeedDial.SpeedDial.html">SpeedDial</a></td>
-<td>Module implementing the speed dial.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.SpeedDial.SpeedDialReader.html">SpeedDialReader</a></td>
-<td>Module implementing a class to read speed dial data files.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.SpeedDial.SpeedDialWriter.html">SpeedDialWriter</a></td>
-<td>Module implementing a class to write speed dial data files.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.Sync.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.Sync</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.Sync</h1>
-<p>
-Package implementing capabilities to sync some configuration data.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.Sync.DirectorySyncHandler.html">DirectorySyncHandler</a></td>
-<td>Module implementing a synchronization handler using a shared directory.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Sync.FtpSyncHandler.html">FtpSyncHandler</a></td>
-<td>Module implementing a synchronization handler using FTP.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Sync.SyncAssistantDialog.html">SyncAssistantDialog</a></td>
-<td>Module implementing a wizard dialog to enter the synchronization data.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Sync.SyncCheckPage.html">SyncCheckPage</a></td>
-<td>Module implementing the synchronization status wizard page.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Sync.SyncDataPage.html">SyncDataPage</a></td>
-<td>Module implementing the synchronization data wizard page.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Sync.SyncDirectorySettingsPage.html">SyncDirectorySettingsPage</a></td>
-<td>Module implementing the synchronization shared directory settings wizard page.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Sync.SyncEncryptionPage.html">SyncEncryptionPage</a></td>
-<td>Module implementing encryption settings wizard page.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Sync.SyncFtpSettingsPage.html">SyncFtpSettingsPage</a></td>
-<td>Module implementing the synchronization FTP host settings wizard page.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Sync.SyncGlobals.html">SyncGlobals</a></td>
-<td>Module implementing some global definitions.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Sync.SyncHandler.html">SyncHandler</a></td>
-<td>Module containing a base class for synchronization handlers.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Sync.SyncHostTypePage.html">SyncHostTypePage</a></td>
-<td>Module implementing the synchronization host type wizard page.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.Sync.SyncManager.html">SyncManager</a></td>
-<td>Module implementing the synchronization manager class.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.UrlBar.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.UrlBar</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.UrlBar</h1>
-<p>
-Package implementing the URL bar widget.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.UrlBar.BookmarkActionSelectionDialog.html">BookmarkActionSelectionDialog</a></td>
-<td>Module implementing a dialog to select the action to be performed on the bookmark.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.UrlBar.BookmarkInfoDialog.html">BookmarkInfoDialog</a></td>
-<td>Module implementing a dialog to show some bookmark info.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.UrlBar.FavIconLabel.html">FavIconLabel</a></td>
-<td>Module implementing the label to show the web site icon.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.UrlBar.SslLabel.html">SslLabel</a></td>
-<td>Module implementing the label to show some SSL info.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.UrlBar.StackedUrlBar.html">StackedUrlBar</a></td>
-<td>Module implementing a widget to stack url bars.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.UrlBar.UrlBar.html">UrlBar</a></td>
-<td>Module implementing the URL bar widget.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.UserAgent.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.UserAgent</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.UserAgent</h1>
-<p>
-Package implementing a menu to select the user agent string.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.UserAgent.UserAgentManager.html">UserAgentManager</a></td>
-<td>Module implementing a user agent manager.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.UserAgent.UserAgentMenu.html">UserAgentMenu</a></td>
-<td>Module implementing a menu to select the user agent string.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.UserAgent.UserAgentModel.html">UserAgentModel</a></td>
-<td>Module implementing a model for user agent management.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.UserAgent.UserAgentReader.html">UserAgentReader</a></td>
-<td>Module implementing a class to read user agent data files.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.UserAgent.UserAgentWriter.html">UserAgentWriter</a></td>
-<td>Module implementing a class to write user agent data files.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.UserAgent.UserAgentsDialog.html">UserAgentsDialog</a></td>
-<td>Module implementing a dialog to show all saved user agent settings.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.VirusTotal.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.VirusTotal</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.VirusTotal</h1>
-<p>
-Package containing the VirusTotal interface.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.VirusTotal.VirusTotalApi.html">VirusTotalApi</a></td>
-<td>Module implementing the <a href="http://www.virustotal.com">VirusTotal</a> API class.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.VirusTotal.VirusTotalDomainReportDialog.html">VirusTotalDomainReportDialog</a></td>
-<td>Module implementing a dialog to show the VirusTotal domain report.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.VirusTotal.VirusTotalIpReportDialog.html">VirusTotalIpReportDialog</a></td>
-<td>Module implementing a dialog to show the VirusTotal IP address report.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.VirusTotal.VirusTotalWhoisDialog.html">VirusTotalWhoisDialog</a></td>
-<td>Module implementing a dialog to show the 'whois' information.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.WebPlugins.ClickToFlash.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.WebPlugins.ClickToFlash</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.WebPlugins.ClickToFlash</h1>
-<p>
-Package implementing the flash blocker.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlash.html">ClickToFlash</a></td>
-<td>Module implementing the Flash blocker.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashPlugin.html">ClickToFlashPlugin</a></td>
-<td>Module implementing the Flash blocker plug-in.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.WebPlugins.ClickToFlash.ClickToFlashWhitelistDialog.html">ClickToFlashWhitelistDialog</a></td>
-<td>Module implementing a dialog to manage the ClickToFlash whitelist.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.WebPlugins.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.WebPlugins</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.WebPlugins</h1>
-<p>
-Package implementing web plug-ins for the eric6 web browser.
-</p>
-
-<h3>Packages</h3>
-<table>
-<tr>
-<td><a href="index-eric6.Helpviewer.WebPlugins.ClickToFlash.html">ClickToFlash</a></td>
-<td>Package implementing the flash blocker.</td>
-</tr>
-</table>
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.WebPlugins.WebPluginFactory.html">WebPluginFactory</a></td>
-<td>Module implementing the web plug-in factory.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.WebPlugins.WebPluginInterface.html">WebPluginInterface</a></td>
-<td>Module implementing the web plug-in interface.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.ZoomManager.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.ZoomManager</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.ZoomManager</h1>
-<p>
-Package implementing a manager for site specific zoom level settings.
-</p>
-
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.ZoomManager.ZoomManager.html">ZoomManager</a></td>
-<td>Module implementing a manager for site specific zoom level settings.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.ZoomManager.ZoomValuesDialog.html">ZoomValuesDialog</a></td>
-<td>Module implementing a dialog to show all saved zoom values.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.ZoomManager.ZoomValuesModel.html">ZoomValuesModel</a></td>
-<td>Module implementing a model for zoom values management.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.data.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer.data</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer.data</h1>
-<p>
-Package defining some data used by the web browser.
-</p>
-
-
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Helpviewer.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-<!DOCTYPE html>
-<html><head>
-<title>eric6.Helpviewer</title>
-<meta charset="UTF-8">
-<style>
-body {
-    background: #EDECE6;
-    margin: 0em 1em 10em 1em;
-    color: black;
-}
-
-h1 { color: white; background: #85774A; }
-h2 { color: white; background: #85774A; }
-h3 { color: white; background: #9D936E; }
-h4 { color: white; background: #9D936E; }
-    
-a { color: #BA6D36; }
-
-</style>
-</head>
-<body>
-<h1>eric6.Helpviewer</h1>
-<p>
-Package implementing a little web browser.
-</p><p>
-The web browser is a little HTML browser for the display of HTML
-help files like the Qt Online Documentation and for browsing the internet.
-It may be used as a standalone version as well by using the eric6_helpviewer.py
-script found in the main eric6 installation directory.
-</p>
-
-<h3>Packages</h3>
-<table>
-<tr>
-<td><a href="index-eric6.Helpviewer.AdBlock.html">AdBlock</a></td>
-<td>Package implementing the advertisments blocker functionality.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.Bookmarks.html">Bookmarks</a></td>
-<td>Package implementing the bookmarks system.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.CookieJar.html">CookieJar</a></td>
-<td>Package implementing a cookie jar and related dialogs with models.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.Download.html">Download</a></td>
-<td>Package implementing all download related modules.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.FeaturePermissions.html">FeaturePermissions</a></td>
-<td>Package implementing feature permission related widgets for the eric6 web browser.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.Feeds.html">Feeds</a></td>
-<td>Package implementing all RSS feed related modules.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.FlashCookieManager.html">FlashCookieManager</a></td>
-<td>Package implementing the Flash cookie manager and associated objects.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.GreaseMonkey.html">GreaseMonkey</a></td>
-<td>Package implementing the GreaseMonkey support.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.History.html">History</a></td>
-<td>Package implementing the history system.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.Network.html">Network</a></td>
-<td>Package containing network related modules.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.OfflineStorage.html">OfflineStorage</a></td>
-<td>Package implementing the offline storage related dialogs and models.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.OpenSearch.html">OpenSearch</a></td>
-<td>Package implementing the opensearch search engine interfaces.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.Passwords.html">Passwords</a></td>
-<td>Package implementing the password management interface.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.PersonalInformationManager.html">PersonalInformationManager</a></td>
-<td>Package implementing the personal information manager for the completion of forms.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.SiteInfo.html">SiteInfo</a></td>
-<td>Package implementing the site info widgets.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.SpeedDial.html">SpeedDial</a></td>
-<td>Package implementing the speed dial functionality.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.Sync.html">Sync</a></td>
-<td>Package implementing capabilities to sync some configuration data.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.UrlBar.html">UrlBar</a></td>
-<td>Package implementing the URL bar widget.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.UserAgent.html">UserAgent</a></td>
-<td>Package implementing a menu to select the user agent string.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.VirusTotal.html">VirusTotal</a></td>
-<td>Package containing the VirusTotal interface.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.WebPlugins.html">WebPlugins</a></td>
-<td>Package implementing web plug-ins for the eric6 web browser.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.ZoomManager.html">ZoomManager</a></td>
-<td>Package implementing a manager for site specific zoom level settings.</td>
-</tr><tr>
-<td><a href="index-eric6.Helpviewer.data.html">data</a></td>
-<td>Package defining some data used by the web browser.</td>
-</tr>
-</table>
-
-<h3>Modules</h3>
-<table>
-<tr>
-<td><a href="eric6.Helpviewer.ClosedTabsManager.html">ClosedTabsManager</a></td>
-<td>Module implementing a class to manage closed tabs.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpBrowserWV.html">HelpBrowserWV</a></td>
-<td>Module implementing the helpbrowser using QWebView.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpClearPrivateDataDialog.html">HelpClearPrivateDataDialog</a></td>
-<td>Module implementing a dialog to select which private data to clear.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpDocsInstaller.html">HelpDocsInstaller</a></td>
-<td>Module implementing a thread class populating and updating the QtHelp documentation database.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpIndexWidget.html">HelpIndexWidget</a></td>
-<td>Module implementing a window for showing the QtHelp index.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpInspector.html">HelpInspector</a></td>
-<td>Module implementing a QWebInspector wrapper to save and restore the geometry.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpLanguagesDialog.html">HelpLanguagesDialog</a></td>
-<td>Module implementing a dialog to configure the preferred languages.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpSearchWidget.html">HelpSearchWidget</a></td>
-<td>Module implementing a window for showing the QtHelp index.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpSingleApplication.html">HelpSingleApplication</a></td>
-<td>Module implementing the single application server and client for the web browser.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpSnap.html">HelpSnap</a></td>
-<td>Module implementing functions to generate page previews.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpTabBar.html">HelpTabBar</a></td>
-<td>Module implementing a specialized tab bar for the web browser.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpTabWidget.html">HelpTabWidget</a></td>
-<td>Module implementing the central widget showing the web pages.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpTocWidget.html">HelpTocWidget</a></td>
-<td>Module implementing a window for showing the QtHelp TOC.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpTopicDialog.html">HelpTopicDialog</a></td>
-<td>Module implementing a dialog to select a help topic to display.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpUtilities.html">HelpUtilities</a></td>
-<td>Module implementing some global helper functions.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpWebSearchWidget.html">HelpWebSearchWidget</a></td>
-<td>Module implementing a web search widget for the web browser.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.HelpWindow.html">HelpWindow</a></td>
-<td>Module implementing the helpviewer main window.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.JavaScriptResources.html">JavaScriptResources</a></td>
-<td>Module containing some HTML resources.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.PageScreenDialog.html">PageScreenDialog</a></td>
-<td>Module implementing a dialog to save a screenshot of a web page.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.QtHelpDocumentationDialog.html">QtHelpDocumentationDialog</a></td>
-<td>Module implementing a dialog to manage the QtHelp documentation database.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.QtHelpDocumentationSelectionDialog.html">QtHelpDocumentationSelectionDialog</a></td>
-<td>Module implementing a dialog to select QtHelp documentation sets to be installed.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.QtHelpFiltersDialog.html">QtHelpFiltersDialog</a></td>
-<td>Module implementing a dialog to manage the QtHelp filters.</td>
-</tr><tr>
-<td><a href="eric6.Helpviewer.SearchWidget.html">SearchWidget</a></td>
-<td>Module implementing the search bar for the web browser.</td>
-</tr>
-</table>
-</body></html>
\ No newline at end of file
--- a/eric6/Documentation/Source/index-eric6.Preferences.ConfigurationPages.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/index-eric6.Preferences.ConfigurationPages.html	Sat Sep 07 16:10:29 2019 +0200
@@ -118,27 +118,12 @@
 <td><a href="eric6.Preferences.ConfigurationPages.GraphicsPage.html">GraphicsPage</a></td>
 <td>Module implementing the Printer configuration page.</td>
 </tr><tr>
-<td><a href="eric6.Preferences.ConfigurationPages.HelpAppearancePage.html">HelpAppearancePage</a></td>
-<td>Module implementing the Help Viewers configuration page.</td>
-</tr><tr>
 <td><a href="eric6.Preferences.ConfigurationPages.HelpDocumentationPage.html">HelpDocumentationPage</a></td>
 <td>Module implementing the Help Documentation configuration page.</td>
 </tr><tr>
-<td><a href="eric6.Preferences.ConfigurationPages.HelpFlashCookieManagerPage.html">HelpFlashCookieManagerPage</a></td>
-<td>Module implementing the Flash Cookies Manager configuration page.</td>
-</tr><tr>
-<td><a href="eric6.Preferences.ConfigurationPages.HelpInterfacePage.html">HelpInterfacePage</a></td>
-<td>Module implementing the Interface configuration page (variant for web browser).</td>
-</tr><tr>
 <td><a href="eric6.Preferences.ConfigurationPages.HelpViewersPage.html">HelpViewersPage</a></td>
 <td>Module implementing the Help Viewers configuration page.</td>
 </tr><tr>
-<td><a href="eric6.Preferences.ConfigurationPages.HelpVirusTotalPage.html">HelpVirusTotalPage</a></td>
-<td>Module implementing VirusTotal configuration page (help viewer variant).</td>
-</tr><tr>
-<td><a href="eric6.Preferences.ConfigurationPages.HelpWebBrowserPage.html">HelpWebBrowserPage</a></td>
-<td>Module implementing the Help web browser configuration page.</td>
-</tr><tr>
 <td><a href="eric6.Preferences.ConfigurationPages.HexEditorPage.html">HexEditorPage</a></td>
 <td>Module implementing the Hex Editor configuration page.</td>
 </tr><tr>
@@ -223,6 +208,9 @@
 <td><a href="eric6.Preferences.ConfigurationPages.WebBrowserAppearancePage.html">WebBrowserAppearancePage</a></td>
 <td>Module implementing the Web Browser Appearance configuration page.</td>
 </tr><tr>
+<td><a href="eric6.Preferences.ConfigurationPages.WebBrowserFlashCookieManagerPage.html">WebBrowserFlashCookieManagerPage</a></td>
+<td>Module implementing the Flash Cookies Manager configuration page.</td>
+</tr><tr>
 <td><a href="eric6.Preferences.ConfigurationPages.WebBrowserPage.html">WebBrowserPage</a></td>
 <td>Module implementing the  Web Browser configuration page.</td>
 </tr><tr>
--- a/eric6/Documentation/Source/index-eric6.Project.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/index-eric6.Project.html	Sat Sep 07 16:10:29 2019 +0200
@@ -48,7 +48,7 @@
 <td>Module implementing a dialog to add a new language to the project.</td>
 </tr><tr>
 <td><a href="eric6.Project.CreateDialogCodeDialog.html">CreateDialogCodeDialog</a></td>
-<td>Module implementing a dialog to generate code for a Qt4/Qt5 dialog.</td>
+<td>Module implementing a dialog to generate code for a Qt5 dialog.</td>
 </tr><tr>
 <td><a href="eric6.Project.DebuggerPropertiesDialog.html">DebuggerPropertiesDialog</a></td>
 <td>Module implementing a dialog for entering project specific debugger settings.</td>
--- a/eric6/Documentation/Source/index-eric6.Toolbox.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/index-eric6.Toolbox.html	Sat Sep 07 16:10:29 2019 +0200
@@ -28,9 +28,6 @@
 <h3>Modules</h3>
 <table>
 <tr>
-<td><a href="eric6.Toolbox.PyQt4ImportHook.html">PyQt4ImportHook</a></td>
-<td>Module implementing an import hook converting PyQt5 imports to PyQt4 imports.</td>
-</tr><tr>
 <td><a href="eric6.Toolbox.SingleApplication.html">SingleApplication</a></td>
 <td>Module implementing the single application server and client.</td>
 </tr><tr>
--- a/eric6/Documentation/Source/index-eric6.WebBrowser.SafeBrowsing.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/index-eric6.WebBrowser.SafeBrowsing.html	Sat Sep 07 16:10:29 2019 +0200
@@ -52,9 +52,6 @@
 <td><a href="eric6.WebBrowser.SafeBrowsing.SafeBrowsingUrl.html">SafeBrowsingUrl</a></td>
 <td>Module implementing an URL representation suitable for Google Safe Browsing.</td>
 </tr><tr>
-<td><a href="eric6.WebBrowser.SafeBrowsing.SafeBrowsingUtilities.html">SafeBrowsingUtilities</a></td>
-<td>Module implementing some utilities for Google Safe Browsing.</td>
-</tr><tr>
 <td><a href="eric6.WebBrowser.SafeBrowsing.__init__.html">SafeBrowsing</a></td>
 <td>Package implementing the safe browsing functionality.</td>
 </tr>
--- a/eric6/Documentation/Source/index-eric6.WebBrowser.Tools.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/index-eric6.WebBrowser.Tools.html	Sat Sep 07 16:10:29 2019 +0200
@@ -31,9 +31,6 @@
 <td><a href="eric6.WebBrowser.Tools.DelayedFileWatcher.html">DelayedFileWatcher</a></td>
 <td>Module implementing a file system watcher with a delay.</td>
 </tr><tr>
-<td><a href="eric6.WebBrowser.Tools.FilePrinter.html">FilePrinter</a></td>
-<td>Module implementing an object for printing of files.</td>
-</tr><tr>
 <td><a href="eric6.WebBrowser.Tools.PrintToPdfDialog.html">PrintToPdfDialog</a></td>
 <td>Module implementing a dialog to enter the data for printing a web page to PDF.</td>
 </tr><tr>
--- a/eric6/Documentation/Source/index-eric6.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/index-eric6.html	Sat Sep 07 16:10:29 2019 +0200
@@ -69,9 +69,6 @@
 <td><a href="index-eric6.Graphics.html">Graphics</a></td>
 <td>Package implementing various graphical representations.</td>
 </tr><tr>
-<td><a href="index-eric6.Helpviewer.html">Helpviewer</a></td>
-<td>Package implementing a little web browser.</td>
-</tr><tr>
 <td><a href="index-eric6.HexEdit.html">HexEdit</a></td>
 <td>Package implementing a hex editor.</td>
 </tr><tr>
@@ -221,9 +218,6 @@
 <td><a href="eric6.eric6_unittest.html">eric6_unittest</a></td>
 <td>Eric6 Unittest.</td>
 </tr><tr>
-<td><a href="eric6.eric6_webbrowser.html">eric6_webbrowser</a></td>
-<td>Eric6 Web Browser.</td>
-</tr><tr>
 <td><a href="eric6.eric6config.html">eric6config</a></td>
 <td>Module containing the default configuration of the eric6 installation.</td>
 </tr>
--- a/eric6/Documentation/Source/install.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/install.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>BlackLists</td></tr><tr><td>PlatformsBlackLists</td></tr><tr><td>PythonMarkers</td></tr><tr><td>PythonTextMarkers</td></tr><tr><td>apisDir</td></tr><tr><td>cfg</td></tr><tr><td>configLength</td></tr><tr><td>configName</td></tr><tr><td>currDir</td></tr><tr><td>defaultMacAppBundleName</td></tr><tr><td>defaultMacAppBundlePath</td></tr><tr><td>defaultMacPythonExe</td></tr><tr><td>distDir</td></tr><tr><td>doCleanDesktopLinks</td></tr><tr><td>doCleanup</td></tr><tr><td>doCompile</td></tr><tr><td>eric6SourceDir</td></tr><tr><td>forceCleanDesktopLinks</td></tr><tr><td>includePythonVariant</td></tr><tr><td>installApis</td></tr><tr><td>macAppBundleName</td></tr><tr><td>macAppBundlePath</td></tr><tr><td>macPythonExe</td></tr><tr><td>modDir</td></tr><tr><td>platBinDir</td></tr><tr><td>platBinDirOld</td></tr><tr><td>progLanguages</td></tr><tr><td>progName</td></tr><tr><td>pyModDir</td></tr><tr><td>pyqtOverride</td></tr><tr><td>pyqtVariant</td></tr><tr><td>sourceDir</td></tr>
+<tr><td>BlackLists</td></tr><tr><td>PlatformsBlackLists</td></tr><tr><td>apisDir</td></tr><tr><td>cfg</td></tr><tr><td>configLength</td></tr><tr><td>configName</td></tr><tr><td>currDir</td></tr><tr><td>defaultMacAppBundleName</td></tr><tr><td>defaultMacAppBundlePath</td></tr><tr><td>defaultMacPythonExe</td></tr><tr><td>distDir</td></tr><tr><td>doCleanDesktopLinks</td></tr><tr><td>doCleanup</td></tr><tr><td>doCompile</td></tr><tr><td>eric6SourceDir</td></tr><tr><td>forceCleanDesktopLinks</td></tr><tr><td>installApis</td></tr><tr><td>macAppBundleName</td></tr><tr><td>macAppBundlePath</td></tr><tr><td>macPythonExe</td></tr><tr><td>modDir</td></tr><tr><td>platBinDir</td></tr><tr><td>platBinDirOld</td></tr><tr><td>progLanguages</td></tr><tr><td>progName</td></tr><tr><td>pyModDir</td></tr><tr><td>sourceDir</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
@@ -91,9 +91,6 @@
 <td><a href="#createWindowsShortcut">createWindowsShortcut</a></td>
 <td>Create Windows shortcut.</td>
 </tr><tr>
-<td><a href="#determinePyQtVariant">determinePyQtVariant</a></td>
-<td>Module function to determine the PyQt variant to be used.</td>
-</tr><tr>
 <td><a href="#doDependancyChecks">doDependancyChecks</a></td>
 <td>Perform some dependency checks.</td>
 </tr><tr>
@@ -216,7 +213,7 @@
 <hr /><hr />
 <a NAME="copyAppStreamFile" ID="copyAppStreamFile"></a>
 <h2>copyAppStreamFile</h2>
-<b>copyAppStreamFile</b>(<i>src, dst, marker</i>)
+<b>copyAppStreamFile</b>(<i>src, dst</i>)
 <p>
     Modify an appstream file and write it to its destination.
 </p><dl>
@@ -226,16 +223,13 @@
 </dd><dt><i>dst</i></dt>
 <dd>
 destination file name (string)
-</dd><dt><i>marker</i></dt>
-<dd>
-marker to be used (string)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
 <a NAME="copyDesktopFile" ID="copyDesktopFile"></a>
 <h2>copyDesktopFile</h2>
-<b>copyDesktopFile</b>(<i>src, dst, marker</i>)
+<b>copyDesktopFile</b>(<i>src, dst</i>)
 <p>
     Modify a desktop file and write it to its destination.
 </p><dl>
@@ -245,9 +239,6 @@
 </dd><dt><i>dst</i></dt>
 <dd>
 destination file name (string)
-</dd><dt><i>marker</i></dt>
-<dd>
-marker to be used (string)
 </dd>
 </dl>
 <div align="right"><a href="#top">Up</a></div>
@@ -397,14 +388,6 @@
 </dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr /><hr />
-<a NAME="determinePyQtVariant" ID="determinePyQtVariant"></a>
-<h2>determinePyQtVariant</h2>
-<b>determinePyQtVariant</b>(<i></i>)
-<p>
-    Module function to determine the PyQt variant to be used.
-</p>
-<div align="right"><a href="#top">Up</a></div>
-<hr /><hr />
 <a NAME="doDependancyChecks" ID="doDependancyChecks"></a>
 <h2>doDependancyChecks</h2>
 <b>doDependancyChecks</b>(<i></i>)
--- a/eric6/Documentation/Source/uninstall.html	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Documentation/Source/uninstall.html	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,7 @@
 </p>
 <h3>Global Attributes</h3>
 <table>
-<tr><td>PythonMarkers</td></tr><tr><td>currDir</td></tr><tr><td>defaultMacAppBundleName</td></tr><tr><td>defaultMacAppBundlePath</td></tr><tr><td>includePythonVariant</td></tr><tr><td>progLanguages</td></tr><tr><td>progName</td></tr><tr><td>pyModDir</td></tr><tr><td>settingsNameGlobal</td></tr><tr><td>settingsNameOrganization</td></tr>
+<tr><td>currDir</td></tr><tr><td>defaultMacAppBundleName</td></tr><tr><td>defaultMacAppBundlePath</td></tr><tr><td>progLanguages</td></tr><tr><td>progName</td></tr><tr><td>pyModDir</td></tr><tr><td>settingsNameGlobal</td></tr><tr><td>settingsNameOrganization</td></tr>
 </table>
 <h3>Classes</h3>
 <table>
--- a/eric6/E5Gui/E5ErrorMessage.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Gui/E5ErrorMessage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -98,21 +98,17 @@
             _filterSettings.setValue("MessageFilters", filters)
 
 
-def messageHandler(msgType, *args):
+def messageHandler(msgType, context, message):
     """
     Module function handling messages.
     
     @param msgType type of the message
     @type  int, QtMsgType
-    @param args message handler arguments, for PyQt4 message to be shown, for
-        PyQt5 context information and message to be shown
-    @type PyQt4: bytes; PyQt5: tuple of (QMessageLogContext, bytes)
+    @param context context information
+    @type QMessageLogContext
+    @param message message to be shown
+    @type bytes
     """
-    if len(args) == 2:
-        context = args[0]
-        message = args[1]
-    else:
-        message = args[0]
     if _msgHandlerDialog:
         try:
             if msgType == QtDebugMsg:
@@ -130,7 +126,7 @@
             message = message.replace("\r\n", "<br/>")\
                              .replace("\n", "<br/>")\
                              .replace("\r", "<br/>")
-            if len(args) == 2 and context.file is not None:
+            if context.file is not None:
                 msg = "<p><b>{0}</b></p><p>{1}</p><p>File: {2}</p>" \
                     "<p>Line: {3}</p><p>Function: {4}</p>".format(
                         messageType, Utilities.html_uencode(message),
@@ -163,12 +159,9 @@
         messageType = "Fatal Error"
     if isinstance(message, bytes):
         message = message.decode()
-    if len(args) == 2:
-        print("{0}: {1} in {2} at line {3} ({4})".format(
-            messageType, message, context.file, context.line,
-            context.function))
-    else:
-        print("{0}: {1}".format(messageType, message))
+    print("{0}: {1} in {2} at line {3} ({4})".format(
+        messageType, message, context.file, context.line,
+        context.function))
 
 
 def qtHandler():
--- a/eric6/E5Gui/E5FileDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Gui/E5FileDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,7 +10,6 @@
 
 from __future__ import unicode_literals
 
-from PyQt5.QtCore import PYQT_VERSION_STR
 from PyQt5.QtWidgets import QFileDialog
 
 import Globals
@@ -25,6 +24,7 @@
 ReadOnly = QFileDialog.ReadOnly
 HideNameFilterDetails = QFileDialog.HideNameFilterDetails
 DontUseSheet = QFileDialog.DontUseSheet
+DontUseCustomDirectoryIcons = QFileDialog.DontUseCustomDirectoryIcons
 
 
 def __reorderFilter(filterStr, initialFilter=""):
@@ -62,12 +62,8 @@
         options = QFileDialog.Options()
     if Globals.isLinuxPlatform():
         options |= QFileDialog.DontUseNativeDialog
-    if PYQT_VERSION_STR >= "5.0.0":
-        return QFileDialog.getOpenFileName(
-            parent, caption, directory, filterStr, "", options)[0]
-    else:
-        return QFileDialog.getOpenFileName(
-            parent, caption, directory, filterStr, options)
+    return QFileDialog.getOpenFileName(
+        parent, caption, directory, filterStr, "", options)[0]
 
 
 def getOpenFileNameAndFilter(parent=None, caption="", directory="",
@@ -90,12 +86,8 @@
     if Globals.isLinuxPlatform():
         options |= QFileDialog.DontUseNativeDialog
     newfilter = __reorderFilter(filterStr, initialFilter)
-    if PYQT_VERSION_STR >= "5.0.0":
-        return QFileDialog.getOpenFileName(
-            parent, caption, directory, newfilter, initialFilter, options)
-    else:
-        return QFileDialog.getOpenFileNameAndFilter(
-            parent, caption, directory, newfilter, initialFilter, options)
+    return QFileDialog.getOpenFileName(
+        parent, caption, directory, newfilter, initialFilter, options)
 
 
 def getOpenFileNames(parent=None, caption="", directory="",
@@ -114,12 +106,8 @@
         options = QFileDialog.Options()
     if Globals.isLinuxPlatform():
         options |= QFileDialog.DontUseNativeDialog
-    if PYQT_VERSION_STR >= "5.0.0":
-        return QFileDialog.getOpenFileNames(
-            parent, caption, directory, filterStr, "", options)[0]
-    else:
-        return QFileDialog.getOpenFileNames(
-            parent, caption, directory, filterStr, options)
+    return QFileDialog.getOpenFileNames(
+        parent, caption, directory, filterStr, "", options)[0]
 
 
 def getOpenFileNamesAndFilter(parent=None, caption="", directory="",
@@ -143,12 +131,8 @@
     if Globals.isLinuxPlatform():
         options |= QFileDialog.DontUseNativeDialog
     newfilter = __reorderFilter(filterStr, initialFilter)
-    if PYQT_VERSION_STR >= "5.0.0":
-        return QFileDialog.getOpenFileNames(
-            parent, caption, directory, newfilter, initialFilter, options)
-    else:
-        return QFileDialog.getOpenFileNamesAndFilter(
-            parent, caption, directory, newfilter, initialFilter, options)
+    return QFileDialog.getOpenFileNames(
+        parent, caption, directory, newfilter, initialFilter, options)
 
 
 def getSaveFileName(parent=None, caption="", directory="",
@@ -167,12 +151,8 @@
         options = QFileDialog.Options()
     if Globals.isLinuxPlatform():
         options |= QFileDialog.DontUseNativeDialog
-    if PYQT_VERSION_STR >= "5.0.0":
-        return QFileDialog.getSaveFileName(
-            parent, caption, directory, filterStr, "", options)[0]
-    else:
-        return QFileDialog.getSaveFileName(
-            parent, caption, directory, filterStr, options)
+    return QFileDialog.getSaveFileName(
+        parent, caption, directory, filterStr, "", options)[0]
 
 
 def getSaveFileNameAndFilter(parent=None, caption="", directory="",
@@ -195,12 +175,8 @@
     if Globals.isLinuxPlatform():
         options |= QFileDialog.DontUseNativeDialog
     newfilter = __reorderFilter(filterStr, initialFilter)
-    if PYQT_VERSION_STR >= "5.0.0":
-        return QFileDialog.getSaveFileName(
-            parent, caption, directory, newfilter, initialFilter, options)
-    else:
-        return QFileDialog.getSaveFileNameAndFilter(
-            parent, caption, directory, newfilter, initialFilter, options)
+    return QFileDialog.getSaveFileName(
+        parent, caption, directory, newfilter, initialFilter, options)
 
 
 def getExistingDirectory(parent=None, caption="",
--- a/eric6/E5Gui/E5LineEdit.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Gui/E5LineEdit.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,16 +10,8 @@
 from __future__ import unicode_literals
 
 from PyQt5.QtCore import pyqtSignal, Qt, QEvent
-from PyQt5.QtGui import QPainter, QPalette
-from PyQt5.QtWidgets import QLineEdit, QStyle, QWidget, QHBoxLayout, \
-    QBoxLayout, QLayout, QApplication, QSpacerItem, QSizePolicy
-
-from Globals import qVersionTuple
-
-if qVersionTuple() >= (5, 0, 0):
-    from PyQt5.QtWidgets import QStyleOptionFrame
-else:
-    from PyQt5.QtWidgets import QStyleOptionFrameV2 as QStyleOptionFrame
+from PyQt5.QtWidgets import QLineEdit, QWidget, QHBoxLayout, QBoxLayout, \
+    QLayout, QApplication, QSpacerItem, QSizePolicy
 
 import UI.PixmapCache
 
@@ -70,10 +62,7 @@
         
         self.setMinimumHeight(22)
         
-        if qVersionTuple() < (4, 7, 0):
-            self.__inactiveText = inactiveText
-        else:
-            self.setPlaceholderText(inactiveText)
+        self.setPlaceholderText(inactiveText)
         
         self.__mainLayout = QHBoxLayout(self)
         self.__mainLayout.setContentsMargins(0, 0, 0, 0)
@@ -149,33 +138,6 @@
                 self.__rightLayout.setDirection(QBoxLayout.LeftToRight)
         return QLineEdit.event(self, evt)
     
-    def paintEvent(self, evt):
-        """
-        Protected method handling a paint event.
-        
-        @param evt reference to the paint event (QPaintEvent)
-        """
-        super(E5LineEdit, self).paintEvent(evt)
-        
-        if qVersionTuple() < (4, 7, 0):
-            if not self.text() and \
-               self.__inactiveText and \
-               not self.hasFocus():
-                panel = QStyleOptionFrame()
-                self.initStyleOption(panel)
-                textRect = self.style().subElementRect(
-                    QStyle.SE_LineEditContents, panel, self)
-                textRect.adjust(2, 0, 0, 0)
-                left = self.textMargin(self.LeftSide)
-                right = self.textMargin(self.RightSide)
-                textRect.adjust(left, 0, -right, 0)
-                painter = QPainter(self)
-                painter.setPen(self.palette().brush(
-                    QPalette.Disabled, QPalette.Text).color())
-                painter.drawText(
-                    textRect, Qt.AlignLeft | Qt.AlignVCenter,
-                    self.__inactiveText)
-    
     def _updateTextMargins(self):
         """
         Protected slot to update the text margins.
@@ -265,10 +227,7 @@
         
         @return inactive text (string)
         """
-        if qVersionTuple() < (4, 7, 0):
-            return self.__inactiveText
-        else:
-            return self.placeholderText()
+        return self.placeholderText()
     
     def setInactiveText(self, inactiveText):
         """
@@ -276,11 +235,7 @@
         
         @param inactiveText text to be shown on inactivity (string)
         """
-        if qVersionTuple() < (4, 7, 0):
-            self.__inactiveText = inactiveText
-            self.update()
-        else:
-            self.setPlaceholderText(inactiveText)
+        self.setPlaceholderText(inactiveText)
 
 
 class E5ClearableLineEdit(E5LineEdit):
--- a/eric6/E5Gui/E5MapWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Gui/E5MapWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -13,8 +13,6 @@
 from PyQt5.QtGui import QColor, QBrush, QPainter
 from PyQt5.QtWidgets import QWidget, QAbstractScrollArea
 
-from Globals import qVersionTuple
-
 
 class E5MapWidget(QWidget):
     """
@@ -251,10 +249,7 @@
         
         @param event reference to the wheel event (QWheelEvent)
         """
-        if qVersionTuple() >= (5, 0, 0):
-            isVertical = event.angleDelta().x() == 0
-        else:
-            isVertical = event.orientation() == Qt.Vertical
+        isVertical = event.angleDelta().x() == 0
         if self._master and \
             event.modifiers() == Qt.NoModifier and \
                 isVertical:
--- a/eric6/E5Gui/E5ModelMenu.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Gui/E5ModelMenu.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,11 +10,10 @@
 from __future__ import unicode_literals
 
 from PyQt5.QtCore import pyqtSignal, Qt, QModelIndex, QPoint
-from PyQt5.QtGui import QFontMetrics, QDrag, QPixmap
+from PyQt5.QtGui import QFontMetrics, QDrag
 from PyQt5.QtWidgets import QMenu, QAction, QApplication
 
 import UI.PixmapCache
-from Globals import qVersionTuple
 
 
 class E5ModelMenu(QMenu):
@@ -393,10 +392,7 @@
         drag = QDrag(self)
         drag.setMimeData(self.__model.mimeData([idx]))
         actionRect = self.actionGeometry(act)
-        if qVersionTuple() >= (5, 0, 0):
-            drag.setPixmap(self.grab(actionRect))
-        else:
-            drag.setPixmap(QPixmap.grabWidget(self, actionRect))
+        drag.setPixmap(self.grab(actionRect))
         
         if drag.exec_() == Qt.MoveAction:
             row = idx.row()
--- a/eric6/E5Gui/E5ModelToolBar.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Gui/E5ModelToolBar.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,11 +10,9 @@
 from __future__ import unicode_literals
 
 from PyQt5.QtCore import pyqtSignal, Qt, QModelIndex, QPoint, QEvent
-from PyQt5.QtGui import QDrag, QPixmap, QIcon
+from PyQt5.QtGui import QDrag, QIcon
 from PyQt5.QtWidgets import QApplication, QToolBar, QToolButton
 
-from Globals import qVersionTuple
-
 
 class E5ModelToolBar(QToolBar):
     """
@@ -253,10 +251,7 @@
         drag = QDrag(self)
         drag.setMimeData(self.__model.mimeData([idx]))
         actionRect = self.actionGeometry(act)
-        if qVersionTuple() >= (5, 0, 0):
-            drag.setPixmap(self.grab(actionRect))
-        else:
-            drag.setPixmap(QPixmap.grabWidget(self, actionRect))
+        drag.setPixmap(self.grab(actionRect))
         
         if drag.exec_() == Qt.MoveAction:
             row = idx.row()
--- a/eric6/E5Gui/E5ProcessDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Gui/E5ProcessDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/E5Gui/E5SideBar.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Gui/E5SideBar.py	Sat Sep 07 16:10:29 2019 +0200
@@ -17,7 +17,6 @@
 from E5Gui.E5Application import e5App
 
 import UI.PixmapCache
-from Globals import qVersionTuple
 
 
 class E5SideBar(QWidget):
@@ -255,10 +254,7 @@
                 elif self.isMinimized():
                     self.expand()
             elif evt.type() == QEvent.Wheel:
-                if qVersionTuple() >= (5, 0, 0):
-                    delta = evt.angleDelta().y()
-                else:
-                    delta = evt.delta()
+                delta = evt.angleDelta().y()
                 if delta > 0:
                     self.prevTab()
                 else:
--- a/eric6/E5Gui/E5TabWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Gui/E5TabWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -13,8 +13,6 @@
 from PyQt5.QtGui import QDrag, QMovie
 from PyQt5.QtWidgets import QTabWidget, QTabBar, QApplication, QStyle, QLabel
 
-from Globals import qVersionTuple
-
 
 class E5WheelTabBar(QTabBar):
     """
@@ -37,10 +35,7 @@
         @param event reference to the wheel event (QWheelEvent)
         """
         try:
-            if qVersionTuple() >= (5, 0, 0):
-                delta = event.angleDelta().y()
-            else:
-                delta = event.delta()
+            delta = event.angleDelta().y()
             if delta > 0:
                 self._tabWidget.prevTab()
             elif delta < 0:
--- a/eric6/E5Gui/E5TextEditSearchWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Gui/E5TextEditSearchWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -273,9 +273,6 @@
             self.__findNextPrevCallback(ok)
         elif self.__texteditType == "QWebEngineView":
             self.__findPrevNextQWebEngineView(backwards)
-        elif self.__texteditType == "QWebView":
-            ok = self.__findPrevNextQWebView(backwards)
-            self.__findNextPrevCallback(ok)
     
     def __findPrevNextQTextEdit(self, backwards):
         """
@@ -310,27 +307,6 @@
         
         return ok
     
-    def __findPrevNextQWebView(self, backwards):
-        """
-        Private method to to search the associated edit widget of
-        type QWebView.
-        
-        @param backwards flag indicating a backwards search
-        @type bool
-        @return flag indicating the search result
-        @rtype bool
-        """
-        from PyQt5.QtWebKitWidgets import QWebPage
-        
-        findFlags = QWebPage.FindFlags(QWebPage.FindWrapsAroundDocument)
-        if self.caseCheckBox.isChecked():
-            findFlags |= QWebPage.FindCaseSensitively
-        if backwards:
-            findFlags |= QWebPage.FindBackward
-        
-        return self.__textedit.findText(self.findtextCombo.currentText(),
-                                        findFlags)
-    
     def __findPrevNextQWebEngineView(self, backwards):
         """
         Private method to to search the associated edit widget of
--- a/eric6/E5Network/E5GoogleMail.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Network/E5GoogleMail.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,13 +8,8 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import os
-import sys
 import base64
 import json
 import datetime
@@ -23,7 +18,7 @@
 from google.oauth2.credentials import Credentials
 from requests_oauthlib import OAuth2Session
 
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, QObject, QUrl
+from PyQt5.QtCore import pyqtSlot, pyqtSignal, QObject, QUrl, QUrlQuery
 from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout
 
 from E5Gui.E5TextInputDialog import E5TextInputDialog
@@ -55,16 +50,10 @@
         
         self.__layout = QVBoxLayout(self)
         
-        try:
-            from PyQt5.QtWebEngineWidgets import QWebEngineView
-            self.__browser = QWebEngineView(self)
-            self.__browser.titleChanged.connect(self.__titleChanged)
-            self.__browser.loadFinished.connect(self.__pageLoadFinished)
-        except ImportError:
-            from PyQt5.QtWebKitWidgets import QWebView
-            self.__browser = QWebView(self)
-            self.__browser.titleChanged.connect(self.__titleChanged)
-            self.__browser.loadFinished.connect(self.__pageLoadFinished)
+        from PyQt5.QtWebEngineWidgets import QWebEngineView
+        self.__browser = QWebEngineView(self)
+        self.__browser.titleChanged.connect(self.__titleChanged)
+        self.__browser.loadFinished.connect(self.__pageLoadFinished)
         self.__layout.addWidget(self.__browser)
         
         self.__buttonBox = QDialogButtonBox(QDialogButtonBox.Close)
@@ -91,14 +80,9 @@
         url = self.__browser.url()
         if url.toString().startswith(
                 "https://accounts.google.com/o/oauth2/approval/v2"):
-            if Globals.qVersionTuple() >= (5, 0, 0):
-                from PyQt5.QtCore import QUrlQuery
-                urlQuery = QUrlQuery(url)
-                approvalCode = urlQuery.queryItemValue(
-                    "approvalCode", QUrl.FullyDecoded)
-            else:
-                approvalCode = QUrl.fromPercentEncoding(
-                    url.encodedQueryItemValue(b"approvalCode"))
+            urlQuery = QUrlQuery(url)
+            approvalCode = urlQuery.queryItemValue(
+                "approvalCode", QUrl.FullyDecoded)
             if approvalCode:
                 self.approvalCodeReceived.emit(approvalCode)
                 self.close()
@@ -152,21 +136,9 @@
         else:
             self.__doSendMessages()
     
-    def __prepareMessage_v2(self, message):
+    def __prepareMessage(self, message):
         """
-        Private method to prepare the message for sending (Python2 Variant).
-        
-        @param message message to be prepared
-        @type email.mime.text.MIMEBase
-        @return prepared message dictionary
-        @rtype dict
-        """
-        raw = base64.urlsafe_b64encode(message.as_string())
-        return {'raw': raw}
-    
-    def __prepareMessage_v3(self, message):
-        """
-        Private method to prepare the message for sending (Python2 Variant).
+        Private method to prepare the message for sending.
         
         @param message message to be prepared
         @type email.mime.text.MIMEBase
@@ -281,10 +253,7 @@
             while self.__messages:
                 count += 1
                 message = self.__messages.pop(0)
-                if sys.version_info[0] == 2:
-                    message1 = self.__prepareMessage_v2(message)
-                else:
-                    message1 = self.__prepareMessage_v3(message)
+                message1 = self.__prepareMessage(message)
                 service.users().messages()\
                     .send(userId="me", body=message1).execute()
                 results.append(self.tr("Message #{0} sent.").format(count))
--- a/eric6/E5Network/E5RFC6266.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Network/E5RFC6266.py	Sat Sep 07 16:10:29 2019 +0200
@@ -15,10 +15,7 @@
 
 from __future__ import unicode_literals
 
-try:  # Py3
-    import urllib.parse as parse
-except (ImportError):
-    import urlparse as parse    # __IGNORE_WARNING__
+import urllib.parse as parse
 import collections
 import string
 import re
--- a/eric6/E5Network/E5SslCertificateSelectionDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Network/E5SslCertificateSelectionDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -21,7 +21,6 @@
 
 import Utilities
 import UI.PixmapCache
-from Globals import qVersionTuple
 
 
 class E5SslCertificateSelectionDialog(QDialog,
@@ -74,16 +73,10 @@
         @type QSslCertificate
         """
         # step 1: extract the info to be shown
-        if qVersionTuple() >= (5, 0, 0):
-            organisation = Utilities.decodeString(
-                ", ".join(cert.subjectInfo(QSslCertificate.Organization)))
-            commonName = Utilities.decodeString(
-                ", ".join(cert.subjectInfo(QSslCertificate.CommonName)))
-        else:
-            organisation = Utilities.decodeString(
-                cert.subjectInfo(QSslCertificate.Organization))
-            commonName = Utilities.decodeString(
-                cert.subjectInfo(QSslCertificate.CommonName))
+        organisation = Utilities.decodeString(
+            ", ".join(cert.subjectInfo(QSslCertificate.Organization)))
+        commonName = Utilities.decodeString(
+            ", ".join(cert.subjectInfo(QSslCertificate.CommonName)))
         if organisation is None or organisation == "":
             organisation = self.tr("(Unknown)")
         if commonName is None or commonName == "":
--- a/eric6/E5Network/E5SslCertificatesDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Network/E5SslCertificatesDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -26,7 +26,6 @@
 import Utilities
 import UI.PixmapCache
 import Globals
-from Globals import qVersionTuple
 
 
 class E5SslCertificatesDialog(QDialog, Ui_E5SslCertificatesDialog):
@@ -87,16 +86,10 @@
         @param cert certificate to insert (QSslCertificate)
         """
         # step 1: extract the info to be shown
-        if qVersionTuple() >= (5, 0, 0):
-            organisation = Utilities.decodeString(
-                ", ".join(cert.subjectInfo(QSslCertificate.Organization)))
-            commonName = Utilities.decodeString(
-                ", ".join(cert.subjectInfo(QSslCertificate.CommonName)))
-        else:
-            organisation = Utilities.decodeString(
-                cert.subjectInfo(QSslCertificate.Organization))
-            commonName = Utilities.decodeString(
-                cert.subjectInfo(QSslCertificate.CommonName))
+        organisation = Utilities.decodeString(
+            ", ".join(cert.subjectInfo(QSslCertificate.Organization)))
+        commonName = Utilities.decodeString(
+            ", ".join(cert.subjectInfo(QSslCertificate.CommonName)))
         if organisation is None or organisation == "":
             organisation = self.tr("(Unknown)")
         if commonName is None or commonName == "":
@@ -216,12 +209,8 @@
             pems = QByteArray()
             for cert in certs:
                 if cert in sCerts:
-                    if qVersionTuple() >= (5, 0, 0):
-                        commonStr = ", ".join(
-                            cert.subjectInfo(QSslCertificate.CommonName))
-                    else:
-                        commonStr = cert.subjectInfo(
-                            QSslCertificate.CommonName)
+                    commonStr = ", ".join(
+                        cert.subjectInfo(QSslCertificate.CommonName))
                     E5MessageBox.warning(
                         self,
                         self.tr("Import Certificate"),
@@ -300,16 +289,10 @@
         @param cert certificate to insert (QSslCertificate)
         """
         # step 1: extract the info to be shown
-        if qVersionTuple() >= (5, 0, 0):
-            organisation = Utilities.decodeString(
-                ", ".join(cert.subjectInfo(QSslCertificate.Organization)))
-            commonName = Utilities.decodeString(
-                ", ".join(cert.subjectInfo(QSslCertificate.CommonName)))
-        else:
-            organisation = Utilities.decodeString(
-                cert.subjectInfo(QSslCertificate.Organization))
-            commonName = Utilities.decodeString(
-                cert.subjectInfo(QSslCertificate.CommonName))
+        organisation = Utilities.decodeString(
+            ", ".join(cert.subjectInfo(QSslCertificate.Organization)))
+        commonName = Utilities.decodeString(
+            ", ".join(cert.subjectInfo(QSslCertificate.CommonName)))
         if organisation is None or organisation == "":
             organisation = self.tr("(Unknown)")
         if commonName is None or commonName == "":
@@ -407,12 +390,8 @@
             caCerts = self.__getSystemCaCertificates()
             for cert in certs:
                 if cert in caCerts:
-                    if qVersionTuple() >= (5, 0, 0):
-                        commonStr = ", ".join(
-                            cert.subjectInfo(QSslCertificate.CommonName))
-                    else:
-                        commonStr = cert.subjectInfo(
-                            QSslCertificate.CommonName)
+                    commonStr = ", ".join(
+                        cert.subjectInfo(QSslCertificate.CommonName))
                     E5MessageBox.warning(
                         self,
                         self.tr("Import Certificate"),
--- a/eric6/E5Network/E5SslCertificatesInfoWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Network/E5SslCertificatesInfoWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 from PyQt5.QtCore import pyqtSlot, QCryptographicHash, QDateTime
 from PyQt5.QtWidgets import QWidget
@@ -20,7 +16,6 @@
 from .Ui_E5SslCertificatesInfoWidget import Ui_E5SslCertificatesInfoWidget
 
 import Utilities
-from Globals import qVersionTuple
 
 
 class E5SslCertificatesInfoWidget(QWidget, Ui_E5SslCertificatesInfoWidget):
@@ -52,16 +47,10 @@
         self.__chain = certificateChain[:]
         
         for cert in self.__chain:
-            if qVersionTuple() >= (5, 0, 0):
-                name = ", ".join(cert.subjectInfo(QSslCertificate.CommonName))
-            else:
-                name = cert.subjectInfo(QSslCertificate.CommonName)
+            name = ", ".join(cert.subjectInfo(QSslCertificate.CommonName))
             if not name:
-                if qVersionTuple() >= (5, 0, 0):
-                    name = ", ".join(
-                        cert.subjectInfo(QSslCertificate.Organization))
-                else:
-                    name = cert.subjectInfo(QSslCertificate.Organization)
+                name = ", ".join(
+                    cert.subjectInfo(QSslCertificate.Organization))
             if not name:
                 name = cert.serialNumber()
             self.chainComboBox.addItem(name)
@@ -95,41 +84,25 @@
         self.expiredLabel.setStyleSheet(
             "QLabel { color : white; background-color : red; }")
         
-        if qVersionTuple() >= (5, 0, 0):
-            self.subjectCommonNameLabel.setText(self.__certificateString(
-                ", ".join(certificate.subjectInfo(
-                    QSslCertificate.CommonName))))
-            self.subjectOrganizationLabel.setText(self.__certificateString(
-                ", ".join(certificate.subjectInfo(
-                    QSslCertificate.Organization))))
-            self.subjectOrganizationalUnitLabel.setText(
-                self.__certificateString(", ".join(
-                    certificate.subjectInfo(
-                        QSslCertificate.OrganizationalUnitName))))
-            self.issuerCommonNameLabel.setText(self.__certificateString(
-                ", ".join(certificate.issuerInfo(QSslCertificate.CommonName))))
-            self.issuerOrganizationLabel.setText(self.__certificateString(
-                ", ".join(certificate.issuerInfo(
-                    QSslCertificate.Organization))))
-            self.issuerOrganizationalUnitLabel.setText(
-                self.__certificateString(", ".join(
-                    certificate.issuerInfo(
-                        QSslCertificate.OrganizationalUnitName))))
-        else:
-            self.subjectCommonNameLabel.setText(self.__certificateString(
-                certificate.subjectInfo(QSslCertificate.CommonName)))
-            self.subjectOrganizationLabel.setText(self.__certificateString(
-                certificate.subjectInfo(QSslCertificate.Organization)))
-            self.subjectOrganizationalUnitLabel.setText(
-                self.__certificateString(certificate.subjectInfo(
-                    QSslCertificate.OrganizationalUnitName)))
-            self.issuerCommonNameLabel.setText(self.__certificateString(
-                certificate.issuerInfo(QSslCertificate.CommonName)))
-            self.issuerOrganizationLabel.setText(self.__certificateString(
-                certificate.issuerInfo(QSslCertificate.Organization)))
-            self.issuerOrganizationalUnitLabel.setText(
-                self.__certificateString(certificate.issuerInfo(
-                    QSslCertificate.OrganizationalUnitName)))
+        self.subjectCommonNameLabel.setText(self.__certificateString(
+            ", ".join(certificate.subjectInfo(
+                QSslCertificate.CommonName))))
+        self.subjectOrganizationLabel.setText(self.__certificateString(
+            ", ".join(certificate.subjectInfo(
+                QSslCertificate.Organization))))
+        self.subjectOrganizationalUnitLabel.setText(
+            self.__certificateString(", ".join(
+                certificate.subjectInfo(
+                    QSslCertificate.OrganizationalUnitName))))
+        self.issuerCommonNameLabel.setText(self.__certificateString(
+            ", ".join(certificate.issuerInfo(QSslCertificate.CommonName))))
+        self.issuerOrganizationLabel.setText(self.__certificateString(
+            ", ".join(certificate.issuerInfo(
+                QSslCertificate.Organization))))
+        self.issuerOrganizationalUnitLabel.setText(
+            self.__certificateString(", ".join(
+                certificate.issuerInfo(
+                    QSslCertificate.OrganizationalUnitName))))
         self.serialNumberLabel.setText(self.__serialNumber(certificate))
         self.effectiveLabel.setText(
             certificate.effectiveDate().toString("yyyy-MM-dd"))
@@ -142,8 +115,7 @@
             str(certificate.digest(QCryptographicHash.Md5).toHex(),
                 encoding="ascii")))
         
-        if (qVersionTuple() >= (5, 0, 0) and certificate.isBlacklisted()) or \
-           (qVersionTuple() < (5, 0, 0) and not certificate.isValid()):
+        if certificate.isBlacklisted():
             # something is wrong; indicate it to the user
             if self.__hasExpired(certificate.effectiveDate(),
                                  certificate.expiryDate()):
--- a/eric6/E5Network/E5SslErrorHandler.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Network/E5SslErrorHandler.py	Sat Sep 07 16:10:29 2019 +0200
@@ -20,7 +20,6 @@
 import Preferences
 import Utilities
 import Globals
-from Globals import qVersionTuple
 
 
 class E5SslErrorHandler(QObject):
@@ -209,32 +208,18 @@
         """
         result = "<p>"
         
-        if qVersionTuple() >= (5, 0, 0):
-            result += self.tr("Name: {0}")\
-                .format(Utilities.html_encode(Utilities.decodeString(
-                    ", ".join(cert.subjectInfo(QSslCertificate.CommonName)))))
-            
-            result += self.tr("<br/>Organization: {0}")\
-                .format(Utilities.html_encode(Utilities.decodeString(
-                    ", ".join(cert.subjectInfo(
-                        QSslCertificate.Organization)))))
-            
-            result += self.tr("<br/>Issuer: {0}")\
-                .format(Utilities.html_encode(Utilities.decodeString(
-                    ", ".join(cert.issuerInfo(QSslCertificate.CommonName)))))
-        else:
-            result += self.tr("Name: {0}")\
-                .format(Utilities.html_encode(Utilities.decodeString(
-                    cert.subjectInfo(QSslCertificate.CommonName))))
-            
-            result += self.tr("<br/>Organization: {0}")\
-                .format(Utilities.html_encode(Utilities.decodeString(
-                    cert.subjectInfo(QSslCertificate.Organization))))
-            
-            result += self.tr("<br/>Issuer: {0}")\
-                .format(Utilities.html_encode(Utilities.decodeString(
-                    cert.issuerInfo(QSslCertificate.CommonName))))
+        result += self.tr("Name: {0}")\
+            .format(Utilities.html_encode(Utilities.decodeString(
+                ", ".join(cert.subjectInfo(QSslCertificate.CommonName)))))
         
+        result += self.tr("<br/>Organization: {0}")\
+            .format(Utilities.html_encode(Utilities.decodeString(
+                ", ".join(cert.subjectInfo(
+                    QSslCertificate.Organization)))))
+        
+        result += self.tr("<br/>Issuer: {0}")\
+            .format(Utilities.html_encode(Utilities.decodeString(
+                ", ".join(cert.issuerInfo(QSslCertificate.CommonName)))))
         result += self.tr(
             "<br/>Not valid before: {0}<br/>Valid Until: {1}")\
             .format(Utilities.html_encode(
--- a/eric6/E5Network/E5SslInfoWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Network/E5SslInfoWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -15,7 +15,6 @@
 
 import UI.PixmapCache
 import Utilities
-from Globals import qVersionTuple
 
 
 class E5SslInfoWidget(QMenu):
@@ -69,16 +68,10 @@
                 "Warning: this site is NOT carrying a certificate."))
             imageLabel.setPixmap(UI.PixmapCache.getPixmap("securityLow32.png"))
         else:
-            if qVersionTuple() >= (5, 0, 0):
-                valid = not cert.isBlacklisted()
-            else:
-                valid = cert.isValid()
+            valid = not cert.isBlacklisted()
             if valid:
-                if qVersionTuple() >= (5, 0, 0):
-                    txt = ", ".join(
-                        cert.issuerInfo(QSslCertificate.CommonName))
-                else:
-                    txt = cert.issuerInfo(QSslCertificate.CommonName)
+                txt = ", ".join(
+                    cert.issuerInfo(QSslCertificate.CommonName))
                 label.setText(self.tr(
                     "The certificate for this site is valid"
                     " and has been verified by:\n{0}").format(
@@ -152,24 +145,26 @@
                 sslVersion = self.tr("unknown")
                 imageLabel.setPixmap(
                     UI.PixmapCache.getPixmap("securityLow32.png"))
-            if qVersionTuple() >= (5, 0, 0):
-                if proto == QSsl.TlsV1_0:
-                    sslVersion = "TLS 1.0"
-                    imageLabel.setPixmap(
-                        UI.PixmapCache.getPixmap("securityHigh32.png"))
-                elif proto == QSsl.TlsV1_1:
-                    sslVersion = "TLS 1.1"
-                    imageLabel.setPixmap(
-                        UI.PixmapCache.getPixmap("securityHigh32.png"))
-                elif proto == QSsl.TlsV1_2:
+            if proto == QSsl.TlsV1_0:
+                sslVersion = "TLS 1.0"
+                imageLabel.setPixmap(
+                    UI.PixmapCache.getPixmap("securityHigh32.png"))
+            elif proto == QSsl.TlsV1_1:
+                sslVersion = "TLS 1.1"
+                imageLabel.setPixmap(
+                    UI.PixmapCache.getPixmap("securityHigh32.png"))
+            elif proto == QSsl.TlsV1_2:
+                sslVersion = "TLS 1.2"
+                imageLabel.setPixmap(
+                    UI.PixmapCache.getPixmap("securityHigh32.png"))
+            try:
+                # Qt 5.12 and newer
+                if proto == QSsl.TlsV1_2:
                     sslVersion = "TLS 1.2"
                     imageLabel.setPixmap(
                         UI.PixmapCache.getPixmap("securityHigh32.png"))
-            else:
-                if proto == QSsl.TlsV1:
-                    sslVersion = "TLS 1.0"
-                    imageLabel.setPixmap(
-                        UI.PixmapCache.getPixmap("securityHigh32.png"))
+            except AttributeError:
+                pass
             rows += 1
             
             label = QLabel(self)
--- a/eric6/E5Network/E5XmlRpcClient.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5Network/E5XmlRpcClient.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,8 @@
 """
 
 from __future__ import unicode_literals
-try:
-    import xmlrpclib as xmlrpc
-except ImportError:
-    import xmlrpc.client as xmlrpc
+
+import xmlrpc.client as xmlrpc
 
 from PyQt5.QtCore import QObject, QUrl, QByteArray
 from PyQt5.QtNetwork import QNetworkAccessManager, \
--- a/eric6/E5XML/XMLStreamWriterBase.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/E5XML/XMLStreamWriterBase.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,12 +8,7 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
-import sys
 import pickle
 import base64
 
@@ -45,10 +40,8 @@
             dict: self._write_dictionary,
             set: self._write_set,
             frozenset: self._write_frozenset,
+            bytes: self._write_bytes,
         }
-        # 'bytes' is identical to 'str' in Py2
-        if sys.version_info[0] >= 3:
-            self.basics[bytes] = self._write_bytes
 
         self.setAutoFormatting(True)
         self.setAutoFormattingIndent(2)
--- a/eric6/Globals/E5ConfigParser.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2016 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a ConfigParser wrapper for Python 2 to provide the
-dictionary like interface of the Python 3 variant.
-"""
-
-from __future__ import unicode_literals
-
-try:
-    from configparser import ConfigParser as E5ConfigParser
-except ImportError:
-    # Py2 part with the compatibility wrapper class
-    try:
-        from collections import OrderedDict as _default_dict
-        # __IGNORE_WARNING_N813__
-    except ImportError:
-        # fallback for setup.py which hasn't yet built _collections
-        _default_dict = dict
-
-    import re
-    import itertools
-    from ConfigParser import SafeConfigParser, DEFAULTSECT
-    
-    class E5ConfigParser(SafeConfigParser):
-        """
-        Class implementing a wrapper of the ConfigParser class implementing
-        dictionary like special methods and some enhancements from Python 3.
-        """
-        _OPT_TMPL = r"""
-            (?P<option>.*?)                    # very permissive!
-            \s*(?P<vi>{delim})\s*              # any number of space/tab,
-                                               # followed by any of the
-                                               # allowed delimiters,
-                                               # followed by any space/tab
-            (?P<value>.*)$                     # everything up to eol
-            """
-        _OPT_NV_TMPL = r"""
-            (?P<option>.*?)                    # very permissive!
-            \s*(?:                             # any number of space/tab,
-            (?P<vi>{delim})\s*                 # optionally followed by
-                                               # any of the allowed
-                                               # delimiters, followed by any
-                                               # space/tab
-            (?P<value>.*))?$                   # everything up to eol
-            """
-        # Compiled regular expression for matching options with typical
-        # separators
-        OPTCRE = re.compile(_OPT_TMPL.format(delim="=|:"), re.VERBOSE)
-        # Compiled regular expression for matching options with optional
-        # values delimited using typical separators
-        OPTCRE_NV = re.compile(_OPT_NV_TMPL.format(delim="=|:"), re.VERBOSE)
-        
-        def __init__(self, defaults=None, dict_type=_default_dict,
-                     allow_no_value=False, delimiters=('=', ':')):
-            """
-            Constructor
-            """
-            SafeConfigParser.__init__(
-                self,
-                defaults=defaults, dict_type=dict_type,
-                allow_no_value=allow_no_value)
-            
-            if delimiters == ('=', ':'):
-                self._optcre = \
-                    self.OPTCRE_NV if allow_no_value else self.OPTCRE
-            else:
-                d = "|".join(re.escape(d) for d in delimiters)
-                if allow_no_value:
-                    self._optcre = re.compile(
-                        self._OPT_NV_TMPL.format(delim=d), re.VERBOSE)
-                else:
-                    self._optcre = re.compile(
-                        self._OPT_TMPL.format(delim=d), re.VERBOSE)
-        
-        def __getitem__(self, key):
-            """
-            Special method to get a section.
-            
-            @param key name of the section
-            @type str
-            @return section for the given key
-            @rtype dict
-            @exception KeyError raised if a non-existent key is given
-            """
-            if key == DEFAULTSECT:
-                return self._defaults
-            elif self.has_section(key):
-                return self._sections[key]
-            else:
-                raise KeyError(key)
-        
-        def __setitem__(self, key, values):
-            """
-            Special method to set the values of a section.
-            
-            @param key name of the section
-            @type str
-            @param values value for the section
-            @type dict
-            """
-            # To conform with the mapping protocol, overwrites existing values
-            # in the section.
-            if key == DEFAULTSECT:
-                self._defaults.clear()
-            elif self.has_section(key):
-                self._sections[key].clear()
-            else:
-                self.add_section(key)
-            for subkey, value in values.items():
-                subkey = self.optionxform(str(subkey))
-                if value is not None:
-                    value = str(value)
-                self.set(key, subkey, value)
-        
-        def __delitem__(self, key):
-            """
-            Special method to delete a section.
-            
-            @param key name of the section
-            @type str
-            @exception ValueError raised to indicate non-removal of the
-                default section
-            @exception KeyError raised to indicate a non-existent section
-            """
-            if key == DEFAULTSECT:
-                raise ValueError("Cannot remove the default section.")
-            if not self.has_section(key):
-                raise KeyError(key)
-            self.remove_section(key)
-        
-        def __contains__(self, key):
-            """
-            Special method to test, if a section is contained in the config.
-            
-            @param key name of the section
-            @type str
-            @return flag indicating containment
-            @rtype bool
-            """
-            return key == DEFAULTSECT or self.has_section(key)
-        
-        def __len__(self):
-            """
-            Special method get the number of sections of the config.
-            
-            @return number of sections
-            @rtype int
-            """
-            return len(self._sections) + 1  # the default section
-        
-        def __iter__(self):
-            """
-            Special method to return an iterator of the section names starting
-            with the default section.
-            
-            @return iterator of the section names contained in the config
-            @rtype iterator of str
-            """
-            return itertools.chain((DEFAULTSECT,), self._sections.keys())
-
-
-if __name__ == "__main__":
-    # This is some test code.
-    import sys
-    
-    c = E5ConfigParser()
-    c["DEFAULT"] = {'ServerAliveInterval': '45',
-                    'Compression': 'yes',
-                    'CompressionLevel': '9'}
-    c['bitbucket.org'] = {}
-    c['bitbucket.org']['User'] = 'hg'
-    c['topsecret.server.com'] = {}
-    topsecret = c['topsecret.server.com']
-    topsecret['Port'] = '50022'
-    topsecret['ForwardX11'] = 'no'
-    c['DEFAULT']['ForwardX11'] = 'yes'
-    
-    c.write(sys.stdout)
--- a/eric6/Globals/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Globals/__init__.py	Sat Sep 07 16:10:29 2019 +0200
@@ -12,10 +12,6 @@
 #
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import sys
 import os
@@ -236,15 +232,15 @@
 
 def getPyQt5ModulesDirectory():
     """
-    Function to determine the path to PyQt5's (or PyQt4's) modules directory.
+    Function to determine the path to PyQt5 modules directory.
     
-    @return path to the PyQt5/PyQt4 modules directory (string)
+    @return path to the PyQt5 modules directory (string)
     """
     import distutils.sysconfig
-    for pyqt in ["PyQt5", "PyQt4"]:
-        pyqtPath = os.path.join(distutils.sysconfig.get_python_lib(True), pyqt)
-        if os.path.exists(pyqtPath):
-            return pyqtPath
+    
+    pyqtPath = os.path.join(distutils.sysconfig.get_python_lib(True), "PyQt5")
+    if os.path.exists(pyqtPath):
+        return pyqtPath
     
     return ""
     
@@ -425,12 +421,8 @@
     @return converted QByteArray
     @rtype QByteArray
     """
-    if sys.version_info[0] == 2:
-        if isinstance(txt, unicode):    # __IGNORE_WARNING__
-            txt = txt.encode("utf-8")
-    else:
-        if isinstance(txt, str):
-            txt = txt.encode("utf-8")
+    if isinstance(txt, str):
+        txt = txt.encode("utf-8")
     
     return QByteArray(txt)
 
@@ -536,7 +528,7 @@
     Module function to determine the supported web browser variant.
     
     @return string indicating the supported web browser variant ("QtWebEngine",
-        "QtWebKit" or "None")
+        or "None")
     @rtype str
     """
     from eric6config import getConfig
--- a/eric6/Globals/compatibility_fixes.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,289 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2013 - 2015 Tobias Rzepka <tobias.rzepka@gmail.com>
-#
-
-"""
-Module implementing some workarounds to let eric6 run under Python 2.
-"""
-
-
-import __builtin__      # __IGNORE_EXCEPTION__
-import codecs
-import imp
-import locale
-import os
-import sys
-
-# convert all command line arguments to unicode
-sys.argv = [arg.decode(locale.getpreferredencoding()) for arg in sys.argv]
-
-"""
-Improvement for the os.path.join function because the original join doesn't
-use the correct encoding.
-"""
-# Save original function for use in joinAsUnicode
-__join = os.path.join
-# Flag to disable unicode conversion of join function
-os.path.join_unicode = True
-
-
-def joinAsUnicode(*args):
-    """
-    Convert none unicode parameter of the os.path.join into unicode.
-    
-    @param args paths which should be joined (str, unicode)
-    @return unicode str of the path (unicode)
-    """
-    if os.path.join_unicode:
-        convArgs = []
-        for arg in args:
-            if isinstance(arg, str):
-                arg = arg.decode(locale.getpreferredencoding(), 'replace')
-            convArgs.append(arg)
-        return __join(*convArgs)
-    else:
-        return __join(*args)
-
-# Replace os.path.join with unicode aware version
-os.path.join = joinAsUnicode
-
-"""
-Improvement for the imp.load_source and imp.find_module functions because the
-originals doesn't use the correct encoding.
-"""
-# Save original function for use in load_sourceAsStr and find_moduleAsStr
-__load_source = imp.load_source
-__find_module = imp.find_module
-
-
-def load_sourceAsStr(*args):
-    """
-    Convert none str parameter of the imp.load_source into str.
-    
-    @param args  (str, unicode)
-    @return list of args converted to str (list)
-    """
-    convArgs = []
-    for arg in args:
-        if isinstance(arg, unicode):
-            arg = arg.encode(sys.getfilesystemencoding(), 'strict')
-        convArgs.append(arg)
-    return __load_source(*convArgs)
-
-
-def find_moduleAsStr(*args):
-    """
-    Convert none str parameter of the imp.find_module into str.
-    
-    @param args  (str, unicode)
-    @return list of args converted to str (list)
-    """
-    convArgs = []
-    for arg in args:
-        if isinstance(arg, unicode):
-            arg = arg.encode(sys.getfilesystemencoding(), 'strict')
-        convArgs.append(arg)
-    return __find_module(*convArgs)
-    
-# Replace imp.load_source and imp.find_module with unicode aware version
-imp.load_source = load_sourceAsStr
-imp.find_module = find_moduleAsStr
-
-"""
-Improvement for the sys.path list because some other functions doesn't expect
-unicode in the sys.path list.
-"""
-
-
-class PlainStrList(list):
-    """
-    Keep track that all added paths to sys.path are str.
-    """
-    def __init__(self, *args):
-        """
-        Constructor
-        
-        @param args list of paths to start with (list)
-        """
-        super(PlainStrList, self).__init__()
-        self.extend(list(args))
-
-    def __convert(self, element):
-        """
-        Private method to convert unicode to file system encoding.
-        
-        @param element to convert from unicode to file system encoding (any)
-        @return converted element
-        """
-        if isinstance(element, unicode):
-            # Throw exception if it can't be converted, otherwise exception
-            # could occur somewhere else
-            element = element.encode(sys.getfilesystemencoding(), 'strict')
-        return element
-
-    def __setitem__(self, idx, value):
-        """
-        Special method to overwrite a specific list item.
-        
-        @param idx index of the item (int)
-        @param value the new value (any)
-        """
-        super(PlainStrList, self).__setitem__(idx, self.__convert(value))
-
-    def insert(self, idx, value):
-        """
-        Public method to insert a specific list item.
-        
-        @param idx index of the item (int)
-        @param value the new value (any)
-        """
-        super(PlainStrList, self).insert(idx, self.__convert(value))
-
-
-# insert a conversion function from unicode to str at sys.path access
-sys.path = PlainStrList(*sys.path)
-
-"""
-The open function and File class simulates the open behaviour of Python3.
-
-The Eric6 used features are emulated only. The not emulated features
-should throw a NotImplementedError exception.
-"""
-
-
-def open(filein, mode='r', buffering=-1, encoding=None,
-         errors=None, newline=None, closefd=True):
-    """
-    Replacement for the build in open function.
-    
-    @param filein filename or file descriptor (string)
-    @keyparam mode access mode (string)
-    @keyparam buffering size of the read buffer (string)
-    @keyparam encoding character encoding for reading/ writing (string)
-    @keyparam errors behavior for the character encoding ('strict',
-        'explicit', ...) (string)
-    @keyparam newline controls how universal newlines works (string)
-    @keyparam closefd close underlying file descriptor if given as file
-        parameter (boolean)
-    @return Returns the new file object
-    """
-    return File(filein, mode, buffering, encoding, errors, newline, closefd)
-
-
-class File(file):   # __IGNORE_WARNING__
-    """
-    Facade for the original file class.
-    """
-    def __init__(self, filein, mode='r', buffering=-1,
-                 encoding=None, errors=None, newline=None, closefd=True):
-        """
-        Constructor
-        
-        It checks for unimplemented parameters.
-        
-        @param filein filename or file descriptor (string)
-        @keyparam mode access mode (string)
-        @keyparam buffering size of the read buffer (string)
-        @keyparam encoding character encoding for reading/ writing (string)
-        @keyparam errors behavior for the character encoding ('strict',
-            'explicit', ...) (string)
-        @keyparam newline controls how universal newlines works (string)
-        @keyparam closefd close underlying file descriptor if given as file
-            parameter (boolean)
-        @exception NotImplementedError for not implemented method parameters
-        """
-        self.__encoding = encoding
-        self.__newline = str(newline)
-        self.__closefd = closefd
-        if newline is not None:
-            if 'r' in mode:
-                raise NotImplementedError
-            else:
-                mode = mode.replace('t', 'b')
-                if 'b' not in mode:
-                    mode = mode + 'b'
-
-        if closefd is False:
-            raise NotImplementedError
-
-        if errors is None:
-            self.__errors = 'strict'
-        else:
-            self.__errors = errors
-
-        file.__init__(self, filein, mode, buffering)    # __IGNORE_WARNING__
-
-    def read(self, n=-1):
-        """
-        Public method to read n bytes or all if n=-1 from file.
-        
-        @keyparam n bytecount or all if n=-1 (int)
-        @return decoded bytes read
-        """
-        txt = super(File, self).read(n)
-        if self.__encoding is None:
-            return txt
-        else:
-            return codecs.decode(txt, self.__encoding)
-
-    def readline(self, limit=-1):
-        """
-        Public method to read one line from file.
-        
-        @keyparam limit maximum bytes to read or all if limit=-1 (int)
-        @return decoded line read
-        """
-        txt = super(File, self).readline(limit)
-        if self.__encoding is None:
-            return txt
-        else:
-            return codecs.decode(txt, self.__encoding)
-
-    def readlines(self, hint=-1):
-        """
-        Public method to read all lines from file.
-        
-        @keyparam hint maximum bytes to read or all if hint=-1 (int)
-        @return decoded lines read
-        """
-        if self.__encoding is None:
-            return super(File, self).readlines(hint)
-        else:
-            return [codecs.decode(txt, self.__encoding)
-                    for txt in super(File, self).readlines(hint)]
-
-    def write(self, txt):
-        """
-        Public method to write given data to file and encode if needed.
-        
-        @param txt data to write. (str, bytes)
-        """
-        if self.__encoding is not None:
-            txt = codecs.encode(txt, self.__encoding, self.__errors)
-        elif isinstance(txt, unicode):
-            txt = codecs.encode(txt, 'utf-8', self.__errors)
-
-        if self.__newline in ['\r\n', '\r']:
-            txt = txt.replace('\n', self.__newline)
-
-        super(File, self).write(txt)
-
-    def next(self):
-        """
-        Public method used in an iterator.
-        
-        @return decoded data read
-        """
-        txt = super(File, self).next()
-        if self.__encoding is None:
-            return txt
-        else:
-            return codecs.decode(txt, self.__encoding)
-
-# Inject into the __builtin__ dictionary
-__builtin__.open = open
-
-#
-# eflag: FileType = Python2
-# eflag: noqa = M702
--- a/eric6/Graphics/PackageDiagramBuilder.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Graphics/PackageDiagramBuilder.py	Sat Sep 07 16:10:29 2019 +0200
@@ -11,10 +11,7 @@
 
 import glob
 import os.path
-try:  # Py3
-    from itertools import zip_longest
-except ImportError:
-    from itertools import izip_longest as zip_longest    # __IGNORE_WARNING__
+from itertools import zip_longest
 
 from PyQt5.QtWidgets import QApplication, QGraphicsTextItem
 
--- a/eric6/Graphics/PixmapDiagram.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Graphics/PixmapDiagram.py	Sat Sep 07 16:10:29 2019 +0200
@@ -22,7 +22,6 @@
 import UI.Config
 
 import Preferences
-from Globals import qVersionTuple
 
 
 class PixmapDiagram(E5MainWindow):
@@ -188,10 +187,7 @@
         @param evt reference to the wheel event (QWheelEvent)
         """
         if evt.modifiers() & Qt.ControlModifier:
-            if qVersionTuple() >= (5, 0, 0):
-                delta = evt.angleDelta().y()
-            else:
-                delta = evt.delta()
+            delta = evt.angleDelta().y()
             if delta < 0:
                 self.__zoomOut()
             elif delta > 0:
--- a/eric6/Graphics/SvgDiagram.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Graphics/SvgDiagram.py	Sat Sep 07 16:10:29 2019 +0200
@@ -21,7 +21,6 @@
 import UI.Config
 
 import Preferences
-from Globals import qVersionTuple
 
 
 class SvgDiagram(E5MainWindow):
@@ -158,10 +157,7 @@
         @param evt reference to the wheel event (QWheelEvent)
         """
         if evt.modifiers() & Qt.ControlModifier:
-            if qVersionTuple() >= (5, 0, 0):
-                delta = evt.angleDelta().y()
-            else:
-                delta = evt.delta()
+            delta = evt.angleDelta().y()
             if delta < 0:
                 self.__zoomOut()
             elif delta > 0:
--- a/eric6/Graphics/UMLClassDiagramBuilder.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Graphics/UMLClassDiagramBuilder.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,8 @@
 """
 
 from __future__ import unicode_literals
-try:  # Py3
-    from itertools import zip_longest
-except ImportError:
-    from itertools import izip_longest as zip_longest    # __IGNORE_WARNING__
+
+from itertools import zip_longest
 
 from PyQt5.QtWidgets import QGraphicsTextItem
 
--- a/eric6/Graphics/UMLGraphicsView.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Graphics/UMLGraphicsView.py	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,6 @@
 import UI.PixmapCache
 
 import Preferences
-from Globals import qVersionTuple
 
 
 class UMLGraphicsView(E5GraphicsView):
@@ -602,10 +601,7 @@
         @param evt reference to the wheel event (QWheelEvent)
         """
         if evt.modifiers() & Qt.ControlModifier:
-            if qVersionTuple() >= (5, 0, 0):
-                delta = evt.angleDelta().y()
-            else:
-                delta = evt.delta()
+            delta = evt.angleDelta().y()
             if delta < 0:
                 self.zoomOut()
             elif delta > 0:
--- a/eric6/Helpviewer/AdBlock/AdBlockAccessHandler.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a scheme access handler for AdBlock URLs.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QByteArray
-from PyQt5.QtNetwork import QNetworkAccessManager
-
-from E5Gui import E5MessageBox
-
-from Helpviewer.Network.SchemeAccessHandler import SchemeAccessHandler
-from Helpviewer.Network.EmptyNetworkReply import EmptyNetworkReply
-
-from Globals import qVersionTuple
-
-
-class AdBlockAccessHandler(SchemeAccessHandler):
-    """
-    Class implementing a scheme access handler for AdBlock URLs.
-    """
-    def createRequest(self, op, request, outgoingData=None):
-        """
-        Public method to create a request.
-        
-        @param op the operation to be performed
-            (QNetworkAccessManager.Operation)
-        @param request reference to the request object (QNetworkRequest)
-        @param outgoingData reference to an IODevice containing data to be sent
-            (QIODevice)
-        @return reference to the created reply object (QNetworkReply)
-        """
-        if op != QNetworkAccessManager.GetOperation:
-            return None
-        
-        url = request.url()
-        if url.path() != "subscribe":
-            return None
-        
-        if qVersionTuple() >= (5, 0, 0):
-            from PyQt5.QtCore import QUrlQuery, QUrl
-            title = QUrl.fromPercentEncoding(
-                QByteArray(QUrlQuery(url).queryItemValue("title").encode()))
-        else:
-            from PyQt5.QtCore import QUrl
-            title = QUrl.fromPercentEncoding(
-                url.encodedQueryItemValue(b"title"))
-        if not title:
-            return None
-        res = E5MessageBox.yesNo(
-            None,
-            self.tr("Subscribe?"),
-            self.tr(
-                """<p>Subscribe to this AdBlock subscription?</p>"""
-                """<p>{0}</p>""").format(title))
-        if res:
-            from .AdBlockSubscription import AdBlockSubscription
-            import Helpviewer.HelpWindow
-            
-            dlg = Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
-                .showDialog()
-            subscription = AdBlockSubscription(
-                url, False,
-                Helpviewer.HelpWindow.HelpWindow.adBlockManager())
-            Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
-                .addSubscription(subscription)
-            dlg.addSubscription(subscription, False)
-            dlg.setFocus()
-            dlg.raise_()
-        
-        return EmptyNetworkReply(self.parent())
--- a/eric6/Helpviewer/AdBlock/AdBlockBlockedNetworkReply.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a QNetworkReply subclass reporting a blocked request.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QTimer
-from PyQt5.QtNetwork import QNetworkReply, QNetworkAccessManager
-
-
-class AdBlockBlockedNetworkReply(QNetworkReply):
-    """
-    Class implementing a QNetworkReply subclass reporting a blocked request.
-    """
-    def __init__(self, request, subscription, rule, parent=None):
-        """
-        Constructor
-        
-        @param request reference to the request object (QNetworkRequest)
-        @param subscription subscription containing the matched rule
-            (AdBlockSubscription)
-        @param rule matching rule (AdBlockRule)
-        @param parent reference to the parent object (QObject)
-        """
-        super(AdBlockBlockedNetworkReply, self).__init__(parent)
-        self.setOperation(QNetworkAccessManager.GetOperation)
-        self.setRequest(request)
-        self.setUrl(request.url())
-        self.setError(
-            QNetworkReply.ContentAccessDenied,
-            "AdBlockRule:{0} ({1})"
-            .format(subscription.title(), rule.filter()))
-        QTimer.singleShot(0, self.__fireSignals)
-    
-    def __fireSignals(self):
-        """
-        Private method to send some signals to end the connection.
-        """
-        self.error[QNetworkReply.NetworkError].emit(
-            QNetworkReply.ContentAccessDenied)
-        self.finished.emit()
-    
-    def readData(self, maxlen):
-        """
-        Public method to retrieve data from the reply object.
-        
-        @param maxlen maximum number of bytes to read (integer)
-        @return string containing the data (string)
-        """
-        return ""
-    
-    def abort(self):
-        """
-        Public slot to abort the operation.
-        """
-        # do nothing
-        pass
--- a/eric6/Helpviewer/AdBlock/AdBlockDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,346 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the AdBlock configuration dialog.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt, QTimer, QCoreApplication
-from PyQt5.QtWidgets import QDialog, QMenu, QToolButton
-
-from E5Gui import E5MessageBox
-
-from .Ui_AdBlockDialog import Ui_AdBlockDialog
-
-import UI.PixmapCache
-import Preferences
-
-
-class AdBlockDialog(QDialog, Ui_AdBlockDialog):
-    """
-    Class implementing the AdBlock configuration dialog.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QWidget)
-        """
-        super(AdBlockDialog, self).__init__(parent)
-        self.setupUi(self)
-        self.setWindowFlags(Qt.Window)
-        
-        self.iconLabel.setPixmap(UI.PixmapCache.getPixmap("adBlockPlus48.png"))
-        
-        self.updateSpinBox.setValue(Preferences.getHelp("AdBlockUpdatePeriod"))
-        
-        self.searchEdit.setInactiveText(self.tr("Search..."))
-        
-        import Helpviewer.HelpWindow
-        self.__manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
-        self.adBlockGroup.setChecked(self.__manager.isEnabled())
-        self.__manager.requiredSubscriptionLoaded.connect(self.addSubscription)
-        
-        self.__currentTreeWidget = None
-        self.__currentSubscription = None
-        self.__loaded = False
-        
-        menu = QMenu(self)
-        menu.aboutToShow.connect(self.__aboutToShowActionMenu)
-        self.actionButton.setMenu(menu)
-        self.actionButton.setIcon(UI.PixmapCache.getIcon("adBlockAction.png"))
-        self.actionButton.setPopupMode(QToolButton.InstantPopup)
-        
-        self.__load()
-        
-        self.buttonBox.setFocus()
-    
-    def __loadSubscriptions(self):
-        """
-        Private slot to load the AdBlock subscription rules.
-        """
-        for index in range(self.subscriptionsTabWidget.count()):
-            tree = self.subscriptionsTabWidget.widget(index)
-            tree.refresh()
-    
-    def __load(self):
-        """
-        Private slot to populate the tab widget with subscriptions.
-        """
-        if self.__loaded or not self.adBlockGroup.isChecked():
-            return
-        
-        from .AdBlockTreeWidget import AdBlockTreeWidget
-        for subscription in self.__manager.subscriptions():
-            tree = AdBlockTreeWidget(subscription, self.subscriptionsTabWidget)
-            if subscription.isEnabled():
-                icon = UI.PixmapCache.getIcon("adBlockPlus.png")
-            else:
-                icon = UI.PixmapCache.getIcon("adBlockPlusDisabled.png")
-            self.subscriptionsTabWidget.addTab(
-                tree, icon, subscription.title())
-        
-        self.__loaded = True
-        QCoreApplication.processEvents()
-        
-        QTimer.singleShot(50, self.__loadSubscriptions)
-    
-    def addSubscription(self, subscription, refresh=True):
-        """
-        Public slot adding a subscription to the list.
-        
-        @param subscription reference to the subscription to be
-            added (AdBlockSubscription)
-        @param refresh flag indicating to refresh the tree (boolean)
-        """
-        from .AdBlockTreeWidget import AdBlockTreeWidget
-        tree = AdBlockTreeWidget(subscription, self.subscriptionsTabWidget)
-        index = self.subscriptionsTabWidget.insertTab(
-            self.subscriptionsTabWidget.count() - 1, tree,
-            subscription.title())
-        self.subscriptionsTabWidget.setCurrentIndex(index)
-        QCoreApplication.processEvents()
-        if refresh:
-            tree.refresh()
-        self.__setSubscriptionEnabled(subscription, True)
-    
-    def __aboutToShowActionMenu(self):
-        """
-        Private slot to show the actions menu.
-        """
-        subscriptionEditable = self.__currentSubscription and \
-            self.__currentSubscription.canEditRules()
-        subscriptionRemovable = self.__currentSubscription and \
-            self.__currentSubscription.canBeRemoved()
-        subscriptionEnabled = self.__currentSubscription and \
-            self.__currentSubscription.isEnabled()
-        
-        menu = self.actionButton.menu()
-        menu.clear()
-        
-        menu.addAction(self.tr("Add Rule"), self.__addCustomRule)\
-            .setEnabled(subscriptionEditable)
-        menu.addAction(self.tr("Remove Rule"), self.__removeCustomRule)\
-            .setEnabled(subscriptionEditable)
-        menu.addSeparator()
-        menu.addAction(
-            self.tr("Browse Subscriptions..."), self.__browseSubscriptions)
-        menu.addAction(
-            self.tr("Remove Subscription"), self.__removeSubscription)\
-            .setEnabled(subscriptionRemovable)
-        if self.__currentSubscription:
-            menu.addSeparator()
-            if subscriptionEnabled:
-                txt = self.tr("Disable Subscription")
-            else:
-                txt = self.tr("Enable Subscription")
-            menu.addAction(txt, self.__switchSubscriptionEnabled)
-        menu.addSeparator()
-        menu.addAction(
-            self.tr("Update Subscription"), self.__updateSubscription)\
-            .setEnabled(not subscriptionEditable)
-        menu.addAction(
-            self.tr("Update All Subscriptions"),
-            self.__updateAllSubscriptions)
-        menu.addSeparator()
-        menu.addAction(self.tr("Learn more about writing rules..."),
-                       self.__learnAboutWritingFilters)
-    
-    def addCustomRule(self, filterRule):
-        """
-        Public slot to add a custom AdBlock rule.
-        
-        @param filterRule filter to be added (string)
-        """
-        self.subscriptionsTabWidget.setCurrentIndex(
-            self.subscriptionsTabWidget.count() - 1)
-        self.__currentTreeWidget.addRule(filterRule)
-    
-    def __addCustomRule(self):
-        """
-        Private slot to add a custom AdBlock rule.
-        """
-        self.__currentTreeWidget.addRule()
-    
-    def __removeCustomRule(self):
-        """
-        Private slot to remove a custom AdBlock rule.
-        """
-        self.__currentTreeWidget.removeRule()
-    
-    def __updateSubscription(self):
-        """
-        Private slot to update the selected subscription.
-        """
-        self.__currentSubscription.updateNow()
-    
-    def __updateAllSubscriptions(self):
-        """
-        Private slot to update all subscriptions.
-        """
-        self.__manager.updateAllSubscriptions()
-    
-    def __browseSubscriptions(self):
-        """
-        Private slot to browse the list of available AdBlock subscriptions.
-        """
-        import Helpviewer.HelpWindow
-        mw = Helpviewer.HelpWindow.HelpWindow.mainWindow()
-        mw.newTab("http://adblockplus.org/en/subscriptions")
-        mw.raise_()
-    
-    def __learnAboutWritingFilters(self):
-        """
-        Private slot to show the web page about how to write filters.
-        """
-        import Helpviewer.HelpWindow
-        mw = Helpviewer.HelpWindow.HelpWindow.mainWindow()
-        mw.newTab("http://adblockplus.org/en/filters")
-        mw.raise_()
-    
-    def __removeSubscription(self):
-        """
-        Private slot to remove the selected subscription.
-        """
-        requiresTitles = []
-        requiresSubscriptions = \
-            self.__manager.getRequiresSubscriptions(self.__currentSubscription)
-        for subscription in requiresSubscriptions:
-            requiresTitles.append(subscription.title())
-        if requiresTitles:
-            message = self.tr(
-                "<p>Do you really want to remove subscription"
-                " <b>{0}</b> and all subscriptions requiring it?</p>"
-                "<ul><li>{1}</li></ul>").format(
-                self.__currentSubscription.title(),
-                "</li><li>".join(requiresTitles))
-        else:
-            message = self.tr(
-                "<p>Do you really want to remove subscription"
-                " <b>{0}</b>?</p>").format(self.__currentSubscription.title())
-        res = E5MessageBox.yesNo(
-            self,
-            self.tr("Remove Subscription"),
-            message)
-        
-        if res:
-            removeSubscription = self.__currentSubscription
-            removeTrees = [self.__currentTreeWidget]
-            for index in range(self.subscriptionsTabWidget.count()):
-                tree = self.subscriptionsTabWidget.widget(index)
-                if tree.subscription() in requiresSubscriptions:
-                    removeTrees.append(tree)
-            for tree in removeTrees:
-                self.subscriptionsTabWidget.removeTab(
-                    self.subscriptionsTabWidget.indexOf(tree))
-            self.__manager.removeSubscription(removeSubscription)
-    
-    def __switchSubscriptionEnabled(self):
-        """
-        Private slot to switch the enabled state of the selected subscription.
-        """
-        newState = not self.__currentSubscription.isEnabled()
-        self.__setSubscriptionEnabled(self.__currentSubscription, newState)
-    
-    def __setSubscriptionEnabled(self, subscription, enable):
-        """
-        Private slot to set the enabled state of a subscription.
-        
-        @param subscription subscription to set the state for
-            (AdBlockSubscription)
-        @param enable state to set to (boolean)
-        """
-        if enable:
-            # enable required one as well
-            sub = self.__manager.subscription(subscription.requiresLocation())
-            requiresSubscriptions = [] if sub is None else [sub]
-            icon = UI.PixmapCache.getIcon("adBlockPlus.png")
-        else:
-            # disable dependent ones as well
-            requiresSubscriptions = \
-                self.__manager.getRequiresSubscriptions(subscription)
-            icon = UI.PixmapCache.getIcon("adBlockPlusDisabled.png")
-        requiresSubscriptions.append(subscription)
-        for sub in requiresSubscriptions:
-            sub.setEnabled(enable)
-        
-        for index in range(self.subscriptionsTabWidget.count()):
-            tree = self.subscriptionsTabWidget.widget(index)
-            if tree.subscription() in requiresSubscriptions:
-                self.subscriptionsTabWidget.setTabIcon(
-                    self.subscriptionsTabWidget.indexOf(tree), icon)
-    
-    @pyqtSlot(int)
-    def on_updateSpinBox_valueChanged(self, value):
-        """
-        Private slot to handle changes of the update period.
-        
-        @param value update period (integer)
-        """
-        if value != Preferences.getHelp("AdBlockUpdatePeriod"):
-            Preferences.setHelp("AdBlockUpdatePeriod", value)
-            
-            import Helpviewer.HelpWindow
-            manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
-            for subscription in manager.subscriptions():
-                subscription.checkForUpdate()
-    
-    @pyqtSlot(int)
-    def on_subscriptionsTabWidget_currentChanged(self, index):
-        """
-        Private slot handling the selection of another tab.
-        
-        @param index index of the new current tab (integer)
-        """
-        if index != -1:
-            self.__currentTreeWidget = \
-                self.subscriptionsTabWidget.widget(index)
-            self.__currentSubscription = \
-                self.__currentTreeWidget.subscription()
-    
-    @pyqtSlot(str)
-    def on_searchEdit_textChanged(self, filterRule):
-        """
-        Private slot to set a new filter on the current widget.
-        
-        @param filterRule filter to be set (string)
-        """
-        if self.__currentTreeWidget and self.adBlockGroup.isChecked():
-            self.__currentTreeWidget.filterString(filterRule)
-    
-    @pyqtSlot(bool)
-    def on_adBlockGroup_toggled(self, state):
-        """
-        Private slot handling the enabling/disabling of AdBlock.
-        
-        @param state state of the toggle (boolean)
-        """
-        self.__manager.setEnabled(state)
-        
-        if state:
-            self.__load()
-    
-    def showRule(self, rule):
-        """
-        Public slot to show the given rule.
-        
-        @param rule rule to be shown (AdBlockRule)
-        """
-        if rule is None:
-            return
-        
-        subscription = rule.subscription()
-        if subscription is None:
-            return
-        
-        for index in range(self.subscriptionsTabWidget.count()):
-            tree = self.subscriptionsTabWidget.widget(index)
-            if subscription == tree.subscription():
-                tree.showRule(rule)
-                self.subscriptionsTabWidget.setCurrentIndex(index)
-                self.raise_()
-                break
--- a/eric6/Helpviewer/AdBlock/AdBlockDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,194 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>AdBlockDialog</class>
- <widget class="QDialog" name="AdBlockDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>650</width>
-    <height>600</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>AdBlock Configuration</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2">
-   <item>
-    <widget class="QGroupBox" name="adBlockGroup">
-     <property name="title">
-      <string>Enable AdBlock</string>
-     </property>
-     <property name="checkable">
-      <bool>true</bool>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout">
-      <item>
-       <layout class="QGridLayout" name="gridLayout">
-        <property name="horizontalSpacing">
-         <number>20</number>
-        </property>
-        <item row="0" column="0" rowspan="2">
-         <widget class="QLabel" name="iconLabel">
-          <property name="minimumSize">
-           <size>
-            <width>48</width>
-            <height>48</height>
-           </size>
-          </property>
-          <property name="text">
-           <string notr="true">Icon</string>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <spacer name="horizontalSpacer">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item row="1" column="1">
-         <widget class="E5ClearableLineEdit" name="searchEdit">
-          <property name="toolTip">
-           <string>Enter search term for subscriptions and rules</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <widget class="QTabWidget" name="subscriptionsTabWidget">
-        <property name="documentMode">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout">
-        <item>
-         <widget class="QToolButton" name="actionButton">
-          <property name="text">
-           <string>Actions</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_2">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QLabel" name="label">
-          <property name="text">
-           <string>Default Update Period (days):</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QSpinBox" name="updateSpinBox">
-          <property name="toolTip">
-           <string>Enter the update period (1 to 14 days)</string>
-          </property>
-          <property name="alignment">
-           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-          </property>
-          <property name="suffix">
-           <string/>
-          </property>
-          <property name="minimum">
-           <number>1</number>
-          </property>
-          <property name="maximum">
-           <number>14</number>
-          </property>
-          <property name="value">
-           <number>7</number>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>adBlockGroup</tabstop>
-  <tabstop>searchEdit</tabstop>
-  <tabstop>subscriptionsTabWidget</tabstop>
-  <tabstop>actionButton</tabstop>
-  <tabstop>updateSpinBox</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>AdBlockDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>252</x>
-     <y>445</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>AdBlockDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>320</x>
-     <y>445</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/AdBlock/AdBlockExceptionsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to configure the AdBlock exceptions.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt
-from PyQt5.QtWidgets import QDialog
-
-from .Ui_AdBlockExceptionsDialog import Ui_AdBlockExceptionsDialog
-
-import UI.PixmapCache
-
-
-class AdBlockExceptionsDialog(QDialog, Ui_AdBlockExceptionsDialog):
-    """
-    Class implementing a dialog to configure the AdBlock exceptions.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(AdBlockExceptionsDialog, self).__init__(parent)
-        self.setupUi(self)
-        self.setWindowFlags(Qt.Window)
-        
-        self.iconLabel.setPixmap(
-            UI.PixmapCache.getPixmap("adBlockPlusGreen48.png"))
-        
-        self.hostEdit.setInactiveText(self.tr("Enter host to be added..."))
-        
-        self.buttonBox.setFocus()
-    
-    def load(self, hosts):
-        """
-        Public slot to load the list of excepted hosts.
-        
-        @param hosts list of excepted hosts
-        """
-        self.hostList.clear()
-        self.hostList.addItems(hosts)
-    
-    @pyqtSlot(str)
-    def on_hostEdit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the host edit.
-        
-        @param txt text of the edit (string)
-        """
-        self.addButton.setEnabled(bool(txt))
-    
-    @pyqtSlot()
-    def on_addButton_clicked(self):
-        """
-        Private slot to handle a click of the add button.
-        """
-        self.hostList.addItem(self.hostEdit.text())
-        self.hostEdit.clear()
-    
-    @pyqtSlot()
-    def on_hostList_itemSelectionChanged(self):
-        """
-        Private slot handling a change of the number of selected items.
-        """
-        self.deleteButton.setEnabled(len(self.hostList.selectedItems()) > 0)
-    
-    @pyqtSlot()
-    def on_deleteButton_clicked(self):
-        """
-        Private slot handling a click of the delete button.
-        """
-        for itm in self.hostList.selectedItems():
-            row = self.hostList.row(itm)
-            removedItem = self.hostList.takeItem(row)
-            del removedItem
-    
-    def accept(self):
-        """
-        Public slot handling the acceptance of the dialog.
-        """
-        hosts = []
-        for row in range(self.hostList.count()):
-            hosts.append(self.hostList.item(row).text())
-        
-        import Helpviewer.HelpWindow
-        Helpviewer.HelpWindow.HelpWindow.adBlockManager().setExceptions(hosts)
-        
-        super(AdBlockExceptionsDialog, self).accept()
--- a/eric6/Helpviewer/AdBlock/AdBlockExceptionsDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>AdBlockExceptionsDialog</class>
- <widget class="QDialog" name="AdBlockExceptionsDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>550</width>
-    <height>450</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>AdBlock Exceptions</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0" rowspan="2">
-      <widget class="QLabel" name="iconLabel">
-       <property name="minimumSize">
-        <size>
-         <width>48</width>
-         <height>48</height>
-        </size>
-       </property>
-       <property name="text">
-        <string notr="true">Icon</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>188</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item row="1" column="1">
-      <widget class="E5ClearableLineEdit" name="hostEdit">
-       <property name="toolTip">
-        <string>Enter a host to block AdBlock for</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="2">
-      <widget class="QPushButton" name="addButton">
-       <property name="enabled">
-        <bool>false</bool>
-       </property>
-       <property name="toolTip">
-        <string>Press to add the host</string>
-       </property>
-       <property name="text">
-        <string>&amp;Add</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="0" rowspan="2" colspan="2">
-      <widget class="QListWidget" name="hostList">
-       <property name="alternatingRowColors">
-        <bool>true</bool>
-       </property>
-       <property name="sortingEnabled">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="2">
-      <widget class="QPushButton" name="deleteButton">
-       <property name="enabled">
-        <bool>false</bool>
-       </property>
-       <property name="toolTip">
-        <string>Press to delete the selected hosts</string>
-       </property>
-       <property name="text">
-        <string>&amp;Delete</string>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="2">
-      <spacer name="verticalSpacer">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>148</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>hostEdit</tabstop>
-  <tabstop>addButton</tabstop>
-  <tabstop>hostList</tabstop>
-  <tabstop>deleteButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>AdBlockExceptionsDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>AdBlockExceptionsDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/AdBlock/AdBlockIcon.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the AdBlock icon for the main window status bar.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt
-from PyQt5.QtWidgets import QAction, QMenu
-
-from E5Gui.E5ClickableLabel import E5ClickableLabel
-
-import UI.PixmapCache
-
-
-class AdBlockIcon(E5ClickableLabel):
-    """
-    Class implementing the AdBlock icon for the main window status bar.
-    """
-    def __init__(self, parent):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (HelpWindow)
-        """
-        super(AdBlockIcon, self).__init__(parent)
-        
-        self.__mw = parent
-        self.__menuAction = None
-        self.__enabled = False
-        
-        self.setMaximumHeight(16)
-        self.setCursor(Qt.PointingHandCursor)
-        self.setToolTip(self.tr(
-            "AdBlock lets you block unwanted content on web pages."))
-        
-        self.clicked.connect(self.__showMenu)
-    
-    def setEnabled(self, enabled):
-        """
-        Public slot to set the enabled state.
-        
-        @param enabled enabled state (boolean)
-        """
-        self.__enabled = enabled
-        if enabled:
-            self.currentChanged()
-        else:
-            self.setPixmap(
-                UI.PixmapCache.getPixmap("adBlockPlusDisabled16.png"))
-    
-    def __createMenu(self, menu):
-        """
-        Private slot to create the context menu.
-        
-        @param menu parent menu
-        @type QMenu
-        """
-        menu.clear()
-        
-        import Helpviewer.HelpWindow
-        manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
-        
-        if manager.isEnabled():
-            act = menu.addAction(
-                UI.PixmapCache.getIcon("adBlockPlusDisabled.png"),
-                self.tr("Disable AdBlock"))
-            act.setData(False)
-            act.triggered.connect(lambda: self.__enableAdBlock(act))
-        else:
-            act = menu.addAction(
-                UI.PixmapCache.getIcon("adBlockPlus.png"),
-                self.tr("Enable AdBlock"))
-            act.setData(True)
-            act.triggered.connect(lambda: self.__enableAdBlock(act))
-        menu.addSeparator()
-        if manager.isEnabled() and \
-           self.__mw.currentBrowser().page().url().host():
-            if self.__isCurrentHostExcepted():
-                act = menu.addAction(
-                    UI.PixmapCache.getIcon("adBlockPlus.png"),
-                    self.tr("Remove AdBlock Exception"))
-                act.setData(False)
-                act.triggered.connect(lambda: self.__setException(act))
-            else:
-                act = menu.addAction(
-                    UI.PixmapCache.getIcon("adBlockPlusGreen.png"),
-                    self.tr("Add AdBlock Exception"))
-                act.setData(True)
-                act.triggered.connect(lambda: self.__setException(act))
-        menu.addAction(
-            UI.PixmapCache.getIcon("adBlockPlusGreen.png"),
-            self.tr("AdBlock Exceptions..."), manager.showExceptionsDialog)
-        menu.addSeparator()
-        menu.addAction(
-            UI.PixmapCache.getIcon("adBlockPlus.png"),
-            self.tr("AdBlock Configuration..."), manager.showDialog)
-        menu.addSeparator()
-        
-        entries = self.__mw.currentBrowser().page().getAdBlockedPageEntries()
-        if entries:
-            menu.addAction(self.tr(
-                "Blocked URL (AdBlock Rule) - click to edit rule"))\
-                .setEnabled(False)
-            for entry in entries:
-                address = entry.urlString()[-55:]
-                actionText = self.tr("{0} with ({1})").format(
-                    address, entry.rule.filter()).replace("&", "&&")
-                act = menu.addAction(actionText)
-                act.setData(entry.rule)
-                act.triggered.connect(lambda: manager.showRule(act))
-        else:
-            menu.addAction(self.tr("No content blocked")).setEnabled(False)
-    
-    def menuAction(self):
-        """
-        Public method to get a reference to the menu action.
-        
-        @return reference to the menu action (QAction)
-        """
-        if not self.__menuAction:
-            self.__menuAction = QAction(self.tr("AdBlock"), self)
-            self.__menuAction.setMenu(QMenu())
-            self.__menuAction.menu().aboutToShow.connect(
-                lambda: self.__createMenu(self.__menuAction.menu()))
-        
-        if self.__enabled:
-            self.__menuAction.setIcon(
-                UI.PixmapCache.getIcon("adBlockPlus.png"))
-        else:
-            self.__menuAction.setIcon(
-                UI.PixmapCache.getIcon("adBlockPlusDisabled.png"))
-        
-        return self.__menuAction
-    
-    def __showMenu(self, pos):
-        """
-        Private slot to show the context menu.
-        
-        @param pos position the context menu should be shown (QPoint)
-        """
-        menu = QMenu()
-        self.__createMenu(menu)
-        menu.exec_(pos)
-    
-    def __enableAdBlock(self, act):
-        """
-        Private slot to enable or disable AdBlock.
-        
-        @param act reference to the action
-        @type QAction
-        """
-        import Helpviewer.HelpWindow
-        Helpviewer.HelpWindow.HelpWindow.adBlockManager().setEnabled(
-            act.data())
-    
-    def __isCurrentHostExcepted(self):
-        """
-        Private method to check, if the host of the current browser is
-        excepted.
-        
-        @return flag indicating an exception (boolean)
-        """
-        browser = self.__mw.currentBrowser()
-        if browser is None:
-            return False
-        
-        urlHost = browser.page().url().host()
-        
-        import Helpviewer.HelpWindow
-        return urlHost and \
-            Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
-            .isHostExcepted(urlHost)
-    
-    def currentChanged(self):
-        """
-        Public slot to handle a change of the current browser tab.
-        """
-        if self.__enabled:
-            if self.__isCurrentHostExcepted():
-                self.setPixmap(
-                    UI.PixmapCache.getPixmap("adBlockPlusGreen16.png"))
-            else:
-                self.setPixmap(UI.PixmapCache.getPixmap("adBlockPlus16.png"))
-    
-    def __setException(self, act):
-        """
-        Private slot to add or remove the current host from the list of
-        exceptions.
-        
-        @param act referenced to the action
-        @type QAction
-        """
-        import Helpviewer.HelpWindow
-        urlHost = self.__mw.currentBrowser().page().url().host()
-        if act.data():
-            Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
-                .addException(urlHost)
-        else:
-            Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
-                .removeException(urlHost)
-        self.currentChanged()
-    
-    def sourceChanged(self, browser, url):
-        """
-        Public slot to handle URL changes.
-        
-        @param browser reference to the browser (HelpBrowser)
-        @param url new URL (QUrl)
-        """
-        if browser == self.__mw.currentBrowser():
-            self.currentChanged()
--- a/eric6/Helpviewer/AdBlock/AdBlockManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,480 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the AdBlock manager.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSignal, QObject, QUrl, QFile
-
-from .AdBlockSubscription import AdBlockSubscription
-
-from Utilities.AutoSaver import AutoSaver
-import Utilities
-import Preferences
-
-
-class AdBlockManager(QObject):
-    """
-    Class implementing the AdBlock manager.
-    
-    @signal rulesChanged() emitted after some rule has changed
-    @signal requiredSubscriptionLoaded(subscription) emitted to indicate
-        loading of a required subscription is finished (AdBlockSubscription)
-    """
-    rulesChanged = pyqtSignal()
-    requiredSubscriptionLoaded = pyqtSignal(AdBlockSubscription)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(AdBlockManager, self).__init__(parent)
-        
-        self.__loaded = False
-        self.__subscriptionsLoaded = False
-        self.__enabled = False
-        self.__adBlockDialog = None
-        self.__adBlockExceptionsDialog = None
-        self.__adBlockNetwork = None
-        self.__adBlockPage = None
-        self.__subscriptions = []
-        self.__exceptedHosts = Preferences.getHelp("AdBlockExceptions")
-        self.__saveTimer = AutoSaver(self, self.save)
-        
-        self.__defaultSubscriptionUrlString = \
-            "abp:subscribe?location=" \
-            "https://easylist-downloads.adblockplus.org/easylist.txt&"\
-            "title=EasyList"
-        self.__customSubscriptionUrlString = \
-            bytes(self.__customSubscriptionUrl().toEncoded()).decode()
-        
-        self.rulesChanged.connect(self.__saveTimer.changeOccurred)
-    
-    def close(self):
-        """
-        Public method to close the open search engines manager.
-        """
-        self.__adBlockDialog and self.__adBlockDialog.close()
-        self.__adBlockExceptionsDialog and \
-            self.__adBlockExceptionsDialog.close()
-        
-        self.__saveTimer.saveIfNeccessary()
-    
-    def isEnabled(self):
-        """
-        Public method to check, if blocking ads is enabled.
-        
-        @return flag indicating the enabled state (boolean)
-        """
-        if not self.__loaded:
-            self.load()
-        
-        return self.__enabled
-    
-    def setEnabled(self, enabled):
-        """
-        Public slot to set the enabled state.
-        
-        @param enabled flag indicating the enabled state (boolean)
-        """
-        if self.isEnabled() == enabled:
-            return
-        
-        import Helpviewer.HelpWindow
-        self.__enabled = enabled
-        for mainWindow in Helpviewer.HelpWindow.HelpWindow.mainWindows():
-            mainWindow.adBlockIcon().setEnabled(enabled)
-        if enabled:
-            self.__loadSubscriptions()
-        self.rulesChanged.emit()
-    
-    def network(self):
-        """
-        Public method to get a reference to the network block object.
-        
-        @return reference to the network block object (AdBlockNetwork)
-        """
-        if self.__adBlockNetwork is None:
-            from .AdBlockNetwork import AdBlockNetwork
-            self.__adBlockNetwork = AdBlockNetwork(self)
-        return self.__adBlockNetwork
-    
-    def page(self):
-        """
-        Public method to get a reference to the page block object.
-        
-        @return reference to the page block object (AdBlockPage)
-        """
-        if self.__adBlockPage is None:
-            from .AdBlockPage import AdBlockPage
-            self.__adBlockPage = AdBlockPage(self)
-        return self.__adBlockPage
-    
-    def __customSubscriptionLocation(self):
-        """
-        Private method to generate the path for custom subscriptions.
-        
-        @return URL for custom subscriptions (QUrl)
-        """
-        dataDir = os.path.join(Utilities.getConfigDir(), "browser",
-                               "subscriptions")
-        if not os.path.exists(dataDir):
-            os.makedirs(dataDir)
-        fileName = os.path.join(dataDir, "adblock_subscription_custom")
-        return QUrl.fromLocalFile(fileName)
-    
-    def __customSubscriptionUrl(self):
-        """
-        Private method to generate the URL for custom subscriptions.
-        
-        @return URL for custom subscriptions (QUrl)
-        """
-        location = self.__customSubscriptionLocation()
-        encodedUrl = bytes(location.toEncoded()).decode()
-        url = QUrl("abp:subscribe?location={0}&title={1}".format(
-            encodedUrl, self.tr("Custom Rules")))
-        return url
-    
-    def customRules(self):
-        """
-        Public method to get a subscription for custom rules.
-        
-        @return subscription object for custom rules (AdBlockSubscription)
-        """
-        location = self.__customSubscriptionLocation()
-        for subscription in self.__subscriptions:
-            if subscription.location() == location:
-                return subscription
-        
-        url = self.__customSubscriptionUrl()
-        customAdBlockSubscription = AdBlockSubscription(url, True, self)
-        self.addSubscription(customAdBlockSubscription)
-        return customAdBlockSubscription
-    
-    def subscriptions(self):
-        """
-        Public method to get all subscriptions.
-        
-        @return list of subscriptions (list of AdBlockSubscription)
-        """
-        if not self.__loaded:
-            self.load()
-        
-        return self.__subscriptions[:]
-    
-    def subscription(self, location):
-        """
-        Public method to get a subscription based on its location.
-        
-        @param location location of the subscription to search for (string)
-        @return subscription or None (AdBlockSubscription)
-        """
-        if location != "":
-            for subscription in self.__subscriptions:
-                if subscription.location().toString() == location:
-                    return subscription
-        
-        return None
-    
-    def updateAllSubscriptions(self):
-        """
-        Public method to update all subscriptions.
-        """
-        for subscription in self.__subscriptions:
-            subscription.updateNow()
-    
-    def removeSubscription(self, subscription, emitSignal=True):
-        """
-        Public method to remove an AdBlock subscription.
-        
-        @param subscription AdBlock subscription to be removed
-            (AdBlockSubscription)
-        @param emitSignal flag indicating to send a signal (boolean)
-        """
-        if subscription is None:
-            return
-        
-        if subscription.url().toString().startswith(
-            (self.__defaultSubscriptionUrlString,
-             self.__customSubscriptionUrlString)):
-            return
-        
-        try:
-            self.__subscriptions.remove(subscription)
-            rulesFileName = subscription.rulesFileName()
-            QFile.remove(rulesFileName)
-            requiresSubscriptions = self.getRequiresSubscriptions(subscription)
-            for requiresSubscription in requiresSubscriptions:
-                self.removeSubscription(requiresSubscription, False)
-            if emitSignal:
-                self.rulesChanged.emit()
-        except ValueError:
-            pass
-    
-    def addSubscription(self, subscription):
-        """
-        Public method to add an AdBlock subscription.
-        
-        @param subscription AdBlock subscription to be added
-            (AdBlockSubscription)
-        """
-        if subscription is None:
-            return
-        
-        self.__subscriptions.insert(-1, subscription)
-        
-        subscription.rulesChanged.connect(self.rulesChanged)
-        subscription.changed.connect(self.rulesChanged)
-        subscription.enabledChanged.connect(self.rulesChanged)
-        
-        self.rulesChanged.emit()
-    
-    def save(self):
-        """
-        Public method to save the AdBlock subscriptions.
-        """
-        if not self.__loaded:
-            return
-        
-        Preferences.setHelp("AdBlockEnabled", self.__enabled)
-        if self.__subscriptionsLoaded:
-            subscriptions = []
-            requiresSubscriptions = []
-            # intermediate store for subscription requiring others
-            for subscription in self.__subscriptions:
-                if subscription is None:
-                    continue
-                urlString = bytes(subscription.url().toEncoded()).decode()
-                if "requiresLocation" in urlString:
-                    requiresSubscriptions.append(urlString)
-                else:
-                    subscriptions.append(urlString)
-                subscription.saveRules()
-            for subscription in requiresSubscriptions:
-                subscriptions.insert(-1, subscription)  # custom should be last
-            Preferences.setHelp("AdBlockSubscriptions", subscriptions)
-    
-    def load(self):
-        """
-        Public method to load the AdBlock subscriptions.
-        """
-        if self.__loaded:
-            return
-        
-        self.__loaded = True
-        
-        self.__enabled = Preferences.getHelp("AdBlockEnabled")
-        if self.__enabled:
-            self.__loadSubscriptions()
-    
-    def __loadSubscriptions(self):
-        """
-        Private method to load the set of subscriptions.
-        """
-        if self.__subscriptionsLoaded:
-            return
-        
-        subscriptions = Preferences.getHelp("AdBlockSubscriptions")
-        if subscriptions:
-            for subscription in subscriptions:
-                if subscription.startswith(
-                        self.__defaultSubscriptionUrlString):
-                    break
-            else:
-                subscriptions.insert(0, self.__defaultSubscriptionUrlString)
-            for subscription in subscriptions:
-                if subscription.startswith(self.__customSubscriptionUrlString):
-                    break
-            else:
-                subscriptions.append(self.__customSubscriptionUrlString)
-        else:
-            subscriptions = [self.__defaultSubscriptionUrlString,
-                             self.__customSubscriptionUrlString]
-        for subscription in subscriptions:
-            url = QUrl.fromEncoded(subscription.encode("utf-8"))
-            adBlockSubscription = AdBlockSubscription(
-                url,
-                subscription.startswith(self.__customSubscriptionUrlString),
-                self,
-                subscription.startswith(self.__defaultSubscriptionUrlString))
-            adBlockSubscription.rulesChanged.connect(self.rulesChanged)
-            adBlockSubscription.changed.connect(self.rulesChanged)
-            adBlockSubscription.enabledChanged.connect(self.rulesChanged)
-            self.__subscriptions.append(adBlockSubscription)
-        
-        self.__subscriptionsLoaded = True
-    
-    def loadRequiredSubscription(self, location, title):
-        """
-        Public method to load a subscription required by another one.
-        
-        @param location location of the required subscription (string)
-        @param title title of the required subscription (string)
-        """
-        # Step 1: check, if the subscription is in the list of subscriptions
-        urlString = "abp:subscribe?location={0}&title={1}".format(
-            location, title)
-        for subscription in self.__subscriptions:
-            if subscription.url().toString().startswith(urlString):
-                # We found it!
-                return
-        
-        # Step 2: if it is not, get it
-        url = QUrl.fromEncoded(urlString.encode("utf-8"))
-        adBlockSubscription = AdBlockSubscription(url, False, self)
-        self.addSubscription(adBlockSubscription)
-        self.requiredSubscriptionLoaded.emit(adBlockSubscription)
-    
-    def getRequiresSubscriptions(self, subscription):
-        """
-        Public method to get a list of subscriptions, that require the given
-        one.
-        
-        @param subscription subscription to check for (AdBlockSubscription)
-        @return list of subscription requiring the given one (list of
-            AdBlockSubscription)
-        """
-        subscriptions = []
-        location = subscription.location().toString()
-        for subscription in self.__subscriptions:
-            if subscription.requiresLocation() == location:
-                subscriptions.append(subscription)
-        
-        return subscriptions
-    
-    def showDialog(self):
-        """
-        Public slot to show the AdBlock subscription management dialog.
-        
-        @return reference to the dialog (AdBlockDialog)
-        """
-        if self.__adBlockDialog is None:
-            from .AdBlockDialog import AdBlockDialog
-            self.__adBlockDialog = AdBlockDialog()
-        
-        self.__adBlockDialog.show()
-        return self.__adBlockDialog
-    
-    def showRule(self, act):
-        """
-        Public slot to show an AdBlock rule.
-        
-        @param act reference to the action
-        @type QAction
-        """
-        rule = act.data()
-        if rule:
-            self.showDialog().showRule(rule)
-    
-    def elementHidingRules(self):
-        """
-        Public method to get the element hiding rules.
-        
-        @return element hiding rules (string)
-        """
-        if not self.__enabled:
-            return ""
-        
-        rules = ""
-        
-        for subscription in self.__subscriptions:
-            rules += subscription.elementHidingRules()
-        
-        if rules:
-            # remove last ",
-            rules = rules[:-1]
-        
-        return rules
-    
-    def elementHidingRulesForDomain(self, url):
-        """
-        Public method to get the element hiding rules for a domain.
-        
-        @param url URL to get hiding rules for (QUrl)
-        @return element hiding rules (string)
-        """
-        if not self.__enabled:
-            return ""
-        
-        rules = ""
-        
-        for subscription in self.__subscriptions:
-            if subscription.elemHideDisabledForUrl(url):
-                return ""
-            
-            rules += subscription.elementHidingRulesForDomain(url.host())
-        
-        if rules:
-            # remove last ",
-            rules = rules[:-1]
-        
-        return rules
-    
-    def exceptions(self):
-        """
-        Public method to get a list of excepted hosts.
-        
-        @return list of excepted hosts (list of string)
-        """
-        return self.__exceptedHosts
-    
-    def setExceptions(self, hosts):
-        """
-        Public method to set the list of excepted hosts.
-        
-        @param hosts list of excepted hosts (list of string)
-        """
-        self.__exceptedHosts = hosts[:]
-        Preferences.setHelp("AdBlockExceptions", self.__exceptedHosts)
-    
-    def addException(self, host):
-        """
-        Public method to add an exception.
-        
-        @param host to be excepted (string)
-        """
-        if host and host not in self.__exceptedHosts:
-            self.__exceptedHosts.append(host)
-            Preferences.setHelp("AdBlockExceptions", self.__exceptedHosts)
-    
-    def removeException(self, host):
-        """
-        Public method to remove an exception.
-        
-        @param host to be removed from the list of exceptions (string)
-        """
-        if host in self.__exceptedHosts:
-            self.__exceptedHosts.remove(host)
-            Preferences.setHelp("AdBlockExceptions", self.__exceptedHosts)
-    
-    def isHostExcepted(self, host):
-        """
-        Public slot to check, if a host is excepted.
-        
-        @param host host to check (string)
-        @return flag indicating an exception (boolean)
-        """
-        return host in self.__exceptedHosts
-    
-    def showExceptionsDialog(self):
-        """
-        Public method to show the AdBlock Exceptions dialog.
-        
-        @return reference to the exceptions dialog (AdBlockExceptionsDialog)
-        """
-        if self.__adBlockExceptionsDialog is None:
-            from .AdBlockExceptionsDialog import AdBlockExceptionsDialog
-            self.__adBlockExceptionsDialog = AdBlockExceptionsDialog()
-        
-        self.__adBlockExceptionsDialog.load(self.__exceptedHosts)
-        self.__adBlockExceptionsDialog.show()
-        return self.__adBlockExceptionsDialog
--- a/eric6/Helpviewer/AdBlock/AdBlockNetwork.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the network block class.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QObject, QUrl
-from PyQt5.QtNetwork import QNetworkRequest
-
-from .AdBlockBlockedNetworkReply import AdBlockBlockedNetworkReply
-
-
-class AdBlockNetwork(QObject):
-    """
-    Class implementing a network block.
-    """
-    def block(self, request):
-        """
-        Public method to check for a network block.
-        
-        @param request reference to the request object (QNetworkRequest)
-        @return reply object (QNetworkReply) or None
-        """
-        url = request.url()
-        urlString = bytes(url.toEncoded()).decode()
-        urlDomain = url.host()
-        urlScheme = url.scheme()
-        refererHost = QUrl.fromEncoded(request.rawHeader(b"Referer")).host()
-        
-        import Helpviewer.HelpWindow
-        manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
-        if not manager.isEnabled() or \
-           not self.canRunOnScheme(urlScheme) or \
-           manager.isHostExcepted(urlDomain) or \
-           manager.isHostExcepted(refererHost):
-            return None
-        
-        for subscription in manager.subscriptions():
-            if subscription.isEnabled():
-                blockedRule = subscription.match(request, urlDomain, urlString)
-                if blockedRule:
-                    webPage = request.attribute(QNetworkRequest.User + 100)
-                    if webPage is not None:
-                        if not self.__canBeBlocked(webPage.url()):
-                            return None
-                        
-                        webPage.addAdBlockRule(blockedRule, url)
-                    
-                    reply = AdBlockBlockedNetworkReply(
-                        request, subscription, blockedRule, self)
-                    return reply
-        
-        return None
-    
-    def canRunOnScheme(self, scheme):
-        """
-        Public method to check, if AdBlock can be performed on the scheme.
-        
-        @param scheme scheme to check (string)
-        @return flag indicating, that AdBlock can be performed (boolean)
-        """
-        return scheme not in ["data", "eric", "qthelp", "qrc", "file", "abp"]
-    
-    def __canBeBlocked(self, url):
-        """
-        Private method to check, if an URL can be blocked.
-        
-        @param url URL to be checked (QUrl)
-        @return flag indicating, that the URL can be blocked (boolean)
-        """
-        import Helpviewer.HelpWindow
-        manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
-        if manager.isHostExcepted(url.host()):
-            return False
-        for subscription in manager.subscriptions():
-            if subscription.isEnabled() and \
-                    subscription.adBlockDisabledForUrl(url):
-                return False
-        
-        return True
--- a/eric6/Helpviewer/AdBlock/AdBlockPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a class to apply AdBlock rules to a web page.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QObject, QUrl
-
-
-class AdBlockPage(QObject):
-    """
-    Class to apply AdBlock rules to a web page.
-    """
-    def hideBlockedPageEntries(self, page):
-        """
-        Public method to apply AdBlock rules to a web page.
-        
-        @param page reference to the web page (HelpWebPage)
-        """
-        if page is None or page.mainFrame() is None:
-            return
-        
-        import Helpviewer.HelpWindow
-        manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
-        if not manager.isEnabled():
-            return
-        
-        docElement = page.mainFrame().documentElement()
-        
-        for entry in page.getAdBlockedPageEntries():
-            urlString = entry.urlString()
-            if urlString.endswith((".js", ".css")):
-                continue
-            
-            urlEnd = ""
-            pos = urlString.rfind("/")
-            if pos >= 0:
-                urlEnd = urlString[pos + 1:]
-            if urlString.endswith("/"):
-                urlEnd = urlString[:-1]
-            
-            selector = \
-                'img[src$="{0}"], iframe[src$="{0}"], embed[src$="{0}"]'\
-                .format(urlEnd)
-            elements = docElement.findAll(selector)
-            
-            for element in elements:
-                src = element.attribute("src")
-                src = src.replace("../", "")
-                if src in urlString:
-                    element.setStyleProperty("display", "none")
-        
-        # apply domain specific element hiding rules
-        elementHiding = manager.elementHidingRulesForDomain(page.url())
-        if not elementHiding:
-            return
-        
-        elementHiding += "{display: none !important;}\n</style>"
-        
-        bodyElement = docElement.findFirst("body")
-        bodyElement.appendInside(
-            '<style type="text/css">\n/* AdBlock for eric */\n' +
-            elementHiding)
-
-
-class AdBlockedPageEntry(object):
-    """
-    Class implementing a data structure for web page rules.
-    """
-    def __init__(self, rule, url):
-        """
-        Constructor
-        
-        @param rule AdBlock rule to add (AdBlockRule)
-        @param url URL that matched the rule (QUrl)
-        """
-        self.rule = rule
-        self.url = QUrl(url)
-    
-    def __eq__(self, other):
-        """
-        Special method to test equality.
-        
-        @param other reference to the other entry (AdBlockedPageEntry)
-        @return flag indicating equality (boolean)
-        """
-        return self.rule == other.rule and self.url == other.url
-    
-    def urlString(self):
-        """
-        Public method to get the URL as a string.
-        
-        @return URL as a string (string)
-        """
-        return self.url.toString()
--- a/eric6/Helpviewer/AdBlock/AdBlockRule.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,576 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the AdBlock rule class.
-"""
-
-from __future__ import unicode_literals
-
-import re
-
-from PyQt5.QtCore import Qt, QRegExp, QUrl
-from PyQt5.QtNetwork import QNetworkRequest
-
-from Globals import qVersionTuple
-
-
-# Qt version < 4.8 has an issue; it will wrongly
-# count .co.uk (and others) as second-level domains
-def toSecondLevelDomain(url):
-    """
-    Module function to get a second level domain from the given URL.
-    
-    @param url URL to extract domain from (QUrl)
-    @return name of second level domain (string)
-    """
-    if qVersionTuple() >= (4, 8, 0):
-        topLevelDomain = url.topLevelDomain()
-        urlHost = url.host()
-        
-        if not topLevelDomain or not urlHost:
-            return ""
-        
-        domain = urlHost[:len(urlHost) - len(topLevelDomain)]
-        if domain.count(".") == 0:
-            return urlHost
-        
-        while domain.count(".") != 0:
-            domain = domain[domain.find(".") + 1:]
-        
-        return domain + topLevelDomain
-    else:
-        domain = url.host()
-        
-        if domain.count(".") == 0:
-            return ""
-        
-        while domain.count(".") != 1:
-            domain = domain[domain.find(".") + 1:]
-        
-        return domain
-
-
-class AdBlockRule(object):
-    """
-    Class implementing the AdBlock rule.
-    """
-    def __init__(self, filterRule="", subscription=None):
-        """
-        Constructor
-        
-        @param filterRule filter string of the rule (string)
-        @param subscription reference to the subscription object
-            (AdBlockSubscription)
-        """
-        self.__subscription = subscription
-        
-        self.__regExp = QRegExp()
-        self.__options = []
-        self.__blockedDomains = []
-        self.__allowedDomains = []
-        
-        self.__enabled = True
-        self.__cssRule = False
-        self.__exception = False
-        self.__internalDisabled = False
-        self.__domainRestricted = False
-        self.__useRegExp = False
-        self.__useDomainMatch = False
-        self.__useEndsMatch = False
-        self.__thirdParty = False
-        self.__thirdPartyException = False
-        self.__object = False
-        self.__objectException = False
-        self.__subdocument = False
-        self.__subdocumentException = False
-        self.__xmlhttprequest = False
-        self.__xmlhttprequestException = False
-        self.__document = False
-        self.__elemhide = False
-        self.__caseSensitivity = Qt.CaseInsensitive
-        
-        self.setFilter(filterRule)
-    
-    def subscription(self):
-        """
-        Public method to get the subscription this rule belongs to.
-        
-        @return subscription of the rule (AdBlockSubscription)
-        """
-        return self.__subscription
-    
-    def filter(self):
-        """
-        Public method to get the rule filter string.
-        
-        @return rule filter string (string)
-        """
-        return self.__filter
-    
-    def setFilter(self, filterRule):
-        """
-        Public method to set the rule filter string.
-        
-        @param filterRule rule filter string (string)
-        """
-        self.__filter = filterRule
-        self.__parseFilter()
-    
-    def __parseFilter(self):
-        """
-        Private method to parse the filter pattern.
-        """
-        parsedLine = self.__filter
-        
-        # empty rule or just a comment
-        if not parsedLine.strip() or parsedLine.startswith(("!", "[Adblock")):
-            self.__enabled = False
-            return
-        
-        # CSS element hiding rule
-        if "##" in parsedLine:
-            self.__cssRule = True
-            pos = parsedLine.find("##")
-            
-            # domain restricted rule
-            if not parsedLine.startswith("##"):
-                domains = parsedLine[:pos]
-                self.__parseDomains(domains, ",")
-            
-            self.__cssSelector = parsedLine[pos + 2:]
-            # CSS rule cannot have more options -> stop parsing
-            return
-        
-        # Exception always starts with @@
-        if parsedLine.startswith("@@"):
-            self.__exception = True
-            parsedLine = parsedLine[2:]
-        
-        # Parse all options following '$' character
-        optionsIndex = parsedLine.find("$")
-        if optionsIndex >= 0:
-            options = parsedLine[optionsIndex + 1:].split(",")
-            
-            handledOptions = 0
-            for option in options:
-                if option.startswith("domain="):
-                    self.__parseDomains(option[7:], "|")
-                    handledOptions += 1
-                elif option == "match-case":
-                    self.__caseSensitivity = Qt.CaseSensitive
-                    handledOptions += 1
-                elif option.endswith("third-party"):
-                    self.__thirdParty = True
-                    self.__thirdPartyException = option.startswith("~")
-                    handledOptions += 1
-                elif option.endswith("object"):
-                    self.__object = True
-                    self.__objectException = option.startswith("~")
-                    handledOptions += 1
-                elif option.endswith("subdocument"):
-                    self.__subdocument = True
-                    self.__subdocumentException = option.startswith("~")
-                    handledOptions += 1
-                elif option.endswith("xmlhttprequest"):
-                    self.__xmlhttprequest = True
-                    self.__xmlhttprequestException = option.startswith("~")
-                    handledOptions += 1
-                elif option == "document" and self.__exception:
-                    self.__document = True
-                    handledOptions += 1
-                elif option == "elemhide" and self.__exception:
-                    self.__elemhide = True
-                    handledOptions += 1
-                elif option == "collapse":
-                    # Hiding placeholders of blocked elements
-                    handledOptions += 1
-            
-            # If we don't handle all options, it's safer to just disable
-            # this rule
-            if handledOptions != len(options):
-                self.__internalDisabled = True
-                return
-            
-            parsedLine = parsedLine[:optionsIndex]
-        
-        # Rule is classic regexp
-        if parsedLine.startswith("/") and parsedLine.endswith("/"):
-            parsedLine = parsedLine[1:-1]
-            self.__useRegExp = True
-            self.__regExp = QRegExp(parsedLine, self.__caseSensitivity,
-                                    QRegExp.RegExp)
-            return
-        
-        # Remove starting / ending wildcards
-        if parsedLine.startswith("*"):
-            parsedLine = parsedLine[1:]
-        if parsedLine.endswith("*"):
-            parsedLine = parsedLine[:-1]
-        
-        # Fast string matching for domain can be used
-        if parsedLine.startswith("||") and \
-           parsedLine.endswith("^") and \
-           QRegExp("[/:?=&\\*]").indexIn(parsedLine) == -1:
-            parsedLine = parsedLine[2:-1]
-            self.__useDomainMatch = True
-            self.__matchString = parsedLine
-            return
-        
-        # If rule contains '|' only at the end, string matching can be used
-        if parsedLine.endswith("|") and \
-           QRegExp("[\\^\\*]").indexIn(parsedLine) == -1 and \
-           parsedLine.count("|") == 1:
-            parsedLine = parsedLine[:-1]
-            self.__useEndsMatch = True
-            self.__matchString = parsedLine
-            return
-        
-        # If there is still a wildcard (*) or separator (^) or (|),
-        # the rule must be modified to comply with QRegExp.
-        if "*" in parsedLine or "^" in parsedLine or "|" in parsedLine:
-            pattern = self.__convertPatternToRegExp(parsedLine)
-            self.__useRegExp = True
-            self.__regExp = QRegExp(pattern, self.__caseSensitivity,
-                                    QRegExp.RegExp)
-            return
-        
-        # no regexp required
-        self.__useRegExp = False
-        self.__matchString = parsedLine
-    
-    def __parseDomains(self, domains, separator):
-        """
-        Private method to parse a string with a domain list.
-        
-        @param domains list of domains (string)
-        @param separator separator character used by the list (string)
-        """
-        domainsList = domains.split(separator)
-        
-        for domain in domainsList:
-            if not domain:
-                continue
-            if domain.startswith("~"):
-                self.__blockedDomains.append(domain[1:])
-            else:
-                self.__allowedDomains.append(domain)
-        
-        self.__domainRestricted = \
-            bool(self.__blockedDomains) or bool(self.__allowedDomains)
-    
-    def networkMatch(self, request, domain, encodedUrl):
-        """
-        Public method to check the rule for a match.
-        
-        @param request reference to the network request (QNetworkRequest)
-        @param domain domain name (string)
-        @param encodedUrl string encoded URL to be checked (string)
-        @return flag indicating a match (boolean)
-        """
-        if self.__cssRule or not self.__enabled or self.__internalDisabled:
-            return False
-        
-        matched = False
-        
-        if self.__useRegExp:
-            matched = self.__regExp.indexIn(encodedUrl) != -1
-        elif self.__useDomainMatch:
-            matched = domain.endswith(self.__matchString)
-        elif self.__useEndsMatch:
-            if self.__caseSensitivity == Qt.CaseInsensitive:
-                matched = encodedUrl.lower().endswith(
-                    self.__matchString.lower())
-            else:
-                matched = encodedUrl.endswith(self.__matchString)
-        else:
-            if self.__caseSensitivity == Qt.CaseInsensitive:
-                matched = self.__matchString.lower() in encodedUrl.lower()
-            else:
-                matched = self.__matchString in encodedUrl
-        
-        if matched:
-            # check domain restrictions
-            if self.__domainRestricted and not self.matchDomain(domain):
-                return False
-            
-            # check third-party restrictions
-            if self.__thirdParty and not self.matchThirdParty(request):
-                return False
-            
-            # check object restrictions
-            if self.__object and not self.matchObject(request):
-                return False
-            
-            # check subdocument restrictions
-            if self.__subdocument and not self.matchSubdocument(request):
-                return False
-            
-            # check xmlhttprequest restriction
-            if self.__xmlhttprequest and not self.matchXmlHttpRequest(request):
-                return False
-        
-        return matched
-    
-    def urlMatch(self, url):
-        """
-        Public method to check an URL against the rule.
-        
-        @param url URL to check (QUrl)
-        @return flag indicating a match (boolean)
-        """
-        if not self.__document and not self.__elemhide:
-            return False
-        
-        encodedUrl = bytes(url.toEncoded()).decode()
-        domain = url.host()
-        return self.networkMatch(QNetworkRequest(url), domain, encodedUrl)
-    
-    def matchDomain(self, domain):
-        """
-        Public method to match a domain.
-        
-        @param domain domain name to check (string)
-        @return flag indicating a match (boolean)
-        """
-        if not self.__enabled:
-            return False
-        
-        if not self.__domainRestricted:
-            return True
-        
-        if len(self.__blockedDomains) == 0:
-            for dom in self.__allowedDomains:
-                if domain.endswith(dom):
-                    return True
-        elif len(self.__allowedDomains) == 0:
-            for dom in self.__blockedDomains:
-                if domain.endswith(dom):
-                    return False
-            return True
-        else:
-            for dom in self.__blockedDomains:
-                if domain.endswith(dom):
-                    return False
-            for dom in self.__allowedDomains:
-                if domain.endswith(dom):
-                    return True
-        
-        return False
-    
-    def matchThirdParty(self, req):
-        """
-        Public slot to match a third-party rule.
-        
-        @param req request object to check (QNetworkRequest)
-        @return flag indicating a match (boolean)
-        """
-        referer = \
-            bytes(req.attribute(QNetworkRequest.User + 200, b"")).decode()
-        if referer == "":
-            return False
-        
-        # Third-party matching should be performed on second-level domains
-        refererHost = toSecondLevelDomain(QUrl(referer))
-        host = toSecondLevelDomain(req.url())
-        
-        match = refererHost != host
-        
-        if self.__thirdPartyException:
-            return not match
-        else:
-            return match
-    
-    def matchObject(self, req):
-        """
-        Public slot to match an object rule.
-        
-        @param req request object to check (QNetworkRequest)
-        @return flag indicating a match (boolean)
-        """
-        match = req.attribute(QNetworkRequest.User + 200) == "object"
-        
-        if self.__objectException:
-            return not match
-        else:
-            return match
-    
-    def matchSubdocument(self, req):
-        """
-        Public slot to match a sub-document rule.
-        
-        @param req request object to check (QNetworkRequest)
-        @return flag indicating a match (boolean)
-        """
-        originatingFrame = req.originatingObject()
-        if originatingFrame is None:
-            return False
-        
-        page = originatingFrame.page()
-        if page is None:
-            return False
-        
-        match = originatingFrame != page.mainFrame()
-        
-        if self.__subdocumentException:
-            return not match
-        else:
-            return match
-    
-    def matchXmlHttpRequest(self, req):
-        """
-        Public slot to match a XmlHttpRequest rule.
-        
-        @param req request object to check (QNetworkRequest)
-        @return flag indicating a match (boolean)
-        """
-        match = req.rawHeader(b"X-Request-With") == "XMLHttpRequest"
-        
-        if self.__xmlhttprequestException:
-            return not match
-        else:
-            return match
-    
-    def isException(self):
-        """
-        Public method to check, if the rule defines an exception.
-        
-        @return flag indicating an exception (boolean)
-        """
-        return self.__exception
-    
-    def setException(self, exception):
-        """
-        Public method to set the rule's exception flag.
-        
-        @param exception flag indicating an exception rule (boolean)
-        """
-        self.__exception = exception
-    
-    def isEnabled(self):
-        """
-        Public method to check, if the rule is enabled.
-        
-        @return flag indicating enabled state (boolean)
-        """
-        return self.__enabled
-    
-    def setEnabled(self, enabled):
-        """
-        Public method to set the rule's enabled state.
-        
-        @param enabled flag indicating the new enabled state (boolean)
-        """
-        self.__enabled = enabled
-        if not enabled:
-            self.__filter = "!" + self.__filter
-        else:
-            self.__filter = self.__filter[1:]
-    
-    def isCSSRule(self):
-        """
-        Public method to check, if the rule is a CSS rule.
-        
-        @return flag indicating a CSS rule (boolean)
-        """
-        return self.__cssRule
-    
-    def cssSelector(self):
-        """
-        Public method to get the CSS selector of the rule.
-        
-        @return CSS selector (string)
-        """
-        return self.__cssSelector
-    
-    def isDocument(self):
-        """
-        Public method to check, if this is a document rule.
-        
-        @return flag indicating a document rule (boolean)
-        """
-        return self.__document
-    
-    def isElementHiding(self):
-        """
-        Public method to check, if this is an element hiding rule.
-        
-        @return flag indicating an element hiding rule (boolean)
-        """
-        return self.__elemhide
-    
-    def isDomainRestricted(self):
-        """
-        Public method to check, if this rule is restricted by domain.
-        
-        @return flag indicating a domain restriction (boolean)
-        """
-        return self.__domainRestricted
-    
-    def isComment(self):
-        """
-        Public method to check, if this is a comment.
-        
-        @return flag indicating a comment (boolean)
-        """
-        return self.__filter.startswith("!")
-    
-    def isHeader(self):
-        """
-        Public method to check, if this is a header.
-        
-        @return flag indicating a header (boolean)
-        """
-        return self.__filter.startswith("[Adblock")
-    
-    def isSlow(self):
-        """
-        Public method to check, if this is a slow rule.
-        
-        @return flag indicating a slow rule (boolean)
-        """
-        return self.__useRegExp
-    
-    def isInternalDisabled(self):
-        """
-        Public method to check, if this rule was disabled internally.
-        
-        @return flag indicating an internally disabled rule (boolean)
-        """
-        return self.__internalDisabled
-    
-    def __convertPatternToRegExp(self, wildcardPattern):
-        """
-        Private method to convert a wildcard pattern to a regular expression.
-        
-        @param wildcardPattern string containing the wildcard pattern (string)
-        @return string containing a regular expression (string)
-        """
-        pattern = wildcardPattern
-        
-        # remove multiple wildcards
-        pattern = re.sub(r"\*+", "*", pattern)
-        # remove anchors following separator placeholder
-        pattern = re.sub(r"\^\|$", "^", pattern)
-        # remove leading wildcards
-        pattern = re.sub(r"^(\*)", "", pattern)
-        # remove trailing wildcards
-        pattern = re.sub(r"(\*)$", "", pattern)
-        # escape special symbols
-        pattern = re.sub(r"(\W)", r"\\\1", pattern)
-        # process extended anchor at expression start
-        pattern = re.sub(
-            r"^\\\|\\\|",
-            r"^[\w\-]+:\/+(?!\/)(?:[^\/]+\.)?", pattern)
-        # process separator placeholders
-        pattern = re.sub(r"\\\^", r"(?:[^\w\d\-.%]|$)", pattern)
-        # process anchor at expression start
-        pattern = re.sub(r"^\\\|", "^", pattern)
-        # process anchor at expression end
-        pattern = re.sub(r"\\\|$", "$", pattern)
-        # replace wildcards by .*
-        pattern = re.sub(r"\\\*", ".*", pattern)
-        
-        return pattern
--- a/eric6/Helpviewer/AdBlock/AdBlockSubscription.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,726 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the AdBlock subscription class.
-"""
-
-from __future__ import unicode_literals
-
-import os
-import re
-import hashlib
-import base64
-
-from PyQt5.QtCore import pyqtSignal, Qt, QObject, QByteArray, QDateTime, \
-    QUrl, QCryptographicHash, QFile, QIODevice, QTextStream, QDate, QTime
-from PyQt5.QtNetwork import QNetworkReply
-
-from E5Gui import E5MessageBox
-
-import Utilities
-import Preferences
-from Globals import qVersionTuple
-
-
-class AdBlockSubscription(QObject):
-    """
-    Class implementing the AdBlock subscription.
-    
-    @signal changed() emitted after the subscription has changed
-    @signal rulesChanged() emitted after the subscription's rules have changed
-    @signal enabledChanged(bool) emitted after the enabled state was changed
-    """
-    changed = pyqtSignal()
-    rulesChanged = pyqtSignal()
-    enabledChanged = pyqtSignal(bool)
-    
-    def __init__(self, url, custom, parent=None, default=False):
-        """
-        Constructor
-        
-        @param url AdBlock URL for the subscription (QUrl)
-        @param custom flag indicating a custom subscription (boolean)
-        @param parent reference to the parent object (QObject)
-        @param default flag indicating a default subscription (boolean)
-        """
-        super(AdBlockSubscription, self).__init__(parent)
-        
-        self.__custom = custom
-        self.__url = url.toEncoded()
-        self.__enabled = False
-        self.__downloading = None
-        self.__defaultSubscription = default
-        
-        self.__title = ""
-        self.__location = QByteArray()
-        self.__lastUpdate = QDateTime()
-        self.__requiresLocation = ""
-        self.__requiresTitle = ""
-        
-        self.__updatePeriod = 0     # update period in hours, 0 = use default
-        self.__remoteModified = QDateTime()
-        
-        self.__rules = []   # list containing all AdBlock rules
-        
-        self.__networkExceptionRules = []
-        self.__networkBlockRules = []
-        self.__domainRestrictedCssRules = []
-        self.__elementHidingRules = ""
-        self.__documentRules = []
-        self.__elemhideRules = []
-        
-        self.__checksumRe = re.compile(
-            r"""^\s*!\s*checksum[\s\-:]+([\w\+\/=]+).*\n""",
-            re.IGNORECASE | re.MULTILINE)
-        self.__expiresRe = re.compile(
-            r"""(?:expires:|expires after)\s*(\d+)\s*(hour|h)?""",
-            re.IGNORECASE)
-        self.__remoteModifiedRe = re.compile(
-            r"""!\s*(?:Last modified|Updated):\s*(\d{1,2})\s*"""
-            r"""(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s*"""
-            r"""(\d{2,4})\s*((\d{1,2}):(\d{2}))?""",
-            re.IGNORECASE)
-        
-        self.__monthNameToNumber = {
-            "Jan": 1,
-            "Feb": 2,
-            "Mar": 3,
-            "Apr": 4,
-            "May": 5,
-            "Jun": 6,
-            "Jul": 7,
-            "Aug": 8,
-            "Sep": 9,
-            "Oct": 10,
-            "Nov": 11,
-            "Dec": 12
-        }
-        
-        self.__parseUrl(url)
-    
-    def __parseUrl(self, url):
-        """
-        Private method to parse the AdBlock URL for the subscription.
-        
-        @param url AdBlock URL for the subscription (QUrl)
-        """
-        if url.scheme() != "abp":
-            return
-        
-        if url.path() != "subscribe":
-            return
-        
-        if qVersionTuple() >= (5, 0, 0):
-            from PyQt5.QtCore import QUrlQuery
-            urlQuery = QUrlQuery(url)
-            self.__title = QUrl.fromPercentEncoding(
-                QByteArray(urlQuery.queryItemValue("title").encode()))
-            self.__enabled = urlQuery.queryItemValue("enabled") != "false"
-            self.__location = QByteArray(QUrl.fromPercentEncoding(
-                QByteArray(urlQuery.queryItemValue("location").encode()))
-                .encode("utf-8"))
-            
-            # Check for required subscription
-            self.__requiresLocation = QUrl.fromPercentEncoding(
-                QByteArray(urlQuery.queryItemValue(
-                    "requiresLocation").encode()))
-            self.__requiresTitle = QUrl.fromPercentEncoding(
-                QByteArray(urlQuery.queryItemValue("requiresTitle").encode()))
-            if self.__requiresLocation and self.__requiresTitle:
-                import Helpviewer.HelpWindow
-                Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
-                    .loadRequiredSubscription(self.__requiresLocation,
-                                              self.__requiresTitle)
-            
-            lastUpdateString = urlQuery.queryItemValue("lastUpdate")
-            self.__lastUpdate = QDateTime.fromString(lastUpdateString,
-                                                     Qt.ISODate)
-        else:
-            self.__title = \
-                QUrl.fromPercentEncoding(url.encodedQueryItemValue(b"title"))
-            self.__enabled = QUrl.fromPercentEncoding(
-                url.encodedQueryItemValue(b"enabled")) != "false"
-            self.__location = QByteArray(QUrl.fromPercentEncoding(
-                url.encodedQueryItemValue(b"location")).encode("utf-8"))
-            
-            # Check for required subscription
-            self.__requiresLocation = QUrl.fromPercentEncoding(
-                url.encodedQueryItemValue(b"requiresLocation"))
-            self.__requiresTitle = QUrl.fromPercentEncoding(
-                url.encodedQueryItemValue(b"requiresTitle"))
-            if self.__requiresLocation and self.__requiresTitle:
-                import Helpviewer.HelpWindow
-                Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
-                    .loadRequiredSubscription(self.__requiresLocation,
-                                              self.__requiresTitle)
-            
-            lastUpdateByteArray = url.encodedQueryItemValue(b"lastUpdate")
-            lastUpdateString = QUrl.fromPercentEncoding(lastUpdateByteArray)
-            self.__lastUpdate = QDateTime.fromString(lastUpdateString,
-                                                     Qt.ISODate)
-        
-        self.__loadRules()
-    
-    def url(self):
-        """
-        Public method to generate the URL for this subscription.
-        
-        @return AdBlock URL for the subscription (QUrl)
-        """
-        url = QUrl()
-        url.setScheme("abp")
-        url.setPath("subscribe")
-        
-        queryItems = []
-        queryItems.append(("location", bytes(self.__location).decode()))
-        queryItems.append(("title", self.__title))
-        if self.__requiresLocation and self.__requiresTitle:
-            queryItems.append(("requiresLocation", self.__requiresLocation))
-            queryItems.append(("requiresTitle", self.__requiresTitle))
-        if not self.__enabled:
-            queryItems.append(("enabled", "false"))
-        if self.__lastUpdate.isValid():
-            queryItems.append(("lastUpdate",
-                               self.__lastUpdate.toString(Qt.ISODate)))
-        if qVersionTuple() >= (5, 0, 0):
-            from PyQt5.QtCore import QUrlQuery
-            query = QUrlQuery()
-            query.setQueryItems(queryItems)
-            url.setQuery(query)
-        else:
-            url.setQueryItems(queryItems)
-        return url
-    
-    def isEnabled(self):
-        """
-        Public method to check, if the subscription is enabled.
-        
-        @return flag indicating the enabled status (boolean)
-        """
-        return self.__enabled
-    
-    def setEnabled(self, enabled):
-        """
-        Public method to set the enabled status.
-        
-        @param enabled flag indicating the enabled status (boolean)
-        """
-        if self.__enabled == enabled:
-            return
-        
-        self.__enabled = enabled
-        self.enabledChanged.emit(enabled)
-    
-    def title(self):
-        """
-        Public method to get the subscription title.
-        
-        @return subscription title (string)
-        """
-        return self.__title
-    
-    def setTitle(self, title):
-        """
-        Public method to set the subscription title.
-        
-        @param title subscription title (string)
-        """
-        if self.__title == title:
-            return
-        
-        self.__title = title
-        self.changed.emit()
-    
-    def location(self):
-        """
-        Public method to get the subscription location.
-        
-        @return URL of the subscription location (QUrl)
-        """
-        return QUrl.fromEncoded(self.__location)
-    
-    def setLocation(self, url):
-        """
-        Public method to set the subscription location.
-        
-        @param url URL of the subscription location (QUrl)
-        """
-        if url == self.location():
-            return
-        
-        self.__location = url.toEncoded()
-        self.__lastUpdate = QDateTime()
-        self.changed.emit()
-    
-    def requiresLocation(self):
-        """
-        Public method to get the location of a required subscription.
-        
-        @return location of a required subscription (string)
-        """
-        return self.__requiresLocation
-    
-    def lastUpdate(self):
-        """
-        Public method to get the date and time of the last update.
-        
-        @return date and time of the last update (QDateTime)
-        """
-        return self.__lastUpdate
-    
-    def rulesFileName(self):
-        """
-        Public method to get the name of the rules file.
-        
-        @return name of the rules file (string)
-        """
-        if self.location().scheme() == "file":
-            return self.location().toLocalFile()
-        
-        if self.__location.isEmpty():
-            return ""
-        
-        sha1 = bytes(QCryptographicHash.hash(
-            self.__location, QCryptographicHash.Sha1).toHex()).decode()
-        dataDir = os.path.join(
-            Utilities.getConfigDir(), "browser", "subscriptions")
-        if not os.path.exists(dataDir):
-            os.makedirs(dataDir)
-        fileName = os.path.join(
-            dataDir, "adblock_subscription_{0}".format(sha1))
-        return fileName
-    
-    def __loadRules(self):
-        """
-        Private method to load the rules of the subscription.
-        """
-        fileName = self.rulesFileName()
-        f = QFile(fileName)
-        if f.exists():
-            if not f.open(QIODevice.ReadOnly):
-                E5MessageBox.warning(
-                    None,
-                    self.tr("Load subscription rules"),
-                    self.tr(
-                        """Unable to open adblock file '{0}' for reading.""")
-                    .format(fileName))
-            else:
-                textStream = QTextStream(f)
-                header = textStream.readLine(1024)
-                if not header.startswith("[Adblock"):
-                    E5MessageBox.warning(
-                        None,
-                        self.tr("Load subscription rules"),
-                        self.tr("""AdBlock file '{0}' does not start"""
-                                """ with [Adblock.""")
-                        .format(fileName))
-                    f.close()
-                    f.remove()
-                    self.__lastUpdate = QDateTime()
-                else:
-                    from .AdBlockRule import AdBlockRule
-                    
-                    self.__updatePeriod = 0
-                    self.__remoteModified = QDateTime()
-                    self.__rules = []
-                    self.__rules.append(AdBlockRule(header, self))
-                    while not textStream.atEnd():
-                        line = textStream.readLine()
-                        self.__rules.append(AdBlockRule(line, self))
-                        expires = self.__expiresRe.search(line)
-                        if expires:
-                            period, kind = expires.groups()
-                            if kind:
-                                # hours
-                                self.__updatePeriod = int(period)
-                            else:
-                                # days
-                                self.__updatePeriod = int(period) * 24
-                        remoteModified = self.__remoteModifiedRe.search(line)
-                        if remoteModified:
-                            day, month, year, time, hour, minute = \
-                                remoteModified.groups()
-                            self.__remoteModified.setDate(
-                                QDate(int(year),
-                                      self.__monthNameToNumber[month],
-                                      int(day))
-                            )
-                            if time:
-                                self.__remoteModified.setTime(
-                                    QTime(int(hour), int(minute)))
-                    self.__populateCache()
-                    self.changed.emit()
-        elif not fileName.endswith("_custom"):
-            self.__lastUpdate = QDateTime()
-        
-        self.checkForUpdate()
-    
-    def checkForUpdate(self):
-        """
-        Public method to check for an update.
-        """
-        if self.__updatePeriod:
-            updatePeriod = self.__updatePeriod
-        else:
-            updatePeriod = Preferences.getHelp("AdBlockUpdatePeriod") * 24
-        if not self.__lastUpdate.isValid() or \
-           (self.__remoteModified.isValid() and
-            self.__remoteModified.addSecs(updatePeriod * 3600) <
-                QDateTime.currentDateTime()) or \
-           self.__lastUpdate.addSecs(updatePeriod * 3600) < \
-                QDateTime.currentDateTime():
-            self.updateNow()
-    
-    def updateNow(self):
-        """
-        Public method to update the subscription immediately.
-        """
-        if self.__downloading is not None:
-            return
-        
-        if not self.location().isValid():
-            return
-        
-        if self.location().scheme() == "file":
-            self.__lastUpdate = QDateTime.currentDateTime()
-            self.__loadRules()
-            return
-        
-        import Helpviewer.HelpWindow
-        from Helpviewer.Network.FollowRedirectReply import FollowRedirectReply
-        self.__downloading = FollowRedirectReply(
-            self.location(),
-            Helpviewer.HelpWindow.HelpWindow.networkAccessManager())
-        self.__downloading.finished.connect(
-            lambda: self.__rulesDownloaded(self.__downloading))
-    
-    def __rulesDownloaded(self, reply):
-        """
-        Private slot to deal with the downloaded rules.
-        
-        @param reply reference to the network reply
-        @type QNetworkReply
-        """
-        response = reply.readAll()
-        reply.close()
-        self.__downloading = None
-        
-        if reply.error() != QNetworkReply.NoError:
-            if not self.__defaultSubscription:
-                # don't show error if we try to load the default
-                E5MessageBox.warning(
-                    None,
-                    self.tr("Downloading subscription rules"),
-                    self.tr(
-                        """<p>Subscription rules could not be"""
-                        """ downloaded.</p><p>Error: {0}</p>""")
-                    .format(reply.errorString()))
-            else:
-                # reset after first download attempt
-                self.__defaultSubscription = False
-            return
-        
-        if response.isEmpty():
-            E5MessageBox.warning(
-                None,
-                self.tr("Downloading subscription rules"),
-                self.tr("""Got empty subscription rules."""))
-            return
-        
-        fileName = self.rulesFileName()
-        QFile.remove(fileName)
-        f = QFile(fileName)
-        if not f.open(QIODevice.ReadWrite):
-            E5MessageBox.warning(
-                None,
-                self.tr("Downloading subscription rules"),
-                self.tr(
-                    """Unable to open adblock file '{0}' for writing.""")
-                .file(fileName))
-            return
-        f.write(response)
-        f.close()
-        self.__lastUpdate = QDateTime.currentDateTime()
-        if self.__validateCheckSum(fileName):
-            self.__loadRules()
-        else:
-            QFile.remove(fileName)
-        self.__downloading = None
-        reply.deleteLater()
-    
-    def __validateCheckSum(self, fileName):
-        """
-        Private method to check the subscription file's checksum.
-        
-        @param fileName name of the file containing the subscription (string)
-        @return flag indicating a valid file (boolean). A file is considered
-            valid, if the checksum is OK or the file does not contain a
-            checksum (i.e. cannot be checked).
-        """
-        try:
-            f = open(fileName, "r", encoding="utf-8")
-            data = f.read()
-            f.close()
-        except (IOError, OSError):
-            return False
-        
-        match = re.search(self.__checksumRe, data)
-        if match:
-            expectedChecksum = match.group(1)
-        else:
-            # consider it as valid
-            return True
-        
-        # normalize the data
-        data = re.sub(r"\r", "", data)              # normalize eol
-        data = re.sub(r"\n+", "\n", data)           # remove empty lines
-        data = re.sub(self.__checksumRe, "", data)  # remove checksum line
-        
-        # calculate checksum
-        md5 = hashlib.md5()
-        md5.update(data.encode("utf-8"))
-        calculatedChecksum = base64.b64encode(md5.digest()).decode()\
-            .rstrip("=")
-        if calculatedChecksum == expectedChecksum:
-            return True
-        else:
-            res = E5MessageBox.yesNo(
-                None,
-                self.tr("Downloading subscription rules"),
-                self.tr(
-                    """<p>AdBlock subscription <b>{0}</b> has a wrong"""
-                    """ checksum.<br/>"""
-                    """Found: {1}<br/>"""
-                    """Calculated: {2}<br/>"""
-                    """Use it anyway?</p>""")
-                .format(self.__title, expectedChecksum,
-                        calculatedChecksum))
-            return res
-    
-    def saveRules(self):
-        """
-        Public method to save the subscription rules.
-        """
-        fileName = self.rulesFileName()
-        if not fileName:
-            return
-        
-        f = QFile(fileName)
-        if not f.open(QIODevice.ReadWrite | QIODevice.Truncate):
-            E5MessageBox.warning(
-                None,
-                self.tr("Saving subscription rules"),
-                self.tr(
-                    """Unable to open adblock file '{0}' for writing.""")
-                .format(fileName))
-            return
-        
-        textStream = QTextStream(f)
-        if not self.__rules or not self.__rules[0].isHeader():
-            textStream << "[Adblock Plus 1.1.1]\n"
-        for rule in self.__rules:
-            textStream << rule.filter() << "\n"
-    
-    def match(self, req, urlDomain, urlString):
-        """
-        Public method to check the subscription for a matching rule.
-        
-        @param req reference to the network request (QNetworkRequest)
-        @param urlDomain domain of the URL (string)
-        @param urlString URL (string)
-        @return reference to the rule object or None (AdBlockRule)
-        """
-        for rule in self.__networkExceptionRules:
-            if rule.networkMatch(req, urlDomain, urlString):
-                return None
-        
-        for rule in self.__networkBlockRules:
-            if rule.networkMatch(req, urlDomain, urlString):
-                return rule
-        
-        return None
-    
-    def adBlockDisabledForUrl(self, url):
-        """
-        Public method to check, if AdBlock is disabled for the given URL.
-        
-        @param url URL to check (QUrl)
-        @return flag indicating disabled state (boolean)
-        """
-        for rule in self.__documentRules:
-            if rule.urlMatch(url):
-                return True
-        
-        return False
-    
-    def elemHideDisabledForUrl(self, url):
-        """
-        Public method to check, if element hiding is disabled for the given
-        URL.
-        
-        @param url URL to check (QUrl)
-        @return flag indicating disabled state (boolean)
-        """
-        if self.adBlockDisabledForUrl(url):
-            return True
-        
-        for rule in self.__elemhideRules:
-            if rule.urlMatch(url):
-                return True
-        
-        return False
-    
-    def elementHidingRules(self):
-        """
-        Public method to get the element hiding rules.
-        
-        @return element hiding rules (string)
-        """
-        return self.__elementHidingRules
-    
-    def elementHidingRulesForDomain(self, domain):
-        """
-        Public method to get the element hiding rules for the given domain.
-        
-        @param domain domain name (string)
-        @return element hiding rules (string)
-        """
-        rules = ""
-        
-        for rule in self.__domainRestrictedCssRules:
-            if rule.matchDomain(domain):
-                rules += rule.cssSelector() + ","
-        
-        return rules
-    
-    def rule(self, offset):
-        """
-        Public method to get a specific rule.
-        
-        @param offset offset of the rule (integer)
-        @return requested rule (AdBlockRule)
-        """
-        if offset >= len(self.__rules):
-            return None
-        
-        return self.__rules[offset]
-    
-    def allRules(self):
-        """
-        Public method to get the list of rules.
-        
-        @return list of rules (list of AdBlockRule)
-        """
-        return self.__rules[:]
-    
-    def addRule(self, rule):
-        """
-        Public method to add a rule.
-        
-        @param rule reference to the rule to add (AdBlockRule)
-        @return offset of the rule (integer)
-        """
-        self.__rules.append(rule)
-        self.__populateCache()
-        self.rulesChanged.emit()
-        
-        return len(self.__rules) - 1
-    
-    def removeRule(self, offset):
-        """
-        Public method to remove a rule given the offset.
-        
-        @param offset offset of the rule to remove (integer)
-        """
-        if offset < 0 or offset > len(self.__rules):
-            return
-        
-        del self.__rules[offset]
-        self.__populateCache()
-        self.rulesChanged.emit()
-    
-    def replaceRule(self, rule, offset):
-        """
-        Public method to replace a rule given the offset.
-        
-        @param rule reference to the rule to set (AdBlockRule)
-        @param offset offset of the rule to remove (integer)
-        @return requested rule (AdBlockRule)
-        """
-        if offset >= len(self.__rules):
-            return None
-        
-        self.__rules[offset] = rule
-        self.__populateCache()
-        self.rulesChanged.emit()
-        
-        return self.__rules[offset]
-    
-    def __populateCache(self):
-        """
-        Private method to populate the various rule caches.
-        """
-        self.__networkExceptionRules = []
-        self.__networkBlockRules = []
-        self.__domainRestrictedCssRules = []
-        self.__elementHidingRules = ""
-        self.__documentRules = []
-        self.__elemhideRules = []
-        
-        for rule in self.__rules:
-            if not rule.isEnabled():
-                continue
-            
-            if rule.isCSSRule():
-                if rule.isDomainRestricted():
-                    self.__domainRestrictedCssRules.append(rule)
-                else:
-                    self.__elementHidingRules += rule.cssSelector() + ","
-            elif rule.isDocument():
-                self.__documentRules.append(rule)
-            elif rule.isElementHiding():
-                self.__elemhideRules.append(rule)
-            elif rule.isException():
-                self.__networkExceptionRules.append(rule)
-            else:
-                self.__networkBlockRules.append(rule)
-    
-    def canEditRules(self):
-        """
-        Public method to check, if rules can be edited.
-        
-        @return flag indicating rules may be edited (boolean)
-        """
-        return self.__custom
-    
-    def canBeRemoved(self):
-        """
-        Public method to check, if the subscription can be removed.
-        
-        @return flag indicating removal is allowed (boolean)
-        """
-        return not self.__custom and not self.__defaultSubscription
-    
-    def setRuleEnabled(self, offset, enabled):
-        """
-        Public method to enable a specific rule.
-        
-        @param offset offset of the rule (integer)
-        @param enabled new enabled state (boolean)
-        @return reference to the changed rule (AdBlockRule)
-        """
-        if offset >= len(self.__rules):
-            return None
-        
-        rule = self.__rules[offset]
-        rule.setEnabled(enabled)
-        if rule.isCSSRule():
-            import Helpviewer.HelpWindow
-            self.__populateCache()
-            Helpviewer.HelpWindow.HelpWindow.mainWindow()\
-                .reloadUserStyleSheet()
-        
-        return rule
--- a/eric6/Helpviewer/AdBlock/AdBlockTreeWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,262 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a tree widget for the AdBlock configuration dialog.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt
-from PyQt5.QtGui import QFont, QColor
-from PyQt5.QtWidgets import QAbstractItemView, QTreeWidgetItem, QInputDialog, \
-    QLineEdit, QMenu, QApplication
-
-from E5Gui.E5TreeWidget import E5TreeWidget
-
-
-class AdBlockTreeWidget(E5TreeWidget):
-    """
-    Class implementing a tree widget for the AdBlock configuration dialog.
-    """
-    def __init__(self, subscription, parent=None):
-        """
-        Constructor
-        
-        @param subscription reference to the subscription (AdBlockSubscription)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(AdBlockTreeWidget, self).__init__(parent)
-        
-        self.__subscription = subscription
-        self.__topItem = None
-        self.__ruleToBeSelected = ""
-        self.__itemChangingBlock = False
-        
-        self.setContextMenuPolicy(Qt.CustomContextMenu)
-        self.setDefaultItemShowMode(E5TreeWidget.ItemsExpanded)
-        self.setHeaderHidden(True)
-        self.setAlternatingRowColors(True)
-        
-        self.customContextMenuRequested.connect(self.__contextMenuRequested)
-        self.itemChanged.connect(self.__itemChanged)
-        self.__subscription.changed.connect(self.__subscriptionChanged)
-        self.__subscription.rulesChanged.connect(self.__subscriptionChanged)
-    
-    def subscription(self):
-        """
-        Public method to get a reference to the subscription.
-        
-        @return reference to the subscription (AdBlockSubscription)
-        """
-        return self.__subscription
-    
-    def showRule(self, rule):
-        """
-        Public method to highlight the given rule.
-        
-        @param rule AdBlock rule to be shown (AdBlockRule)
-        """
-        if rule:
-            self.__ruleToBeSelected = rule.filter()
-        if not self.__topItem:
-            return
-        if self.__ruleToBeSelected:
-            items = self.findItems(self.__ruleToBeSelected, Qt.MatchRecursive)
-            if items:
-                item = items[0]
-                self.setCurrentItem(item)
-                self.scrollToItem(item, QAbstractItemView.PositionAtCenter)
-            
-            self.__ruleToBeSelected = ""
-    
-    def refresh(self):
-        """
-        Public method to refresh the tree.
-        """
-        QApplication.setOverrideCursor(Qt.WaitCursor)
-        self.__itemChangingBlock = True
-        self.clear()
-        
-        boldFont = QFont()
-        boldFont.setBold(True)
-        
-        self.__topItem = QTreeWidgetItem(self)
-        self.__topItem.setText(0, self.__subscription.title())
-        self.__topItem.setFont(0, boldFont)
-        self.addTopLevelItem(self.__topItem)
-        
-        allRules = self.__subscription.allRules()
-        
-        index = 0
-        for rule in allRules:
-            item = QTreeWidgetItem(self.__topItem)
-            item.setText(0, rule.filter())
-            item.setData(0, Qt.UserRole, index)
-            if self.__subscription.canEditRules():
-                item.setFlags(item.flags() | Qt.ItemIsEditable)
-            self.__adjustItemFeatures(item, rule)
-            index += 1
-        
-        self.expandAll()
-        self.showRule(None)
-        self.__itemChangingBlock = False
-        QApplication.restoreOverrideCursor()
-        QApplication.processEvents()
-    
-    def addRule(self, filterRule=""):
-        """
-        Public slot to add a new rule.
-        
-        @param filterRule filter to be added (string)
-        """
-        if not self.__subscription.canEditRules():
-            return
-        
-        if not filterRule:
-            filterRule, ok = QInputDialog.getText(
-                self,
-                self.tr("Add Custom Rule"),
-                self.tr("Write your rule here:"),
-                QLineEdit.Normal)
-            if not ok or filterRule == "":
-                return
-        
-        from .AdBlockRule import AdBlockRule
-        rule = AdBlockRule(filterRule, self.__subscription)
-        self.__subscription.addRule(rule)
-    
-    def removeRule(self):
-        """
-        Public slot to remove the current rule.
-        """
-        item = self.currentItem()
-        if item is None or \
-           not self.__subscription.canEditRules() or \
-           item == self.__topItem:
-            return
-        
-        offset = item.data(0, Qt.UserRole)
-        self.__subscription.removeRule(offset)
-        self.deleteItem(item)
-    
-    def __contextMenuRequested(self, pos):
-        """
-        Private slot to show the context menu.
-        
-        @param pos position for the menu (QPoint)
-        """
-        if not self.__subscription.canEditRules():
-            return
-        
-        item = self.itemAt(pos)
-        if item is None:
-            return
-        
-        menu = QMenu()
-        menu.addAction(self.tr("Add Rule"), self.addRule)
-        menu.addSeparator()
-        act = menu.addAction(self.tr("Remove Rule"), self.removeRule)
-        if item.parent() is None:
-            act.setDisabled(True)
-        
-        menu.exec_(self.viewport().mapToGlobal(pos))
-    
-    def __itemChanged(self, itm):
-        """
-        Private slot to handle the change of an item.
-        
-        @param itm changed item (QTreeWidgetItem)
-        """
-        if itm is None or self.__itemChangingBlock:
-            return
-        
-        self.__itemChangingBlock = True
-        
-        offset = itm.data(0, Qt.UserRole)
-        oldRule = self.__subscription.rule(offset)
-        
-        if itm.checkState(0) == Qt.Unchecked and oldRule.isEnabled():
-            # Disable rule
-            rule = self.__subscription.setRuleEnabled(offset, False)
-            self.__adjustItemFeatures(itm, rule)
-        elif itm.checkState(0) == Qt.Checked and not oldRule.isEnabled():
-            # Enable rule
-            rule = self.__subscription.setRuleEnabled(offset, True)
-            self.__adjustItemFeatures(itm, rule)
-        elif self.__subscription.canEditRules():
-            from .AdBlockRule import AdBlockRule
-            # Custom rule has been changed
-            rule = self.__subscription.replaceRule(
-                AdBlockRule(itm.text(0), self.__subscription), offset)
-            self.__adjustItemFeatures(itm, rule)
-        
-        self.__itemChangingBlock = False
-    
-    def __copyFilter(self):
-        """
-        Private slot to copy the current filter to the clipboard.
-        """
-        item = self.currentItem()
-        if item is not None:
-            QApplication.clipboard().setText(item.text(0))
-    
-    def __subscriptionChanged(self):
-        """
-        Private slot handling a subscription change.
-        """
-        self.refresh()
-        
-        self.__itemChangingBlock = True
-        self.__topItem.setText(
-            0, self.tr("{0} (recently updated)").format(
-                self.__subscription.title()))
-        self.__itemChangingBlock = False
-    
-    def __adjustItemFeatures(self, itm, rule):
-        """
-        Private method to adjust an item.
-        
-        @param itm item to be adjusted (QTreeWidgetItem)
-        @param rule rule for the adjustment (AdBlockRule)
-        """
-        if not rule.isEnabled():
-            font = QFont()
-            font.setItalic(True)
-            itm.setForeground(0, QColor(Qt.gray))
-            
-            if not rule.isComment() and not rule.isHeader():
-                itm.setFlags(itm.flags() | Qt.ItemIsUserCheckable)
-                itm.setCheckState(0, Qt.Unchecked)
-                itm.setFont(0, font)
-            
-            return
-        
-        itm.setFlags(itm.flags() | Qt.ItemIsUserCheckable)
-        itm.setCheckState(0, Qt.Checked)
-        
-        if rule.isCSSRule():
-            itm.setForeground(0, QColor(Qt.darkBlue))
-            itm.setFont(0, QFont())
-        elif rule.isException():
-            itm.setForeground(0, QColor(Qt.darkGreen))
-            itm.setFont(0, QFont())
-        else:
-            itm.setForeground(0, QColor())
-            itm.setFont(0, QFont())
-    
-    def keyPressEvent(self, evt):
-        """
-        Protected method handling key presses.
-        
-        @param evt key press event (QKeyEvent)
-        """
-        if evt.key() == Qt.Key_C and \
-           evt.modifiers() & Qt.ControlModifier:
-            self.__copyFilter()
-        elif evt.key() == Qt.Key_Delete:
-            self.removeRule()
-        else:
-            super(AdBlockTreeWidget, self).keyPressEvent(evt)
--- a/eric6/Helpviewer/AdBlock/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the advertisments blocker functionality.
-"""
--- a/eric6/Helpviewer/Bookmarks/AddBookmarkDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,250 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to add a bookmark or a bookmark folder.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QModelIndex, QSortFilterProxyModel
-from PyQt5.QtWidgets import QDialog, QTreeView
-
-from .Ui_AddBookmarkDialog import Ui_AddBookmarkDialog
-
-
-class AddBookmarkProxyModel(QSortFilterProxyModel):
-    """
-    Class implementing a proxy model used by the AddBookmarkDialog dialog.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(AddBookmarkProxyModel, self).__init__(parent)
-    
-    def columnCount(self, parent):
-        """
-        Public method to return the number of columns.
-        
-        @param parent index of the parent (QModelIndex)
-        @return number of columns (integer)
-        """
-        return min(1, QSortFilterProxyModel.columnCount(self, parent))
-    
-    def filterAcceptsRow(self, sourceRow, sourceParent):
-        """
-        Public method to determine, if the row is acceptable.
-        
-        @param sourceRow row number in the source model (integer)
-        @param sourceParent index of the source item (QModelIndex)
-        @return flag indicating acceptance (boolean)
-        """
-        idx = self.sourceModel().index(sourceRow, 0, sourceParent)
-        return self.sourceModel().hasChildren(idx)
-    
-    def filterAcceptsColumn(self, sourceColumn, sourceParent):
-        """
-        Public method to determine, if the column is acceptable.
-        
-        @param sourceColumn column number in the source model (integer)
-        @param sourceParent index of the source item (QModelIndex)
-        @return flag indicating acceptance (boolean)
-        """
-        return sourceColumn == 0
-    
-    def hasChildren(self, parent=None):
-        """
-        Public method to check, if a parent node has some children.
-        
-        @param parent index of the parent node (QModelIndex)
-        @return flag indicating the presence of children (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        sindex = self.mapToSource(parent)
-        return self.sourceModel().hasChildren(sindex)
-
-
-class AddBookmarkDialog(QDialog, Ui_AddBookmarkDialog):
-    """
-    Class implementing a dialog to add a bookmark or a bookmark folder.
-    """
-    def __init__(self, parent=None, bookmarksManager=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        @param bookmarksManager reference to the bookmarks manager
-            object (BookmarksManager)
-        """
-        super(AddBookmarkDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.__bookmarksManager = bookmarksManager
-        self.__addedNode = None
-        self.__addFolder = False
-        
-        if self.__bookmarksManager is None:
-            import Helpviewer.HelpWindow
-            self.__bookmarksManager = \
-                Helpviewer.HelpWindow.HelpWindow.bookmarksManager()
-        
-        self.__proxyModel = AddBookmarkProxyModel(self)
-        model = self.__bookmarksManager.bookmarksModel()
-        self.__proxyModel.setSourceModel(model)
-        
-        self.__treeView = QTreeView(self)
-        self.__treeView.setModel(self.__proxyModel)
-        self.__treeView.expandAll()
-        self.__treeView.header().setStretchLastSection(True)
-        self.__treeView.header().hide()
-        self.__treeView.setItemsExpandable(False)
-        self.__treeView.setRootIsDecorated(False)
-        self.__treeView.setIndentation(10)
-        self.__treeView.show()
-        
-        self.locationCombo.setModel(self.__proxyModel)
-        self.locationCombo.setView(self.__treeView)
-        
-        self.addressEdit.setInactiveText(self.tr("Url"))
-        self.nameEdit.setInactiveText(self.tr("Title"))
-        
-        self.resize(self.sizeHint())
-    
-    def setUrl(self, url):
-        """
-        Public slot to set the URL of the new bookmark.
-        
-        @param url URL of the bookmark (string)
-        """
-        self.addressEdit.setText(url)
-        self.resize(self.sizeHint())
-    
-    def url(self):
-        """
-        Public method to get the URL of the bookmark.
-        
-        @return URL of the bookmark (string)
-        """
-        return self.addressEdit.text()
-    
-    def setTitle(self, title):
-        """
-        Public method to set the title of the new bookmark.
-        
-        @param title title of the bookmark (string)
-        """
-        self.nameEdit.setText(title)
-    
-    def title(self):
-        """
-        Public method to get the title of the bookmark.
-        
-        @return title of the bookmark (string)
-        """
-        return self.nameEdit.text()
-    
-    def setDescription(self, description):
-        """
-        Public method to set the description of the new bookmark.
-        
-        @param description description of the bookamrk (string)
-        """
-        self.descriptionEdit.setPlainText(description)
-    
-    def description(self):
-        """
-        Public method to get the description of the bookmark.
-        
-        @return description of the bookamrk (string)
-        """
-        return self.descriptionEdit.toPlainText()
-    
-    def setCurrentIndex(self, idx):
-        """
-        Public method to set the current index.
-        
-        @param idx current index to be set (QModelIndex)
-        """
-        proxyIndex = self.__proxyModel.mapFromSource(idx)
-        self.__treeView.setCurrentIndex(proxyIndex)
-        self.locationCombo.setCurrentIndex(proxyIndex.row())
-    
-    def currentIndex(self):
-        """
-        Public method to get the current index.
-        
-        @return current index (QModelIndex)
-        """
-        idx = self.locationCombo.view().currentIndex()
-        idx = self.__proxyModel.mapToSource(idx)
-        return idx
-    
-    def setFolder(self, folder):
-        """
-        Public method to set the dialog to "Add Folder" mode.
-        
-        @param folder flag indicating "Add Folder" mode (boolean)
-        """
-        self.__addFolder = folder
-        
-        if folder:
-            self.setWindowTitle(self.tr("Add Folder"))
-            self.addressEdit.setVisible(False)
-        else:
-            self.setWindowTitle(self.tr("Add Bookmark"))
-            self.addressEdit.setVisible(True)
-        
-        self.resize(self.sizeHint())
-    
-    def isFolder(self):
-        """
-        Public method to test, if the dialog is in "Add Folder" mode.
-        
-        @return flag indicating "Add Folder" mode (boolean)
-        """
-        return self.__addFolder
-    
-    def addedNode(self):
-        """
-        Public method to get a reference to the added bookmark node.
-        
-        @return reference to the added bookmark node (BookmarkNode)
-        """
-        return self.__addedNode
-    
-    def accept(self):
-        """
-        Public slot handling the acceptance of the dialog.
-        """
-        if (not self.__addFolder and not self.addressEdit.text()) or \
-           not self.nameEdit.text():
-            super(AddBookmarkDialog, self).accept()
-            return
-        
-        from .BookmarkNode import BookmarkNode
-        
-        idx = self.currentIndex()
-        if not idx.isValid():
-            idx = self.__bookmarksManager.bookmarksModel().index(0, 0)
-        parent = self.__bookmarksManager.bookmarksModel().node(idx)
-        
-        if self.__addFolder:
-            type_ = BookmarkNode.Folder
-        else:
-            type_ = BookmarkNode.Bookmark
-        bookmark = BookmarkNode(type_)
-        bookmark.title = self.nameEdit.text()
-        if not self.__addFolder:
-            bookmark.url = self.addressEdit.text()
-        bookmark.desc = self.descriptionEdit.toPlainText()
-        
-        self.__bookmarksManager.addBookmark(parent, bookmark)
-        self.__addedNode = bookmark
-        
-        super(AddBookmarkDialog, self).accept()
--- a/eric6/Helpviewer/Bookmarks/AddBookmarkDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,148 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>AddBookmarkDialog</class>
- <widget class="QDialog" name="AddBookmarkDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>230</height>
-   </rect>
-  </property>
-  <property name="minimumSize">
-   <size>
-    <width>500</width>
-    <height>0</height>
-   </size>
-  </property>
-  <property name="maximumSize">
-   <size>
-    <width>500</width>
-    <height>250</height>
-   </size>
-  </property>
-  <property name="windowTitle">
-   <string>Add Bookmark</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="0">
-    <widget class="QLabel" name="label_2">
-     <property name="text">
-      <string>Name:</string>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="1">
-    <widget class="E5LineEdit" name="nameEdit">
-     <property name="toolTip">
-      <string>Enter the name</string>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="0">
-    <widget class="QLabel" name="label_3">
-     <property name="text">
-      <string>Address:</string>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="1">
-    <widget class="E5LineEdit" name="addressEdit">
-     <property name="toolTip">
-      <string>Enter the address</string>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="0">
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>Description:</string>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="1">
-    <widget class="QPlainTextEdit" name="descriptionEdit">
-     <property name="toolTip">
-      <string>Enter a description</string>
-     </property>
-    </widget>
-   </item>
-   <item row="3" column="0">
-    <widget class="QLabel" name="label_4">
-     <property name="text">
-      <string>Folder:</string>
-     </property>
-    </widget>
-   </item>
-   <item row="3" column="1">
-    <widget class="QComboBox" name="locationCombo"/>
-   </item>
-   <item row="4" column="0" colspan="2">
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5LineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>nameEdit</tabstop>
-  <tabstop>addressEdit</tabstop>
-  <tabstop>descriptionEdit</tabstop>
-  <tabstop>locationCombo</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>AddBookmarkDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>AddBookmarkDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/Bookmarks/BookmarkNode.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the bookmark node.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QDateTime
-
-
-class BookmarkNode(object):
-    """
-    Class implementing the bookmark node type.
-    """
-    # possible bookmark node types
-    Root = 0
-    Folder = 1
-    Bookmark = 2
-    Separator = 3
-    
-    # possible timestamp types
-    TsAdded = 0
-    TsModified = 1
-    TsVisited = 2
-    
-    def __init__(self, type_=Root, parent=None):
-        """
-        Constructor
-        
-        @param type_ type of the bookmark node (BookmarkNode.Type)
-        @param parent reference to the parent node (BookmarkNode)
-        """
-        self.url = ""
-        self.title = ""
-        self.desc = ""
-        self.expanded = False
-        self.added = QDateTime()
-        self.modified = QDateTime()
-        self.visited = QDateTime()
-        
-        self._children = []
-        self._parent = parent
-        self._type = type_
-        
-        if parent is not None:
-            parent.add(self)
-    
-    def type(self):
-        """
-        Public method to get the bookmark's type.
-        
-        @return bookmark type (BookmarkNode.Type)
-        """
-        return self._type
-    
-    def setType(self, type_):
-        """
-        Public method to set the bookmark's type.
-        
-        @param type_ type of the bookmark node (BookmarkNode.Type)
-        """
-        self._type = type_
-    
-    def children(self):
-        """
-        Public method to get the list of child nodes.
-        
-        @return list of all child nodes (list of BookmarkNode)
-        """
-        return self._children[:]
-    
-    def parent(self):
-        """
-        Public method to get a reference to the parent node.
-        
-        @return reference to the parent node (BookmarkNode)
-        """
-        return self._parent
-    
-    def add(self, child, offset=-1):
-        """
-        Public method to add/insert a child node.
-        
-        @param child reference to the node to add (BookmarkNode)
-        @param offset position where to insert child (integer, -1 = append)
-        """
-        if child._type == BookmarkNode.Root:
-            return
-        
-        if child._parent is not None:
-            child._parent.remove(child)
-        
-        child._parent = self
-        if offset == -1:
-            self._children.append(child)
-        else:
-            self._children.insert(offset, child)
-    
-    def remove(self, child):
-        """
-        Public method to remove a child node.
-        
-        @param child reference to the child node (BookmarkNode)
-        """
-        child._parent = None
-        if child in self._children:
-            self._children.remove(child)
--- a/eric6/Helpviewer/Bookmarks/BookmarkPropertiesDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to show and edit bookmark properties.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QDialog
-
-from .Ui_BookmarkPropertiesDialog import Ui_BookmarkPropertiesDialog
-
-
-class BookmarkPropertiesDialog(QDialog, Ui_BookmarkPropertiesDialog):
-    """
-    Class implementing a dialog to show and edit bookmark properties.
-    """
-    def __init__(self, node, parent=None):
-        """
-        Constructor
-        
-        @param node reference to the bookmark (BookmarkNode)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(BookmarkPropertiesDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        from .BookmarkNode import BookmarkNode
-        self.__node = node
-        if self.__node.type() == BookmarkNode.Folder:
-            self.addressLabel.hide()
-            self.addressEdit.hide()
-        
-        self.nameEdit.setText(self.__node.title)
-        self.descriptionEdit.setPlainText(self.__node.desc)
-        self.addressEdit.setText(self.__node.url)
-    
-    def accept(self):
-        """
-        Public slot handling the acceptance of the dialog.
-        """
-        from .BookmarkNode import BookmarkNode
-        
-        if (self.__node.type() == BookmarkNode.Bookmark and
-            not self.addressEdit.text()) or \
-           not self.nameEdit.text():
-            super(BookmarkPropertiesDialog, self).accept()
-            return
-        
-        import Helpviewer.HelpWindow
-        bookmarksManager = Helpviewer.HelpWindow.HelpWindow.bookmarksManager()
-        title = self.nameEdit.text()
-        if title != self.__node.title:
-            bookmarksManager.setTitle(self.__node, title)
-        if self.__node.type() == BookmarkNode.Bookmark:
-            url = self.addressEdit.text()
-            if url != self.__node.url:
-                bookmarksManager.setUrl(self.__node, url)
-        description = self.descriptionEdit.toPlainText()
-        if description != self.__node.desc:
-            self.__node.desc = description
-            bookmarksManager.setNodeChanged(self.__node)
-        
-        super(BookmarkPropertiesDialog, self).accept()
--- a/eric6/Helpviewer/Bookmarks/BookmarkPropertiesDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>BookmarkPropertiesDialog</class>
- <widget class="QDialog" name="BookmarkPropertiesDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>221</height>
-   </rect>
-  </property>
-  <property name="minimumSize">
-   <size>
-    <width>500</width>
-    <height>0</height>
-   </size>
-  </property>
-  <property name="maximumSize">
-   <size>
-    <width>500</width>
-    <height>250</height>
-   </size>
-  </property>
-  <property name="windowTitle">
-   <string>Bookmark Properties</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="0">
-    <widget class="QLabel" name="label_2">
-     <property name="text">
-      <string>Name:</string>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="1">
-    <widget class="E5LineEdit" name="nameEdit">
-     <property name="toolTip">
-      <string>Enter the name</string>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="0">
-    <widget class="QLabel" name="addressLabel">
-     <property name="text">
-      <string>Address:</string>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="1">
-    <widget class="E5LineEdit" name="addressEdit">
-     <property name="toolTip">
-      <string>Enter the address</string>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="0">
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>Description:</string>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="1">
-    <widget class="QPlainTextEdit" name="descriptionEdit">
-     <property name="toolTip">
-      <string>Enter a description</string>
-     </property>
-    </widget>
-   </item>
-   <item row="3" column="0" colspan="2">
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5LineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>nameEdit</tabstop>
-  <tabstop>addressEdit</tabstop>
-  <tabstop>descriptionEdit</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>BookmarkPropertiesDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>BookmarkPropertiesDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/Bookmarks/BookmarksDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to manage bookmarks.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSignal, Qt, QUrl, QModelIndex
-from PyQt5.QtGui import QFontMetrics, QCursor
-from PyQt5.QtWidgets import QDialog, QMenu, QApplication
-
-from E5Gui.E5TreeSortFilterProxyModel import E5TreeSortFilterProxyModel
-
-from .Ui_BookmarksDialog import Ui_BookmarksDialog
-
-
-class BookmarksDialog(QDialog, Ui_BookmarksDialog):
-    """
-    Class implementing a dialog to manage bookmarks.
-    
-    @signal openUrl(QUrl, str) emitted to open a URL in the current tab
-    @signal newUrl(QUrl, str) emitted to open a URL in a new tab
-    """
-    openUrl = pyqtSignal(QUrl, str)
-    newUrl = pyqtSignal(QUrl, str)
-    
-    def __init__(self, parent=None, manager=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget
-        @param manager reference to the bookmarks manager object
-            (BookmarksManager)
-        """
-        super(BookmarksDialog, self).__init__(parent)
-        self.setupUi(self)
-        self.setWindowFlags(Qt.Window)
-        
-        self.__bookmarksManager = manager
-        if self.__bookmarksManager is None:
-            import Helpviewer.HelpWindow
-            self.__bookmarksManager = Helpviewer.HelpWindow.HelpWindow\
-                .bookmarksManager()
-        
-        self.__bookmarksModel = self.__bookmarksManager.bookmarksModel()
-        self.__proxyModel = E5TreeSortFilterProxyModel(self)
-        self.__proxyModel.setFilterKeyColumn(-1)
-        self.__proxyModel.setSourceModel(self.__bookmarksModel)
-        
-        self.searchEdit.textChanged.connect(
-            self.__proxyModel.setFilterFixedString)
-        
-        self.bookmarksTree.setModel(self.__proxyModel)
-        self.bookmarksTree.setExpanded(self.__proxyModel.index(0, 0), True)
-        fm = QFontMetrics(self.font())
-        header = fm.width("m") * 40
-        self.bookmarksTree.header().resizeSection(0, header)
-        self.bookmarksTree.header().setStretchLastSection(True)
-        self.bookmarksTree.setContextMenuPolicy(Qt.CustomContextMenu)
-        
-        self.bookmarksTree.activated.connect(self.__activated)
-        self.bookmarksTree.customContextMenuRequested.connect(
-            self.__customContextMenuRequested)
-        
-        self.removeButton.clicked.connect(
-            self.bookmarksTree.removeSelected)
-        self.addFolderButton.clicked.connect(self.__newFolder)
-        
-        self.__expandNodes(self.__bookmarksManager.bookmarks())
-    
-    def closeEvent(self, evt):
-        """
-        Protected method to handle the closing of the dialog.
-        
-        @param evt reference to the event object (QCloseEvent) (ignored)
-        """
-        self.__shutdown()
-    
-    def reject(self):
-        """
-        Public method called when the dialog is rejected.
-        """
-        self.__shutdown()
-        super(BookmarksDialog, self).reject()
-    
-    def __shutdown(self):
-        """
-        Private method to perform shutdown actions for the dialog.
-        """
-        if self.__saveExpandedNodes(self.bookmarksTree.rootIndex()):
-            self.__bookmarksManager.changeExpanded()
-    
-    def __saveExpandedNodes(self, parent):
-        """
-        Private method to save the child nodes of an expanded node.
-        
-        @param parent index of the parent node (QModelIndex)
-        @return flag indicating a change (boolean)
-        """
-        changed = False
-        for row in range(self.__proxyModel.rowCount(parent)):
-            child = self.__proxyModel.index(row, 0, parent)
-            sourceIndex = self.__proxyModel.mapToSource(child)
-            childNode = self.__bookmarksModel.node(sourceIndex)
-            wasExpanded = childNode.expanded
-            if self.bookmarksTree.isExpanded(child):
-                childNode.expanded = True
-                changed |= self.__saveExpandedNodes(child)
-            else:
-                childNode.expanded = False
-            changed |= (wasExpanded != childNode.expanded)
-        
-        return changed
-    
-    def __expandNodes(self, node):
-        """
-        Private method to expand all child nodes of a node.
-        
-        @param node reference to the bookmark node to expand (BookmarkNode)
-        """
-        for childNode in node.children():
-            if childNode.expanded:
-                idx = self.__bookmarksModel.nodeIndex(childNode)
-                idx = self.__proxyModel.mapFromSource(idx)
-                self.bookmarksTree.setExpanded(idx, True)
-                self.__expandNodes(childNode)
-    
-    def __customContextMenuRequested(self, pos):
-        """
-        Private slot to handle the context menu request for the bookmarks tree.
-        
-        @param pos position the context menu was requested (QPoint)
-        """
-        from .BookmarkNode import BookmarkNode
-        
-        menu = QMenu()
-        idx = self.bookmarksTree.indexAt(pos)
-        idx = idx.sibling(idx.row(), 0)
-        sourceIndex = self.__proxyModel.mapToSource(idx)
-        node = self.__bookmarksModel.node(sourceIndex)
-        if idx.isValid() and node.type() != BookmarkNode.Folder:
-            menu.addAction(
-                self.tr("&Open"), self.__openBookmarkInCurrentTab)
-            menu.addAction(
-                self.tr("Open in New &Tab"), self.__openBookmarkInNewTab)
-            menu.addSeparator()
-        act = menu.addAction(self.tr("Edit &Name"), self.__editName)
-        act.setEnabled(idx.flags() & Qt.ItemIsEditable)
-        if idx.isValid() and node.type() != BookmarkNode.Folder:
-            menu.addAction(self.tr("Edit &Address"), self.__editAddress)
-        menu.addSeparator()
-        act = menu.addAction(
-            self.tr("&Delete"), self.bookmarksTree.removeSelected)
-        act.setEnabled(idx.flags() & Qt.ItemIsDragEnabled)
-        menu.addSeparator()
-        act = menu.addAction(self.tr("&Properties..."), self.__edit)
-        act.setEnabled(idx.flags() & Qt.ItemIsEditable)
-        menu.exec_(QCursor.pos())
-    
-    def __activated(self, idx):
-        """
-        Private slot to handle the activation of an entry.
-        
-        @param idx reference to the entry index (QModelIndex)
-        """
-        self.__openBookmark(
-            QApplication.keyboardModifiers() & Qt.ControlModifier)
-        
-    def __openBookmarkInCurrentTab(self):
-        """
-        Private slot to open a bookmark in the current browser tab.
-        """
-        self.__openBookmark(False)
-    
-    def __openBookmarkInNewTab(self):
-        """
-        Private slot to open a bookmark in a new browser tab.
-        """
-        self.__openBookmark(True)
-    
-    def __openBookmark(self, newTab):
-        """
-        Private method to open a bookmark.
-        
-        @param newTab flag indicating to open the bookmark in a new tab
-            (boolean)
-        """
-        from .BookmarkNode import BookmarkNode
-        from .BookmarksModel import BookmarksModel
-        
-        idx = self.bookmarksTree.currentIndex()
-        sourceIndex = self.__proxyModel.mapToSource(idx)
-        node = self.__bookmarksModel.node(sourceIndex)
-        if not idx.parent().isValid() or \
-           node is None or \
-           node.type() == BookmarkNode.Folder:
-            return
-        if newTab:
-            self.newUrl.emit(
-                idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole),
-                idx.sibling(idx.row(), 0).data(Qt.DisplayRole))
-        else:
-            self.openUrl.emit(
-                idx.sibling(idx.row(), 1).data(BookmarksModel.UrlRole),
-                idx.sibling(idx.row(), 0).data(Qt.DisplayRole))
-    
-    def __editName(self):
-        """
-        Private slot to edit the name part of a bookmark.
-        """
-        idx = self.bookmarksTree.currentIndex()
-        idx = idx.sibling(idx.row(), 0)
-        self.bookmarksTree.edit(idx)
-    
-    def __editAddress(self):
-        """
-        Private slot to edit the address part of a bookmark.
-        """
-        idx = self.bookmarksTree.currentIndex()
-        idx = idx.sibling(idx.row(), 1)
-        self.bookmarksTree.edit(idx)
-    
-    def __edit(self):
-        """
-        Private slot to edit a bookmarks properties.
-        """
-        from .BookmarkPropertiesDialog import BookmarkPropertiesDialog
-        
-        idx = self.bookmarksTree.currentIndex()
-        sourceIndex = self.__proxyModel.mapToSource(idx)
-        node = self.__bookmarksModel.node(sourceIndex)
-        dlg = BookmarkPropertiesDialog(node)
-        dlg.exec_()
-    
-    def __newFolder(self):
-        """
-        Private slot to add a new bookmarks folder.
-        """
-        from .BookmarkNode import BookmarkNode
-        
-        currentIndex = self.bookmarksTree.currentIndex()
-        idx = QModelIndex(currentIndex)
-        sourceIndex = self.__proxyModel.mapToSource(idx)
-        sourceNode = self.__bookmarksModel.node(sourceIndex)
-        row = -1    # append new folder as the last item per default
-        
-        if sourceNode is not None and \
-           sourceNode.type() != BookmarkNode.Folder:
-            # If the selected item is not a folder, add a new folder to the
-            # parent folder, but directly below the selected item.
-            idx = idx.parent()
-            row = currentIndex.row() + 1
-        
-        if not idx.isValid():
-            # Select bookmarks menu as default.
-            idx = self.__proxyModel.index(1, 0)
-        
-        idx = self.__proxyModel.mapToSource(idx)
-        parent = self.__bookmarksModel.node(idx)
-        node = BookmarkNode(BookmarkNode.Folder)
-        node.title = self.tr("New Folder")
-        self.__bookmarksManager.addBookmark(parent, node, row)
--- a/eric6/Helpviewer/Bookmarks/BookmarksDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>BookmarksDialog</class>
- <widget class="QDialog" name="BookmarksDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>750</width>
-    <height>450</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Manage Bookmarks</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <layout class="QHBoxLayout" name="horizontalLayout">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="E5ClearableLineEdit" name="searchEdit">
-         <property name="toolTip">
-          <string>Enter search term for bookmarks</string>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="E5TreeView" name="bookmarksTree">
-     <property name="dragDropMode">
-      <enum>QAbstractItemView::InternalMove</enum>
-     </property>
-     <property name="alternatingRowColors">
-      <bool>true</bool>
-     </property>
-     <property name="selectionMode">
-      <enum>QAbstractItemView::ExtendedSelection</enum>
-     </property>
-     <property name="textElideMode">
-      <enum>Qt::ElideMiddle</enum>
-     </property>
-     <property name="uniformRowHeights">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <item>
-      <widget class="QPushButton" name="removeButton">
-       <property name="toolTip">
-        <string>Press to delete the selected entries</string>
-       </property>
-       <property name="text">
-        <string>&amp;Delete</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="addFolderButton">
-       <property name="toolTip">
-        <string>Press to add a new bookmarks folder</string>
-       </property>
-       <property name="text">
-        <string>Add &amp;Folder</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="spacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5TreeView</class>
-   <extends>QTreeView</extends>
-   <header>E5Gui/E5TreeView.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>searchEdit</tabstop>
-  <tabstop>bookmarksTree</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>addFolderButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>BookmarksDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>252</x>
-     <y>445</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>BookmarksDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>320</x>
-     <y>445</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/Bookmarks/BookmarksImportDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,155 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog for importing bookmarks from other sources.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSlot, Qt, QSize
-from PyQt5.QtWidgets import QDialog, QListWidgetItem
-
-from E5Gui import E5MessageBox
-from E5Gui.E5PathPicker import E5PathPickerModes
-
-from .Ui_BookmarksImportDialog import Ui_BookmarksImportDialog
-
-from . import BookmarksImporters
-
-import Globals
-
-
-class BookmarksImportDialog(QDialog, Ui_BookmarksImportDialog):
-    """
-    Class implementing a dialog for importing bookmarks from other sources.
-    """
-    SourcesListIdRole = Qt.UserRole
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(BookmarksImportDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.filePicker.setMode(E5PathPickerModes.OpenFileMode)
-        
-        self.sourcesList.setIconSize(QSize(48, 48))
-        for icon, displayText, idText in BookmarksImporters.getImporters():
-            itm = QListWidgetItem(icon, displayText, self.sourcesList)
-            itm.setData(self.SourcesListIdRole, idText)
-        
-        self.__currentPage = 0
-        self.__selectedSource = ""
-        self.__topLevelBookmarkNode = None
-        self.__sourceFile = ""
-        self.__sourceDir = ""
-        
-        self.pagesWidget.setCurrentIndex(self.__currentPage)
-        self.__enableNextButton()
-    
-    def __enableNextButton(self):
-        """
-        Private slot to set the enabled state of the next button.
-        """
-        if self.__currentPage == 0:
-            self.nextButton.setEnabled(
-                len(self.sourcesList.selectedItems()) == 1)
-        elif self.__currentPage == 1:
-            self.nextButton.setEnabled(self.filePicker.text() != "")
-    
-    @pyqtSlot()
-    def on_sourcesList_itemSelectionChanged(self):
-        """
-        Private slot to handle changes of the selection of the import source.
-        """
-        self.__enableNextButton()
-    
-    @pyqtSlot(str)
-    def on_filePicker_textChanged(self, txt):
-        """
-        Private slot handling changes of the file to import bookmarks form.
-        
-        @param txt text of the line edit (string)
-        """
-        self.__enableNextButton()
-    
-    @pyqtSlot()
-    def on_nextButton_clicked(self):
-        """
-        Private slot to switch to the next page.
-        """
-        if self.sourcesList.currentItem() is None:
-            return
-        
-        if self.__currentPage == 0:
-            self.__selectedSource = self.sourcesList.currentItem().data(
-                self.SourcesListIdRole)
-            (pixmap, sourceName, self.__sourceFile, info, prompt,
-             self.__sourceDir) = BookmarksImporters.getImporterInfo(
-                self.__selectedSource)
-            
-            self.iconLabel.setPixmap(pixmap)
-            self.importingFromLabel.setText(
-                self.tr("<b>Importing from {0}</b>").format(sourceName))
-            self.fileLabel1.setText(info)
-            self.fileLabel2.setText(prompt)
-            self.standardDirLabel.setText(
-                "<i>{0}</i>".format(self.__sourceDir))
-            
-            self.nextButton.setText(self.tr("Finish"))
-            
-            self.__currentPage += 1
-            self.pagesWidget.setCurrentIndex(self.__currentPage)
-            self.__enableNextButton()
-            
-            if self.__selectedSource == "ie":
-                self.filePicker.setMode(E5PathPickerModes.DirectoryMode)
-            else:
-                self.filePicker.setMode(E5PathPickerModes.OpenFileMode)
-                if Globals.isMacPlatform():
-                    filterStr = "*{0}".format(
-                        os.path.splitext(self.__sourceFile)[1])
-                else:
-                    filterStr = self.__sourceFile
-                self.filePicker.setFilters(filterStr)
-            self.filePicker.setDefaultDirectory(self.__sourceDir)
-        
-        elif self.__currentPage == 1:
-            if self.filePicker.text() == "":
-                return
-            
-            importer = BookmarksImporters.getImporter(self.__selectedSource)
-            importer.setPath(self.filePicker.text())
-            if importer.open():
-                self.__topLevelBookmarkNode = importer.importedBookmarks()
-            if importer.error():
-                E5MessageBox.critical(
-                    self,
-                    self.tr("Error importing bookmarks"),
-                    importer.errorString())
-                return
-            
-            self.accept()
-    
-    @pyqtSlot()
-    def on_cancelButton_clicked(self):
-        """
-        Private slot documentation goes here.
-        """
-        self.reject()
-    
-    def getImportedBookmarks(self):
-        """
-        Public method to get the imported bookmarks.
-        
-        @return top level bookmark (BookmarkNode)
-        """
-        return self.__topLevelBookmarkNode
--- a/eric6/Helpviewer/Bookmarks/BookmarksImportDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,211 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>BookmarksImportDialog</class>
- <widget class="QDialog" name="BookmarksImportDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>550</width>
-    <height>354</height>
-   </rect>
-  </property>
-  <property name="minimumSize">
-   <size>
-    <width>550</width>
-    <height>350</height>
-   </size>
-  </property>
-  <property name="windowTitle">
-   <string>Import Bookmarks</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_3">
-   <item>
-    <widget class="QStackedWidget" name="pagesWidget">
-     <property name="currentIndex">
-      <number>0</number>
-     </property>
-     <widget class="QWidget" name="sourcePage">
-      <layout class="QVBoxLayout" name="verticalLayout">
-       <property name="leftMargin">
-        <number>0</number>
-       </property>
-       <property name="topMargin">
-        <number>0</number>
-       </property>
-       <property name="rightMargin">
-        <number>0</number>
-       </property>
-       <property name="bottomMargin">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="QLabel" name="label_2">
-         <property name="text">
-          <string>Choose source from which you want to import bookmarks:</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QListWidget" name="sourcesList">
-         <property name="toolTip">
-          <string>Choose the source to import from</string>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="filePage">
-      <layout class="QVBoxLayout" name="verticalLayout_2">
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_2">
-         <item>
-          <widget class="QLabel" name="iconLabel">
-           <property name="minimumSize">
-            <size>
-             <width>48</width>
-             <height>48</height>
-            </size>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>48</width>
-             <height>48</height>
-            </size>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLabel" name="importingFromLabel"/>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <spacer name="verticalSpacer">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>44</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-       <item>
-        <widget class="QLabel" name="fileLabel1">
-         <property name="wordWrap">
-          <bool>true</bool>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QLabel" name="standardDirLabel">
-         <property name="textInteractionFlags">
-          <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QLabel" name="fileLabel2"/>
-       </item>
-       <item>
-        <spacer name="verticalSpacer_2">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>44</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-       <item>
-        <widget class="E5PathPicker" name="filePicker" native="true">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="focusPolicy">
-          <enum>Qt::StrongFocus</enum>
-         </property>
-         <property name="toolTip">
-          <string>Enter the name of the bookmarks file or directory</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <spacer name="verticalSpacer_3">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>44</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-      </layout>
-     </widget>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QPushButton" name="nextButton">
-       <property name="text">
-        <string>Next &gt;</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="cancelButton">
-       <property name="text">
-        <string>Cancel</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5PathPicker</class>
-   <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>sourcesList</tabstop>
-  <tabstop>nextButton</tabstop>
-  <tabstop>cancelButton</tabstop>
-  <tabstop>filePicker</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Helpviewer/Bookmarks/BookmarksImporters/BookmarksImporter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a base class for the bookmarks importers.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QObject
-
-
-class BookmarksImporter(QObject):
-    """
-    Class implementing the base class for the bookmarks importers.
-    """
-    def __init__(self, sourceId="", parent=None):
-        """
-        Constructor
-        
-        @param sourceId source ID (string)
-        @param parent reference to the parent object (QObject)
-        """
-        super(BookmarksImporter, self).__init__(parent)
-        
-        self._path = ""
-        self._file = ""
-        self._error = False
-        self._errorString = ""
-        self._id = sourceId
-    
-    def setPath(self, path):
-        """
-        Public method to set the path of the bookmarks file or directory.
-        
-        @param path bookmarks file or directory (string)
-        @exception NotImplementedError raised to indicate this method must
-            be implemented by a subclass
-        """
-        raise NotImplementedError
-    
-    def open(self):
-        """
-        Public method to open the bookmarks file.
-        
-        It must return a flag indicating success (boolean).
-        
-        @exception NotImplementedError raised to indicate this method must
-            be implemented by a subclass
-        """
-        raise NotImplementedError
-    
-    def importedBookmarks(self):
-        """
-        Public method to get the imported bookmarks.
-        
-        It must return the imported bookmarks (BookmarkNode).
-        
-        @exception NotImplementedError raised to indicate this method must
-            be implemented by a subclass
-        """
-        raise NotImplementedError
-    
-    def error(self):
-        """
-        Public method to check for an error.
-        
-        @return flag indicating an error (boolean)
-        """
-        return self._error
-    
-    def errorString(self):
-        """
-        Public method to get the error description.
-        
-        @return error description (string)
-        """
-        return self._errorString
--- a/eric6/Helpviewer/Bookmarks/BookmarksImporters/ChromeImporter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an importer for Chrome bookmarks.
-"""
-
-from __future__ import unicode_literals
-
-import os
-import json
-
-from PyQt5.QtCore import QCoreApplication, QDate, Qt
-
-from .BookmarksImporter import BookmarksImporter
-
-import UI.PixmapCache
-import Globals
-
-
-def getImporterInfo(sourceId):
-    """
-    Module function to get information for the given source id.
-    
-    @param sourceId id of the browser ("chrome" or "chromium")
-    @return tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks file
-        (string)
-    @exception ValueError raised to indicate an invalid browser ID
-    """
-    if sourceId == "chrome":
-        if Globals.isWindowsPlatform():
-            standardDir = os.path.expandvars(
-                "%USERPROFILE%\\AppData\\Local\\Google\\Chrome\\"
-                "User Data\\Default")
-        elif Globals.isMacPlatform():
-            standardDir = os.path.expanduser(
-                "~/Library/Application Support/Google/Chrome/Default")
-        else:
-            standardDir = os.path.expanduser("~/.config/google-chrome/Default")
-        return (
-            UI.PixmapCache.getPixmap("chrome.png"),
-            "Google Chrome",
-            "Bookmarks",
-            QCoreApplication.translate(
-                "ChromeImporter",
-                """Google Chrome stores its bookmarks in the"""
-                """ <b>Bookmarks</b> text file. This file is usually"""
-                """ located in"""),
-            QCoreApplication.translate(
-                "ChromeImporter",
-                """Please choose the file to begin importing bookmarks."""),
-            standardDir,
-        )
-    elif sourceId == "chromium":
-        if Globals.isWindowsPlatform():
-            standardDir = os.path.expandvars(
-                "%USERPROFILE%\\AppData\\Local\\Google\\Chrome\\"
-                "User Data\\Default")
-        else:
-            standardDir = os.path.expanduser("~/.config/chromium/Default")
-        return (
-            UI.PixmapCache.getPixmap("chromium.png"),
-            "Chromium",
-            "Bookmarks",
-            QCoreApplication.translate(
-                "ChromeImporter",
-                """Chromium stores its bookmarks in the <b>Bookmarks</b>"""
-                """ text file. This file is usually located in"""),
-            QCoreApplication.translate(
-                "ChromeImporter",
-                """Please choose the file to begin importing bookmarks."""),
-            standardDir,
-        )
-    else:
-        raise ValueError(
-            "Unsupported browser ID given ({0}).".format(sourceId))
-
-
-class ChromeImporter(BookmarksImporter):
-    """
-    Class implementing the Chrome bookmarks importer.
-    """
-    def __init__(self, sourceId="", parent=None):
-        """
-        Constructor
-        
-        @param sourceId source ID (string)
-        @param parent reference to the parent object (QObject)
-        """
-        super(ChromeImporter, self).__init__(sourceId, parent)
-        
-        self.__fileName = ""
-    
-    def setPath(self, path):
-        """
-        Public method to set the path of the bookmarks file or directory.
-        
-        @param path bookmarks file or directory (string)
-        """
-        self.__fileName = path
-    
-    def open(self):
-        """
-        Public method to open the bookmarks file.
-        
-        @return flag indicating success (boolean)
-        """
-        if not os.path.exists(self.__fileName):
-            self._error = True
-            self._errorString = self.tr(
-                "File '{0}' does not exist.").format(self.__fileName)
-            return False
-        return True
-    
-    def importedBookmarks(self):
-        """
-        Public method to get the imported bookmarks.
-        
-        @return imported bookmarks (BookmarkNode)
-        """
-        try:
-            f = open(self.__fileName, "r", encoding="utf-8")
-            contents = json.load(f)
-            f.close()
-        except IOError as err:
-            self._error = True
-            self._errorString = self.tr(
-                "File '{0}' cannot be read.\nReason: {1}")\
-                .format(self.__fileName, str(err))
-            return None
-        
-        from ..BookmarkNode import BookmarkNode
-        importRootNode = BookmarkNode(BookmarkNode.Folder)
-        if contents["version"] == 1:
-            self.__processRoots(contents["roots"], importRootNode)
-        
-        if self._id == "chrome":
-            importRootNode.title = self.tr("Google Chrome Import")
-        elif self._id == "chromium":
-            importRootNode.title = self.tr("Chromium Import")
-        else:
-            importRootNode.title = self.tr("Imported {0}")\
-                .format(QDate.currentDate().toString(Qt.SystemLocaleShortDate))
-        return importRootNode
-    
-    def __processRoots(self, data, rootNode):
-        """
-        Private method to process the bookmark roots.
-        
-        @param data dictionary with the bookmarks data (dict)
-        @param rootNode node to add the bookmarks to (BookmarkNode)
-        """
-        for node in data.values():
-            if node["type"] == "folder":
-                self.__generateFolderNode(node, rootNode)
-            elif node["type"] == "url":
-                self.__generateUrlNode(node, rootNode)
-    
-    def __generateFolderNode(self, data, rootNode):
-        """
-        Private method to process a bookmarks folder.
-        
-        @param data dictionary with the bookmarks data (dict)
-        @param rootNode node to add the bookmarks to (BookmarkNode)
-        """
-        from ..BookmarkNode import BookmarkNode
-        folder = BookmarkNode(BookmarkNode.Folder, rootNode)
-        folder.title = data["name"].replace("&", "&&")
-        for node in data["children"]:
-            if node["type"] == "folder":
-                self.__generateFolderNode(node, folder)
-            elif node["type"] == "url":
-                self.__generateUrlNode(node, folder)
-    
-    def __generateUrlNode(self, data, rootNode):
-        """
-        Private method to process a bookmarks node.
-        
-        @param data dictionary with the bookmarks data (dict)
-        @param rootNode node to add the bookmarks to (BookmarkNode)
-        """
-        from ..BookmarkNode import BookmarkNode
-        bookmark = BookmarkNode(BookmarkNode.Bookmark, rootNode)
-        bookmark.url = data["url"]
-        bookmark.title = data["name"].replace("&", "&&")
--- a/eric6/Helpviewer/Bookmarks/BookmarksImporters/FirefoxImporter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an importer for Firefox bookmarks.
-"""
-
-from __future__ import unicode_literals
-
-import os
-import sqlite3
-
-from PyQt5.QtCore import QCoreApplication, QDate, Qt, QUrl
-
-from .BookmarksImporter import BookmarksImporter
-
-import UI.PixmapCache
-import Globals
-
-
-def getImporterInfo(sourceId):
-    """
-    Module function to get information for the given source id.
-    
-    @param sourceId id of the browser ("chrome" or "chromium")
-    @return tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks file
-        (string)
-    @exception ValueError raised to indicate an invalid browser ID
-    """
-    if sourceId == "firefox":
-        if Globals.isWindowsPlatform():
-            standardDir = os.path.expandvars(
-                "%APPDATA%\\Mozilla\\Firefox\\Profiles")
-        elif Globals.isMacPlatform():
-            standardDir = os.path.expanduser(
-                "~/Library/Application Support/Firefox/Profiles")
-        else:
-            standardDir = os.path.expanduser("~/.mozilla/firefox")
-        return (
-            UI.PixmapCache.getPixmap("chrome.png"),
-            "Mozilla Firefox",
-            "places.sqlite",
-            QCoreApplication.translate(
-                "FirefoxImporter",
-                """Mozilla Firefox stores its bookmarks in the"""
-                """ <b>places.sqlite</b> SQLite database. This file is"""
-                """ usually located in"""),
-            QCoreApplication.translate(
-                "FirefoxImporter",
-                """Please choose the file to begin importing bookmarks."""),
-            standardDir,
-        )
-    else:
-        raise ValueError(
-            "Unsupported browser ID given ({0}).".format(sourceId))
-
-
-class FirefoxImporter(BookmarksImporter):
-    """
-    Class implementing the Chrome bookmarks importer.
-    """
-    def __init__(self, sourceId="", parent=None):
-        """
-        Constructor
-        
-        @param sourceId source ID (string)
-        @param parent reference to the parent object (QObject)
-        """
-        super(FirefoxImporter, self).__init__(sourceId, parent)
-        
-        self.__fileName = ""
-        self.__db = None
-    
-    def setPath(self, path):
-        """
-        Public method to set the path of the bookmarks file or directory.
-        
-        @param path bookmarks file or directory (string)
-        """
-        self.__fileName = path
-    
-    def open(self):
-        """
-        Public method to open the bookmarks file.
-        
-        @return flag indicating success (boolean)
-        """
-        if not os.path.exists(self.__fileName):
-            self._error = True
-            self._errorString = self.tr("File '{0}' does not exist.")\
-                .format(self.__fileName)
-            return False
-        
-        try:
-            self.__db = sqlite3.connect(self.__fileName)
-        except sqlite3.DatabaseError as err:
-            self._error = True
-            self._errorString = self.tr(
-                "Unable to open database.\nReason: {0}").format(str(err))
-            return False
-        
-        return True
-    
-    def importedBookmarks(self):
-        """
-        Public method to get the imported bookmarks.
-        
-        @return imported bookmarks (BookmarkNode)
-        """
-        from ..BookmarkNode import BookmarkNode
-        importRootNode = BookmarkNode(BookmarkNode.Root)
-        
-        # step 1: build the hierarchy of bookmark folders
-        folders = {}
-        
-        try:
-            cursor = self.__db.cursor()
-            cursor.execute(
-                "SELECT id, parent, title FROM moz_bookmarks "
-                "WHERE type = 2 and title !=''")
-            for row in cursor:
-                id_ = row[0]
-                parent = row[1]
-                title = row[2]
-                if parent in folders:
-                    folder = BookmarkNode(BookmarkNode.Folder, folders[parent])
-                else:
-                    folder = BookmarkNode(BookmarkNode.Folder, importRootNode)
-                folder.title = title.replace("&", "&&")
-                folders[id_] = folder
-        except sqlite3.DatabaseError as err:
-            self._error = True
-            self._errorString = self.tr(
-                "Unable to open database.\nReason: {0}").format(str(err))
-            return None
-        
-        try:
-            cursor = self.__db.cursor()
-            cursor.execute(
-                "SELECT parent, title, fk, position FROM moz_bookmarks"
-                " WHERE type = 1 and title != '' ORDER BY position")
-            for row in cursor:
-                parent = row[0]
-                title = row[1]
-                placesId = row[2]
-                
-                cursor2 = self.__db.cursor()
-                cursor2.execute(
-                    "SELECT url FROM moz_places WHERE id = {0}"
-                    .format(placesId))
-                row2 = cursor2.fetchone()
-                if row2:
-                    url = QUrl(row2[0])
-                    if not title or url.isEmpty() or \
-                            url.scheme() in ["place", "about"]:
-                        continue
-                    
-                    if parent in folders:
-                        bookmark = BookmarkNode(BookmarkNode.Bookmark,
-                                                folders[parent])
-                    else:
-                        bookmark = BookmarkNode(BookmarkNode.Bookmark,
-                                                importRootNode)
-                    bookmark.url = url.toString()
-                    bookmark.title = title.replace("&", "&&")
-        except sqlite3.DatabaseError as err:
-            self._error = True
-            self._errorString = self.tr(
-                "Unable to open database.\nReason: {0}").format(str(err))
-            return None
-        
-        importRootNode.setType(BookmarkNode.Folder)
-        if self._id == "firefox":
-            importRootNode.title = self.tr("Mozilla Firefox Import")
-        else:
-            importRootNode.title = self.tr("Imported {0}")\
-                .format(QDate.currentDate().toString(Qt.SystemLocaleShortDate))
-        return importRootNode
--- a/eric6/Helpviewer/Bookmarks/BookmarksImporters/HtmlImporter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an importer for HTML bookmark files.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import QCoreApplication, QDate, Qt
-
-from .BookmarksImporter import BookmarksImporter
-
-import UI.PixmapCache
-
-
-def getImporterInfo(sourceId):
-    """
-    Module function to get information for the given HTML source id.
-    
-    @param sourceId id of the browser ("chrome" or "chromium")
-    @return tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks file
-        (string)
-    @exception ValueError raised to indicate an invalid browser ID
-    """
-    if sourceId == "html":
-        return (
-            UI.PixmapCache.getPixmap("html.png"),
-            "HTML Netscape Bookmarks",
-            QCoreApplication.translate(
-                "HtmlImporter",
-                "HTML Netscape Bookmarks") + " (*.htm *.html)",
-            QCoreApplication.translate(
-                "HtmlImporter",
-                """You can import bookmarks from any browser that supports"""
-                """ HTML exporting. This file has usually the extension"""
-                """ .htm or .html."""),
-            QCoreApplication.translate(
-                "HtmlImporter",
-                """Please choose the file to begin importing bookmarks."""),
-            "",
-        )
-    else:
-        raise ValueError(
-            "Unsupported browser ID given ({0}).".format(sourceId))
-
-
-class HtmlImporter(BookmarksImporter):
-    """
-    Class implementing the HTML bookmarks importer.
-    """
-    def __init__(self, sourceId="", parent=None):
-        """
-        Constructor
-        
-        @param sourceId source ID (string)
-        @param parent reference to the parent object (QObject)
-        """
-        super(HtmlImporter, self).__init__(sourceId, parent)
-        
-        self.__fileName = ""
-        self.__inFile = None
-    
-    def setPath(self, path):
-        """
-        Public method to set the path of the bookmarks file or directory.
-        
-        @param path bookmarks file or directory (string)
-        """
-        self.__fileName = path
-    
-    def open(self):
-        """
-        Public method to open the bookmarks file.
-        
-        @return flag indicating success (boolean)
-        """
-        if not os.path.exists(self.__fileName):
-            self._error = True
-            self._errorString = self.tr("File '{0}' does not exist.")\
-                .format(self.__fileName)
-            return False
-        return True
-    
-    def importedBookmarks(self):
-        """
-        Public method to get the imported bookmarks.
-        
-        @return imported bookmarks (BookmarkNode)
-        """
-        from ..BookmarkNode import BookmarkNode
-        from ..NsHtmlReader import NsHtmlReader
-        
-        reader = NsHtmlReader()
-        importRootNode = reader.read(self.__fileName)
-        
-        importRootNode.setType(BookmarkNode.Folder)
-        if self._id == "html":
-            importRootNode.title = self.tr("HTML Import")
-        else:
-            importRootNode.title = self.tr("Imported {0}")\
-                .format(QDate.currentDate().toString(Qt.SystemLocaleShortDate))
-        return importRootNode
--- a/eric6/Helpviewer/Bookmarks/BookmarksImporters/IExplorerImporter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an importer for Internet Explorer bookmarks.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import QCoreApplication, QDate, Qt
-
-from .BookmarksImporter import BookmarksImporter
-
-import UI.PixmapCache
-import Globals
-
-
-def getImporterInfo(sourceId):
-    """
-    Module function to get information for the given source id.
-    
-    @param sourceId id of the browser ("chrome" or "chromium")
-    @return tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks file
-        (string)
-    @exception ValueError raised to indicate an invalid browser ID
-    """
-    if sourceId == "ie":
-        if Globals.isWindowsPlatform():
-            standardDir = os.path.expandvars(
-                "%USERPROFILE%\\Favorites")
-        else:
-            standardDir = ""
-        return (
-            UI.PixmapCache.getPixmap("internet_explorer.png"),
-            "Internet Explorer",
-            "",
-            QCoreApplication.translate(
-                "IExplorerImporter",
-                """Internet Explorer stores its bookmarks in the"""
-                """ <b>Favorites</b> folder This folder is usually"""
-                """ located in"""),
-            QCoreApplication.translate(
-                "IExplorerImporter",
-                """Please choose the folder to begin importing bookmarks."""),
-            standardDir,
-        )
-    else:
-        raise ValueError(
-            "Unsupported browser ID given ({0}).".format(sourceId))
-
-
-class IExplorerImporter(BookmarksImporter):
-    """
-    Class implementing the Chrome bookmarks importer.
-    """
-    def __init__(self, sourceId="", parent=None):
-        """
-        Constructor
-        
-        @param sourceId source ID (string)
-        @param parent reference to the parent object (QObject)
-        """
-        super(IExplorerImporter, self).__init__(sourceId, parent)
-        
-        self.__fileName = ""
-    
-    def setPath(self, path):
-        """
-        Public method to set the path of the bookmarks file or directory.
-        
-        @param path bookmarks file or directory (string)
-        """
-        self.__fileName = path
-    
-    def open(self):
-        """
-        Public method to open the bookmarks file.
-        
-        @return flag indicating success (boolean)
-        """
-        if not os.path.exists(self.__fileName):
-            self._error = True
-            self._errorString = self.tr("Folder '{0}' does not exist.")\
-                .format(self.__fileName)
-            return False
-        if not os.path.isdir(self.__fileName):
-            self._error = True
-            self._errorString = self.tr("'{0}' is not a folder.")\
-                .format(self.__fileName)
-        return True
-    
-    def importedBookmarks(self):
-        """
-        Public method to get the imported bookmarks.
-        
-        @return imported bookmarks (BookmarkNode)
-        """
-        from ..BookmarkNode import BookmarkNode
-        
-        folders = {}
-        
-        importRootNode = BookmarkNode(BookmarkNode.Folder)
-        folders[self.__fileName] = importRootNode
-        
-        for directory, subdirs, files in os.walk(self.__fileName):
-            for subdir in subdirs:
-                path = os.path.join(directory, subdir)
-                if directory in folders:
-                    folder = BookmarkNode(BookmarkNode.Folder,
-                                          folders[directory])
-                else:
-                    folder = BookmarkNode(BookmarkNode.Folder, importRootNode)
-                folder.title = subdir.replace("&", "&&")
-                folders[path] = folder
-            
-            for file in files:
-                name, ext = os.path.splitext(file)
-                if ext.lower() == ".url":
-                    path = os.path.join(directory, file)
-                    try:
-                        f = open(path, "r")
-                        contents = f.read()
-                        f.close()
-                    except IOError:
-                        continue
-                    url = ""
-                    for line in contents.splitlines():
-                        if line.startswith("URL="):
-                            url = line.replace("URL=", "")
-                            break
-                    if url:
-                        if directory in folders:
-                            bookmark = BookmarkNode(BookmarkNode.Bookmark,
-                                                    folders[directory])
-                        else:
-                            bookmark = BookmarkNode(BookmarkNode.Bookmark,
-                                                    importRootNode)
-                        bookmark.url = url
-                        bookmark.title = name.replace("&", "&&")
-        
-        if self._id == "ie":
-            importRootNode.title = self.tr("Internet Explorer Import")
-        else:
-            importRootNode.title = self.tr("Imported {0}")\
-                .format(QDate.currentDate().toString(Qt.SystemLocaleShortDate))
-        return importRootNode
--- a/eric6/Helpviewer/Bookmarks/BookmarksImporters/OperaImporter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an importer for Opera bookmarks.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import QCoreApplication, QDate, Qt
-
-from .BookmarksImporter import BookmarksImporter
-
-import UI.PixmapCache
-import Globals
-
-
-def getImporterInfo(sourceId):
-    """
-    Module function to get information for the given source id.
-    
-    @param sourceId id of the browser ("chrome" or "chromium")
-    @return tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks file
-        (string)
-    @exception ValueError raised to indicate an invalid browser ID
-    """
-    if sourceId == "opera":
-        if Globals.isWindowsPlatform():
-            standardDir = os.path.expandvars("%APPDATA%\\Opera\\Opera")
-        elif Globals.isMacPlatform():
-            standardDir = os.path.expanduser(
-                "~/Library/Opera")
-        else:
-            standardDir = os.path.expanduser("~/.opera")
-        return (
-            UI.PixmapCache.getPixmap("opera.png"),
-            "Opera",
-            "bookmarks.adr",
-            QCoreApplication.translate(
-                "OperaImporter",
-                """Opera stores its bookmarks in the <b>bookmarks.adr</b> """
-                """text file. This file is usually located in"""),
-            QCoreApplication.translate(
-                "OperaImporter",
-                """Please choose the file to begin importing bookmarks."""),
-            standardDir,
-        )
-    else:
-        raise ValueError(
-            "Unsupported browser ID given ({0}).".format(sourceId))
-
-
-class OperaImporter(BookmarksImporter):
-    """
-    Class implementing the Opera bookmarks importer.
-    """
-    def __init__(self, sourceId="", parent=None):
-        """
-        Constructor
-        
-        @param sourceId source ID (string)
-        @param parent reference to the parent object (QObject)
-        """
-        super(OperaImporter, self).__init__(sourceId, parent)
-        
-        self.__fileName = ""
-    
-    def setPath(self, path):
-        """
-        Public method to set the path of the bookmarks file or directory.
-        
-        @param path bookmarks file or directory (string)
-        """
-        self.__fileName = path
-    
-    def open(self):
-        """
-        Public method to open the bookmarks file.
-        
-        @return flag indicating success (boolean)
-        """
-        if not os.path.exists(self.__fileName):
-            self._error = True
-            self._errorString = self.tr("File '{0}' does not exist.")\
-                .format(self.__fileName)
-            return False
-        return True
-    
-    def importedBookmarks(self):
-        """
-        Public method to get the imported bookmarks.
-        
-        @return imported bookmarks (BookmarkNode)
-        """
-        try:
-            f = open(self.__fileName, "r", encoding="utf-8")
-            contents = f.read()
-            f.close()
-        except IOError as err:
-            self._error = True
-            self._errorString = self.tr(
-                "File '{0}' cannot be read.\nReason: {1}")\
-                .format(self.__fileName, str(err))
-            return None
-        
-        folderStack = []
-        
-        from ..BookmarkNode import BookmarkNode
-        importRootNode = BookmarkNode(BookmarkNode.Folder)
-        folderStack.append(importRootNode)
-        
-        for line in contents.splitlines():
-            line = line.strip()
-            if line == "#FOLDER":
-                node = BookmarkNode(BookmarkNode.Folder, folderStack[-1])
-                folderStack.append(node)
-            elif line == "#URL":
-                node = BookmarkNode(BookmarkNode.Bookmark, folderStack[-1])
-            elif line == "-":
-                folderStack.pop()
-            elif line.startswith("NAME="):
-                node.title = line.replace("NAME=", "").replace("&", "&&")
-            elif line.startswith("URL="):
-                node.url = line.replace("URL=", "")
-        
-        if self._id == "opera":
-            importRootNode.title = self.tr("Opera Import")
-        else:
-            importRootNode.title = self.tr("Imported {0}")\
-                .format(QDate.currentDate().toString(Qt.SystemLocaleShortDate))
-        return importRootNode
--- a/eric6/Helpviewer/Bookmarks/BookmarksImporters/SafariImporter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an importer for Apple Safari bookmarks.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import QCoreApplication, QDate, Qt
-
-from .BookmarksImporter import BookmarksImporter
-
-import UI.PixmapCache
-import Globals
-
-from Utilities import binplistlib
-
-
-def getImporterInfo(sourceId):
-    """
-    Module function to get information for the given source id.
-    
-    @param sourceId id of the browser ("chrome" or "chromium")
-    @return tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks file
-        (string)
-    @exception ValueError raised to indicate an invalid browser ID
-    """
-    if sourceId == "safari":
-        if Globals.isWindowsPlatform():
-            standardDir = os.path.expandvars(
-                "%APPDATA%\\Apple Computer\\Safari")
-        elif Globals.isMacPlatform():
-            standardDir = os.path.expanduser("~/Library/Safari")
-        else:
-            standardDir = ""
-        return (
-            UI.PixmapCache.getPixmap("safari.png"),
-            "Apple Safari",
-            "Bookmarks.plist",
-            QCoreApplication.translate(
-                "SafariImporter",
-                """Apple Safari stores its bookmarks in the"""
-                """ <b>Bookmarks.plist</b> file. This file is usually"""
-                """ located in"""),
-            QCoreApplication.translate(
-                "SafariImporter",
-                """Please choose the file to begin importing bookmarks."""),
-            standardDir,
-        )
-    else:
-        raise ValueError(
-            "Unsupported browser ID given ({0}).".format(sourceId))
-
-
-class SafariImporter(BookmarksImporter):
-    """
-    Class implementing the Apple Safari bookmarks importer.
-    """
-    def __init__(self, sourceId="", parent=None):
-        """
-        Constructor
-        
-        @param sourceId source ID (string)
-        @param parent reference to the parent object (QObject)
-        """
-        super(SafariImporter, self).__init__(sourceId, parent)
-        
-        self.__fileName = ""
-    
-    def setPath(self, path):
-        """
-        Public method to set the path of the bookmarks file or directory.
-        
-        @param path bookmarks file or directory (string)
-        """
-        self.__fileName = path
-    
-    def open(self):
-        """
-        Public method to open the bookmarks file.
-        
-        @return flag indicating success (boolean)
-        """
-        if not os.path.exists(self.__fileName):
-            self._error = True
-            self._errorString = self.tr("File '{0}' does not exist.")\
-                .format(self.__fileName)
-            return False
-        return True
-    
-    def importedBookmarks(self):
-        """
-        Public method to get the imported bookmarks.
-        
-        @return imported bookmarks (BookmarkNode)
-        """
-        try:
-            bookmarksDict = binplistlib.readPlist(self.__fileName)
-        except binplistlib.InvalidPlistException as err:
-            self._error = True
-            self._errorString = self.tr(
-                "Bookmarks file cannot be read.\nReason: {0}".format(str(err)))
-            return None
-        
-        from ..BookmarkNode import BookmarkNode
-        importRootNode = BookmarkNode(BookmarkNode.Folder)
-        if bookmarksDict["WebBookmarkFileVersion"] == 1 and \
-           bookmarksDict["WebBookmarkType"] == "WebBookmarkTypeList":
-            self.__processChildren(bookmarksDict["Children"], importRootNode)
-        
-        if self._id == "safari":
-            importRootNode.title = self.tr("Apple Safari Import")
-        else:
-            importRootNode.title = self.tr("Imported {0}")\
-                .format(QDate.currentDate().toString(Qt.SystemLocaleShortDate))
-        return importRootNode
-    
-    def __processChildren(self, children, rootNode):
-        """
-        Private method to process the list of children.
-        
-        @param children list of child nodes to be processed (list of dict)
-        @param rootNode node to add the bookmarks to (BookmarkNode)
-        """
-        from ..BookmarkNode import BookmarkNode
-        for child in children:
-            if child["WebBookmarkType"] == "WebBookmarkTypeList":
-                folder = BookmarkNode(BookmarkNode.Folder, rootNode)
-                folder.title = child["Title"].replace("&", "&&")
-                if "Children" in child:
-                    self.__processChildren(child["Children"], folder)
-            elif child["WebBookmarkType"] == "WebBookmarkTypeLeaf":
-                url = child["URLString"]
-                if url.startswith(("place:", "about:")):
-                    continue
-                
-                bookmark = BookmarkNode(BookmarkNode.Bookmark, rootNode)
-                bookmark.url = url
-                bookmark.title = child["URIDictionary"]["title"]\
-                    .replace("&", "&&")
--- a/eric6/Helpviewer/Bookmarks/BookmarksImporters/XbelImporter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an importer for XBEL files.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import QCoreApplication, QXmlStreamReader, QDate, Qt
-
-from .BookmarksImporter import BookmarksImporter
-
-import UI.PixmapCache
-
-
-def getImporterInfo(sourceId):
-    """
-    Module function to get information for the given XBEL source id.
-    
-    @param sourceId id of the browser ("chrome" or "chromium")
-    @return tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks file
-        (string)
-    @exception ValueError raised to indicate an invalid browser ID
-    """
-    if sourceId == "e5browser":
-        from ..BookmarksManager import BookmarksManager
-        bookmarksFile = BookmarksManager.getFileName()
-        return (
-            UI.PixmapCache.getPixmap("ericWeb48.png"),
-            "eric6 Web Browser",
-            os.path.basename(bookmarksFile),
-            QCoreApplication.translate(
-                "XbelImporter",
-                """eric6 Web Browser stores its bookmarks in the"""
-                """ <b>{0}</b> XML file. This file is usually located in"""
-            ).format(os.path.basename(bookmarksFile)),
-            QCoreApplication.translate(
-                "XbelImporter",
-                """Please choose the file to begin importing bookmarks."""),
-            os.path.dirname(bookmarksFile),
-        )
-    elif sourceId == "konqueror":
-        if os.path.exists(os.path.expanduser("~/.kde4")):
-            standardDir = os.path.expanduser("~/.kde4/share/apps/konqueror")
-        elif os.path.exists(os.path.expanduser("~/.kde")):
-            standardDir = os.path.expanduser("~/.kde/share/apps/konqueror")
-        else:
-            standardDir = ""
-        return (
-            UI.PixmapCache.getPixmap("konqueror.png"),
-            "Konqueror",
-            "bookmarks.xml",
-            QCoreApplication.translate(
-                "XbelImporter",
-                """Konqueror stores its bookmarks in the"""
-                """ <b>bookmarks.xml</b> XML file. This file is usually"""
-                """ located in"""),
-            QCoreApplication.translate(
-                "XbelImporter",
-                """Please choose the file to begin importing bookmarks."""),
-            standardDir,
-        )
-    elif sourceId == "xbel":
-        return (
-            UI.PixmapCache.getPixmap("xbel.png"),
-            "XBEL Bookmarks",
-            QCoreApplication.translate(
-                "XbelImporter", "XBEL Bookmarks") + " (*.xbel *.xml)",
-            QCoreApplication.translate(
-                "XbelImporter",
-                """You can import bookmarks from any browser that supports"""
-                """ XBEL exporting. This file has usually the extension"""
-                """ .xbel or .xml."""),
-            QCoreApplication.translate(
-                "XbelImporter",
-                """Please choose the file to begin importing bookmarks."""),
-            "",
-        )
-    else:
-        raise ValueError(
-            "Unsupported browser ID given ({0}).".format(sourceId))
-
-
-class XbelImporter(BookmarksImporter):
-    """
-    Class implementing the XBEL bookmarks importer.
-    """
-    def __init__(self, sourceId="", parent=None):
-        """
-        Constructor
-        
-        @param sourceId source ID (string)
-        @param parent reference to the parent object (QObject)
-        """
-        super(XbelImporter, self).__init__(sourceId, parent)
-        
-        self.__fileName = ""
-    
-    def setPath(self, path):
-        """
-        Public method to set the path of the bookmarks file or directory.
-        
-        @param path bookmarks file or directory (string)
-        """
-        self.__fileName = path
-    
-    def open(self):
-        """
-        Public method to open the bookmarks file.
-        
-        @return flag indicating success (boolean)
-        """
-        if not os.path.exists(self.__fileName):
-            self._error = True
-            self._errorString = self.tr("File '{0}' does not exist.")\
-                .format(self.__fileName)
-            return False
-        return True
-    
-    def importedBookmarks(self):
-        """
-        Public method to get the imported bookmarks.
-        
-        @return imported bookmarks (BookmarkNode)
-        """
-        from ..XbelReader import XbelReader
-        
-        reader = XbelReader()
-        importRootNode = reader.read(self.__fileName)
-        
-        if reader.error() != QXmlStreamReader.NoError:
-            self._error = True
-            self._errorString = self.tr(
-                """Error when importing bookmarks on line {0},"""
-                """ column {1}:\n{2}""")\
-                .format(reader.lineNumber(),
-                        reader.columnNumber(),
-                        reader.errorString())
-            return None
-        
-        from ..BookmarkNode import BookmarkNode
-        importRootNode.setType(BookmarkNode.Folder)
-        if self._id == "e5browser":
-            importRootNode.title = self.tr("eric6 Web Browser Import")
-        elif self._id == "konqueror":
-            importRootNode.title = self.tr("Konqueror Import")
-        elif self._id == "xbel":
-            importRootNode.title = self.tr("XBEL Import")
-        else:
-            importRootNode.title = self.tr("Imported {0}")\
-                .format(QDate.currentDate().toString(Qt.SystemLocaleShortDate))
-        return importRootNode
--- a/eric6/Helpviewer/Bookmarks/BookmarksImporters/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing bookmarks importers for various sources.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QCoreApplication
-
-import UI.PixmapCache
-import Globals
-
-
-def getImporters():
-    """
-    Module function to get a list of supported importers.
-    
-    @return list of tuples with an icon (QIcon), readable name (string) and
-        internal name (string)
-    """
-    importers = []
-    importers.append(
-        (UI.PixmapCache.getIcon("ericWeb48.png"), "eric6 Web Browser",
-         "e5browser"))
-    importers.append(
-        (UI.PixmapCache.getIcon("firefox.png"), "Mozilla Firefox", "firefox"))
-    importers.append(
-        (UI.PixmapCache.getIcon("chrome.png"), "Google Chrome", "chrome"))
-    if Globals.isLinuxPlatform():
-        importers.append(
-            (UI.PixmapCache.getIcon("chromium.png"), "Chromium", "chromium"))
-        importers.append(
-            (UI.PixmapCache.getIcon("konqueror.png"), "Konqueror",
-             "konqueror"))
-    importers.append(
-        (UI.PixmapCache.getIcon("opera.png"), "Opera", "opera"))
-    importers.append(
-        (UI.PixmapCache.getIcon("safari.png"), "Apple Safari", "safari"))
-    if Globals.isWindowsPlatform():
-        importers.append(
-            (UI.PixmapCache.getIcon("internet_explorer.png"),
-             "Internet Explorer", "ie"))
-    importers.append(
-        (UI.PixmapCache.getIcon("xbel.png"),
-         QCoreApplication.translate("BookmarksImporters", "XBEL File"),
-         "xbel"))
-    importers.append(
-        (UI.PixmapCache.getIcon("html.png"),
-         QCoreApplication.translate("BookmarksImporters", "HTML File"),
-         "html"))
-    return importers
-
-
-def getImporterInfo(sourceId):
-    """
-    Module function to get information for the given source id.
-    
-    @param sourceId source id to get info for (string)
-    @return tuple with an icon (QPixmap), readable name (string), name of
-        the default bookmarks file (string), an info text (string),
-        a prompt (string) and the default directory of the bookmarks
-        file (string)
-    @exception ValueError raised to indicate an unsupported importer
-    """
-    if sourceId in ["e5browser", "xbel", "konqueror"]:
-        from . import XbelImporter
-        return XbelImporter.getImporterInfo(sourceId)
-    elif sourceId == "html":
-        from . import HtmlImporter
-        return HtmlImporter.getImporterInfo(sourceId)
-    elif sourceId in ["chrome", "chromium"]:
-        from . import ChromeImporter
-        return ChromeImporter.getImporterInfo(sourceId)
-    elif sourceId == "opera":
-        from . import OperaImporter
-        return OperaImporter.getImporterInfo(sourceId)
-    elif sourceId == "firefox":
-        from . import FirefoxImporter
-        return FirefoxImporter.getImporterInfo(sourceId)
-    elif sourceId == "ie":
-        from . import IExplorerImporter
-        return IExplorerImporter.getImporterInfo(sourceId)
-    elif sourceId == "safari":
-        from . import SafariImporter
-        return SafariImporter.getImporterInfo(sourceId)
-    else:
-        raise ValueError("Invalid importer ID given ({0}).".format(sourceId))
-
-
-def getImporter(sourceId, parent=None):
-    """
-    Module function to get an importer for the given source id.
-    
-    @param sourceId source id to get an importer for (string)
-    @param parent reference to the parent object (QObject)
-    @return bookmarks importer (BookmarksImporter)
-    @exception ValueError raised to indicate an unsupported importer
-    """
-    if sourceId in ["e5browser", "xbel", "konqueror"]:
-        from . import XbelImporter
-        return XbelImporter.XbelImporter(sourceId, parent)
-    elif sourceId == "html":
-        from . import HtmlImporter
-        return HtmlImporter.HtmlImporter(sourceId, parent)
-    elif sourceId in ["chrome", "chromium"]:
-        from . import ChromeImporter
-        return ChromeImporter.ChromeImporter(sourceId, parent)
-    elif sourceId == "opera":
-        from . import OperaImporter
-        return OperaImporter.OperaImporter(sourceId, parent)
-    elif sourceId == "firefox":
-        from . import FirefoxImporter
-        return FirefoxImporter.FirefoxImporter(sourceId, parent)
-    elif sourceId == "ie":
-        from . import IExplorerImporter
-        return IExplorerImporter.IExplorerImporter(sourceId, parent)
-    elif sourceId == "safari":
-        from . import SafariImporter
-        return SafariImporter.SafariImporter(sourceId, parent)
-    else:
-        raise ValueError("No importer for ID {0}.".format(sourceId))
--- a/eric6/Helpviewer/Bookmarks/BookmarksManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,642 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the bookmarks manager.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSignal, Qt, QT_TRANSLATE_NOOP, QObject, QFile, \
-    QIODevice, QXmlStreamReader, QDate, QDateTime, QFileInfo, QUrl, \
-    QCoreApplication
-from PyQt5.QtWidgets import QUndoStack, QUndoCommand, QDialog
-
-from E5Gui import E5MessageBox, E5FileDialog
-
-from .BookmarkNode import BookmarkNode
-
-from Utilities.AutoSaver import AutoSaver
-import Utilities
-import Preferences
-
-BOOKMARKBAR = QT_TRANSLATE_NOOP("BookmarksManager", "Bookmarks Bar")
-BOOKMARKMENU = QT_TRANSLATE_NOOP("BookmarksManager", "Bookmarks Menu")
-
-StartRoot = 0
-StartMenu = 1
-StartToolBar = 2
-
-
-class BookmarksManager(QObject):
-    """
-    Class implementing the bookmarks manager.
-    
-    @signal entryAdded(BookmarkNode) emitted after a bookmark node has been
-        added
-    @signal entryRemoved(BookmarkNode, int, BookmarkNode) emitted after a
-        bookmark node has been removed
-    @signal entryChanged(BookmarkNode) emitted after a bookmark node has been
-        changed
-    @signal bookmarksSaved() emitted after the bookmarks were saved
-    @signal bookmarksReloaded() emitted after the bookmarks were reloaded
-    """
-    entryAdded = pyqtSignal(BookmarkNode)
-    entryRemoved = pyqtSignal(BookmarkNode, int, BookmarkNode)
-    entryChanged = pyqtSignal(BookmarkNode)
-    bookmarksSaved = pyqtSignal()
-    bookmarksReloaded = pyqtSignal()
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(BookmarksManager, self).__init__(parent)
-        
-        self.__saveTimer = AutoSaver(self, self.save)
-        self.entryAdded.connect(self.__saveTimer.changeOccurred)
-        self.entryRemoved.connect(self.__saveTimer.changeOccurred)
-        self.entryChanged.connect(self.__saveTimer.changeOccurred)
-        
-        self.__initialize()
-    
-    def __initialize(self):
-        """
-        Private method to initialize some data.
-        """
-        self.__loaded = False
-        self.__bookmarkRootNode = None
-        self.__toolbar = None
-        self.__menu = None
-        self.__bookmarksModel = None
-        self.__commands = QUndoStack()
-    
-    @classmethod
-    def getFileName(cls):
-        """
-        Class method to get the file name of the bookmark file.
-        
-        @return name of the bookmark file (string)
-        """
-        return os.path.join(Utilities.getConfigDir(), "browser",
-                            "bookmarks.xbel")
-    
-    def close(self):
-        """
-        Public method to close the bookmark manager.
-        """
-        self.__saveTimer.saveIfNeccessary()
-    
-    def undoRedoStack(self):
-        """
-        Public method to get a reference to the undo stack.
-        
-        @return reference to the undo stack (QUndoStack)
-        """
-        return self.__commands
-    
-    def changeExpanded(self):
-        """
-        Public method to handle a change of the expanded state.
-        """
-        self.__saveTimer.changeOccurred()
-    
-    def reload(self):
-        """
-        Public method used to initiate a reloading of the bookmarks.
-        """
-        self.__initialize()
-        self.load()
-        self.bookmarksReloaded.emit()
-    
-    def load(self):
-        """
-        Public method to load the bookmarks.
-        
-        @exception RuntimeError raised to indicate an error loading the
-            bookmarks
-        """
-        if self.__loaded:
-            return
-        
-        self.__loaded = True
-        
-        bookmarkFile = self.getFileName()
-        if not QFile.exists(bookmarkFile):
-            from . import DefaultBookmarks_rc       # __IGNORE_WARNING__
-            bookmarkFile = QFile(":/DefaultBookmarks.xbel")
-            bookmarkFile.open(QIODevice.ReadOnly)
-        
-        from .XbelReader import XbelReader
-        reader = XbelReader()
-        self.__bookmarkRootNode = reader.read(bookmarkFile)
-        if reader.error() != QXmlStreamReader.NoError:
-            E5MessageBox.warning(
-                None,
-                self.tr("Loading Bookmarks"),
-                self.tr(
-                    """Error when loading bookmarks on line {0},"""
-                    """ column {1}:\n {2}""")
-                .format(reader.lineNumber(),
-                        reader.columnNumber(),
-                        reader.errorString()))
-        
-        others = []
-        for index in range(
-                len(self.__bookmarkRootNode.children()) - 1, -1, -1):
-            node = self.__bookmarkRootNode.children()[index]
-            if node.type() == BookmarkNode.Folder:
-                if (node.title == self.tr("Toolbar Bookmarks") or
-                    node.title == BOOKMARKBAR) and \
-                   self.__toolbar is None:
-                    node.title = self.tr(BOOKMARKBAR)
-                    self.__toolbar = node
-                
-                if (node.title == self.tr("Menu") or
-                    node.title == BOOKMARKMENU) and \
-                   self.__menu is None:
-                    node.title = self.tr(BOOKMARKMENU)
-                    self.__menu = node
-            else:
-                others.append(node)
-            self.__bookmarkRootNode.remove(node)
-        
-        if len(self.__bookmarkRootNode.children()) > 0:
-            raise RuntimeError("Error loading bookmarks.")
-        
-        if self.__toolbar is None:
-            self.__toolbar = BookmarkNode(BookmarkNode.Folder,
-                                          self.__bookmarkRootNode)
-            self.__toolbar.title = self.tr(BOOKMARKBAR)
-        else:
-            self.__bookmarkRootNode.add(self.__toolbar)
-        
-        if self.__menu is None:
-            self.__menu = BookmarkNode(BookmarkNode.Folder,
-                                       self.__bookmarkRootNode)
-            self.__menu.title = self.tr(BOOKMARKMENU)
-        else:
-            self.__bookmarkRootNode.add(self.__menu)
-        
-        for node in others:
-            self.__menu.add(node)
-        
-        self.__convertFromOldBookmarks()
-    
-    def save(self):
-        """
-        Public method to save the bookmarks.
-        """
-        if not self.__loaded:
-            return
-        
-        from .XbelWriter import XbelWriter
-        writer = XbelWriter()
-        bookmarkFile = self.getFileName()
-        
-        # save root folder titles in English (i.e. not localized)
-        self.__menu.title = BOOKMARKMENU
-        self.__toolbar.title = BOOKMARKBAR
-        if not writer.write(bookmarkFile, self.__bookmarkRootNode):
-            E5MessageBox.warning(
-                None,
-                self.tr("Saving Bookmarks"),
-                self.tr("""Error saving bookmarks to <b>{0}</b>.""")
-                .format(bookmarkFile))
-        
-        # restore localized titles
-        self.__menu.title = self.tr(BOOKMARKMENU)
-        self.__toolbar.title = self.tr(BOOKMARKBAR)
-        
-        self.bookmarksSaved.emit()
-    
-    def addBookmark(self, parent, node, row=-1):
-        """
-        Public method to add a bookmark.
-        
-        @param parent reference to the node to add to (BookmarkNode)
-        @param node reference to the node to add (BookmarkNode)
-        @param row row number (integer)
-        """
-        if not self.__loaded:
-            return
-        
-        self.setTimestamp(node, BookmarkNode.TsAdded,
-                          QDateTime.currentDateTime())
-        
-        command = InsertBookmarksCommand(self, parent, node, row)
-        self.__commands.push(command)
-    
-    def removeBookmark(self, node):
-        """
-        Public method to remove a bookmark.
-        
-        @param node reference to the node to be removed (BookmarkNode)
-        """
-        if not self.__loaded:
-            return
-        
-        parent = node.parent()
-        row = parent.children().index(node)
-        command = RemoveBookmarksCommand(self, parent, row)
-        self.__commands.push(command)
-    
-    def setTitle(self, node, newTitle):
-        """
-        Public method to set the title of a bookmark.
-        
-        @param node reference to the node to be changed (BookmarkNode)
-        @param newTitle title to be set (string)
-        """
-        if not self.__loaded:
-            return
-        
-        command = ChangeBookmarkCommand(self, node, newTitle, True)
-        self.__commands.push(command)
-    
-    def setUrl(self, node, newUrl):
-        """
-        Public method to set the URL of a bookmark.
-        
-        @param node reference to the node to be changed (BookmarkNode)
-        @param newUrl URL to be set (string)
-        """
-        if not self.__loaded:
-            return
-        
-        command = ChangeBookmarkCommand(self, node, newUrl, False)
-        self.__commands.push(command)
-    
-    def setNodeChanged(self, node):
-        """
-        Public method to signal changes of bookmarks other than title, URL
-        or timestamp.
-        
-        @param node reference to the bookmark (BookmarkNode)
-        """
-        self.__saveTimer.changeOccurred()
-    
-    def setTimestamp(self, node, timestampType, timestamp):
-        """
-        Public method to set the URL of a bookmark.
-        
-        @param node reference to the node to be changed (BookmarkNode)
-        @param timestampType type of the timestamp to set
-            (BookmarkNode.TsAdded, BookmarkNode.TsModified,
-            BookmarkNode.TsVisited)
-        @param timestamp timestamp to set (QDateTime)
-        """
-        if not self.__loaded:
-            return
-        
-        assert timestampType in [BookmarkNode.TsAdded,
-                                 BookmarkNode.TsModified,
-                                 BookmarkNode.TsVisited]
-        
-        if timestampType == BookmarkNode.TsAdded:
-            node.added = timestamp
-        elif timestampType == BookmarkNode.TsModified:
-            node.modified = timestamp
-        elif timestampType == BookmarkNode.TsVisited:
-            node.visited = timestamp
-        self.__saveTimer.changeOccurred()
-    
-    def bookmarks(self):
-        """
-        Public method to get a reference to the root bookmark node.
-        
-        @return reference to the root bookmark node (BookmarkNode)
-        """
-        if not self.__loaded:
-            self.load()
-        
-        return self.__bookmarkRootNode
-    
-    def menu(self):
-        """
-        Public method to get a reference to the bookmarks menu node.
-        
-        @return reference to the bookmarks menu node (BookmarkNode)
-        """
-        if not self.__loaded:
-            self.load()
-        
-        return self.__menu
-    
-    def toolbar(self):
-        """
-        Public method to get a reference to the bookmarks toolbar node.
-        
-        @return reference to the bookmarks toolbar node (BookmarkNode)
-        """
-        if not self.__loaded:
-            self.load()
-        
-        return self.__toolbar
-    
-    def bookmarksModel(self):
-        """
-        Public method to get a reference to the bookmarks model.
-        
-        @return reference to the bookmarks model (BookmarksModel)
-        """
-        if self.__bookmarksModel is None:
-            from .BookmarksModel import BookmarksModel
-            self.__bookmarksModel = BookmarksModel(self, self)
-        return self.__bookmarksModel
-    
-    def importBookmarks(self):
-        """
-        Public method to import bookmarks.
-        """
-        from .BookmarksImportDialog import BookmarksImportDialog
-        dlg = BookmarksImportDialog()
-        if dlg.exec_() == QDialog.Accepted:
-            importRootNode = dlg.getImportedBookmarks()
-            if importRootNode is not None:
-                self.addBookmark(self.menu(), importRootNode)
-    
-    def exportBookmarks(self):
-        """
-        Public method to export the bookmarks.
-        """
-        fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
-            None,
-            self.tr("Export Bookmarks"),
-            "eric6_bookmarks.xbel",
-            self.tr("XBEL bookmarks (*.xbel);;"
-                    "XBEL bookmarks (*.xml);;"
-                    "HTML Bookmarks (*.html)"))
-        if not fileName:
-            return
-        
-        ext = QFileInfo(fileName).suffix()
-        if not ext:
-            ex = selectedFilter.split("(*")[1].split(")")[0]
-            if ex:
-                fileName += ex
-        
-        ext = QFileInfo(fileName).suffix()
-        if ext == "html":
-            from .NsHtmlWriter import NsHtmlWriter
-            writer = NsHtmlWriter()
-        else:
-            from .XbelWriter import XbelWriter
-            writer = XbelWriter()
-        if not writer.write(fileName, self.__bookmarkRootNode):
-            E5MessageBox.critical(
-                None,
-                self.tr("Exporting Bookmarks"),
-                self.tr("""Error exporting bookmarks to <b>{0}</b>.""")
-                .format(fileName))
-    
-    def __convertFromOldBookmarks(self):
-        """
-        Private method to convert the old bookmarks into the new ones.
-        """
-        bmNames = Preferences.Prefs.settings.value('Bookmarks/Names')
-        bmFiles = Preferences.Prefs.settings.value('Bookmarks/Files')
-        
-        if bmNames is not None and bmFiles is not None:
-            if len(bmNames) == len(bmFiles):
-                convertedRootNode = BookmarkNode(BookmarkNode.Folder)
-                convertedRootNode.title = self.tr("Converted {0}")\
-                    .format(QDate.currentDate().toString(
-                        Qt.SystemLocaleShortDate))
-                for i in range(len(bmNames)):
-                    node = BookmarkNode(BookmarkNode.Bookmark,
-                                        convertedRootNode)
-                    node.title = bmNames[i]
-                    url = QUrl(bmFiles[i])
-                    if not url.scheme():
-                        url.setScheme("file")
-                    node.url = url.toString()
-                self.addBookmark(self.menu(), convertedRootNode)
-                
-                Preferences.Prefs.settings.remove('Bookmarks')
-    
-    def iconChanged(self, url):
-        """
-        Public slot to update the icon image for an URL.
-        
-        @param url URL of the icon to update (QUrl or string)
-        """
-        if isinstance(url, QUrl):
-            url = url.toString()
-        nodes = self.bookmarksForUrl(url)
-        for node in nodes:
-            self.bookmarksModel().entryChanged(node)
-    
-    def bookmarkForUrl(self, url, start=StartRoot):
-        """
-        Public method to get a bookmark node for a given URL.
-        
-        @param url URL of the bookmark to search for (QUrl or string)
-        @keyparam start indicator for the start of the search
-            (StartRoot, StartMenu, StartToolBar)
-        @return bookmark node for the given url (BookmarkNode)
-        """
-        if start == StartMenu:
-            startNode = self.__menu
-        elif start == StartToolBar:
-            startNode = self.__toolbar
-        else:
-            startNode = self.__bookmarkRootNode
-        if startNode is None:
-            return None
-        
-        if isinstance(url, QUrl):
-            url = url.toString()
-        
-        return self.__searchBookmark(url, startNode)
-    
-    def __searchBookmark(self, url, startNode):
-        """
-        Private method get a bookmark node for a given URL.
-        
-        @param url URL of the bookmark to search for (string)
-        @param startNode reference to the node to start searching
-            (BookmarkNode)
-        @return bookmark node for the given url (BookmarkNode)
-        """
-        bm = None
-        for node in startNode.children():
-            if node.type() == BookmarkNode.Folder:
-                bm = self.__searchBookmark(url, node)
-            elif node.type() == BookmarkNode.Bookmark:
-                if node.url == url:
-                    bm = node
-            if bm is not None:
-                return bm
-        return None
-    
-    def bookmarksForUrl(self, url, start=StartRoot):
-        """
-        Public method to get a list of bookmark nodes for a given URL.
-        
-        @param url URL of the bookmarks to search for (QUrl or string)
-        @keyparam start indicator for the start of the search
-            (StartRoot, StartMenu, StartToolBar)
-        @return list of bookmark nodes for the given url (list of BookmarkNode)
-        """
-        if start == StartMenu:
-            startNode = self.__menu
-        elif start == StartToolBar:
-            startNode = self.__toolbar
-        else:
-            startNode = self.__bookmarkRootNode
-        if startNode is None:
-            return None
-        
-        if isinstance(url, QUrl):
-            url = url.toString()
-        
-        return self.__searchBookmarks(url, startNode)
-    
-    def __searchBookmarks(self, url, startNode):
-        """
-        Private method get a list of bookmark nodes for a given URL.
-        
-        @param url URL of the bookmarks to search for (string)
-        @param startNode reference to the node to start searching
-            (BookmarkNode)
-        @return list of bookmark nodes for the given url (list of BookmarkNode)
-        """
-        bm = []
-        for node in startNode.children():
-            if node.type() == BookmarkNode.Folder:
-                bm.extend(self.__searchBookmarks(url, node))
-            elif node.type() == BookmarkNode.Bookmark:
-                if node.url == url:
-                    bm.append(node)
-        return bm
-
-
-class RemoveBookmarksCommand(QUndoCommand):
-    """
-    Class implementing the Remove undo command.
-    """
-    def __init__(self, bookmarksManager, parent, row):
-        """
-        Constructor
-        
-        @param bookmarksManager reference to the bookmarks manager
-            (BookmarksManager)
-        @param parent reference to the parent node (BookmarkNode)
-        @param row row number of bookmark (integer)
-        """
-        super(RemoveBookmarksCommand, self).__init__(
-            QCoreApplication.translate("BookmarksManager", "Remove Bookmark"))
-        
-        self._row = row
-        self._bookmarksManager = bookmarksManager
-        try:
-            self._node = parent.children()[row]
-        except IndexError:
-            self._node = BookmarkNode()
-        self._parent = parent
-    
-    def undo(self):
-        """
-        Public slot to perform the undo action.
-        """
-        self._parent.add(self._node, self._row)
-        self._bookmarksManager.entryAdded.emit(self._node)
-    
-    def redo(self):
-        """
-        Public slot to perform the redo action.
-        """
-        self._parent.remove(self._node)
-        self._bookmarksManager.entryRemoved.emit(
-            self._parent, self._row, self._node)
-
-
-class InsertBookmarksCommand(RemoveBookmarksCommand):
-    """
-    Class implementing the Insert undo command.
-    """
-    def __init__(self, bookmarksManager, parent, node, row):
-        """
-        Constructor
-        
-        @param bookmarksManager reference to the bookmarks manager
-            (BookmarksManager)
-        @param parent reference to the parent node (BookmarkNode)
-        @param node reference to the node to be inserted (BookmarkNode)
-        @param row row number of bookmark (integer)
-        """
-        RemoveBookmarksCommand.__init__(self, bookmarksManager, parent, row)
-        self.setText(QCoreApplication.translate(
-            "BookmarksManager", "Insert Bookmark"))
-        self._node = node
-    
-    def undo(self):
-        """
-        Public slot to perform the undo action.
-        """
-        RemoveBookmarksCommand.redo(self)
-    
-    def redo(self):
-        """
-        Public slot to perform the redo action.
-        """
-        RemoveBookmarksCommand.undo(self)
-
-
-class ChangeBookmarkCommand(QUndoCommand):
-    """
-    Class implementing the Insert undo command.
-    """
-    def __init__(self, bookmarksManager, node, newValue, title):
-        """
-        Constructor
-        
-        @param bookmarksManager reference to the bookmarks manager
-            (BookmarksManager)
-        @param node reference to the node to be changed (BookmarkNode)
-        @param newValue new value to be set (string)
-        @param title flag indicating a change of the title (True) or
-            the URL (False) (boolean)
-        """
-        super(ChangeBookmarkCommand, self).__init__()
-        
-        self._bookmarksManager = bookmarksManager
-        self._title = title
-        self._newValue = newValue
-        self._node = node
-        
-        if self._title:
-            self._oldValue = self._node.title
-            self.setText(QCoreApplication.translate(
-                "BookmarksManager", "Name Change"))
-        else:
-            self._oldValue = self._node.url
-            self.setText(QCoreApplication.translate(
-                "BookmarksManager", "Address Change"))
-    
-    def undo(self):
-        """
-        Public slot to perform the undo action.
-        """
-        if self._title:
-            self._node.title = self._oldValue
-        else:
-            self._node.url = self._oldValue
-        self._bookmarksManager.entryChanged.emit(self._node)
-    
-    def redo(self):
-        """
-        Public slot to perform the redo action.
-        """
-        if self._title:
-            self._node.title = self._newValue
-        else:
-            self._node.url = self._newValue
-        self._bookmarksManager.entryChanged.emit(self._node)
--- a/eric6/Helpviewer/Bookmarks/BookmarksMenu.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,328 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the bookmarks menu.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSignal, Qt, QUrl
-from PyQt5.QtGui import QCursor
-from PyQt5.QtWidgets import QMenu
-
-from E5Gui.E5ModelMenu import E5ModelMenu
-
-from .BookmarksModel import BookmarksModel
-from .BookmarkNode import BookmarkNode
-
-
-class BookmarksMenu(E5ModelMenu):
-    """
-    Class implementing the bookmarks menu base class.
-    
-    @signal openUrl(QUrl, str) emitted to open a URL with the given title in
-        the current tab
-    @signal newUrl(QUrl, str) emitted to open a URL with the given title in a
-        new tab
-    """
-    openUrl = pyqtSignal(QUrl, str)
-    newUrl = pyqtSignal(QUrl, str)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        E5ModelMenu.__init__(self, parent)
-        
-        self.activated.connect(self.__activated)
-        self.setStatusBarTextRole(BookmarksModel.UrlStringRole)
-        self.setSeparatorRole(BookmarksModel.SeparatorRole)
-        
-        self.setContextMenuPolicy(Qt.CustomContextMenu)
-        self.customContextMenuRequested.connect(self.__contextMenuRequested)
-    
-    def createBaseMenu(self):
-        """
-        Public method to get the menu that is used to populate sub menu's.
-        
-        @return reference to the menu (BookmarksMenu)
-        """
-        menu = BookmarksMenu(self)
-        menu.openUrl.connect(self.openUrl)
-        menu.newUrl.connect(self.newUrl)
-        return menu
-    
-    def __activated(self, idx):
-        """
-        Private slot handling the activated signal.
-        
-        @param idx index of the activated item (QModelIndex)
-        """
-        if self._keyboardModifiers & Qt.ControlModifier:
-            self.newUrl.emit(
-                idx.data(BookmarksModel.UrlRole),
-                idx.data(Qt.DisplayRole))
-        else:
-            self.openUrl.emit(
-                idx.data(BookmarksModel.UrlRole),
-                idx.data(Qt.DisplayRole))
-        self.resetFlags()
-    
-    def postPopulated(self):
-        """
-        Public method to add any actions after the tree.
-        """
-        if self.isEmpty():
-            return
-        
-        parent = self.rootIndex()
-        
-        hasBookmarks = False
-        
-        for i in range(parent.model().rowCount(parent)):
-            child = parent.model().index(i, 0, parent)
-            
-            if child.data(BookmarksModel.TypeRole) == BookmarkNode.Bookmark:
-                hasBookmarks = True
-                break
-        
-        if not hasBookmarks:
-            return
-        
-        self.addSeparator()
-        act = self.addAction(self.tr("Open all in Tabs"))
-        act.triggered.connect(lambda: self.openAll(act))
-    
-    def openAll(self, act):
-        """
-        Public slot to open all the menu's items.
-        
-        @param act reference to the action object
-        @type QAction
-        """
-        menu = act.parent()
-        if menu is None:
-            return
-        
-        parent = menu.rootIndex()
-        if not parent.isValid():
-            return
-        
-        for i in range(parent.model().rowCount(parent)):
-            child = parent.model().index(i, 0, parent)
-            
-            if child.data(BookmarksModel.TypeRole) != BookmarkNode.Bookmark:
-                continue
-            
-            if i == 0:
-                self.openUrl.emit(
-                    child.data(BookmarksModel.UrlRole),
-                    child.data(Qt.DisplayRole))
-            else:
-                self.newUrl.emit(
-                    child.data(BookmarksModel.UrlRole),
-                    child.data(Qt.DisplayRole))
-    
-    def __contextMenuRequested(self, pos):
-        """
-        Private slot to handle the context menu request.
-        
-        @param pos position the context menu shall be shown (QPoint)
-        """
-        act = self.actionAt(pos)
-        
-        if act is not None and \
-                act.menu() is None and \
-                self.index(act).isValid():
-            menu = QMenu()
-            v = act.data()
-            
-            act2 = menu.addAction(self.tr("Open"))
-            act2.setData(v)
-            act2.triggered.connect(
-                lambda: self.__openBookmark(act2))
-            act2 = menu.addAction(self.tr("Open in New Tab\tCtrl+LMB"))
-            act2.setData(v)
-            act2.triggered.connect(
-                lambda: self.__openBookmarkInNewTab(act2))
-            menu.addSeparator()
-            
-            act2 = menu.addAction(self.tr("Remove"))
-            act2.setData(v)
-            act2.triggered.connect(lambda: self.__removeBookmark(act2))
-            menu.addSeparator()
-            
-            act2 = menu.addAction(self.tr("Properties..."))
-            act2.setData(v)
-            act2.triggered.connect(lambda: self.__edit(act2))
-            
-            execAct = menu.exec_(QCursor.pos())
-            if execAct is not None:
-                self.close()
-                parent = self.parent()
-                while parent is not None and isinstance(parent, QMenu):
-                    parent.close()
-                    parent = parent.parent()
-    
-    def __openBookmark(self, act):
-        """
-        Private slot to open a bookmark in the current browser tab.
-        
-        @param act reference to the triggering action
-        @type QAction
-        """
-        idx = self.index(act)
-        
-        self.openUrl.emit(
-            idx.data(BookmarksModel.UrlRole),
-            idx.data(Qt.DisplayRole))
-    
-    def __openBookmarkInNewTab(self, act):
-        """
-        Private slot to open a bookmark in a new browser tab.
-        
-        @param act reference to the triggering action
-        @type QAction
-        """
-        idx = self.index(act)
-        
-        self.newUrl.emit(
-            idx.data(BookmarksModel.UrlRole),
-            idx.data(Qt.DisplayRole))
-    
-    def __removeBookmark(self, act):
-        """
-        Private slot to remove a bookmark.
-        
-        @param act reference to the triggering action
-        @type QAction
-        """
-        idx = self.index(act)
-        self.removeEntry(idx)
-    
-    def __edit(self, act):
-        """
-        Private slot to edit a bookmarks properties.
-        
-        @param act reference to the triggering action
-        @type QAction
-        """
-        from .BookmarkPropertiesDialog import BookmarkPropertiesDialog
-        
-        idx = self.index(act)
-        node = self.model().node(idx)
-        dlg = BookmarkPropertiesDialog(node)
-        dlg.exec_()
-
-##############################################################################
-
-
-class BookmarksMenuBarMenu(BookmarksMenu):
-    """
-    Class implementing a dynamically populated menu for bookmarks.
-    
-    @signal openUrl(QUrl, str) emitted to open a URL with the given title in
-        the current tab
-    """
-    openUrl = pyqtSignal(QUrl, str)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        BookmarksMenu.__init__(self, parent)
-        
-        self.__bookmarksManager = None
-        self.__initialActions = []
-    
-    def prePopulated(self):
-        """
-        Public method to add any actions before the tree.
-       
-        @return flag indicating if any actions were added (boolean)
-        """
-        import Helpviewer.HelpWindow
-        
-        self.__bookmarksManager = Helpviewer.HelpWindow.HelpWindow\
-            .bookmarksManager()
-        self.setModel(self.__bookmarksManager.bookmarksModel())
-        self.setRootIndex(self.__bookmarksManager.bookmarksModel()
-                          .nodeIndex(self.__bookmarksManager.menu()))
-        
-        # initial actions
-        for act in self.__initialActions:
-            if act == "--SEPARATOR--":
-                self.addSeparator()
-            else:
-                self.addAction(act)
-        if len(self.__initialActions) != 0:
-            self.addSeparator()
-        
-        self.createMenu(
-            self.__bookmarksManager.bookmarksModel()
-                .nodeIndex(self.__bookmarksManager.toolbar()),
-            1, self)
-        return True
-    
-    def postPopulated(self):
-        """
-        Public method to add any actions after the tree.
-        """
-        if self.isEmpty():
-            return
-        
-        parent = self.rootIndex()
-        
-        hasBookmarks = False
-        
-        for i in range(parent.model().rowCount(parent)):
-            child = parent.model().index(i, 0, parent)
-            
-            if child.data(BookmarksModel.TypeRole) == BookmarkNode.Bookmark:
-                hasBookmarks = True
-                break
-        
-        if not hasBookmarks:
-            return
-        
-        self.addSeparator()
-        act = self.addAction(self.tr("Default Home Page"))
-        act.setData("eric:home")
-        act.triggered.connect(
-            lambda: self.__defaultBookmarkTriggered(act))
-        act = self.addAction(self.tr("Speed Dial"))
-        act.setData("eric:speeddial")
-        act.triggered.connect(
-            lambda: self.__defaultBookmarkTriggered(act))
-        self.addSeparator()
-        act = self.addAction(self.tr("Open all in Tabs"))
-        act.triggered.connect(lambda: self.openAll(act))
-    
-    def setInitialActions(self, actions):
-        """
-        Public method to set the list of actions that should appear first in
-        the menu.
-        
-        @param actions list of initial actions (list of QAction)
-        """
-        self.__initialActions = actions[:]
-        for act in self.__initialActions:
-            self.addAction(act)
-    
-    def __defaultBookmarkTriggered(self, act):
-        """
-        Private slot handling the default bookmark menu entries.
-        
-        @param act reference to the action object
-        @type QAction
-        """
-        urlStr = act.data()
-        if urlStr.startswith("eric:"):
-            self.openUrl.emit(QUrl(urlStr), "")
--- a/eric6/Helpviewer/Bookmarks/BookmarksModel.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,478 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the bookmark model class.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt, QAbstractItemModel, QModelIndex, QUrl, \
-    QByteArray, QDataStream, QIODevice, QBuffer, QMimeData
-
-import UI.PixmapCache
-
-
-class BookmarksModel(QAbstractItemModel):
-    """
-    Class implementing the bookmark model.
-    """
-    TypeRole = Qt.UserRole + 1
-    UrlRole = Qt.UserRole + 2
-    UrlStringRole = Qt.UserRole + 3
-    SeparatorRole = Qt.UserRole + 4
-    
-    MIMETYPE = "application/bookmarks.xbel"
-    
-    def __init__(self, manager, parent=None):
-        """
-        Constructor
-        
-        @param manager reference to the bookmark manager object
-            (BookmarksManager)
-        @param parent reference to the parent object (QObject)
-        """
-        super(BookmarksModel, self).__init__(parent)
-        
-        self.__endMacro = False
-        self.__bookmarksManager = manager
-        
-        manager.entryAdded.connect(self.entryAdded)
-        manager.entryRemoved.connect(self.entryRemoved)
-        manager.entryChanged.connect(self.entryChanged)
-        
-        self.__headers = [
-            self.tr("Title"),
-            self.tr("Address"),
-        ]
-    
-    def bookmarksManager(self):
-        """
-        Public method to get a reference to the bookmarks manager.
-        
-        @return reference to the bookmarks manager object (BookmarksManager)
-        """
-        return self.__bookmarksManager
-    
-    def nodeIndex(self, node):
-        """
-        Public method to get a model index.
-        
-        @param node reference to the node to get the index for (BookmarkNode)
-        @return model index (QModelIndex)
-        """
-        parent = node.parent()
-        if parent is None:
-            return QModelIndex()
-        return self.createIndex(parent.children().index(node), 0, node)
-    
-    def entryAdded(self, node):
-        """
-        Public slot to add a bookmark node.
-        
-        @param node reference to the bookmark node to add (BookmarkNode)
-        """
-        if node is None or node.parent() is None:
-            return
-        
-        parent = node.parent()
-        row = parent.children().index(node)
-        # node was already added so remove before beginInsertRows is called
-        parent.remove(node)
-        self.beginInsertRows(self.nodeIndex(parent), row, row)
-        parent.add(node, row)
-        self.endInsertRows()
-    
-    def entryRemoved(self, parent, row, node):
-        """
-        Public slot to remove a bookmark node.
-        
-        @param parent reference to the parent bookmark node (BookmarkNode)
-        @param row row number of the node (integer)
-        @param node reference to the bookmark node to remove (BookmarkNode)
-        """
-        # node was already removed, re-add so beginRemoveRows works
-        parent.add(node, row)
-        self.beginRemoveRows(self.nodeIndex(parent), row, row)
-        parent.remove(node)
-        self.endRemoveRows()
-    
-    def entryChanged(self, node):
-        """
-        Public method to change a node.
-        
-        @param node reference to the bookmark node to change (BookmarkNode)
-        """
-        idx = self.nodeIndex(node)
-        self.dataChanged.emit(idx, idx)
-    
-    def removeRows(self, row, count, parent=None):
-        """
-        Public method to remove bookmarks from the model.
-        
-        @param row row of the first bookmark to remove (integer)
-        @param count number of bookmarks to remove (integer)
-        @param parent index of the parent bookmark node (QModelIndex)
-        @return flag indicating successful removal (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if row < 0 or count <= 0 or row + count > self.rowCount(parent):
-            return False
-        
-        bookmarkNode = self.node(parent)
-        children = bookmarkNode.children()[row:(row + count)]
-        for node in children:
-            if node == self.__bookmarksManager.menu() or \
-               node == self.__bookmarksManager.toolbar():
-                continue
-            self.__bookmarksManager.removeBookmark(node)
-        
-        if self.__endMacro:
-            self.__bookmarksManager.undoRedoStack().endMacro()
-            self.__endMacro = False
-        
-        return True
-    
-    def headerData(self, section, orientation, role=Qt.DisplayRole):
-        """
-        Public method to get the header data.
-        
-        @param section section number (integer)
-        @param orientation header orientation (Qt.Orientation)
-        @param role data role (integer)
-        @return header data
-        """
-        if orientation == Qt.Horizontal and role == Qt.DisplayRole:
-            try:
-                return self.__headers[section]
-            except IndexError:
-                pass
-        return QAbstractItemModel.headerData(self, section, orientation, role)
-    
-    def data(self, index, role=Qt.DisplayRole):
-        """
-        Public method to get data from the model.
-        
-        @param index index of bookmark to get data for (QModelIndex)
-        @param role data role (integer)
-        @return bookmark data
-        """
-        if not index.isValid() or index.model() != self:
-            return None
-        
-        from .BookmarkNode import BookmarkNode
-        
-        bookmarkNode = self.node(index)
-        if role in [Qt.EditRole, Qt.DisplayRole]:
-            if bookmarkNode.type() == BookmarkNode.Separator:
-                if index.column() == 0:
-                    return 50 * '\xB7'
-                elif index.column() == 1:
-                    return ""
-            
-            if index.column() == 0:
-                return bookmarkNode.title
-            elif index.column() == 1:
-                return bookmarkNode.url
-        
-        elif role == self.UrlRole:
-            return QUrl(bookmarkNode.url)
-        
-        elif role == self.UrlStringRole:
-            return bookmarkNode.url
-        
-        elif role == self.TypeRole:
-            return bookmarkNode.type()
-        
-        elif role == self.SeparatorRole:
-            return bookmarkNode.type() == BookmarkNode.Separator
-        
-        elif role == Qt.DecorationRole:
-            if index.column() == 0:
-                if bookmarkNode.type() == BookmarkNode.Folder:
-                    return UI.PixmapCache.getIcon("dirOpen.png")
-                import Helpviewer.HelpWindow
-                return Helpviewer.HelpWindow.HelpWindow.icon(
-                    QUrl(bookmarkNode.url))
-        
-        return None
-    
-    def columnCount(self, parent=None):
-        """
-        Public method to get the number of columns.
-        
-        @param parent index of parent (QModelIndex)
-        @return number of columns (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.column() > 0:
-            return 0
-        else:
-            return len(self.__headers)
-    
-    def rowCount(self, parent=None):
-        """
-        Public method to determine the number of rows.
-        
-        @param parent index of parent (QModelIndex)
-        @return number of rows (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.column() > 0:
-            return 0
-        
-        if not parent.isValid():
-            return len(self.__bookmarksManager.bookmarks().children())
-        
-        itm = parent.internalPointer()
-        return len(itm.children())
-    
-    def index(self, row, column, parent=None):
-        """
-        Public method to get a model index for a node cell.
-        
-        @param row row number (integer)
-        @param column column number (integer)
-        @param parent index of the parent (QModelIndex)
-        @return index (QModelIndex)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if row < 0 or column < 0 or \
-           row >= self.rowCount(parent) or column >= self.columnCount(parent):
-            return QModelIndex()
-        
-        parentNode = self.node(parent)
-        return self.createIndex(row, column, parentNode.children()[row])
-    
-    def parent(self, index=None):
-        """
-        Public method to get the index of the parent node.
-        
-        @param index index of the child node (QModelIndex)
-        @return index of the parent node (QModelIndex)
-        """
-        if index is None or not index.isValid():
-            return QModelIndex()
-        
-        itemNode = self.node(index)
-        if itemNode is None:
-            parentNode = None
-        else:
-            parentNode = itemNode.parent()
-        
-        if parentNode is None or \
-                parentNode == self.__bookmarksManager.bookmarks():
-            return QModelIndex()
-        
-        # get the parent's row
-        grandParentNode = parentNode.parent()
-        parentRow = grandParentNode.children().index(parentNode)
-        return self.createIndex(parentRow, 0, parentNode)
-    
-    def hasChildren(self, parent=None):
-        """
-        Public method to check, if a parent node has some children.
-        
-        @param parent index of the parent node (QModelIndex)
-        @return flag indicating the presence of children (boolean)
-        """
-        if parent is None or not parent.isValid():
-            return True
-        
-        from .BookmarkNode import BookmarkNode
-        parentNode = self.node(parent)
-        return parentNode.type() == BookmarkNode.Folder
-    
-    def flags(self, index):
-        """
-        Public method to get flags for a node cell.
-        
-        @param index index of the node cell (QModelIndex)
-        @return flags (Qt.ItemFlags)
-        """
-        if not index.isValid():
-            return Qt.NoItemFlags
-        
-        node = self.node(index)
-        type_ = node.type()
-        flags = Qt.ItemIsSelectable | Qt.ItemIsEnabled
-        
-        if self.hasChildren(index):
-            flags |= Qt.ItemIsDropEnabled
-        
-        if node == self.__bookmarksManager.menu() or \
-           node == self.__bookmarksManager.toolbar():
-            return flags
-        
-        flags |= Qt.ItemIsDragEnabled
-        
-        from .BookmarkNode import BookmarkNode
-        if (index.column() == 0 and type_ != BookmarkNode.Separator) or \
-           (index.column() == 1 and type_ == BookmarkNode.Bookmark):
-            flags |= Qt.ItemIsEditable
-        
-        return flags
-    
-    def supportedDropActions(self):
-        """
-        Public method to report the supported drop actions.
-        
-        @return supported drop actions (Qt.DropAction)
-        """
-        return Qt.CopyAction | Qt.MoveAction
-    
-    def mimeTypes(self):
-        """
-        Public method to report the supported mime types.
-        
-        @return supported mime types (list of strings)
-        """
-        return [self.MIMETYPE, "text/uri-list"]
-    
-    def mimeData(self, indexes):
-        """
-        Public method to return the mime data.
-        
-        @param indexes list of indexes (QModelIndexList)
-        @return mime data (QMimeData)
-        """
-        from .XbelWriter import XbelWriter
-        
-        data = QByteArray()
-        stream = QDataStream(data, QIODevice.WriteOnly)
-        urls = []
-        
-        for index in indexes:
-            if index.column() != 0 or not index.isValid():
-                continue
-            
-            encodedData = QByteArray()
-            buffer = QBuffer(encodedData)
-            buffer.open(QIODevice.ReadWrite)
-            writer = XbelWriter()
-            parentNode = self.node(index)
-            writer.write(buffer, parentNode)
-            stream << encodedData
-            urls.append(index.data(self.UrlRole))
-        
-        mdata = QMimeData()
-        mdata.setData(self.MIMETYPE, data)
-        mdata.setUrls(urls)
-        return mdata
-    
-    def dropMimeData(self, data, action, row, column, parent):
-        """
-        Public method to accept the mime data of a drop action.
-        
-        @param data reference to the mime data (QMimeData)
-        @param action drop action requested (Qt.DropAction)
-        @param row row number (integer)
-        @param column column number (integer)
-        @param parent index of the parent node (QModelIndex)
-        @return flag indicating successful acceptance of the data (boolean)
-        """
-        if action == Qt.IgnoreAction:
-            return True
-        
-        if column > 0:
-            return False
-        
-        parentNode = self.node(parent)
-        
-        if not data.hasFormat(self.MIMETYPE):
-            if not data.hasUrls():
-                return False
-            
-            from .BookmarkNode import BookmarkNode
-            node = BookmarkNode(BookmarkNode.Bookmark, parentNode)
-            node.url = bytes(data.urls()[0].toEncoded()).decode()
-            
-            if data.hasText():
-                node.title = data.text()
-            else:
-                node.title = node.url
-            
-            self.__bookmarksManager.addBookmark(parentNode, node, row)
-            return True
-        
-        ba = data.data(self.MIMETYPE)
-        stream = QDataStream(ba, QIODevice.ReadOnly)
-        if stream.atEnd():
-            return False
-        
-        undoStack = self.__bookmarksManager.undoRedoStack()
-        undoStack.beginMacro("Move Bookmarks")
-        
-        from .XbelReader import XbelReader
-        while not stream.atEnd():
-            encodedData = QByteArray()
-            stream >> encodedData
-            buffer = QBuffer(encodedData)
-            buffer.open(QIODevice.ReadOnly)
-            
-            reader = XbelReader()
-            rootNode = reader.read(buffer)
-            for bookmarkNode in rootNode.children():
-                rootNode.remove(bookmarkNode)
-                row = max(0, row)
-                self.__bookmarksManager.addBookmark(
-                    parentNode, bookmarkNode, row)
-                self.__endMacro = True
-        
-        return True
-    
-    def setData(self, index, value, role=Qt.EditRole):
-        """
-        Public method to set the data of a node cell.
-        
-        @param index index of the node cell (QModelIndex)
-        @param value value to be set
-        @param role role of the data (integer)
-        @return flag indicating success (boolean)
-        """
-        if not index.isValid() or (self.flags(index) & Qt.ItemIsEditable) == 0:
-            return False
-        
-        item = self.node(index)
-        
-        if role in (Qt.EditRole, Qt.DisplayRole):
-            if index.column() == 0:
-                self.__bookmarksManager.setTitle(item, value)
-            elif index.column() == 1:
-                self.__bookmarksManager.setUrl(item, value)
-            else:
-                return False
-        
-        elif role == BookmarksModel.UrlRole:
-            self.__bookmarksManager.setUrl(item, value.toString())
-        
-        elif role == BookmarksModel.UrlStringRole:
-            self.__bookmarksManager.setUrl(item, value)
-        
-        else:
-            return False
-        
-        return True
-    
-    def node(self, index):
-        """
-        Public method to get a bookmark node given its index.
-        
-        @param index index of the node (QModelIndex)
-        @return bookmark node (BookmarkNode)
-        """
-        itemNode = index.internalPointer()
-        if itemNode is None:
-            return self.__bookmarksManager.bookmarks()
-        else:
-            return itemNode
--- a/eric6/Helpviewer/Bookmarks/BookmarksToolBar.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a tool bar showing bookmarks.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSignal, Qt, QUrl, QCoreApplication
-from PyQt5.QtGui import QCursor
-from PyQt5.QtWidgets import QMenu
-from PyQt5.QtWebKitWidgets import QWebPage
-
-from E5Gui.E5ModelToolBar import E5ModelToolBar
-
-import Helpviewer.HelpWindow
-
-from .BookmarksModel import BookmarksModel
-
-
-class BookmarksToolBar(E5ModelToolBar):
-    """
-    Class implementing a tool bar showing bookmarks.
-    
-    @signal openUrl(QUrl, str) emitted to open a URL in the current tab
-    @signal newUrl(QUrl, str) emitted to open a URL in a new tab
-    """
-    openUrl = pyqtSignal(QUrl, str)
-    newUrl = pyqtSignal(QUrl, str)
-    
-    def __init__(self, mainWindow, model, parent=None):
-        """
-        Constructor
-        
-        @param mainWindow reference to the main window (HelpWindow)
-        @param model reference to the bookmarks model (BookmarksModel)
-        @param parent reference to the parent widget (QWidget)
-        """
-        E5ModelToolBar.__init__(
-            self, QCoreApplication.translate("BookmarksToolBar", "Bookmarks"),
-            parent)
-        
-        self.__mw = mainWindow
-        self.__bookmarksModel = model
-        
-        Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
-            .bookmarksReloaded.connect(self.__rebuild)
-        
-        self.setModel(model)
-        self.setRootIndex(model.nodeIndex(
-            Helpviewer.HelpWindow.HelpWindow.bookmarksManager().toolbar()))
-        
-        self.setContextMenuPolicy(Qt.CustomContextMenu)
-        self.customContextMenuRequested.connect(self.__contextMenuRequested)
-        self.activated.connect(self.__bookmarkActivated)
-        
-        self.setHidden(True)
-        self.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
-        
-        self._build()
-    
-    def __rebuild(self):
-        """
-        Private slot to rebuild the toolbar.
-        """
-        self.__bookmarksModel = \
-            Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
-            .bookmarksModel()
-        self.setModel(self.__bookmarksModel)
-        self.setRootIndex(self.__bookmarksModel.nodeIndex(
-            Helpviewer.HelpWindow.HelpWindow.bookmarksManager().toolbar()))
-        self._build()
-    
-    def __contextMenuRequested(self, pos):
-        """
-        Private slot to handle the context menu request.
-        
-        @param pos position the context menu shall be shown (QPoint)
-        """
-        act = self.actionAt(pos)
-        menu = QMenu()
-        
-        if act is not None:
-            v = act.data()
-            
-            if act.menu() is None:
-                act2 = menu.addAction(self.tr("Open"))
-                act2.setData(v)
-                act2.triggered.connect(
-                    lambda: self.__openBookmark(act2))
-                act2 = menu.addAction(self.tr("Open in New Tab\tCtrl+LMB"))
-                act2.setData(v)
-                act2.triggered.connect(
-                    lambda: self.__openBookmarkInNewTab(act2))
-                menu.addSeparator()
-            
-            act2 = menu.addAction(self.tr("Remove"))
-            act2.setData(v)
-            act2.triggered.connect(lambda: self.__removeBookmark(act2))
-            menu.addSeparator()
-            
-            act2 = menu.addAction(self.tr("Properties..."))
-            act2.setData(v)
-            act2.triggered.connect(lambda: self.__edit(act2))
-            menu.addSeparator()
-        
-        menu.addAction(self.tr("Add &Bookmark..."), self.__newBookmark)
-        menu.addAction(self.tr("Add &Folder..."), self.__newFolder)
-        
-        menu.exec_(QCursor.pos())
-    
-    def __bookmarkActivated(self, idx):
-        """
-        Private slot handling the activation of a bookmark.
-        
-        @param idx index of the activated bookmark (QModelIndex)
-        """
-        assert idx.isValid()
-        
-        if self._mouseButton == Qt.XButton1:
-            self.__mw.currentBrowser().pageAction(QWebPage.Back).trigger()
-        elif self._mouseButton == Qt.XButton2:
-            self.__mw.currentBrowser().pageAction(QWebPage.Forward).trigger()
-        elif self._mouseButton == Qt.LeftButton:
-            if self._keyboardModifiers & Qt.ControlModifier:
-                self.newUrl.emit(
-                    idx.data(BookmarksModel.UrlRole),
-                    idx.data(Qt.DisplayRole))
-            else:
-                self.openUrl.emit(
-                    idx.data(BookmarksModel.UrlRole),
-                    idx.data(Qt.DisplayRole))
-    
-    def __openBookmark(self, act):
-        """
-        Private slot to open a bookmark in the current browser tab.
-        
-        @param act reference to the triggering action
-        @type QAction
-        """
-        idx = self.index(act)
-        
-        self.openUrl.emit(
-            idx.data(BookmarksModel.UrlRole),
-            idx.data(Qt.DisplayRole))
-    
-    def __openBookmarkInNewTab(self, act):
-        """
-        Private slot to open a bookmark in a new browser tab.
-        
-        @param act reference to the triggering action
-        @type QAction
-        """
-        idx = self.index(act)
-        
-        self.newUrl.emit(
-            idx.data(BookmarksModel.UrlRole),
-            idx.data(Qt.DisplayRole))
-    
-    def __removeBookmark(self, act):
-        """
-        Private slot to remove a bookmark.
-        
-        @param act reference to the triggering action
-        @type QAction
-        """
-        idx = self.index(act)
-        
-        self.__bookmarksModel.removeRow(idx.row(), self.rootIndex())
-    
-    def __newBookmark(self):
-        """
-        Private slot to add a new bookmark.
-        """
-        from .AddBookmarkDialog import AddBookmarkDialog
-        dlg = AddBookmarkDialog()
-        dlg.setCurrentIndex(self.rootIndex())
-        dlg.exec_()
-    
-    def __newFolder(self):
-        """
-        Private slot to add a new bookmarks folder.
-        """
-        from .AddBookmarkDialog import AddBookmarkDialog
-        dlg = AddBookmarkDialog()
-        dlg.setCurrentIndex(self.rootIndex())
-        dlg.setFolder(True)
-        dlg.exec_()
-    
-    def _createMenu(self):
-        """
-        Protected method to create the menu for a tool bar action.
-        
-        @return menu for a tool bar action (E5ModelMenu)
-        """
-        from .BookmarksMenu import BookmarksMenu
-        menu = BookmarksMenu(self)
-        menu.openUrl.connect(self.openUrl)
-        menu.newUrl.connect(self.newUrl)
-        return menu
-    
-    def __edit(self, act):
-        """
-        Private slot to edit a bookmarks properties.
-        
-        @param act reference to the triggering action
-        @type QAction
-        """
-        from .BookmarkPropertiesDialog import BookmarkPropertiesDialog
-        idx = self.index(act)
-        node = self.__bookmarksModel.node(idx)
-        dlg = BookmarkPropertiesDialog(node)
-        dlg.exec_()
--- a/eric6/Helpviewer/Bookmarks/DefaultBookmarks.qrc	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<!DOCTYPE RCC>
-<RCC version="1.0">
-<qresource>
-  <file>DefaultBookmarks.xbel</file>
-</qresource>
-</RCC>
--- a/eric6/Helpviewer/Bookmarks/DefaultBookmarks.xbel	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE xbel>
-<xbel version="1.0">
-    <folder folded="no">
-        <title>Bookmarks Bar</title>
-        <bookmark href="https://eric-ide.python-projects.org/">
-            <title>Eric Web Site</title>
-        </bookmark>
-        <bookmark href="https://www.riverbankcomputing.com/news">
-            <title>PyQt Web Site</title>
-        </bookmark>
-        <folder folded="no">
-            <title>Qt Web Sites</title>
-            <bookmark href="http://www.qt.io//">
-                <title>Qt Web Site</title>
-            </bookmark>
-            <bookmark href="http://www.qt.io/developers/">
-                <title>Qt Developers</title>
-            </bookmark>
-            <bookmark href="http://doc.qt.io/">
-                <title>Qt Documentation</title>
-            </bookmark>
-            <bookmark href="http://blog.qt.io/">
-                <title>Qt Blog</title>
-            </bookmark>
-            <bookmark href="http://forum.qt.io/">
-                <title>Qt Forum</title>
-            </bookmark>
-            <bookmark href="http://planet.qt.io/">
-                <title>Planet Qt</title>
-            </bookmark>
-            <bookmark href="http://www.qtcentre.org/">
-                <title>Qt Centre</title>
-            </bookmark>
-            <bookmark href="https://www.linux-apps.com/browse/ord/latest/">
-                <title>Qt Applications</title>
-            </bookmark>
-        </folder>
-        <folder folded="no">
-            <title>Python Web Sites</title>
-            <bookmark href="https://www.python.org/">
-                <title>Python Language Website</title>
-            </bookmark>
-            <bookmark href="https://pypi.org/">
-                <title>Python Package Index: PyPI</title>
-            </bookmark>
-        </folder>
-    </folder>
-    <folder folded="yes">
-        <title>Bookmarks Menu</title>
-        <bookmark href="https://eric-ide.python-projects.org/">
-            <title>Eric Web Site</title>
-        </bookmark>
-        <bookmark href="https://www.riverbankcomputing.com/news">
-            <title>PyQt4 Web Site</title>
-        </bookmark>
-        <bookmark href="javascript:location.href='mailto:?SUBJECT=' + document.title + '&amp;BODY=' + escape(location.href);">
-            <title>Send Link</title>
-        </bookmark>
-    </folder>
-</xbel>
--- a/eric6/Helpviewer/Bookmarks/DefaultBookmarks_rc.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Resource object code
-#
-# Created by: The Resource Compiler for PyQt5 (Qt v5.12.1)
-#
-# WARNING! All changes made in this file will be lost!
-
-from PyQt5 import QtCore
-
-qt_resource_data = b"\
-\x00\x00\x02\x0d\
-\x00\
-\x00\x09\x25\x78\x9c\xdd\x96\x5f\x6f\xda\x30\x10\xc0\xdf\xfb\x29\
-\xbc\x3c\x8c\x4d\x13\xf1\x26\xed\x61\xa2\x01\x34\xfe\x4c\xea\xd4\
-\xa9\xa9\xe8\x34\xf5\xd1\x71\x8e\xe0\xe2\xd8\x9e\xed\x00\xf9\xf6\
-\x33\x49\x58\x81\x66\x90\xb6\x79\x5a\x5e\x1c\xfb\xce\xf7\xbb\xbb\
-\x9c\xcf\x09\x86\x9b\x94\xa3\x15\x68\xc3\xa4\xe8\x7b\x9f\xfc\x8f\
-\x1e\x02\x41\x65\xcc\x44\xd2\xf7\x32\x3b\xef\x7e\xf1\x86\x83\x8b\
-\xe0\xcd\xe4\x66\x7c\x77\x1f\x4e\xd1\x26\x02\xee\xe6\xdb\xe1\x70\
-\xdb\xe0\x02\xb9\x27\x98\x4b\x1e\x83\x46\xc5\x10\xf7\x3d\x21\x2b\
-\x41\x21\xb4\xcc\x72\x18\x8c\xa4\x5c\xa6\x44\x2f\x0d\x1a\x11\x1d\
-\xe0\x72\xf1\x51\x29\xaa\xc4\x68\xa1\x61\xde\xf7\x16\xd6\x2a\xd3\
-\xc3\x18\x34\xa3\x5d\x16\x83\xaf\x72\xbb\x90\xa2\xab\xb4\x7c\x00\
-\x6a\x8d\x2f\x75\x82\xf7\x20\x7b\xa0\xa9\xdb\x82\x7e\x41\x84\x66\
-\xcc\xc2\x53\x10\xde\x91\xce\xc3\xd7\xeb\xb5\xaf\x99\x8b\x37\x22\
-\x62\x49\x65\xaa\x32\xeb\x12\xe4\xbb\x37\x2c\x60\x6d\xea\xf1\x61\
-\x7e\x6b\x9f\x89\x3f\x95\xbd\x3d\xcb\x7b\x76\xcd\x13\xc3\xff\x8a\
-\xa3\x0a\xe3\xb7\xf5\x99\xc4\xc7\x19\xab\x37\x5e\x6f\xbb\xc6\xf1\
-\x46\xcc\x18\x56\xc0\xa5\x72\x45\x73\x9a\x3e\xf9\xab\xd7\x06\x3f\
-\x96\xb4\xe2\x9f\x86\x4a\x9a\xa5\x20\x2c\xb1\xae\xa2\xdb\xe0\x46\
-\x5c\x26\x4d\xc0\x23\xa7\xd7\x06\x6f\x2e\x75\x96\x36\x01\x7e\xdb\
-\x2a\xb6\x41\x54\x9c\x08\xb0\x67\x91\x61\xa1\x86\x6e\x6d\x7b\xd5\
-\x44\xdd\x87\xd2\x50\x77\xf2\x0f\x43\x1d\x17\x7a\xaf\xe6\xee\x3a\
-\x00\x67\x22\xdb\x74\x89\x52\xa6\x38\xf9\x91\x96\x6b\x03\x58\xea\
-\x18\x73\xe2\x4e\xa2\x3d\xed\xcc\x57\xa5\x38\xa3\x45\x7d\x35\x2f\
-\xec\x00\x97\x2d\xe1\xf9\x3d\x22\x2c\xda\xe4\x0b\xfa\xc4\x2e\xda\
-\xb2\xcf\x9e\x49\x72\x45\xb9\x26\x22\xc9\x48\x02\x5b\x9c\x69\xa3\
-\x71\x6c\x9d\x50\xb9\x62\xcd\xf0\x21\xa1\xcb\x2d\xfd\x4a\xc4\xb0\
-\xe9\xa1\x30\x0f\xaf\x5e\x98\xe1\xa3\xd9\x51\xae\x73\x30\xa7\xae\
-\xb3\x1f\x20\xb2\xff\xfc\x3e\xfb\xfc\x3a\xfe\x03\x59\x11\x43\x35\
-\x53\xb6\xc7\x65\x79\x16\xfc\x42\xd2\x49\x09\xe3\x56\xf6\x86\xb3\
-\x9f\xa3\xef\xd3\xf1\x5d\xbf\x83\x3e\xa0\xb8\xea\xc9\x7e\x41\x72\
-\x0b\x9d\xb7\x24\x55\x97\xa3\x9b\xc9\x7d\x21\x07\x43\x89\x82\x77\
-\x07\x96\xde\x5f\xd6\x3b\x3f\x03\x11\xa3\x6b\x26\x96\x67\xfd\x7e\
-\x2c\x81\x00\x97\x7f\x3b\x7f\x00\x1a\xda\x9c\x8e\
-"
-
-qt_resource_name = b"\
-\x00\x15\
-\x0c\xd3\x2e\x3c\
-\x00\x44\
-\x00\x65\x00\x66\x00\x61\x00\x75\x00\x6c\x00\x74\x00\x42\x00\x6f\x00\x6f\x00\x6b\x00\x6d\x00\x61\x00\x72\x00\x6b\x00\x73\x00\x2e\
-\x00\x78\x00\x62\x00\x65\x00\x6c\
-"
-
-qt_resource_struct_v1 = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
-"
-
-qt_resource_struct_v2 = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\x6a\x36\x3b\x4f\xd9\
-"
-
-qt_version = [int(v) for v in QtCore.qVersion().split('.')]
-if qt_version < [5, 8, 0]:
-    rcc_version = 1
-    qt_resource_struct = qt_resource_struct_v1
-else:
-    rcc_version = 2
-    qt_resource_struct = qt_resource_struct_v2
-
-def qInitResources():
-    QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-def qCleanupResources():
-    QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-qInitResources()
--- a/eric6/Helpviewer/Bookmarks/NsHtmlReader.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a class to read Netscape HTML bookmark files.
-"""
-
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
-from PyQt5.QtCore import QObject, QIODevice, QFile, QRegExp, Qt, QDateTime
-
-from .BookmarkNode import BookmarkNode
-
-import Utilities
-
-
-class NsHtmlReader(QObject):
-    """
-    Class implementing a reader object for Netscape HTML bookmark files.
-    """
-    indentSize = 4
-    
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(NsHtmlReader, self).__init__()
-        
-        self.__folderRx = QRegExp("<DT><H3(.*)>(.*)</H3>", Qt.CaseInsensitive)
-        self.__folderRx.setMinimal(True)
-        
-        self.__endFolderRx = QRegExp("</DL>", Qt.CaseInsensitive)
-        
-        self.__bookmarkRx = QRegExp("<DT><A(.*)>(.*)</A>", Qt.CaseInsensitive)
-        self.__bookmarkRx.setMinimal(True)
-        
-        self.__descRx = QRegExp("<DD>(.*)", Qt.CaseInsensitive)
-        
-        self.__separatorRx = QRegExp("<HR>", Qt.CaseInsensitive)
-        
-        self.__urlRx = QRegExp('HREF="(.*)"', Qt.CaseInsensitive)
-        self.__urlRx.setMinimal(True)
-
-        self.__addedRx = QRegExp(r'ADD_DATE="(\d*)"', Qt.CaseInsensitive)
-        self.__addedRx.setMinimal(True)
-        
-        self.__modifiedRx = QRegExp(
-            r'LAST_MODIFIED="(\d*)"', Qt.CaseInsensitive)
-        self.__modifiedRx.setMinimal(True)
-        
-        self.__visitedRx = QRegExp(r'LAST_VISIT="(\d*)"', Qt.CaseInsensitive)
-        self.__visitedRx.setMinimal(True)
-        
-        self.__foldedRx = QRegExp("FOLDED", Qt.CaseInsensitive)
-    
-    def read(self, fileNameOrDevice):
-        """
-        Public method to read a Netscape HTML bookmark file.
-        
-        @param fileNameOrDevice name of the file to read (string)
-            or reference to the device to read (QIODevice)
-        @return reference to the root node (BookmarkNode)
-        """
-        if isinstance(fileNameOrDevice, QIODevice):
-            dev = fileNameOrDevice
-        else:
-            f = QFile(fileNameOrDevice)
-            if not f.exists():
-                return BookmarkNode(BookmarkNode.Root)
-            f.open(QFile.ReadOnly)
-            dev = f
-        
-        folders = []
-        lastNode = None
-        
-        root = BookmarkNode(BookmarkNode.Root)
-        folders.append(root)
-        
-        while not dev.atEnd():
-            line = str(dev.readLine(), encoding="utf-8").rstrip()
-            if self.__folderRx.indexIn(line) != -1:
-                # folder definition
-                arguments = self.__folderRx.cap(1)
-                name = self.__folderRx.cap(2)
-                node = BookmarkNode(BookmarkNode.Folder, folders[-1])
-                node.title = Utilities.html_udecode(name)
-                node.expanded = self.__foldedRx.indexIn(arguments) == -1
-                if self.__addedRx.indexIn(arguments) != -1:
-                    node.added = QDateTime.fromTime_t(
-                        int(self.__addedRx.cap(1)))
-                folders.append(node)
-                lastNode = node
-            
-            elif self.__endFolderRx.indexIn(line) != -1:
-                # end of folder definition
-                folders.pop()
-            
-            elif self.__bookmarkRx.indexIn(line) != -1:
-                # bookmark definition
-                arguments = self.__bookmarkRx.cap(1)
-                name = self.__bookmarkRx.cap(2)
-                node = BookmarkNode(BookmarkNode.Bookmark, folders[-1])
-                node.title = Utilities.html_udecode(name)
-                if self.__urlRx.indexIn(arguments) != -1:
-                    node.url = self.__urlRx.cap(1)
-                if self.__addedRx.indexIn(arguments) != -1:
-                    node.added = QDateTime.fromTime_t(
-                        int(self.__addedRx.cap(1)))
-                if self.__modifiedRx.indexIn(arguments) != -1:
-                    node.modified = QDateTime.fromTime_t(
-                        int(self.__modifiedRx.cap(1)))
-                if self.__visitedRx.indexIn(arguments) != -1:
-                    node.visited = QDateTime.fromTime_t(
-                        int(self.__visitedRx.cap(1)))
-                lastNode = node
-            
-            elif self.__descRx.indexIn(line) != -1:
-                # description
-                if lastNode:
-                    lastNode.desc = Utilities.html_udecode(
-                        self.__descRx.cap(1))
-            
-            elif self.__separatorRx.indexIn(line) != -1:
-                # separator definition
-                BookmarkNode(BookmarkNode.Separator, folders[-1])
-        
-        return root
--- a/eric6/Helpviewer/Bookmarks/NsHtmlWriter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a class to write Netscape HTML bookmark files.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QObject, QIODevice, QFile
-
-from .BookmarkNode import BookmarkNode
-
-import Utilities
-
-
-class NsHtmlWriter(QObject):
-    """
-    Class implementing a writer object to generate Netscape HTML bookmark
-    files.
-    """
-    indentSize = 4
-    
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(NsHtmlWriter, self).__init__()
-    
-    def write(self, fileNameOrDevice, root):
-        """
-        Public method to write an Netscape HTML bookmark file.
-        
-        @param fileNameOrDevice name of the file to write (string)
-            or device to write to (QIODevice)
-        @param root root node of the bookmark tree (BookmarkNode)
-        @return flag indicating success (boolean)
-        """
-        if isinstance(fileNameOrDevice, QIODevice):
-            f = fileNameOrDevice
-        else:
-            f = QFile(fileNameOrDevice)
-            if root is None or not f.open(QFile.WriteOnly):
-                return False
-        
-        self.__dev = f
-        return self.__write(root)
-    
-    def __write(self, root):
-        """
-        Private method to write an Netscape HTML bookmark file.
-        
-        @param root root node of the bookmark tree (BookmarkNode)
-        @return flag indicating success (boolean)
-        """
-        self.__dev.write(
-            "<!DOCTYPE NETSCAPE-Bookmark-file-1>\n"
-            "<!-- This is an automatically generated file.\n"
-            "     It will be read and overwritten.\n"
-            "     DO NOT EDIT! -->\n"
-            "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html;"
-            " charset=UTF-8\">\n"
-            "<TITLE>Bookmarks</TITLE>\n"
-            "<H1>Bookmarks</H1>\n"
-            "\n"
-            "<DL><p>\n")
-        if root.type() == BookmarkNode.Root:
-            for child in root.children():
-                self.__writeItem(child, self.indentSize)
-        else:
-            self.__writeItem(root, self.indentSize)
-        self.__dev.write("</DL><p>\n")
-        return True
-    
-    def __writeItem(self, node, indent):
-        """
-        Private method to write an entry for a node.
-        
-        @param node reference to the node to be written (BookmarkNode)
-        @param indent size of the indentation (integer)
-        """
-        if node.type() == BookmarkNode.Folder:
-            self.__writeFolder(node, indent)
-        elif node.type() == BookmarkNode.Bookmark:
-            self.__writeBookmark(node, indent)
-        elif node.type() == BookmarkNode.Separator:
-            self.__writeSeparator(indent)
-    
-    def __writeSeparator(self, indent):
-        """
-        Private method to write a separator.
-        
-        @param indent size of the indentation (integer)
-        """
-        self.__dev.write(" " * indent)
-        self.__dev.write("<HR>\n")
-    
-    def __writeBookmark(self, node, indent):
-        """
-        Private method to write a bookmark node.
-        
-        @param node reference to the node to be written (BookmarkNode)
-        @param indent size of the indentation (integer)
-        """
-        if node.added.isValid():
-            added = " ADD_DATE=\"{0}\"".format(node.added.toTime_t())
-        else:
-            added = ""
-        if node.modified.isValid():
-            modified = " LAST_MODIFIED=\"{0}\"".format(
-                node.modified.toTime_t())
-        else:
-            modified = ""
-        if node.visited.isValid():
-            visited = " LAST_VISIT=\"{0}\"".format(node.visited.toTime_t())
-        else:
-            visited = ""
-        
-        self.__dev.write(" " * indent)
-        self.__dev.write("<DT><A HREF=\"{0}\"{1}{2}{3}>{4}</A>\n".format(
-            node.url, added, modified, visited,
-            Utilities.html_uencode(node.title)
-        ))
-        
-        if node.desc:
-            self.__dev.write(" " * indent)
-            self.__dev.write("<DD>{0}\n".format(
-                Utilities.html_uencode("".join(node.desc.splitlines()))))
-    
-    def __writeFolder(self, node, indent):
-        """
-        Private method to write a bookmark node.
-        
-        @param node reference to the node to be written (BookmarkNode)
-        @param indent size of the indentation (integer)
-        """
-        if node.expanded:
-            folded = ""
-        else:
-            folded = " FOLDED"
-        
-        if node.added.isValid():
-            added = " ADD_DATE=\"{0}\"".format(node.added.toTime_t())
-        else:
-            added = ""
-        
-        self.__dev.write(" " * indent)
-        self.__dev.write("<DT><H3{0}{1}>{2}</H3>\n".format(
-            folded, added, Utilities.html_uencode(node.title)
-        ))
-        
-        if node.desc:
-            self.__dev.write(" " * indent)
-            self.__dev.write("<DD>{0}\n".format(
-                "".join(node.desc.splitlines())))
-        
-        self.__dev.write(" " * indent)
-        self.__dev.write("<DL><p>\n")
-        
-        for child in node.children():
-            self.__writeItem(child, indent + self.indentSize)
-        
-        self.__dev.write(" " * indent)
-        self.__dev.write("</DL><p>\n")
--- a/eric6/Helpviewer/Bookmarks/XbelReader.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,235 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a class to read XBEL bookmark files.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QXmlStreamReader, QXmlStreamEntityResolver, \
-    QIODevice, QFile, QCoreApplication, QXmlStreamNamespaceDeclaration, \
-    QDateTime, Qt
-
-from .BookmarkNode import BookmarkNode
-
-
-class XmlEntityResolver(QXmlStreamEntityResolver):
-    """
-    Class implementing an XML entity resolver for bookmark files.
-    """
-    def resolveUndeclaredEntity(self, entity):
-        """
-        Public method to resolve undeclared entities.
-        
-        @param entity entity to be resolved (string)
-        @return resolved entity (string)
-        """
-        if entity == "nbsp":
-            return " "
-        return ""
-
-
-class XbelReader(QXmlStreamReader):
-    """
-    Class implementing a reader object for XBEL bookmark files.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(XbelReader, self).__init__()
-        
-        self.__resolver = XmlEntityResolver()
-        self.setEntityResolver(self.__resolver)
-    
-    def read(self, fileNameOrDevice):
-        """
-        Public method to read an XBEL bookmark file.
-        
-        @param fileNameOrDevice name of the file to read (string)
-            or reference to the device to read (QIODevice)
-        @return reference to the root node (BookmarkNode)
-        """
-        if isinstance(fileNameOrDevice, QIODevice):
-            self.setDevice(fileNameOrDevice)
-        else:
-            f = QFile(fileNameOrDevice)
-            if not f.exists():
-                return BookmarkNode(BookmarkNode.Root)
-            f.open(QFile.ReadOnly)
-            self.setDevice(f)
-        
-        root = BookmarkNode(BookmarkNode.Root)
-        while not self.atEnd():
-            self.readNext()
-            if self.isStartElement():
-                version = self.attributes().value("version")
-                if self.name() == "xbel" and \
-                   (not version or version == "1.0"):
-                    self.__readXBEL(root)
-                else:
-                    self.raiseError(QCoreApplication.translate(
-                        "XbelReader",
-                        "The file is not an XBEL version 1.0 file."))
-        
-        return root
-    
-    def __readXBEL(self, node):
-        """
-        Private method to read and parse the XBEL file.
-        
-        @param node reference to the node to attach to (BookmarkNode)
-        """
-        if not self.isStartElement() and self.name() != "xbel":
-            return
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isEndElement():
-                break
-            
-            if self.isStartElement():
-                if self.name() == "folder":
-                    self.__readFolder(node)
-                elif self.name() == "bookmark":
-                    self.__readBookmarkNode(node)
-                elif self.name() == "separator":
-                    self.__readSeparator(node)
-                else:
-                    self.__skipUnknownElement()
-    
-    def __readFolder(self, node):
-        """
-        Private method to read and parse a folder subtree.
-        
-        @param node reference to the node to attach to (BookmarkNode)
-        """
-        if not self.isStartElement() and self.name() != "folder":
-            return
-        
-        folder = BookmarkNode(BookmarkNode.Folder, node)
-        folder.expanded = self.attributes().value("folded") == "no"
-        folder.added = QDateTime.fromString(
-            self.attributes().value("added"), Qt.ISODate)
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isEndElement():
-                break
-            
-            if self.isStartElement():
-                if self.name() == "title":
-                    self.__readTitle(folder)
-                elif self.name() == "desc":
-                    self.__readDescription(folder)
-                elif self.name() == "folder":
-                    self.__readFolder(folder)
-                elif self.name() == "bookmark":
-                    self.__readBookmarkNode(folder)
-                elif self.name() == "separator":
-                    self.__readSeparator(folder)
-                elif self.name() == "info":
-                    self.__readInfo()
-                else:
-                    self.__skipUnknownElement()
-    
-    def __readTitle(self, node):
-        """
-        Private method to read the title element.
-        
-        @param node reference to the bookmark node title belongs to
-            (BookmarkNode)
-        """
-        if not self.isStartElement() and self.name() != "title":
-            return
-        
-        node.title = self.readElementText()
-    
-    def __readDescription(self, node):
-        """
-        Private method to read the desc element.
-        
-        @param node reference to the bookmark node desc belongs to
-            (BookmarkNode)
-        """
-        if not self.isStartElement() and self.name() != "desc":
-            return
-        
-        node.desc = self.readElementText()
-    
-    def __readSeparator(self, node):
-        """
-        Private method to read a separator element.
-        
-        @param node reference to the bookmark node the separator belongs to
-            (BookmarkNode)
-        """
-        sep = BookmarkNode(BookmarkNode.Separator, node)
-        sep.added = QDateTime.fromString(
-            self.attributes().value("added"), Qt.ISODate)
-        
-        # empty elements have a start and end element
-        while not self.atEnd():
-            self.readNext()
-            if self.isEndElement():
-                break
-            
-            if self.isStartElement():
-                if self.name() == "info":
-                    self.__readInfo()
-                else:
-                    self.__skipUnknownElement()
-    
-    def __readBookmarkNode(self, node):
-        """
-        Private method to read and parse a bookmark subtree.
-        
-        @param node reference to the node to attach to (BookmarkNode)
-        """
-        if not self.isStartElement() and self.name() != "bookmark":
-            return
-        
-        bookmark = BookmarkNode(BookmarkNode.Bookmark, node)
-        bookmark.url = self.attributes().value("href")
-        bookmark.added = QDateTime.fromString(
-            self.attributes().value("added"), Qt.ISODate)
-        bookmark.modified = QDateTime.fromString(
-            self.attributes().value("modified"), Qt.ISODate)
-        bookmark.visited = QDateTime.fromString(
-            self.attributes().value("visited"), Qt.ISODate)
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isEndElement():
-                break
-            
-            if self.isStartElement():
-                if self.name() == "title":
-                    self.__readTitle(bookmark)
-                elif self.name() == "desc":
-                    self.__readDescription(bookmark)
-                elif self.name() == "info":
-                    self.__readInfo()
-                else:
-                    self.__skipUnknownElement()
-        
-        if not bookmark.title:
-            bookmark.title = QCoreApplication.translate(
-                "XbelReader", "Unknown title")
-    
-    def __readInfo(self):
-        """
-        Private method to read and parse an info subtree.
-        """
-        self.addExtraNamespaceDeclaration(QXmlStreamNamespaceDeclaration(
-            "bookmark", "http://www.python.org"))
-        self.skipCurrentElement()
-    
-    def __skipUnknownElement(self):
-        """
-        Private method to skip over all unknown elements.
-        """
-        self.skipCurrentElement()
--- a/eric6/Helpviewer/Bookmarks/XbelWriter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a class to write XBEL bookmark files.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QXmlStreamWriter, QIODevice, QFile, Qt
-
-from .BookmarkNode import BookmarkNode
-
-
-class XbelWriter(QXmlStreamWriter):
-    """
-    Class implementing a writer object to generate XBEL bookmark files.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(XbelWriter, self).__init__()
-        
-        self.setAutoFormatting(True)
-    
-    def write(self, fileNameOrDevice, root):
-        """
-        Public method to write an XBEL bookmark file.
-        
-        @param fileNameOrDevice name of the file to write (string)
-            or device to write to (QIODevice)
-        @param root root node of the bookmark tree (BookmarkNode)
-        @return flag indicating success (boolean)
-        """
-        if isinstance(fileNameOrDevice, QIODevice):
-            f = fileNameOrDevice
-        else:
-            f = QFile(fileNameOrDevice)
-            if root is None or not f.open(QFile.WriteOnly):
-                return False
-        
-        self.setDevice(f)
-        return self.__write(root)
-    
-    def __write(self, root):
-        """
-        Private method to write an XBEL bookmark file.
-        
-        @param root root node of the bookmark tree (BookmarkNode)
-        @return flag indicating success (boolean)
-        """
-        self.writeStartDocument()
-        self.writeDTD("<!DOCTYPE xbel>")
-        self.writeStartElement("xbel")
-        self.writeAttribute("version", "1.0")
-        if root.type() == BookmarkNode.Root:
-            for child in root.children():
-                self.__writeItem(child)
-        else:
-            self.__writeItem(root)
-        
-        self.writeEndDocument()
-        return True
-    
-    def __writeItem(self, node):
-        """
-        Private method to write an entry for a node.
-        
-        @param node reference to the node to be written (BookmarkNode)
-        """
-        if node.type() == BookmarkNode.Folder:
-            self.writeStartElement("folder")
-            if node.added.isValid():
-                self.writeAttribute("added", node.added.toString(Qt.ISODate))
-            self.writeAttribute("folded", node.expanded and "no" or "yes")
-            self.writeTextElement("title", node.title)
-            for child in node.children():
-                self.__writeItem(child)
-            self.writeEndElement()
-        elif node.type() == BookmarkNode.Bookmark:
-            self.writeStartElement("bookmark")
-            if node.url:
-                self.writeAttribute("href", node.url)
-            if node.added.isValid():
-                self.writeAttribute("added", node.added.toString(Qt.ISODate))
-            if node.modified.isValid():
-                self.writeAttribute(
-                    "modified", node.modified.toString(Qt.ISODate))
-            if node.visited.isValid():
-                self.writeAttribute(
-                    "visited", node.visited.toString(Qt.ISODate))
-            self.writeTextElement("title", node.title)
-            if node.desc:
-                self.writeTextElement("desc", node.desc)
-            self.writeEndElement()
-        elif node.type() == BookmarkNode.Separator:
-            self.writeEmptyElement("separator")
-            if node.added.isValid():
-                self.writeAttribute("added", node.added.toString(Qt.ISODate))
--- a/eric6/Helpviewer/Bookmarks/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the bookmarks system.
-"""
--- a/eric6/Helpviewer/ClosedTabsManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a class to manage closed tabs.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSignal, QUrl, QObject
-from PyQt5.QtWebKit import QWebSettings
-
-
-class ClosedTab(object):
-    """
-    Class implementing a structure to store data about a closed tab.
-    """
-    def __init__(self, url=None, title="", position=-1):
-        """
-        Constructor
-        
-        @param url URL of the closed tab (QUrl)
-        @param title title of the closed tab (string)
-        @param position index of the closed tab (integer)
-        """
-        self.url = QUrl() if url is None else QUrl(url)
-        self.title = title
-        self.position = position
-    
-    def __eq__(self, other):
-        """
-        Special method implementing the equality operator.
-        
-        @param other reference to the object to compare against (ClosedTab)
-        @return flag indicating equality of the tabs (boolean)
-        """
-        return self.url == other.url and \
-            self.title == other.title and \
-            self.position == other.position
-
-
-class ClosedTabsManager(QObject):
-    """
-    Class implementing a manager for closed tabs.
-    
-    @signal closedTabAvailable(boolean) emitted to signal a change of
-        availability of closed tabs
-    """
-    closedTabAvailable = pyqtSignal(bool)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(ClosedTabsManager, self).__init__()
-        
-        self.__closedTabs = []
-    
-    def recordBrowser(self, browser, position):
-        """
-        Public method to record the data of a browser about to be closed.
-        
-        @param browser reference to the browser to be closed (HelpBrowser)
-        @param position index of the tab to be closed (integer)
-        """
-        globalSettings = QWebSettings.globalSettings()
-        if globalSettings.testAttribute(QWebSettings.PrivateBrowsingEnabled):
-            return
-        
-        if browser.url().isEmpty():
-            return
-        
-        tab = ClosedTab(browser.url(), browser.title(), position)
-        self.__closedTabs.insert(0, tab)
-        self.closedTabAvailable.emit(True)
-    
-    def getClosedTabAt(self, index):
-        """
-        Public method to get the indexed closed tab.
-        
-        @param index index of the tab to return (integer)
-        @return requested tab (ClosedTab)
-        """
-        if len(self.__closedTabs) > 0 and len(self.__closedTabs) > index:
-            tab = self.__closedTabs.pop(index)
-        else:
-            tab = ClosedTab()
-        self.closedTabAvailable.emit(len(self.__closedTabs) > 0)
-        return tab
-    
-    def isClosedTabAvailable(self):
-        """
-        Public method to check for closed tabs.
-        
-        @return flag indicating the availability of closed tab data (boolean)
-        """
-        return len(self.__closedTabs) > 0
-    
-    def clearList(self):
-        """
-        Public method to clear the list of closed tabs.
-        """
-        self.__closedTabs = []
-        self.closedTabAvailable.emit(False)
-    
-    def allClosedTabs(self):
-        """
-        Public method to get a list of all closed tabs.
-        
-        @return list of closed tabs (list of ClosedTab)
-        """
-        return self.__closedTabs
--- a/eric6/Helpviewer/CookieJar/CookieDetailsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog showing the cookie data.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt
-from PyQt5.QtWidgets import QDialog
-
-from .Ui_CookieDetailsDialog import Ui_CookieDetailsDialog
-
-
-class CookieDetailsDialog(QDialog, Ui_CookieDetailsDialog):
-    """
-    Class implementing a dialog showing the cookie data.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QWidget)
-        """
-        super(CookieDetailsDialog, self).__init__(parent)
-        self.setupUi(self)
-        self.setWindowFlags(Qt.Window)
-    
-    def setData(self, domain, name, path, secure, expires, value):
-        """
-        Public method to set the data to be shown.
-        
-        @param domain domain of the cookie (string)
-        @param name name of the cookie (string)
-        @param path path of the cookie (string)
-        @param secure flag indicating a secure cookie (boolean)
-        @param expires expiration time of the cookie (string)
-        @param value value of the cookie (string)
-        """
-        self.domainEdit.setText(domain)
-        self.nameEdit.setText(name)
-        self.pathEdit.setText(path)
-        self.secureCheckBox.setChecked(secure)
-        self.expirationEdit.setText(expires)
-        self.valueEdit.setPlainText(value)
--- a/eric6/Helpviewer/CookieJar/CookieDetailsDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>CookieDetailsDialog</class>
- <widget class="QDialog" name="CookieDetailsDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>300</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Cookie Details</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QFormLayout" name="formLayout">
-     <item row="0" column="0">
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>Domain:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QLineEdit" name="domainEdit">
-       <property name="readOnly">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>Name:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QLineEdit" name="nameEdit">
-       <property name="readOnly">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="0">
-      <widget class="QLabel" name="label_3">
-       <property name="text">
-        <string>Path:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QLineEdit" name="pathEdit">
-       <property name="readOnly">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="0">
-      <widget class="QLabel" name="label_6">
-       <property name="text">
-        <string>Secure:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="1">
-      <widget class="QCheckBox" name="secureCheckBox">
-       <property name="text">
-        <string/>
-       </property>
-       <property name="checkable">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="4" column="0">
-      <widget class="QLabel" name="label_4">
-       <property name="text">
-        <string>Expires:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="4" column="1">
-      <widget class="QLineEdit" name="expirationEdit">
-       <property name="readOnly">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="5" column="0">
-      <widget class="QLabel" name="label_5">
-       <property name="text">
-        <string>Contents:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="5" column="1">
-      <widget class="QPlainTextEdit" name="valueEdit">
-       <property name="readOnly">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>domainEdit</tabstop>
-  <tabstop>nameEdit</tabstop>
-  <tabstop>pathEdit</tabstop>
-  <tabstop>secureCheckBox</tabstop>
-  <tabstop>expirationEdit</tabstop>
-  <tabstop>valueEdit</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>CookieDetailsDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>CookieDetailsDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/CookieJar/CookieExceptionsModel.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the cookie exceptions model.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt, QAbstractTableModel, QSize, QModelIndex
-from PyQt5.QtGui import QFont, QFontMetrics
-
-
-class CookieExceptionsModel(QAbstractTableModel):
-    """
-    Class implementing the cookie exceptions model.
-    """
-    def __init__(self, cookieJar, parent=None):
-        """
-        Constructor
-        
-        @param cookieJar reference to the cookie jar (CookieJar)
-        @param parent reference to the parent object (QObject)
-        """
-        super(CookieExceptionsModel, self).__init__(parent)
-        
-        self.__cookieJar = cookieJar
-        self.__allowedCookies = self.__cookieJar.allowedCookies()
-        self.__blockedCookies = self.__cookieJar.blockedCookies()
-        self.__sessionCookies = self.__cookieJar.allowForSessionCookies()
-        
-        self.__headers = [
-            self.tr("Website"),
-            self.tr("Status"),
-        ]
-    
-    def headerData(self, section, orientation, role):
-        """
-        Public method to get header data from the model.
-        
-        @param section section number (integer)
-        @param orientation orientation (Qt.Orientation)
-        @param role role of the data to retrieve (integer)
-        @return requested data
-        """
-        if role == Qt.SizeHintRole:
-            fm = QFontMetrics(QFont())
-            height = fm.height() + fm.height() // 3
-            width = \
-                fm.width(self.headerData(section, orientation, Qt.DisplayRole))
-            return QSize(width, height)
-        
-        if orientation == Qt.Horizontal and role == Qt.DisplayRole:
-            try:
-                return self.__headers[section]
-            except IndexError:
-                return None
-        
-        return QAbstractTableModel.headerData(self, section, orientation, role)
-    
-    def data(self, index, role):
-        """
-        Public method to get data from the model.
-        
-        @param index index to get data for (QModelIndex)
-        @param role role of the data to retrieve (integer)
-        @return requested data
-        """
-        if index.row() < 0 or index.row() >= self.rowCount():
-            return None
-        
-        if role in (Qt.DisplayRole, Qt.EditRole):
-            row = index.row()
-            if row < len(self.__allowedCookies):
-                if index.column() == 0:
-                    return self.__allowedCookies[row]
-                elif index.column() == 1:
-                    return self.tr("Allow")
-                else:
-                    return None
-            
-            row -= len(self.__allowedCookies)
-            if row < len(self.__blockedCookies):
-                if index.column() == 0:
-                    return self.__blockedCookies[row]
-                elif index.column() == 1:
-                    return self.tr("Block")
-                else:
-                    return None
-            
-            row -= len(self.__blockedCookies)
-            if row < len(self.__sessionCookies):
-                if index.column() == 0:
-                    return self.__sessionCookies[row]
-                elif index.column() == 1:
-                    return self.tr("Allow For Session")
-                else:
-                    return None
-            
-            return None
-        
-        return None
-    
-    def columnCount(self, parent=None):
-        """
-        Public method to get the number of columns of the model.
-        
-        @param parent parent index (QModelIndex)
-        @return number of columns (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return 0
-        else:
-            return len(self.__headers)
-    
-    def rowCount(self, parent=None):
-        """
-        Public method to get the number of rows of the model.
-        
-        @param parent parent index (QModelIndex)
-        @return number of rows (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid() or self.__cookieJar is None:
-            return 0
-        else:
-            return len(self.__allowedCookies) + \
-                len(self.__blockedCookies) + \
-                len(self.__sessionCookies)
-    
-    def removeRows(self, row, count, parent=None):
-        """
-        Public method to remove entries from the model.
-        
-        @param row start row (integer)
-        @param count number of rows to remove (integer)
-        @param parent parent index (QModelIndex)
-        @return flag indicating success (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid() or self.__cookieJar is None:
-            return False
-        
-        lastRow = row + count - 1
-        self.beginRemoveRows(parent, row, lastRow)
-        for i in range(lastRow, row - 1, -1):
-            rowToRemove = i
-            
-            if rowToRemove < len(self.__allowedCookies):
-                del self.__allowedCookies[rowToRemove]
-                continue
-            
-            rowToRemove -= len(self.__allowedCookies)
-            if rowToRemove < len(self.__blockedCookies):
-                del self.__blockedCookies[rowToRemove]
-                continue
-            
-            rowToRemove -= len(self.__blockedCookies)
-            if rowToRemove < len(self.__sessionCookies):
-                del self.__sessionCookies[rowToRemove]
-                continue
-        
-        self.__cookieJar.setAllowedCookies(self.__allowedCookies)
-        self.__cookieJar.setBlockedCookies(self.__blockedCookies)
-        self.__cookieJar.setAllowForSessionCookies(self.__sessionCookies)
-        self.endRemoveRows()
-        
-        return True
-    
-    def addRule(self, host, rule):
-        """
-        Public method to add an exception rule.
-        
-        @param host name of the host to add a rule for (string)
-        @param rule type of rule to add (CookieJar.Allow, CookieJar.Block or
-            CookieJar.AllowForSession)
-        """
-        if not host:
-            return
-        
-        from .CookieJar import CookieJar
-        
-        if rule == CookieJar.Allow:
-            self.__addHost(
-                host, self.__allowedCookies, self.__blockedCookies,
-                self.__sessionCookies)
-            return
-        elif rule == CookieJar.Block:
-            self.__addHost(
-                host, self.__blockedCookies, self.__allowedCookies,
-                self.__sessionCookies)
-            return
-        elif rule == CookieJar.AllowForSession:
-            self.__addHost(
-                host, self.__sessionCookies, self.__allowedCookies,
-                self.__blockedCookies)
-            return
-    
-    def __addHost(self, host, addList, removeList1, removeList2):
-        """
-        Private method to add a host to an exception list.
-        
-        @param host name of the host to add (string)
-        @param addList reference to the list to add it to (list of strings)
-        @param removeList1 reference to first list to remove it from
-            (list of strings)
-        @param removeList2 reference to second list to remove it from
-            (list of strings)
-        """
-        if host not in addList:
-            addList.append(host)
-            if host in removeList1:
-                removeList1.remove(host)
-            if host in removeList2:
-                removeList2.remove(host)
-        
-        # Avoid to have similar rules (with or without leading dot)
-        # e.g. python-projects.org and .python-projects.org
-        if host.startswith("."):
-            otherRule = host[1:]
-        else:
-            otherRule = '.' + host
-        if otherRule in addList:
-            addList.remove(otherRule)
-        if otherRule in removeList1:
-            removeList1.remove(otherRule)
-        if otherRule in removeList2:
-            removeList2.remove(otherRule)
-        
-        self.__cookieJar.setAllowedCookies(self.__allowedCookies)
-        self.__cookieJar.setBlockedCookies(self.__blockedCookies)
-        self.__cookieJar.setAllowForSessionCookies(self.__sessionCookies)
-        
-        self.beginResetModel()
-        self.endResetModel()
--- a/eric6/Helpviewer/CookieJar/CookieJar.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,507 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a QNetworkCookieJar subclass with various accept policies.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSignal, QByteArray, QDataStream, QIODevice, \
-    QSettings, QDateTime
-from PyQt5.QtNetwork import QNetworkCookieJar, QNetworkCookie
-from PyQt5.QtWebKit import QWebSettings
-
-from Utilities.AutoSaver import AutoSaver
-import Utilities
-import Preferences
-
-
-class CookieJar(QNetworkCookieJar):
-    """
-    Class implementing a QNetworkCookieJar subclass with various accept
-    policies.
-    
-    @signal cookiesChanged() emitted after the cookies have been changed
-    """
-    cookiesChanged = pyqtSignal()
-    
-    JAR_VERSION = 23
-    
-    AcceptAlways = 0
-    AcceptNever = 1
-    AcceptOnlyFromSitesNavigatedTo = 2
-
-    KeepUntilExpire = 0
-    KeepUntilExit = 1
-    KeepUntilTimeLimit = 2
-    
-    Allow = 0
-    Block = 1
-    AllowForSession = 2
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(CookieJar, self).__init__(parent)
-        
-        self.__loaded = False
-        self.__acceptCookies = self.AcceptOnlyFromSitesNavigatedTo
-        self.__saveTimer = AutoSaver(self, self.save)
-        
-        self.__cookiesFile = os.path.join(Utilities.getConfigDir(),
-                                          "browser", "cookies.ini")
-    
-    def saveCookies(self, cookiesList):
-        """
-        Public method to save the cookies.
-        
-        @param cookiesList list of cookies to be saved
-        @return saved cookies as a byte array (QByteArray)
-        """
-        data = QByteArray()
-        stream = QDataStream(data, QIODevice.WriteOnly)
-        stream.setVersion(QDataStream.Qt_4_6)
-        stream.writeUInt16(self.JAR_VERSION)
-        stream.writeUInt32(len(cookiesList))
-        for cookie in cookiesList:
-            stream << cookie.toRawForm()
-        
-        return data
-    
-    def loadCookies(self, cookies):
-        """
-        Public method to restore the saved cookies.
-        
-        @param cookies byte array containing the saved cookies (QByteArray)
-        @return list of cookies
-        """
-        if cookies.isEmpty():
-            return []
-        
-        cookiesList = []
-        data = QByteArray(cookies)
-        stream = QDataStream(data, QIODevice.ReadOnly)
-        stream.setVersion(QDataStream.Qt_4_6)
-        
-        version = stream.readUInt16()
-        if version != self.JAR_VERSION:
-            return []
-        
-        stream.readUInt32()  # number of cookies
-        
-        rawCookie = QByteArray()
-        while not stream.atEnd():
-            stream >> rawCookie
-            newCookies = QNetworkCookie.parseCookies(rawCookie)
-            for newCookie in newCookies:
-                cookiesList.append(newCookie)
-        
-        return cookiesList
-    
-    def close(self):
-        """
-        Public slot to close the cookie jar.
-        """
-        if self.__loaded and self.__keepCookies == self.KeepUntilExit:
-            self.clear()
-        self.__saveTimer.saveIfNeccessary()
-    
-    def clear(self):
-        """
-        Public method to clear all cookies.
-        """
-        if not self.__loaded:
-            self.load()
-        
-        self.setAllCookies([])
-        self.__saveTimer.changeOccurred()
-        self.cookiesChanged.emit()
-    
-    def load(self):
-        """
-        Public method to load the cookies.
-        """
-        if self.__loaded:
-            return
-        
-        cookieSettings = QSettings(self.__cookiesFile, QSettings.IniFormat)
-        
-        # load cookies
-        cookies = cookieSettings.value("Cookies")
-        if cookies:
-            cookiesList = self.loadCookies(cookies)
-        else:
-            cookiesList = []
-        self.setAllCookies(cookiesList)
-        
-        # load exceptions
-        self.__exceptionsBlock = Preferences.toList(
-            cookieSettings.value("Exceptions/block"))
-        self.__exceptionsAllow = Preferences.toList(
-            cookieSettings.value("Exceptions/allow"))
-        self.__exceptionsAllowForSession = Preferences.toList(
-            cookieSettings.value("Exceptions/allowForSession"))
-        self.__exceptionsBlock.sort()
-        self.__exceptionsAllow.sort()
-        self.__exceptionsAllowForSession.sort()
-        
-        self.__acceptCookies = Preferences.getHelp("AcceptCookies")
-        self.__keepCookies = Preferences.getHelp("KeepCookiesUntil")
-        if self.__keepCookies == self.KeepUntilExit:
-            self.setAllCookies([])
-        
-        self.__filterTrackingCookies = Preferences.toBool(
-            Preferences.getHelp("FilterTrackingCookies"))
-        
-        self.__loaded = True
-        self.cookiesChanged.emit()
-    
-    def save(self):
-        """
-        Public method to save the cookies.
-        """
-        if not self.__loaded:
-            return
-        
-        self.__purgeOldCookies()
-        
-        cookieSettings = QSettings(self.__cookiesFile, QSettings.IniFormat)
-        
-        cookiesList = self.allCookies()
-        for index in range(len(cookiesList) - 1, -1, -1):
-            if cookiesList[index].isSessionCookie():
-                del cookiesList[index]
-        cookies = self.saveCookies(cookiesList)
-        
-        cookieSettings.setValue("Cookies", cookies)
-        cookieSettings.setValue("Exceptions/block", self.__exceptionsBlock)
-        cookieSettings.setValue("Exceptions/allow", self.__exceptionsAllow)
-        cookieSettings.setValue("Exceptions/allowForSession",
-                                self.__exceptionsAllowForSession)
-        
-        Preferences.setHelp("AcceptCookies", self.__acceptCookies)
-        Preferences.setHelp("KeepCookiesUntil", self.__keepCookies)
-        Preferences.setHelp("FilterTrackingCookies",
-                            self.__filterTrackingCookies)
-    
-    def __purgeOldCookies(self):
-        """
-        Private method to purge old cookies.
-        """
-        cookies = self.allCookies()
-        if len(cookies) == 0:
-            return
-        
-        oldCount = len(cookies)
-        now = QDateTime.currentDateTime()
-        for index in range(len(cookies) - 1, -1, -1):
-            if not cookies[index].isSessionCookie() and \
-               cookies[index].expirationDate() < now:
-                del cookies[index]
-        if oldCount == len(cookies):
-            return
-        self.setAllCookies(cookies)
-        self.cookiesChanged.emit()
-    
-    def cookiesForUrl(self, url):
-        """
-        Public method to get the cookies for a URL.
-        
-        @param url URL to get cookies for (QUrl)
-        @return list of cookies (list of QNetworkCookie)
-        """
-        if not self.__loaded:
-            self.load()
-        
-        globalSettings = QWebSettings.globalSettings()
-        if globalSettings.testAttribute(QWebSettings.PrivateBrowsingEnabled):
-            return []
-        
-        return QNetworkCookieJar.cookiesForUrl(self, url)
-    
-    def setCookiesFromUrl(self, cookieList, url):
-        """
-        Public method to set cookies for a URL.
-        
-        @param cookieList list of cookies to set (list of QNetworkCookie)
-        @param url url to set cookies for (QUrl)
-        @return flag indicating cookies were set (boolean)
-        """
-        if not self.__loaded:
-            self.load()
-        
-        globalSettings = QWebSettings.globalSettings()
-        if globalSettings.testAttribute(QWebSettings.PrivateBrowsingEnabled):
-            return False
-        
-        host = url.host()
-        eBlock = self.__isOnDomainList(self.__exceptionsBlock, host)
-        eAllow = not eBlock and \
-            self.__isOnDomainList(self.__exceptionsAllow, host)
-        eAllowSession = not eBlock and \
-            not eAllow and \
-            self.__isOnDomainList(
-                self.__exceptionsAllowForSession, host)
-        
-        addedCookies = False
-        acceptInitially = self.__acceptCookies != self.AcceptNever
-        if (acceptInitially and not eBlock) or \
-           (not acceptInitially and (eAllow or eAllowSession)):
-            # url domain == cookie domain
-            soon = QDateTime.currentDateTime()
-            soon = soon.addDays(90)
-            for cookie in cookieList:
-                lst = []
-                if not (self.__filterTrackingCookies and
-                        cookie.name().startsWith(b"__utm")):
-                    if eAllowSession:
-                        cookie.setExpirationDate(QDateTime())
-                    if self.__keepCookies == self.KeepUntilTimeLimit and \
-                       not cookie.isSessionCookie and \
-                       cookie.expirationDate() > soon:
-                        cookie.setExpirationDate(soon)
-                    lst.append(cookie)
-                    if QNetworkCookieJar.setCookiesFromUrl(self, lst, url):
-                        addedCookies = True
-                    elif self.__acceptCookies == self.AcceptAlways:
-                        # force it in if wanted
-                        cookies = self.allCookies()
-                        for ocookie in cookies[:]:
-                            # does the cookie exist already?
-                            if cookie.name() == ocookie.name() and \
-                               cookie.domain() == ocookie.domain() and \
-                               cookie.path() == ocookie.path():
-                                # found a match
-                                cookies.remove(ocookie)
-                        
-                        cookies.append(cookie)
-                        self.setAllCookies(cookies)
-                        addedCookies = True
-        
-        if addedCookies:
-            self.__saveTimer.changeOccurred()
-            self.cookiesChanged.emit()
-        
-        return addedCookies
-    
-    def acceptPolicy(self):
-        """
-        Public method to get the accept policy.
-        
-        @return current accept policy
-        """
-        if not self.__loaded:
-            self.load()
-        return self.__acceptCookies
-    
-    def setAcceptPolicy(self, policy):
-        """
-        Public method to set the accept policy.
-        
-        @param policy accept policy to be set
-        """
-        if not self.__loaded:
-            self.load()
-        if policy > self.AcceptOnlyFromSitesNavigatedTo:
-            return
-        if policy == self.__acceptCookies:
-            return
-        self.__acceptCookies = policy
-        self.__saveTimer.changeOccurred()
-    
-    def keepPolicy(self):
-        """
-        Public method to get the keep policy.
-        
-        @return keep policy
-        """
-        if not self.__loaded:
-            self.load()
-        return self.__keepCookies
-    
-    def setKeepPolicy(self, policy):
-        """
-        Public method to set the keep policy.
-        
-        @param policy keep policy to be set
-        """
-        if not self.__loaded:
-            self.load()
-        if policy > self.KeepUntilTimeLimit:
-            return
-        if policy == self.__keepCookies:
-            return
-        self.__keepCookies = policy
-        self.__saveTimer.changeOccurred()
-    
-    def blockedCookies(self):
-        """
-        Public method to return the blocked cookies.
-        
-        @return list of blocked cookies (list of strings)
-        """
-        if not self.__loaded:
-            self.load()
-        return self.__exceptionsBlock
-    
-    def allowedCookies(self):
-        """
-        Public method to return the allowed cookies.
-        
-        @return list of allowed cookies (list of strings)
-        """
-        if not self.__loaded:
-            self.load()
-        return self.__exceptionsAllow
-    
-    def allowForSessionCookies(self):
-        """
-        Public method to return the allowed session cookies.
-        
-        @return list of allowed session cookies (list of strings)
-        """
-        if not self.__loaded:
-            self.load()
-        return self.__exceptionsAllowForSession
-    
-    def setBlockedCookies(self, list_):
-        """
-        Public method to set the list of blocked cookies.
-        
-        @param list_ list of blocked cookies (list of strings)
-        """
-        if not self.__loaded:
-            self.load()
-        self.__exceptionsBlock = list_[:]
-        self.__exceptionsBlock.sort()
-        self.__applyRules()
-        self.__saveTimer.changeOccurred()
-    
-    def setAllowedCookies(self, list_):
-        """
-        Public method to set the list of allowed cookies.
-        
-        @param list_ list of allowed cookies (list of strings)
-        """
-        if not self.__loaded:
-            self.load()
-        self.__exceptionsAllow = list_[:]
-        self.__exceptionsAllow.sort()
-        self.__applyRules()
-        self.__saveTimer.changeOccurred()
-    
-    def setAllowForSessionCookies(self, list_):
-        """
-        Public method to set the list of allowed session cookies.
-        
-        @param list_ list of allowed session cookies (list of strings)
-        """
-        if not self.__loaded:
-            self.load()
-        self.__exceptionsAllowForSession = list_[:]
-        self.__exceptionsAllowForSession.sort()
-        self.__applyRules()
-        self.__saveTimer.changeOccurred()
-    
-    def filterTrackingCookies(self):
-        """
-        Public method to get the filter tracking cookies flag.
-        
-        @return filter tracking cookies flag (boolean)
-        """
-        return self.__filterTrackingCookies
-    
-    def setFilterTrackingCookies(self, filterTrackingCookies):
-        """
-        Public method to set the filter tracking cookies flag.
-        
-        @param filterTrackingCookies filter tracking cookies flag (boolean)
-        """
-        if filterTrackingCookies == self.__filterTrackingCookies:
-            return
-        
-        self.__filterTrackingCookies = filterTrackingCookies
-        self.__saveTimer.changeOccurred()
-    
-    def __isOnDomainList(self, rules, domain):
-        """
-        Private method to check, if either the rule matches the domain exactly
-        or the domain ends with ".rule".
-        
-        @param rules list of rules (list of strings)
-        @param domain domain name to check (string)
-        @return flag indicating a match (boolean)
-        """
-        for rule in rules:
-            if rule.startswith("."):
-                if domain.endswith(rule):
-                    return True
-                
-                withoutDot = rule[1:]
-                if domain == withoutDot:
-                    return True
-            else:
-                domainEnding = domain[-(len(rule) + 1):]
-                if domainEnding and \
-                   domainEnding[0] == "." and \
-                   domain.endswith(rule):
-                    return True
-                
-                if rule == domain:
-                    return True
-        
-        return False
-    
-    def __applyRules(self):
-        """
-        Private method to apply the cookie rules.
-        """
-        cookiesList = self.allCookies()
-        changed = False
-        
-        for index in range(len(cookiesList) - 1, -1, -1):
-            cookie = cookiesList[index]
-            if self.__isOnDomainList(self.__exceptionsBlock, cookie.domain()):
-                del cookiesList[index]
-                changed = True
-            elif self.__isOnDomainList(self.__exceptionsAllowForSession,
-                                       cookie.domain()):
-                cookie.setExpirationDate(QDateTime())
-                changed = True
-        
-        if changed:
-            self.setAllCookies(cookiesList)
-            self.__saveTimer.changeOccurred()
-            self.cookiesChanged.emit()
-    
-    def cookies(self):
-        """
-        Public method to get the cookies of the cookie jar.
-        
-        @return list of all cookies (list of QNetworkCookie)
-        """
-        if not self.__loaded:
-            self.load()
-        
-        return self.allCookies()
-    
-    def setCookies(self, cookies):
-        """
-        Public method to set all cookies.
-        
-        @param cookies list of cookies to be set (list of QNetworkCookie)
-        """
-        if not self.__loaded:
-            self.load()
-        
-        self.setAllCookies(cookies)
-        self.__saveTimer.changeOccurred()
-        self.cookiesChanged.emit()
--- a/eric6/Helpviewer/CookieJar/CookieModel.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the cookie model.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt, QAbstractTableModel, QSize, QModelIndex
-from PyQt5.QtGui import QFont, QFontMetrics
-
-
-class CookieModel(QAbstractTableModel):
-    """
-    Class implementing the cookie model.
-    """
-    def __init__(self, cookieJar, parent=None):
-        """
-        Constructor
-        
-        @param cookieJar reference to the cookie jar (CookieJar)
-        @param parent reference to the parent object (QObject)
-        """
-        super(CookieModel, self).__init__(parent)
-        
-        self.__headers = [
-            self.tr("Website"),
-            self.tr("Name"),
-            self.tr("Path"),
-            self.tr("Secure"),
-            self.tr("Expires"),
-            self.tr("Contents"),
-        ]
-        self.__cookieJar = cookieJar
-        self.__cookieJar.cookiesChanged.connect(self.__cookiesChanged)
-        self.__cookieJar.load()
-    
-    def headerData(self, section, orientation, role):
-        """
-        Public method to get header data from the model.
-        
-        @param section section number (integer)
-        @param orientation orientation (Qt.Orientation)
-        @param role role of the data to retrieve (integer)
-        @return requested data
-        """
-        if role == Qt.SizeHintRole:
-            fm = QFontMetrics(QFont())
-            height = fm.height() + fm.height() // 3
-            width = \
-                fm.width(self.headerData(section, orientation, Qt.DisplayRole))
-            return QSize(width, height)
-        
-        if orientation == Qt.Horizontal:
-            if role == Qt.DisplayRole:
-                try:
-                    return self.__headers[section]
-                except IndexError:
-                    return None
-            
-            return None
-        
-        return QAbstractTableModel.headerData(self, section, orientation, role)
-    
-    def data(self, index, role):
-        """
-        Public method to get data from the model.
-        
-        @param index index to get data for (QModelIndex)
-        @param role role of the data to retrieve (integer)
-        @return requested data
-        """
-        lst = []
-        if self.__cookieJar is not None:
-            lst = self.__cookieJar.cookies()
-        if index.row() < 0 or index.row() >= len(lst):
-            return None
-        
-        if role in (Qt.DisplayRole, Qt.EditRole):
-            cookie = lst[index.row()]
-            col = index.column()
-            if col == 0:
-                return cookie.domain()
-            elif col == 1:
-                return bytes(cookie.name()).decode()
-            elif col == 2:
-                return cookie.path()
-            elif col == 3:
-                return cookie.isSecure()
-            elif col == 4:
-                return cookie.expirationDate()
-            elif col == 5:
-                return cookie.value()
-            else:
-                return None
-        
-        return None
-    
-    def columnCount(self, parent=None):
-        """
-        Public method to get the number of columns of the model.
-        
-        @param parent parent index (QModelIndex)
-        @return number of columns (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return 0
-        else:
-            return len(self.__headers)
-    
-    def rowCount(self, parent=None):
-        """
-        Public method to get the number of rows of the model.
-        
-        @param parent parent index (QModelIndex)
-        @return number of columns (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid() or self.__cookieJar is None:
-            return 0
-        else:
-            return len(self.__cookieJar.cookies())
-    
-    def removeRows(self, row, count, parent=None):
-        """
-        Public method to remove entries from the model.
-        
-        @param row start row (integer)
-        @param count number of rows to remove (integer)
-        @param parent parent index (QModelIndex)
-        @return flag indicating success (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid() or self.__cookieJar is None:
-            return False
-        
-        lastRow = row + count - 1
-        lst = self.__cookieJar.cookies()
-        del lst[row:lastRow + 1]
-        self.__cookieJar.setCookies(lst)
-        
-        return True
-    
-    def __cookiesChanged(self):
-        """
-        Private slot handling changes of the cookies list in the cookie jar.
-        """
-        self.beginResetModel()
-        self.endResetModel()
--- a/eric6/Helpviewer/CookieJar/CookiesConfigurationDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the cookies configuration dialog.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot
-from PyQt5.QtWidgets import QDialog
-
-from .CookieJar import CookieJar
-
-from .Ui_CookiesConfigurationDialog import Ui_CookiesConfigurationDialog
-
-
-class CookiesConfigurationDialog(QDialog, Ui_CookiesConfigurationDialog):
-    """
-    Class implementing the cookies configuration dialog.
-    """
-    def __init__(self, parent):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QWidget)
-        """
-        super(CookiesConfigurationDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.__mw = parent
-        
-        jar = self.__mw.cookieJar()
-        acceptPolicy = jar.acceptPolicy()
-        if acceptPolicy == CookieJar.AcceptAlways:
-            self.acceptCombo.setCurrentIndex(0)
-        elif acceptPolicy == CookieJar.AcceptNever:
-            self.acceptCombo.setCurrentIndex(1)
-        elif acceptPolicy == CookieJar.AcceptOnlyFromSitesNavigatedTo:
-            self.acceptCombo.setCurrentIndex(2)
-        
-        keepPolicy = jar.keepPolicy()
-        if keepPolicy == CookieJar.KeepUntilExpire:
-            self.keepUntilCombo.setCurrentIndex(0)
-        elif keepPolicy == CookieJar.KeepUntilExit:
-            self.keepUntilCombo.setCurrentIndex(1)
-        elif keepPolicy == CookieJar.KeepUntilTimeLimit:
-            self.keepUntilCombo.setCurrentIndex(2)
-        
-        self.filterTrackingCookiesCheckbox.setChecked(
-            jar.filterTrackingCookies())
-        
-        msh = self.minimumSizeHint()
-        self.resize(max(self.width(), msh.width()), msh.height())
-    
-    def accept(self):
-        """
-        Public slot to accept the dialog.
-        """
-        acceptSelection = self.acceptCombo.currentIndex()
-        if acceptSelection == 0:
-            acceptPolicy = CookieJar.AcceptAlways
-        elif acceptSelection == 1:
-            acceptPolicy = CookieJar.AcceptNever
-        elif acceptSelection == 2:
-            acceptPolicy = CookieJar.AcceptOnlyFromSitesNavigatedTo
-        
-        keepSelection = self.keepUntilCombo.currentIndex()
-        if keepSelection == 0:
-            keepPolicy = CookieJar.KeepUntilExpire
-        elif keepSelection == 1:
-            keepPolicy = CookieJar.KeepUntilExit
-        elif keepSelection == 2:
-            keepPolicy = CookieJar.KeepUntilTimeLimit
-        
-        jar = self.__mw.cookieJar()
-        jar.setAcceptPolicy(acceptPolicy)
-        jar.setKeepPolicy(keepPolicy)
-        jar.setFilterTrackingCookies(
-            self.filterTrackingCookiesCheckbox.isChecked())
-        
-        super(CookiesConfigurationDialog, self).accept()
-    
-    @pyqtSlot()
-    def on_exceptionsButton_clicked(self):
-        """
-        Private slot to show the cookies exceptions dialog.
-        """
-        from .CookiesExceptionsDialog import CookiesExceptionsDialog
-        dlg = CookiesExceptionsDialog(self.__mw.cookieJar())
-        dlg.exec_()
-    
-    @pyqtSlot()
-    def on_cookiesButton_clicked(self):
-        """
-        Private slot to show the cookies dialog.
-        """
-        from .CookiesDialog import CookiesDialog
-        dlg = CookiesDialog(self.__mw.cookieJar())
-        dlg.exec_()
--- a/eric6/Helpviewer/CookieJar/CookiesConfigurationDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,205 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>CookiesConfigurationDialog</class>
- <widget class="QDialog" name="CookiesConfigurationDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>152</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Configure cookies</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QLabel" name="headerLabel">
-     <property name="text">
-      <string>&lt;b&gt;Configure cookies&lt;/b&gt;</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="Line" name="line17">
-     <property name="frameShape">
-      <enum>QFrame::HLine</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Sunken</enum>
-     </property>
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0">
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>&amp;Accept Cookies:</string>
-       </property>
-       <property name="buddy">
-        <cstring>acceptCombo</cstring>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QComboBox" name="acceptCombo">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="toolTip">
-        <string>Select the accept policy</string>
-       </property>
-       <item>
-        <property name="text">
-         <string>Always</string>
-        </property>
-       </item>
-       <item>
-        <property name="text">
-         <string>Never</string>
-        </property>
-       </item>
-       <item>
-        <property name="text">
-         <string>Only from sites you navigate to</string>
-        </property>
-       </item>
-      </widget>
-     </item>
-     <item row="0" column="2">
-      <widget class="QPushButton" name="exceptionsButton">
-       <property name="toolTip">
-        <string>Show a dialog to configure exceptions</string>
-       </property>
-       <property name="text">
-        <string>&amp;Exceptions...</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>&amp;Keep until:</string>
-       </property>
-       <property name="buddy">
-        <cstring>keepUntilCombo</cstring>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QComboBox" name="keepUntilCombo">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="toolTip">
-        <string>Select the keep policy</string>
-       </property>
-       <item>
-        <property name="text">
-         <string>They expire</string>
-        </property>
-       </item>
-       <item>
-        <property name="text">
-         <string>I exit the application</string>
-        </property>
-       </item>
-       <item>
-        <property name="text">
-         <string>At most 90 days</string>
-        </property>
-       </item>
-      </widget>
-     </item>
-     <item row="1" column="2">
-      <widget class="QPushButton" name="cookiesButton">
-       <property name="toolTip">
-        <string>Show a dialog listing all cookies</string>
-       </property>
-       <property name="text">
-        <string>&amp;Show Cookies...</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QCheckBox" name="filterTrackingCookiesCheckbox">
-       <property name="toolTip">
-        <string>Select to filter tracking cookies</string>
-       </property>
-       <property name="text">
-        <string>&amp;Filter Tracking Cookies</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>acceptCombo</tabstop>
-  <tabstop>exceptionsButton</tabstop>
-  <tabstop>keepUntilCombo</tabstop>
-  <tabstop>cookiesButton</tabstop>
-  <tabstop>filterTrackingCookiesCheckbox</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>CookiesConfigurationDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>CookiesConfigurationDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/CookieJar/CookiesDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to show all cookies.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt, QDateTime, QByteArray, \
-    QSortFilterProxyModel
-from PyQt5.QtGui import QFont, QFontMetrics
-from PyQt5.QtWidgets import QDialog
-
-from .CookieModel import CookieModel
-
-from .Ui_CookiesDialog import Ui_CookiesDialog
-
-
-class CookiesDialog(QDialog, Ui_CookiesDialog):
-    """
-    Class implementing a dialog to show all cookies.
-    """
-    def __init__(self, cookieJar, parent=None):
-        """
-        Constructor
-        
-        @param cookieJar reference to the cookie jar (CookieJar)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(CookiesDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.addButton.setEnabled(False)
-        
-        self.__cookieJar = cookieJar
-        
-        self.removeButton.clicked.connect(self.cookiesTable.removeSelected)
-        self.removeAllButton.clicked.connect(self.cookiesTable.removeAll)
-        
-        self.cookiesTable.verticalHeader().hide()
-        model = CookieModel(cookieJar, self)
-        self.__proxyModel = QSortFilterProxyModel(self)
-        self.__proxyModel.setSourceModel(model)
-        self.searchEdit.textChanged.connect(
-            self.__proxyModel.setFilterFixedString)
-        self.cookiesTable.setModel(self.__proxyModel)
-        self.cookiesTable.doubleClicked.connect(self.__showCookieDetails)
-        self.cookiesTable.selectionModel().selectionChanged.connect(
-            self.__tableSelectionChanged)
-        self.cookiesTable.model().modelReset.connect(self.__tableModelReset)
-        
-        fm = QFontMetrics(QFont())
-        height = fm.height() + fm.height() // 3
-        self.cookiesTable.verticalHeader().setDefaultSectionSize(height)
-        self.cookiesTable.verticalHeader().setMinimumSectionSize(-1)
-        for section in range(model.columnCount()):
-            header = self.cookiesTable.horizontalHeader()\
-                .sectionSizeHint(section)
-            if section == 0:
-                header = fm.width("averagebiglonghost.averagedomain.info")
-            elif section == 1:
-                header = fm.width("_session_id")
-            elif section == 4:
-                header = fm.width(
-                    QDateTime.currentDateTime().toString(Qt.LocalDate))
-            buffer = fm.width("mm")
-            header += buffer
-            self.cookiesTable.horizontalHeader().resizeSection(section, header)
-        self.cookiesTable.horizontalHeader().setStretchLastSection(True)
-        self.cookiesTable.model().sort(
-            self.cookiesTable.horizontalHeader().sortIndicatorSection(),
-            Qt.AscendingOrder)
-        
-        self.__detailsDialog = None
-    
-    def __showCookieDetails(self, index):
-        """
-        Private slot to show a dialog with the cookie details.
-        
-        @param index index of the entry to show (QModelIndex)
-        """
-        if not index.isValid():
-            return
-        
-        model = self.cookiesTable.model()
-        row = index.row()
-        
-        domain = model.data(model.index(row, 0))
-        name = model.data(model.index(row, 1))
-        path = model.data(model.index(row, 2))
-        secure = model.data(model.index(row, 3))
-        expires = model.data(model.index(row, 4)).toString("yyyy-MM-dd hh:mm")
-        value = bytes(
-            QByteArray.fromPercentEncoding(
-                model.data(model.index(row, 5)))).decode()
-        
-        if self.__detailsDialog is None:
-            from .CookieDetailsDialog import CookieDetailsDialog
-            self.__detailsDialog = CookieDetailsDialog(self)
-        self.__detailsDialog.setData(domain, name, path, secure, expires,
-                                     value)
-        self.__detailsDialog.show()
-    
-    @pyqtSlot()
-    def on_addButton_clicked(self):
-        """
-        Private slot to add a new exception.
-        """
-        selection = self.cookiesTable.selectionModel().selectedRows()
-        if len(selection) == 0:
-            return
-        
-        from .CookiesExceptionsDialog import CookiesExceptionsDialog
-        
-        firstSelected = selection[0]
-        domainSelection = firstSelected.sibling(firstSelected.row(), 0)
-        domain = self.__proxyModel.data(domainSelection, Qt.DisplayRole)
-        dlg = CookiesExceptionsDialog(self.__cookieJar, self)
-        dlg.setDomainName(domain)
-        dlg.exec_()
-    
-    def __tableSelectionChanged(self, selected, deselected):
-        """
-        Private slot to handle a change of selected items.
-        
-        @param selected selected indexes (QItemSelection)
-        @param deselected deselected indexes (QItemSelection)
-        """
-        self.addButton.setEnabled(len(selected.indexes()) > 0)
-    
-    def __tableModelReset(self):
-        """
-        Private slot to handle a reset of the cookies table.
-        """
-        self.addButton.setEnabled(False)
--- a/eric6/Helpviewer/CookieJar/CookiesDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,195 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>CookiesDialog</class>
- <widget class="QDialog" name="CookiesDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>350</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Cookies</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="0" colspan="4">
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <layout class="QHBoxLayout" name="horizontalLayout">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="E5ClearableLineEdit" name="searchEdit">
-         <property name="minimumSize">
-          <size>
-           <width>300</width>
-           <height>0</height>
-          </size>
-         </property>
-         <property name="toolTip">
-          <string>Enter search term for cookies</string>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-    </layout>
-   </item>
-   <item row="1" column="0" colspan="4">
-    <widget class="E5TableView" name="cookiesTable">
-     <property name="alternatingRowColors">
-      <bool>true</bool>
-     </property>
-     <property name="selectionBehavior">
-      <enum>QAbstractItemView::SelectRows</enum>
-     </property>
-     <property name="textElideMode">
-      <enum>Qt::ElideMiddle</enum>
-     </property>
-     <property name="showGrid">
-      <bool>false</bool>
-     </property>
-     <property name="sortingEnabled">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="0">
-    <widget class="QPushButton" name="removeButton">
-     <property name="toolTip">
-      <string>Press to remove the selected entries</string>
-     </property>
-     <property name="text">
-      <string>&amp;Remove</string>
-     </property>
-     <property name="autoDefault">
-      <bool>false</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="1">
-    <widget class="QPushButton" name="removeAllButton">
-     <property name="toolTip">
-      <string>Press to remove all entries</string>
-     </property>
-     <property name="text">
-      <string>Remove &amp;All</string>
-     </property>
-     <property name="autoDefault">
-      <bool>false</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="2">
-    <widget class="QPushButton" name="addButton">
-     <property name="toolTip">
-      <string>Press to open the cookies exceptions dialog to add a new rule</string>
-     </property>
-     <property name="text">
-      <string>Add R&amp;ule...</string>
-     </property>
-     <property name="autoDefault">
-      <bool>false</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="3">
-    <spacer name="horizontalSpacer_2">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>208</width>
-       <height>20</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item row="3" column="0" colspan="4">
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5TableView</class>
-   <extends>QTableView</extends>
-   <header>E5Gui/E5TableView.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>searchEdit</tabstop>
-  <tabstop>cookiesTable</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>removeAllButton</tabstop>
-  <tabstop>addButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>CookiesDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>228</x>
-     <y>274</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>CookiesDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/CookieJar/CookiesExceptionsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog for the configuration of cookie exceptions.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, QSortFilterProxyModel
-from PyQt5.QtGui import QFont, QFontMetrics
-from PyQt5.QtWidgets import QDialog, QCompleter
-
-from .CookieExceptionsModel import CookieExceptionsModel
-from .CookieModel import CookieModel
-
-from .Ui_CookiesExceptionsDialog import Ui_CookiesExceptionsDialog
-
-
-class CookiesExceptionsDialog(QDialog, Ui_CookiesExceptionsDialog):
-    """
-    Class implementing a dialog for the configuration of cookie exceptions.
-    """
-    def __init__(self, cookieJar, parent=None):
-        """
-        Constructor
-        
-        @param cookieJar reference to the cookie jar (CookieJar)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(CookiesExceptionsDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.__cookieJar = cookieJar
-        
-        self.removeButton.clicked.connect(
-            self.exceptionsTable.removeSelected)
-        self.removeAllButton.clicked.connect(
-            self.exceptionsTable.removeAll)
-        
-        self.exceptionsTable.verticalHeader().hide()
-        self.__exceptionsModel = CookieExceptionsModel(cookieJar)
-        self.__proxyModel = QSortFilterProxyModel(self)
-        self.__proxyModel.setSourceModel(self.__exceptionsModel)
-        self.searchEdit.textChanged.connect(
-            self.__proxyModel.setFilterFixedString)
-        self.exceptionsTable.setModel(self.__proxyModel)
-        
-        cookieModel = CookieModel(cookieJar, self)
-        self.domainEdit.setCompleter(QCompleter(cookieModel, self.domainEdit))
-        
-        f = QFont()
-        f.setPointSize(10)
-        fm = QFontMetrics(f)
-        height = fm.height() + fm.height() // 3
-        self.exceptionsTable.verticalHeader().setDefaultSectionSize(height)
-        self.exceptionsTable.verticalHeader().setMinimumSectionSize(-1)
-        for section in range(self.__exceptionsModel.columnCount()):
-            header = self.exceptionsTable.horizontalHeader()\
-                .sectionSizeHint(section)
-            if section == 0:
-                header = fm.width("averagebiglonghost.averagedomain.info")
-            elif section == 1:
-                header = fm.width(self.tr("Allow For Session"))
-            buffer = fm.width("mm")
-            header += buffer
-            self.exceptionsTable.horizontalHeader()\
-                .resizeSection(section, header)
-    
-    def setDomainName(self, domain):
-        """
-        Public method to set the domain to be displayed.
-        
-        @param domain domain name to be displayed (string)
-        """
-        self.domainEdit.setText(domain)
-    
-    @pyqtSlot(str)
-    def on_domainEdit_textChanged(self, txt):
-        """
-        Private slot to handle a change of the domain edit text.
-        
-        @param txt current text of the edit (string)
-        """
-        enabled = txt != ""
-        self.blockButton.setEnabled(enabled)
-        self.allowButton.setEnabled(enabled)
-        self.allowForSessionButton.setEnabled(enabled)
-    
-    @pyqtSlot()
-    def on_blockButton_clicked(self):
-        """
-        Private slot to block cookies of a domain.
-        """
-        from .CookieJar import CookieJar
-        self.__exceptionsModel.addRule(self.domainEdit.text(), CookieJar.Block)
-        self.domainEdit.clear()
-    
-    @pyqtSlot()
-    def on_allowForSessionButton_clicked(self):
-        """
-        Private slot to allow cookies of a domain for the current session only.
-        """
-        from .CookieJar import CookieJar
-        self.__exceptionsModel.addRule(self.domainEdit.text(),
-                                       CookieJar.AllowForSession)
-        self.domainEdit.clear()
-    
-    @pyqtSlot()
-    def on_allowButton_clicked(self):
-        """
-        Private slot to allow cookies of a domain.
-        """
-        from .CookieJar import CookieJar
-        self.__exceptionsModel.addRule(self.domainEdit.text(), CookieJar.Allow)
-        self.domainEdit.clear()
--- a/eric6/Helpviewer/CookieJar/CookiesExceptionsDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,292 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>CookiesExceptionsDialog</class>
- <widget class="QDialog" name="CookiesExceptionsDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>450</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Cookie Exceptions</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QGroupBox" name="newExceptionGroupBox">
-     <property name="title">
-      <string>New Exception</string>
-     </property>
-     <layout class="QGridLayout">
-      <item row="0" column="0">
-       <layout class="QHBoxLayout" name="_2">
-        <item>
-         <widget class="QLabel" name="label">
-          <property name="text">
-           <string>&amp;Domain:</string>
-          </property>
-          <property name="buddy">
-           <cstring>domainEdit</cstring>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QLineEdit" name="domainEdit">
-          <property name="toolTip">
-           <string>Enter the domain name</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-      <item row="1" column="0">
-       <layout class="QHBoxLayout" name="_3">
-        <item>
-         <spacer>
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>81</width>
-            <height>25</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QPushButton" name="blockButton">
-          <property name="enabled">
-           <bool>false</bool>
-          </property>
-          <property name="toolTip">
-           <string>Press to always reject cookies for the domain</string>
-          </property>
-          <property name="text">
-           <string>&amp;Block</string>
-          </property>
-          <property name="autoDefault">
-           <bool>false</bool>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QPushButton" name="allowForSessionButton">
-          <property name="enabled">
-           <bool>false</bool>
-          </property>
-          <property name="toolTip">
-           <string>Press to accept cookies for the domain for the current session</string>
-          </property>
-          <property name="text">
-           <string>Allow For &amp;Session</string>
-          </property>
-          <property name="autoDefault">
-           <bool>false</bool>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QPushButton" name="allowButton">
-          <property name="enabled">
-           <bool>false</bool>
-          </property>
-          <property name="toolTip">
-           <string>Press to always accept cookies for the domain</string>
-          </property>
-          <property name="text">
-           <string>Allo&amp;w</string>
-          </property>
-          <property name="autoDefault">
-           <bool>false</bool>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="exceptionsGroup">
-     <property name="title">
-      <string>Exceptions</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout">
-      <item row="0" column="0" colspan="3">
-       <layout class="QHBoxLayout" name="horizontalLayout_2">
-        <item>
-         <spacer name="horizontalSpacer">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <layout class="QHBoxLayout" name="horizontalLayout">
-          <property name="spacing">
-           <number>0</number>
-          </property>
-          <item>
-           <widget class="E5ClearableLineEdit" name="searchEdit">
-            <property name="minimumSize">
-             <size>
-              <width>300</width>
-              <height>0</height>
-             </size>
-            </property>
-            <property name="toolTip">
-             <string>Enter search term for exceptions</string>
-            </property>
-           </widget>
-          </item>
-         </layout>
-        </item>
-       </layout>
-      </item>
-      <item row="1" column="0" colspan="3">
-       <widget class="E5TableView" name="exceptionsTable">
-        <property name="alternatingRowColors">
-         <bool>true</bool>
-        </property>
-        <property name="selectionBehavior">
-         <enum>QAbstractItemView::SelectRows</enum>
-        </property>
-        <property name="textElideMode">
-         <enum>Qt::ElideMiddle</enum>
-        </property>
-        <property name="showGrid">
-         <bool>false</bool>
-        </property>
-        <property name="sortingEnabled">
-         <bool>true</bool>
-        </property>
-        <attribute name="verticalHeaderVisible">
-         <bool>false</bool>
-        </attribute>
-       </widget>
-      </item>
-      <item row="2" column="0">
-       <widget class="QPushButton" name="removeButton">
-        <property name="toolTip">
-         <string>Press to remove the selected entries</string>
-        </property>
-        <property name="text">
-         <string>&amp;Remove</string>
-        </property>
-        <property name="autoDefault">
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1">
-       <widget class="QPushButton" name="removeAllButton">
-        <property name="toolTip">
-         <string>Press to remove all entries</string>
-        </property>
-        <property name="text">
-         <string>Remove &amp;All</string>
-        </property>
-        <property name="autoDefault">
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="2">
-       <spacer name="horizontalSpacer_2">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>286</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5TableView</class>
-   <extends>QTableView</extends>
-   <header>E5Gui/E5TableView.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>domainEdit</tabstop>
-  <tabstop>blockButton</tabstop>
-  <tabstop>allowForSessionButton</tabstop>
-  <tabstop>allowButton</tabstop>
-  <tabstop>searchEdit</tabstop>
-  <tabstop>exceptionsTable</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>removeAllButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>CookiesExceptionsDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>227</x>
-     <y>429</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>CookiesExceptionsDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>295</x>
-     <y>435</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/CookieJar/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing a cookie jar and related dialogs with models.
-"""
--- a/eric6/Helpviewer/Download/DownloadAskActionDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2011 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to ask for a download action.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QDialog
-
-from .Ui_DownloadAskActionDialog import Ui_DownloadAskActionDialog
-
-import Preferences
-
-
-class DownloadAskActionDialog(QDialog, Ui_DownloadAskActionDialog):
-    """
-    Class implementing a dialog to ask for a download action.
-    """
-    def __init__(self, fileName, mimeType, baseUrl, parent=None):
-        """
-        Constructor
-        
-        @param fileName file name (string)
-        @param mimeType mime type (string)
-        @param baseUrl URL (string)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(DownloadAskActionDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.infoLabel.setText("<b>{0}</b>".format(fileName))
-        self.typeLabel.setText(mimeType)
-        self.siteLabel.setText(baseUrl)
-        
-        if not Preferences.getHelp("VirusTotalEnabled") or \
-           Preferences.getHelp("VirusTotalServiceKey") == "":
-            self.scanButton.setHidden(True)
-        
-        msh = self.minimumSizeHint()
-        self.resize(max(self.width(), msh.width()), msh.height())
-    
-    def getAction(self):
-        """
-        Public method to get the selected action.
-        
-        @return selected action ("save", "open", "scan" or "cancel")
-        """
-        if self.openButton.isChecked():
-            return "open"
-        elif self.scanButton.isChecked():
-            return "scan"
-        elif self.saveButton.isChecked():
-            return "save"
-        else:
-            # should not happen, but keep it safe
-            return "cancel"
--- a/eric6/Helpviewer/Download/DownloadAskActionDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,205 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>DownloadAskActionDialog</class>
- <widget class="QDialog" name="DownloadAskActionDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>209</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>What to do?</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QLabel" name="label_3">
-     <property name="text">
-      <string>You are about to download this file:</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="gridLayout_2">
-     <item row="0" column="0">
-      <widget class="QLabel" name="label_4">
-       <property name="text">
-        <string notr="true"/>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1" colspan="2">
-      <widget class="QLabel" name="infoLabel">
-       <property name="text">
-        <string/>
-       </property>
-       <property name="wordWrap">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QLabel" name="label_5">
-       <property name="text">
-        <string>Type:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="2">
-      <widget class="QLabel" name="typeLabel">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string/>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QLabel" name="label_6">
-       <property name="text">
-        <string>From:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="2">
-      <widget class="QLabel" name="siteLabel">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string/>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="1" column="0">
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string notr="true"/>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QRadioButton" name="openButton">
-       <property name="toolTip">
-        <string>Select to open the downloaded file</string>
-       </property>
-       <property name="text">
-        <string>&amp;Open File</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QRadioButton" name="scanButton">
-       <property name="statusTip">
-        <string>Select to scan the file with VirusTotal</string>
-       </property>
-       <property name="text">
-        <string>Scan with &amp;VirusTotal</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="2" rowspan="2">
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item row="3" column="1">
-      <widget class="QRadioButton" name="saveButton">
-       <property name="toolTip">
-        <string>Select to save the file</string>
-       </property>
-       <property name="text">
-        <string>&amp;Save File</string>
-       </property>
-       <property name="checked">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="0" colspan="2">
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>&lt;b&gt;What do you want to do?&lt;/b&gt;</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>openButton</tabstop>
-  <tabstop>scanButton</tabstop>
-  <tabstop>saveButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>DownloadAskActionDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>DownloadAskActionDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/Download/DownloadItem.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,764 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a widget controlling a download.
-"""
-
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QTime, QFile, QFileInfo, \
-    QUrl, QIODevice, QCryptographicHash, PYQT_VERSION_STR, QDateTime
-from PyQt5.QtGui import QPalette, QDesktopServices
-from PyQt5.QtWidgets import QWidget, QStyle, QDialog
-from PyQt5.QtNetwork import QNetworkRequest, QNetworkReply
-
-from E5Gui import E5FileDialog
-
-from .Ui_DownloadItem import Ui_DownloadItem
-
-from .DownloadUtilities import timeString, dataString
-from ..HelpUtilities import parseContentDisposition
-
-import UI.PixmapCache
-import Preferences
-
-
-class DownloadItem(QWidget, Ui_DownloadItem):
-    """
-    Class implementing a widget controlling a download.
-    
-    @signal statusChanged() emitted upon a status change of a download
-    @signal downloadFinished() emitted when a download finished
-    @signal progress(int, int) emitted to signal the download progress
-    """
-    statusChanged = pyqtSignal()
-    downloadFinished = pyqtSignal()
-    progress = pyqtSignal(int, int)
-    
-    Downloading = 0
-    DownloadSuccessful = 1
-    DownloadCancelled = 2
-    
-    def __init__(self, reply=None, requestFilename=False, webPage=None,
-                 download=False, parent=None, mainWindow=None):
-        """
-        Constructor
-        
-        @keyparam reply reference to the network reply object (QNetworkReply)
-        @keyparam requestFilename flag indicating to ask the user for a
-            filename (boolean)
-        @keyparam webPage reference to the web page object the download
-            originated from (QWebPage)
-        @keyparam download flag indicating a download operation (boolean)
-        @keyparam parent reference to the parent widget (QWidget)
-        @keyparam mainWindow reference to the main window (HelpWindow)
-        """
-        super(DownloadItem, self).__init__(parent)
-        self.setupUi(self)
-        
-        p = self.infoLabel.palette()
-        p.setColor(QPalette.Text, Qt.darkGray)
-        self.infoLabel.setPalette(p)
-        
-        self.progressBar.setMaximum(0)
-        
-        self.__isFtpDownload = reply is not None and \
-            reply.url().scheme() == "ftp"
-        
-        self.tryAgainButton.setIcon(UI.PixmapCache.getIcon("restart.png"))
-        self.tryAgainButton.setEnabled(False)
-        self.tryAgainButton.setVisible(False)
-        self.stopButton.setIcon(UI.PixmapCache.getIcon("stopLoading.png"))
-        self.pauseButton.setIcon(UI.PixmapCache.getIcon("pause.png"))
-        self.openButton.setIcon(UI.PixmapCache.getIcon("open.png"))
-        self.openButton.setEnabled(False)
-        self.openButton.setVisible(False)
-        if self.__isFtpDownload:
-            self.stopButton.setEnabled(False)
-            self.stopButton.setVisible(False)
-            self.pauseButton.setEnabled(False)
-            self.pauseButton.setVisible(False)
-        
-        self.__state = DownloadItem.Downloading
-        
-        icon = self.style().standardIcon(QStyle.SP_FileIcon)
-        self.fileIcon.setPixmap(icon.pixmap(48, 48))
-        
-        self.__mainWindow = mainWindow
-        self.__reply = reply
-        self.__requestFilename = requestFilename
-        self.__page = webPage
-        self.__pageUrl = webPage and webPage.mainFrame().url() or QUrl()
-        self.__toDownload = download
-        self.__bytesReceived = 0
-        self.__bytesTotal = -1
-        self.__downloadTime = QTime()
-        self.__output = QFile()
-        self.__fileName = ""
-        self.__originalFileName = ""
-        self.__startedSaving = False
-        self.__finishedDownloading = False
-        self.__gettingFileName = False
-        self.__canceledFileSelect = False
-        self.__autoOpen = False
-        self.__downloadedDateTime = QDateTime()
-        
-        self.__sha1Hash = QCryptographicHash(QCryptographicHash.Sha1)
-        self.__md5Hash = QCryptographicHash(QCryptographicHash.Md5)
-        
-        if not requestFilename:
-            self.__requestFilename = \
-                Preferences.getUI("RequestDownloadFilename")
-        
-        self.__initialize()
-    
-    def __initialize(self, tryAgain=False):
-        """
-        Private method to (re)initialize the widget.
-        
-        @param tryAgain flag indicating a retry (boolean)
-        """
-        if self.__reply is None:
-            return
-        
-        self.__startedSaving = False
-        self.__finishedDownloading = False
-        self.__bytesReceived = 0
-        self.__bytesTotal = -1
-        
-        self.__sha1Hash.reset()
-        self.__md5Hash.reset()
-        
-        # start timer for the download estimation
-        self.__downloadTime.start()
-        
-        # attach to the reply object
-        self.__url = self.__reply.url()
-        self.__reply.setParent(self)
-        self.__reply.setReadBufferSize(16 * 1024 * 1024)
-        self.__reply.readyRead.connect(self.__readyRead)
-        self.__reply.error.connect(self.__networkError)
-        self.__reply.downloadProgress.connect(self.__downloadProgress)
-        self.__reply.metaDataChanged.connect(self.__metaDataChanged)
-        self.__reply.finished.connect(self.__finished)
-        
-        # reset info
-        self.datetimeLabel.clear()
-        self.datetimeLabel.hide()
-        self.infoLabel.clear()
-        self.progressBar.setValue(0)
-        self.__getFileName()
-        
-        if self.__reply.error() != QNetworkReply.NoError:
-            self.__networkError()
-            self.__finished()
-    
-    def __getFileName(self):
-        """
-        Private method to get the file name to save to from the user.
-        """
-        if self.__gettingFileName:
-            return
-        
-        import Helpviewer.HelpWindow
-        downloadDirectory = Helpviewer.HelpWindow.HelpWindow\
-            .downloadManager().downloadDirectory()
-        
-        if self.__fileName:
-            fileName = self.__fileName
-            originalFileName = self.__originalFileName
-            self.__toDownload = True
-            ask = False
-        else:
-            defaultFileName, originalFileName = \
-                self.__saveFileName(downloadDirectory)
-            fileName = defaultFileName
-            self.__originalFileName = originalFileName
-            ask = True
-        self.__autoOpen = False
-        if not self.__toDownload:
-            from .DownloadAskActionDialog import DownloadAskActionDialog
-            url = self.__reply.url()
-            dlg = DownloadAskActionDialog(
-                QFileInfo(originalFileName).fileName(),
-                self.__reply.header(QNetworkRequest.ContentTypeHeader),
-                "{0}://{1}".format(url.scheme(), url.authority()),
-                self)
-            if dlg.exec_() == QDialog.Rejected or dlg.getAction() == "cancel":
-                self.progressBar.setVisible(False)
-                self.__reply.close()
-                self.on_stopButton_clicked()
-                self.filenameLabel.setText(
-                    self.tr("Download canceled: {0}").format(
-                        QFileInfo(defaultFileName).fileName()))
-                self.__canceledFileSelect = True
-                self.__setDateTime()
-                return
-            
-            if dlg.getAction() == "scan":
-                self.__mainWindow.requestVirusTotalScan(url)
-                
-                self.progressBar.setVisible(False)
-                self.__reply.close()
-                self.on_stopButton_clicked()
-                self.filenameLabel.setText(
-                    self.tr("VirusTotal scan scheduled: {0}").format(
-                        QFileInfo(defaultFileName).fileName()))
-                self.__canceledFileSelect = True
-                return
-            
-            self.__autoOpen = dlg.getAction() == "open"
-            if PYQT_VERSION_STR >= "5.0.0":
-                from PyQt5.QtCore import QStandardPaths
-                tempLocation = QStandardPaths.standardLocations(
-                    QStandardPaths.TempLocation)[0]
-            else:
-                from PyQt5.QtGui import QDesktopServices
-                tempLocation = QDesktopServices.storageLocation(
-                    QDesktopServices.TempLocation)
-            fileName = tempLocation + '/' + \
-                QFileInfo(fileName).completeBaseName()
-        
-        if ask and not self.__autoOpen and self.__requestFilename:
-            self.__gettingFileName = True
-            fileName = E5FileDialog.getSaveFileName(
-                None,
-                self.tr("Save File"),
-                defaultFileName,
-                "")
-            self.__gettingFileName = False
-            if not fileName:
-                self.progressBar.setVisible(False)
-                self.__reply.close()
-                self.on_stopButton_clicked()
-                self.filenameLabel.setText(
-                    self.tr("Download canceled: {0}")
-                        .format(QFileInfo(defaultFileName).fileName()))
-                self.__canceledFileSelect = True
-                self.__setDateTime()
-                return
-        
-        fileInfo = QFileInfo(fileName)
-        Helpviewer.HelpWindow.HelpWindow.downloadManager()\
-            .setDownloadDirectory(fileInfo.absoluteDir().absolutePath())
-        self.filenameLabel.setText(fileInfo.fileName())
-        
-        self.__output.setFileName(fileName + ".part")
-        self.__fileName = fileName
-        
-        # check file path for saving
-        saveDirPath = QFileInfo(self.__fileName).dir()
-        if not saveDirPath.exists():
-            if not saveDirPath.mkpath(saveDirPath.absolutePath()):
-                self.progressBar.setVisible(False)
-                self.on_stopButton_clicked()
-                self.infoLabel.setText(self.tr(
-                    "Download directory ({0}) couldn't be created.")
-                    .format(saveDirPath.absolutePath()))
-                self.__setDateTime()
-                return
-        
-        self.filenameLabel.setText(QFileInfo(self.__fileName).fileName())
-        if self.__requestFilename:
-            self.__readyRead()
-    
-    def __saveFileName(self, directory):
-        """
-        Private method to calculate a name for the file to download.
-        
-        @param directory name of the directory to store the file into (string)
-        @return proposed filename and original filename (string, string)
-        """
-        path = parseContentDisposition(self.__reply)
-        info = QFileInfo(path)
-        baseName = info.completeBaseName()
-        endName = info.suffix()
-        
-        origName = baseName
-        if endName:
-            origName += '.' + endName
-        
-        name = directory + baseName
-        if endName:
-            name += '.' + endName
-            if not self.__requestFilename:
-                # do not overwrite, if the user is not being asked
-                i = 1
-                while QFile.exists(name):
-                    # file exists already, don't overwrite
-                    name = directory + baseName + ('-{0:d}'.format(i))
-                    if endName:
-                        name += '.' + endName
-                    i += 1
-        return name, origName
-    
-    @pyqtSlot()
-    def on_tryAgainButton_clicked(self):
-        """
-        Private slot to retry the download.
-        """
-        self.retry()
-    
-    def retry(self):
-        """
-        Public slot to retry the download.
-        """
-        if not self.tryAgainButton.isEnabled():
-            return
-        
-        self.tryAgainButton.setEnabled(False)
-        self.tryAgainButton.setVisible(False)
-        self.openButton.setEnabled(False)
-        self.openButton.setVisible(False)
-        if not self.__isFtpDownload:
-            self.stopButton.setEnabled(True)
-            self.stopButton.setVisible(True)
-            self.pauseButton.setEnabled(True)
-            self.pauseButton.setVisible(True)
-        self.progressBar.setVisible(True)
-        
-        if self.__page:
-            nam = self.__page.networkAccessManager()
-        else:
-            import Helpviewer.HelpWindow
-            nam = Helpviewer.HelpWindow.HelpWindow.networkAccessManager()
-        reply = nam.get(QNetworkRequest(self.__url))
-        if self.__output.exists():
-            self.__output.remove()
-        self.__output = QFile()
-        self.__reply = reply
-        self.__initialize(tryAgain=True)
-        self.__state = DownloadItem.Downloading
-        self.statusChanged.emit()
-    
-    @pyqtSlot(bool)
-    def on_pauseButton_clicked(self, checked):
-        """
-        Private slot to pause the download.
-        
-        @param checked flag indicating the state of the button (boolean)
-        """
-        if checked:
-            self.__reply.readyRead.disconnect(self.__readyRead)
-            self.__reply.setReadBufferSize(16 * 1024)
-        else:
-            self.__reply.readyRead.connect(self.__readyRead)
-            self.__reply.setReadBufferSize(16 * 1024 * 1024)
-            self.__readyRead()
-    
-    @pyqtSlot()
-    def on_stopButton_clicked(self):
-        """
-        Private slot to stop the download.
-        """
-        self.cancelDownload()
-    
-    def cancelDownload(self):
-        """
-        Public slot to stop the download.
-        """
-        self.setUpdatesEnabled(False)
-        if not self.__isFtpDownload:
-            self.stopButton.setEnabled(False)
-            self.stopButton.setVisible(False)
-            self.pauseButton.setEnabled(False)
-            self.pauseButton.setVisible(False)
-        self.tryAgainButton.setEnabled(True)
-        self.tryAgainButton.setVisible(True)
-        self.openButton.setEnabled(False)
-        self.openButton.setVisible(False)
-        self.setUpdatesEnabled(True)
-        self.__state = DownloadItem.DownloadCancelled
-        self.__reply.abort()
-        self.__setDateTime()
-        self.downloadFinished.emit()
-    
-    @pyqtSlot()
-    def on_openButton_clicked(self):
-        """
-        Private slot to open the downloaded file.
-        """
-        self.openFile()
-    
-    def openFile(self):
-        """
-        Public slot to open the downloaded file.
-        """
-        info = QFileInfo(self.__fileName)
-        url = QUrl.fromLocalFile(info.absoluteFilePath())
-        QDesktopServices.openUrl(url)
-    
-    def openFolder(self):
-        """
-        Public slot to open the folder containing the downloaded file.
-        """
-        info = QFileInfo(self.__fileName)
-        url = QUrl.fromLocalFile(info.absolutePath())
-        QDesktopServices.openUrl(url)
-    
-    def __readyRead(self):
-        """
-        Private slot to read the available data.
-        """
-        if self.__requestFilename and not self.__output.fileName():
-            return
-        
-        if not self.__output.isOpen():
-            # in case someone else has already put a file there
-            if not self.__requestFilename:
-                self.__getFileName()
-            if not self.__output.open(QIODevice.WriteOnly):
-                self.infoLabel.setText(
-                    self.tr("Error opening save file: {0}")
-                    .format(self.__output.errorString()))
-                self.on_stopButton_clicked()
-                self.statusChanged.emit()
-                return
-            self.statusChanged.emit()
-        
-        buffer = self.__reply.readAll()
-        self.__sha1Hash.addData(buffer)
-        self.__md5Hash.addData(buffer)
-        bytesWritten = self.__output.write(buffer)
-        if bytesWritten == -1:
-            self.infoLabel.setText(
-                self.tr("Error saving: {0}")
-                    .format(self.__output.errorString()))
-            self.on_stopButton_clicked()
-        else:
-            self.__startedSaving = True
-            if self.__finishedDownloading:
-                self.__finished()
-    
-    def __networkError(self):
-        """
-        Private slot to handle a network error.
-        """
-        self.infoLabel.setText(
-            self.tr("Network Error: {0}")
-                .format(self.__reply.errorString()))
-        self.tryAgainButton.setEnabled(True)
-        self.tryAgainButton.setVisible(True)
-        self.downloadFinished.emit()
-    
-    def __metaDataChanged(self):
-        """
-        Private slot to handle a change of the meta data.
-        """
-        locationHeader = self.__reply.header(QNetworkRequest.LocationHeader)
-        if locationHeader and locationHeader.isValid():
-            self.__url = QUrl(locationHeader)
-            import Helpviewer.HelpWindow
-            self.__reply = Helpviewer.HelpWindow.HelpWindow\
-                .networkAccessManager().get(QNetworkRequest(self.__url))
-            self.__initialize()
-    
-    def __downloadProgress(self, bytesReceived, bytesTotal):
-        """
-        Private method to show the download progress.
-        
-        @param bytesReceived number of bytes received (integer)
-        @param bytesTotal number of total bytes (integer)
-        """
-        self.__bytesReceived = bytesReceived
-        self.__bytesTotal = bytesTotal
-        currentValue = 0
-        totalValue = 0
-        if bytesTotal > 0:
-            currentValue = bytesReceived * 100 / bytesTotal
-            totalValue = 100
-        self.progressBar.setValue(currentValue)
-        self.progressBar.setMaximum(totalValue)
-        
-        self.progress.emit(currentValue, totalValue)
-        self.__updateInfoLabel()
-    
-    def bytesTotal(self):
-        """
-        Public method to get the total number of bytes of the download.
-        
-        @return total number of bytes (integer)
-        """
-        if self.__bytesTotal == -1:
-            self.__bytesTotal = self.__reply.header(
-                QNetworkRequest.ContentLengthHeader)
-            if self.__bytesTotal is None:
-                self.__bytesTotal = -1
-        return self.__bytesTotal
-    
-    def bytesReceived(self):
-        """
-        Public method to get the number of bytes received.
-        
-        @return number of bytes received (integer)
-        """
-        return self.__bytesReceived
-    
-    def remainingTime(self):
-        """
-        Public method to get an estimation for the remaining time.
-        
-        @return estimation for the remaining time (float)
-        """
-        if not self.downloading():
-            return -1.0
-        
-        if self.bytesTotal() == -1:
-            return -1.0
-        
-        cSpeed = self.currentSpeed()
-        if cSpeed != 0:
-            timeRemaining = (self.bytesTotal() - self.bytesReceived()) / cSpeed
-        else:
-            timeRemaining = 1
-        
-        # ETA should never be 0
-        if timeRemaining == 0:
-            timeRemaining = 1
-        
-        return timeRemaining
-    
-    def currentSpeed(self):
-        """
-        Public method to get an estimation for the download speed.
-        
-        @return estimation for the download speed (float)
-        """
-        if not self.downloading():
-            return -1.0
-        
-        return self.__bytesReceived * 1000.0 / self.__downloadTime.elapsed()
-    
-    def __updateInfoLabel(self):
-        """
-        Private method to update the info label.
-        """
-        if self.__reply.error() != QNetworkReply.NoError:
-            return
-        
-        bytesTotal = self.bytesTotal()
-        running = not self.downloadedSuccessfully()
-        
-        speed = self.currentSpeed()
-        timeRemaining = self.remainingTime()
-        
-        info = ""
-        if running:
-            remaining = ""
-            
-            if bytesTotal > 0:
-                remaining = timeString(timeRemaining)
-            
-            info = self.tr("{0} of {1} ({2}/sec)\n{3}")\
-                .format(
-                    dataString(self.__bytesReceived),
-                    bytesTotal == -1 and self.tr("?") or
-                    dataString(bytesTotal),
-                    dataString(int(speed)),
-                    remaining)
-        else:
-            if self.__bytesReceived == bytesTotal or bytesTotal == -1:
-                info = self.tr("{0} downloaded\nSHA1: {1}\nMD5: {2}")\
-                    .format(dataString(self.__output.size()),
-                            str(self.__sha1Hash.result().toHex(),
-                                encoding="ascii"),
-                            str(self.__md5Hash.result().toHex(),
-                                encoding="ascii")
-                            )
-            else:
-                info = self.tr("{0} of {1} - Stopped")\
-                    .format(dataString(self.__bytesReceived),
-                            dataString(bytesTotal))
-        self.infoLabel.setText(info)
-    
-    def downloading(self):
-        """
-        Public method to determine, if a download is in progress.
-        
-        @return flag indicating a download is in progress (boolean)
-        """
-        return self.__state == DownloadItem.Downloading
-    
-    def downloadedSuccessfully(self):
-        """
-        Public method to check for a successful download.
-        
-        @return flag indicating a successful download (boolean)
-        """
-        return self.__state == DownloadItem.DownloadSuccessful
-    
-    def downloadCanceled(self):
-        """
-        Public method to check, if the download was cancelled.
-        
-        @return flag indicating a canceled download (boolean)
-        """
-        return self.__state == DownloadItem.DownloadCancelled
-    
-    def __finished(self):
-        """
-        Private slot to handle the download finished.
-        """
-        self.__finishedDownloading = True
-        if not self.__startedSaving:
-            return
-        
-        noError = self.__reply.error() == QNetworkReply.NoError
-        
-        self.progressBar.setVisible(False)
-        if not self.__isFtpDownload:
-            self.stopButton.setEnabled(False)
-            self.stopButton.setVisible(False)
-            self.pauseButton.setEnabled(False)
-            self.pauseButton.setVisible(False)
-        self.openButton.setEnabled(noError)
-        self.openButton.setVisible(noError)
-        self.__output.close()
-        if QFile.exists(self.__fileName):
-            QFile.remove(self.__fileName)
-        self.__output.rename(self.__fileName)
-        self.__state = DownloadItem.DownloadSuccessful
-        self.__updateInfoLabel()
-        self.__setDateTime()
-        
-        self.__adjustSize()
-        
-        self.statusChanged.emit()
-        self.downloadFinished.emit()
-        
-        if self.__autoOpen:
-            self.openFile()
-    
-    def canceledFileSelect(self):
-        """
-        Public method to check, if the user canceled the file selection.
-        
-        @return flag indicating cancellation (boolean)
-        """
-        return self.__canceledFileSelect
-    
-    def setIcon(self, icon):
-        """
-        Public method to set the download icon.
-        
-        @param icon reference to the icon to be set (QIcon)
-        """
-        self.fileIcon.setPixmap(icon.pixmap(48, 48))
-    
-    def fileName(self):
-        """
-        Public method to get the name of the output file.
-        
-        @return name of the output file (string)
-        """
-        return self.__fileName
-    
-    def absoluteFilePath(self):
-        """
-        Public method to get the absolute path of the output file.
-        
-        @return absolute path of the output file (string)
-        """
-        return QFileInfo(self.__fileName).absoluteFilePath()
-    
-    def getData(self):
-        """
-        Public method to get the relevant download data.
-        
-        @return tuple of URL, save location, flag, the
-            URL of the related web page and the date and time
-            of the download
-        @rtype tuple of (QUrl, str, bool, QUrl, QDateTime)
-        """
-        return (self.__url, QFileInfo(self.__fileName).filePath(),
-                self.downloadedSuccessfully(), self.__pageUrl,
-                self.__downloadedDateTime)
-    
-    def setData(self, data):
-        """
-        Public method to set the relevant download data.
-        
-        @param data tuple of URL, save location, flag, the
-            URL of the related web page and the date and time
-            of the download
-        @type QUrl, str, bool, QUrl, QDateTime
-        """
-        self.__url = data[0]
-        self.__fileName = data[1]
-        self.__pageUrl = data[3]
-        self.__isFtpDownload = self.__url.scheme() == "ftp"
-        
-        self.filenameLabel.setText(QFileInfo(self.__fileName).fileName())
-        self.infoLabel.setText(self.__fileName)
-        
-        if len(data) == 5:
-            self.__setDateTime(data[4])
-        else:
-            self.__setDateTime(QDateTime())
-        
-        self.stopButton.setEnabled(False)
-        self.stopButton.setVisible(False)
-        self.pauseButton.setEnabled(False)
-        self.pauseButton.setVisible(False)
-        self.openButton.setEnabled(data[2])
-        self.openButton.setVisible(data[2])
-        self.tryAgainButton.setEnabled(not data[2])
-        self.tryAgainButton.setVisible(not data[2])
-        if data[2]:
-            self.__state = DownloadItem.DownloadSuccessful
-        else:
-            self.__state = DownloadItem.DownloadCancelled
-        self.progressBar.setVisible(False)
-        
-        self.__adjustSize()
-    
-    def getInfoData(self):
-        """
-        Public method to get the text of the info label.
-        
-        @return text of the info label (string)
-        """
-        return self.infoLabel.text()
-    
-    def getPageUrl(self):
-        """
-        Public method to get the URL of the download page.
-        
-        @return URL of the download page (QUrl)
-        """
-        return self.__pageUrl
-    
-    def __adjustSize(self):
-        """
-        Private method to adjust the size of the download item.
-        """
-        self.ensurePolished()
-        
-        msh = self.minimumSizeHint()
-        self.resize(max(self.width(), msh.width()), msh.height())
-    
-    def __setDateTime(self, dateTime=None):
-        """
-        Private method to set the download date and time.
-        
-        @param dateTime date and time to be set
-        @type QDateTime
-        """
-        if dateTime is None:
-            self.__downloadedDateTime = QDateTime.currentDateTime()
-        else:
-            self.__downloadedDateTime = dateTime
-        if self.__downloadedDateTime.isValid():
-            labelText = self.__downloadedDateTime.toString("yyyy-MM-dd hh:mm")
-            self.datetimeLabel.setText(labelText)
-            self.datetimeLabel.show()
-        else:
-            self.datetimeLabel.clear()
-            self.datetimeLabel.hide()
--- a/eric6/Helpviewer/Download/DownloadItem.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>DownloadItem</class>
- <widget class="QWidget" name="DownloadItem">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>104</height>
-   </rect>
-  </property>
-  <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Expanding">
-    <horstretch>0</horstretch>
-    <verstretch>0</verstretch>
-   </sizepolicy>
-  </property>
-  <property name="windowTitle">
-   <string/>
-  </property>
-  <layout class="QHBoxLayout" name="horizontalLayout">
-   <property name="leftMargin">
-    <number>2</number>
-   </property>
-   <property name="topMargin">
-    <number>2</number>
-   </property>
-   <property name="rightMargin">
-    <number>2</number>
-   </property>
-   <property name="bottomMargin">
-    <number>2</number>
-   </property>
-   <item>
-    <widget class="QLabel" name="fileIcon">
-     <property name="text">
-      <string>Icon</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QVBoxLayout" name="verticalLayout">
-     <item>
-      <widget class="QLabel" name="datetimeLabel">
-       <property name="text">
-        <string>Date and Time</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignCenter</set>
-       </property>
-       <property name="wordWrap">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="filenameLabel">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string>Filename</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignCenter</set>
-       </property>
-       <property name="wordWrap">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QProgressBar" name="progressBar"/>
-     </item>
-     <item>
-      <widget class="QLabel" name="infoLabel">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string notr="true">Info</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignCenter</set>
-       </property>
-       <property name="wordWrap">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QToolButton" name="tryAgainButton">
-     <property name="toolTip">
-      <string>Press to repeat the download</string>
-     </property>
-     <property name="text">
-      <string/>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QToolButton" name="pauseButton">
-     <property name="toolTip">
-      <string>Press to pause the download</string>
-     </property>
-     <property name="text">
-      <string/>
-     </property>
-     <property name="checkable">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QToolButton" name="stopButton">
-     <property name="toolTip">
-      <string>Press to cancel the download</string>
-     </property>
-     <property name="text">
-      <string/>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QToolButton" name="openButton">
-     <property name="toolTip">
-      <string>Press to open the downloaded file</string>
-     </property>
-     <property name="text">
-      <string/>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>tryAgainButton</tabstop>
-  <tabstop>pauseButton</tabstop>
-  <tabstop>stopButton</tabstop>
-  <tabstop>openButton</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Helpviewer/Download/DownloadManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,537 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the download manager class.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt, QModelIndex, QFileInfo
-from PyQt5.QtGui import QCursor
-from PyQt5.QtWidgets import QDialog, QStyle, QFileIconProvider, QMenu, \
-    QApplication
-from PyQt5.QtNetwork import QNetworkRequest
-from PyQt5.QtWebKit import QWebSettings
-
-from E5Gui import E5MessageBox
-
-from .Ui_DownloadManager import Ui_DownloadManager
-
-from .DownloadModel import DownloadModel
-
-import Helpviewer.HelpWindow
-
-from Utilities.AutoSaver import AutoSaver
-import UI.PixmapCache
-import Preferences
-
-
-class DownloadManager(QDialog, Ui_DownloadManager):
-    """
-    Class implementing the download manager.
-    """
-    RemoveNever = 0
-    RemoveExit = 1
-    RemoveSuccessFullDownload = 2
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(DownloadManager, self).__init__(parent)
-        self.setupUi(self)
-        self.setWindowFlags(Qt.Window)
-        
-        self.__saveTimer = AutoSaver(self, self.save)
-        
-        self.__model = DownloadModel(self)
-        self.__manager = Helpviewer.HelpWindow.HelpWindow\
-            .networkAccessManager()
-        
-        self.__iconProvider = None
-        self.__downloads = []
-        self.__downloadDirectory = ""
-        self.__loaded = False
-        
-        self.__rowHeightMultiplier = 1.1
-        
-        self.setDownloadDirectory(Preferences.getUI("DownloadPath"))
-        
-        self.downloadsView.setShowGrid(False)
-        self.downloadsView.verticalHeader().hide()
-        self.downloadsView.horizontalHeader().hide()
-        self.downloadsView.setAlternatingRowColors(True)
-        self.downloadsView.horizontalHeader().setStretchLastSection(True)
-        self.downloadsView.setModel(self.__model)
-        self.downloadsView.setContextMenuPolicy(Qt.CustomContextMenu)
-        self.downloadsView.customContextMenuRequested.connect(
-            self.__customContextMenuRequested)
-        
-        self.__load()
-    
-    def __customContextMenuRequested(self, pos):
-        """
-        Private slot to handle the context menu request for the bookmarks tree.
-        
-        @param pos position the context menu was requested (QPoint)
-        """
-        menu = QMenu()
-        
-        selectedRowsCount = len(
-            self.downloadsView.selectionModel().selectedRows())
-        
-        if selectedRowsCount == 1:
-            row = self.downloadsView.selectionModel().selectedRows()[0].row()
-            itm = self.__downloads[row]
-            if itm.downloadCanceled():
-                menu.addAction(
-                    UI.PixmapCache.getIcon("restart.png"),
-                    self.tr("Retry"), self.__contextMenuRetry)
-            else:
-                if itm.downloadedSuccessfully():
-                    menu.addAction(
-                        UI.PixmapCache.getIcon("open.png"),
-                        self.tr("Open"), self.__contextMenuOpen)
-                elif itm.downloading():
-                    menu.addAction(
-                        UI.PixmapCache.getIcon("stopLoading.png"),
-                        self.tr("Cancel"), self.__contextMenuCancel)
-                    menu.addSeparator()
-                menu.addAction(
-                    self.tr("Open Containing Folder"),
-                    self.__contextMenuOpenFolder)
-            menu.addSeparator()
-            menu.addAction(
-                self.tr("Go to Download Page"),
-                self.__contextMenuGotoPage)
-            menu.addAction(
-                self.tr("Copy Download Link"),
-                self.__contextMenuCopyLink)
-            menu.addSeparator()
-        menu.addAction(self.tr("Select All"), self.__contextMenuSelectAll)
-        if selectedRowsCount > 1 or \
-           (selectedRowsCount == 1 and
-            not self.__downloads[
-                self.downloadsView.selectionModel().selectedRows()[0].row()]
-                .downloading()):
-            menu.addSeparator()
-            menu.addAction(
-                self.tr("Remove From List"),
-                self.__contextMenuRemoveSelected)
-        
-        menu.exec_(QCursor.pos())
-    
-    def shutdown(self):
-        """
-        Public method to stop the download manager.
-        """
-        self.__saveTimer.changeOccurred()
-        self.__saveTimer.saveIfNeccessary()
-        self.close()
-    
-    def activeDownloads(self):
-        """
-        Public method to get the number of active downloads.
-        
-        @return number of active downloads (integer)
-        """
-        count = 0
-        
-        for download in self.__downloads:
-            if download.downloading():
-                count += 1
-        return count
-    
-    def allowQuit(self):
-        """
-        Public method to check, if it is ok to quit.
-        
-        @return flag indicating allowance to quit (boolean)
-        """
-        if self.activeDownloads() > 0:
-            res = E5MessageBox.yesNo(
-                self,
-                self.tr(""),
-                self.tr("""There are %n downloads in progress.\n"""
-                        """Do you want to quit anyway?""", "",
-                        self.activeDownloads()),
-                icon=E5MessageBox.Warning)
-            if not res:
-                self.show()
-                return False
-        return True
-    
-    def download(self, requestOrUrl, requestFileName=False, mainWindow=None):
-        """
-        Public method to download a file.
-        
-        @param requestOrUrl reference to a request object (QNetworkRequest)
-            or a URL to be downloaded (QUrl)
-        @keyparam requestFileName flag indicating to ask for the
-            download file name (boolean)
-        @keyparam mainWindow reference to the main window (HelpWindow)
-        """
-        request = QNetworkRequest(requestOrUrl)
-        if request.url().isEmpty():
-            return
-        self.handleUnsupportedContent(
-            self.__manager.get(request),
-            requestFileName=requestFileName,
-            download=True,
-            mainWindow=mainWindow)
-    
-    def handleUnsupportedContent(self, reply, requestFileName=False,
-                                 webPage=None, download=False,
-                                 mainWindow=None):
-        """
-        Public method to handle unsupported content by downloading the
-        referenced resource.
-        
-        @param reply reference to the reply object (QNetworkReply)
-        @keyparam requestFileName indicating to ask for a filename
-            (boolean)
-        @keyparam webPage reference to the web page (HelpWebPage)
-        @keyparam download flag indicating a download request (boolean)
-        @keyparam mainWindow reference to the main window (HelpWindow)
-        """
-        if reply is None or reply.url().isEmpty():
-            return
-        
-        size = reply.header(QNetworkRequest.ContentLengthHeader)
-        if size == 0:
-            return
-        
-        from .DownloadItem import DownloadItem
-        itm = DownloadItem(
-            reply=reply, requestFilename=requestFileName,
-            webPage=webPage, download=download, parent=self,
-            mainWindow=mainWindow)
-        self.__addItem(itm)
-        
-        if itm.canceledFileSelect():
-            return
-        
-        if not self.isVisible():
-            self.show()
-        
-        self.activateWindow()
-        self.raise_()
-    
-    def __addItem(self, itm, append=False):
-        """
-        Private method to add a download to the list of downloads.
-        
-        @param itm reference to the download item
-        @type DownloadItem
-        @param append flag indicating to append the item
-        @type bool
-        """
-        itm.statusChanged.connect(lambda: self.__updateRow(itm))
-        itm.downloadFinished.connect(self.__finished)
-        
-        # insert at top of window
-        if append:
-            row = len(self.__downloads)
-        else:
-            row = 0
-        self.__model.beginInsertRows(QModelIndex(), row, row)
-        if append:
-            self.__downloads.append(itm)
-        else:
-            self.__downloads.insert(0, itm)
-        self.__model.endInsertRows()
-        
-        self.downloadsView.setIndexWidget(self.__model.index(row, 0), itm)
-        icon = self.style().standardIcon(QStyle.SP_FileIcon)
-        itm.setIcon(icon)
-        self.downloadsView.setRowHeight(
-            row, itm.sizeHint().height() * self.__rowHeightMultiplier)
-        # just in case the download finished before the constructor returned
-        self.__updateRow(itm)
-        self.changeOccurred()
-        self.__updateActiveItemCount()
-    
-    def __updateRow(self, itm):
-        """
-        Private slot to update a download item.
-        
-        @param itm reference to the download item
-        @type DownloadItem
-        """
-        if itm not in self.__downloads:
-            return
-        
-        row = self.__downloads.index(itm)
-        
-        if self.__iconProvider is None:
-            self.__iconProvider = QFileIconProvider()
-        
-        icon = self.__iconProvider.icon(QFileInfo(itm.fileName()))
-        if icon.isNull():
-            icon = self.style().standardIcon(QStyle.SP_FileIcon)
-        itm.setIcon(icon)
-        
-        self.downloadsView.setRowHeight(
-            row,
-            itm.minimumSizeHint().height() * self.__rowHeightMultiplier)
-        
-        remove = False
-        globalSettings = QWebSettings.globalSettings()
-        if not itm.downloading() and \
-           globalSettings.testAttribute(QWebSettings.PrivateBrowsingEnabled):
-            remove = True
-        
-        if itm.downloadedSuccessfully() and \
-           self.removePolicy() == DownloadManager.RemoveSuccessFullDownload:
-            remove = True
-        
-        if remove:
-            self.__model.removeRow(row)
-        
-        self.cleanupButton.setEnabled(
-            (len(self.__downloads) - self.activeDownloads()) > 0)
-        
-        # record the change
-        self.changeOccurred()
-    
-    def removePolicy(self):
-        """
-        Public method to get the remove policy.
-        
-        @return remove policy (integer)
-        """
-        return Preferences.getHelp("DownloadManagerRemovePolicy")
-    
-    def setRemovePolicy(self, policy):
-        """
-        Public method to set the remove policy.
-        
-        @param policy policy to be set
-            (DownloadManager.RemoveExit, DownloadManager.RemoveNever,
-             DownloadManager.RemoveSuccessFullDownload)
-        """
-        assert policy in (DownloadManager.RemoveExit,
-                          DownloadManager.RemoveNever,
-                          DownloadManager.RemoveSuccessFullDownload)
-        
-        if policy == self.removePolicy():
-            return
-        
-        Preferences.setHelp("DownloadManagerRemovePolicy", self.policy)
-    
-    def save(self):
-        """
-        Public method to save the download settings.
-        """
-        if not self.__loaded:
-            return
-        
-        Preferences.setHelp("DownloadManagerSize", self.size())
-        Preferences.setHelp("DownloadManagerPosition", self.pos())
-        if self.removePolicy() == DownloadManager.RemoveExit:
-            return
-        
-        downloads = []
-        for download in self.__downloads:
-            downloads.append(download.getData())
-        Preferences.setHelp("DownloadManagerDownloads", downloads)
-    
-    def __load(self):
-        """
-        Private method to load the download settings.
-        """
-        if self.__loaded:
-            return
-        
-        size = Preferences.getHelp("DownloadManagerSize")
-        if size.isValid():
-            self.resize(size)
-        pos = Preferences.getHelp("DownloadManagerPosition")
-        self.move(pos)
-        
-        downloads = Preferences.getHelp("DownloadManagerDownloads")
-        for download in downloads:
-            if not download[0].isEmpty() and \
-               download[1] != "":
-                from .DownloadItem import DownloadItem
-                itm = DownloadItem(parent=self)
-                itm.setData(download)
-                self.__addItem(itm, append=True)
-        self.cleanupButton.setEnabled(
-            (len(self.__downloads) - self.activeDownloads()) > 0)
-        
-        self.__loaded = True
-        self.__updateActiveItemCount()
-    
-    def cleanup(self):
-        """
-        Public slot to cleanup the downloads.
-        """
-        self.on_cleanupButton_clicked()
-    
-    @pyqtSlot()
-    def on_cleanupButton_clicked(self):
-        """
-        Private slot cleanup the downloads.
-        """
-        if len(self.__downloads) == 0:
-            return
-        
-        self.__model.removeRows(0, len(self.__downloads))
-        if len(self.__downloads) == 0 and \
-           self.__iconProvider is not None:
-            self.__iconProvider = None
-        
-        self.changeOccurred()
-        self.__updateActiveItemCount()
-    
-    def __updateItemCount(self):
-        """
-        Private method to update the count label.
-        """
-        count = len(self.__downloads)
-        self.countLabel.setText(self.tr("%n Download(s)", "", count))
-    
-    def __updateActiveItemCount(self):
-        """
-        Private method to update the window title.
-        """
-        count = self.activeDownloads()
-        if count > 0:
-            self.setWindowTitle(
-                self.tr("Downloading %n file(s)", "", count))
-        else:
-            self.setWindowTitle(self.tr("Downloads"))
-    
-    def __finished(self):
-        """
-        Private slot to handle a finished download.
-        """
-        self.__updateActiveItemCount()
-        if self.isVisible():
-            QApplication.alert(self)
-    
-    def setDownloadDirectory(self, directory):
-        """
-        Public method to set the current download directory.
-        
-        @param directory current download directory (string)
-        """
-        self.__downloadDirectory = directory
-        if self.__downloadDirectory != "":
-            self.__downloadDirectory += "/"
-    
-    def downloadDirectory(self):
-        """
-        Public method to get the current download directory.
-        
-        @return current download directory (string)
-        """
-        return self.__downloadDirectory
-    
-    def count(self):
-        """
-        Public method to get the number of downloads.
-        
-        @return number of downloads (integer)
-        """
-        return len(self.__downloads)
-    
-    def downloads(self):
-        """
-        Public method to get a reference to the downloads.
-        
-        @return reference to the downloads (list of DownloadItem)
-        """
-        return self.__downloads
-    
-    def changeOccurred(self):
-        """
-        Public method to signal a change.
-        """
-        self.__saveTimer.changeOccurred()
-        self.__updateItemCount()
-    
-    ###########################################################################
-    ## Context menu related methods below
-    ###########################################################################
-    
-    def __currentItem(self):
-        """
-        Private method to get a reference to the current item.
-        
-        @return reference to the current item (DownloadItem)
-        """
-        index = self.downloadsView.currentIndex()
-        if index and index.isValid():
-            row = index.row()
-            return self.__downloads[row]
-        
-        return None
-    
-    def __contextMenuRetry(self):
-        """
-        Private method to retry of the download.
-        """
-        itm = self.__currentItem()
-        if itm is not None:
-            itm.retry()
-    
-    def __contextMenuOpen(self):
-        """
-        Private method to open the downloaded file.
-        """
-        itm = self.__currentItem()
-        if itm is not None:
-            itm.openFile()
-    
-    def __contextMenuOpenFolder(self):
-        """
-        Private method to open the folder containing the downloaded file.
-        """
-        itm = self.__currentItem()
-        if itm is not None:
-            itm.openFolder()
-    
-    def __contextMenuCancel(self):
-        """
-        Private method to cancel the current download.
-        """
-        itm = self.__currentItem()
-        if itm is not None:
-            itm.cancelDownload()
-    
-    def __contextMenuGotoPage(self):
-        """
-        Private method to open the download page.
-        """
-        itm = self.__currentItem()
-        if itm is not None:
-            url = itm.getPageUrl()
-            Helpviewer.HelpWindow.HelpWindow.mainWindow().openUrl(url, "")
-    
-    def __contextMenuCopyLink(self):
-        """
-        Private method to copy the download link to the clipboard.
-        """
-        itm = self.__currentItem()
-        if itm is not None:
-            url = itm.getPageUrl().toString()
-            QApplication.clipboard().setText(url)
-    
-    def __contextMenuSelectAll(self):
-        """
-        Private method to select all downloads.
-        """
-        self.downloadsView.selectAll()
-    
-    def __contextMenuRemoveSelected(self):
-        """
-        Private method to remove the selected downloads from the list.
-        """
-        self.downloadsView.removeSelected()
--- a/eric6/Helpviewer/Download/DownloadManager.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>DownloadManager</class>
- <widget class="QDialog" name="DownloadManager">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>300</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Downloads</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="0" colspan="3">
-    <widget class="E5TableView" name="downloadsView"/>
-   </item>
-   <item row="1" column="0">
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <widget class="QPushButton" name="cleanupButton">
-       <property name="enabled">
-        <bool>false</bool>
-       </property>
-       <property name="toolTip">
-        <string>Press to clean up the list of downloads</string>
-       </property>
-       <property name="text">
-        <string>Clear List</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item row="1" column="1">
-    <widget class="QLabel" name="countLabel">
-     <property name="text">
-      <string>0 Items</string>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="2">
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QDialogButtonBox" name="buttonBox">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="standardButtons">
-        <set>QDialogButtonBox::Close</set>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5TableView</class>
-   <extends>QTableView</extends>
-   <header>E5Gui/E5TableView.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>downloadsView</tabstop>
-  <tabstop>cleanupButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>DownloadManager</receiver>
-   <slot>close()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>330</x>
-     <y>274</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>294</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/Download/DownloadModel.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the download model.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt, QAbstractListModel, QModelIndex, QMimeData, QUrl
-
-
-class DownloadModel(QAbstractListModel):
-    """
-    Class implementing the download model.
-    """
-    def __init__(self, manager, parent=None):
-        """
-        Constructor
-        
-        @param manager reference to the download manager (DownloadManager)
-        @param parent reference to the parent object (QObject)
-        """
-        super(DownloadModel, self).__init__(parent)
-        
-        self.__manager = manager
-    
-    def data(self, index, role):
-        """
-        Public method to get data from the model.
-        
-        @param index index to get data for (QModelIndex)
-        @param role role of the data to retrieve (integer)
-        @return requested data
-        """
-        if index.row() < 0 or index.row() >= self.rowCount(index.parent()):
-            return None
-        
-        if role == Qt.ToolTipRole:
-            if self.__manager.downloads()[index.row()]\
-                    .downloadedSuccessfully():
-                return self.__manager.downloads()[index.row()].getInfoData()
-        
-        return None
-    
-    def rowCount(self, parent=None):
-        """
-        Public method to get the number of rows of the model.
-        
-        @param parent parent index (QModelIndex)
-        @return number of rows (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return 0
-        else:
-            return self.__manager.count()
-    
-    def removeRows(self, row, count, parent=None):
-        """
-        Public method to remove bookmarks from the model.
-        
-        @param row row of the first bookmark to remove (integer)
-        @param count number of bookmarks to remove (integer)
-        @param parent index of the parent bookmark node (QModelIndex)
-        @return flag indicating successful removal (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return False
-        
-        if row < 0 or count <= 0 or row + count > self.rowCount(parent):
-            return False
-        
-        lastRow = row + count - 1
-        for i in range(lastRow, row - 1, -1):
-            if not self.__manager.downloads()[i].downloading():
-                self.beginRemoveRows(parent, i, i)
-                del self.__manager.downloads()[i]
-                self.endRemoveRows()
-        self.__manager.changeOccurred()
-        return True
-    
-    def flags(self, index):
-        """
-        Public method to get flags for an item.
-        
-        @param index index of the node cell (QModelIndex)
-        @return flags (Qt.ItemFlags)
-        """
-        if index.row() < 0 or index.row() >= self.rowCount(index.parent()):
-            return Qt.NoItemFlags
-        
-        defaultFlags = QAbstractListModel.flags(self, index)
-        
-        itm = self.__manager.downloads()[index.row()]
-        if itm.downloadedSuccessfully():
-            return defaultFlags | Qt.ItemIsDragEnabled
-        
-        return defaultFlags
-    
-    def mimeData(self, indexes):
-        """
-        Public method to return the mime data.
-        
-        @param indexes list of indexes (QModelIndexList)
-        @return mime data (QMimeData)
-        """
-        mimeData = QMimeData()
-        urls = []
-        for index in indexes:
-            if index.isValid():
-                itm = self.__manager.downloads()[index.row()]
-                urls.append(QUrl.fromLocalFile(itm.absoluteFilePath()))
-        mimeData.setUrls(urls)
-        return mimeData
--- a/eric6/Helpviewer/Download/DownloadUtilities.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing some utility functions for the Download package.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QCoreApplication
-
-from Globals import translate
-
-
-def timeString(timeRemaining):
-    """
-    Module function to format the given time.
-    
-    @param timeRemaining time to be formatted (float)
-    @return time string (string)
-    """
-    if timeRemaining > 60:
-        minutes = int(timeRemaining / 60)
-        seconds = int(timeRemaining % 60)
-        remaining = translate(
-            "DownloadUtilities",
-            "%n:{0:02} minutes remaining", "",
-            minutes).format(seconds)
-    else:
-        seconds = int(timeRemaining)
-        remaining = translate(
-            "DownloadUtilities",
-            "%n seconds remaining", "", seconds)
-    
-    return remaining
-
-
-def dataString(size):
-    """
-    Module function to generate a formatted size string.
-    
-    @param size size to be formatted (integer)
-    @return formatted data string (string)
-    """
-    unit = ""
-    if size < 1024:
-        unit = QCoreApplication.translate("DownloadUtilities", "Bytes")
-    elif size < 1024 * 1024:
-        size /= 1024
-        unit = QCoreApplication.translate("DownloadUtilities", "KiB")
-    elif size < 1024 * 1024 * 1024:
-        size /= 1024 * 1024
-        unit = QCoreApplication.translate("DownloadUtilities", "MiB")
-    else:
-        size /= 1024 * 1024 * 1024
-        unit = QCoreApplication.translate("DownloadUtilities", "GiB")
-    return "{0:.1f} {1}".format(size, unit)
--- a/eric6/Helpviewer/Download/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing all download related modules.
-"""
--- a/eric6/Helpviewer/FeaturePermissions/FeaturePermissionBar.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the feature permission bar widget.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot
-from PyQt5.QtWidgets import QLabel, QHBoxLayout, QPushButton
-from PyQt5.QtWebKitWidgets import QWebPage
-
-from E5Gui.E5AnimatedWidget import E5AnimatedWidget
-
-import Helpviewer
-
-import UI.PixmapCache
-
-
-class FeaturePermissionBar(E5AnimatedWidget):
-    """
-    Class implementing the feature permission bar widget.
-    """
-    DefaultHeight = 30
-    
-    def __init__(self, view, frame, feature):
-        """
-        Constructor
-        
-        @param view reference to the web view
-        @type QWebView
-        @param frame frame sending the request
-        @type QWebFrame
-        @param feature requested feature
-        @type QWebPage.Feature
-        """
-        super(FeaturePermissionBar, self).__init__(parent=view)
-        
-        self.__frame = frame
-        self.__feature = feature
-        self.__view = view
-        
-        self.__permissionFeatureTexts = {
-            QWebPage.Notifications:
-                self.tr("{0} wants to use desktop notifications."),
-            QWebPage.Geolocation:
-                self.tr("{0} wants to use your position.")
-        }
-        self.__permissionFeatureIconNames = {
-            QWebPage.Notifications: "notification.png",
-            QWebPage.Geolocation: "geolocation.png",
-        }
-        
-        self.setAutoFillBackground(True)
-        self.__layout = QHBoxLayout()
-        self.setLayout(self.__layout)
-        self.__layout.setContentsMargins(9, 0, 0, 0)
-        self.__iconLabel = QLabel(self)
-        self.__layout.addWidget(self.__iconLabel)
-        self.__messageLabel = QLabel(self)
-        self.__layout.addWidget(self.__messageLabel)
-        self.__layout.addStretch()
-        self.__rememberButton = QPushButton(self.tr("Remember"), self)
-        self.__rememberButton.setCheckable(True)
-        self.__allowButton = QPushButton(self.tr("Allow"), self)
-        self.__denyButton = QPushButton(self.tr("Deny"), self)
-        self.__discardButton = QPushButton(UI.PixmapCache.getIcon("close.png"),
-                                           "", self)
-        self.__allowButton.clicked.connect(self.__permissionGranted)
-        self.__denyButton.clicked.connect(self.__permissionDenied)
-        self.__discardButton.clicked.connect(self.__permissionUnknown)
-        self.__layout.addWidget(self.__rememberButton)
-        self.__layout.addWidget(self.__allowButton)
-        self.__layout.addWidget(self.__denyButton)
-        self.__layout.addWidget(self.__discardButton)
-        
-        try:
-            self.__iconLabel.setPixmap(UI.PixmapCache.getPixmap(
-                self.__permissionFeatureIconNames[self.__feature]))
-        except KeyError:
-            pass
-        
-        try:
-            self.__messageLabel.setText(
-                self.__permissionFeatureTexts[self.__feature].format(
-                    self.__frame.securityOrigin().host()))
-        except KeyError:
-            self.__messageLabel.setText(
-                self.tr("{0} wants to use an unknown feature.").format(
-                    self.__frame.securityOrigin().host()))
-        
-        self.__view.page().loadStarted.connect(self.hide)
-        
-        self.resize(view.width(), self.height())
-        self.startAnimation()
-    
-    @pyqtSlot()
-    def hide(self):
-        """
-        Public slot to hide the animated widget.
-        """
-        self.__view.page().loadStarted.disconnect(self.hide)
-        super(FeaturePermissionBar, self).hide()
-    
-    def __permissionDenied(self):
-        """
-        Private slot handling the user pressing the deny button.
-        """
-        if self.__frame is None or self.__frame.page() is None:
-            return
-        
-        page = self.__frame.page()
-        page.setFeaturePermission(self.__frame, self.__feature,
-                                  QWebPage.PermissionDeniedByUser)
-        
-        if self.__rememberButton.isChecked():
-            Helpviewer.HelpWindow.HelpWindow.featurePermissionManager()\
-                .rememberFeaturePermission(page.url().host(), self.__feature,
-                                           QWebPage.PermissionDeniedByUser)
-        
-        self.hide()
-    
-    def __permissionGranted(self):
-        """
-        Private slot handling the user pressing the allow button.
-        """
-        if self.__frame is None or self.__frame.page() is None:
-            return
-        
-        page = self.__frame.page()
-        page.setFeaturePermission(self.__frame, self.__feature,
-                                  QWebPage.PermissionGrantedByUser)
-        
-        if self.__rememberButton.isChecked():
-            Helpviewer.HelpWindow.HelpWindow.featurePermissionManager()\
-                .rememberFeaturePermission(page.url().host(), self.__feature,
-                                           QWebPage.PermissionGrantedByUser)
-        
-        self.hide()
-    
-    def __permissionUnknown(self):
-        """
-        Private slot handling the user closing the dialog without.
-        """
-        if self.__frame is None or self.__frame.page() is None:
-            return
-        
-        page = self.__frame.page()
-        page.setFeaturePermission(self.__frame, self.__feature,
-                                  QWebPage.PermissionUnknown)
-        self.hide()
--- a/eric6/Helpviewer/FeaturePermissions/FeaturePermissionManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the feature permission manager object.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QObject
-from PyQt5.QtWidgets import QDialog
-from PyQt5.QtWebKitWidgets import QWebPage
-
-import Globals
-import Preferences
-
-
-class FeaturePermissionManager(QObject):
-    """
-    Class implementing the feature permission manager object.
-    """
-    SettingsKeyFormat = "Help/FeaturePermissions/{0}"
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object
-        @type QObject
-        """
-        super(FeaturePermissionManager, self).__init__(parent)
-        
-        self.__featurePermissions = {
-            QWebPage.Notifications: {
-                QWebPage.PermissionGrantedByUser: [],
-                QWebPage.PermissionDeniedByUser: [],
-            },
-            QWebPage.Geolocation: {
-                QWebPage.PermissionGrantedByUser: [],
-                QWebPage.PermissionDeniedByUser: [],
-            },
-        }
-        self.__featurePermissionsKeys = {
-            (QWebPage.Notifications, QWebPage.PermissionGrantedByUser):
-                "NotificationsGranted",
-            (QWebPage.Notifications, QWebPage.PermissionDeniedByUser):
-                "NotificationsDenied",
-            (QWebPage.Geolocation, QWebPage.PermissionGrantedByUser):
-                "GeolocationGranted",
-            (QWebPage.Geolocation, QWebPage.PermissionDeniedByUser):
-                "GeolocationDenied",
-        }
-        
-        self.__loaded = False
-
-    def requestFeaturePermission(self, page, frame, feature):
-        """
-        Public method to request a feature permission.
-        
-        @param page reference to the requesting web page
-        @type QWebPage
-        @param frame frame sending the request
-        @type QWebFrame
-        @param feature requested feature
-        @type QWebPage.Feature
-        """
-        if page is None or frame is None:
-            return
-        
-        if not self.__loaded:
-            self.__loadSettings()
-        
-        host = page.url().host()
-        
-        if feature in self.__featurePermissions:
-            for permission in self.__featurePermissions[feature]:
-                if host in self.__featurePermissions[feature][permission]:
-                    page.setFeaturePermission(frame, feature, permission)
-                    return
-        
-        view = page.view()
-        if view is not None:
-            from .FeaturePermissionBar import FeaturePermissionBar
-            bar = FeaturePermissionBar(view, frame, feature)
-            bar.show()
-    
-    def rememberFeaturePermission(self, host, feature, permission):
-        """
-        Public method to remember a user decision for a feature permission.
-        
-        @param host host name to remember the decision for
-        @type str
-        @param feature feature to be remembered
-        @type QWebPage.Feature
-        @param permission feature permission to be remembered
-        @type QWebPage.PermissionPolicy
-        """
-        if feature in self.__featurePermissions:
-            if host not in self.__featurePermissions[feature][permission]:
-                self.__featurePermissions[feature][permission].append(host)
-                self.__saveSettings()
-    
-    def __loadSettings(self):
-        """
-        Private method to load the remembered feature permissions.
-        """
-        if self.__loaded:
-            # no reloading allowed
-            return
-        
-        for (feature, permission), key in \
-                self.__featurePermissionsKeys.items():
-            self.__featurePermissions[feature][permission] = \
-                Globals.toList(Preferences.Prefs.settings.value(
-                    FeaturePermissionManager.SettingsKeyFormat.format(key),
-                    []
-                ))
-        
-        self.__loaded = True
-    
-    def __saveSettings(self):
-        """
-        Private method to save the remembered feature permissions.
-        """
-        if not self.__loaded:
-            return
-        
-        for (feature, permission), key in \
-                self.__featurePermissionsKeys.items():
-            Preferences.Prefs.settings.setValue(
-                FeaturePermissionManager.SettingsKeyFormat.format(key),
-                self.__featurePermissions[feature][permission])
-    
-    def showFeaturePermissionsDialog(self):
-        """
-        Public method to show a dialog to manage the remembered feature
-        permissions.
-        """
-        if not self.__loaded:
-            self.__loadSettings()
-        
-        from .FeaturePermissionsDialog import FeaturePermissionsDialog
-        dlg = FeaturePermissionsDialog(self.__featurePermissions)
-        if dlg.exec_() == QDialog.Accepted:
-            newFeaturePermissions = dlg.getData()
-            self.__featurePermissions = newFeaturePermissions
-            self.__saveSettings()
--- a/eric6/Helpviewer/FeaturePermissions/FeaturePermissionsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the feature permission dialog.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt
-from PyQt5.QtWidgets import QDialog, QTreeWidgetItem
-from PyQt5.QtWebKitWidgets import QWebPage
-
-from .Ui_FeaturePermissionsDialog import Ui_FeaturePermissionsDialog
-
-
-class FeaturePermissionsDialog(QDialog, Ui_FeaturePermissionsDialog):
-    """
-    Class implementing the feature permission dialog.
-    """
-    def __init__(self, featurePermissions, parent=None):
-        """
-        Constructor
-        
-        @param featurePermissions dictionary with remembered feature
-            permissions
-        @type dict of dict of list
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super(FeaturePermissionsDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.__permissionStrings = {
-            QWebPage.PermissionGrantedByUser: self.tr("Allow"),
-            QWebPage.PermissionDeniedByUser: self.tr("Deny"),
-        }
-        
-        # Notifications
-        for permission in featurePermissions[QWebPage.Notifications]:
-            for host in featurePermissions[QWebPage.Notifications][permission]:
-                itm = QTreeWidgetItem(
-                    self.notifList,
-                    [host, self.__permissionStrings[permission]])
-                itm.setData(0, Qt.UserRole, permission)
-        self.__updateNotifButtons()
-        
-        # Geolocation
-        for permission in featurePermissions[QWebPage.Geolocation]:
-            for host in featurePermissions[QWebPage.Geolocation][permission]:
-                itm = QTreeWidgetItem(
-                    self.geoList,
-                    [host, self.__permissionStrings[permission]])
-                itm.setData(0, Qt.UserRole, permission)
-        self.__updateGeoButtons()
-    
-    def __updateNotifButtons(self):
-        """
-        Private method to update the notifications buttons.
-        """
-        self.notifRemoveAllButton.setEnabled(
-            self.notifList.topLevelItemCount() > 0)
-        self.notifRemoveButton.setEnabled(
-            len(self.notifList.selectedItems()) > 0)
-    
-    def __updateGeoButtons(self):
-        """
-        Private method to update the geolocation buttons.
-        """
-        self.geoRemoveAllButton.setEnabled(
-            self.geoList.topLevelItemCount() > 0)
-        self.geoRemoveButton.setEnabled(
-            len(self.geoList.selectedItems()) > 0)
-    
-    @pyqtSlot()
-    def on_geoList_itemSelectionChanged(self):
-        """
-        Private slot handling changes in the list of selected geolocation
-        items.
-        """
-        self.__updateGeoButtons()
-    
-    @pyqtSlot()
-    def on_geoRemoveButton_clicked(self):
-        """
-        Private slot to remove selected geolocation entries.
-        """
-        for itm in self.geoList.selectedItems():
-            row = self.geoList.indexOfTopLevelItem(itm)
-            itm = self.geoList.takeTopLevelItem(row)
-            del itm
-        self.__updateGeoButtons()
-    
-    @pyqtSlot()
-    def on_geoRemoveAllButton_clicked(self):
-        """
-        Private slot to remove all geolocation entries.
-        """
-        while self.geoList.topLevelItemCount() > 0:
-            itm = self.geoList.takeTopLevelItem(0)      # __IGNORE_WARNING__
-            del itm
-        self.__updateGeoButtons()
-    
-    @pyqtSlot()
-    def on_notifList_itemSelectionChanged(self):
-        """
-        Private slot handling changes in the list of selected notifications
-        items.
-        """
-        self.__updateNotifButtons()
-    
-    @pyqtSlot()
-    def on_notifRemoveButton_clicked(self):
-        """
-        Private slot to remove selected notification entries.
-        """
-        for itm in self.notifList.selectedItems():
-            row = self.notifList.indexOfTopLevelItem(itm)
-            itm = self.notifList.takeTopLevelItem(row)
-            del itm
-        self.__updateNotifButtons()
-    
-    @pyqtSlot()
-    def on_notifRemoveAllButton_clicked(self):
-        """
-        Private slot to remove all notification entries.
-        """
-        while self.notifList.topLevelItemCount() > 0:
-            itm = self.notifList.takeTopLevelItem(0)    # __IGNORE_WARNING__
-            del itm
-        self.__updateNotifButtons()
-    
-    def getData(self):
-        """
-        Public method to retrieve the dialog contents.
-        
-        @return new feature permission settings
-        @rtype dict of dict of list
-        """
-        featurePermissions = {
-            QWebPage.Notifications: {
-                QWebPage.PermissionGrantedByUser: [],
-                QWebPage.PermissionDeniedByUser: [],
-            },
-            QWebPage.Geolocation: {
-                QWebPage.PermissionGrantedByUser: [],
-                QWebPage.PermissionDeniedByUser: [],
-            },
-        }
-        
-        # Notifications
-        for row in range(self.notifList.topLevelItemCount()):
-            itm = self.notifList.topLevelItem(row)
-            host = itm.text(0)
-            permission = itm.data(0, Qt.UserRole)
-            featurePermissions[QWebPage.Notifications][permission].append(host)
-        
-        # Geolocation
-        for row in range(self.geoList.topLevelItemCount()):
-            itm = self.geoList.topLevelItem(row)
-            host = itm.text(0)
-            permission = itm.data(0, Qt.UserRole)
-            featurePermissions[QWebPage.Geolocation][permission].append(host)
-        
-        return featurePermissions
--- a/eric6/Helpviewer/FeaturePermissions/FeaturePermissionsDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>FeaturePermissionsDialog</class>
- <widget class="QDialog" name="FeaturePermissionsDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>400</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>HTML5 Feature Permissions</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2">
-   <item>
-    <widget class="QTabWidget" name="tabWidget">
-     <property name="currentIndex">
-      <number>0</number>
-     </property>
-     <widget class="QWidget" name="tab">
-      <attribute name="title">
-       <string>Notifications</string>
-      </attribute>
-      <layout class="QHBoxLayout" name="horizontalLayout_2">
-       <item>
-        <widget class="QTreeWidget" name="notifList">
-         <property name="alternatingRowColors">
-          <bool>true</bool>
-         </property>
-         <property name="selectionMode">
-          <enum>QAbstractItemView::ExtendedSelection</enum>
-         </property>
-         <property name="rootIsDecorated">
-          <bool>false</bool>
-         </property>
-         <property name="itemsExpandable">
-          <bool>false</bool>
-         </property>
-         <property name="sortingEnabled">
-          <bool>true</bool>
-         </property>
-         <property name="allColumnsShowFocus">
-          <bool>true</bool>
-         </property>
-         <column>
-          <property name="text">
-           <string>Host</string>
-          </property>
-         </column>
-         <column>
-          <property name="text">
-           <string>Permission</string>
-          </property>
-         </column>
-        </widget>
-       </item>
-       <item>
-        <layout class="QVBoxLayout" name="verticalLayout_3">
-         <item>
-          <spacer name="verticalSpacer_2">
-           <property name="orientation">
-            <enum>Qt::Vertical</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>20</width>
-             <height>40</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item>
-          <widget class="QPushButton" name="notifRemoveButton">
-           <property name="text">
-            <string>Remove</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QPushButton" name="notifRemoveAllButton">
-           <property name="text">
-            <string>Remove All</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="tab_2">
-      <attribute name="title">
-       <string>Geolocation</string>
-      </attribute>
-      <layout class="QHBoxLayout" name="horizontalLayout">
-       <item>
-        <widget class="QTreeWidget" name="geoList">
-         <property name="alternatingRowColors">
-          <bool>true</bool>
-         </property>
-         <property name="selectionMode">
-          <enum>QAbstractItemView::ExtendedSelection</enum>
-         </property>
-         <property name="rootIsDecorated">
-          <bool>false</bool>
-         </property>
-         <property name="itemsExpandable">
-          <bool>false</bool>
-         </property>
-         <property name="sortingEnabled">
-          <bool>true</bool>
-         </property>
-         <property name="allColumnsShowFocus">
-          <bool>true</bool>
-         </property>
-         <column>
-          <property name="text">
-           <string>Host</string>
-          </property>
-         </column>
-         <column>
-          <property name="text">
-           <string>Permission</string>
-          </property>
-         </column>
-        </widget>
-       </item>
-       <item>
-        <layout class="QVBoxLayout" name="verticalLayout">
-         <item>
-          <spacer name="verticalSpacer">
-           <property name="orientation">
-            <enum>Qt::Vertical</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>20</width>
-             <height>40</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item>
-          <widget class="QPushButton" name="geoRemoveButton">
-           <property name="text">
-            <string>Remove</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QPushButton" name="geoRemoveAllButton">
-           <property name="text">
-            <string>Remove All</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </widget>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>tabWidget</tabstop>
-  <tabstop>notifList</tabstop>
-  <tabstop>notifRemoveButton</tabstop>
-  <tabstop>notifRemoveAllButton</tabstop>
-  <tabstop>geoList</tabstop>
-  <tabstop>geoRemoveButton</tabstop>
-  <tabstop>geoRemoveAllButton</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>FeaturePermissionsDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>227</x>
-     <y>381</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>FeaturePermissionsDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>295</x>
-     <y>387</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/FeaturePermissions/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing feature permission related widgets for the eric6
-web browser.
-"""
--- a/eric6/Helpviewer/Feeds/FeedEditDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2011 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to edit feed data.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, QUrl
-from PyQt5.QtWidgets import QDialog, QDialogButtonBox
-
-from .Ui_FeedEditDialog import Ui_FeedEditDialog
-
-
-class FeedEditDialog(QDialog, Ui_FeedEditDialog):
-    """
-    Class implementing a dialog to edit feed data.
-    """
-    def __init__(self, urlString, title, parent=None):
-        """
-        Constructor
-        
-        @param urlString feed URL (string)
-        @param title feed title (string)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(FeedEditDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False)
-        
-        self.titleEdit.setText(title)
-        self.urlEdit.setText(urlString)
-        
-        msh = self.minimumSizeHint()
-        self.resize(max(self.width(), msh.width()), msh.height())
-    
-    def __setOkButton(self):
-        """
-        Private slot to enable or disable the OK button.
-        """
-        enable = True
-        
-        enable = enable and bool(self.titleEdit.text())
-        
-        urlString = self.urlEdit.text()
-        enable = enable and bool(urlString)
-        if urlString:
-            url = QUrl(urlString)
-            enable = enable and bool(url.scheme())
-            enable = enable and bool(url.host())
-        
-        self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(enable)
-    
-    @pyqtSlot(str)
-    def on_titleEdit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the feed title.
-        
-        @param txt new feed title (string)
-        """
-        self.__setOkButton()
-    
-    @pyqtSlot(str)
-    def on_urlEdit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the feed URL.
-        
-        @param txt new feed URL (string)
-        """
-        self.__setOkButton()
-    
-    def getData(self):
-        """
-        Public method to get the entered feed data.
-        
-        @return tuple of two strings giving the feed URL and feed title
-            (string, string)
-        """
-        return (self.urlEdit.text(), self.titleEdit.text())
--- a/eric6/Helpviewer/Feeds/FeedEditDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>FeedEditDialog</class>
- <widget class="QDialog" name="FeedEditDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>475</width>
-    <height>114</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Edit Feed Data</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0" colspan="2">
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>Fill title and URL of a feed:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>Feed title:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QLineEdit" name="titleEdit">
-       <property name="toolTip">
-        <string>Enter the title of the feed</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="0">
-      <widget class="QLabel" name="label_3">
-       <property name="text">
-        <string>Feed URL:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QLineEdit" name="urlEdit">
-       <property name="toolTip">
-        <string>Enter the URL of the feed</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>titleEdit</tabstop>
-  <tabstop>urlEdit</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>FeedEditDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>224</x>
-     <y>122</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>143</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>FeedEditDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>292</x>
-     <y>128</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>143</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/Feeds/FeedsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2011 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to add RSS feeds.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QUrl
-from PyQt5.QtWidgets import QDialog, QPushButton, QLabel
-
-from E5Gui import E5MessageBox
-
-from .Ui_FeedsDialog import Ui_FeedsDialog
-
-import UI.PixmapCache
-
-
-class FeedsDialog(QDialog, Ui_FeedsDialog):
-    """
-    Class implementing a dialog to add RSS feeds.
-    """
-    def __init__(self, availableFeeds, browser, parent=None):
-        """
-        Constructor
-        
-        @param availableFeeds list of available RSS feeds (list of tuple of
-            two strings)
-        @param browser reference to the browser widget (HelpBrowser)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(FeedsDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.iconLabel.setPixmap(UI.PixmapCache.getPixmap("rss48.png"))
-        
-        self.__browser = browser
-        
-        self.__availableFeeds = availableFeeds[:]
-        for row in range(len(self.__availableFeeds)):
-            feed = self.__availableFeeds[row]
-            button = QPushButton(self)
-            button.setText(self.tr("Add"))
-            button.feed = feed
-            label = QLabel(self)
-            label.setText(feed[0])
-            self.feedsLayout.addWidget(label, row, 0)
-            self.feedsLayout.addWidget(button, row, 1)
-            button.clicked.connect(lambda: self.__addFeed(button))
-        
-        msh = self.minimumSizeHint()
-        self.resize(max(self.width(), msh.width()), msh.height())
-    
-    def __addFeed(self, button):
-        """
-        Private slot to add a RSS feed.
-        
-        @param button reference to the feed button
-        @type QPushButton
-        """
-        urlString = button.feed[1]
-        url = QUrl(urlString)
-        if not url.host():
-            if not urlString.startswith("/"):
-                urlString = "/" + urlString
-            urlString = self.__browser.url().host() + urlString
-            tmpUrl = QUrl(urlString)
-            if not tmpUrl.scheme():
-                urlString = "http://" + urlString
-            tmpUrl = QUrl(urlString)
-            if not tmpUrl.scheme() or not tmpUrl.host():
-                return
-        if not url.isValid():
-            return
-        
-        if button.feed[0]:
-            title = button.feed[0]
-        else:
-            title = self.__browser.url().host()
-        
-        import Helpviewer.HelpWindow
-        feedsManager = Helpviewer.HelpWindow.HelpWindow.feedsManager()
-        if feedsManager.addFeed(urlString, title, self.__browser.icon()):
-            if Helpviewer.HelpWindow.HelpWindow.notificationsEnabled():
-                Helpviewer.HelpWindow.HelpWindow.showNotification(
-                    UI.PixmapCache.getPixmap("rss48.png"),
-                    self.tr("Add RSS Feed"),
-                    self.tr("""The feed was added successfully."""))
-            else:
-                E5MessageBox.information(
-                    self,
-                    self.tr("Add RSS Feed"),
-                    self.tr("""The feed was added successfully."""))
-        else:
-            E5MessageBox.warning(
-                self,
-                self.tr("Add RSS Feed"),
-                self.tr("""The feed was already added before."""))
-            
-        self.close()
--- a/eric6/Helpviewer/Feeds/FeedsDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>FeedsDialog</class>
- <widget class="QDialog" name="FeedsDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>352</width>
-    <height>94</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Add Feed</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QLabel" name="iconLabel">
-       <property name="text">
-        <string notr="true"/>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="label">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string>Add Feeds from this site</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="feedsLayout"/>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>FeedsDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>FeedsDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/Feeds/FeedsManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,440 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2011 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a RSS feeds manager dialog.
-"""
-
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QUrl, QXmlStreamReader
-from PyQt5.QtGui import QIcon, QCursor
-from PyQt5.QtWidgets import QDialog, QTreeWidgetItem, QMenu, QApplication
-from PyQt5.QtNetwork import QNetworkRequest, QNetworkReply
-from PyQt5.QtWebKit import QWebSettings
-
-from E5Gui import E5MessageBox
-
-from .Ui_FeedsManager import Ui_FeedsManager
-
-import Preferences
-import UI.PixmapCache
-
-
-class FeedsManager(QDialog, Ui_FeedsManager):
-    """
-    Class implementing a RSS feeds manager dialog.
-    
-    @signal openUrl(QUrl, str) emitted to open a URL in the current tab
-    @signal newUrl(QUrl, str) emitted to open a URL in a new tab
-    """
-    openUrl = pyqtSignal(QUrl, str)
-    newUrl = pyqtSignal(QUrl, str)
-    
-    UrlStringRole = Qt.UserRole
-    ErrorDataRole = Qt.UserRole + 1
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(FeedsManager, self).__init__(parent)
-        self.setupUi(self)
-        self.setWindowFlags(Qt.Window)
-        
-        self.__wasShown = False
-        self.__loaded = False
-        self.__feeds = []
-        self.__replies = {}
-        # dict key is the id of the request object
-        # dict value is a tuple of request and tree item
-        
-        self.feedsTree.setContextMenuPolicy(Qt.CustomContextMenu)
-        self.feedsTree.customContextMenuRequested.connect(
-            self.__customContextMenuRequested)
-        self.feedsTree.itemActivated.connect(self.__itemActivated)
-    
-    def show(self):
-        """
-        Public slot to show the feeds manager dialog.
-        """
-        super(FeedsManager, self).show()
-        
-        if not self.__wasShown:
-            self.__enableButtons()
-            self.on_reloadAllButton_clicked()
-            self.__wasShown = True
-    
-    def addFeed(self, urlString, title, icon):
-        """
-        Public method to add a feed.
-        
-        @param urlString URL of the feed (string)
-        @param title title of the feed (string)
-        @param icon icon for the feed (QIcon)
-        @return flag indicating a successful addition of the feed (boolean)
-        """
-        if urlString == "":
-            return False
-        
-        if not self.__loaded:
-            self.__load()
-        
-        # step 1: check, if feed was already added
-        for feed in self.__feeds:
-            if feed[0] == urlString:
-                return False
-        
-        # step 2: add the feed
-        if icon.isNull() or \
-                icon == QIcon(QWebSettings.webGraphic(
-                    QWebSettings.DefaultFrameIconGraphic)):
-            icon = UI.PixmapCache.getIcon("rss16.png")
-        feed = (urlString, title, icon)
-        self.__feeds.append(feed)
-        self.__addFeedItem(feed)
-        self.__save()
-        
-        return True
-    
-    def __addFeedItem(self, feed):
-        """
-        Private slot to add a top level feed item.
-        
-        @param feed tuple containing feed info (URL, title, icon)
-            (string, string, QIcon)
-        """
-        itm = QTreeWidgetItem(self.feedsTree, [feed[1]])
-        itm.setIcon(0, feed[2])
-        itm.setData(0, FeedsManager.UrlStringRole, feed[0])
-    
-    def __load(self):
-        """
-        Private method to load the feeds data.
-        """
-        self.__feeds = Preferences.getHelp("RssFeeds")
-        self.__loaded = True
-        
-        # populate the feeds tree top level with the feeds
-        self.feedsTree.clear()
-        for feed in self.__feeds:
-            self.__addFeedItem(feed)
-    
-    def __save(self):
-        """
-        Private method to store the feeds data.
-        """
-        if not self.__loaded:
-            self.__load()
-        
-        Preferences.setHelp("RssFeeds", self.__feeds)
-    
-    @pyqtSlot()
-    def on_reloadAllButton_clicked(self):
-        """
-        Private slot to reload all feeds.
-        """
-        if not self.__loaded:
-            self.__load()
-        
-        for index in range(self.feedsTree.topLevelItemCount()):
-            itm = self.feedsTree.topLevelItem(index)
-            self.__reloadFeed(itm)
-    
-    @pyqtSlot()
-    def on_reloadButton_clicked(self):
-        """
-        Private slot to reload the selected feed.
-        """
-        itm = self.feedsTree.selectedItems()[0]
-        self.__reloadFeed(itm)
-    
-    @pyqtSlot()
-    def on_editButton_clicked(self):
-        """
-        Private slot to edit the selected feed.
-        """
-        itm = self.feedsTree.selectedItems()[0]
-        origTitle = itm.text(0)
-        origUrlString = itm.data(0, FeedsManager.UrlStringRole)
-        
-        feedToChange = None
-        for feed in self.__feeds:
-            if feed[0] == origUrlString:
-                feedToChange = feed
-                break
-        if feedToChange:
-            feedIndex = self.__feeds.index(feedToChange)
-            
-            from .FeedEditDialog import FeedEditDialog
-            dlg = FeedEditDialog(origUrlString, origTitle)
-            if dlg.exec_() == QDialog.Accepted:
-                urlString, title = dlg.getData()
-                for feed in self.__feeds:
-                    if feed[0] == urlString:
-                        E5MessageBox.critical(
-                            self,
-                            self.tr("Duplicate Feed URL"),
-                            self.tr(
-                                """A feed with the URL {0} exists already."""
-                                """ Aborting...""".format(urlString)))
-                        return
-                
-                self.__feeds[feedIndex] = (urlString, title, feedToChange[2])
-                self.__save()
-                
-                itm.setText(0, title)
-                itm.setData(0, FeedsManager.UrlStringRole, urlString)
-                self.__reloadFeed(itm)
-    
-    @pyqtSlot()
-    def on_deleteButton_clicked(self):
-        """
-        Private slot to delete the selected feed.
-        """
-        itm = self.feedsTree.selectedItems()[0]
-        title = itm.text(0)
-        res = E5MessageBox.yesNo(
-            self,
-            self.tr("Delete Feed"),
-            self.tr(
-                """<p>Do you really want to delete the feed"""
-                """ <b>{0}</b>?</p>""".format(title)))
-        if res:
-            urlString = itm.data(0, FeedsManager.UrlStringRole)
-            if urlString:
-                feedToDelete = None
-                for feed in self.__feeds:
-                    if feed[0] == urlString:
-                        feedToDelete = feed
-                        break
-                if feedToDelete:
-                    self.__feeds.remove(feedToDelete)
-                    self.__save()
-                
-                index = self.feedsTree.indexOfTopLevelItem(itm)
-                if index != -1:
-                    self.feedsTree.takeTopLevelItem(index)
-                    del itm
-    
-    @pyqtSlot()
-    def on_feedsTree_itemSelectionChanged(self):
-        """
-        Private slot to enable the various buttons depending on the selection.
-        """
-        self.__enableButtons()
-    
-    def __enableButtons(self):
-        """
-        Private slot to disable/enable various buttons.
-        """
-        selItems = self.feedsTree.selectedItems()
-        if len(selItems) == 1 and \
-           self.feedsTree.indexOfTopLevelItem(selItems[0]) != -1:
-            enable = True
-        else:
-            enable = False
-        
-        self.reloadButton.setEnabled(enable)
-        self.editButton.setEnabled(enable)
-        self.deleteButton.setEnabled(enable)
-    
-    def __reloadFeed(self, itm):
-        """
-        Private method to reload the given feed.
-        
-        @param itm feed item to be reloaded (QTreeWidgetItem)
-        """
-        urlString = itm.data(0, FeedsManager.UrlStringRole)
-        if urlString == "":
-            return
-        
-        for child in itm.takeChildren():
-            del child
-        
-        import Helpviewer.HelpWindow
-        request = QNetworkRequest(QUrl(urlString))
-        reply = Helpviewer.HelpWindow.HelpWindow.networkAccessManager()\
-            .get(request)
-        reply.finished.connect(lambda: self.__feedLoaded(reply))
-        self.__replies[id(reply)] = (reply, itm)
-    
-    def __feedLoaded(self, reply):
-        """
-        Private slot to extract the loaded feed data.
-        
-        @param reply reference to the network reply
-        @type QNetworkReply
-        """
-        if id(reply) not in self.__replies:
-            return
-        
-        topItem = self.__replies[id(reply)][1]
-        del self.__replies[id(reply)]
-        
-        if reply.error() == QNetworkReply.NoError:
-            linkString = ""
-            titleString = ""
-            
-            xml = QXmlStreamReader()
-            xmlData = reply.readAll()
-            xml.addData(xmlData)
-            
-            while not xml.atEnd():
-                xml.readNext()
-                if xml.isStartElement():
-                    if xml.name() == "item":
-                        linkString = xml.attributes().value("rss:about")
-                    elif xml.name() == "link":
-                        linkString = xml.attributes().value("href")
-                    currentTag = xml.name()
-                elif xml.isEndElement():
-                    if xml.name() in ["item", "entry"]:
-                        itm = QTreeWidgetItem(topItem)
-                        itm.setText(0, titleString)
-                        itm.setData(0, FeedsManager.UrlStringRole, linkString)
-                        itm.setIcon(0, UI.PixmapCache.getIcon("rss16.png"))
-                        
-                        linkString = ""
-                        titleString = ""
-                elif xml.isCharacters() and not xml.isWhitespace():
-                    if currentTag == "title":
-                        titleString = xml.text()
-                    elif currentTag == "link":
-                        linkString += xml.text()
-            
-            if topItem.childCount() == 0:
-                itm = QTreeWidgetItem(topItem)
-                itm.setText(0, self.tr("Error fetching feed"))
-                itm.setData(0, FeedsManager.UrlStringRole, "")
-                itm.setData(0, FeedsManager.ErrorDataRole,
-                            str(xmlData, encoding="utf-8"))
-            
-            topItem.setExpanded(True)
-        else:
-            linkString = ""
-            titleString = reply.errorString()
-            itm = QTreeWidgetItem(topItem)
-            itm.setText(0, titleString)
-            itm.setData(0, FeedsManager.UrlStringRole, linkString)
-            topItem.setExpanded(True)
-    
-    def __customContextMenuRequested(self, pos):
-        """
-        Private slot to handle the context menu request for the bookmarks tree.
-        
-        @param pos position the context menu was requested (QPoint)
-        """
-        itm = self.feedsTree.currentItem()
-        if itm is None:
-            return
-        
-        if self.feedsTree.indexOfTopLevelItem(itm) != -1:
-            return
-        
-        urlString = itm.data(0, FeedsManager.UrlStringRole)
-        if urlString:
-            menu = QMenu()
-            menu.addAction(
-                self.tr("&Open"), self.__openMessageInCurrentTab)
-            menu.addAction(
-                self.tr("Open in New &Tab"), self.__openMessageInNewTab)
-            menu.addSeparator()
-            menu.addAction(self.tr("&Copy URL to Clipboard"),
-                           self.__copyUrlToClipboard)
-            menu.exec_(QCursor.pos())
-        else:
-            errorString = itm.data(0, FeedsManager.ErrorDataRole)
-            if errorString:
-                menu = QMenu()
-                menu.addAction(
-                    self.tr("&Show error data"), self.__showError)
-                menu.exec_(QCursor.pos())
-    
-    def __itemActivated(self, itm, column):
-        """
-        Private slot to handle the activation of an item.
-        
-        @param itm reference to the activated item (QTreeWidgetItem)
-        @param column column of the activation (integer)
-        """
-        if self.feedsTree.indexOfTopLevelItem(itm) != -1:
-            return
-        
-        self.__openMessage(
-            QApplication.keyboardModifiers() &
-            Qt.ControlModifier == Qt.ControlModifier)
-        
-    def __openMessageInCurrentTab(self):
-        """
-        Private slot to open a feed message in the current browser tab.
-        """
-        self.__openMessage(False)
-    
-    def __openMessageInNewTab(self):
-        """
-        Private slot to open a feed message in a new browser tab.
-        """
-        self.__openMessage(True)
-    
-    def __openMessage(self, newTab):
-        """
-        Private method to open a feed message.
-        
-        @param newTab flag indicating to open the feed message in a new tab
-            (boolean)
-        """
-        itm = self.feedsTree.currentItem()
-        if itm is None:
-            return
-        
-        urlString = itm.data(0, FeedsManager.UrlStringRole)
-        if urlString:
-            title = itm.text(0)
-            
-            if newTab:
-                self.newUrl.emit(QUrl(urlString), title)
-            else:
-                self.openUrl.emit(QUrl(urlString), title)
-        else:
-            errorString = itm.data(0, FeedsManager.ErrorDataRole)
-            if errorString:
-                self.__showError()
-    
-    def __copyUrlToClipboard(self):
-        """
-        Private slot to copy the URL of the selected item to the clipboard.
-        """
-        itm = self.feedsTree.currentItem()
-        if itm is None:
-            return
-        
-        if self.feedsTree.indexOfTopLevelItem(itm) != -1:
-            return
-        
-        urlString = itm.data(0, FeedsManager.UrlStringRole)
-        if urlString:
-            QApplication.clipboard().setText(urlString)
-    
-    def __showError(self):
-        """
-        Private slot to show error info for a failed load operation.
-        """
-        itm = self.feedsTree.currentItem()
-        if itm is None:
-            return
-        
-        errorStr = itm.data(0, FeedsManager.ErrorDataRole)
-        if errorStr:
-            E5MessageBox.critical(
-                self,
-                self.tr("Error loading feed"),
-                "{0}".format(errorStr))
--- a/eric6/Helpviewer/Feeds/FeedsManager.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>FeedsManager</class>
- <widget class="QDialog" name="FeedsManager">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>750</width>
-    <height>500</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Feeds Manager</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QTreeWidget" name="feedsTree">
-     <property name="alternatingRowColors">
-      <bool>true</bool>
-     </property>
-     <property name="allColumnsShowFocus">
-      <bool>true</bool>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-     <attribute name="headerVisible">
-      <bool>false</bool>
-     </attribute>
-     <column>
-      <property name="text">
-       <string>News</string>
-      </property>
-     </column>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QPushButton" name="reloadAllButton">
-       <property name="toolTip">
-        <string>Press to reload all feeds</string>
-       </property>
-       <property name="text">
-        <string>Reload &amp;All</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="reloadButton">
-       <property name="toolTip">
-        <string>Press to reload the selected feed</string>
-       </property>
-       <property name="text">
-        <string>&amp;Reload</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="editButton">
-       <property name="toolTip">
-        <string>Press to edit the selected feed</string>
-       </property>
-       <property name="text">
-        <string>&amp;Edit Feed</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="deleteButton">
-       <property name="toolTip">
-        <string>Press to delete the selected feed</string>
-       </property>
-       <property name="text">
-        <string>&amp;Delete Feed</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>feedsTree</tabstop>
-  <tabstop>reloadAllButton</tabstop>
-  <tabstop>reloadButton</tabstop>
-  <tabstop>editButton</tabstop>
-  <tabstop>deleteButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>FeedsManager</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>FeedsManager</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/Feeds/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2011 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing all RSS feed related modules.
-"""
--- a/eric6/Helpviewer/FlashCookieManager/FlashCookie.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the Flash cookie class.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QDateTime
-
-
-class FlashCookie(object):
-    """
-    Class implementing the Flash cookie.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        self.name = ""
-        self.origin = ""
-        self.size = 0
-        self.path = ""
-        self.contents = ""
-        self.lastModified = QDateTime()
-    
-    def __eq__(self, other):
-        """
-        Special method to compare to another Flash cookie.
-        
-        @param other reference to the other Flash cookie
-        @type FlashCookie
-        @return flag indicating equality of the two cookies
-        @rtype bool
-        """
-        return (self.name == other.name and
-                self.path == other.path)
--- a/eric6/Helpviewer/FlashCookieManager/FlashCookieManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,354 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the Flash cookie manager.
-"""
-
-from __future__ import unicode_literals
-
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
-
-import shutil
-
-from PyQt5.QtCore import QObject, QTimer, QDir, QFileInfo, QFile
-
-from .FlashCookie import FlashCookie
-from .FlashCookieReader import FlashCookieReader, FlashCookieReaderError
-
-import Helpviewer.HelpWindow
-
-import Preferences
-
-
-class FlashCookieManager(QObject):
-    """
-    Class implementing the Flash cookie manager object.
-    """
-    RefreshInterval = 60 * 1000
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object
-        @type QObject
-        """
-        super(FlashCookieManager, self).__init__(parent)
-        
-        self.__flashCookieManagerDialog = None
-        self.__flashCookies = []    # list of FlashCookie
-        self.__newCookiesList = []  # list of str
-        self.__whitelist = []       # list of str
-        self.__blacklist = []       # list of str
-        
-        self.__timer = QTimer(self)
-        self.__timer.setInterval(FlashCookieManager.RefreshInterval)
-        self.__timer.timeout.connect(self.__autoRefresh)
-        
-        # start the timer if needed
-        self.__startStopTimer()
-        
-        if Preferences.getHelp("FlashCookiesDeleteOnStartExit"):
-            self.__loadFlashCookies()
-            self.__removeAllButWhitelisted()
-    
-    def shutdown(self):
-        """
-        Public method to perform shutdown actions.
-        """
-        if self.__flashCookieManagerDialog is not None:
-            self.__flashCookieManagerDialog.close()
-        
-        if Preferences.getHelp("FlashCookiesDeleteOnStartExit"):
-            self.__removeAllButWhitelisted()
-    
-    def setFlashCookies(self, cookies):
-        """
-        Public method to set the list of cached Flash cookies.
-        
-        @param cookies list of Flash cookies to store
-        @type list of FlashCookie
-        """
-        self.__flashCookies = cookies[:]
-    
-    def flashCookies(self):
-        """
-        Public method to get the list of cached Flash cookies.
-        
-        @return list of Flash cookies
-        @rtype list of FlashCookie
-        """
-        if not self.__flashCookies:
-            self.__loadFlashCookies()
-        
-        return self.__flashCookies[:]
-    
-    def newCookiesList(self):
-        """
-        Public method to get the list of newly detected Flash cookies.
-        
-        @return list of newly detected Flash cookies
-        @rtype list of str
-        """
-        return self.__newCookiesList[:]
-    
-    def clearNewOrigins(self):
-        """
-        Public method to clear the list of newly detected Flash cookies.
-        """
-        self.__newCookiesList = []
-    
-    def clearCache(self):
-        """
-        Public method to clear the list of cached Flash cookies.
-        """
-        self.__flashCookies = []
-    
-    def __isBlacklisted(self, cookie):
-        """
-        Private method to check for a blacklisted cookie.
-        
-        @param cookie Flash cookie to be tested
-        @type FlashCookie
-        @return flag indicating a blacklisted cookie
-        @rtype bool
-        """
-        return cookie.origin in Preferences.getHelp("FlashCookiesBlacklist")
-    
-    def __isWhitelisted(self, cookie):
-        """
-        Private method to check for a whitelisted cookie.
-        
-        @param cookie Flash cookie to be tested
-        @type FlashCookie
-        @return flag indicating a whitelisted cookie
-        @rtype bool
-        """
-        return cookie.origin in Preferences.getHelp("FlashCookiesWhitelist")
-    
-    def __removeAllButWhitelisted(self):
-        """
-        Private method to remove all non-whitelisted cookies.
-        """
-        for cookie in self.__flashCookies[:]:
-            if not self.__isWhitelisted(cookie):
-                self.removeCookie(cookie)
-    
-    def __sharedObjectDirName(self):
-        """
-        Private slot to determine the path of the shared data objects.
-        
-        @return path of the shared data objects
-        @rtype str
-        """
-        if "macromedia" in self.flashPlayerDataPath().lower() or \
-                "/.gnash" not in self.flashPlayerDataPath().lower():
-            return "/#SharedObjects/"
-        else:
-            return "/SharedObjects/"
-    
-    def flashPlayerDataPath(self):
-        """
-        Public method to get the Flash Player data path.
-        
-        @return Flash Player data path
-        @rtype str
-        """
-        return Preferences.getHelp("FlashCookiesDataPath")
-    
-    def preferencesChanged(self):
-        """
-        Public slot to handle a change of preferences.
-        """
-        self.__startStopTimer()
-    
-    def removeCookie(self, cookie):
-        """
-        Public method to remove a cookie of the list of cached cookies.
-        
-        @param cookie Flash cookie to be removed
-        @type FlashCookie
-        """
-        if cookie in self.__flashCookies:
-            self.__flashCookies.remove(cookie)
-            shutil.rmtree(cookie.path, True)
-    
-    def __autoRefresh(self):
-        """
-        Private slot to refresh the list of cookies.
-        """
-        if self.__flashCookieManagerDialog and \
-                self.__flashCookieManagerDialog.isVisible():
-            return
-        
-        oldFlashCookies = self.__flashCookies[:]
-        self.__loadFlashCookies()
-        newCookieList = []
-        
-        for cookie in self.__flashCookies[:]:
-            if self.__isBlacklisted(cookie):
-                self.removeCookie(cookie)
-                continue
-            
-            if self.__isWhitelisted(cookie):
-                continue
-            
-            newCookie = True
-            for oldCookie in oldFlashCookies:
-                if (oldCookie.path + oldCookie.name ==
-                        cookie.path + cookie.name):
-                    newCookie = False
-                    break
-            
-            if newCookie:
-                newCookieList.append(cookie.path + "/" + cookie.name)
-        
-        if newCookieList and Preferences.getHelp("FlashCookieNotify"):
-            self.__newCookiesList.extend(newCookieList)
-            win = Helpviewer.HelpWindow.HelpWindow.mainWindow()
-            if win is None:
-                return
-            
-            view = win.currentBrowser()
-            if view is None:
-                return
-            
-            from .FlashCookieNotification import FlashCookieNotification
-            notification = FlashCookieNotification(
-                view, self, len(newCookieList))
-            notification.show()
-    
-    def showFlashCookieManagerDialog(self):
-        """
-        Public method to show the Flash cookies management dialog.
-        """
-        if self.__flashCookieManagerDialog is None:
-            from .FlashCookieManagerDialog import FlashCookieManagerDialog
-            self.__flashCookieManagerDialog = FlashCookieManagerDialog(self)
-        
-        self.__flashCookieManagerDialog.refreshView()
-        self.__flashCookieManagerDialog.showPage(0)
-        self.__flashCookieManagerDialog.show()
-        self.__flashCookieManagerDialog.raise_()
-    
-    def __startStopTimer(self):
-        """
-        Private slot to start or stop the auto refresh timer.
-        """
-        if Preferences.getHelp("FlashCookieAutoRefresh"):
-            if not self.__timer.isActive():
-                if not bool(self.__flashCookies):
-                    self.__loadFlashCookies()
-                
-                self.__timer.start()
-        else:
-            self.__timer.stop()
-    
-    def __loadFlashCookies(self):
-        """
-        Private slot to load the Flash cookies to be cached.
-        """
-        self.__flashCookies = []
-        self.__loadFlashCookiesFromPath(self.flashPlayerDataPath())
-    
-    def __loadFlashCookiesFromPath(self, path):
-        """
-        Private slot to load the Flash cookies from a path.
-        
-        @param path Flash cookies path
-        @type str
-        """
-        if path.endswith("#AppContainer"):
-            # specific to IE and Windows
-            return
-        
-        path = path.replace("\\", "/")
-        solDir = QDir(path)
-        entryList = solDir.entryList()
-        for entry in entryList:
-            if entry == "." or entry == "..":
-                continue
-            entryInfo = QFileInfo(path + "/" + entry)
-            if entryInfo.isDir():
-                self.__loadFlashCookiesFromPath(entryInfo.filePath())
-            else:
-                self.__insertFlashCookie(entryInfo.filePath())
-    
-    def __insertFlashCookie(self, path):
-        """
-        Private method to insert a Flash cookie into the cache.
-        
-        @param path Flash cookies path
-        @type str
-        """
-        solFile = QFile(path)
-        if not solFile.open(QFile.ReadOnly):
-            return
-        
-        dataStr = ""
-        data = bytes(solFile.readAll())
-        if data:
-            try:
-                reader = FlashCookieReader()
-                reader.setBytes(data)
-                reader.parse()
-                dataStr = reader.toString()
-            except FlashCookieReaderError as err:
-                dataStr = err.msg
-        
-        solFileInfo = QFileInfo(solFile)
-        
-        cookie = FlashCookie()
-        cookie.contents = dataStr
-        cookie.name = solFileInfo.fileName()
-        cookie.path = solFileInfo.canonicalPath()
-        cookie.size = int(solFile.size())
-        cookie.lastModified = solFileInfo.lastModified()
-        cookie.origin = self.__extractOriginFrom(path)
-        
-        self.__flashCookies.append(cookie)
-    
-    def __extractOriginFrom(self, path):
-        """
-        Private method to extract the cookie origin given its file name.
-        
-        @param path file name of the cookie file
-        @type str
-        @return cookie origin
-        @rtype str
-        """
-        origin = path
-        if path.startswith(
-                self.flashPlayerDataPath() + self.__sharedObjectDirName()):
-            origin = origin.replace(
-                self.flashPlayerDataPath() + self.__sharedObjectDirName(), "")
-            if "/" in origin:
-                origin = origin.split("/", 1)[1]
-        elif path.startswith(
-            self.flashPlayerDataPath() +
-                "/macromedia.com/support/flashplayer/sys/"):
-            origin = origin.replace(
-                self.flashPlayerDataPath() +
-                "/macromedia.com/support/flashplayer/sys/", "")
-            if origin == "settings.sol":
-                return self.tr("!default")
-            elif origin.startswith("#"):
-                origin = origin[1:]
-        else:
-            origin = ""
-        
-        index = origin.find("/")
-        if index == -1:
-            return self.tr("!other")
-        
-        origin = origin[:index]
-        if origin in ["localhost", "local"]:
-            origin = "!localhost"
-        
-        return origin
--- a/eric6/Helpviewer/FlashCookieManager/FlashCookieManagerDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,423 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to manage the flash cookies.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt, QPoint, QTimer
-from PyQt5.QtWidgets import QDialog, QTreeWidgetItem, QApplication, QMenu, \
-    QInputDialog, QLineEdit
-
-from E5Gui import E5MessageBox
-
-from .Ui_FlashCookieManagerDialog import Ui_FlashCookieManagerDialog
-
-import Preferences
-import UI.PixmapCache
-
-
-class FlashCookieManagerDialog(QDialog, Ui_FlashCookieManagerDialog):
-    """
-    Class implementing a dialog to manage the flash cookies.
-    """
-    def __init__(self, manager, parent=None):
-        """
-        Constructor
-        
-        @param manager reference to the Flash cookie manager object
-        @type FlashCookieManager
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super(FlashCookieManagerDialog, self).__init__(parent)
-        self.setupUi(self)
-        self.setWindowFlags(Qt.Window)
-        
-        self.cookiesList.setContextMenuPolicy(Qt.CustomContextMenu)
-        self.cookiesList.customContextMenuRequested.connect(
-            self.__cookiesListContextMenuRequested)
-        
-        self.__manager = manager
-    
-    @pyqtSlot()
-    def on_whiteList_itemSelectionChanged(self):
-        """
-        Private slot handling the selection of items in the whitelist.
-        """
-        enable = len(self.whiteList.selectedItems()) > 0
-        self.removeWhiteButton.setEnabled(enable)
-    
-    @pyqtSlot()
-    def on_blackList_itemSelectionChanged(self):
-        """
-        Private slot handling the selection of items in the blacklist.
-        """
-        enable = len(self.blackList.selectedItems()) > 0
-        self.removeBlackButton.setEnabled(enable)
-    
-    @pyqtSlot()
-    def on_removeWhiteButton_clicked(self):
-        """
-        Private slot to remove a server from the whitelist.
-        """
-        for itm in self.whiteList.selectedItems():
-            row = self.whiteList.row(itm)
-            self.whiteList.takeItem(row)
-            del itm
-    
-    @pyqtSlot()
-    def on_addWhiteButton_clicked(self):
-        """
-        Private slot to add a server to the whitelist.
-        """
-        origin, ok = QInputDialog.getText(
-            self,
-            self.tr("Add to whitelist"),
-            self.tr("Origin:"),
-            QLineEdit.Normal)
-        if ok and bool(origin):
-            self.__addWhitelist(origin)
-    
-    def __addWhitelist(self, origin):
-        """
-        Private method to add a cookie origin to the whitelist.
-        
-        @param origin origin to be added to the list
-        @type str
-        """
-        if not origin:
-            return
-        
-        if len(self.blackList.findItems(origin, Qt.MatchFixedString)) > 0:
-            E5MessageBox.information(
-                self,
-                self.tr("Add to whitelist"),
-                self.tr("""The server '{0}' is already in the blacklist."""
-                        """ Please remove it first.""").format(origin))
-            return
-        
-        if len(self.whiteList.findItems(origin, Qt.MatchFixedString)) == 0:
-            self.whiteList.addItem(origin)
-    
-    @pyqtSlot()
-    def on_removeBlackButton_clicked(self):
-        """
-        Private slot to remove a server from the blacklist.
-        """
-        for itm in self.blackList.selectedItems():
-            row = self.blackList.row(itm)
-            self.blackList.takeItem(row)
-            del itm
-    
-    @pyqtSlot()
-    def on_addBlackButton_clicked(self):
-        """
-        Private slot to add a server to the blacklist.
-        """
-        origin, ok = QInputDialog.getText(
-            self,
-            self.tr("Add to blacklist"),
-            self.tr("Origin:"),
-            QLineEdit.Normal)
-        if ok and bool(origin):
-            self.__addBlacklist(origin)
-    
-    def __addBlacklist(self, origin):
-        """
-        Private method to add a cookie origin to the blacklist.
-        
-        @param origin origin to be added to the list
-        @type str
-        """
-        if not origin:
-            return
-        
-        if len(self.whiteList.findItems(origin, Qt.MatchFixedString)) > 0:
-            E5MessageBox.information(
-                self,
-                self.tr("Add to blacklist"),
-                self.tr("""The server '{0}' is already in the whitelist."""
-                        """ Please remove it first.""").format(origin))
-            return
-        
-        if len(self.blackList.findItems(origin, Qt.MatchFixedString)) == 0:
-            self.blackList.addItem(origin)
-    
-    @pyqtSlot(str)
-    def on_filterEdit_textChanged(self, filterStr):
-        """
-        Private slot to filter the cookies list.
-        
-        @param filterStr filter text
-        @type str
-        """
-        if not filterStr:
-            # show all in collapsed state
-            for index in range(self.cookiesList.topLevelItemCount()):
-                self.cookiesList.topLevelItem(index).setHidden(False)
-                self.cookiesList.topLevelItem(index).setExpanded(False)
-        else:
-            # show matching in expanded state
-            filterStr = filterStr.lower()
-            for index in range(self.cookiesList.topLevelItemCount()):
-                txt = "." + self.cookiesList.topLevelItem(index)\
-                    .text(0).lower()
-                self.cookiesList.topLevelItem(index).setHidden(
-                    filterStr not in txt)
-                self.cookiesList.topLevelItem(index).setExpanded(True)
-    
-    @pyqtSlot(QTreeWidgetItem, QTreeWidgetItem)
-    def on_cookiesList_currentItemChanged(self, current, previous):
-        """
-        Private slot handling a change of the current cookie item.
-        
-        @param current reference to the current item
-        @type QTreeWidgetItem
-        @param previous reference to the previous item
-        @type QTreeWidgetItem
-        """
-        if current is None:
-            self.removeButton.setEnabled(False)
-            return
-        
-        cookie = current.data(0, Qt.UserRole)
-        if cookie is None:
-            self.nameLabel.setText(self.tr("<no flash cookie selected>"))
-            self.sizeLabel.setText(self.tr("<no flash cookie selected>"))
-            self.originLabel.setText(self.tr("<no flash cookie selected>"))
-            self.modifiedLabel.setText(self.tr("<no flash cookie selected>"))
-            self.contentsEdit.clear()
-            self.pathEdit.clear()
-            self.removeButton.setText(self.tr("Remove Cookie Group"))
-        else:
-            suffix = ""
-            if cookie.path.startswith(
-                self.__manager.flashPlayerDataPath() +
-                    "/macromedia.com/support/flashplayer/sys"):
-                suffix = self.tr(" (settings)")
-            self.nameLabel.setText(
-                self.tr("{0}{1}", "name and suffix")
-                .format(cookie.name, suffix))
-            self.sizeLabel.setText(self.tr("{0} Byte").format(cookie.size))
-            self.originLabel.setText(cookie.origin)
-            self.modifiedLabel.setText(
-                cookie.lastModified.toString("yyyy-MM-dd hh:mm:ss"))
-            self.contentsEdit.setPlainText(cookie.contents)
-            self.pathEdit.setText(cookie.path)
-            self.removeButton.setText(self.tr("Remove Cookie"))
-        self.removeButton.setEnabled(True)
-    
-    @pyqtSlot(QPoint)
-    def __cookiesListContextMenuRequested(self, pos):
-        """
-        Private slot handling the cookies list context menu.
-        
-        @param pos position to show the menu at
-        @type QPoint
-        """
-        itm = self.cookiesList.itemAt(pos)
-        if itm is None:
-            return
-        
-        menu = QMenu()
-        addBlacklistAct = menu.addAction(self.tr("Add to blacklist"))
-        addWhitelistAct = menu.addAction(self.tr("Add to whitelist"))
-        
-        self.cookiesList.setCurrentItem(itm)
-        
-        activatedAction = menu.exec_(
-            self.cookiesList.viewport().mapToGlobal(pos))
-        if itm.childCount() == 0:
-            origin = itm.data(0, Qt.UserRole).origin
-        else:
-            origin = itm.text(0)
-        
-        if activatedAction == addBlacklistAct:
-            self.__addBlacklist(origin)
-        elif activatedAction == addWhitelistAct:
-            self.__addWhitelist(origin)
-    
-    @pyqtSlot()
-    def on_reloadButton_clicked(self):
-        """
-        Private slot handling a press of the reload button.
-        """
-        self.refreshView(True)
-    
-    @pyqtSlot()
-    def on_removeAllButton_clicked(self):
-        """
-        Private slot to remove all cookies.
-        """
-        ok = E5MessageBox.yesNo(
-            self,
-            self.tr("Remove All"),
-            self.tr("""Do you really want to delete all flash cookies on"""
-                    """ your computer?"""))
-        if ok:
-            cookies = self.__manager.flashCookies()
-            for cookie in cookies:
-                self.__manager.removeCookie(cookie)
-            
-            self.cookiesList.clear()
-            self.__manager.clearNewOrigins()
-            self.__manager.clearCache()
-    
-    @pyqtSlot()
-    def on_removeButton_clicked(self):
-        """
-        Private slot to remove one cookie or a cookie group.
-        """
-        itm = self.cookiesList.currentItem()
-        if itm is None:
-            return
-        
-        cookie = itm.data(0, Qt.UserRole)
-        if cookie is None:
-            # remove a whole cookie group
-            origin = itm.text(0)
-            cookieList = self.__manager.flashCookies()
-            for fcookie in cookieList:
-                if fcookie.origin == origin:
-                    self.__manager.removeCookie(fcookie)
-            
-            index = self.cookiesList.indexOfTopLevelItem(itm)
-            self.cookiesList.takeTopLevelItem(index)
-        else:
-            self.__manager.removeCookie(cookie)
-            parent = itm.parent()
-            index = parent.indexOfChild(itm)
-            parent.takeChild(index)
-            
-            if parent.childCount() == 0:
-                # remove origin item as well
-                index = self.cookiesList.indexOfTopLevelItem(parent)
-                self.cookiesList.takeTopLevelItem(index)
-                del parent
-        del itm
-    
-    def refreshView(self, forceReload=False):
-        """
-        Public method to refresh the dialog view.
-        
-        @param forceReload flag indicating to reload the cookies
-        @type bool
-        """
-        blocked = self.filterEdit.blockSignals(True)
-        self.filterEdit.clear()
-        self.contentsEdit.clear()
-        self.filterEdit.blockSignals(blocked)
-        
-        if forceReload:
-            self.__manager.clearCache()
-            self.__manager.clearNewOrigins()
-        
-        QTimer.singleShot(0, self.__refreshCookiesList)
-        QTimer.singleShot(0, self.__refreshFilterLists)
-    
-    def showPage(self, index):
-        """
-        Public method to display a given page.
-        
-        @param index index of the page to be shown
-        @type int
-        """
-        self.cookiesTabWidget.setCurrentIndex(index)
-    
-    @pyqtSlot()
-    def __refreshCookiesList(self):
-        """
-        Private slot to refresh the cookies list.
-        """
-        QApplication.setOverrideCursor(Qt.WaitCursor)
-        
-        cookies = self.__manager.flashCookies()
-        self.cookiesList.clear()
-        
-        counter = 0
-        originDict = {}
-        for cookie in cookies:
-            cookieOrigin = cookie.origin
-            if cookieOrigin.startswith("."):
-                cookieOrigin = cookieOrigin[1:]
-            
-            if cookieOrigin in originDict:
-                itm = QTreeWidgetItem(originDict[cookieOrigin])
-            else:
-                newParent = QTreeWidgetItem(self.cookiesList)
-                newParent.setText(0, cookieOrigin)
-                newParent.setIcon(0, UI.PixmapCache.getIcon("dirOpen.png"))
-                self.cookiesList.addTopLevelItem(newParent)
-                originDict[cookieOrigin] = newParent
-                
-                itm = QTreeWidgetItem(newParent)
-            
-            suffix = ""
-            if cookie.path.startswith(
-                self.__manager.flashPlayerDataPath() +
-                    "/macromedia.com/support/flashplayer/sys"):
-                suffix = self.tr(" (settings)")
-            
-            if cookie.path + "/" + cookie.name in \
-                    self.__manager.newCookiesList():
-                suffix += self.tr(" [new]")
-                font = itm.font(0)
-                font.setBold(True)
-                itm.setFont(font)
-                itm.parent().setExpanded(True)
-            
-            itm.setText(0, self.tr("{0}{1}", "name and suffix").format(
-                cookie.name, suffix))
-            itm.setData(0, Qt.UserRole, cookie)
-            
-            counter += 1
-            if counter > 100:
-                QApplication.processEvents()
-                counter = 0
-        
-        self.removeAllButton.setEnabled(
-            self.cookiesList.topLevelItemCount() > 0)
-        self.removeButton.setEnabled(False)
-        
-        QApplication.restoreOverrideCursor()
-    
-    @pyqtSlot()
-    def __refreshFilterLists(self):
-        """
-        Private slot to refresh the white and black lists.
-        """
-        self.whiteList.clear()
-        self.blackList.clear()
-        
-        self.whiteList.addItems(Preferences.getHelp("FlashCookiesWhitelist"))
-        self.blackList.addItems(Preferences.getHelp("FlashCookiesBlacklist"))
-        
-        self.on_whiteList_itemSelectionChanged()
-        self.on_blackList_itemSelectionChanged()
-    
-    def closeEvent(self, evt):
-        """
-        Protected method to handle the close event.
-        
-        @param evt reference to the close event
-        @type QCloseEvent
-        """
-        self.__manager.clearNewOrigins()
-        
-        whiteList = []
-        for row in range(self.whiteList.count()):
-            whiteList.append(self.whiteList.item(row).text())
-        
-        blackList = []
-        for row in range(self.blackList.count()):
-            blackList.append(self.blackList.item(row).text())
-        
-        Preferences.setHelp("FlashCookiesWhitelist", whiteList)
-        Preferences.setHelp("FlashCookiesBlacklist", blackList)
-        
-        evt.accept()
--- a/eric6/Helpviewer/FlashCookieManager/FlashCookieManagerDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,478 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>FlashCookieManagerDialog</class>
- <widget class="QDialog" name="FlashCookieManagerDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>550</width>
-    <height>500</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Flash Cookie Management</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QTabWidget" name="cookiesTabWidget">
-     <property name="currentIndex">
-      <number>0</number>
-     </property>
-     <widget class="QWidget" name="tab">
-      <attribute name="title">
-       <string>Stored Flash Cookies</string>
-      </attribute>
-      <layout class="QGridLayout" name="gridLayout_4">
-       <item row="0" column="0">
-        <layout class="QGridLayout" name="gridLayout">
-         <item row="0" column="0">
-          <widget class="QLabel" name="label_4">
-           <property name="text">
-            <string>Filter:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QLineEdit" name="filterEdit">
-           <property name="toolTip">
-            <string>Enter cookie filter string</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0" colspan="2">
-          <widget class="QLabel" name="label_24">
-           <property name="text">
-            <string>Stored Flash Cookies:</string>
-           </property>
-           <property name="wordWrap">
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="0" colspan="2">
-          <widget class="QTreeWidget" name="cookiesList">
-           <property name="alternatingRowColors">
-            <bool>true</bool>
-           </property>
-           <column>
-            <property name="text">
-             <string>Origin</string>
-            </property>
-           </column>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item row="0" column="1">
-        <layout class="QGridLayout" name="gridLayout_3">
-         <item row="0" column="0">
-          <spacer name="horizontalSpacer">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>158</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item row="0" column="1">
-          <widget class="QPushButton" name="reloadButton">
-           <property name="toolTip">
-            <string>Press to reload Flash cookies from disk</string>
-           </property>
-           <property name="text">
-            <string>Reload</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0" colspan="2">
-          <layout class="QGridLayout" name="gridLayout_2">
-           <item row="0" column="0">
-            <widget class="QLabel" name="label_6">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="text">
-              <string>Name:</string>
-             </property>
-             <property name="alignment">
-              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="1">
-            <widget class="QLabel" name="nameLabel">
-             <property name="text">
-              <string>&lt;no flash cookie selected&gt;</string>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="0">
-            <widget class="QLabel" name="labelSize_2">
-             <property name="text">
-              <string>Size:</string>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="1">
-            <widget class="QLabel" name="sizeLabel">
-             <property name="text">
-              <string>&lt;no flash cookie selected&gt;</string>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="0">
-            <widget class="QLabel" name="label_7">
-             <property name="text">
-              <string>Origin:</string>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="1">
-            <widget class="QLabel" name="originLabel">
-             <property name="text">
-              <string>&lt;no flash cookie selected&gt;</string>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="0">
-            <widget class="QLabel" name="label_22">
-             <property name="text">
-              <string>Last Modified:</string>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="1">
-            <widget class="QLabel" name="modifiedLabel">
-             <property name="text">
-              <string>&lt;no flash cookie selected&gt;</string>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item row="2" column="0" colspan="2">
-          <widget class="QLabel" name="label">
-           <property name="text">
-            <string>Contents:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="3" column="0" colspan="2">
-          <widget class="QPlainTextEdit" name="contentsEdit">
-           <property name="tabChangesFocus">
-            <bool>true</bool>
-           </property>
-           <property name="lineWrapMode">
-            <enum>QPlainTextEdit::NoWrap</enum>
-           </property>
-           <property name="readOnly">
-            <bool>true</bool>
-           </property>
-           <property name="textInteractionFlags">
-            <set>Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item row="1" column="0" colspan="2">
-        <layout class="QHBoxLayout" name="horizontalLayout_2">
-         <item>
-          <widget class="QLabel" name="label_2">
-           <property name="text">
-            <string>Path:</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLineEdit" name="pathEdit">
-           <property name="readOnly">
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item row="2" column="0" colspan="2">
-        <layout class="QHBoxLayout" name="horizontalLayout">
-         <item>
-          <widget class="QPushButton" name="removeAllButton">
-           <property name="toolTip">
-            <string>Press to remove all flash cookies</string>
-           </property>
-           <property name="text">
-            <string>Remove All Cookies</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QPushButton" name="removeButton">
-           <property name="toolTip">
-            <string>Press to remove selected flash cookies</string>
-           </property>
-           <property name="text">
-            <string>Remove Cookie</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <spacer name="horizontalSpacer_2">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="tab_2">
-      <attribute name="title">
-       <string>Flash Cookies Lists</string>
-      </attribute>
-      <layout class="QGridLayout" name="gridLayout_5">
-       <item row="0" column="0">
-        <widget class="QLabel" name="label_3">
-         <property name="text">
-          <string>&lt;b&gt;Flash cookie whitelist&lt;/b&gt;</string>
-         </property>
-        </widget>
-       </item>
-       <item row="0" column="1">
-        <widget class="QLabel" name="label_5">
-         <property name="text">
-          <string>&lt;b&gt;Flash cookie blacklist&lt;/b&gt;</string>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="0">
-        <widget class="QLabel" name="label_17">
-         <property name="text">
-          <string>Flash cookies from these origins will not be deleted automatically. (Also detection of them will not be notified to user.)</string>
-         </property>
-         <property name="wordWrap">
-          <bool>true</bool>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="1">
-        <widget class="QLabel" name="label_18">
-         <property name="text">
-          <string>Flash cookies from these origins will be deleted without any notification.</string>
-         </property>
-         <property name="wordWrap">
-          <bool>true</bool>
-         </property>
-        </widget>
-       </item>
-       <item row="2" column="0">
-        <widget class="QListWidget" name="whiteList">
-         <property name="alternatingRowColors">
-          <bool>true</bool>
-         </property>
-         <property name="selectionMode">
-          <enum>QAbstractItemView::ExtendedSelection</enum>
-         </property>
-         <property name="sortingEnabled">
-          <bool>true</bool>
-         </property>
-        </widget>
-       </item>
-       <item row="2" column="1">
-        <widget class="QListWidget" name="blackList">
-         <property name="alternatingRowColors">
-          <bool>true</bool>
-         </property>
-         <property name="selectionMode">
-          <enum>QAbstractItemView::ExtendedSelection</enum>
-         </property>
-         <property name="sortingEnabled">
-          <bool>true</bool>
-         </property>
-        </widget>
-       </item>
-       <item row="3" column="0">
-        <layout class="QHBoxLayout" name="horizontalLayout_3">
-         <item>
-          <spacer name="horizontalSpacer_3">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item>
-          <widget class="QPushButton" name="removeWhiteButton">
-           <property name="toolTip">
-            <string>Press to remove selected origins from the whitelist</string>
-           </property>
-           <property name="text">
-            <string>Remove</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QPushButton" name="addWhiteButton">
-           <property name="toolTip">
-            <string>Press to add an origin to the whitelist</string>
-           </property>
-           <property name="text">
-            <string>Add...</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <spacer name="horizontalSpacer_4">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-        </layout>
-       </item>
-       <item row="3" column="1">
-        <layout class="QHBoxLayout" name="horizontalLayout_4">
-         <item>
-          <spacer name="horizontalSpacer_5">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item>
-          <widget class="QPushButton" name="removeBlackButton">
-           <property name="toolTip">
-            <string>Press to remove selected origins from the blacklist</string>
-           </property>
-           <property name="text">
-            <string>Remove</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QPushButton" name="addBlackButton">
-           <property name="toolTip">
-            <string>Press to add an origin to the blacklist</string>
-           </property>
-           <property name="text">
-            <string>Add...</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <spacer name="horizontalSpacer_6">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </widget>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>cookiesTabWidget</tabstop>
-  <tabstop>filterEdit</tabstop>
-  <tabstop>cookiesList</tabstop>
-  <tabstop>reloadButton</tabstop>
-  <tabstop>contentsEdit</tabstop>
-  <tabstop>pathEdit</tabstop>
-  <tabstop>removeAllButton</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>whiteList</tabstop>
-  <tabstop>removeWhiteButton</tabstop>
-  <tabstop>addWhiteButton</tabstop>
-  <tabstop>blackList</tabstop>
-  <tabstop>removeBlackButton</tabstop>
-  <tabstop>addBlackButton</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>FlashCookieManagerDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>FlashCookieManagerDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/FlashCookieManager/FlashCookieNotification.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the feature permission bar widget.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QLabel, QHBoxLayout, QPushButton
-
-from E5Gui.E5AnimatedWidget import E5AnimatedWidget
-
-import UI.PixmapCache
-
-
-class FlashCookieNotification(E5AnimatedWidget):
-    """
-    Class implementing the feature permission bar widget.
-    """
-    DefaultHeight = 30
-    
-    def __init__(self, view, manager, noCookies):
-        """
-        Constructor
-        
-        @param view reference to the web view
-        @type QWebView
-        @param manager reference to the Flash cookie manager object
-        @type FlashCookieManager
-        @param noCookies number of newly detected Flash cookies
-        @type int
-        """
-        super(FlashCookieNotification, self).__init__(parent=view)
-        
-        self.__manager = manager
-        
-        if noCookies == 1:
-            msg = self.tr("A new flash cookie was detected.")
-        else:
-            msg = self.tr("{0} new flash cookies were detected.")\
-                .format(noCookies)
-        self.setAutoFillBackground(True)
-        self.__layout = QHBoxLayout()
-        self.setLayout(self.__layout)
-        self.__layout.setContentsMargins(9, 0, 0, 0)
-        self.__iconLabel = QLabel(self)
-        self.__iconLabel.setPixmap(UI.PixmapCache.getPixmap("flashCookie.png"))
-        self.__layout.addWidget(self.__iconLabel)
-        self.__messageLabel = QLabel(msg, self)
-        self.__layout.addWidget(self.__messageLabel)
-        self.__viewButton = QPushButton(self.tr("View"), self)
-        self.__layout.addWidget(self.__viewButton)
-        self.__layout.addStretch()
-        self.__discardButton = QPushButton(UI.PixmapCache.getIcon("close.png"),
-                                           "", self)
-        self.__layout.addWidget(self.__discardButton)
-        
-        self.__viewButton.clicked.connect(manager.showFlashCookieManagerDialog)
-        self.__viewButton.clicked.connect(self.hide)
-        self.__discardButton.clicked.connect(self.hide)
-        
-        self.resize(view.width(), self.height())
-        self.startAnimation()
--- a/eric6/Helpviewer/FlashCookieManager/FlashCookieReader.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,476 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a class to read flash cookies.
-"""
-
-#
-# Note: The code is based on s2x.py
-#
-
-from __future__ import unicode_literals
-
-import struct
-import io
-
-from PyQt5.QtCore import QDateTime
-
-
-class FlashCookieReaderError(Exception):
-    """
-    Class containing data of a reader error.
-    """
-    def __init__(self, msg):
-        """
-        Constructor
-        
-        @param msg error message
-        @type str
-        """
-        self.msg = msg
-
-
-class FlashCookieReader(object):
-    """
-    Class implementing a reader for flash cookies (*.sol files).
-    """
-    Number = b'\x00'
-    Boolean = b'\x01'
-    String = b'\x02'
-    ObjObj = b'\x03'
-    Null = b'\x05'
-    Undef = b'\x06'
-    ObjArr = b'\x08'
-    ObjDate = b'\x0B'
-    ObjM = b'\x0D'
-    ObjXml = b'\x0F'
-    ObjCc = b'\x10'
-    
-    EpochCorrectionMsecs = 31 * 24 * 60 * 60 * 1000
-    # Flash Epoch starts at 1969-12-01
-    
-    def __init__(self):
-        """
-        Constructor
-        """
-        self.__result = {}
-        # dictionary with element name as key and tuple of
-        # type and value as value
-        self.__data = None
-        self.__parsed = False
-    
-    def setBytes(self, solData):
-        """
-        Public method to set the contents of a sol file to be parsed.
-        
-        @param solData contents of the file
-        @type bytes
-        """
-        self.__data = io.BytesIO(solData)
-    
-    def setFileName(self, solFilename):
-        """
-        Public method to set the name of a sol file to be parsed.
-        
-        @param solFilename name of the sol file
-        @type str
-        """
-        self.__data = open(solFilename, "rb")
-    
-    def setFile(self, solFile):
-        """
-        Public method to set an open sol file to be parsed.
-        
-        @param solFile sol file to be parsed
-        @type io.FileIO
-        """
-        self.__data = solFile
-    
-    def parse(self):
-        """
-        Public method to parse the sol file.
-        
-        @exception FlashCookieReaderError raised when encountering a parse
-            issue
-        """
-        if self.__data is None:
-            return
-        
-        self.__data.seek(0, 2)
-        lenSolData = self.__data.tell()
-        self.__data.seek(0)
-        self.__data.read(2)
-        sLenData = self.__data.read(4)
-        if len(sLenData) != 4:
-            raise FlashCookieReaderError("Flash cookie is invalid.")
-        lenData, = struct.unpack(">L", sLenData)    # unsigned long, big-endian
-        if lenSolData != lenData + 6:
-            raise FlashCookieReaderError(
-                "Flash cookie data lengths don't match\n"
-                "  file length: {0}\n"
-                "  data length: {1}"
-                .format(lenSolData - 6, lenData))
-        sDataType = self.__data.read(4).decode("utf-8")             # 'TCSO'
-        if sDataType != "TCSO":
-            raise FlashCookieReaderError(
-                "Flash cookie type is not 'TCSO'; found '{0}'."
-                .format(sDataType))
-        self.__data.read(6)
-        lenSolName, = struct.unpack(">H", self.__data.read(2))
-        # unsigned short,  big-endian
-        solName = self.__data.read(lenSolName)
-        solName = solName.decode("utf-8", "replace")
-        self.__result["SolName"] = ("string", solName)
-        self.__data.read(4)
-        while self.__data.tell() < lenSolData:
-            lenVariableName, = struct.unpack(">H", self.__data.read(2))
-            # unsigned short,  big-endian
-            variableName = self.__data.read(lenVariableName)
-            variableName = variableName.decode("utf-8", "replace")
-            variableType = self.__data.read(1)
-            if len(variableType):
-                if variableType == self.Number:
-                    self.__parseNumber(variableName, self.__result)
-                elif variableType == self.Boolean:
-                    self.__parseBoolean(variableName, self.__result)
-                elif variableType == self.String:
-                    self.__parseString(variableName, self.__result)
-                elif variableType == self.ObjObj:
-                    self.__parseObject(variableName, self.__result)
-                elif variableType == self.ObjArr:
-                    self.__parseArray(variableName, self.__result)
-                elif variableType == self.ObjDate:
-                    self.__parseDate(variableName, self.__result)
-                elif variableType == self.ObjXml:
-                    self.__parseXml(variableName, self.__result)
-                elif variableType == self.ObjCc:
-                    self.__parseOcc(variableName, self.__result)
-                elif variableType == self.ObjM:
-                    self.__parseOjm(variableName, self.__result)
-                elif variableType == self.Null:
-                    self.__parseNull(variableName, self.__result)
-                elif variableType == self.Undef:
-                    self.__parseUndefined(variableName, self.__result)
-                else:
-                    raise FlashCookieReaderError(
-                        "Unexpected Data Type: " + hex(ord(variableType)))
-            self.__data.read(1)       # '\x00'
-        self.__data.close()
-        self.__parsed = True
-        
-    def __parseNumber(self, variableName, parent):
-        """
-        Private method to parse a number.
-        
-        @param variableName name of the variable to be parsed
-        @type str
-        @param parent reference to the dictionary to insert the result into
-        @type dict
-        """
-        b = self.__data.read(8)
-        if b == b"\x7F\xF0\x00\x00\x00\x00\x00\x00":
-            value = "Infinity"
-        elif b == b"\xFF\xF0\x00\x00\x00\x00\x00\x00":
-            value = "-Infinity"
-        elif b == b"\x7F\xF8\x00\x00\x00\x00\x00\x00":
-            value = "NaN"
-        else:
-            value, = struct.unpack(">d", b)    # double, big-endian
-            value = str(value)
-        parent[variableName] = ("number", value)
-    
-    def __parseBoolean(self, variableName, parent):
-        """
-        Private method to parse a boolean.
-        
-        @param variableName name of the variable to be parsed
-        @type str
-        @param parent reference to the dictionary to insert the result into
-        @type dict
-        """
-        b = self.__data.read(1)
-        if b == b"\x00":
-            value = "False"
-        elif b == b"\x01":
-            value = "True"
-        else:
-            # boolean value error; default to True
-            value = "True"
-        parent[variableName] = ("boolean", value)
-    
-    def __parseString(self, variableName, parent):
-        """
-        Private method to parse a string.
-        
-        @param variableName name of the variable to be parsed
-        @type str
-        @param parent reference to the dictionary to insert the result into
-        @type dict
-        """
-        lenStr, = struct.unpack(">H", self.__data.read(2))
-        # unsigned short, big-endian
-        b = self.__data.read(lenStr)
-        value = b.decode("utf-8", "replace")
-        parent[variableName] = ("string", value)
-    
-    def __parseDate(self, variableName, parent):
-        """
-        Private method to parse a date.
-        
-        @param variableName name of the variable to be parsed
-        @type str
-        @param parent reference to the dictionary to insert the result into
-        @type dict
-        """
-        msec, = struct.unpack(">d", self.__data.read(8))
-        # double, big-endian
-        # DateObject: Milliseconds Count From Dec. 1, 1969
-        msec -= self.EpochCorrectionMsecs   # correct for Unix epoch
-        minOffset, = struct.unpack(">h", self.__data.read(2))
-        # short, big-endian
-        offset = minOffset // 60    # offset in hours
-        # Timezone: UTC + Offset
-        value = QDateTime()
-        value.setMSecsSinceEpoch(msec)
-        value.setOffsetFromUtc(offset * 3600)
-        parent[variableName] = ("date",
-                                value.toString("yyyy-MM-dd HH:mm:ss t"))
-    
-    def __parseXml(self, variableName, parent):
-        """
-        Private method to parse XML.
-        
-        @param variableName name of the variable to be parsed
-        @type str
-        @param parent reference to the dictionary to insert the result into
-        @type dict
-        """
-        lenCData, = struct.unpack(">L", self.__data.read(4))
-        # unsigned long, big-endian
-        cData = self.__data.read(lenCData)
-        value = cData.decode("utf-8", "replace")
-        parent[variableName] = ("xml", value)
-    
-    def __parseOjm(self, variableName, parent):
-        """
-        Private method to parse an m_object.
-        
-        @param variableName name of the variable to be parsed
-        @type str
-        @param parent reference to the dictionary to insert the result into
-        @type dict
-        """
-        parent[variableName] = ("m_object", "")
-    
-    def __parseNull(self, variableName, parent):
-        """
-        Private method to parse a null object.
-        
-        @param variableName name of the variable to be parsed
-        @type str
-        @param parent reference to the dictionary to insert the result into
-        @type dict
-        """
-        parent[variableName] = ("null", "")
-    
-    def __parseUndefined(self, variableName, parent):
-        """
-        Private method to parse an undefined object.
-        
-        @param variableName name of the variable to be parsed
-        @type str
-        @param parent reference to the dictionary to insert the result into
-        @type dict
-        """
-        parent[variableName] = ("undefined", "")
-    
-    def __parseObject(self, variableName, parent):
-        """
-        Private method to parse an object.
-        
-        @param variableName name of the variable to be parsed
-        @type str
-        @param parent reference to the dictionary to insert the result into
-        @type dict
-        @exception FlashCookieReaderError raised when an issue with the cookie
-            file is found
-        """
-        value = {}
-        parent[variableName] = ("object", value)
-        
-        lenVariableName, = struct.unpack(">H", self.__data.read(2))
-        # unsigned short,  big-endian
-        while lenVariableName != 0:
-            variableName = self.__data.read(lenVariableName)
-            variableName = variableName.decode("utf-8", "replace")
-            variableType = self.__data.read(1)
-            if variableType == self.Number:
-                self.__parseNumber(variableName, value)
-            elif variableType == self.Boolean:
-                self.__parseBoolean(variableName, value)
-            elif variableType == self.String:
-                self.__parseString(variableName, value)
-            elif variableType == self.ObjObj:
-                self.__parseObject(variableName, value)
-            elif variableType == self.ObjArr:
-                self.__parseArray(variableName, value)
-            elif variableType == self.ObjDate:
-                self.__parseDate(variableName, value)
-            elif variableType == self.ObjXml:
-                self.__parseXml(variableName, value)
-            elif variableType == self.ObjCc:
-                self.__parseOcc(variableName, value)
-            elif variableType == self.ObjM:
-                self.__parseOjm(variableName, value)
-            elif variableType == self.Null:
-                self.__parseNull(variableName, value)
-            elif variableType == self.Undef:
-                self.__parseUndefined(variableName, value)
-            else:
-                raise FlashCookieReaderError(
-                    "Unexpected Data Type: " + hex(ord(variableType)))
-            lenVariableName, = struct.unpack(">H", self.__data.read(2))
-        self.__data.read(1)       # '\x09'
-    
-    def __parseArray(self, variableName, parent):
-        """
-        Private method to parse an array.
-        
-        @param variableName name of the variable to be parsed
-        @type str
-        @param parent reference to the dictionary to insert the result into
-        @type dict
-        @exception FlashCookieReaderError raised when an issue with the cookie
-            file is found
-        """
-        arrayLength, = struct.unpack(">L", self.__data.read(4))
-        # unsigned long, big-endian
-        
-        value = {}
-        parent[variableName] = ("array; length={0}".format(arrayLength), value)
-        
-        lenVariableName, = struct.unpack(">H", self.__data.read(2))
-        # unsigned short,  big-endian
-        while lenVariableName != 0:
-            variableName = self.__data.read(lenVariableName)
-            variableName = variableName.decode("utf-8", "replace")
-            variableType = self.__data.read(1)
-            if variableType == self.Number:
-                self.__parseNumber(variableName, value)
-            elif variableType == self.Boolean:
-                self.__parseBoolean(variableName, value)
-            elif variableType == self.String:
-                self.__parseString(variableName, value)
-            elif variableType == self.ObjObj:
-                self.__parseObject(variableName, value)
-            elif variableType == self.ObjArr:
-                self.__parseArray(variableName, value)
-            elif variableType == self.ObjDate:
-                self.__parseDate(variableName, value)
-            elif variableType == self.ObjXml:
-                self.__parseXml(variableName, value)
-            elif variableType == self.ObjCc:
-                self.__parseOcc(variableName, value)
-            elif variableType == self.ObjM:
-                self.__parseOjm(variableName, value)
-            elif variableType == self.Null:
-                self.__parseNull(variableName, value)
-            elif variableType == self.Undef:
-                self.__parseUndefined(variableName, value)
-            else:
-                raise FlashCookieReaderError(
-                    "Unexpected Data Type: " + hex(ord(variableType)))
-            lenVariableName, = struct.unpack(">H", self.__data.read(2))
-        self.__data.read(1)       # '\x09'
-    
-    def __parseOcc(self, variableName, parent):
-        """
-        Private method to parse a c_object.
-        
-        @param variableName name of the variable to be parsed
-        @type str
-        @param parent reference to the dictionary to insert the result into
-        @type dict
-        @exception FlashCookieReaderError raised when an issue with the cookie
-            file is found
-        """
-        lenCname = struct.unpack(">H", self.__data.read(2))
-        # unsigned short,  big-endian
-        cname = self.__data.read(lenCname)
-        cname = cname.decode("utf-8", "replace")
-        
-        value = {}
-        parent[variableName] = ("c_object; cname={0}".format(cname), value)
-        
-        lenVariableName, = struct.unpack(">H", self.__data.read(2))
-        # unsigned short,  big-endian
-        while lenVariableName != 0:
-            variableName = self.__data.read(lenVariableName)
-            variableName = variableName.decode("utf-8", "replace")
-            variableType = self.__data.read(1)
-            if variableType == self.Number:
-                self.__parseNumber(variableName, value)
-            elif variableType == self.Boolean:
-                self.__parseBoolean(variableName, value)
-            elif variableType == self.String:
-                self.__parseString(variableName, value)
-            elif variableType == self.ObjObj:
-                self.__parseObject(variableName, value)
-            elif variableType == self.ObjArr:
-                self.__parseArray(variableName, value)
-            elif variableType == self.ObjDate:
-                self.__parseDate(variableName, value)
-            elif variableType == self.ObjXml:
-                self.__parseXml(variableName, value)
-            elif variableType == self.ObjCc:
-                self.__parseOcc(variableName, value)
-            elif variableType == self.ObjM:
-                self.__parseOjm(variableName, value)
-            elif variableType == self.Null:
-                self.__parseNull(variableName, value)
-            elif variableType == self.Undef:
-                self.__parseUndefined(variableName, value)
-            else:
-                raise FlashCookieReaderError(
-                    "Unexpected Data Type: " + hex(ord(variableType)))
-            lenVariableName, = struct.unpack(">H", self.__data.read(2))
-        self.__data.read(1)       # '\x09'
-    
-    def toString(self, indent=0, parent=None):
-        """
-        Public method to convert the parsed cookie to a string representation.
-        
-        @param indent indentation level
-        @type int
-        @param parent reference to the dictionary to be converted
-        @type dict
-        @return string representation of the cookie
-        @rtype str
-        """
-        indentStr = "  " * indent
-        strArr = []
-        
-        if parent is None:
-            parent = self.__result
-        
-        if not parent:
-            return ""
-        
-        for variableName in sorted(parent.keys()):
-            variableType, value = parent[variableName]
-            if isinstance(value, dict):
-                resultStr = self.toString(indent + 1, value)
-                if resultStr:
-                    strArr.append("{0}{1}:\n{2}"
-                                  .format(indentStr, variableName, resultStr))
-                else:
-                    strArr.append("{0}{1}:"
-                                  .format(indentStr, variableName))
-            else:
-                strArr.append("{0}{1}: {2}"
-                              .format(indentStr, variableName, value))
-        
-        return "\n".join(strArr)
--- a/eric6/Helpviewer/FlashCookieManager/FlashCookieUtilities.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing some utility functions.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import QProcessEnvironment
-
-import Globals
-
-
-def flashDataPathForOS():
-    """
-    Function to determine the OS dependent path where Flash cookies
-    are stored.
-    
-    @return Flash data path
-    @rtype str
-    """
-    # On Microsoft Windows NT 5.x and 6.x, they are stored in:
-    # %APPDATA%\Macromedia\Flash Player\#SharedObjects\
-    # %APPDATA%\Macromedia\Flash Player\macromedia.com\support\flashplayer\sys\
-    # On Mac OS X, they are stored in:
-    # ~/Library/Preferences/Macromedia/Flash Player/#SharedObjects/
-    # ~/Library/Preferences/Macromedia/Flash Player/macromedia.com/support/⏎
-    #   flashplayer/sys/
-    # On Linux or Unix, they are stored in:
-    # ~/.macromedia/Flash_Player/#SharedObjects/
-    # ~/.macromedia/Flash_Player/macromedia.com/support/flashplayer/sys/
-    # For Linux and Unix systems, if the open-source Gnash plugin is being used
-    #  instead of the official Adobe Flash, they will instead be found at:
-    # ~/.gnash/SharedObjects/
-    
-    flashPath = ""
-    
-    if Globals.isWindowsPlatform():
-        appData = QProcessEnvironment.systemEnvironment().value("APPDATA")
-        appData = appData.replace("\\", "/")
-        flashPath = appData + "/Macromedia/Flash Player"
-    elif Globals.isMacPlatform():
-        flashPath = os.path.expanduser(
-            "~/Library/Preferences/Macromedia/Flash Player")
-    else:
-        if os.path.exists(os.path.expanduser("~/.macromedia")):
-            flashPath = os.path.expanduser("~/.macromedia/Flash_Player")
-        elif os.path.exists(os.path.expanduser("~/.gnash")):
-            flashPath = os.path.expanduser("~/.gnash")
-    
-    return flashPath
--- a/eric6/Helpviewer/FlashCookieManager/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the Flash cookie manager and associated objects.
-"""
--- a/eric6/Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-
-"""
-Module implementing a dialog for adding GreaseMonkey scripts..
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSlot, QDir, QFile
-from PyQt5.QtWidgets import QDialog
-
-from E5Gui import E5MessageBox
-
-from .Ui_GreaseMonkeyAddScriptDialog import Ui_GreaseMonkeyAddScriptDialog
-
-import UI.PixmapCache
-
-
-class GreaseMonkeyAddScriptDialog(QDialog, Ui_GreaseMonkeyAddScriptDialog):
-    """
-    Class implementing a dialog for adding GreaseMonkey scripts..
-    """
-    def __init__(self, manager, script, parent=None):
-        """
-        Constructor
-        
-        @param manager reference to the GreaseMonkey manager
-            (GreaseMonkeyManager)
-        @param script GreaseMonkey script to be added (GreaseMonkeyScript)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(GreaseMonkeyAddScriptDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.iconLabel.setPixmap(
-            UI.PixmapCache.getPixmap("greaseMonkey48.png"))
-        
-        self.__manager = manager
-        self.__script = script
-        
-        runsAt = ""
-        doesNotRunAt = ""
-        
-        include = script.include()
-        exclude = script.exclude()
-        
-        if include:
-            runsAt = self.tr("<p>runs at:<br/><i>{0}</i></p>").format(
-                "<br/>".join(include))
-        
-        if exclude:
-            doesNotRunAt = self.tr(
-                "<p>does not run at:<br/><i>{0}</i></p>").format(
-                "<br/>".join(exclude))
-        
-        scriptInfoTxt = "<p><b>{0}</b> {1}<br/>{2}</p>{3}{4}".format(
-            script.name(), script.version(), script.description(), runsAt,
-            doesNotRunAt)
-        self.scriptInfo.setHtml(scriptInfoTxt)
-        
-        self.accepted.connect(self.__accepted)
-    
-    @pyqtSlot()
-    def on_showScriptSourceButton_clicked(self):
-        """
-        Private slot to show an editor window with the source code.
-        """
-        from Helpviewer import HelpUtilities
-        
-        tmpFileName = HelpUtilities.ensureUniqueFilename(
-            os.path.join(QDir.tempPath(), "tmp-userscript.js"))
-        if QFile.copy(self.__script.fileName(), tmpFileName):
-            from QScintilla.MiniEditor import MiniEditor
-            editor = MiniEditor(tmpFileName, "JavaScript", self)
-            editor.show()
-    
-    def __accepted(self):
-        """
-        Private slot handling the accepted signal.
-        """
-        if self.__manager.addScript(self.__script):
-            msg = self.tr(
-                "<p><b>{0}</b> installed successfully.</p>").format(
-                self.__script.name())
-            success = True
-        else:
-            msg = self.tr("<p>Cannot install script.</p>")
-            success = False
-        
-        import Helpviewer.HelpWindow
-        if success and Helpviewer.HelpWindow.HelpWindow.notificationsEnabled():
-            Helpviewer.HelpWindow.HelpWindow.showNotification(
-                UI.PixmapCache.getPixmap("greaseMonkey48.png"),
-                self.tr("GreaseMonkey Script Installation"),
-                msg)
-        else:
-            E5MessageBox.information(
-                self,
-                self.tr("GreaseMonkey Script Installation"),
-                msg)
--- a/eric6/Helpviewer/GreaseMonkey/GreaseMonkeyAddScriptDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>GreaseMonkeyAddScriptDialog</class>
- <widget class="QDialog" name="GreaseMonkeyAddScriptDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>550</width>
-    <height>400</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>GreaseMonkey Script Installation</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QLabel" name="iconLabel">
-       <property name="minimumSize">
-        <size>
-         <width>48</width>
-         <height>48</height>
-        </size>
-       </property>
-       <property name="text">
-        <string notr="true">Icon</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>&lt;h2&gt;GreaseMonkey Script Installation&lt;/h2&gt;</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_3">
-     <property name="text">
-      <string>You are about to install this userscript into GreaseMonkey:</string>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignCenter</set>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QTextBrowser" name="scriptInfo"/>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_5">
-     <property name="text">
-      <string>&lt;b&gt;You should only install scripts from sources you trust!&lt;/b&gt;</string>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignCenter</set>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_4">
-     <property name="text">
-      <string>Are you sure you want to install it?</string>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignCenter</set>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <widget class="QPushButton" name="showScriptSourceButton">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="toolTip">
-        <string>Press to open an editor with the script's source</string>
-       </property>
-       <property name="text">
-        <string>Show source code of script</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QDialogButtonBox" name="buttonBox">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="standardButtons">
-        <set>QDialogButtonBox::No|QDialogButtonBox::Yes</set>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>GreaseMonkeyAddScriptDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>401</x>
-     <y>389</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>GreaseMonkeyAddScriptDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>439</x>
-     <y>389</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the GreaseMonkey scripts configuration dialog.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt, QUrl
-from PyQt5.QtGui import QDesktopServices
-from PyQt5.QtWidgets import QDialog, QListWidgetItem
-
-from E5Gui import E5MessageBox
-
-from .Ui_GreaseMonkeyConfigurationDialog import \
-    Ui_GreaseMonkeyConfigurationDialog
-
-import UI.PixmapCache
-
-
-class GreaseMonkeyConfigurationDialog(
-        QDialog, Ui_GreaseMonkeyConfigurationDialog):
-    """
-    Class implementing the GreaseMonkey scripts configuration dialog.
-    """
-    ScriptVersionRole = Qt.UserRole
-    ScriptDescriptionRole = Qt.UserRole + 1
-    ScriptRole = Qt.UserRole + 2
-    
-    def __init__(self, manager, parent=None):
-        """
-        Constructor
-        
-        @param manager reference to the manager object (GreaseMonkeyManager)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(GreaseMonkeyConfigurationDialog, self).__init__(parent)
-        self.setupUi(self)
-        self.setWindowFlags(Qt.Window)
-        
-        self.iconLabel.setPixmap(
-            UI.PixmapCache.getPixmap("greaseMonkey48.png"))
-        
-        self.__manager = manager
-        
-        self.__loadScripts()
-        
-        self.scriptsList.removeItemRequested.connect(self.__removeItem)
-        self.scriptsList.itemChanged.connect(self.__itemChanged)
-    
-    @pyqtSlot()
-    def on_openDirectoryButton_clicked(self):
-        """
-        Private slot to open the GreaseMonkey scripts directory.
-        """
-        QDesktopServices.openUrl(
-            QUrl.fromLocalFile(self.__manager.scriptsDirectory()))
-    
-    @pyqtSlot(str)
-    def on_downloadLabel_linkActivated(self, link):
-        """
-        Private slot to open the greasyfork.org web site.
-        
-        @param link URL (string)
-        """
-        import Helpviewer.HelpWindow
-        if not link or "userscript.org" in link:
-            # userscript.org is down, default to Greasy Fork.
-            link = "https://greasyfork.org/"
-        Helpviewer.HelpWindow.HelpWindow.mainWindow().newTab(
-            QUrl(link))
-        self.close()
-    
-    @pyqtSlot(QListWidgetItem)
-    def on_scriptsList_itemDoubleClicked(self, item):
-        """
-        Private slot to show information about the selected script.
-        
-        @param item reference to the double clicked item (QListWidgetItem)
-        """
-        script = self.__getScript(item)
-        if script is not None:
-            from .GreaseMonkeyConfigurationScriptInfoDialog import \
-                GreaseMonkeyConfigurationScriptInfoDialog
-            infoDlg = GreaseMonkeyConfigurationScriptInfoDialog(script, self)
-            infoDlg.exec_()
-    
-    def __loadScripts(self):
-        """
-        Private method to load all the available scripts.
-        """
-        for script in self.__manager.allScripts():
-            itm = QListWidgetItem(
-                UI.PixmapCache.getIcon("greaseMonkeyScript.png"),
-                script.name(), self.scriptsList)
-            itm.setData(
-                GreaseMonkeyConfigurationDialog.ScriptVersionRole,
-                script.version())
-            itm.setData(
-                GreaseMonkeyConfigurationDialog.ScriptDescriptionRole,
-                script.description())
-            itm.setFlags(itm.flags() | Qt.ItemIsUserCheckable)
-            if script.isEnabled():
-                itm.setCheckState(Qt.Checked)
-            else:
-                itm.setCheckState(Qt.Unchecked)
-            itm.setData(GreaseMonkeyConfigurationDialog.ScriptRole, script)
-            self.scriptsList.addItem(itm)
-        
-        self.scriptsList.sortItems()
-        
-        itemMoved = True
-        while itemMoved:
-            itemMoved = False
-            for row in range(self.scriptsList.count()):
-                topItem = self.scriptsList.item(row)
-                bottomItem = self.scriptsList.item(row + 1)
-                if topItem is None or bottomItem is None:
-                    continue
-                
-                if topItem.checkState() == Qt.Unchecked and \
-                   bottomItem.checkState == Qt.Checked:
-                    itm = self.scriptsList.takeItem(row + 1)
-                    self.scriptsList.insertItem(row, itm)
-                    itemMoved = True
-    
-    def __getScript(self, itm):
-        """
-        Private method to get the script for the given item.
-        
-        @param itm item to get script for (QListWidgetItem)
-        @return reference to the script object (GreaseMonkeyScript)
-        """
-        if itm is None:
-            return None
-        
-        script = itm.data(GreaseMonkeyConfigurationDialog.ScriptRole)
-        return script
-    
-    def __removeItem(self, itm):
-        """
-        Private slot to remove a script item.
-        
-        @param itm item to be removed (QListWidgetItem)
-        """
-        script = self.__getScript(itm)
-        if script is None:
-            return
-        
-        removeIt = E5MessageBox.yesNo(
-            self,
-            self.tr("Remove Script"),
-            self.tr(
-                """<p>Are you sure you want to remove <b>{0}</b>?</p>""")
-            .format(script.name()))
-        if removeIt and self.__manager.removeScript(script):
-            self.scriptsList.takeItem(self.scriptsList.row(itm))
-            del itm
-    
-    def __itemChanged(self, itm):
-        """
-        Private slot to handle changes of a script item.
-        
-        @param itm changed item (QListWidgetItem)
-        """
-        script = self.__getScript(itm)
-        if script is None:
-            return
-        
-        if itm.checkState() == Qt.Checked:
-            self.__manager.enableScript(script)
-        else:
-            self.__manager.disableScript(script)
--- a/eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,191 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>GreaseMonkeyConfigurationDialog</class>
- <widget class="QDialog" name="GreaseMonkeyConfigurationDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>550</width>
-    <height>450</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>GreaseMonkey Scripts Configuration</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QLabel" name="iconLabel">
-       <property name="minimumSize">
-        <size>
-         <width>48</width>
-         <height>48</height>
-        </size>
-       </property>
-       <property name="text">
-        <string notr="true">Icon</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>&lt;h2&gt;GreaseMonkey Scripts&lt;/h2&gt;</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_4">
-     <property name="text">
-      <string>Double clicking script will show additional information.</string>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignCenter</set>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="GreaseMonkeyConfigurationListWidget" name="scriptsList">
-     <property name="alternatingRowColors">
-      <bool>true</bool>
-     </property>
-     <property name="verticalScrollMode">
-      <enum>QAbstractItemView::ScrollPerPixel</enum>
-     </property>
-     <property name="uniformItemSizes">
-      <bool>true</bool>
-     </property>
-     <property name="selectionRectVisible">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="downloadLabel">
-     <property name="text">
-      <string>&lt;p&gt;Get more scripts from &lt;a href=&quot;https://greasyfork.org/&quot;&gt;greasyfork.org&lt;/a&gt; or via &lt;a href=&quot;http://wiki.greasespot.net/User_Script_Hosting&quot;&gt;Greasespot Wiki.&lt;/a&gt;&lt;/p&gt;</string>
-     </property>
-     <property name="textFormat">
-      <enum>Qt::RichText</enum>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignCenter</set>
-     </property>
-     <property name="textInteractionFlags">
-      <set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse</set>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_4">
-     <item>
-      <widget class="QPushButton" name="openDirectoryButton">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Minimum" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="toolTip">
-        <string>Press to open the scripts directory</string>
-       </property>
-       <property name="text">
-        <string>Open Scripts Directory</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QDialogButtonBox" name="buttonBox">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="standardButtons">
-        <set>QDialogButtonBox::Ok</set>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>GreaseMonkeyConfigurationListWidget</class>
-   <extends>QListWidget</extends>
-   <header>.GreaseMonkeyConfigurationListWidget.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>scriptsList</tabstop>
-  <tabstop>openDirectoryButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>GreaseMonkeyConfigurationDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>GreaseMonkeyConfigurationDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationListDelegate.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a delegate for the special list widget for GreaseMonkey
-scripts.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt, QSize, QRect
-from PyQt5.QtGui import QFontMetrics, QPalette, QFont
-from PyQt5.QtWidgets import QStyle, QStyledItemDelegate, QApplication
-
-from Globals import qVersionTuple
-
-if qVersionTuple() >= (5, 0, 0):
-    from PyQt5.QtWidgets import QStyleOptionViewItem
-else:
-    from PyQt5.QtWidgets import QStyleOptionViewItemV4 as QStyleOptionViewItem
-
-import UI.PixmapCache
-import Globals
-
-
-class GreaseMonkeyConfigurationListDelegate(QStyledItemDelegate):
-    """
-    Class implementing a delegate for the special list widget for GreaseMonkey
-    scripts.
-    """
-    IconSize = 32
-    RemoveIconSize = 16
-    CheckBoxSize = 18
-    MinPadding = 5
-    ItemWidth = 200
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(GreaseMonkeyConfigurationListDelegate, self).__init__(parent)
-        
-        self.__removePixmap = \
-            UI.PixmapCache.getIcon("greaseMonkeyTrash.png").pixmap(
-                GreaseMonkeyConfigurationListDelegate.RemoveIconSize)
-        self.__rowHeight = 0
-        self.__padding = 0
-    
-    def padding(self):
-        """
-        Public method to get the padding used.
-        
-        @return padding used (integer)
-        """
-        return self.__padding
-    
-    def paint(self, painter, option, index):
-        """
-        Public method to paint the specified list item.
-        
-        @param painter painter object to paint to (QPainter)
-        @param option style option used for painting (QStyleOptionViewItem)
-        @param index model index of the item (QModelIndex)
-        """
-        opt = QStyleOptionViewItem(option)
-        self.initStyleOption(opt, index)
-        
-        widget = opt.widget
-        style = widget.style() if widget is not None else QApplication.style()
-        height = opt.rect.height()
-        center = height // 2 + opt.rect.top()
-        
-        # Prepare title font
-        titleFont = QFont(opt.font)
-        titleFont.setBold(True)
-        titleFont.setPointSize(titleFont.pointSize() + 1)
-        
-        titleMetrics = QFontMetrics(titleFont)
-        if Globals.isWindowsPlatform():
-            colorRole = QPalette.Text
-        else:
-            colorRole = QPalette.HighlightedText \
-                if opt.state & QStyle.State_Selected else QPalette.Text
-        
-        leftPos = self.__padding
-        rightPos = opt.rect.right() - self.__padding - \
-            GreaseMonkeyConfigurationListDelegate.RemoveIconSize
-        
-        # Draw background
-        style.drawPrimitive(QStyle.PE_PanelItemViewItem, opt, painter, widget)
-        
-        # Draw checkbox
-        checkBoxYPos = center - \
-            GreaseMonkeyConfigurationListDelegate.CheckBoxSize // 2
-        opt2 = QStyleOptionViewItem(opt)
-        if opt2.checkState == Qt.Checked:
-            opt2.state |= QStyle.State_On
-        else:
-            opt2.state |= QStyle.State_Off
-        styleCheckBoxRect = style.subElementRect(
-            QStyle.SE_ViewItemCheckIndicator, opt2, widget)
-        opt2.rect = QRect(
-            leftPos, checkBoxYPos,
-            styleCheckBoxRect.width(), styleCheckBoxRect.height())
-        style.drawPrimitive(QStyle.PE_IndicatorViewItemCheck, opt2, painter,
-                            widget)
-        leftPos = opt2.rect.right() + self.__padding
-        
-        # Draw icon
-        iconYPos = center - GreaseMonkeyConfigurationListDelegate.IconSize // 2
-        iconRect = QRect(leftPos, iconYPos,
-                         GreaseMonkeyConfigurationListDelegate.IconSize,
-                         GreaseMonkeyConfigurationListDelegate.IconSize)
-        pixmap = index.data(Qt.DecorationRole).pixmap(
-            GreaseMonkeyConfigurationListDelegate.IconSize)
-        painter.drawPixmap(iconRect, pixmap)
-        leftPos = iconRect.right() + self.__padding
-        
-        # Draw script name
-        name = index.data(Qt.DisplayRole)
-        leftTitleEdge = leftPos + 2
-        rightTitleEdge = rightPos - self.__padding
-        leftPosForVersion = titleMetrics.width(name) + self.__padding
-        nameRect = QRect(leftTitleEdge, opt.rect.top() + self.__padding,
-                         rightTitleEdge - leftTitleEdge, titleMetrics.height())
-        painter.setFont(titleFont)
-        style.drawItemText(painter, nameRect, Qt.AlignLeft, opt.palette, True,
-                           name, colorRole)
-        
-        # Draw version
-        version = index.data(Qt.UserRole)
-        versionRect = QRect(
-            nameRect.x() + leftPosForVersion, nameRect.y(),
-            rightTitleEdge - leftTitleEdge, titleMetrics.height())
-        versionFont = titleFont
-        painter.setFont(versionFont)
-        style.drawItemText(painter, versionRect, Qt.AlignLeft, opt.palette,
-                           True, version, colorRole)
-        
-        # Draw description
-        infoYPos = nameRect.bottom() + opt.fontMetrics.leading()
-        infoRect = QRect(
-            nameRect.x(), infoYPos,
-            nameRect.width(), opt.fontMetrics.height())
-        info = opt.fontMetrics.elidedText(
-            index.data(Qt.UserRole + 1), Qt.ElideRight, infoRect.width())
-        painter.setFont(opt.font)
-        style.drawItemText(painter, infoRect, Qt.AlignLeft | Qt.TextSingleLine,
-                           opt.palette, True, info, colorRole)
-        
-        # Draw remove button
-        removeIconYPos = center - \
-            GreaseMonkeyConfigurationListDelegate.RemoveIconSize // 2
-        removeIconRect = QRect(
-            rightPos, removeIconYPos,
-            GreaseMonkeyConfigurationListDelegate.RemoveIconSize,
-            GreaseMonkeyConfigurationListDelegate.RemoveIconSize)
-        painter.drawPixmap(removeIconRect, self.__removePixmap)
-    
-    def sizeHint(self, option, index):
-        """
-        Public method to get a size hint for the specified list item.
-        
-        @param option style option used for painting (QStyleOptionViewItem)
-        @param index model index of the item (QModelIndex)
-        @return size hint (QSize)
-        """
-        if not self.__rowHeight:
-            opt = QStyleOptionViewItem(option)
-            self.initStyleOption(opt, index)
-            
-            widget = opt.widget
-            style = widget.style() if widget is not None \
-                else QApplication.style()
-            padding = style.pixelMetric(QStyle.PM_FocusFrameHMargin) + 1
-            
-            titleFont = opt.font
-            titleFont.setBold(True)
-            titleFont.setPointSize(titleFont.pointSize() + 1)
-            
-            self.__padding = padding \
-                if padding > GreaseMonkeyConfigurationListDelegate.MinPadding \
-                else GreaseMonkeyConfigurationListDelegate.MinPadding
-            
-            titleMetrics = QFontMetrics(titleFont)
-            
-            self.__rowHeight = 2 * self.__padding + \
-                opt.fontMetrics.leading() + \
-                opt.fontMetrics.height() + \
-                titleMetrics.height()
-        
-        return QSize(GreaseMonkeyConfigurationListDelegate.ItemWidth,
-                     self.__rowHeight)
--- a/eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationListWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a special list widget for GreaseMonkey scripts.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSignal, QRect
-from PyQt5.QtWidgets import QListWidget, QListWidgetItem
-
-from .GreaseMonkeyConfigurationListDelegate import \
-    GreaseMonkeyConfigurationListDelegate
-
-
-class GreaseMonkeyConfigurationListWidget(QListWidget):
-    """
-    Class implementing a special list widget for GreaseMonkey scripts.
-    
-    @signal removeItemRequested(item) emitted to indicate an item removal
-        request (QListWidgetItem)
-    """
-    removeItemRequested = pyqtSignal(QListWidgetItem)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(GreaseMonkeyConfigurationListWidget, self).__init__(parent)
-        
-        self.__delegate = GreaseMonkeyConfigurationListDelegate(self)
-        self.setItemDelegate(self.__delegate)
-    
-    def __containsRemoveIcon(self, pos):
-        """
-        Private method to check, if the given position is inside the remove
-        icon.
-        
-        @param pos position to check for (QPoint)
-        @return flag indicating success (boolean)
-        """
-        itm = self.itemAt(pos)
-        if itm is None:
-            return False
-        
-        rect = self.visualItemRect(itm)
-        iconSize = GreaseMonkeyConfigurationListDelegate.RemoveIconSize
-        removeIconXPos = rect.right() - self.__delegate.padding() - iconSize
-        center = rect.height() // 2 + rect.top()
-        removeIconYPos = center - iconSize // 2
-        
-        removeIconRect = QRect(removeIconXPos, removeIconYPos,
-                               iconSize, iconSize)
-        return removeIconRect.contains(pos)
-    
-    def mousePressEvent(self, evt):
-        """
-        Protected method handling presses of mouse buttons.
-        
-        @param evt mouse press event (QMouseEvent)
-        """
-        if self.__containsRemoveIcon(evt.pos()):
-            self.removeItemRequested.emit(self.itemAt(evt.pos()))
-            return
-        
-        super(GreaseMonkeyConfigurationListWidget, self).mousePressEvent(evt)
-    
-    def mouseDoubleClickEvent(self, evt):
-        """
-        Protected method handling mouse double click events.
-        
-        @param evt mouse press event (QMouseEvent)
-        """
-        if self.__containsRemoveIcon(evt.pos()):
-            self.removeItemRequested.emit(self.itemAt(evt.pos()))
-            return
-        
-        super(GreaseMonkeyConfigurationListWidget, self).mouseDoubleClickEvent(
-            evt)
--- a/eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to show GreaseMonkey script information.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot
-from PyQt5.QtWidgets import QDialog
-
-from .Ui_GreaseMonkeyConfigurationScriptInfoDialog import \
-    Ui_GreaseMonkeyConfigurationScriptInfoDialog
-
-from ..GreaseMonkeyScript import GreaseMonkeyScript
-
-import UI.PixmapCache
-
-
-class GreaseMonkeyConfigurationScriptInfoDialog(
-        QDialog, Ui_GreaseMonkeyConfigurationScriptInfoDialog):
-    """
-    Class implementing a dialog to show GreaseMonkey script information.
-    """
-    def __init__(self, script, parent=None):
-        """
-        Constructor
-        
-        @param script reference to the script (GreaseMonkeyScript)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(GreaseMonkeyConfigurationScriptInfoDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.iconLabel.setPixmap(
-            UI.PixmapCache.getPixmap("greaseMonkey48.png"))
-        
-        self.__scriptFileName = script.fileName()
-        
-        self.setWindowTitle(
-            self.tr("Script Details of {0}").format(script.name()))
-        
-        self.nameLabel.setText(script.fullName())
-        self.versionLabel.setText(script.version())
-        self.urlLabel.setText(script.downloadUrl().toString())
-        if script.startAt() == GreaseMonkeyScript.DocumentStart:
-            self.startAtLabel.setText("document-start")
-        else:
-            self.startAtLabel.setText("document-end")
-        self.descriptionBrowser.setHtml(script.description())
-        self.runsAtBrowser.setHtml("<br/>".join(script.include()))
-        self.doesNotRunAtBrowser.setHtml("<br/>".join(script.exclude()))
-    
-    @pyqtSlot()
-    def on_showScriptSourceButton_clicked(self):
-        """
-        Private slot to show an editor window with the script source code.
-        """
-        from QScintilla.MiniEditor import MiniEditor
-        editor = MiniEditor(self.__scriptFileName, "JavaScript", self)
-        editor.show()
--- a/eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/GreaseMonkeyConfigurationScriptInfoDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>GreaseMonkeyConfigurationScriptInfoDialog</class>
- <widget class="QDialog" name="GreaseMonkeyConfigurationScriptInfoDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>550</width>
-    <height>500</height>
-   </rect>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QLabel" name="iconLabel">
-       <property name="minimumSize">
-        <size>
-         <width>48</width>
-         <height>48</height>
-        </size>
-       </property>
-       <property name="text">
-        <string notr="true">Icon</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="label_8">
-       <property name="text">
-        <string>&lt;h2&gt;GreaseMonkey Script Details&lt;/h2&gt;</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0">
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>Name:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QLabel" name="nameLabel">
-       <property name="text">
-        <string/>
-       </property>
-       <property name="textInteractionFlags">
-        <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>Version:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QLabel" name="versionLabel">
-       <property name="text">
-        <string/>
-       </property>
-       <property name="textInteractionFlags">
-        <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="0">
-      <widget class="QLabel" name="label_3">
-       <property name="text">
-        <string>URL:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QLabel" name="urlLabel">
-       <property name="text">
-        <string/>
-       </property>
-       <property name="textInteractionFlags">
-        <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="0">
-      <widget class="QLabel" name="label_4">
-       <property name="text">
-        <string>Start at:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="1">
-      <widget class="QLabel" name="startAtLabel">
-       <property name="text">
-        <string/>
-       </property>
-       <property name="textInteractionFlags">
-        <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-       </property>
-      </widget>
-     </item>
-     <item row="4" column="0">
-      <widget class="QLabel" name="label_5">
-       <property name="text">
-        <string>Description:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-       </property>
-      </widget>
-     </item>
-     <item row="4" column="1">
-      <widget class="QTextBrowser" name="descriptionBrowser"/>
-     </item>
-     <item row="5" column="0">
-      <widget class="QLabel" name="label_6">
-       <property name="text">
-        <string>Runs at:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-       </property>
-      </widget>
-     </item>
-     <item row="5" column="1">
-      <widget class="QTextBrowser" name="runsAtBrowser"/>
-     </item>
-     <item row="6" column="0">
-      <widget class="QLabel" name="label_7">
-       <property name="text">
-        <string>Does not run at:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-       </property>
-      </widget>
-     </item>
-     <item row="6" column="1">
-      <widget class="QTextBrowser" name="doesNotRunAtBrowser"/>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <widget class="QPushButton" name="showScriptSourceButton">
-       <property name="toolTip">
-        <string>Press to open an editor with the script's source</string>
-       </property>
-       <property name="text">
-        <string>Show source code of script</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QDialogButtonBox" name="buttonBox">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="standardButtons">
-        <set>QDialogButtonBox::Close</set>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>descriptionBrowser</tabstop>
-  <tabstop>runsAtBrowser</tabstop>
-  <tabstop>doesNotRunAtBrowser</tabstop>
-  <tabstop>showScriptSourceButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>GreaseMonkeyConfigurationScriptInfoDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>402</x>
-     <y>484</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>GreaseMonkeyConfigurationScriptInfoDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>470</x>
-     <y>490</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/GreaseMonkey/GreaseMonkeyConfiguration/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the GreaseMonkey configuration dialogs.
-"""
--- a/eric6/Helpviewer/GreaseMonkey/GreaseMonkeyDownloader.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the downloader for GreaseMonkey scripts.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSignal, QObject, QSettings, QRegExp, QUrl
-from PyQt5.QtWidgets import QDialog
-from PyQt5.QtNetwork import QNetworkReply
-
-from E5Gui import E5MessageBox
-
-import Helpviewer.HelpWindow
-from Helpviewer.Network.FollowRedirectReply import FollowRedirectReply
-
-
-class GreaseMonkeyDownloader(QObject):
-    """
-    Class implementing the downloader for GreaseMonkey scripts.
-    
-    @signal finished() emitted to indicate the end of a script download
-    """
-    finished = pyqtSignal()
-    
-    def __init__(self, request, manager):
-        """
-        Constructor
-        
-        @param request reference to the request object (QNetworkRequest)
-        @param manager reference to the GreaseMonkey manager
-            (GreaseMonkeyManager)
-        """
-        super(GreaseMonkeyDownloader, self).__init__()
-        
-        self.__manager = manager
-        
-        self.__reply = FollowRedirectReply(
-            request.url(),
-            Helpviewer.HelpWindow.HelpWindow.networkAccessManager())
-        self.__reply.finished.connect(self.__scriptDownloaded)
-        
-        self.__fileName = ""
-        self.__requireUrls = []
-    
-    def __scriptDownloaded(self):
-        """
-        Private slot to handle the finished download of a script.
-        """
-        response = bytes(self.__reply.readAll()).decode()
-        
-        if self.__reply.error() == QNetworkReply.NoError and \
-           "// ==UserScript==" in response:
-            from Helpviewer import HelpUtilities
-            filePath = os.path.join(
-                self.__manager.scriptsDirectory(),
-                HelpUtilities.getFileNameFromUrl(self.__reply.url()))
-            self.__fileName = HelpUtilities.ensureUniqueFilename(filePath)
-            
-            try:
-                f = open(self.__fileName, "w", encoding="utf-8")
-            except (IOError, OSError) as err:
-                E5MessageBox.critical(
-                    None,
-                    self.tr("GreaseMonkey Download"),
-                    self.tr(
-                        """<p>The file <b>{0}</b> could not be opened"""
-                        """ for writing.<br/>Reason: {1}</p>""").format(
-                        self.__fileName, str(err)))
-                self.finished.emit()
-                return
-            f.write(response)
-            f.close()
-            
-            settings = QSettings(
-                os.path.join(self.__manager.requireScriptsDirectory(),
-                             "requires.ini"),
-                QSettings.IniFormat)
-            settings.beginGroup("Files")
-            
-            rx = QRegExp("@require(.*)\\n")
-            rx.setMinimal(True)
-            rx.indexIn(response)
-            
-            for i in range(1, rx.captureCount() + 1):
-                url = rx.cap(i).strip()
-                if url and not settings.contains(url):
-                    self.__requireUrls.append(QUrl(url))
-        
-        self.__reply.deleteLater()
-        self.__reply = None
-        
-        self.__downloadRequires()
-    
-    def __requireDownloaded(self):
-        """
-        Private slot to handle the finished download of a required script.
-        """
-        response = bytes(self.__reply.readAll()).decode()
-        
-        if self.__reply.error() == QNetworkReply.NoError and response:
-            from Helpviewer import HelpUtilities
-            filePath = os.path.join(self.__manager.requireScriptsDirectory(),
-                                    "require.js")
-            fileName = HelpUtilities.ensureUniqueFilename(filePath, "{0}")
-            
-            try:
-                f = open(fileName, "w", encoding="utf-8")
-            except (IOError, OSError) as err:
-                E5MessageBox.critical(
-                    None,
-                    self.tr("GreaseMonkey Download"),
-                    self.tr(
-                        """<p>The file <b>{0}</b> could not be opened"""
-                        """ for writing.<br/>Reason: {1}</p>""").format(
-                        fileName, str(err)))
-                self.finished.emit()
-                return
-            f.write(response)
-            f.close()
-            
-            settings = QSettings(
-                os.path.join(self.__manager.requireScriptsDirectory(),
-                             "requires.ini"),
-                QSettings.IniFormat)
-            settings.beginGroup("Files")
-            settings.setValue(self.__reply.originalUrl().toString(), fileName)
-        
-        self.__reply.deleteLater()
-        self.__reply = None
-        
-        self.__downloadRequires()
-    
-    def __downloadRequires(self):
-        """
-        Private slot to initiate the download of required scripts.
-        """
-        if self.__requireUrls:
-            self.__reply = FollowRedirectReply(
-                self.__requireUrls.pop(0),
-                Helpviewer.HelpWindow.HelpWindow.networkAccessManager())
-            self.__reply.finished.connect(self.__requireDownloaded)
-        else:
-            from .GreaseMonkeyScript import GreaseMonkeyScript
-            deleteScript = True
-            script = GreaseMonkeyScript(self.__manager, self.__fileName)
-            
-            if script.isValid():
-                if not self.__manager.containsScript(script.fullName()):
-                    from .GreaseMonkeyAddScriptDialog import \
-                        GreaseMonkeyAddScriptDialog
-                    dlg = GreaseMonkeyAddScriptDialog(self.__manager, script)
-                    deleteScript = dlg.exec_() != QDialog.Accepted
-                else:
-                    E5MessageBox.information(
-                        None,
-                        self.tr("GreaseMonkey Download"),
-                        self.tr(
-                            """<p><b>{0}</b> is already installed.</p>""")
-                        .format(script.name()))
-            
-            if deleteScript:
-                try:
-                    os.remove(self.__fileName)
-                except (IOError, OSError):
-                    # ignore
-                    pass
-            
-            self.finished.emit()
--- a/eric6/Helpviewer/GreaseMonkey/GreaseMonkeyJavaScript.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module containing some JavaScript resources.
-"""
-
-from __future__ import unicode_literals
-
-bootstrap_js = """
-if(typeof GM_xmlhttpRequest === "undefined") {
-    GM_xmlhttpRequest = function(/* object */ details) {
-        details.method = details.method.toUpperCase() || "GET";
-
-        if(!details.url) {
-            throw("GM_xmlhttpRequest requires an URL.");
-        }
-
-        // build XMLHttpRequest object
-        var oXhr = new XMLHttpRequest;
-        // run it
-        if(oXhr) {
-            if("onreadystatechange" in details)
-                oXhr.onreadystatechange = function() {
-                    details.onreadystatechange(oXhr)
-                };
-            if("onload" in details)
-                oXhr.onload = function() { details.onload(oXhr) };
-            if("onerror" in details)
-                oXhr.onerror = function() { details.onerror(oXhr) };
-
-            oXhr.open(details.method, details.url, true);
-
-            if("headers" in details)
-                for(var header in details.headers)
-                    oXhr.setRequestHeader(header, details.headers[header]);
-
-            if("data" in details)
-                oXhr.send(details.data);
-            else
-                oXhr.send();
-        } else
-            throw ("This Browser is not supported, please upgrade.")
-    }
-}
-
-if(typeof GM_addStyle === "undefined") {
-    function GM_addStyle(/* String */ styles) {
-        var head = document.getElementsByTagName("head")[0];
-        if (head === undefined) {
-            document.onreadystatechange = function() {
-                if (document.readyState == "interactive") {
-                  var oStyle = document.createElement("style");
-                  oStyle.setAttribute("type", "text/css");
-                  oStyle.appendChild(document.createTextNode(styles));
-                  document.getElementsByTagName("head")[0].appendChild(oStyle);
-                }
-            }
-        }
-        else {
-            var oStyle = document.createElement("style");
-            oStyle.setAttribute("type", "text/css");
-            oStyle.appendChild(document.createTextNode(styles));
-            head.appendChild(oStyle);
-        }
-    }
-}
-
-if(typeof GM_log === "undefined") {
-    function GM_log(log) {
-        if(console)
-            console.log(log);
-    }
-}
-
-if(typeof GM_openInTab === "undefined") {
-    function GM_openInTab(url) {
-        window.open(url)
-    }
-}
-
-// Define unsafe window
-var unsafeWindow = window;
-window.wrappedJSObject = unsafeWindow;
-
-// GM_registerMenuCommand not supported
-if(typeof GM_registerMenuCommand === "undefined") {
-    function GM_registerMenuCommand(caption, commandFunc, accessKey) { }
-}
-
-// GM Resource not supported
-if(typeof GM_getResourceText === "undefined") {
-    function GM_getResourceText(resourceName) {
-        throw ("eric6 Web Browser: GM Resource is not supported!");
-    }
-}
-
-if(typeof GM_getResourceURL === "undefined") {
-    function GM_getResourceURL(resourceName) {
-        throw ("eric6 Web Browser: GM Resource is not supported!");
-    }
-}
-
-// GM Settings not supported
-if(typeof GM_getValue === "undefined") {
-    function GM_getValue(name, defaultValue) {
-        return defaultValue;
-    }
-}
-
-if(typeof GM_setValue === "undefined") {
-    function GM_setValue(name, value) { }
-}
-
-if(typeof GM_deleteValue === "undefined") {
-    function GM_deleteValue(name) { }
-}
-
-if(typeof GM_listValues === "undefined") {
-    function GM_listValues() {
-        return new Array("");
-    }
-}
-"""
--- a/eric6/Helpviewer/GreaseMonkey/GreaseMonkeyManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,319 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the manager for GreaseMonkey scripts.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSignal, QObject, QTimer, QFile, QDir, QSettings, \
-    QUrl, QByteArray
-from PyQt5.QtNetwork import QNetworkAccessManager
-from PyQt5.QtWebKitWidgets import QWebFrame
-
-import Utilities
-import Preferences
-
-
-class GreaseMonkeyManager(QObject):
-    """
-    Class implementing the manager for GreaseMonkey scripts.
-    
-    @signal scriptsChanged() emitted to indicate a change of scripts
-    """
-    scriptsChanged = pyqtSignal()
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(GreaseMonkeyManager, self).__init__(parent)
-        
-        self.__disabledScripts = []
-        self.__endScripts = []
-        self.__startScripts = []
-        self.__downloaders = []
-        
-        QTimer.singleShot(0, self.__load)
-    
-    def showConfigurationDialog(self, parent=None):
-        """
-        Public method to show the configuration dialog.
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        from .GreaseMonkeyConfiguration.GreaseMonkeyConfigurationDialog \
-            import GreaseMonkeyConfigurationDialog
-        self.__configDiaolg = GreaseMonkeyConfigurationDialog(self, parent)
-        self.__configDiaolg.show()
-    
-    def downloadScript(self, request):
-        """
-        Public method to download a GreaseMonkey script.
-        
-        @param request reference to the request (QNetworkRequest)
-        """
-        from .GreaseMonkeyDownloader import GreaseMonkeyDownloader
-        downloader = GreaseMonkeyDownloader(request, self)
-        downloader.finished.connect(
-            lambda: self.__downloaderFinished(downloader))
-        self.__downloaders.append(downloader)
-    
-    def __downloaderFinished(self, downloader):
-        """
-        Private slot to handle the completion of a script download.
-        
-        @param downloader reference to the downloader object
-        @type GreaseMonkeyDownloader
-        """
-        if downloader in self.__downloaders:
-            self.__downloaders.remove(downloader)
-    
-    def scriptsDirectory(self):
-        """
-        Public method to get the path of the scripts directory.
-        
-        @return path of the scripts directory (string)
-        """
-        return os.path.join(
-            Utilities.getConfigDir(), "browser", "greasemonkey")
-    
-    def requireScriptsDirectory(self):
-        """
-        Public method to get the path of the scripts directory.
-        
-        @return path of the scripts directory (string)
-        """
-        return os.path.join(self.scriptsDirectory(), "requires")
-    
-    def requireScripts(self, urlList):
-        """
-        Public method to get the sources of all required scripts.
-        
-        @param urlList list of URLs (list of string)
-        @return sources of all required scripts (string)
-        """
-        requiresDir = QDir(self.requireScriptsDirectory())
-        if not requiresDir.exists() or len(urlList) == 0:
-            return ""
-        
-        script = ""
-        
-        settings = QSettings(
-            os.path.join(self.requireScriptsDirectory(), "requires.ini"),
-            QSettings.IniFormat)
-        settings.beginGroup("Files")
-        for url in urlList:
-            if settings.contains(url):
-                fileName = settings.value(url)
-                try:
-                    f = open(fileName, "r", encoding="utf-8")
-                    source = f.read()
-                    f.close()
-                except (IOError, OSError):
-                    source = ""
-                script += source.strip() + "\n"
-        
-        return script
-    
-    def saveConfiguration(self):
-        """
-        Public method to save the configuration.
-        """
-        Preferences.setHelp("GreaseMonkeyDisabledScripts",
-                            self.__disabledScripts)
-    
-    def allScripts(self):
-        """
-        Public method to get a list of all scripts.
-        
-        @return list of all scripts (list of GreaseMonkeyScript)
-        """
-        return self.__startScripts[:] + self.__endScripts[:]
-    
-    def containsScript(self, fullName):
-        """
-        Public method to check, if the given script exists.
-        
-        @param fullName full name of the script (string)
-        @return flag indicating the existence (boolean)
-        """
-        for script in self.__startScripts:
-            if script.fullName() == fullName:
-                return True
-        for script in self.__endScripts:
-            if script.fullName() == fullName:
-                return True
-        return False
-    
-    def enableScript(self, script):
-        """
-        Public method to enable the given script.
-        
-        @param script script to be enabled (GreaseMonkeyScript)
-        """
-        script.setEnabled(True)
-        fullName = script.fullName()
-        if fullName in self.__disabledScripts:
-            self.__disabledScripts.remove(fullName)
-    
-    def disableScript(self, script):
-        """
-        Public method to disable the given script.
-        
-        @param script script to be disabled (GreaseMonkeyScript)
-        """
-        script.setEnabled(False)
-        fullName = script.fullName()
-        if fullName not in self.__disabledScripts:
-            self.__disabledScripts.append(fullName)
-    
-    def addScript(self, script):
-        """
-        Public method to add a script.
-        
-        @param script script to be added (GreaseMonkeyScript)
-        @return flag indicating success (boolean)
-        """
-        if not script:
-            return False
-        
-        from .GreaseMonkeyScript import GreaseMonkeyScript
-        if script.startAt() == GreaseMonkeyScript.DocumentStart:
-            self.__startScripts.append(script)
-        else:
-            self.__endScripts.append(script)
-        
-        self.scriptsChanged.emit()
-        return True
-    
-    def removeScript(self, script):
-        """
-        Public method to remove a script.
-        
-        @param script script to be removed (GreaseMonkeyScript)
-        @return flag indicating success (boolean)
-        """
-        if not script:
-            return False
-        
-        from .GreaseMonkeyScript import GreaseMonkeyScript
-        if script.startAt() == GreaseMonkeyScript.DocumentStart:
-            try:
-                self.__startScripts.remove(script)
-            except ValueError:
-                pass
-        else:
-            try:
-                self.__endScripts.remove(script)
-            except ValueError:
-                pass
-        
-        fullName = script.fullName()
-        if fullName in self.__disabledScripts:
-            self.__disabledScripts.remove(fullName)
-        QFile.remove(script.fileName())
-        
-        self.scriptsChanged.emit()
-        return True
-    
-    def canRunOnScheme(self, scheme):
-        """
-        Public method to check, if scripts can be run on a scheme.
-        
-        @param scheme scheme to check (string)
-        @return flag indicating, that scripts can be run (boolean)
-        """
-        return scheme in ["http", "https", "data", "ftp"]
-    
-    def pageLoadStarted(self):
-        """
-        Public slot to handle the start of loading a page.
-        """
-        frame = self.sender()
-        if frame is None or not isinstance(frame, QWebFrame):
-            return
-        
-        urlScheme = frame.url().scheme()
-        urlString = bytes(frame.url().toEncoded()).decode()
-        
-        if not self.canRunOnScheme(urlScheme):
-            return
-        
-        from .GreaseMonkeyJavaScript import bootstrap_js
-        for script in self.__startScripts:
-            if script.match(urlString):
-                frame.evaluateJavaScript(bootstrap_js + script.script())
-        
-        for script in self.__endScripts:
-            if script.match(urlString):
-                javascript = 'window.addEventListener("DOMContentLoaded",' \
-                    'function(e) {{ {0} }}, false);'.format(
-                        bootstrap_js + script.script())
-                frame.evaluateJavaScript(javascript)
-    
-    def __load(self):
-        """
-        Private slot to load the available scripts into the manager.
-        """
-        scriptsDir = QDir(self.scriptsDirectory())
-        if not scriptsDir.exists():
-            scriptsDir.mkpath(self.scriptsDirectory())
-        
-        if not scriptsDir.exists("requires"):
-            scriptsDir.mkdir("requires")
-        
-        self.__disabledScripts = \
-            Preferences.getHelp("GreaseMonkeyDisabledScripts")
-        
-        from .GreaseMonkeyScript import GreaseMonkeyScript
-        for fileName in scriptsDir.entryList(["*.js"], QDir.Files):
-            absolutePath = scriptsDir.absoluteFilePath(fileName)
-            script = GreaseMonkeyScript(self, absolutePath)
-            
-            if script.fullName() in self.__disabledScripts:
-                script.setEnabled(False)
-            
-            if script.startAt() == GreaseMonkeyScript.DocumentStart:
-                self.__startScripts.append(script)
-            else:
-                self.__endScripts.append(script)
-    
-    def connectPage(self, page):
-        """
-        Public method to allow the GreaseMonkey manager to connect to the page.
-        
-        @param page reference to the web page (HelpWebPage)
-        """
-        page.mainFrame().javaScriptWindowObjectCleared.connect(
-            self.pageLoadStarted)
-    
-    def createRequest(self, op, request, outgoingData=None):
-        """
-        Public method to create a request.
-        
-        @param op the operation to be performed
-            (QNetworkAccessManager.Operation)
-        @param request reference to the request object (QNetworkRequest)
-        @param outgoingData reference to an IODevice containing data to be sent
-            (QIODevice)
-        @return reference to the created reply object (QNetworkReply)
-        """
-        if op == QNetworkAccessManager.GetOperation and \
-           request.rawHeader(b"X-Eric6-UserLoadAction") == QByteArray(b"1"):
-            urlString = request.url().toString(
-                QUrl.RemoveFragment | QUrl.RemoveQuery)
-            if urlString.endswith(".user.js"):
-                self.downloadScript(request)
-                from Helpviewer.Network.EmptyNetworkReply import \
-                    EmptyNetworkReply
-                return EmptyNetworkReply(self)
-        
-        return None
--- a/eric6/Helpviewer/GreaseMonkey/GreaseMonkeyScript.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,273 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the GreaseMonkey script.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QUrl, QRegExp
-
-from .GreaseMonkeyUrlMatcher import GreaseMonkeyUrlMatcher
-
-
-class GreaseMonkeyScript(object):
-    """
-    Class implementing the GreaseMonkey script.
-    """
-    DocumentStart = 0
-    DocumentEnd = 1
-    
-    def __init__(self, manager, path):
-        """
-        Constructor
-        
-        @param manager reference to the manager object (GreaseMonkeyManager)
-        @param path path of the Javascript file (string)
-        """
-        self.__manager = manager
-        
-        self.__name = ""
-        self.__namespace = "GreaseMonkeyNS"
-        self.__description = ""
-        self.__version = ""
-        
-        self.__include = []
-        self.__exclude = []
-        
-        self.__downloadUrl = QUrl()
-        self.__startAt = GreaseMonkeyScript.DocumentEnd
-        
-        self.__script = ""
-        self.__fileName = path
-        self.__enabled = True
-        self.__valid = False
-        
-        self.__parseScript(path)
-    
-    def isValid(self):
-        """
-        Public method to check the validity of the script.
-        
-        @return flag indicating a valid script (boolean)
-        """
-        return self.__valid
-    
-    def name(self):
-        """
-        Public method to get the name of the script.
-        
-        @return name of the script (string)
-        """
-        return self.__name
-    
-    def nameSpace(self):
-        """
-        Public method to get the name space of the script.
-        
-        @return name space of the script (string)
-        """
-        return self.__namespace
-    
-    def fullName(self):
-        """
-        Public method to get the full name of the script.
-        
-        @return full name of the script (string)
-        """
-        return "{0}/{1}".format(self.__namespace, self.__name)
-    
-    def description(self):
-        """
-        Public method to get the description of the script.
-        
-        @return description of the script (string)
-        """
-        return self.__description
-    
-    def version(self):
-        """
-        Public method to get the version of the script.
-        
-        @return version of the script (string)
-        """
-        return self.__version
-    
-    def downloadUrl(self):
-        """
-        Public method to get the download URL of the script.
-        
-        @return download URL of the script (QUrl)
-        """
-        return QUrl(self.__downloadUrl)
-    
-    def startAt(self):
-        """
-        Public method to get the start point of the script.
-        
-        @return start point of the script (DocumentStart or DocumentEnd)
-        """
-        return self.__startAt
-    
-    def isEnabled(self):
-        """
-        Public method to check, if the script is enabled.
-        
-        @return flag indicating an enabled state (boolean)
-        """
-        return self.__enabled
-    
-    def setEnabled(self, enable):
-        """
-        Public method to enable a script.
-        
-        @param enable flag indicating the new enabled state (boolean)
-        """
-        self.__enabled = enable
-    
-    def include(self):
-        """
-        Public method to get the list of included URLs.
-        
-        @return list of included URLs (list of strings)
-        """
-        urlList = []
-        for matcher in self.__include:
-            urlList.append(matcher.pattern())
-        return urlList
-    
-    def exclude(self):
-        """
-        Public method to get the list of excluded URLs.
-        
-        @return list of excluded URLs (list of strings)
-        """
-        urlList = []
-        for matcher in self.__exclude:
-            urlList.append(matcher.pattern())
-        return urlList
-    
-    def script(self):
-        """
-        Public method to get the Javascript source.
-        
-        @return Javascript source (string)
-        """
-        return self.__script
-    
-    def fileName(self):
-        """
-        Public method to get the path of the Javascript file.
-        
-        @return path path of the Javascript file (string)
-        """
-        return self.__fileName
-    
-    def match(self, urlString):
-        """
-        Public method to check, if the script matches the given URL.
-        
-        @param urlString URL (string)
-        @return flag indicating a match (boolean)
-        """
-        if not self.__enabled:
-            return False
-        
-        for matcher in self.__exclude:
-            if matcher.match(urlString):
-                return False
-        
-        for matcher in self.__include:
-            if matcher.match(urlString):
-                return True
-        
-        return False
-    
-    def __parseScript(self, path):
-        """
-        Private method to parse the given script and populate the data
-        structure.
-        
-        @param path path of the Javascript file (string)
-        """
-        try:
-            f = open(path, "r", encoding="utf-8")
-            fileData = f.read()
-            f.close()
-        except (IOError, OSError):
-            # silently ignore because it shouldn't happen
-            return
-        
-        rx = QRegExp("// ==UserScript==(.*)// ==/UserScript==")
-        rx.indexIn(fileData)
-        metaDataBlock = rx.cap(1).strip()
-        
-        if metaDataBlock == "":
-            # invalid script file
-            return
-        
-        requireList = []
-        for line in metaDataBlock.splitlines():
-            if not line.startswith("// @"):
-                continue
-            
-            line = line[3:].replace("\t", " ")
-            index = line.find(" ")
-            if index < 0:
-                continue
-            
-            key = line[:index].strip()
-            value = line[index + 1:].strip()
-            
-            # Ignored values: @resource, @unwrap
-            
-            if not key or not value:
-                continue
-            
-            if key == "@name":
-                self.__name = value
-            
-            elif key == "@namespace":
-                self.__namespace = value
-            
-            elif key == "@description":
-                self.__description = value
-            
-            elif key == "@version":
-                self.__version = value
-            
-            elif key == "@updateURL":
-                self.__downloadUrl = QUrl(value)
-            
-            elif key in ["@include", "@match"]:
-                self.__include.append(GreaseMonkeyUrlMatcher(value))
-            
-            elif key in ["@exclude", "@exclude_match"]:
-                self.__exclude.append(GreaseMonkeyUrlMatcher(value))
-            
-            elif key == "@require":
-                requireList.append(value)
-            
-            elif key == "@run-at":
-                if value == "document-end":
-                    self.__startAt = GreaseMonkeyScript.DocumentEnd
-                elif value == "document-start":
-                    self.__startAt = GreaseMonkeyScript.DocumentStart
-            
-            elif key == "@downloadURL" and self.__downloadUrl.isEmpty():
-                self.__downloadUrl = QUrl(value)
-        
-        if not self.__include:
-            self.__include.append(GreaseMonkeyUrlMatcher("*"))
-        
-        marker = "// ==/UserScript=="
-        index = fileData.find(marker) + len(marker)
-        script = fileData[index:].strip()
-        script = "{0}{1}".format(
-            self.__manager.requireScripts(requireList),
-            script)
-        self.__script = "(function(){{{0}}})();".format(script)
-        self.__valid = len(script) > 0
--- a/eric6/Helpviewer/GreaseMonkey/GreaseMonkeyUrlMatcher.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the GreaseMonkey URL matcher.
-"""
-
-from __future__ import unicode_literals
-
-import re
-
-from PyQt5.QtCore import Qt, QRegExp
-
-
-def wildcardMatch(string, pattern):
-    """
-    Module function implementing a special wildcard matcher.
-    
-    @param string string to match (string)
-    @param pattern pattern to be used (string)
-    @return flag indicating a successful match (boolean)
-    """
-    stringSize = len(string)
-    
-    startsWithWildcard = pattern.startswith("*")
-    endsWithWildcard = pattern.endswith("*")
-    
-    parts = pattern.split("*")
-    pos = 0
-    
-    if startsWithWildcard:
-        pos = string.find(parts[1])
-        if pos == -1:
-            return False
-    
-    for part in parts:
-        pos = string.find(part, pos)
-        if pos == -1:
-            return False
-    
-    if not endsWithWildcard and stringSize - pos != len(parts[-1]):
-        return False
-    
-    return True
-
-
-class GreaseMonkeyUrlMatcher(object):
-    """
-    Class implementing the GreaseMonkey URL matcher.
-    """
-    def __init__(self, pattern):
-        """
-        Constructor
-        
-        @param pattern pattern to be used for the matching (string)
-        """
-        self.__pattern = pattern
-        self.__matchString = ""
-        self.__regExp = QRegExp()
-        self.__useRegExp = False
-        
-        self.__parsePattern(self.__pattern)
-    
-    def pattern(self):
-        """
-        Public method to get the match pattern.
-        
-        @return match pattern (string)
-        """
-        return self.__pattern
-    
-    def match(self, urlString):
-        """
-        Public method to match the given URL.
-        
-        @param urlString URL to match (string)
-        @return flag indicating a successful match (boolean)
-        """
-        if self.__useRegExp:
-            return self.__regExp.indexIn(urlString) != -1
-        else:
-            return wildcardMatch(urlString, self.__matchString)
-    
-    def __parsePattern(self, pattern):
-        """
-        Private method to parse the match pattern.
-        
-        @param pattern match pattern to be used (string)
-        """
-        if pattern.startswith("/") and pattern.endswith("/"):
-            pattern = pattern[1:-1]
-            
-            self.__regExp = QRegExp(pattern, Qt.CaseInsensitive)
-            self.__useRegExp = True
-        elif ".tld" in pattern:
-            # escape special symbols
-            pattern = re.sub(r"(\W)", r"\\\1", pattern)
-            # remove multiple wildcards
-            pattern = re.sub(r"\*+", "*", pattern)
-            # process anchor at expression start
-            pattern = re.sub(r"^\\\|", "^", pattern)
-            # process anchor at expression end
-            pattern = re.sub(r"\\\|$", "$", pattern)
-            # replace wildcards by .*
-            pattern = re.sub(r"\\\*", ".*", pattern)
-            # replace domain pattern
-            pattern = re.sub(r"\.tld", r"\.[a-z.]{2,6}")
-            
-            self.__useRegExp = True
-            self.__regExp = QRegExp(pattern, Qt.CaseInsensitive)
-        else:
-            self.__matchString = pattern
--- a/eric6/Helpviewer/GreaseMonkey/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the GreaseMonkey support.
-"""
--- a/eric6/Helpviewer/HelpBrowserWV.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2751 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2008 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-
-"""
-Module implementing the helpbrowser using QWebView.
-"""
-
-from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
-
-import os
-
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, QObject, QT_TRANSLATE_NOOP, \
-    QUrl, QBuffer, QIODevice, QFileInfo, Qt, QTimer, QEvent, \
-    QRect, QFile, QPoint, QByteArray
-from PyQt5.QtGui import QDesktopServices, QClipboard, QMouseEvent, QColor, \
-    QPalette
-from PyQt5.QtWidgets import qApp, QStyle, QMenu, QApplication, QInputDialog, \
-    QLineEdit, QLabel, QToolTip, QFrame, QDialog
-from PyQt5.QtPrintSupport import QPrinter, QPrintDialog
-from PyQt5.QtWebKit import QWebSettings
-from PyQt5.QtWebKitWidgets import QWebView, QWebPage
-try:
-    from PyQt5.QtWebKit import QWebElement
-except ImportError:
-    pass
-from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest
-try:
-    from PyQt5 import sip
-except ImportError:
-    import sip
-
-from E5Gui import E5MessageBox, E5FileDialog
-
-import Helpviewer
-
-import Preferences
-import UI.PixmapCache
-import Globals
-from Globals import qVersionTuple
-import Utilities
-
-try:
-    from PyQt5.QtNetwork import QSslCertificate
-    SSL_AVAILABLE = True
-except ImportError:
-    SSL_AVAILABLE = False
-
-###############################################################################
-
-
-class JavaScriptExternalObject(QObject):
-    """
-    Class implementing an external javascript object to add search providers.
-    """
-    def __init__(self, mw, parent=None):
-        """
-        Constructor
-        
-        @param mw reference to the main window 8HelpWindow)
-        @param parent reference to the parent object (QObject)
-        """
-        super(JavaScriptExternalObject, self).__init__(parent)
-        
-        self.__mw = mw
-    
-    @pyqtSlot(str)
-    def AddSearchProvider(self, url):
-        """
-        Public slot to add a search provider.
-        
-        @param url url of the XML file defining the search provider (string)
-        """
-        self.__mw.openSearchManager().addEngine(QUrl(url))
-
-
-class LinkedResource(object):
-    """
-    Class defining a data structure for linked resources.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        self.rel = ""
-        self.type_ = ""
-        self.href = ""
-        self.title = ""
-
-###############################################################################
-
-
-class JavaScriptEricObject(QObject):
-    """
-    Class implementing an external javascript object to search via the
-    startpage.
-    """
-    # these must be in line with the strings used by the javascript part of
-    # the start page
-    translations = [
-        QT_TRANSLATE_NOOP("JavaScriptEricObject",
-                          "Welcome to eric6 Web Browser!"),
-        QT_TRANSLATE_NOOP("JavaScriptEricObject", "eric6 Web Browser"),
-        QT_TRANSLATE_NOOP("JavaScriptEricObject", "Search!"),
-        QT_TRANSLATE_NOOP("JavaScriptEricObject", "About eric6"),
-    ]
-    
-    def __init__(self, mw, parent=None):
-        """
-        Constructor
-        
-        @param mw reference to the main window 8HelpWindow)
-        @param parent reference to the parent object (QObject)
-        """
-        super(JavaScriptEricObject, self).__init__(parent)
-        
-        self.__mw = mw
-    
-    @pyqtSlot(str, result=str)
-    def translate(self, trans):
-        """
-        Public method to translate the given string.
-        
-        @param trans string to be translated (string)
-        @return translation (string)
-        """
-        if trans == "QT_LAYOUT_DIRECTION":
-            # special handling to detect layout direction
-            if qApp.isLeftToRight():
-                return "LTR"
-            else:
-                return "RTL"
-        
-        return self.tr(trans)
-    
-    @pyqtSlot(result=str)
-    def providerString(self):
-        """
-        Public method to get a string for the search provider.
-        
-        @return string for the search provider (string)
-        """
-        return self.tr("Search results provided by {0}")\
-            .format(self.__mw.openSearchManager().currentEngineName())
-    
-    @pyqtSlot(str, result=str)
-    def searchUrl(self, searchStr):
-        """
-        Public method to get the search URL for the given search term.
-        
-        @param searchStr search term (string)
-        @return search URL (string)
-        """
-        return bytes(
-            self.__mw.openSearchManager().currentEngine()
-            .searchUrl(searchStr).toEncoded()).decode()
-
-###############################################################################
-
-
-class HelpWebPage(QWebPage):
-    """
-    Class implementing an enhanced web page.
-    """
-    _webPluginFactory = None
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent parent widget of this window (QWidget)
-        """
-        super(HelpWebPage, self).__init__(parent)
-        
-        self.setPluginFactory(self.webPluginFactory())
-        
-        self.__lastRequest = None
-        self.__lastRequestType = QWebPage.NavigationTypeOther
-        
-        import Helpviewer.HelpWindow
-        from .Network.NetworkAccessManagerProxy import \
-            NetworkAccessManagerProxy
-        self.__proxy = NetworkAccessManagerProxy(self)
-        self.__proxy.setWebPage(self)
-        self.__proxy.setPrimaryNetworkAccessManager(
-            Helpviewer.HelpWindow.HelpWindow.networkAccessManager())
-        self.setNetworkAccessManager(self.__proxy)
-        
-        self.__sslConfiguration = None
-        self.__proxy.finished.connect(self.__managerFinished)
-        
-        self.__adBlockedEntries = []
-        self.loadStarted.connect(self.__loadStarted)
-        
-        self.saveFrameStateRequested.connect(
-            self.__saveFrameStateRequested)
-        self.restoreFrameStateRequested.connect(
-            self.__restoreFrameStateRequested)
-    
-    def acceptNavigationRequest(self, frame, request, type_):
-        """
-        Public method to determine, if a request may be accepted.
-        
-        @param frame reference to the frame sending the request (QWebFrame)
-        @param request reference to the request object (QNetworkRequest)
-        @param type_ type of the navigation request (QWebPage.NavigationType)
-        @return flag indicating acceptance (boolean)
-        """
-        self.__lastRequest = request
-        if self.__lastRequest.url() != request.url() or \
-           type_ != QWebPage.NavigationTypeOther:
-            self.__lastRequestType = type_
-        
-        scheme = request.url().scheme()
-        if scheme == "mailto":
-            QDesktopServices.openUrl(request.url())
-            return False
-        
-        if type_ == QWebPage.NavigationTypeFormResubmitted:
-            res = E5MessageBox.yesNo(
-                self.view(),
-                self.tr("Resending POST request"),
-                self.tr(
-                    """In order to display the site, the request along with"""
-                    """ all the data must be sent once again, which may lead"""
-                    """ to some unexpected behaviour of the site e.g. the"""
-                    """ same action might be performed once again. Do you"""
-                    """ want to continue anyway?"""),
-                icon=E5MessageBox.Warning)
-            if not res:
-                return False
-        
-        return QWebPage.acceptNavigationRequest(self, frame, request, type_)
-    
-    def populateNetworkRequest(self, request):
-        """
-        Public method to add data to a network request.
-        
-        @param request reference to the network request object
-            (QNetworkRequest)
-        """
-        try:
-            request.setAttribute(QNetworkRequest.User + 100, self)
-            if self.__lastRequest.url() == request.url():
-                request.setAttribute(QNetworkRequest.User + 101,
-                                     self.__lastRequestType)
-                if self.__lastRequestType == \
-                        QWebPage.NavigationTypeLinkClicked:
-                    request.setRawHeader(b"X-Eric6-UserLoadAction",
-                                         QByteArray(b"1"))
-        except TypeError:
-            pass
-    
-    def pageAttributeId(self):
-        """
-        Public method to get the attribute id of the page attribute.
-        
-        @return attribute id of the page attribute (integer)
-        """
-        return QNetworkRequest.User + 100
-    
-    def supportsExtension(self, extension):
-        """
-        Public method to check the support for an extension.
-        
-        @param extension extension to test for (QWebPage.Extension)
-        @return flag indicating the support of extension (boolean)
-        """
-        try:
-            if extension in [QWebPage.ErrorPageExtension,
-                             QWebPage.ChooseMultipleFilesExtension]:
-                return True
-        except AttributeError:
-            pass
-        
-        return QWebPage.supportsExtension(self, extension)
-    
-    def extension(self, extension, option, output):
-        """
-        Public method to implement a specific extension.
-        
-        @param extension extension to be executed (QWebPage.Extension)
-        @param option provides input to the extension
-            (QWebPage.ExtensionOption)
-        @param output stores the output results (QWebPage.ExtensionReturn)
-        @return flag indicating a successful call of the extension (boolean)
-        """
-        if extension == QWebPage.ChooseMultipleFilesExtension:
-            info = sip.cast(option,
-                            QWebPage.ChooseMultipleFilesExtensionOption)
-            files = sip.cast(output,
-                             QWebPage.ChooseMultipleFilesExtensionReturn)
-            if info is None or files is None:
-                return super(HelpWebPage, self).extension(
-                    extension, option, output)
-            
-            suggestedFileName = ""
-            if info.suggestedFileNames:
-                suggestedFileName = info.suggestedFileNames[0]
-            
-            files.fileNames = E5FileDialog.getOpenFileNames(
-                None,
-                self.tr("Select files to upload..."),
-                suggestedFileName)
-            return True
-        
-        if extension == QWebPage.ErrorPageExtension:
-            info = sip.cast(option, QWebPage.ErrorPageExtensionOption)
-            
-            errorPage = sip.cast(output, QWebPage.ErrorPageExtensionReturn)
-            urlString = bytes(info.url.toEncoded()).decode()
-            errorPage.baseUrl = info.url
-            if info.domain == QWebPage.QtNetwork and \
-               info.error == QNetworkReply.ProtocolUnknownError:
-                url = QUrl(info.url)
-                res = E5MessageBox.yesNo(
-                    None,
-                    self.tr("Protocol Error"),
-                    self.tr("""Open external application for {0}-link?\n"""
-                            """URL: {1}""").format(
-                        url.scheme(), url.toString(
-                            QUrl.PrettyDecoded | QUrl.RemovePassword)),
-                    yesDefault=True)
-                
-                if res:
-                    QDesktopServices.openUrl(url)
-                return True
-            elif info.domain == QWebPage.QtNetwork and \
-                info.error == QNetworkReply.ContentAccessDenied and \
-                    info.errorString.startswith("AdBlockRule:"):
-                if info.frame != info.frame.page().mainFrame():
-                    # content in <iframe>
-                    docElement = info.frame.page().mainFrame()\
-                        .documentElement()
-                    for element in docElement.findAll("iframe"):
-                        src = element.attribute("src")
-                        if src in info.url.toString():
-                            element.setAttribute("style", "display:none;")
-                    return False
-                else:
-                    # the whole page is blocked
-                    rule = info.errorString.replace("AdBlockRule:", "")
-                    title = self.tr("Content blocked by AdBlock Plus")
-                    message = self.tr(
-                        "Blocked by rule: <i>{0}</i>").format(rule)
-                    
-                    htmlFile = QFile(":/html/adblockPage.html")
-                    htmlFile.open(QFile.ReadOnly)
-                    html = htmlFile.readAll()
-                    html = html.replace(
-                        "@FAVICON@", "qrc:icons/adBlockPlus16.png")
-                    html = html.replace(
-                        "@IMAGE@", "qrc:icons/adBlockPlus64.png")
-                    html = html.replace("@TITLE@", title.encode("utf8"))
-                    html = html.replace("@MESSAGE@", message.encode("utf8"))
-                    errorPage.content = html
-                    return True
-            
-            if info.domain == QWebPage.QtNetwork and \
-               info.error == QNetworkReply.OperationCanceledError and \
-               info.errorString == "eric6:No Error":
-                return False
-            
-            if info.domain == QWebPage.WebKit and info.error == 203:
-                # "Loading is handled by the media engine"
-                return False
-            
-            title = self.tr("Error loading page: {0}").format(urlString)
-            htmlFile = QFile(":/html/notFoundPage.html")
-            htmlFile.open(QFile.ReadOnly)
-            html = htmlFile.readAll()
-            pixmap = qApp.style()\
-                .standardIcon(QStyle.SP_MessageBoxWarning).pixmap(48, 48)
-            imageBuffer = QBuffer()
-            imageBuffer.open(QIODevice.ReadWrite)
-            if pixmap.save(imageBuffer, "PNG"):
-                html = html.replace("@IMAGE@", imageBuffer.buffer().toBase64())
-            pixmap = qApp.style()\
-                .standardIcon(QStyle.SP_MessageBoxWarning).pixmap(16, 16)
-            imageBuffer = QBuffer()
-            imageBuffer.open(QIODevice.ReadWrite)
-            if pixmap.save(imageBuffer, "PNG"):
-                html = html.replace(
-                    "@FAVICON@", imageBuffer.buffer().toBase64())
-            html = html.replace("@TITLE@", title.encode("utf8"))
-            html = html.replace("@H1@", info.errorString.encode("utf8"))
-            html = html.replace(
-                "@H2@", self.tr("When connecting to: {0}.")
-                .format(urlString).encode("utf8"))
-            html = html.replace(
-                "@LI-1@",
-                self.tr("Check the address for errors such as "
-                        "<b>ww</b>.example.org instead of "
-                        "<b>www</b>.example.org").encode("utf8"))
-            html = html.replace(
-                "@LI-2@",
-                self.tr(
-                    "If the address is correct, try checking the network "
-                    "connection.").encode("utf8"))
-            html = html.replace(
-                "@LI-3@",
-                self.tr(
-                    "If your computer or network is protected by a firewall "
-                    "or proxy, make sure that the browser is permitted to "
-                    "access the network.").encode("utf8"))
-            html = html.replace(
-                "@LI-4@",
-                self.tr("If your cache policy is set to offline browsing,"
-                        "only pages in the local cache are available.")
-                .encode("utf8"))
-            html = html.replace(
-                "@BUTTON@", self.tr("Try Again").encode("utf8"))
-            errorPage.content = html
-            return True
-        
-        return QWebPage.extension(self, extension, option, output)
-    
-    def __loadStarted(self):
-        """
-        Private method to handle the loadStarted signal.
-        """
-        self.__adBlockedEntries = []
-    
-    def addAdBlockRule(self, rule, url):
-        """
-        Public slot to add an AdBlock rule to the page.
-        
-        @param rule AdBlock rule to add (AdBlockRule)
-        @param url URL that matched the rule (QUrl)
-        """
-        from .AdBlock.AdBlockPage import AdBlockedPageEntry
-        entry = AdBlockedPageEntry(rule, url)
-        if entry not in self.__adBlockedEntries:
-            self.__adBlockedEntries.append(entry)
-    
-    def getAdBlockedPageEntries(self):
-        """
-        Public method to get the list of AdBlock page entries.
-        
-        @return list of AdBlock page entries (list of AdBlockedPageEntry)
-        """
-        return self.__adBlockedEntries
-    
-    def url(self):
-        """
-        Public method to get the URL of the page.
-        
-        @return URL of the page (QUrl)
-        """
-        return self.mainFrame().url()
-    
-    def userAgent(self, resolveEmpty=False):
-        """
-        Public method to get the global user agent setting.
-        
-        @param resolveEmpty flag indicating to resolve an empty
-            user agent (boolean)
-        @return user agent string (string)
-        """
-        agent = Preferences.getHelp("UserAgent")
-        if agent == "" and resolveEmpty:
-            agent = self.userAgentForUrl(QUrl())
-        return agent
-    
-    def setUserAgent(self, agent):
-        """
-        Public method to set the global user agent string.
-        
-        @param agent new current user agent string (string)
-        """
-        Preferences.setHelp("UserAgent", agent)
-    
-    def userAgentForUrl(self, url):
-        """
-        Public method to determine the user agent for the given URL.
-        
-        @param url URL to determine user agent for (QUrl)
-        @return user agent string (string)
-        """
-        import Helpviewer.HelpWindow
-        agent = Helpviewer.HelpWindow.HelpWindow.userAgentsManager()\
-            .userAgentForUrl(url)
-        if agent == "":
-            # no agent string specified for the given host -> use global one
-            agent = Preferences.getHelp("UserAgent")
-            if agent == "":
-                # no global agent string specified -> use default one
-                agent = QWebPage.userAgentForUrl(self, url)
-        return agent
-    
-    def __managerFinished(self, reply):
-        """
-        Private slot to handle a finished reply.
-        
-        This slot is used to get SSL related information for a reply.
-        
-        @param reply reference to the finished reply (QNetworkReply)
-        """
-        try:
-            frame = reply.request().originatingObject()
-        except AttributeError:
-            frame = None
-        
-        mainFrameRequest = frame == self.mainFrame()
-        
-        if mainFrameRequest and \
-           self.__sslConfiguration is not None and \
-           reply.url() == self.mainFrame().url():
-            self.__sslConfiguration = None
-        
-        if reply.error() == QNetworkReply.NoError and \
-           mainFrameRequest and \
-           self.__sslConfiguration is None and \
-           reply.url().scheme().lower() == "https" and \
-           reply.url() == self.mainFrame().url():
-            self.__sslConfiguration = reply.sslConfiguration()
-            self.__sslConfiguration.url = QUrl(reply.url())
-        
-        if reply.error() == QNetworkReply.NoError and \
-           mainFrameRequest and \
-           reply.url() == self.mainFrame().url():
-            modified = reply.header(QNetworkRequest.LastModifiedHeader)
-            if modified and modified.isValid():
-                import Helpviewer.HelpWindow
-                manager = Helpviewer.HelpWindow.HelpWindow.bookmarksManager()
-                from .Bookmarks.BookmarkNode import BookmarkNode
-                for bookmark in manager.bookmarksForUrl(reply.url()):
-                    manager.setTimestamp(bookmark, BookmarkNode.TsModified,
-                                         modified)
-    
-    def getSslCertificate(self):
-        """
-        Public method to get a reference to the SSL certificate.
-        
-        @return amended SSL certificate (QSslCertificate)
-        """
-        if self.__sslConfiguration is None:
-            return None
-        
-        sslInfo = self.__sslConfiguration.peerCertificate()
-        sslInfo.url = QUrl(self.__sslConfiguration.url)
-        return sslInfo
-    
-    def getSslCertificateChain(self):
-        """
-        Public method to get a reference to the SSL certificate chain.
-        
-        @return SSL certificate chain (list of QSslCertificate)
-        """
-        if self.__sslConfiguration is None:
-            return []
-        
-        chain = self.__sslConfiguration.peerCertificateChain()
-        return chain
-    
-    def getSslConfiguration(self):
-        """
-        Public method to return a reference to the current SSL configuration.
-        
-        @return reference to the SSL configuration in use (QSslConfiguration)
-        """
-        return self.__sslConfiguration
-    
-    def showSslInfo(self, pos):
-        """
-        Public slot to show some SSL information for the loaded page.
-        
-        @param pos position to show the info at (QPoint)
-        """
-        if SSL_AVAILABLE and self.__sslConfiguration is not None:
-            from E5Network.E5SslInfoWidget import E5SslInfoWidget
-            widget = E5SslInfoWidget(
-                self.mainFrame().url(), self.__sslConfiguration, self.view())
-            widget.showAt(pos)
-        else:
-            E5MessageBox.warning(
-                self.view(),
-                self.tr("SSL Info"),
-                self.tr("""This site does not contain SSL information."""))
-    
-    def hasValidSslInfo(self):
-        """
-        Public method to check, if the page has a valid SSL certificate.
-        
-        @return flag indicating a valid SSL certificate (boolean)
-        """
-        if self.__sslConfiguration is None:
-            return False
-        
-        certList = self.__sslConfiguration.peerCertificateChain()
-        if not certList:
-            return False
-        
-        certificateDict = Globals.toDict(
-            Preferences.Prefs.settings.value("Ssl/CaCertificatesDict"))
-        for server in certificateDict:
-            localCAList = QSslCertificate.fromData(certificateDict[server])
-            for cert in certList:
-                if cert in localCAList:
-                    return True
-        
-        if qVersionTuple() >= (5, 0, 0):
-            for cert in certList:
-                if cert.isBlacklisted():
-                    return False
-        else:
-            for cert in certList:
-                if not cert.isValid():
-                    return False
-        
-        return True
-    
-    @classmethod
-    def webPluginFactory(cls):
-        """
-        Class method to get a reference to the web plug-in factory
-        instance.
-        
-        @return reference to the web plug-in factory instance (WebPluginFactory
-        """
-        if cls._webPluginFactory is None:
-            from .WebPlugins.WebPluginFactory import WebPluginFactory
-            cls._webPluginFactory = WebPluginFactory()
-        
-        return cls._webPluginFactory
-    
-    def event(self, evt):
-        """
-        Public method implementing the event handler.
-        
-        @param evt reference to the event (QEvent)
-        @return flag indicating that the event was handled (boolean)
-        """
-        if evt.type() == QEvent.Leave:
-            # Fake a mouse move event just outside of the widget to trigger
-            # the WebKit event handler's mouseMoved function. This implements
-            # the interesting mouse-out behavior like invalidating scrollbars.
-            fakeEvent = QMouseEvent(QEvent.MouseMove, QPoint(0, -1),
-                                    Qt.NoButton, Qt.NoButton, Qt.NoModifier)
-            return super(HelpWebPage, self).event(fakeEvent)
-        
-        return super(HelpWebPage, self).event(evt)
-    
-    def __saveFrameStateRequested(self, frame, itm):
-        """
-        Private slot to save the page state (i.e. zoom level and scroll
-        position).
-        
-        Note: Code is based on qutebrowser.
-        
-        @param frame frame to be saved
-        @type QWebFrame
-        @param itm web history item to be saved
-        @type QWebHistoryItem
-        """
-        try:
-            if frame != self.mainFrame():
-                return
-        except RuntimeError:
-            # With Qt 5.2.1 (Ubuntu Trusty) we get this when closing a tab:
-            #     RuntimeError: wrapped C/C++ object of type BrowserPage has
-            #     been deleted
-            # Since the information here isn't that important for closing web
-            # views anyways, we ignore this error.
-            return
-        data = {
-            'zoom': frame.zoomFactor(),
-            'scrollPos': frame.scrollPosition(),
-        }
-        itm.setUserData(data)
-    
-    def __restoreFrameStateRequested(self, frame):
-        """
-        Private slot to restore scroll position and zoom level from
-        history.
-        
-        Note: Code is based on qutebrowser.
-        
-        @param frame frame to be restored
-        @type QWebFrame
-        """
-        if frame != self.mainFrame():
-            return
-        
-        data = self.history().currentItem().userData()
-        if data is None:
-            return
-        
-        if 'zoom' in data:
-            frame.page().view().setZoomValue(int(data['zoom'] * 100),
-                                             saveValue=False)
-        
-        if 'scrollPos' in data and frame.scrollPosition() == QPoint(0, 0):
-            frame.setScrollPosition(data['scrollPos'])
-
-###############################################################################
-
-
-class HelpBrowser(QWebView):
-    """
-    Class implementing the helpbrowser widget.
-    
-    This is a subclass of the Qt QWebView to implement an
-    interface compatible with the QTextBrowser based variant.
-    
-    @signal sourceChanged(QUrl) emitted after the current URL has changed
-    @signal forwardAvailable(bool) emitted after the current URL has changed
-    @signal backwardAvailable(bool) emitted after the current URL has changed
-    @signal highlighted(str) emitted, when the mouse hovers over a link
-    @signal search(QUrl) emitted, when a search is requested
-    @signal zoomValueChanged(int) emitted to signal a change of the zoom value
-    """
-    sourceChanged = pyqtSignal(QUrl)
-    forwardAvailable = pyqtSignal(bool)
-    backwardAvailable = pyqtSignal(bool)
-    highlighted = pyqtSignal(str)
-    search = pyqtSignal(QUrl)
-    zoomValueChanged = pyqtSignal(int)
-    
-    ZoomLevels = [
-        30, 50, 67, 80, 90,
-        100,
-        110, 120, 133, 150, 170, 200, 240, 300,
-    ]
-    ZoomLevelDefault = 100
-    
-    def __init__(self, mainWindow, parent=None, name=""):
-        """
-        Constructor
-        
-        @param mainWindow reference to the main window (HelpWindow)
-        @param parent parent widget of this window (QWidget)
-        @param name name of this window (string)
-        """
-        super(HelpBrowser, self).__init__(parent)
-        self.setObjectName(name)
-        self.setWhatsThis(self.tr(
-            """<b>Help Window</b>"""
-            """<p>This window displays the selected help information.</p>"""
-        ))
-        
-        import Helpviewer.HelpWindow
-        self.__speedDial = Helpviewer.HelpWindow.HelpWindow.speedDial()
-        
-        self.__page = HelpWebPage(self)
-        self.setPage(self.__page)
-        
-        self.mw = mainWindow
-        self.ctrlPressed = False
-        self.__isLoading = False
-        self.__progress = 0
-        
-        self.__currentZoom = 100
-        self.__zoomLevels = HelpBrowser.ZoomLevels[:]
-        
-        self.__javaScriptBinding = None
-        self.__javaScriptEricObject = None
-        
-        self.mw.zoomTextOnlyChanged.connect(self.__applyZoom)
-        
-        self.page().setLinkDelegationPolicy(QWebPage.DelegateAllLinks)
-        self.linkClicked.connect(self.setSource)
-        
-        self.urlChanged.connect(self.__urlChanged)
-        self.statusBarMessage.connect(self.__statusBarMessage)
-        self.page().linkHovered.connect(self.__linkHovered)
-        
-        self.loadStarted.connect(self.__loadStarted)
-        self.loadProgress.connect(self.__loadProgress)
-        self.loadFinished.connect(self.__loadFinished)
-        
-        self.page().setForwardUnsupportedContent(True)
-        self.page().unsupportedContent.connect(self.__unsupportedContent)
-        
-        self.page().featurePermissionRequested.connect(
-            self.__featurePermissionRequested)
-        
-        self.page().downloadRequested.connect(self.__downloadRequested)
-        self.page().frameCreated.connect(self.__addExternalBinding)
-        self.__addExternalBinding(self.page().mainFrame())
-        
-        self.page().databaseQuotaExceeded.connect(self.__databaseQuotaExceeded)
-        
-        self.mw.openSearchManager().currentEngineChanged.connect(
-            self.__currentEngineChanged)
-        
-        self.setAcceptDrops(True)
-        
-        self.__enableAccessKeys = Preferences.getHelp("AccessKeysEnabled")
-        self.__accessKeysPressed = False
-        self.__accessKeyLabels = []
-        self.__accessKeyNodes = {}
-        
-        self.page().loadStarted.connect(self.__hideAccessKeys)
-        self.page().scrollRequested.connect(self.__hideAccessKeys)
-        
-        self.__rss = []
-        
-        self.__clickedFrame = None
-        
-        self.mw.personalInformationManager().connectPage(self.page())
-        self.mw.greaseMonkeyManager().connectPage(self.page())
-        
-        self.__inspector = None
-        
-        self.grabGesture(Qt.PinchGesture)
-    
-    def __addExternalBinding(self, frame=None):
-        """
-        Private slot to add javascript bindings for adding search providers.
-        
-        @param frame reference to the web frame
-        @type QWebFrame
-        """
-        self.page().settings().setAttribute(QWebSettings.JavascriptEnabled,
-                                            True)
-        if self.__javaScriptBinding is None:
-            self.__javaScriptBinding = JavaScriptExternalObject(self.mw, self)
-        
-        if frame is None:
-            frame = self.sender()
-            # called from QWebFrame.javaScriptWindowObjectCleared
-            if isinstance(frame, HelpWebPage):
-                frame = frame.mainFrame()
-            if frame.url().scheme() == "eric" and frame.url().path() == "home":
-                if self.__javaScriptEricObject is None:
-                    self.__javaScriptEricObject = JavaScriptEricObject(
-                        self.mw, self)
-                frame.addToJavaScriptWindowObject(
-                    "eric", self.__javaScriptEricObject)
-            elif frame.url().scheme() == "eric" and \
-                    frame.url().path() == "speeddial":
-                frame.addToJavaScriptWindowObject(
-                    "speeddial", self.__speedDial)
-                self.__speedDial.addWebFrame(frame)
-        else:
-            # called from QWebPage.frameCreated
-            frame.javaScriptWindowObjectCleared.connect(
-                self.__addExternalBinding)
-        frame.addToJavaScriptWindowObject("external", self.__javaScriptBinding)
-    
-    def linkedResources(self, relation=""):
-        """
-        Public method to extract linked resources.
-        
-        @param relation relation to extract (string)
-        @return list of linked resources (list of LinkedResource)
-        """
-        resources = []
-        
-        baseUrl = self.page().mainFrame().baseUrl()
-        
-        linkElements = self.page().mainFrame().findAllElements(
-            "html > head > link")
-        
-        for linkElement in linkElements.toList():
-            rel = linkElement.attribute("rel")
-            href = linkElement.attribute("href")
-            type_ = linkElement.attribute("type")
-            title = linkElement.attribute("title")
-            
-            if href == "" or type_ == "":
-                continue
-            if relation and rel != relation:
-                continue
-            
-            resource = LinkedResource()
-            resource.rel = rel
-            resource.type_ = type_
-            resource.href = baseUrl.resolved(
-                QUrl.fromEncoded(href.encode("utf-8")))
-            resource.title = title
-            
-            resources.append(resource)
-        
-        return resources
-    
-    def __currentEngineChanged(self):
-        """
-        Private slot to track a change of the current search engine.
-        """
-        if self.url().toString() == "eric:home":
-            self.reload()
-    
-    def setSource(self, name, requestData=None):
-        """
-        Public method used to set the source to be displayed.
-        
-        @param name filename to be shown (QUrl)
-        @param requestData tuple containing the request data (QNetworkRequest,
-            QNetworkAccessManager.Operation, QByteArray)
-        """
-        if (name is None or not name.isValid()) and requestData is None:
-            return
-        
-        if name is None and requestData is not None:
-            name = requestData[0].url()
-        
-        if self.ctrlPressed:
-            # open in a new window
-            self.mw.newTab(name)
-            self.ctrlPressed = False
-            return
-        
-        if not name.scheme():
-            if not os.path.exists(name.toString()):
-                name.setScheme(Preferences.getWebBrowser("DefaultScheme"))
-            else:
-                if Utilities.isWindowsPlatform():
-                    name.setUrl("file:///" + Utilities.fromNativeSeparators(
-                        name.toString()))
-                else:
-                    name.setUrl("file://" + name.toString())
-        
-        if len(name.scheme()) == 1 or \
-           name.scheme() == "file":
-            # name is a local file
-            if name.scheme() and len(name.scheme()) == 1:
-                # it is a local path on win os
-                name = QUrl.fromLocalFile(name.toString())
-            
-            if not QFileInfo(name.toLocalFile()).exists():
-                E5MessageBox.critical(
-                    self,
-                    self.tr("eric6 Web Browser"),
-                    self.tr(
-                        """<p>The file <b>{0}</b> does not exist.</p>""")
-                    .format(name.toLocalFile()))
-                return
-
-            if name.toLocalFile().endswith(".pdf") or \
-               name.toLocalFile().endswith(".PDF") or \
-               name.toLocalFile().endswith(".chm") or \
-               name.toLocalFile().endswith(".CHM"):
-                started = QDesktopServices.openUrl(name)
-                if not started:
-                    E5MessageBox.critical(
-                        self,
-                        self.tr("eric6 Web Browser"),
-                        self.tr(
-                            """<p>Could not start a viewer"""
-                            """ for file <b>{0}</b>.</p>""")
-                        .format(name.path()))
-                return
-        elif name.scheme() in ["mailto"]:
-            started = QDesktopServices.openUrl(name)
-            if not started:
-                E5MessageBox.critical(
-                    self,
-                    self.tr("eric6 Web Browser"),
-                    self.tr(
-                        """<p>Could not start an application"""
-                        """ for URL <b>{0}</b>.</p>""")
-                    .format(name.toString()))
-            return
-        elif name.scheme() == "javascript":
-            scriptSource = QUrl.fromPercentEncoding(name.toString(
-                QUrl.FormattingOptions(QUrl.TolerantMode | QUrl.RemoveScheme)))
-            self.page().mainFrame().evaluateJavaScript(scriptSource)
-            return
-        else:
-            if name.toString().endswith(".pdf") or \
-               name.toString().endswith(".PDF") or \
-               name.toString().endswith(".chm") or \
-               name.toString().endswith(".CHM"):
-                started = QDesktopServices.openUrl(name)
-                if not started:
-                    E5MessageBox.critical(
-                        self,
-                        self.tr("eric6 Web Browser"),
-                        self.tr(
-                            """<p>Could not start a viewer"""
-                            """ for file <b>{0}</b>.</p>""")
-                        .format(name.path()))
-                return
-        
-        if requestData is not None:
-            self.load(*requestData)
-        else:
-            self.load(name)
-
-    def source(self):
-        """
-        Public method to return the URL of the loaded page.
-        
-        @return URL loaded in the help browser (QUrl)
-        """
-        return self.url()
-    
-    def documentTitle(self):
-        """
-        Public method to return the title of the loaded page.
-        
-        @return title (string)
-        """
-        return self.title()
-    
-    def backward(self):
-        """
-        Public slot to move backwards in history.
-        """
-        self.triggerPageAction(QWebPage.Back)
-        self.__urlChanged(self.history().currentItem().url())
-    
-    def forward(self):
-        """
-        Public slot to move forward in history.
-        """
-        self.triggerPageAction(QWebPage.Forward)
-        self.__urlChanged(self.history().currentItem().url())
-    
-    def home(self):
-        """
-        Public slot to move to the first page loaded.
-        """
-        homeUrl = QUrl(Preferences.getHelp("HomePage"))
-        self.setSource(homeUrl)
-        self.__urlChanged(self.history().currentItem().url())
-    
-    def reload(self):
-        """
-        Public slot to reload the current page.
-        """
-        self.triggerPageAction(QWebPage.Reload)
-    
-    def copy(self):
-        """
-        Public slot to copy the selected text.
-        """
-        self.triggerPageAction(QWebPage.Copy)
-    
-    def isForwardAvailable(self):
-        """
-        Public method to determine, if a forward move in history is possible.
-        
-        @return flag indicating move forward is possible (boolean)
-        """
-        return self.history().canGoForward()
-    
-    def isBackwardAvailable(self):
-        """
-        Public method to determine, if a backwards move in history is possible.
-        
-        @return flag indicating move backwards is possible (boolean)
-        """
-        return self.history().canGoBack()
-    
-    def __levelForZoom(self, zoom):
-        """
-        Private method determining the zoom level index given a zoom factor.
-        
-        @param zoom zoom factor (integer)
-        @return index of zoom factor (integer)
-        """
-        try:
-            index = self.__zoomLevels.index(zoom)
-        except ValueError:
-            for index in range(len(self.__zoomLevels)):
-                if zoom <= self.__zoomLevels[index]:
-                    break
-        return index
-    
-    def __applyZoom(self):
-        """
-        Private slot to apply the current zoom factor.
-        """
-        self.setZoomValue(self.__currentZoom)
-    
-    def setZoomValue(self, value, saveValue=True):
-        """
-        Public method to set the zoom value.
-        
-        @param value zoom value (integer)
-        @keyparam saveValue flag indicating to save the zoom value with the
-            zoom manager
-        @type bool
-        """
-        if value != self.zoomValue():
-            try:
-                self.setZoomFactor(value / 100.0)
-            except AttributeError:
-                self.setTextSizeMultiplier(value / 100.0)
-            self.__currentZoom = value
-            if saveValue:
-                Helpviewer.HelpWindow.HelpWindow.zoomManager().setZoomValue(
-                    self.url(), value)
-            self.zoomValueChanged.emit(value)
-    
-    def zoomValue(self):
-        """
-        Public method to get the current zoom value.
-        
-        @return zoom value (integer)
-        """
-        try:
-            val = self.zoomFactor() * 100
-        except AttributeError:
-            val = self.textSizeMultiplier() * 100
-        return int(val)
-    
-    def zoomIn(self):
-        """
-        Public slot to zoom into the page.
-        """
-        index = self.__levelForZoom(self.__currentZoom)
-        if index < len(self.__zoomLevels) - 1:
-            self.__currentZoom = self.__zoomLevels[index + 1]
-        self.__applyZoom()
-    
-    def zoomOut(self):
-        """
-        Public slot to zoom out of the page.
-        """
-        index = self.__levelForZoom(self.__currentZoom)
-        if index > 0:
-            self.__currentZoom = self.__zoomLevels[index - 1]
-        self.__applyZoom()
-    
-    def zoomReset(self):
-        """
-        Public method to reset the zoom factor.
-        """
-        index = self.__levelForZoom(HelpBrowser.ZoomLevelDefault)
-        self.__currentZoom = self.__zoomLevels[index]
-        self.__applyZoom()
-    
-    def hasSelection(self):
-        """
-        Public method to determine, if there is some text selected.
-        
-        @return flag indicating text has been selected (boolean)
-        """
-        return self.selectedText() != ""
-    
-    def findNextPrev(self, txt, case, backwards, wrap, highlightAll):
-        """
-        Public slot to find the next occurrence of a text.
-        
-        @param txt text to search for (string)
-        @param case flag indicating a case sensitive search (boolean)
-        @param backwards flag indicating a backwards search (boolean)
-        @param wrap flag indicating to wrap around (boolean)
-        @param highlightAll flag indicating to highlight all occurrences
-            (boolean)
-        @return flag indicating that a match was found (boolean)
-        """
-        findFlags = QWebPage.FindFlags()
-        if case:
-            findFlags |= QWebPage.FindCaseSensitively
-        if backwards:
-            findFlags |= QWebPage.FindBackward
-        if wrap:
-            findFlags |= QWebPage.FindWrapsAroundDocument
-        try:
-            if highlightAll:
-                findFlags |= QWebPage.HighlightAllOccurrences
-        except AttributeError:
-            pass
-        
-        return self.findText(txt, findFlags)
-    
-    def __isMediaElement(self, element):
-        """
-        Private method to check, if the given element is a media element.
-        
-        @param element element to be checked (QWebElement)
-        @return flag indicating a media element (boolean)
-        """
-        return element.tagName().lower() in ["video", "audio"]
-    
-    def contextMenuEvent(self, evt):
-        """
-        Protected method called to create a context menu.
-        
-        This method is overridden from QWebView.
-        
-        @param evt reference to the context menu event object
-            (QContextMenuEvent)
-        """
-        from .UserAgent.UserAgentMenu import UserAgentMenu
-        menu = QMenu(self)
-        
-        if self.url().toString() == "eric:speeddial":
-            # special menu for the spedd dial page
-            menu.addAction(self.mw.newTabAct)
-            menu.addAction(self.mw.newAct)
-            menu.addSeparator()
-            menu.addAction(self.mw.backAct)
-            menu.addAction(self.mw.forwardAct)
-            menu.addSeparator()
-            menu.addAction(
-                UI.PixmapCache.getIcon("plus.png"),
-                self.tr("Add New Page"), self.__addSpeedDial)
-            menu.addAction(
-                UI.PixmapCache.getIcon("preferences-general.png"),
-                self.tr("Configure Speed Dial"), self.__configureSpeedDial)
-            menu.addSeparator()
-            menu.addAction(
-                UI.PixmapCache.getIcon("reload.png"),
-                self.tr("Reload All Dials"), self.__reloadAllSpeedDials)
-            menu.addSeparator()
-            menu.addAction(
-                self.tr("Reset to Default Dials"), self.__resetSpeedDials)
-            
-            menu.exec_(evt.globalPos())
-            return
-        
-        frameAtPos = self.page().frameAt(evt.pos())
-        hit = self.page().mainFrame().hitTestContent(evt.pos())
-        if not hit.linkUrl().isEmpty():
-            act = menu.addAction(
-                UI.PixmapCache.getIcon("openNewTab.png"),
-                self.tr("Open Link in New Tab\tCtrl+LMB"))
-            act.setData(hit.linkUrl())
-            act.triggered.connect(
-                lambda: self.__openLinkInNewTab(act))
-            menu.addSeparator()
-            menu.addAction(
-                UI.PixmapCache.getIcon("download.png"),
-                self.tr("Save Lin&k"), self.__downloadLink)
-            act = menu.addAction(
-                UI.PixmapCache.getIcon("bookmark22.png"),
-                self.tr("Bookmark this Link"))
-            act.setData(hit.linkUrl())
-            act.triggered.connect(
-                lambda: self.__bookmarkLink(act))
-            menu.addSeparator()
-            menu.addAction(
-                UI.PixmapCache.getIcon("editCopy.png"),
-                self.tr("Copy Link to Clipboard"), self.__copyLink)
-            act = menu.addAction(
-                UI.PixmapCache.getIcon("mailSend.png"),
-                self.tr("Send Link"))
-            act.setData(hit.linkUrl())
-            act.triggered.connect(
-                lambda: self.__sendLink(act))
-            if Preferences.getHelp("VirusTotalEnabled") and \
-               Preferences.getHelp("VirusTotalServiceKey") != "":
-                act = menu.addAction(
-                    UI.PixmapCache.getIcon("virustotal.png"),
-                    self.tr("Scan Link with VirusTotal"))
-                act.setData(hit.linkUrl())
-                act.triggered.connect(
-                    lambda: self.__virusTotal(act))
-        
-        if not hit.imageUrl().isEmpty():
-            if not menu.isEmpty():
-                menu.addSeparator()
-            act = menu.addAction(
-                UI.PixmapCache.getIcon("openNewTab.png"),
-                self.tr("Open Image in New Tab"))
-            act.setData(hit.imageUrl())
-            act.triggered.connect(
-                lambda: self.__openLinkInNewTab(act))
-            menu.addSeparator()
-            menu.addAction(
-                UI.PixmapCache.getIcon("download.png"),
-                self.tr("Save Image"), self.__downloadImage)
-            menu.addAction(
-                self.tr("Copy Image to Clipboard"), self.__copyImage)
-            act = menu.addAction(
-                UI.PixmapCache.getIcon("editCopy.png"),
-                self.tr("Copy Image Location to Clipboard"))
-            act.setData(hit.imageUrl().toString())
-            act.triggered.connect(
-                lambda: self.__copyLocation(act))
-            act = menu.addAction(
-                UI.PixmapCache.getIcon("mailSend.png"),
-                self.tr("Send Image Link"))
-            act.setData(hit.imageUrl())
-            act.triggered.connect(
-                lambda: self.__sendLink(act))
-            menu.addSeparator()
-            act = menu.addAction(
-                UI.PixmapCache.getIcon("adBlockPlus.png"),
-                self.tr("Block Image"))
-            act.setData(hit.imageUrl().toString())
-            act.triggered.connect(
-                lambda: self.__blockImage(act))
-            if Preferences.getHelp("VirusTotalEnabled") and \
-               Preferences.getHelp("VirusTotalServiceKey") != "":
-                act = menu.addAction(
-                    UI.PixmapCache.getIcon("virustotal.png"),
-                    self.tr("Scan Image with VirusTotal"))
-                act.setData(hit.imageUrl())
-                act.triggered.connect(
-                    lambda: self.__virusTotal(act))
-        
-        element = hit.element()
-        if not element.isNull():
-            if self.__isMediaElement(element):
-                if not menu.isEmpty():
-                    menu.addSeparator()
-                
-                self.__clickedMediaElement = element
-                
-                paused = element.evaluateJavaScript("this.paused")
-                muted = element.evaluateJavaScript("this.muted")
-                videoUrl = QUrl(element.evaluateJavaScript("this.currentSrc"))
-                
-                if paused:
-                    menu.addAction(
-                        UI.PixmapCache.getIcon("mediaPlaybackStart.png"),
-                        self.tr("Play"), self.__pauseMedia)
-                else:
-                    menu.addAction(
-                        UI.PixmapCache.getIcon("mediaPlaybackPause.png"),
-                        self.tr("Pause"), self.__pauseMedia)
-                if muted:
-                    menu.addAction(
-                        UI.PixmapCache.getIcon("audioVolumeHigh.png"),
-                        self.tr("Unmute"), self.__muteMedia)
-                else:
-                    menu.addAction(
-                        UI.PixmapCache.getIcon("audioVolumeMuted.png"),
-                        self.tr("Mute"), self.__muteMedia)
-                menu.addSeparator()
-                act = menu.addAction(
-                    UI.PixmapCache.getIcon("editCopy.png"),
-                    self.tr("Copy Media Address to Clipboard"))
-                act.setData(videoUrl.toString())
-                act.triggered.connect(
-                    lambda: self.__copyLocation(act))
-                act = menu.addAction(
-                    UI.PixmapCache.getIcon("mailSend.png"),
-                    self.tr("Send Media Address"))
-                act.setData(videoUrl)
-                act.triggered.connect(
-                    lambda: self.__sendLink(act))
-                act = menu.addAction(
-                    UI.PixmapCache.getIcon("download.png"),
-                    self.tr("Save Media"))
-                act.setData(videoUrl)
-                act.triggered.connect(
-                    lambda: self.__downloadMedia(act))
-            
-            if element.tagName().lower() in ["input", "textarea"]:
-                if menu.isEmpty():
-                    pageMenu = self.page().createStandardContextMenu()
-                    directionFound = False
-                    # used to detect double direction entry
-                    for act in pageMenu.actions():
-                        if act.isSeparator():
-                            menu.addSeparator()
-                            continue
-                        if act.menu():
-                            if self.pageAction(
-                                    QWebPage.SetTextDirectionDefault) in \
-                                    act.menu().actions():
-                                if directionFound:
-                                    act.setVisible(False)
-                                directionFound = True
-                            elif self.pageAction(QWebPage.ToggleBold) in \
-                                    act.menu().actions():
-                                act.setVisible(False)
-                        elif act == self.pageAction(QWebPage.InspectElement):
-                            # we have our own inspect entry
-                            act.setVisible(False)
-                        menu.addAction(act)
-                    pageMenu = None
-        
-        if not menu.isEmpty():
-            menu.addSeparator()
-        
-        self.mw.personalInformationManager().createSubMenu(menu, self, hit)
-        
-        menu.addAction(self.mw.newTabAct)
-        menu.addAction(self.mw.newAct)
-        menu.addSeparator()
-        menu.addAction(self.mw.saveAsAct)
-        menu.addSeparator()
-        
-        if frameAtPos and self.page().mainFrame() != frameAtPos:
-            self.__clickedFrame = frameAtPos
-            fmenu = QMenu(self.tr("This Frame"))
-            frameUrl = self.__clickedFrame.url()
-            if frameUrl.isValid():
-                fmenu.addAction(
-                    self.tr("Show &only this frame"),
-                    self.__loadClickedFrame)
-                act = fmenu.addAction(
-                    UI.PixmapCache.getIcon("openNewTab.png"),
-                    self.tr("Show in new &tab"))
-                act.setData(self.__clickedFrame.url())
-                act.triggered.connect(
-                    lambda: self.__openLinkInNewTab(act))
-                fmenu.addSeparator()
-            fmenu.addAction(
-                UI.PixmapCache.getIcon("print.png"),
-                self.tr("&Print"), self.__printClickedFrame)
-            fmenu.addAction(
-                UI.PixmapCache.getIcon("printPreview.png"),
-                self.tr("Print Preview"), self.__printPreviewClickedFrame)
-            fmenu.addAction(
-                UI.PixmapCache.getIcon("printPdf.png"),
-                self.tr("Print as PDF"), self.__printPdfClickedFrame)
-            fmenu.addSeparator()
-            fmenu.addAction(
-                UI.PixmapCache.getIcon("zoomIn.png"),
-                self.tr("Zoom &in"), self.__zoomInClickedFrame)
-            fmenu.addAction(
-                UI.PixmapCache.getIcon("zoomReset.png"),
-                self.tr("Zoom &reset"), self.__zoomResetClickedFrame)
-            fmenu.addAction(
-                UI.PixmapCache.getIcon("zoomOut.png"),
-                self.tr("Zoom &out"), self.__zoomOutClickedFrame)
-            fmenu.addSeparator()
-            fmenu.addAction(
-                self.tr("Show frame so&urce"),
-                self.__showClickedFrameSource)
-            
-            menu.addMenu(fmenu)
-            menu.addSeparator()
-        
-        menu.addAction(
-            UI.PixmapCache.getIcon("bookmark22.png"),
-            self.tr("Bookmark this Page"), self.addBookmark)
-        act = menu.addAction(
-            UI.PixmapCache.getIcon("mailSend.png"),
-            self.tr("Send Page Link"))
-        act.setData(self.url())
-        act.triggered.connect(
-            lambda: self.__sendLink(act))
-        menu.addSeparator()
-        self.__userAgentMenu = UserAgentMenu(self.tr("User Agent"),
-                                             url=self.url())
-        menu.addMenu(self.__userAgentMenu)
-        menu.addSeparator()
-        menu.addAction(self.mw.backAct)
-        menu.addAction(self.mw.forwardAct)
-        menu.addAction(self.mw.homeAct)
-        menu.addSeparator()
-        menu.addAction(self.mw.zoomInAct)
-        menu.addAction(self.mw.zoomResetAct)
-        menu.addAction(self.mw.zoomOutAct)
-        menu.addSeparator()
-        if self.selectedText():
-            menu.addAction(self.mw.copyAct)
-            act = menu.addAction(
-                UI.PixmapCache.getIcon("mailSend.png"),
-                self.tr("Send Text"))
-            act.setData(self.selectedText())
-            act.triggered.connect(
-                lambda: self.__sendLink(act))
-        menu.addAction(self.mw.findAct)
-        menu.addSeparator()
-        if self.selectedText():
-            self.__searchMenu = menu.addMenu(self.tr("Search with..."))
-            
-            from .OpenSearch.OpenSearchEngineAction import \
-                OpenSearchEngineAction
-            engineNames = self.mw.openSearchManager().allEnginesNames()
-            for engineName in engineNames:
-                engine = self.mw.openSearchManager().engine(engineName)
-                act = OpenSearchEngineAction(engine, self.__searchMenu)
-                act.setData(engineName)
-                self.__searchMenu.addAction(act)
-            self.__searchMenu.triggered.connect(self.__searchRequested)
-            
-            menu.addSeparator()
-            
-            from .HelpLanguagesDialog import HelpLanguagesDialog
-            languages = Preferences.toList(
-                Preferences.Prefs.settings.value(
-                    "Help/AcceptLanguages",
-                    HelpLanguagesDialog.defaultAcceptLanguages()))
-            if languages:
-                language = languages[0]
-                langCode = language.split("[")[1][:2]
-                googleTranslatorUrl = QUrl(
-                    "http://translate.google.com/#auto|{0}|{1}".format(
-                        langCode, self.selectedText()))
-                act = menu.addAction(
-                    UI.PixmapCache.getIcon("translate.png"),
-                    self.tr("Google Translate"))
-                act.setData(googleTranslatorUrl)
-                act.triggered.connect(
-                    lambda: self.__openLinkInNewTab(act))
-                wiktionaryUrl = QUrl(
-                    "http://{0}.wiktionary.org/wiki/Special:Search?search={1}"
-                    .format(langCode, self.selectedText()))
-                act = menu.addAction(
-                    UI.PixmapCache.getIcon("wikipedia.png"),
-                    self.tr("Dictionary"))
-                act.setData(wiktionaryUrl)
-                act.triggered.connect(
-                    lambda: self.__openLinkInNewTab(act))
-                menu.addSeparator()
-            
-            guessedUrl = QUrl.fromUserInput(self.selectedText().strip())
-            if self.__isUrlValid(guessedUrl):
-                act = menu.addAction(self.tr("Go to web address"))
-                act.setData(guessedUrl)
-                act.triggered.connect(
-                    lambda: self.__openLinkInNewTab(act))
-                menu.addSeparator()
-        
-        element = hit.element()
-        if not element.isNull() and \
-           element.tagName().lower() == "input" and \
-           element.attribute("type", "text") == "text":
-            act = menu.addAction(
-                self.tr("Add to web search toolbar"))
-            act.setData(element)
-            act.triggered.connect(
-                lambda: self.__addSearchEngine(act))
-            menu.addSeparator()
-        
-        menu.addAction(
-            UI.PixmapCache.getIcon("webInspector.png"),
-            self.tr("Web Inspector..."), self.__webInspector)
-        
-        menu.exec_(evt.globalPos())
-    
-    def __isUrlValid(self, url):
-        """
-        Private method to check a URL for validity.
-        
-        @param url URL to be checked (QUrl)
-        @return flag indicating a valid URL (boolean)
-        """
-        return url.isValid() and \
-            bool(url.host()) and \
-            bool(url.scheme()) and \
-            "." in url.host()
-    
-    def __openLinkInNewTab(self, act):
-        """
-        Private method called by the context menu to open a link in a new
-        window.
-        
-        @param act reference to the action that triggered
-        @type QAction
-        """
-        url = act.data()
-        if url.isEmpty():
-            return
-        
-        self.ctrlPressed = True
-        self.setSource(url)
-        self.ctrlPressed = False
-    
-    def __bookmarkLink(self, act):
-        """
-        Private slot to bookmark a link via the context menu.
-        
-        @param act reference to the action that triggered
-        @type QAction
-        """
-        url = act.data()
-        if url.isEmpty():
-            return
-        
-        from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog
-        dlg = AddBookmarkDialog()
-        dlg.setUrl(bytes(url.toEncoded()).decode())
-        dlg.exec_()
-    
-    def __sendLink(self, act):
-        """
-        Private slot to send a link via email.
-        
-        @param act reference to the action that triggered
-        @type QAction
-        """
-        data = act.data()
-        if isinstance(data, QUrl) and data.isEmpty():
-            return
-        
-        if isinstance(data, QUrl):
-            data = data.toString()
-        QDesktopServices.openUrl(QUrl("mailto:?body=" + data))
-    
-    def __downloadLink(self):
-        """
-        Private slot to download a link and save it to disk.
-        """
-        self.pageAction(QWebPage.DownloadLinkToDisk).trigger()
-    
-    def __copyLink(self):
-        """
-        Private slot to copy a link to the clipboard.
-        """
-        self.pageAction(QWebPage.CopyLinkToClipboard).trigger()
-    
-    def __downloadImage(self):
-        """
-        Private slot to download an image and save it to disk.
-        """
-        self.pageAction(QWebPage.DownloadImageToDisk).trigger()
-    
-    def __copyImage(self):
-        """
-        Private slot to copy an image to the clipboard.
-        """
-        self.pageAction(QWebPage.CopyImageToClipboard).trigger()
-    
-    def __copyLocation(self, act):
-        """
-        Private slot to copy an image or media location to the clipboard.
-        
-        @param act reference to the action that triggered
-        @type QAction
-        """
-        url = act.data()
-        QApplication.clipboard().setText(url)
-    
-    def __blockImage(self, act):
-        """
-        Private slot to add a block rule for an image URL.
-        
-        @param act reference to the action that triggered
-        @type QAction
-        """
-        import Helpviewer.HelpWindow
-        url = act.data()
-        dlg = Helpviewer.HelpWindow.HelpWindow.adBlockManager().showDialog()
-        dlg.addCustomRule(url)
-    
-    def __downloadMedia(self, act):
-        """
-        Private slot to download a media and save it to disk.
-        
-        @param act reference to the action that triggered
-        @type QAction
-        """
-        url = act.data()
-        self.mw.downloadManager().download(url, True, mainWindow=self.mw)
-    
-    def __pauseMedia(self):
-        """
-        Private slot to pause or play the selected media.
-        """
-        paused = self.__clickedMediaElement.evaluateJavaScript("this.paused")
-        
-        if paused:
-            self.__clickedMediaElement.evaluateJavaScript("this.play()")
-        else:
-            self.__clickedMediaElement.evaluateJavaScript("this.pause()")
-    
-    def __muteMedia(self):
-        """
-        Private slot to (un)mute the selected media.
-        """
-        muted = self.__clickedMediaElement.evaluateJavaScript("this.muted")
-        
-        if muted:
-            self.__clickedMediaElement.evaluateJavaScript("this.muted = false")
-        else:
-            self.__clickedMediaElement.evaluateJavaScript("this.muted = true")
-    
-    def __virusTotal(self, act):
-        """
-        Private slot to scan the selected URL with VirusTotal.
-        
-        @param act reference to the action that triggered
-        @type QAction
-        """
-        url = act.data()
-        self.mw.requestVirusTotalScan(url)
-    
-    def __searchRequested(self, act):
-        """
-        Private slot to search for some text with a selected search engine.
-        
-        @param act reference to the action that triggered this slot (QAction)
-        """
-        searchText = self.selectedText()
-        
-        if not searchText:
-            return
-        
-        engineName = act.data()
-        if engineName:
-            engine = self.mw.openSearchManager().engine(engineName)
-            self.search.emit(engine.searchUrl(searchText))
-    
-    def __addSearchEngine(self, act):
-        """
-        Private slot to add a new search engine.
-        
-        @param act reference to the action that triggered
-        @type QAction
-        """
-        element = act.data()
-        elementName = element.attribute("name")
-        formElement = QWebElement(element)
-        while formElement.tagName().lower() != "form":
-            formElement = formElement.parent()
-        
-        if formElement.isNull() or \
-           formElement.attribute("action") == "":
-            return
-        
-        method = formElement.attribute("method", "get").lower()
-        if method != "get":
-            E5MessageBox.warning(
-                self,
-                self.tr("Method not supported"),
-                self.tr(
-                    """{0} method is not supported.""").format(method.upper()))
-            return
-        
-        searchUrl = QUrl(self.page().mainFrame().baseUrl().resolved(
-            QUrl(formElement.attribute("action"))))
-        
-        if qVersionTuple() >= (5, 0, 0):
-            from PyQt5.QtCore import QUrlQuery
-            searchUrlQuery = QUrlQuery(searchUrl)
-        searchEngines = {}
-        inputFields = formElement.findAll("input")
-        for inputField in inputFields.toList():
-            type_ = inputField.attribute("type", "text")
-            name = inputField.attribute("name")
-            value = inputField.evaluateJavaScript("this.value")
-            
-            if type_ == "submit":
-                searchEngines[value] = name
-            elif type_ == "text":
-                if inputField == element:
-                    value = "{searchTerms}"
-                if qVersionTuple() >= (5, 0, 0):
-                    searchUrlQuery.addQueryItem(name, value)
-                else:
-                    searchUrl.addQueryItem(name, value)
-            elif type_ == "checkbox" or type_ == "radio":
-                if inputField.evaluateJavaScript("this.checked"):
-                    if qVersionTuple() >= (5, 0, 0):
-                        searchUrlQuery.addQueryItem(name, value)
-                    else:
-                        searchUrl.addQueryItem(name, value)
-            elif type_ == "hidden":
-                if qVersionTuple() >= (5, 0, 0):
-                    searchUrlQuery.addQueryItem(name, value)
-                else:
-                    searchUrl.addQueryItem(name, value)
-        
-        selectFields = formElement.findAll("select")
-        for selectField in selectFields.toList():
-            name = selectField.attribute("name")
-            selectedIndex = selectField.evaluateJavaScript(
-                "this.selectedIndex")
-            if selectedIndex == -1:
-                continue
-            
-            options = selectField.findAll("option")
-            value = options.at(selectedIndex).toPlainText()
-            if qVersionTuple() >= (5, 0, 0):
-                searchUrlQuery.addQueryItem(name, value)
-            else:
-                searchUrl.addQueryItem(name, value)
-        
-        ok = True
-        if len(searchEngines) > 1:
-            searchEngine, ok = QInputDialog.getItem(
-                self,
-                self.tr("Search engine"),
-                self.tr("Choose the desired search engine"),
-                sorted(searchEngines.keys()), 0, False)
-            
-            if not ok:
-                return
-            
-            if searchEngines[searchEngine] != "":
-                if qVersionTuple() >= (5, 0, 0):
-                    searchUrlQuery.addQueryItem(
-                        searchEngines[searchEngine], searchEngine)
-                else:
-                    searchUrl.addQueryItem(
-                        searchEngines[searchEngine], searchEngine)
-        engineName = ""
-        labels = formElement.findAll('label[for="{0}"]'.format(elementName))
-        if labels.count() > 0:
-            engineName = labels.at(0).toPlainText()
-        
-        engineName, ok = QInputDialog.getText(
-            self,
-            self.tr("Engine name"),
-            self.tr("Enter a name for the engine"),
-            QLineEdit.Normal,
-            engineName)
-        if not ok:
-            return
-        
-        if qVersionTuple() >= (5, 0, 0):
-            searchUrl.setQuery(searchUrlQuery)
-        
-        from .OpenSearch.OpenSearchEngine import OpenSearchEngine
-        engine = OpenSearchEngine()
-        engine.setName(engineName)
-        engine.setDescription(engineName)
-        if qVersionTuple() >= (5, 0, 0):
-            engine.setSearchUrlTemplate(
-                searchUrl.toDisplayString(QUrl.FullyDecoded))
-        else:
-            engine.setSearchUrlTemplate(searchUrl.toString())
-        engine.setImage(self.icon().pixmap(16, 16).toImage())
-        
-        self.mw.openSearchManager().addEngine(engine)
-    
-    def __webInspector(self):
-        """
-        Private slot to show the web inspector window.
-        """
-        if self.__inspector is None:
-            from .HelpInspector import HelpInspector
-            self.__inspector = HelpInspector()
-            self.__inspector.setPage(self.page())
-            self.__inspector.show()
-        elif self.__inspector.isVisible():
-            self.__inspector.hide()
-        else:
-            self.__inspector.show()
-    
-    def closeWebInspector(self):
-        """
-        Public slot to close the web inspector.
-        """
-        if self.__inspector is not None:
-            if self.__inspector.isVisible():
-                self.__inspector.hide()
-            self.__inspector.deleteLater()
-            self.__inspector = None
-    
-    def addBookmark(self):
-        """
-        Public slot to bookmark the current page.
-        """
-        from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog
-        dlg = AddBookmarkDialog()
-        dlg.setUrl(bytes(self.url().toEncoded()).decode())
-        dlg.setTitle(self.title())
-        meta = self.page().mainFrame().metaData()
-        if "description" in meta:
-            dlg.setDescription(meta["description"][0])
-        dlg.exec_()
-    
-    def dragEnterEvent(self, evt):
-        """
-        Protected method called by a drag enter event.
-        
-        @param evt reference to the drag enter event (QDragEnterEvent)
-        """
-        evt.acceptProposedAction()
-    
-    def dragMoveEvent(self, evt):
-        """
-        Protected method called by a drag move event.
-        
-        @param evt reference to the drag move event (QDragMoveEvent)
-        """
-        evt.ignore()
-        if evt.source() != self:
-            if len(evt.mimeData().urls()) > 0:
-                evt.acceptProposedAction()
-            else:
-                url = QUrl(evt.mimeData().text())
-                if url.isValid():
-                    evt.acceptProposedAction()
-        
-        if not evt.isAccepted():
-            super(HelpBrowser, self).dragMoveEvent(evt)
-    
-    def dropEvent(self, evt):
-        """
-        Protected method called by a drop event.
-        
-        @param evt reference to the drop event (QDropEvent)
-        """
-        super(HelpBrowser, self).dropEvent(evt)
-        if not evt.isAccepted() and \
-           evt.source() != self and \
-           evt.possibleActions() & Qt.CopyAction:
-            url = QUrl()
-            if len(evt.mimeData().urls()) > 0:
-                url = evt.mimeData().urls()[0]
-            if not url.isValid():
-                url = QUrl(evt.mimeData().text())
-            if url.isValid():
-                self.setSource(url)
-                evt.acceptProposedAction()
-    
-    def mousePressEvent(self, evt):
-        """
-        Protected method called by a mouse press event.
-        
-        @param evt reference to the mouse event (QMouseEvent)
-        """
-        self.mw.setEventMouseButtons(evt.buttons())
-        self.mw.setEventKeyboardModifiers(evt.modifiers())
-        
-        if evt.button() == Qt.XButton1:
-            self.pageAction(QWebPage.Back).trigger()
-        elif evt.button() == Qt.XButton2:
-            self.pageAction(QWebPage.Forward).trigger()
-        else:
-            super(HelpBrowser, self).mousePressEvent(evt)
-    
-    def mouseReleaseEvent(self, evt):
-        """
-        Protected method called by a mouse release event.
-        
-        @param evt reference to the mouse event (QMouseEvent)
-        """
-        accepted = evt.isAccepted()
-        self.__page.event(evt)
-        if not evt.isAccepted() and \
-           self.mw.eventMouseButtons() & Qt.MidButton:
-            url = QUrl(QApplication.clipboard().text(QClipboard.Selection))
-            if not url.isEmpty() and \
-               url.isValid() and \
-               url.scheme() != "":
-                self.mw.setEventMouseButtons(Qt.NoButton)
-                self.mw.setEventKeyboardModifiers(Qt.NoModifier)
-                self.setSource(url)
-        evt.setAccepted(accepted)
-    
-    def wheelEvent(self, evt):
-        """
-        Protected method to handle wheel events.
-        
-        @param evt reference to the wheel event (QWheelEvent)
-        """
-        if qVersionTuple() >= (5, 0, 0):
-            delta = evt.angleDelta().y()
-        else:
-            delta = evt.delta()
-        if evt.modifiers() & Qt.ControlModifier:
-            if delta < 0:
-                self.zoomOut()
-            elif delta > 0:
-                self.zoomIn()
-            evt.accept()
-            return
-        
-        if evt.modifiers() & Qt.ShiftModifier:
-            if delta < 0:
-                self.backward()
-            elif delta > 0:
-                self.forward()
-            evt.accept()
-            return
-        
-        super(HelpBrowser, self).wheelEvent(evt)
-    
-    def keyPressEvent(self, evt):
-        """
-        Protected method called by a key press.
-        
-        @param evt reference to the key event (QKeyEvent)
-        """
-        if self.mw.personalInformationManager().viewKeyPressEvent(self, evt):
-            return
-        
-        if self.__enableAccessKeys:
-            self.__accessKeysPressed = (
-                evt.modifiers() == Qt.ControlModifier and
-                evt.key() == Qt.Key_Control)
-            if not self.__accessKeysPressed:
-                if self.__checkForAccessKey(evt):
-                    self.__hideAccessKeys()
-                    evt.accept()
-                    return
-                self.__hideAccessKeys()
-            else:
-                QTimer.singleShot(300, self.__accessKeyShortcut)
-        
-        self.ctrlPressed = (evt.key() == Qt.Key_Control)
-        super(HelpBrowser, self).keyPressEvent(evt)
-    
-    def keyReleaseEvent(self, evt):
-        """
-        Protected method called by a key release.
-        
-        @param evt reference to the key event (QKeyEvent)
-        """
-        if self.__enableAccessKeys:
-            self.__accessKeysPressed = evt.key() == Qt.Key_Control
-        
-        self.ctrlPressed = False
-        super(HelpBrowser, self).keyReleaseEvent(evt)
-    
-    def focusOutEvent(self, evt):
-        """
-        Protected method called by a focus out event.
-        
-        @param evt reference to the focus event (QFocusEvent)
-        """
-        if self.__accessKeysPressed:
-            self.__hideAccessKeys()
-            self.__accessKeysPressed = False
-        
-        super(HelpBrowser, self).focusOutEvent(evt)
-    
-    def event(self, evt):
-        """
-        Public method handling events.
-        
-        @param evt reference to the event (QEvent)
-        @return flag indicating, if the event was handled (boolean)
-        """
-        if evt.type() == QEvent.Gesture:
-            self.gestureEvent(evt)
-            return True
-        
-        return super(HelpBrowser, self).event(evt)
-    
-    def gestureEvent(self, evt):
-        """
-        Protected method handling gesture events.
-        
-        @param evt reference to the gesture event (QGestureEvent
-        """
-        pinch = evt.gesture(Qt.PinchGesture)
-        if pinch:
-            if pinch.state() == Qt.GestureStarted:
-                pinch.setTotalScaleFactor(self.__currentZoom / 100.0)
-            elif pinch.state() == Qt.GestureUpdated:
-                scaleFactor = pinch.totalScaleFactor()
-                self.__currentZoom = int(scaleFactor * 100)
-                self.__applyZoom()
-            evt.accept()
-    
-    def clearHistory(self):
-        """
-        Public slot to clear the history.
-        """
-        self.history().clear()
-        self.__urlChanged(self.history().currentItem().url())
-    
-    ###########################################################################
-    ## Signal converters below
-    ###########################################################################
-    
-    def __urlChanged(self, url):
-        """
-        Private slot to handle the urlChanged signal.
-        
-        @param url the new url (QUrl)
-        """
-        self.sourceChanged.emit(url)
-        
-        self.forwardAvailable.emit(self.isForwardAvailable())
-        self.backwardAvailable.emit(self.isBackwardAvailable())
-    
-    def __statusBarMessage(self, text):
-        """
-        Private slot to handle the statusBarMessage signal.
-        
-        @param text text to be shown in the status bar (string)
-        """
-        self.mw.statusBar().showMessage(text)
-    
-    def __linkHovered(self, link, title, textContent):
-        """
-        Private slot to handle the linkHovered signal.
-        
-        @param link the URL of the link (string)
-        @param title the link title (string)
-        @param textContent text content of the link (string)
-        """
-        self.highlighted.emit(link)
-    
-    ###########################################################################
-    ## Signal handlers below
-    ###########################################################################
-    
-    def __loadStarted(self):
-        """
-        Private method to handle the loadStarted signal.
-        """
-        self.__isLoading = True
-        self.__progress = 0
-    
-    def __loadProgress(self, progress):
-        """
-        Private method to handle the loadProgress signal.
-        
-        @param progress progress value (integer)
-        """
-        self.__progress = progress
-    
-    def __loadFinished(self, ok):
-        """
-        Private method to handle the loadFinished signal.
-        
-        @param ok flag indicating the result (boolean)
-        """
-        self.__isLoading = False
-        self.__progress = 0
-        
-        if Preferences.getHelp("ClickToFlashEnabled"):
-            # this is a hack to make the ClickToFlash button appear
-            self.zoomIn()
-            self.zoomOut()
-        
-        zoomValue = Helpviewer.HelpWindow.HelpWindow.zoomManager()\
-            .zoomValue(self.url())
-        self.setZoomValue(zoomValue)
-        
-        if ok:
-            self.mw.adBlockManager().page().hideBlockedPageEntries(self.page())
-            self.mw.passwordManager().fill(self.page())
-    
-    def isLoading(self):
-        """
-        Public method to get the loading state.
-        
-        @return flag indicating the loading state (boolean)
-        """
-        return self.__isLoading
-    
-    def progress(self):
-        """
-        Public method to get the load progress.
-        
-        @return load progress (integer)
-        """
-        return self.__progress
-    
-    def saveAs(self):
-        """
-        Public method to save the current page to a file.
-        """
-        url = self.url()
-        if url.isEmpty():
-            return
-        
-        self.mw.downloadManager().download(url, True, mainWindow=self.mw)
-    
-    def __unsupportedContent(self, reply, requestFilename=None,
-                             download=False):
-        """
-        Private slot to handle the unsupportedContent signal.
-        
-        @param reply reference to the reply object (QNetworkReply)
-        @keyparam requestFilename indicating to ask for a filename
-            (boolean or None). If it is None, the behavior is determined
-            by a configuration option.
-        @keyparam download flag indicating a download operation (boolean)
-        """
-        if reply is None:
-            return
-        
-        replyUrl = reply.url()
-        
-        if replyUrl.scheme() == "abp":
-            return
-        
-        if reply.error() == QNetworkReply.NoError:
-            if reply.header(QNetworkRequest.ContentTypeHeader):
-                self.mw.downloadManager().handleUnsupportedContent(
-                    reply, webPage=self.page(), mainWindow=self.mw)
-                return
-        
-        replyUrl = reply.url()
-        if replyUrl.isEmpty():
-            return
-        
-        notFoundFrame = self.page().mainFrame()
-        if notFoundFrame is None:
-            return
-        
-        if reply.header(QNetworkRequest.ContentTypeHeader):
-            data = reply.readAll()
-            if contentSniff(data):
-                notFoundFrame.setHtml(str(data, encoding="utf-8"), replyUrl)
-                return
-        
-        urlString = bytes(replyUrl.toEncoded()).decode()
-        title = self.tr("Error loading page: {0}").format(urlString)
-        htmlFile = QFile(":/html/notFoundPage.html")
-        htmlFile.open(QFile.ReadOnly)
-        html = htmlFile.readAll()
-        pixmap = qApp.style()\
-            .standardIcon(QStyle.SP_MessageBoxWarning).pixmap(48, 48)
-        imageBuffer = QBuffer()
-        imageBuffer.open(QIODevice.ReadWrite)
-        if pixmap.save(imageBuffer, "PNG"):
-            html = html.replace("@IMAGE@", imageBuffer.buffer().toBase64())
-        pixmap = qApp.style()\
-            .standardIcon(QStyle.SP_MessageBoxWarning).pixmap(16, 16)
-        imageBuffer = QBuffer()
-        imageBuffer.open(QIODevice.ReadWrite)
-        if pixmap.save(imageBuffer, "PNG"):
-            html = html.replace("@FAVICON@", imageBuffer.buffer().toBase64())
-        html = html.replace("@TITLE@", title.encode("utf8"))
-        html = html.replace("@H1@", reply.errorString().encode("utf8"))
-        html = html.replace(
-            "@H2@", self.tr("When connecting to: {0}.")
-            .format(urlString).encode("utf8"))
-        html = html.replace(
-            "@LI-1@",
-            self.tr("Check the address for errors such as "
-                    "<b>ww</b>.example.org instead of "
-                    "<b>www</b>.example.org").encode("utf8"))
-        html = html.replace(
-            "@LI-2@",
-            self.tr("If the address is correct, try checking the network "
-                    "connection.").encode("utf8"))
-        html = html.replace(
-            "@LI-3@",
-            self.tr(
-                "If your computer or network is protected by a firewall "
-                "or proxy, make sure that the browser is permitted to "
-                "access the network.").encode("utf8"))
-        html = html.replace(
-            "@LI-4@",
-            self.tr("If your cache policy is set to offline browsing,"
-                    "only pages in the local cache are available.")
-            .encode("utf8"))
-        html = html.replace(
-            "@BUTTON@", self.tr("Try Again").encode("utf8"))
-        notFoundFrame.setHtml(bytes(html).decode("utf8"), replyUrl)
-        self.mw.historyManager().removeHistoryEntry(replyUrl, self.title())
-        self.loadFinished.emit(False)
-    
-    def __featurePermissionRequested(self, frame, feature):
-        """
-        Private slot handling a feature permission request.
-        
-        @param frame frame sending the request
-        @type QWebFrame
-        @param feature requested feature
-        @type QWebPage.Feature
-        """
-        manager = Helpviewer.HelpWindow.HelpWindow.featurePermissionManager()
-        manager.requestFeaturePermission(self.page(), frame, feature)
-    
-    def __downloadRequested(self, request):
-        """
-        Private slot to handle a download request.
-        
-        @param request reference to the request object (QNetworkRequest)
-        """
-        self.mw.downloadManager().download(request, mainWindow=self.mw)
-    
-    def __databaseQuotaExceeded(self, frame, databaseName):
-        """
-        Private slot to handle the case, where the database quota is exceeded.
-        
-        @param frame reference to the frame (QWebFrame)
-        @param databaseName name of the web database (string)
-        """
-        securityOrigin = frame.securityOrigin()
-        if securityOrigin.databaseQuota() > 0 and \
-           securityOrigin.databaseUsage() == 0:
-            # cope with a strange behavior of Qt 4.6, if a database is
-            # accessed for the first time
-            return
-        
-        res = E5MessageBox.yesNo(
-            self,
-            self.tr("Web Database Quota"),
-            self.tr(
-                """<p>The database quota of <strong>{0}</strong> has"""
-                """ been exceeded while accessing database <strong>{1}"""
-                """</strong>.</p><p>Shall it be changed?</p>""")
-            .format(self.__dataString(securityOrigin.databaseQuota()),
-                    databaseName),
-            yesDefault=True)
-        if res:
-            newQuota, ok = QInputDialog.getInt(
-                self,
-                self.tr("New Web Database Quota"),
-                self.tr(
-                    "Enter the new quota in MB (current = {0}, used = {1}; "
-                    "step size = 5 MB):"
-                    .format(
-                        self.__dataString(securityOrigin.databaseQuota()),
-                        self.__dataString(securityOrigin.databaseUsage()))),
-                securityOrigin.databaseQuota() // (1024 * 1024),
-                0, 2147483647, 5)
-            if ok:
-                securityOrigin.setDatabaseQuota(newQuota * 1024 * 1024)
-    
-    def __dataString(self, size):
-        """
-        Private method to generate a formatted data string.
-        
-        @param size size to be formatted (integer)
-        @return formatted data string (string)
-        """
-        unit = ""
-        if size < 1024:
-            unit = self.tr("bytes")
-        elif size < 1024 * 1024:
-            size /= 1024
-            unit = self.tr("kB")
-        else:
-            size /= 1024 * 1024
-            unit = self.tr("MB")
-        return "{0:.1f} {1}".format(size, unit)
-    
-    ###########################################################################
-    ## Access key related methods below
-    ###########################################################################
-    
-    def __accessKeyShortcut(self):
-        """
-        Private slot to switch the display of access keys.
-        """
-        if not self.hasFocus() or \
-           not self.__accessKeysPressed or \
-           not self.__enableAccessKeys:
-            return
-        
-        if self.__accessKeyLabels:
-            self.__hideAccessKeys()
-        else:
-            self.__showAccessKeys()
-        
-        self.__accessKeysPressed = False
-    
-    def __checkForAccessKey(self, evt):
-        """
-        Private method to check the existence of an access key and activate the
-        corresponding link.
-        
-        @param evt reference to the key event (QKeyEvent)
-        @return flag indicating, if the event was handled (boolean)
-        """
-        if not self.__accessKeyLabels:
-            return False
-        
-        text = evt.text()
-        if not text:
-            return False
-        
-        key = text[0].upper()
-        handled = False
-        if key in self.__accessKeyNodes:
-            element = self.__accessKeyNodes[key]
-            p = element.geometry().center()
-            frame = element.webFrame()
-            p -= frame.scrollPosition()
-            frame = frame.parentFrame()
-            while frame and frame != self.page().mainFrame():
-                p -= frame.scrollPosition()
-                frame = frame.parentFrame()
-            pevent = QMouseEvent(
-                QEvent.MouseButtonPress, p, Qt.LeftButton,
-                Qt.MouseButtons(Qt.NoButton),
-                Qt.KeyboardModifiers(Qt.NoModifier))
-            qApp.sendEvent(self, pevent)
-            revent = QMouseEvent(
-                QEvent.MouseButtonRelease, p, Qt.LeftButton,
-                Qt.MouseButtons(Qt.NoButton),
-                Qt.KeyboardModifiers(Qt.NoModifier))
-            qApp.sendEvent(self, revent)
-            handled = True
-        
-        return handled
-    
-    def __hideAccessKeys(self):
-        """
-        Private slot to hide the access key labels.
-        """
-        if self.__accessKeyLabels:
-            for label in self.__accessKeyLabels:
-                label.hide()
-                label.deleteLater()
-            self.__accessKeyLabels = []
-            self.__accessKeyNodes = {}
-            self.update()
-    
-    def __showAccessKeys(self):
-        """
-        Private method to show the access key labels.
-        """
-        supportedElements = [
-            "input", "a", "area", "button", "label", "legend", "textarea",
-        ]
-        unusedKeys = "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" \
-            " 0 1 2 3 4 5 6 7 8 9".split()
-        
-        viewport = QRect(self.__page.mainFrame().scrollPosition(),
-                         self.__page.viewportSize())
-        # Priority first goes to elements with accesskey attributes
-        alreadyLabeled = []
-        for elementType in supportedElements:
-            result = self.page().mainFrame().findAllElements(elementType)\
-                .toList()
-            for element in result:
-                geometry = element.geometry()
-                if geometry.size().isEmpty() or \
-                   not viewport.contains(geometry.topLeft()):
-                    continue
-                
-                accessKeyAttribute = element.attribute("accesskey").upper()
-                if not accessKeyAttribute:
-                    continue
-                
-                accessKey = ""
-                i = 0
-                while i < len(accessKeyAttribute):
-                    if accessKeyAttribute[i] in unusedKeys:
-                        accessKey = accessKeyAttribute[i]
-                        break
-                    i += 2
-                if accessKey == "":
-                    continue
-                unusedKeys.remove(accessKey)
-                self.__makeAccessLabel(accessKey, element)
-                alreadyLabeled.append(element)
-        
-        # Pick an access key first from the letters in the text and then
-        # from the list of unused access keys
-        for elementType in supportedElements:
-            result = self.page().mainFrame().findAllElements(elementType)\
-                .toList()
-            for element in result:
-                geometry = element.geometry()
-                if not unusedKeys or \
-                   element in alreadyLabeled or \
-                   geometry.size().isEmpty() or \
-                   not viewport.contains(geometry.topLeft()):
-                    continue
-                
-                accessKey = ""
-                text = element.toPlainText().upper()
-                for c in text:
-                    if c in unusedKeys:
-                        accessKey = c
-                        break
-                if accessKey == "":
-                    accessKey = unusedKeys[0]
-                unusedKeys.remove(accessKey)
-                self.__makeAccessLabel(accessKey, element)
-    
-    def __makeAccessLabel(self, accessKey, element):
-        """
-        Private method to generate the access label for an element.
-        
-        @param accessKey access key to generate the label for (str)
-        @param element reference to the web element to create the label for
-            (QWebElement)
-        """
-        label = QLabel(self)
-        label.setText("<qt><b>{0}</b></qt>".format(accessKey))
-        
-        p = QToolTip.palette()
-        color = QColor(Qt.yellow).lighter(150)
-        color.setAlpha(175)
-        p.setColor(QPalette.Window, color)
-        label.setPalette(p)
-        label.setAutoFillBackground(True)
-        label.setFrameStyle(QFrame.Box | QFrame.Plain)
-        point = element.geometry().center()
-        point -= self.__page.mainFrame().scrollPosition()
-        label.move(point)
-        label.show()
-        point.setX(point.x() - label.width() // 2)
-        label.move(point)
-        self.__accessKeyLabels.append(label)
-        self.__accessKeyNodes[accessKey] = element
-    
-    ###########################################################################
-    ## Miscellaneous methods below
-    ###########################################################################
-    
-    def createWindow(self, windowType):
-        """
-        Public method called, when a new window should be created.
-        
-        @param windowType type of the requested window (QWebPage.WebWindowType)
-        @return reference to the created browser window (HelpBrowser)
-        """
-        self.mw.newTab(addNextTo=self)
-        return self.mw.currentBrowser()
-    
-    def preferencesChanged(self):
-        """
-        Public method to indicate a change of the settings.
-        """
-        self.__enableAccessKeys = Preferences.getHelp("AccessKeysEnabled")
-        if not self.__enableAccessKeys:
-            self.__hideAccessKeys()
-        
-        self.reload()
-    
-    ###########################################################################
-    ## RSS related methods below
-    ###########################################################################
-    
-    def checkRSS(self):
-        """
-        Public method to check, if the loaded page contains feed links.
-        
-        @return flag indicating the existence of feed links (boolean)
-        """
-        self.__rss = []
-        
-        frame = self.page().mainFrame()
-        linkElementsList = frame.findAllElements("link").toList()
-        
-        for linkElement in linkElementsList:
-            # only atom+xml and rss+xml will be processed
-            if linkElement.attribute("rel") != "alternate" or \
-               (linkElement.attribute("type") != "application/rss+xml" and
-                    linkElement.attribute("type") != "application/atom+xml"):
-                continue
-            
-            title = linkElement.attribute("title")
-            href = linkElement.attribute("href")
-            if href == "" or title == "":
-                continue
-            self.__rss.append((title, href))
-        
-        return len(self.__rss) > 0
-    
-    def getRSS(self):
-        """
-        Public method to get the extracted RSS feeds.
-        
-        @return list of RSS feeds (list of tuples of two strings)
-        """
-        return self.__rss
-    
-    def hasRSS(self):
-        """
-        Public method to check, if the loaded page has RSS links.
-        
-        @return flag indicating the presence of RSS links (boolean)
-        """
-        return len(self.__rss) > 0
-    
-    ###########################################################################
-    ## Clicked Frame slots
-    ###########################################################################
-    
-    def __loadClickedFrame(self):
-        """
-        Private slot to load the selected frame only.
-        """
-        self.setSource(self.__clickedFrame.url())
-    
-    def __printClickedFrame(self):
-        """
-        Private slot to print the selected frame.
-        """
-        printer = QPrinter(mode=QPrinter.HighResolution)
-        if Preferences.getPrinter("ColorMode"):
-            printer.setColorMode(QPrinter.Color)
-        else:
-            printer.setColorMode(QPrinter.GrayScale)
-        if Preferences.getPrinter("FirstPageFirst"):
-            printer.setPageOrder(QPrinter.FirstPageFirst)
-        else:
-            printer.setPageOrder(QPrinter.LastPageFirst)
-        printer.setPageMargins(
-            Preferences.getPrinter("LeftMargin") * 10,
-            Preferences.getPrinter("TopMargin") * 10,
-            Preferences.getPrinter("RightMargin") * 10,
-            Preferences.getPrinter("BottomMargin") * 10,
-            QPrinter.Millimeter
-        )
-        printerName = Preferences.getPrinter("PrinterName")
-        if printerName:
-            printer.setPrinterName(printerName)
-        
-        printDialog = QPrintDialog(printer, self)
-        if printDialog.exec_() == QDialog.Accepted:
-            try:
-                self.__clickedFrame.print_(printer)
-            except AttributeError:
-                E5MessageBox.critical(
-                    self,
-                    self.tr("eric6 Web Browser"),
-                    self.tr(
-                        """<p>Printing is not available due to a bug in"""
-                        """ PyQt5. Please upgrade.</p>"""))
-    
-    def __printPreviewClickedFrame(self):
-        """
-        Private slot to show a print preview of the clicked frame.
-        """
-        from PyQt5.QtPrintSupport import QPrintPreviewDialog
-        
-        printer = QPrinter(mode=QPrinter.HighResolution)
-        if Preferences.getPrinter("ColorMode"):
-            printer.setColorMode(QPrinter.Color)
-        else:
-            printer.setColorMode(QPrinter.GrayScale)
-        if Preferences.getPrinter("FirstPageFirst"):
-            printer.setPageOrder(QPrinter.FirstPageFirst)
-        else:
-            printer.setPageOrder(QPrinter.LastPageFirst)
-        printer.setPageMargins(
-            Preferences.getPrinter("LeftMargin") * 10,
-            Preferences.getPrinter("TopMargin") * 10,
-            Preferences.getPrinter("RightMargin") * 10,
-            Preferences.getPrinter("BottomMargin") * 10,
-            QPrinter.Millimeter
-        )
-        printerName = Preferences.getPrinter("PrinterName")
-        if printerName:
-            printer.setPrinterName(printerName)
-        
-        preview = QPrintPreviewDialog(printer, self)
-        preview.paintRequested.connect(self.__generatePrintPreviewClickedFrame)
-        preview.exec_()
-    
-    def __generatePrintPreviewClickedFrame(self, printer):
-        """
-        Private slot to generate a print preview of the clicked frame.
-        
-        @param printer reference to the printer object (QPrinter)
-        """
-        try:
-            self.__clickedFrame.print_(printer)
-        except AttributeError:
-            E5MessageBox.critical(
-                self,
-                self.tr("eric6 Web Browser"),
-                self.tr(
-                    """<p>Printing is not available due to a bug in PyQt5."""
-                    """Please upgrade.</p>"""))
-            return
-    
-    def __printPdfClickedFrame(self):
-        """
-        Private slot to print the selected frame to PDF.
-        """
-        printer = QPrinter(mode=QPrinter.HighResolution)
-        if Preferences.getPrinter("ColorMode"):
-            printer.setColorMode(QPrinter.Color)
-        else:
-            printer.setColorMode(QPrinter.GrayScale)
-        printerName = Preferences.getPrinter("PrinterName")
-        if printerName:
-            printer.setPrinterName(printerName)
-        printer.setOutputFormat(QPrinter.PdfFormat)
-        name = self.__clickedFrame.url().path().rsplit('/', 1)[-1]
-        if name:
-            name = name.rsplit('.', 1)[0]
-            name += '.pdf'
-            printer.setOutputFileName(name)
-        
-        printDialog = QPrintDialog(printer, self)
-        if printDialog.exec_() == QDialog.Accepted:
-            try:
-                self.__clickedFrame.print_(printer)
-            except AttributeError:
-                E5MessageBox.critical(
-                    self,
-                    self.tr("eric6 Web Browser"),
-                    self.tr(
-                        """<p>Printing is not available due to a bug in"""
-                        """ PyQt5. Please upgrade.</p>"""))
-                return
-    
-    def __zoomInClickedFrame(self):
-        """
-        Private slot to zoom into the clicked frame.
-        """
-        index = self.__levelForZoom(
-            int(self.__clickedFrame.zoomFactor() * 100))
-        if index < len(self.__zoomLevels) - 1:
-            self.__clickedFrame.setZoomFactor(
-                self.__zoomLevels[index + 1] / 100)
-    
-    def __zoomResetClickedFrame(self):
-        """
-        Private slot to reset the zoom factor of the clicked frame.
-        """
-        self.__clickedFrame.setZoomFactor(self.__currentZoom / 100)
-    
-    def __zoomOutClickedFrame(self):
-        """
-        Private slot to zoom out of the clicked frame.
-        """
-        index = self.__levelForZoom(
-            int(self.__clickedFrame.zoomFactor() * 100))
-        if index > 0:
-            self.__clickedFrame.setZoomFactor(
-                self.__zoomLevels[index - 1] / 100)
-    
-    def __showClickedFrameSource(self):
-        """
-        Private slot to show the source of the clicked frame.
-        """
-        from QScintilla.MiniEditor import MiniEditor
-        src = self.__clickedFrame.toHtml()
-        editor = MiniEditor(parent=self)
-        editor.setText(src, "Html")
-        editor.setLanguage("dummy.html")
-        editor.show()
-    
-    ###########################################################################
-    ## Speed Dial slots below
-    ###########################################################################
-    
-    def __addSpeedDial(self):
-        """
-        Private slot to add a new speed dial.
-        """
-        self.page().mainFrame().evaluateJavaScript("addSpeedDial();")
-    
-    def __configureSpeedDial(self):
-        """
-        Private slot to configure the speed dial.
-        """
-        self.page().mainFrame().evaluateJavaScript("configureSpeedDial();")
-    
-    def __reloadAllSpeedDials(self):
-        """
-        Private slot to reload all speed dials.
-        """
-        self.page().mainFrame().evaluateJavaScript("reloadAll();")
-    
-    def __resetSpeedDials(self):
-        """
-        Private slot to reset all speed dials to the default pages.
-        """
-        self.__speedDial.resetDials()
-
-
-def contentSniff(data):
-    """
-    Module function to do some content sniffing to check, if the data is HTML.
-    
-    @param data data block to sniff at (string)
-    @return flag indicating HTML content (boolean)
-    """
-    if data.contains("<!doctype") or \
-       data.contains("<script") or \
-       data.contains("<html") or \
-       data.contains("<!--") or \
-       data.contains("<head") or \
-       data.contains("<iframe") or \
-       data.contains("<h1") or \
-       data.contains("<div") or \
-       data.contains("<font") or \
-       data.contains("<table") or \
-       data.contains("<a") or \
-       data.contains("<style") or \
-       data.contains("<title") or \
-       data.contains("<b") or \
-       data.contains("<body") or \
-       data.contains("<br") or \
-       data.contains("<p"):
-        return True
-    
-    return False
--- a/eric6/Helpviewer/HelpClearPrivateDataDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to select which private data to clear.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QDialog
-
-from .Ui_HelpClearPrivateDataDialog import Ui_HelpClearPrivateDataDialog
-
-
-class HelpClearPrivateDataDialog(QDialog, Ui_HelpClearPrivateDataDialog):
-    """
-    Class implementing a dialog to select which private data to clear.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(HelpClearPrivateDataDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        msh = self.minimumSizeHint()
-        self.resize(max(self.width(), msh.width()), msh.height())
-    
-    def getData(self):
-        """
-        Public method to get the data from the dialog.
-        
-        @return tuple with flags indicating which data to clear
-            (browsing history, search history, favicons, disk cache, cookies,
-            passwords, web databases, downloads, flash, zoom values) and the
-            selected history period in milliseconds (tuple of booleans and
-            integer)
-        """
-        index = self.historyCombo.currentIndex()
-        if index == 0:
-            # last hour
-            historyPeriod = 60 * 60 * 1000
-        elif index == 1:
-            # last day
-            historyPeriod = 24 * 60 * 60 * 1000
-        elif index == 2:
-            # last week
-            historyPeriod = 7 * 24 * 60 * 60 * 1000
-        elif index == 3:
-            # last four weeks
-            historyPeriod = 4 * 7 * 24 * 60 * 60 * 1000
-        elif index == 4:
-            # clear all
-            historyPeriod = 0
-        
-        return (self.historyCheckBox.isChecked(),
-                self.searchCheckBox.isChecked(),
-                self.iconsCheckBox.isChecked(),
-                self.cacheCheckBox.isChecked(),
-                self.cookiesCheckBox.isChecked(),
-                self.passwordsCheckBox.isChecked(),
-                self.databasesCheckBox.isChecked(),
-                self.downloadsCheckBox.isChecked(),
-                self.flashCookiesCheckBox.isChecked(),
-                self.zoomCheckBox.isChecked(),
-                historyPeriod)
--- a/eric6/Helpviewer/HelpClearPrivateDataDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>HelpClearPrivateDataDialog</class>
- <widget class="QDialog" name="HelpClearPrivateDataDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>305</width>
-    <height>353</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Clear Private Data</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QCheckBox" name="historyCheckBox">
-     <property name="toolTip">
-      <string>Select to clear the browsing history</string>
-     </property>
-     <property name="text">
-      <string>&amp;Browsing History</string>
-     </property>
-     <property name="checked">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QComboBox" name="historyCombo">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-         <horstretch>1</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="toolTip">
-        <string>Select the history period to be deleted</string>
-       </property>
-       <item>
-        <property name="text">
-         <string>Last Hour</string>
-        </property>
-       </item>
-       <item>
-        <property name="text">
-         <string>Last Day</string>
-        </property>
-       </item>
-       <item>
-        <property name="text">
-         <string>Last Week</string>
-        </property>
-       </item>
-       <item>
-        <property name="text">
-         <string>Last 4 Weeks</string>
-        </property>
-       </item>
-       <item>
-        <property name="text">
-         <string>Whole Period</string>
-        </property>
-       </item>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="searchCheckBox">
-     <property name="toolTip">
-      <string>Select to clear the search history</string>
-     </property>
-     <property name="text">
-      <string>&amp;Search History</string>
-     </property>
-     <property name="checked">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="downloadsCheckBox">
-     <property name="toolTip">
-      <string>Select to clear the download history</string>
-     </property>
-     <property name="text">
-      <string>Download &amp;History</string>
-     </property>
-     <property name="checked">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="cookiesCheckBox">
-     <property name="toolTip">
-      <string>Select to clear the cookies</string>
-     </property>
-     <property name="text">
-      <string>&amp;Cookies</string>
-     </property>
-     <property name="checked">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="cacheCheckBox">
-     <property name="toolTip">
-      <string>Select to clear the disk cache</string>
-     </property>
-     <property name="text">
-      <string>Cached &amp;Web Pages</string>
-     </property>
-     <property name="checked">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="iconsCheckBox">
-     <property name="toolTip">
-      <string>Select to clear the website icons</string>
-     </property>
-     <property name="text">
-      <string>Website &amp;Icons</string>
-     </property>
-     <property name="checked">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="passwordsCheckBox">
-     <property name="toolTip">
-      <string>Select to clear the saved passwords</string>
-     </property>
-     <property name="text">
-      <string>Saved &amp;Passwords</string>
-     </property>
-     <property name="checked">
-      <bool>false</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="databasesCheckBox">
-     <property name="toolTip">
-      <string>Select to delete all web databases</string>
-     </property>
-     <property name="text">
-      <string>Web &amp;Databases</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="zoomCheckBox">
-     <property name="toolTip">
-      <string>Select to delete all remembered zoom settings</string>
-     </property>
-     <property name="text">
-      <string>&amp;Zoom Settings</string>
-     </property>
-     <property name="checked">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="Line" name="line">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="flashCookiesCheckBox">
-     <property name="toolTip">
-      <string>Select to clear cookies set by the Adobe Flash Player</string>
-     </property>
-     <property name="text">
-      <string>Cookies from Adobe &amp;Flash Player</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>historyCheckBox</tabstop>
-  <tabstop>historyCombo</tabstop>
-  <tabstop>searchCheckBox</tabstop>
-  <tabstop>downloadsCheckBox</tabstop>
-  <tabstop>cookiesCheckBox</tabstop>
-  <tabstop>cacheCheckBox</tabstop>
-  <tabstop>iconsCheckBox</tabstop>
-  <tabstop>passwordsCheckBox</tabstop>
-  <tabstop>databasesCheckBox</tabstop>
-  <tabstop>zoomCheckBox</tabstop>
-  <tabstop>flashCookiesCheckBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>HelpClearPrivateDataDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>267</x>
-     <y>342</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>252</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>HelpClearPrivateDataDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>294</x>
-     <y>342</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>252</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>historyCheckBox</sender>
-   <signal>toggled(bool)</signal>
-   <receiver>historyCombo</receiver>
-   <slot>setEnabled(bool)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>65</x>
-     <y>19</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>83</x>
-     <y>45</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/HelpDocsInstaller.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a thread class populating and updating the QtHelp
-documentation database.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSignal, QThread, Qt, QMutex, QDateTime, QDir, \
-    QLibraryInfo, QFileInfo
-from PyQt5.QtHelp import QHelpEngineCore
-
-from eric6config import getConfig
-
-from Globals import qVersionTuple
-
-
-class HelpDocsInstaller(QThread):
-    """
-    Class implementing the worker thread populating and updating the QtHelp
-    documentation database.
-    
-    @signal errorMessage(str) emitted, if an error occurred during
-        the installation of the documentation
-    @signal docsInstalled(bool) emitted after the installation has finished
-    """
-    errorMessage = pyqtSignal(str)
-    docsInstalled = pyqtSignal(bool)
-    
-    def __init__(self, collection):
-        """
-        Constructor
-        
-        @param collection full pathname of the collection file (string)
-        """
-        super(HelpDocsInstaller, self).__init__()
-        
-        self.__abort = False
-        self.__collection = collection
-        self.__mutex = QMutex()
-    
-    def stop(self):
-        """
-        Public slot to stop the installation procedure.
-        """
-        if not self.isRunning():
-            return
-        
-        self.__mutex.lock()
-        self.__abort = True
-        self.__mutex.unlock()
-        self.wait()
-    
-    def installDocs(self):
-        """
-        Public method to start the installation procedure.
-        """
-        self.start(QThread.LowPriority)
-    
-    def run(self):
-        """
-        Public method executed by the thread.
-        """
-        engine = QHelpEngineCore(self.__collection)
-        engine.setupData()
-        changes = False
-        
-        qt4Docs = ["designer", "linguist", "qt"]
-        qt5Docs = [
-            "activeqt", "qdoc", "qmake", "qt3d", "qt3drenderer",
-            "qtandroidextras", "qtassistant", "qtbluetooth", "qtcanvas3d",
-            "qtconcurrent", "qtcore", "qtdbus", "qtdesigner", "qtdoc",
-            "qtenginio", "qtenginiooverview", "qtenginoqml",
-            "qtgraphicaleffects", "qtgui", "qthelp", "qtimageformats",
-            "qtlabscontrols", "qtlinguist", "qtlocation", "qtmaxextras",
-            "qtmultimedia", "qtmultimediawidgets", "qtnetwork", "qtnfc",
-            "qtopengl", "qtplatformheaders", "qtpositioning", "qtprintsupport",
-            "qtqml", "qtquick", "qtquickcontrols", "qtquickdialogs",
-            "qtquickextras", "qtquicklayouts", "qtscript", "qtscripttools",
-            "qtsensors", "qtserialbus", "qtserialport", "qtsql", "qtsvg",
-            "qttestlib", "qtuitools", "qtwebchannel", "qtwebengine",
-            "qtwebenginewidgets", "qtwebkit", "qtwebkitexamples",
-            "qtwebsockets", "qtwebview", "qtwidgets", "qtwinextras",
-            "qtx11extras", "qtxml", "qtxmlpatterns"]
-        for qtDocs, version in [(qt4Docs, 4), (qt5Docs, 5)]:
-            for doc in qtDocs:
-                changes |= self.__installQtDoc(doc, version, engine)
-                self.__mutex.lock()
-                if self.__abort:
-                    engine = None
-                    self.__mutex.unlock()
-                    return
-                self.__mutex.unlock()
-        
-        changes |= self.__installEric6Doc(engine)
-        engine = None
-        del engine
-        self.docsInstalled.emit(changes)
-    
-    def __installQtDoc(self, name, version, engine):
-        """
-        Private method to install/update a Qt help document.
-        
-        @param name name of the Qt help document (string)
-        @param version Qt version of the help documens (integer)
-        @param engine reference to the help engine (QHelpEngineCore)
-        @return flag indicating success (boolean)
-        """
-        versionKey = "qt_version_{0}@@{1}".format(version, name)
-        info = engine.customValue(versionKey, "")
-        lst = info.split('|')
-        
-        dt = QDateTime()
-        if len(lst) and lst[0]:
-            dt = QDateTime.fromString(lst[0], Qt.ISODate)
-        
-        qchFile = ""
-        if len(lst) == 2:
-            qchFile = lst[1]
-        
-        if version == 4:
-            docsPath = QDir(
-                QLibraryInfo.location(QLibraryInfo.DocumentationPath) +
-                QDir.separator() + "qch")
-        elif version == 5:
-            docsPath = QLibraryInfo.location(QLibraryInfo.DocumentationPath)
-            if not os.path.isdir(docsPath) or \
-                    len(QDir(docsPath).entryList(["*.qch"])) == 0:
-                # Qt installer is a bit buggy; it's missing a symbolic link
-                docsPathList = QDir.fromNativeSeparators(docsPath).split("/")
-                docsPath = os.sep.join(
-                    docsPathList[:-3] +
-                    ["Docs", "Qt-{0}.{1}".format(*qVersionTuple())])
-            docsPath = QDir(docsPath)
-        else:
-            # unsupported Qt version
-            return False
-        
-        files = docsPath.entryList(["*.qch"])
-        if not files:
-            engine.setCustomValue(
-                versionKey,
-                QDateTime().toString(Qt.ISODate) + '|')
-            return False
-        
-        for f in files:
-            if f.startswith(name):
-                fi = QFileInfo(docsPath.absolutePath() + QDir.separator() + f)
-                namespace = QHelpEngineCore.namespaceName(
-                    fi.absoluteFilePath())
-                if not namespace:
-                    continue
-                
-                if dt.isValid() and \
-                   namespace in engine.registeredDocumentations() and \
-                   fi.lastModified().toString(Qt.ISODate) == \
-                    dt.toString(Qt.ISODate) and \
-                   qchFile == fi.absoluteFilePath():
-                    return False
-                
-                if namespace in engine.registeredDocumentations():
-                    engine.unregisterDocumentation(namespace)
-                
-                if not engine.registerDocumentation(fi.absoluteFilePath()):
-                    self.errorMessage.emit(
-                        self.tr(
-                            """<p>The file <b>{0}</b> could not be"""
-                            """ registered. <br/>Reason: {1}</p>""")
-                        .format(fi.absoluteFilePath, engine.error())
-                    )
-                    return False
-                
-                engine.setCustomValue(
-                    versionKey,
-                    fi.lastModified().toString(Qt.ISODate) + '|' +
-                    fi.absoluteFilePath())
-                return True
-        
-        return False
-    
-    def __installEric6Doc(self, engine):
-        """
-        Private method to install/update the eric6 help documentation.
-        
-        @param engine reference to the help engine (QHelpEngineCore)
-        @return flag indicating success (boolean)
-        """
-        versionKey = "eric6_ide"
-        info = engine.customValue(versionKey, "")
-        lst = info.split('|')
-        
-        dt = QDateTime()
-        if len(lst) and lst[0]:
-            dt = QDateTime.fromString(lst[0], Qt.ISODate)
-        
-        qchFile = ""
-        if len(lst) == 2:
-            qchFile = lst[1]
-        
-        docsPath = QDir(getConfig("ericDocDir") + QDir.separator() + "Help")
-        
-        files = docsPath.entryList(["*.qch"])
-        if not files:
-            engine.setCustomValue(
-                versionKey, QDateTime().toString(Qt.ISODate) + '|')
-            return False
-        
-        for f in files:
-            if f == "source.qch":
-                fi = QFileInfo(docsPath.absolutePath() + QDir.separator() + f)
-                if dt.isValid() and \
-                   fi.lastModified().toString(Qt.ISODate) == \
-                    dt.toString(Qt.ISODate) and \
-                   qchFile == fi.absoluteFilePath():
-                    return False
-                
-                namespace = QHelpEngineCore.namespaceName(
-                    fi.absoluteFilePath())
-                if not namespace:
-                    continue
-                
-                if namespace in engine.registeredDocumentations():
-                    engine.unregisterDocumentation(namespace)
-                
-                if not engine.registerDocumentation(fi.absoluteFilePath()):
-                    self.errorMessage.emit(
-                        self.tr(
-                            """<p>The file <b>{0}</b> could not be"""
-                            """ registered. <br/>Reason: {1}</p>""")
-                        .format(fi.absoluteFilePath, engine.error())
-                    )
-                    return False
-                
-                engine.setCustomValue(
-                    versionKey,
-                    fi.lastModified().toString(Qt.ISODate) + '|' +
-                    fi.absoluteFilePath())
-                return True
-        
-        return False
--- a/eric6/Helpviewer/HelpIndexWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,212 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a window for showing the QtHelp index.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl, QEvent
-from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QLineEdit, QMenu, \
-    QDialog, QApplication
-
-
-class HelpIndexWidget(QWidget):
-    """
-    Class implementing a window for showing the QtHelp index.
-    
-    @signal linkActivated(QUrl) emitted when an index entry is activated
-    @signal linksActivated(links, keyword) emitted when an index entry
-        referencing multiple targets is activated
-    @signal escapePressed() emitted when the ESC key was pressed
-    """
-    linkActivated = pyqtSignal(QUrl)
-    linksActivated = pyqtSignal(dict, str)
-    escapePressed = pyqtSignal()
-    
-    def __init__(self, engine, mainWindow, parent=None):
-        """
-        Constructor
-        
-        @param engine reference to the help engine (QHelpEngine)
-        @param mainWindow reference to the main window object (QMainWindow)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(HelpIndexWidget, self).__init__(parent)
-        
-        self.__engine = engine
-        self.__mw = mainWindow
-        
-        self.__searchEdit = None
-        self.__index = None
-        
-        self.__layout = QVBoxLayout(self)
-        label = QLabel(self.tr("&Look for:"))
-        self.__layout.addWidget(label)
-        
-        self.__searchEdit = QLineEdit()
-        label.setBuddy(self.__searchEdit)
-        self.__searchEdit.textChanged.connect(self.__filterIndices)
-        self.__searchEdit.installEventFilter(self)
-        self.__layout.addWidget(self.__searchEdit)
-        
-        self.__index = self.__engine.indexWidget()
-        self.__index.setContextMenuPolicy(Qt.CustomContextMenu)
-        self.__engine.indexModel().indexCreationStarted.connect(
-            self.__disableSearchEdit)
-        self.__engine.indexModel().indexCreated.connect(
-            self.__enableSearchEdit)
-        self.__index.linkActivated.connect(self.__linkActivated)
-        self.__index.linksActivated.connect(self.__linksActivated)
-        self.__index.customContextMenuRequested.connect(
-            self.__showContextMenu)
-        self.__searchEdit.returnPressed.connect(
-            self.__index.activateCurrentItem)
-        self.__layout.addWidget(self.__index)
-    
-    @pyqtSlot(QUrl, str)
-    def __linkActivated(self, url, keyword, modifiers=None):
-        """
-        Private slot to handle the activation of a keyword entry.
-        
-        @param url URL of the selected entry
-        @type QUrl
-        @param keyword keyword for the URL
-        @type str
-        @keyparam modifiers keyboard modifiers
-        @type Qt.KeyboardModifiers or None
-        """
-        if modifiers is None:
-            modifiers = QApplication.keyboardModifiers()
-        if not url.isEmpty() and url.isValid():
-            if modifiers & Qt.ControlModifier:
-                self.__mw.newTab(url)
-            else:
-                self.linkActivated.emit(url)
-    
-    def __linksActivated(self, links, keyword):
-        """
-        Private slot to handle the activation of an entry with multiple links.
-        
-        @param links dictionary containing the links
-        @type dict of key:str and value:QUrl
-        @param keyword keyword for the entry
-        @type str
-        """
-        modifiers = QApplication.keyboardModifiers()
-        if len(links) == 1:
-            url = QUrl(links[list(links.keys())[0]])
-        else:
-            url = self.__selectLink(links, keyword)
-        self.__linkActivated(url, keyword, modifiers)
-    
-    def __selectLink(self, links, keyword):
-        """
-        Private method to give the user a chance to select among the
-        returned links.
-        
-        @param links dictionary of document title and URL to select from
-        @type dictionary of str (key) and QUrl (value)
-        @param keyword keyword for the link set
-        @type str
-        @return selected link
-        @rtype QUrl
-        """
-        link = QUrl()
-        from .HelpTopicDialog import HelpTopicDialog
-        dlg = HelpTopicDialog(self, keyword, links)
-        if dlg.exec_() == QDialog.Accepted:
-            link = dlg.link()
-        return link
-    
-    def __filterIndices(self, filterStr):
-        """
-        Private slot to filter the indices according to the given filter.
-        
-        @param filterStr filter to be used (string)
-        """
-        if '*' in filterStr:
-            self.__index.filterIndices(filterStr, filterStr)
-        else:
-            self.__index.filterIndices(filterStr)
-    
-    def __enableSearchEdit(self):
-        """
-        Private slot to enable the search edit.
-        """
-        self.__searchEdit.setEnabled(True)
-        self.__filterIndices(self.__searchEdit.text())
-    
-    def __disableSearchEdit(self):
-        """
-        Private slot to enable the search edit.
-        """
-        self.__searchEdit.setEnabled(False)
-    
-    def focusInEvent(self, evt):
-        """
-        Protected method handling focus in events.
-        
-        @param evt reference to the focus event object (QFocusEvent)
-        """
-        if evt.reason() != Qt.MouseFocusReason:
-            self.__searchEdit.selectAll()
-            self.__searchEdit.setFocus()
-    
-    def eventFilter(self, watched, event):
-        """
-        Public method called to filter the event queue.
-        
-        @param watched the QObject being watched (QObject)
-        @param event the event that occurred (QEvent)
-        @return flag indicating whether the event was handled (boolean)
-        """
-        if self.__searchEdit and watched == self.__searchEdit and \
-           event.type() == QEvent.KeyPress:
-            idx = self.__index.currentIndex()
-            if event.key() == Qt.Key_Up:
-                idx = self.__index.model().index(
-                    idx.row() - 1, idx.column(), idx.parent())
-                if idx.isValid():
-                    self.__index.setCurrentIndex(idx)
-            elif event.key() == Qt.Key_Down:
-                idx = self.__index.model().index(
-                    idx.row() + 1, idx.column(), idx.parent())
-                if idx.isValid():
-                    self.__index.setCurrentIndex(idx)
-            elif event.key() == Qt.Key_Escape:
-                self.escapePressed.emit()
-        
-        return QWidget.eventFilter(self, watched, event)
-    
-    def __showContextMenu(self, pos):
-        """
-        Private slot showing the context menu.
-        
-        @param pos position to show the menu at (QPoint)
-        """
-        idx = self.__index.indexAt(pos)
-        if idx.isValid():
-            menu = QMenu()
-            curTab = menu.addAction(self.tr("Open Link"))
-            newTab = menu.addAction(self.tr("Open Link in New Tab"))
-            menu.move(self.__index.mapToGlobal(pos))
-            
-            act = menu.exec_()
-            model = self.__index.model()
-            if model is not None:
-                keyword = model.data(idx, Qt.DisplayRole)
-                links = model.linksForKeyword(keyword)
-                if len(links) == 1:
-                    link = QUrl(links[list(links.keys())[0]])
-                else:
-                    link = self.__selectLink(links, keyword)
-                
-                if not link.isEmpty() and link.isValid():
-                    if act == curTab:
-                        self.linkActivated.emit(link)
-                    elif act == newTab:
-                        self.__mw.newTab(link)
--- a/eric6/Helpviewer/HelpInspector.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a QWebInspector wrapper to save and restore the geometry.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QSize
-from PyQt5.QtWebKitWidgets import QWebInspector
-
-import Preferences
-
-
-class HelpInspector(QWebInspector):
-    """
-    Class implementing a QWebInspector wrapper to save and restore the
-    geometry.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super(HelpInspector, self).__init__(parent)
-        self.__reloadGeometry()
-
-    def closeEvent(self, evt):
-        """
-        Protected method to save the geometry when closed.
-        
-        @param evt event object
-        @type QCloseEvent
-        """
-        Preferences.setGeometry("HelpInspectorGeometry", self.saveGeometry())
-        super(HelpInspector, self).closeEvent(evt)
-
-    def __reloadGeometry(self):
-        """
-        Private method to restore the geometry.
-        """
-        geom = Preferences.getGeometry("HelpInspectorGeometry")
-        if geom.isEmpty():
-            s = QSize(600, 600)
-            self.resize(s)
-        else:
-            self.restoreGeometry(geom)
--- a/eric6/Helpviewer/HelpLanguagesDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to configure the preferred languages.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, QByteArray, QLocale, QStringListModel
-from PyQt5.QtWidgets import QDialog
-
-from .Ui_HelpLanguagesDialog import Ui_HelpLanguagesDialog
-
-import Preferences
-
-
-class HelpLanguagesDialog(QDialog, Ui_HelpLanguagesDialog):
-    """
-    Class implementing a dialog to configure the preferred languages.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(HelpLanguagesDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.__model = QStringListModel()
-        self.languagesList.setModel(self.__model)
-        self.languagesList.selectionModel().currentChanged.connect(
-            self.__currentChanged)
-        
-        languages = Preferences.toList(Preferences.Prefs.settings.value(
-            "Help/AcceptLanguages", self.defaultAcceptLanguages()))
-        self.__model.setStringList(languages)
-        
-        allLanguages = []
-        for index in range(QLocale.C + 1, QLocale.LastLanguage + 1):
-            allLanguages += self.expand(QLocale.Language(index))
-        self.__allLanguagesModel = QStringListModel()
-        self.__allLanguagesModel.setStringList(allLanguages)
-        self.addCombo.setModel(self.__allLanguagesModel)
-    
-    def __currentChanged(self, current, previous):
-        """
-        Private slot to handle a change of the current selection.
-        
-        @param current index of the currently selected item (QModelIndex)
-        @param previous index of the previously selected item (QModelIndex)
-        """
-        self.removeButton.setEnabled(current.isValid())
-        row = current.row()
-        self.upButton.setEnabled(row > 0)
-        self.downButton.setEnabled(
-            row != -1 and row < self.__model.rowCount() - 1)
-
-    @pyqtSlot()
-    def on_upButton_clicked(self):
-        """
-        Private slot to move a language up.
-        """
-        currentRow = self.languagesList.currentIndex().row()
-        data = self.languagesList.currentIndex().data()
-        self.__model.removeRow(currentRow)
-        self.__model.insertRow(currentRow - 1)
-        self.__model.setData(self.__model.index(currentRow - 1), data)
-        self.languagesList.setCurrentIndex(self.__model.index(currentRow - 1))
-    
-    @pyqtSlot()
-    def on_downButton_clicked(self):
-        """
-        Private slot to move a language down.
-        """
-        currentRow = self.languagesList.currentIndex().row()
-        data = self.languagesList.currentIndex().data()
-        self.__model.removeRow(currentRow)
-        self.__model.insertRow(currentRow + 1)
-        self.__model.setData(self.__model.index(currentRow + 1), data)
-        self.languagesList.setCurrentIndex(self.__model.index(currentRow + 1))
-    
-    @pyqtSlot()
-    def on_removeButton_clicked(self):
-        """
-        Private slot to remove a language from the list of acceptable
-        languages.
-        """
-        currentRow = self.languagesList.currentIndex().row()
-        self.__model.removeRow(currentRow)
-    
-    @pyqtSlot()
-    def on_addButton_clicked(self):
-        """
-        Private slot to add a language to the list of acceptable languages.
-        """
-        language = self.addCombo.currentText()
-        if language in self.__model.stringList():
-            return
-        
-        self.__model.insertRow(self.__model.rowCount())
-        self.__model.setData(self.__model.index(self.__model.rowCount() - 1),
-                             language)
-        self.languagesList.setCurrentIndex(
-            self.__model.index(self.__model.rowCount() - 1))
-    
-    def accept(self):
-        """
-        Public method to accept the data entered.
-        """
-        result = self.__model.stringList()
-        if result == self.defaultAcceptLanguages():
-            Preferences.Prefs.settings.remove("Help/AcceptLanguages")
-        else:
-            Preferences.Prefs.settings.setValue("Help/AcceptLanguages", result)
-        super(HelpLanguagesDialog, self).accept()
-    
-    @classmethod
-    def httpString(cls, languages):
-        """
-        Class method to convert a list of acceptable languages into a
-        byte array.
-       
-        The byte array can be sent along with the Accept-Language http header
-        (see RFC 2616).
-        
-        @param languages list of acceptable languages (list of strings)
-        @return converted list (QByteArray)
-        """
-        processed = []
-        qvalue = 1.0
-        for language in languages:
-            leftBracket = language.find('[')
-            rightBracket = language.find(']')
-            tag = language[leftBracket + 1:rightBracket]
-            if not processed:
-                processed.append(tag)
-            else:
-                processed.append("{0};q={1:.1f}".format(tag, qvalue))
-            if qvalue > 0.1:
-                qvalue -= 0.1
-        
-        return QByteArray(", ".join(processed).encode("utf-8"))
-    
-    @classmethod
-    def defaultAcceptLanguages(cls):
-        """
-        Class method to get the list of default accept languages.
-        
-        @return list of acceptable languages (list of strings)
-        """
-        language = QLocale.system().name()
-        if not language:
-            return []
-        else:
-            return cls.expand(QLocale(language).language())
-    
-    @classmethod
-    def expand(cls, language):
-        """
-        Class method to expand a language enum to a readable languages
-        list.
-        
-        @param language language number (QLocale.Language)
-        @return list of expanded language names (list of strings)
-        """
-        allLanguages = []
-        countries = [l.country() for l in QLocale.matchingLocales(
-            language, QLocale.AnyScript, QLocale.AnyCountry)]
-        languageString = "{0} [{1}]"\
-            .format(QLocale.languageToString(language),
-                    QLocale(language).name().split('_')[0])
-        allLanguages.append(languageString)
-        for country in countries:
-            languageString = "{0}/{1} [{2}]"\
-                .format(QLocale.languageToString(language),
-                        QLocale.countryToString(country),
-                        '-'.join(QLocale(language, country).name()
-                                 .split('_')).lower())
-            if languageString not in allLanguages:
-                allLanguages.append(languageString)
-        
-        return allLanguages
--- a/eric6/Helpviewer/HelpLanguagesDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>HelpLanguagesDialog</class>
- <widget class="QDialog" name="HelpLanguagesDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>300</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Languages</string>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="0">
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>Languages in order of preference:</string>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="0" rowspan="4">
-    <widget class="QListView" name="languagesList"/>
-   </item>
-   <item row="1" column="1">
-    <widget class="QPushButton" name="upButton">
-     <property name="text">
-      <string>&amp;Up</string>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="1">
-    <widget class="QPushButton" name="downButton">
-     <property name="text">
-      <string>&amp;Down</string>
-     </property>
-    </widget>
-   </item>
-   <item row="3" column="1">
-    <widget class="QPushButton" name="removeButton">
-     <property name="text">
-      <string>&amp;Remove</string>
-     </property>
-    </widget>
-   </item>
-   <item row="4" column="1">
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>77</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item row="5" column="0">
-    <widget class="QComboBox" name="addCombo"/>
-   </item>
-   <item row="5" column="1">
-    <widget class="QPushButton" name="addButton">
-     <property name="text">
-      <string>&amp;Add</string>
-     </property>
-    </widget>
-   </item>
-   <item row="6" column="0" colspan="2">
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>languagesList</tabstop>
-  <tabstop>upButton</tabstop>
-  <tabstop>downButton</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>addCombo</tabstop>
-  <tabstop>addButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>HelpLanguagesDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>HelpLanguagesDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/HelpSearchWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a window for showing the QtHelp index.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl
-from PyQt5.QtWidgets import QWidget, QVBoxLayout, QTextBrowser, QApplication, \
-    QMenu
-
-
-class HelpSearchWidget(QWidget):
-    """
-    Class implementing a window for showing the QtHelp index.
-    
-    @signal linkActivated(QUrl) emitted when a search result entry is activated
-    @signal escapePressed() emitted when the ESC key was pressed
-    """
-    linkActivated = pyqtSignal(QUrl)
-    escapePressed = pyqtSignal()
-    
-    def __init__(self, engine, mainWindow, parent=None):
-        """
-        Constructor
-        
-        @param engine reference to the help search engine (QHelpSearchEngine)
-        @param mainWindow reference to the main window object (QMainWindow)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(HelpSearchWidget, self).__init__(parent)
-        
-        self.__engine = engine
-        self.__mw = mainWindow
-        
-        self.__layout = QVBoxLayout(self)
-        
-        self.__result = self.__engine.resultWidget()
-        self.__query = self.__engine.queryWidget()
-        
-        self.__layout.addWidget(self.__query)
-        self.__layout.addWidget(self.__result)
-        
-        self.setFocusProxy(self.__query)
-        
-        self.__query.search.connect(self.__search)
-        self.__result.requestShowLink.connect(self.__linkActivated)
-        
-        self.__engine.searchingStarted.connect(self.__searchingStarted)
-        self.__engine.searchingFinished.connect(self.__searchingFinished)
-        
-        self.__browser = self.__result.findChildren(QTextBrowser)[0]
-    
-    def __search(self):
-        """
-        Private slot to perform a search of the database.
-        """
-        query = self.__query.query()
-        self.__engine.search(query)
-    
-    def __searchingStarted(self):
-        """
-        Private slot to handle the start of a search.
-        """
-        QApplication.setOverrideCursor(Qt.WaitCursor)
-    
-    def __searchingFinished(self, hits):
-        """
-        Private slot to handle the end of the search.
-        
-        @param hits number of hits (integer) (unused)
-        """
-        QApplication.restoreOverrideCursor()
-    
-    @pyqtSlot(QUrl)
-    def __linkActivated(self, url):
-        """
-        Private slot handling the activation of an entry.
-        
-        @param url URL of the activated entry
-        @type QUrl
-        """
-        if not url.isEmpty() and url.isValid():
-            buttons = QApplication.mouseButtons()
-            modifiers = QApplication.keyboardModifiers()
-            
-            if buttons & Qt.MidButton:
-                self.__mw.newTab(url)
-            else:
-                if modifiers & Qt.ControlModifier:
-                    self.__mw.newTab(url)
-                else:
-                    self.linkActivated.emit(url)
-    
-    def keyPressEvent(self, evt):
-        """
-        Protected method handling key press events.
-        
-        @param evt reference to the key press event (QKeyEvent)
-        """
-        if evt.key() == Qt.Key_Escape:
-            self.escapePressed.emit()
-        else:
-            evt.ignore()
-    
-    def contextMenuEvent(self, evt):
-        """
-        Protected method handling context menu events.
-        
-        @param evt reference to the context menu event (QContextMenuEvent)
-        """
-        point = evt.globalPos()
-        
-        if self.__browser:
-            point = self.__browser.mapFromGlobal(point)
-            if not self.__browser.rect().contains(point, True):
-                return
-            link = QUrl(self.__browser.anchorAt(point))
-        else:
-            point = self.__result.mapFromGlobal(point)
-            link = self.__result.linkAt(point)
-        
-        if link.isEmpty() or not link.isValid():
-            return
-        
-        menu = QMenu()
-        curTab = menu.addAction(self.tr("Open Link"))
-        newTab = menu.addAction(self.tr("Open Link in New Tab"))
-        menu.move(evt.globalPos())
-        act = menu.exec_()
-        if act == curTab:
-            self.linkActivated.emit(link)
-        elif act == newTab:
-            self.__mw.newTab(link)
--- a/eric6/Helpviewer/HelpSingleApplication.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,195 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2018 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-
-"""
-Module implementing the single application server and client for the web
-browser.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSignal
-
-from Toolbox.SingleApplication import SingleApplicationClient, \
-    SingleApplicationServer
-
-import Globals
-
-###########################################################################
-## define some module global stuff
-###########################################################################
-
-SAFile = "eric6_help"
-
-# define the protocol tokens
-SALoadUrl = 'LoadUrl'
-SANewTab = 'NewTab'
-SASearch = 'Search'
-SAShutdown = 'Shutdown'
-
-
-class HelpSingleApplicationServer(SingleApplicationServer):
-    """
-    Class implementing the single application server embedded within the
-    Help viewer.
-    
-    @signal loadUrl(str) emitted to load an URL
-    @signal newTab(str) emitted to load an URL in a new tab
-    @signal search(str) emitted to search for a given word
-    @signal shutdown() emitted to shut down the browser
-    """
-    loadUrl = pyqtSignal(str)
-    newTab = pyqtSignal(str)
-    search = pyqtSignal(str)
-    shutdown = pyqtSignal()
-    
-    def __init__(self, name=""):
-        """
-        Constructor
-        
-        @param name name to be used by the single application server
-        @type str
-        """
-        if not name:
-            name = SAFile
-        
-        SingleApplicationServer.__init__(self, name)
-
-    def handleCommand(self, command, arguments):
-        """
-        Public slot to handle the command sent by the client.
-        
-        @param command command sent by the client
-        @type str
-        @param arguments list of command arguments
-        @type list of str
-        """
-        if command == SALoadUrl:
-            self.__saLoadUrl(arguments[0])
-        
-        elif command == SANewTab:
-            self.__saNewTab(arguments[0])
-        
-        elif command == SASearch:
-            self.__saSearch(arguments[0])
-        
-        elif command == SAShutdown:
-            self.__saShutdown()
-    
-    def __saLoadUrl(self, url):
-        """
-        Private method to load an URL in a new tab.
-        
-        @param url URL to be loaded
-        @type str
-        """
-        self.loadUrl.emit(url)
-    
-    def __saNewTab(self, url):
-        """
-        Private method to load an URL .
-        
-        @param url URL to be loaded
-        @type str
-        """
-        self.newTab.emit(url)
-    
-    def __saSearch(self, word):
-        """
-        Private method to search for a given word.
-        
-        @param word word to be searched for
-        @type str
-        """
-        self.search.emit(word)
-    
-    def __saShutdown(self):
-        """
-        Private method to shut down the web browser.
-        """
-        self.shutdown.emit()
-
-
-class HelpSingleApplicationClient(SingleApplicationClient):
-    """
-    Class implementing the single application client of the help viewer.
-    """
-    def __init__(self, name=""):
-        """
-        Constructor
-        
-        @param name name to be used by the single application server
-        @type str
-        """
-        if not name:
-            name = SAFile
-        
-        SingleApplicationClient.__init__(self, name)
-    
-    def processArgs(self, args, disconnect=True):
-        """
-        Public method to process the command line args passed to the UI.
-        
-        @param args list of command line arguments
-        @type list of str
-        @param disconnect flag indicating to disconnect when done
-        @type bool
-        """
-        # no args, return
-        if args is None:
-            return
-        
-        if Globals.isWindowsPlatform():
-            argChars = ('-', '/')
-        else:
-            argChars = ('-', )
-        
-        for arg in args:
-            if arg.startswith("--search="):
-                self.__search(arg.replace("--search=", ""))
-            elif arg.startswith("--newtab="):
-                self.__newTab(arg.replace("--newtab=", ""))
-            elif arg == "--shutdown":
-                self.__shutdown()
-            elif not arg.startswith(argChars):
-                # it is an URL
-                self.__loadUrl(arg)
-        
-        if disconnect:
-            self.disconnect()
-    
-    def __loadUrl(self, url):
-        """
-        Private method to send an URL to be loaded.
-        
-        @param url URL to be loaded
-        @type str
-        """
-        self.sendCommand(SALoadUrl, [url])
-    
-    def __newTab(self, url):
-        """
-        Private method to send an URL to be loaded in a new tab.
-        
-        @param url URL to be loaded
-        @type str
-        """
-        self.sendCommand(SANewTab, [url])
-    
-    def __search(self, word):
-        """
-        Private method to send a word to search for.
-        
-        @param word to to be searched for
-        @type str
-        """
-        self.sendCommand(SASearch, [word])
-    
-    def __shutdown(self):
-        """
-        Private method to signal a shutdown request to the browser.
-        """
-        self.sendCommand(SAShutdown, [])
--- a/eric6/Helpviewer/HelpSnap.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing functions to generate page previews.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QSize, Qt
-from PyQt5.QtGui import QPixmap, QPainter
-from PyQt5.QtWebKitWidgets import QWebFrame
-
-
-def renderTabPreview(page, w, h):
-    """
-    Public function to render a pixmap of a page.
-    
-    @param page reference to the page to be previewed (QWebPage)
-    @param w width of the preview pixmap (integer)
-    @param h height of the preview pixmap (integer)
-    @return preview pixmap (QPixmap)
-    """
-    oldSize = page.viewportSize()
-    width = page.mainFrame().contentsSize().width()
-    page.setViewportSize(QSize(width, int(width * h / w)))
-    pageImage = __render(page, page.viewportSize().width(),
-                         page.viewportSize().height())
-    page.setViewportSize(oldSize)
-    return pageImage.scaled(
-        w, h, Qt.IgnoreAspectRatio, Qt.SmoothTransformation)
-
-
-def __render(page, w, h):
-    """
-    Private function to render a pixmap of given size for a web page.
-    
-    @param page reference to the page to be rendered (QWebPage)
-    @param w width of the pixmap (integer)
-    @param h height of the pixmap (integer)
-    @return rendered pixmap (QPixmap)
-    """
-    # create the page image
-    pageImage = QPixmap(w, h)
-    pageImage.fill(Qt.transparent)
-    
-    # render it
-    p = QPainter(pageImage)
-    page.mainFrame().render(p, QWebFrame.ContentsLayer)
-    p.end()
-    
-    return pageImage
--- a/eric6/Helpviewer/HelpTabBar.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,169 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a specialized tab bar for the web browser.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt, QPoint, QTimer, QEvent
-from PyQt5.QtWidgets import QFrame, QLabel
-
-from E5Gui.E5TabWidget import E5WheelTabBar
-from E5Gui.E5PassivePopup import E5PassivePopup
-
-import Preferences
-
-
-class HelpTabBar(E5WheelTabBar):
-    """
-    Class implementing the tab bar of the web browser.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (HelpTabWidget)
-        """
-        E5WheelTabBar.__init__(self, parent)
-        
-        self.__tabWidget = parent
-        
-        self.__previewPopup = None
-        
-        self.setMouseTracking(True)
-    
-    def __showTabPreview(self, index):
-        """
-        Private slot to show the tab preview.
-        
-        @param index index of tab to show a preview for
-        @type int
-        """
-        indexedBrowser = self.__tabWidget.browserAt(index)
-        currentBrowser = self.__tabWidget.currentBrowser()
-        
-        if indexedBrowser is None or currentBrowser is None:
-            return
-        
-        # no previews during load
-        if indexedBrowser.progress() != 0:
-            return
-        
-        w = self.tabSizeHint(index).width()
-        h = int(w * currentBrowser.height() / currentBrowser.width())
-        
-        self.__previewPopup = E5PassivePopup(self)
-        self.__previewPopup.setFrameShape(QFrame.StyledPanel)
-        self.__previewPopup.setFrameShadow(QFrame.Plain)
-        self.__previewPopup.setFixedSize(w, h)
-        self.__previewPopup.setCustomData("index", index)
-        
-        from .HelpSnap import renderTabPreview
-        label = QLabel()
-        label.setPixmap(renderTabPreview(indexedBrowser.page(), w, h))
-        
-        self.__previewPopup.setView(label)
-        self.__previewPopup.layout().setAlignment(Qt.AlignTop)
-        self.__previewPopup.layout().setContentsMargins(0, 0, 0, 0)
-        
-        tr = self.tabRect(index)
-        pos = QPoint(tr.x(), tr.y() + tr.height())
-        
-        self.__previewPopup.show(self.mapToGlobal(pos))
-    
-    def __hidePreview(self):
-        """
-        Private method to hide the preview.
-        """
-        if self.__previewPopup is not None:
-            self.__previewPopup.hide()
-        self.__previewPopup = None
-    
-    def mouseMoveEvent(self, evt):
-        """
-        Protected method to handle mouse move events.
-        
-        @param evt reference to the mouse move event (QMouseEvent)
-        """
-        if self.count() == 1:
-            return
-        
-        E5WheelTabBar.mouseMoveEvent(self, evt)
-        
-        if Preferences.getHelp("ShowPreview"):
-            # Find the tab under the mouse
-            i = 0
-            tabIndex = -1
-            while i < self.count() and tabIndex == -1:
-                if self.tabRect(i).contains(evt.pos()):
-                    tabIndex = i
-                i += 1
-            
-            # If found and not the current tab then show tab preview
-            if tabIndex != -1 and \
-               tabIndex != self.currentIndex() and \
-               evt.buttons() == Qt.NoButton:
-                if self.__previewPopup is None or \
-                    (self.__previewPopup is not None and
-                     self.__previewPopup.getCustomData("index") != tabIndex):
-                    QTimer.singleShot(
-                        0, lambda: self.__showTabPreview(tabIndex))
-            
-            # If current tab or not found then hide previous tab preview
-            if tabIndex == self.currentIndex() or \
-               tabIndex == -1:
-                self.__hidePreview()
-    
-    def leaveEvent(self, evt):
-        """
-        Protected method to handle leave events.
-        
-        @param evt reference to the leave event (QEvent)
-        """
-        if Preferences.getHelp("ShowPreview"):
-            # If leave tabwidget then hide previous tab preview
-            self.__hidePreview()
-        
-        E5WheelTabBar.leaveEvent(self, evt)
-    
-    def mousePressEvent(self, evt):
-        """
-        Protected method to handle mouse press events.
-        
-        @param evt reference to the mouse press event (QMouseEvent)
-        """
-        if Preferences.getHelp("ShowPreview"):
-            self.__hidePreview()
-        
-        E5WheelTabBar.mousePressEvent(self, evt)
-    
-    def event(self, evt):
-        """
-        Public method to handle event.
-        
-        This event handler just handles the tooltip event and passes the
-        handling of all others to the superclass.
-        
-        @param evt reference to the event to be handled (QEvent)
-        @return flag indicating, if the event was handled (boolean)
-        """
-        if evt.type() == QEvent.ToolTip and \
-           Preferences.getHelp("ShowPreview"):
-            # suppress tool tips if we are showing previews
-            evt.setAccepted(True)
-            return True
-        
-        return E5WheelTabBar.event(self, evt)
-    
-    def tabRemoved(self, index):
-        """
-        Public slot to handle the removal of a tab.
-        
-        @param index index of the removed tab (integer)
-        """
-        if Preferences.getHelp("ShowPreview"):
-            self.__hidePreview()
--- a/eric6/Helpviewer/HelpTabWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1007 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the central widget showing the web pages.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl
-from PyQt5.QtGui import QIcon
-from PyQt5.QtWidgets import QWidget, QHBoxLayout, QMenu, QToolButton, QDialog
-from PyQt5.QtPrintSupport import QPrinter, QPrintDialog
-from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
-
-from E5Gui.E5TabWidget import E5TabWidget
-from E5Gui import E5MessageBox
-from E5Gui.E5Application import e5App
-
-from .HelpBrowserWV import HelpBrowser
-
-import UI.PixmapCache
-
-import Utilities
-import Preferences
-import Globals
-
-from eric6config import getConfig
-
-
-class HelpTabWidget(E5TabWidget):
-    """
-    Class implementing the central widget showing the web pages.
-    
-    @signal sourceChanged(HelpBrowser, QUrl) emitted after the URL of a browser
-        has changed
-    @signal titleChanged(HelpBrowser, str) emitted after the title of a browser
-        has changed
-    @signal showMessage(str) emitted to show a message in the main window
-        status bar
-    @signal browserClosed(QWidget) emitted after a browser was closed
-    @signal browserZoomValueChanged(int) emitted to signal a change of the
-        current browser's zoom level
-    """
-    sourceChanged = pyqtSignal(HelpBrowser, QUrl)
-    titleChanged = pyqtSignal(HelpBrowser, str)
-    showMessage = pyqtSignal(str)
-    browserClosed = pyqtSignal(QWidget)
-    browserZoomValueChanged = pyqtSignal(int)
-    
-    def __init__(self, parent):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        E5TabWidget.__init__(self, parent, dnd=True)
-        
-        from .HelpTabBar import HelpTabBar
-        self.__tabBar = HelpTabBar(self)
-        self.setCustomTabBar(True, self.__tabBar)
-        
-        self.__mainWindow = parent
-        
-        self.setUsesScrollButtons(True)
-        self.setDocumentMode(True)
-        self.setElideMode(Qt.ElideNone)
-        
-        from .ClosedTabsManager import ClosedTabsManager
-        self.__closedTabsManager = ClosedTabsManager(self)
-        self.__closedTabsManager.closedTabAvailable.connect(
-            self.__closedTabAvailable)
-        
-        from .UrlBar.StackedUrlBar import StackedUrlBar
-        self.__stackedUrlBar = StackedUrlBar(self)
-        self.__tabBar.tabMoved.connect(self.__stackedUrlBar.moveBar)
-        
-        self.__tabContextMenuIndex = -1
-        self.currentChanged[int].connect(self.__currentChanged)
-        self.setTabContextMenuPolicy(Qt.CustomContextMenu)
-        self.customTabContextMenuRequested.connect(self.__showContextMenu)
-        
-        self.__rightCornerWidget = QWidget(self)
-        self.__rightCornerWidgetLayout = QHBoxLayout(self.__rightCornerWidget)
-        self.__rightCornerWidgetLayout.setContentsMargins(0, 0, 0, 0)
-        self.__rightCornerWidgetLayout.setSpacing(0)
-        
-        self.__navigationMenu = QMenu(self)
-        self.__navigationMenu.aboutToShow.connect(self.__showNavigationMenu)
-        self.__navigationMenu.triggered.connect(self.__navigationMenuTriggered)
-        
-        self.__navigationButton = QToolButton(self)
-        self.__navigationButton.setIcon(
-            UI.PixmapCache.getIcon("1downarrow.png"))
-        self.__navigationButton.setToolTip(
-            self.tr("Show a navigation menu"))
-        self.__navigationButton.setPopupMode(QToolButton.InstantPopup)
-        self.__navigationButton.setMenu(self.__navigationMenu)
-        self.__navigationButton.setEnabled(False)
-        self.__rightCornerWidgetLayout.addWidget(self.__navigationButton)
-        
-        self.__closedTabsMenu = QMenu(self)
-        self.__closedTabsMenu.aboutToShow.connect(
-            self.__aboutToShowClosedTabsMenu)
-        
-        self.__closedTabsButton = QToolButton(self)
-        self.__closedTabsButton.setIcon(UI.PixmapCache.getIcon("trash.png"))
-        self.__closedTabsButton.setToolTip(
-            self.tr("Show a navigation menu for closed tabs"))
-        self.__closedTabsButton.setPopupMode(QToolButton.InstantPopup)
-        self.__closedTabsButton.setMenu(self.__closedTabsMenu)
-        self.__closedTabsButton.setEnabled(False)
-        self.__rightCornerWidgetLayout.addWidget(self.__closedTabsButton)
-        
-        self.setTabsClosable(True)
-        self.tabCloseRequested.connect(self.closeBrowserAt)
-        
-        self.setCornerWidget(self.__rightCornerWidget, Qt.TopRightCorner)
-        
-        self.__newTabButton = QToolButton(self)
-        self.__newTabButton.setIcon(UI.PixmapCache.getIcon("plus.png"))
-        self.__newTabButton.setToolTip(
-            self.tr("Open a new help window tab"))
-        self.setCornerWidget(self.__newTabButton, Qt.TopLeftCorner)
-        self.__newTabButton.clicked.connect(self.__newBrowser)
-        
-        self.__initTabContextMenu()
-        
-        self.__historyCompleter = None
-    
-    def __initTabContextMenu(self):
-        """
-        Private method to create the tab context menu.
-        """
-        self.__tabContextMenu = QMenu(self)
-        self.tabContextNewAct = self.__tabContextMenu.addAction(
-            UI.PixmapCache.getIcon("tabNew.png"),
-            self.tr('New Tab'), self.newBrowser)
-        self.__tabContextMenu.addSeparator()
-        self.leftMenuAct = self.__tabContextMenu.addAction(
-            UI.PixmapCache.getIcon("1leftarrow.png"),
-            self.tr('Move Left'), self.__tabContextMenuMoveLeft)
-        self.rightMenuAct = self.__tabContextMenu.addAction(
-            UI.PixmapCache.getIcon("1rightarrow.png"),
-            self.tr('Move Right'), self.__tabContextMenuMoveRight)
-        self.__tabContextMenu.addSeparator()
-        self.tabContextCloneAct = self.__tabContextMenu.addAction(
-            self.tr("Duplicate Page"), self.__tabContextMenuClone)
-        self.__tabContextMenu.addSeparator()
-        self.tabContextCloseAct = self.__tabContextMenu.addAction(
-            UI.PixmapCache.getIcon("tabClose.png"),
-            self.tr('Close'), self.__tabContextMenuClose)
-        self.tabContextCloseOthersAct = self.__tabContextMenu.addAction(
-            UI.PixmapCache.getIcon("tabCloseOther.png"),
-            self.tr("Close Others"), self.__tabContextMenuCloseOthers)
-        self.__tabContextMenu.addAction(
-            self.tr('Close All'), self.closeAllBrowsers)
-        self.__tabContextMenu.addSeparator()
-        self.__tabContextMenu.addAction(
-            UI.PixmapCache.getIcon("printPreview.png"),
-            self.tr('Print Preview'), self.__tabContextMenuPrintPreview)
-        self.__tabContextMenu.addAction(
-            UI.PixmapCache.getIcon("print.png"),
-            self.tr('Print'), self.__tabContextMenuPrint)
-        if Globals.isLinuxPlatform():
-            self.__tabContextMenu.addAction(
-                UI.PixmapCache.getIcon("printPdf.png"),
-                self.tr('Print as PDF'), self.__tabContextMenuPrintPdf)
-        self.__tabContextMenu.addSeparator()
-        self.__tabContextMenu.addAction(
-            UI.PixmapCache.getIcon("reload.png"),
-            self.tr('Reload All'), self.reloadAllBrowsers)
-        self.__tabContextMenu.addSeparator()
-        self.__tabContextMenu.addAction(
-            UI.PixmapCache.getIcon("addBookmark.png"),
-            self.tr('Bookmark All Tabs'), self.__mainWindow.bookmarkAll)
-        
-        self.__tabBackContextMenu = QMenu(self)
-        self.__tabBackContextMenu.addAction(
-            self.tr('Close All'), self.closeAllBrowsers)
-        self.__tabBackContextMenu.addAction(
-            UI.PixmapCache.getIcon("reload.png"),
-            self.tr('Reload All'), self.reloadAllBrowsers)
-        self.__tabBackContextMenu.addAction(
-            UI.PixmapCache.getIcon("addBookmark.png"),
-            self.tr('Bookmark All Tabs'), self.__mainWindow.bookmarkAll)
-        self.__tabBackContextMenu.addSeparator()
-        self.__restoreClosedTabAct = self.__tabBackContextMenu.addAction(
-            UI.PixmapCache.getIcon("trash.png"),
-            self.tr('Restore Closed Tab'))
-        self.__restoreClosedTabAct.setEnabled(False)
-        self.__restoreClosedTabAct.setData(0)
-        self.__restoreClosedTabAct.triggered.connect(
-            lambda: self.restoreClosedTab(self.__restoreClosedTabAct))
-    
-    def __showContextMenu(self, coord, index):
-        """
-        Private slot to show the tab context menu.
-        
-        @param coord the position of the mouse pointer (QPoint)
-        @param index index of the tab the menu is requested for (integer)
-        """
-        coord = self.mapToGlobal(coord)
-        if index == -1:
-            self.__tabBackContextMenu.popup(coord)
-        else:
-            self.__tabContextMenuIndex = index
-            self.leftMenuAct.setEnabled(index > 0)
-            self.rightMenuAct.setEnabled(index < self.count() - 1)
-            
-            self.tabContextCloseOthersAct.setEnabled(self.count() > 1)
-            
-            self.__tabContextMenu.popup(coord)
-    
-    def __tabContextMenuMoveLeft(self):
-        """
-        Private method to move a tab one position to the left.
-        """
-        self.moveTab(self.__tabContextMenuIndex,
-                     self.__tabContextMenuIndex - 1)
-    
-    def __tabContextMenuMoveRight(self):
-        """
-        Private method to move a tab one position to the right.
-        """
-        self.moveTab(self.__tabContextMenuIndex,
-                     self.__tabContextMenuIndex + 1)
-    
-    def __tabContextMenuClone(self):
-        """
-        Private method to clone the selected tab.
-        """
-        idx = self.__tabContextMenuIndex
-        if idx < 0:
-            idx = self.currentIndex()
-        if idx < 0 or idx > self.count():
-            return
-        
-        req = QNetworkRequest(self.widget(idx).url())
-        req.setRawHeader(b"X-Eric6-UserLoadAction", b"1")
-        self.newBrowser(None, (req, QNetworkAccessManager.GetOperation, b""))
-    
-    def __tabContextMenuClose(self):
-        """
-        Private method to close the selected tab.
-        """
-        self.closeBrowserAt(self.__tabContextMenuIndex)
-    
-    def __tabContextMenuCloseOthers(self):
-        """
-        Private slot to close all other tabs.
-        """
-        index = self.__tabContextMenuIndex
-        for i in list(range(self.count() - 1, index, -1)) + \
-                list(range(index - 1, -1, -1)):
-            self.closeBrowserAt(i)
-    
-    def __tabContextMenuPrint(self):
-        """
-        Private method to print the selected tab.
-        """
-        browser = self.widget(self.__tabContextMenuIndex)
-        self.printBrowser(browser)
-    
-    def __tabContextMenuPrintPdf(self):
-        """
-        Private method to print the selected tab as PDF.
-        """
-        browser = self.widget(self.__tabContextMenuIndex)
-        self.printBrowserPdf(browser)
-    
-    def __tabContextMenuPrintPreview(self):
-        """
-        Private method to show a print preview of the selected tab.
-        """
-        browser = self.widget(self.__tabContextMenuIndex)
-        self.printPreviewBrowser(browser)
-    
-    @pyqtSlot()
-    def __newBrowser(self):
-        """
-        Private slot to open a new browser tab.
-        """
-        self.newBrowser()
-    
-    def newBrowser(self, link=None, requestData=None, position=-1):
-        """
-        Public method to create a new web browser tab.
-        
-        @param link link to be shown (string or QUrl)
-        @param requestData tuple containing the request data (QNetworkRequest,
-            QNetworkAccessManager.Operation, QByteArray)
-        @keyparam position position to create the new tab at or -1 to add it
-            to the end (integer)
-        """
-        if link is None:
-            linkName = ""
-        elif isinstance(link, QUrl):
-            linkName = link.toString()
-        else:
-            linkName = link
-        
-        from .UrlBar.UrlBar import UrlBar
-        urlbar = UrlBar(self.__mainWindow, self)
-        if self.__historyCompleter is None:
-            import Helpviewer.HelpWindow
-            from .History.HistoryCompleter import HistoryCompletionModel, \
-                HistoryCompleter
-            self.__historyCompletionModel = HistoryCompletionModel(self)
-            self.__historyCompletionModel.setSourceModel(
-                Helpviewer.HelpWindow.HelpWindow.historyManager()
-                .historyFilterModel())
-            self.__historyCompleter = HistoryCompleter(
-                self.__historyCompletionModel, self)
-            self.__historyCompleter.activated[str].connect(self.__pathSelected)
-        urlbar.setCompleter(self.__historyCompleter)
-        urlbar.returnPressed.connect(
-            lambda: self.__lineEditReturnPressed(urlbar))
-        if position == -1:
-            self.__stackedUrlBar.addWidget(urlbar)
-        else:
-            self.__stackedUrlBar.insertWidget(position, urlbar)
-        
-        browser = HelpBrowser(self.__mainWindow, self)
-        urlbar.setBrowser(browser)
-        
-        browser.sourceChanged.connect(
-            lambda url: self.__sourceChanged(url, browser))
-        browser.titleChanged.connect(
-            lambda title: self.__titleChanged(title, browser))
-        browser.highlighted.connect(self.showMessage)
-        browser.backwardAvailable.connect(
-            self.__mainWindow.setBackwardAvailable)
-        browser.forwardAvailable.connect(self.__mainWindow.setForwardAvailable)
-        browser.loadStarted.connect(
-            lambda: self.__loadStarted(browser))
-        browser.loadFinished.connect(self.__loadFinished)
-        browser.iconChanged.connect(
-            lambda: self.__iconChanged(browser))
-        browser.search.connect(self.newBrowser)
-        browser.page().windowCloseRequested.connect(
-            lambda: self.__windowCloseRequested(browser.page()))
-        browser.page().printRequested.connect(self.__printRequested)
-        browser.zoomValueChanged.connect(self.browserZoomValueChanged)
-        
-        if position == -1:
-            index = self.addTab(browser, self.tr("..."))
-        else:
-            index = self.insertTab(position, browser, self.tr("..."))
-        self.setCurrentIndex(index)
-        
-        self.__mainWindow.closeAct.setEnabled(True)
-        self.__mainWindow.closeAllAct.setEnabled(True)
-        self.__navigationButton.setEnabled(True)
-        
-        if not linkName and not requestData:
-            if Preferences.getHelp("StartupBehavior") == 0:
-                linkName = Preferences.getHelp("HomePage")
-            elif Preferences.getHelp("StartupBehavior") == 1:
-                linkName = "eric:speeddial"
-        
-        if linkName:
-            browser.setSource(QUrl(linkName))
-            if not browser.documentTitle():
-                self.setTabText(index, self.__elide(linkName, Qt.ElideMiddle))
-                self.setTabToolTip(index, linkName)
-            else:
-                self.setTabText(
-                    index,
-                    self.__elide(browser.documentTitle().replace("&", "&&")))
-                self.setTabToolTip(index, browser.documentTitle())
-        elif requestData:
-            browser.load(*requestData)
-    
-    def newBrowserAfter(self, browser, link=None, requestData=None):
-        """
-        Public method to create a new web browser tab after a given one.
-        
-        @param browser reference to the browser to add after (HelpBrowser)
-        @param link link to be shown (string or QUrl)
-        @param requestData tuple containing the request data (QNetworkRequest,
-            QNetworkAccessManager.Operation, QByteArray)
-        """
-        if browser:
-            position = self.indexOf(browser) + 1
-        else:
-            position = -1
-        self.newBrowser(link, requestData, position)
-    
-    def __showNavigationMenu(self):
-        """
-        Private slot to show the navigation button menu.
-        """
-        self.__navigationMenu.clear()
-        for index in range(self.count()):
-            act = self.__navigationMenu.addAction(
-                self.tabIcon(index), self.tabText(index))
-            act.setData(index)
-    
-    def __navigationMenuTriggered(self, act):
-        """
-        Private slot called to handle the navigation button menu selection.
-        
-        @param act reference to the selected action (QAction)
-        """
-        index = act.data()
-        if index is not None:
-            self.setCurrentIndex(index)
-    
-    def __windowCloseRequested(self, page):
-        """
-        Private slot to handle the windowCloseRequested signal of a browser.
-        
-        @param page reference to the web page
-        @type HelpWebPage
-        """
-        browser = page.view()
-        if browser is None:
-            return
-        
-        index = self.indexOf(browser)
-        self.closeBrowserAt(index)
-    
-    def reloadAllBrowsers(self):
-        """
-        Public slot to reload all browsers.
-        """
-        for index in range(self.count()):
-            browser = self.widget(index)
-            browser and browser.reload()
-    
-    @pyqtSlot()
-    def closeBrowser(self):
-        """
-        Public slot called to handle the close action.
-        """
-        self.closeBrowserAt(self.currentIndex())
-    
-    def closeAllBrowsers(self):
-        """
-        Public slot called to handle the close all action.
-        """
-        for index in range(self.count() - 1, -1, -1):
-            self.closeBrowserAt(index)
-    
-    def closeBrowserAt(self, index):
-        """
-        Public slot to close a browser based on its index.
-        
-        @param index index of browser to close (integer)
-        """
-        browser = self.widget(index)
-        if browser is None:
-            return
-        
-        if browser.isModified():
-            ok = E5MessageBox.yesNo(
-                self,
-                self.tr("Do you really want to close this page?"),
-                self.tr("""You have modified this page and when closing it"""
-                        """ you would lose the modification.\nDo you really"""
-                        """ want to close this page?"""))
-            if not ok:
-                return
-        
-        urlbar = self.__stackedUrlBar.widget(index)
-        self.__stackedUrlBar.removeWidget(urlbar)
-        urlbar.deleteLater()
-        del urlbar
-        
-        self.__closedTabsManager.recordBrowser(browser, index)
-        
-        browser.closeWebInspector()
-        browser.home()
-        self.removeTab(index)
-        self.browserClosed.emit(browser)
-        browser.deleteLater()
-        del browser
-        
-        if self.count() == 0:
-            self.newBrowser()
-        else:
-            self.currentChanged[int].emit(self.currentIndex())
-    
-    def currentBrowser(self):
-        """
-        Public method to get a reference to the current browser.
-        
-        @return reference to the current browser (HelpBrowser)
-        """
-        return self.currentWidget()
-    
-    def browserAt(self, index):
-        """
-        Public method to get a reference to the browser with the given index.
-        
-        @param index index of the browser to get (integer)
-        @return reference to the indexed browser (HelpBrowser)
-        """
-        return self.widget(index)
-    
-    def browsers(self):
-        """
-        Public method to get a list of references to all browsers.
-        
-        @return list of references to browsers (list of HelpBrowser)
-        """
-        li = []
-        for index in range(self.count()):
-            li.append(self.widget(index))
-        return li
-    
-    @pyqtSlot()
-    def printBrowser(self, browser=None):
-        """
-        Public slot called to print the displayed page.
-        
-        @param browser reference to the browser to be printed (HelpBrowser)
-        """
-        if browser is None:
-            browser = self.currentBrowser()
-        
-        self.__printRequested(browser.page().mainFrame())
-    
-    def __printRequested(self, frame):
-        """
-        Private slot to handle a print request.
-        
-        @param frame reference to the frame to be printed (QWebFrame)
-        """
-        printer = QPrinter(mode=QPrinter.HighResolution)
-        if Preferences.getPrinter("ColorMode"):
-            printer.setColorMode(QPrinter.Color)
-        else:
-            printer.setColorMode(QPrinter.GrayScale)
-        if Preferences.getPrinter("FirstPageFirst"):
-            printer.setPageOrder(QPrinter.FirstPageFirst)
-        else:
-            printer.setPageOrder(QPrinter.LastPageFirst)
-        printer.setPageMargins(
-            Preferences.getPrinter("LeftMargin") * 10,
-            Preferences.getPrinter("TopMargin") * 10,
-            Preferences.getPrinter("RightMargin") * 10,
-            Preferences.getPrinter("BottomMargin") * 10,
-            QPrinter.Millimeter
-        )
-        printerName = Preferences.getPrinter("PrinterName")
-        if printerName:
-            printer.setPrinterName(printerName)
-        
-        printDialog = QPrintDialog(printer, self)
-        if printDialog.exec_() == QDialog.Accepted:
-            try:
-                frame.print_(printer)
-            except AttributeError:
-                E5MessageBox.critical(
-                    self,
-                    self.tr("eric6 Web Browser"),
-                    self.tr(
-                        """<p>Printing is not available due to a bug in"""
-                        """ PyQt5. Please upgrade.</p>"""))
-                return
-    
-    @pyqtSlot()
-    def printBrowserPdf(self, browser=None):
-        """
-        Public slot called to print the displayed page to PDF.
-        
-        @param browser reference to the browser to be printed (HelpBrowser)
-        """
-        if browser is None:
-            browser = self.currentBrowser()
-        
-        self.__printPdfRequested(browser.page().mainFrame())
-    
-    def __printPdfRequested(self, frame):
-        """
-        Private slot to handle a print to PDF request.
-        
-        @param frame reference to the frame to be printed (QWebFrame)
-        """
-        printer = QPrinter(mode=QPrinter.HighResolution)
-        if Preferences.getPrinter("ColorMode"):
-            printer.setColorMode(QPrinter.Color)
-        else:
-            printer.setColorMode(QPrinter.GrayScale)
-        printerName = Preferences.getPrinter("PrinterName")
-        if printerName:
-            printer.setPrinterName(printerName)
-        printer.setOutputFormat(QPrinter.PdfFormat)
-        name = frame.url().path().rsplit('/', 1)[-1]
-        if name:
-            name = name.rsplit('.', 1)[0]
-            name += '.pdf'
-            printer.setOutputFileName(name)
-        
-        printDialog = QPrintDialog(printer, self)
-        if printDialog.exec_() == QDialog.Accepted:
-            try:
-                frame.print_(printer)
-            except AttributeError:
-                E5MessageBox.critical(
-                    self,
-                    self.tr("eric6 Web Browser"),
-                    self.tr(
-                        """<p>Printing is not available due to a bug in"""
-                        """ PyQt5. Please upgrade.</p>"""))
-                return
-    
-    @pyqtSlot()
-    def printPreviewBrowser(self, browser=None):
-        """
-        Public slot called to show a print preview of the displayed file.
-        
-        @param browser reference to the browser to be printed (HelpBrowserWV)
-        """
-        from PyQt5.QtPrintSupport import QPrintPreviewDialog
-        
-        if browser is None:
-            browser = self.currentBrowser()
-        
-        printer = QPrinter(mode=QPrinter.HighResolution)
-        if Preferences.getPrinter("ColorMode"):
-            printer.setColorMode(QPrinter.Color)
-        else:
-            printer.setColorMode(QPrinter.GrayScale)
-        if Preferences.getPrinter("FirstPageFirst"):
-            printer.setPageOrder(QPrinter.FirstPageFirst)
-        else:
-            printer.setPageOrder(QPrinter.LastPageFirst)
-        printer.setPageMargins(
-            Preferences.getPrinter("LeftMargin") * 10,
-            Preferences.getPrinter("TopMargin") * 10,
-            Preferences.getPrinter("RightMargin") * 10,
-            Preferences.getPrinter("BottomMargin") * 10,
-            QPrinter.Millimeter
-        )
-        printerName = Preferences.getPrinter("PrinterName")
-        if printerName:
-            printer.setPrinterName(printerName)
-        
-        self.__printPreviewBrowser = browser
-        preview = QPrintPreviewDialog(printer, self)
-        preview.paintRequested.connect(self.__printPreview)
-        preview.exec_()
-    
-    def __printPreview(self, printer):
-        """
-        Private slot to generate a print preview.
-        
-        @param printer reference to the printer object (QPrinter)
-        """
-        try:
-            self.__printPreviewBrowser.print_(printer)
-        except AttributeError:
-            E5MessageBox.critical(
-                self,
-                self.tr("eric6 Web Browser"),
-                self.tr(
-                    """<p>Printing is not available due to a bug in PyQt5."""
-                    """Please upgrade.</p>"""))
-            return
-    
-    def __sourceChanged(self, url, browser):
-        """
-        Private slot to handle a change of a browsers source.
-        
-        @param url URL of the new site
-        @type QUrl
-        @param browser reference to the web browser
-        @type HelpBrowser
-        """
-        self.sourceChanged.emit(browser, url)
-    
-    def __titleChanged(self, title, browser):
-        """
-        Private slot to handle a change of a browsers title.
-        
-        @param title new title
-        @type str
-        @param browser reference to the web browser
-        @type HelpBrowser
-        """
-        index = self.indexOf(browser)
-        if title == "":
-            title = browser.url().toString()
-        
-        self.setTabText(index, self.__elide(title.replace("&", "&&")))
-        self.setTabToolTip(index, title)
-    
-        self.titleChanged.emit(browser, title)
-    
-    def __elide(self, txt, mode=Qt.ElideRight, length=40):
-        """
-        Private method to elide some text.
-        
-        @param txt text to be elided (string)
-        @keyparam mode elide mode (Qt.TextElideMode)
-        @keyparam length amount of characters to be used (integer)
-        @return the elided text (string)
-        """
-        if mode == Qt.ElideNone or len(txt) < length:
-            return txt
-        elif mode == Qt.ElideLeft:
-            return "...{0}".format(txt[-length:])
-        elif mode == Qt.ElideMiddle:
-            return "{0}...{1}".format(txt[:length // 2], txt[-(length // 2):])
-        elif mode == Qt.ElideRight:
-            return "{0}...".format(txt[:length])
-        else:
-            # just in case
-            return txt
-    
-    def preferencesChanged(self):
-        """
-        Public slot to handle a change of preferences.
-        """
-        for browser in self.browsers():
-            browser.preferencesChanged()
-        
-        for urlbar in self.__stackedUrlBar.urlBars():
-            urlbar.preferencesChanged()
-    
-    def __loadStarted(self, browser):
-        """
-        Private method to handle the loadStarted signal.
-        
-        @param browser reference to the web browser
-        @type HelpBrowser
-        """
-        index = self.indexOf(browser)
-        anim = self.animationLabel(
-            index, os.path.join(getConfig("ericPixDir"), "loading.gif"),
-            100)
-        if not anim:
-            loading = QIcon(os.path.join(getConfig("ericPixDir"),
-                            "loading.gif"))
-            self.setTabIcon(index, loading)
-        else:
-            self.setTabIcon(index, QIcon())
-        self.setTabText(index, self.tr("Loading..."))
-        self.setTabToolTip(index, self.tr("Loading..."))
-        self.showMessage.emit(self.tr("Loading..."))
-        
-        self.__mainWindow.setLoadingActions(True)
-    
-    def __loadFinished(self, ok):
-        """
-        Private method to handle the loadFinished signal.
-        
-        @param ok flag indicating the result
-        @type bool
-        """
-        browser = self.sender()
-        if browser is None or not isinstance(browser, HelpBrowser):
-            return
-        
-        import Helpviewer.HelpWindow
-        index = self.indexOf(browser)
-        self.resetAnimation(index)
-        self.setTabIcon(
-            index, Helpviewer.HelpWindow.HelpWindow.icon(browser.url()))
-        if ok:
-            self.showMessage.emit(self.tr("Finished loading"))
-        else:
-            self.showMessage.emit(self.tr("Failed to load"))
-        
-        self.__mainWindow.setLoadingActions(False)
-    
-    def __iconChanged(self, browser):
-        """
-        Private slot to handle the icon change.
-        
-        @param browser reference to the web browser
-        @type HelpBrowser
-        """
-        import Helpviewer.HelpWindow
-        self.setTabIcon(
-            self.indexOf(browser),
-            Helpviewer.HelpWindow.HelpWindow.icon(browser.url()))
-        Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
-            .iconChanged(browser.url())
-    
-    def getSourceFileList(self):
-        """
-        Public method to get a list of all opened source files.
-        
-        @return dictionary with tab id as key and host/namespace as value
-        """
-        sourceList = {}
-        for i in range(self.count()):
-            browser = self.widget(i)
-            if browser is not None and \
-               browser.source().isValid():
-                sourceList[i] = browser.source().host()
-        
-        return sourceList
-    
-    def shallShutDown(self):
-        """
-        Public method to check, if the application should be shut down.
-        
-        @return flag indicating a shut down (boolean)
-        """
-        if self.count() > 1 and Preferences.getHelp("WarnOnMultipleClose"):
-            mb = E5MessageBox.E5MessageBox(
-                E5MessageBox.Information,
-                self.tr("Are you sure you want to close the window?"),
-                self.tr("""Are you sure you want to close the window?\n"""
-                        """You have %n tab(s) open.""", "", self.count()),
-                modal=True,
-                parent=self)
-            if self.__mainWindow.fromEric:
-                quitButton = mb.addButton(
-                    self.tr("&Close"), E5MessageBox.AcceptRole)
-                quitButton.setIcon(UI.PixmapCache.getIcon("close.png"))
-            else:
-                quitButton = mb.addButton(
-                    self.tr("&Quit"), E5MessageBox.AcceptRole)
-                quitButton.setIcon(UI.PixmapCache.getIcon("exit.png"))
-            closeTabButton = mb.addButton(
-                self.tr("C&lose Current Tab"), E5MessageBox.AcceptRole)
-            closeTabButton.setIcon(UI.PixmapCache.getIcon("tabClose.png"))
-            mb.addButton(E5MessageBox.Cancel)
-            mb.exec_()
-            if mb.clickedButton() == quitButton:
-                return True
-            else:
-                if mb.clickedButton() == closeTabButton:
-                    self.closeBrowser()
-                return False
-        
-        return True
-    
-    def stackedUrlBar(self):
-        """
-        Public method to get a reference to the stacked url bar.
-        
-        @return reference to the stacked url bar (StackedUrlBar)
-        """
-        return self.__stackedUrlBar
-    
-    def currentUrlBar(self):
-        """
-        Public method to get a reference to the current url bar.
-        
-        @return reference to the current url bar (UrlBar)
-        """
-        return self.__stackedUrlBar.currentWidget()
-    
-    def __lineEditReturnPressed(self, edit):
-        """
-        Private slot to handle the entering of an URL.
-        
-        @param edit reference to the line edit
-        @type UrlBar
-        """
-        url = self.__guessUrlFromPath(edit.text())
-        request = QNetworkRequest(url)
-        request.setRawHeader(b"X-Eric6-UserLoadAction", b"1")
-        if e5App().keyboardModifiers() == Qt.AltModifier:
-            self.newBrowser(
-                None, (request, QNetworkAccessManager.GetOperation, b""))
-        else:
-            self.currentBrowser().setSource(
-                None, (request, QNetworkAccessManager.GetOperation, b""))
-            self.currentBrowser().setFocus()
-    
-    def __pathSelected(self, path):
-        """
-        Private slot called when a URL is selected from the completer.
-        
-        @param path path to be shown (string)
-        """
-        url = self.__guessUrlFromPath(path)
-        self.currentBrowser().setSource(url)
-    
-    def __guessUrlFromPath(self, path):
-        """
-        Private method to guess an URL given a path string.
-        
-        @param path path string to guess an URL for (string)
-        @return guessed URL (QUrl)
-        """
-        manager = self.__mainWindow.openSearchManager()
-        path = Utilities.fromNativeSeparators(path)
-        url = manager.convertKeywordSearchToUrl(path)
-        if url.isValid():
-            return url
-        
-        try:
-            url = QUrl.fromUserInput(path)
-        except AttributeError:
-            url = QUrl(path)
-        
-        if url.scheme() == "about" and \
-           url.path() == "home":
-            url = QUrl("eric:home")
-        
-        if url.scheme() in ["s", "search"]:
-            url = manager.currentEngine().searchUrl(url.path().strip())
-        
-        if url.scheme() != "" and \
-           (url.host() != "" or url.path() != ""):
-            return url
-        
-        urlString = Preferences.getHelp("DefaultScheme") + path.strip()
-        url = QUrl.fromEncoded(urlString.encode("utf-8"), QUrl.TolerantMode)
-        
-        return url
-    
-    def __currentChanged(self, index):
-        """
-        Private slot to handle an index change.
-        
-        @param index new index (integer)
-        """
-        self.__stackedUrlBar.setCurrentIndex(index)
-        
-        browser = self.browserAt(index)
-        if browser is not None:
-            if browser.url() == "" and browser.hasFocus():
-                self.__stackedUrlBar.currentWidget.setFocus()
-            elif browser.url() != "":
-                browser.setFocus()
-    
-    def restoreClosedTab(self, act):
-        """
-        Public slot to restore the most recently closed tab.
-        
-        @param act reference to the action that triggered
-        @type QAction
-        """
-        if not self.canRestoreClosedTab():
-            return
-        
-        tab = self.__closedTabsManager.getClosedTabAt(act.data())
-        
-        self.newBrowser(tab.url.toString(), position=tab.position)
-    
-    def canRestoreClosedTab(self):
-        """
-        Public method to check, if closed tabs can be restored.
-        
-        @return flag indicating that closed tabs can be restored (boolean)
-        """
-        return self.__closedTabsManager.isClosedTabAvailable()
-    
-    def restoreAllClosedTabs(self):
-        """
-        Public slot to restore all closed tabs.
-        """
-        if not self.canRestoreClosedTab():
-            return
-        
-        for tab in self.__closedTabsManager.allClosedTabs():
-            self.newBrowser(tab.url.toString(), position=tab.position)
-        self.__closedTabsManager.clearList()
-    
-    def clearClosedTabsList(self):
-        """
-        Public slot to clear the list of closed tabs.
-        """
-        self.__closedTabsManager.clearList()
-    
-    def __aboutToShowClosedTabsMenu(self):
-        """
-        Private slot to populate the closed tabs menu.
-        """
-        fm = self.__closedTabsMenu.fontMetrics()
-        maxWidth = fm.width('m') * 40
-        
-        self.__closedTabsMenu.clear()
-        index = 0
-        for tab in self.__closedTabsManager.allClosedTabs():
-            title = fm.elidedText(tab.title, Qt.ElideRight, maxWidth)
-            act = self.__closedTabsMenu.addAction(
-                self.__mainWindow.icon(tab.url), title)
-            act.setData(index)
-            act.triggered.connect(lambda: self.restoreClosedTab(act))
-            index += 1
-        self.__closedTabsMenu.addSeparator()
-        self.__closedTabsMenu.addAction(
-            self.tr("Restore All Closed Tabs"), self.restoreAllClosedTabs)
-        self.__closedTabsMenu.addAction(
-            self.tr("Clear List"), self.clearClosedTabsList)
-    
-    def closedTabsManager(self):
-        """
-        Public slot to get a reference to the closed tabs manager.
-        
-        @return reference to the closed tabs manager (ClosedTabsManager)
-        """
-        return self.__closedTabsManager
-    
-    def __closedTabAvailable(self, avail):
-        """
-        Private slot to handle changes of the availability of closed tabs.
-        
-        @param avail flag indicating the availability of closed tabs (boolean)
-        """
-        self.__closedTabsButton.setEnabled(avail)
-        self.__restoreClosedTabAct.setEnabled(avail)
--- a/eric6/Helpviewer/HelpTocWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a window for showing the QtHelp TOC.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl
-from PyQt5.QtWidgets import QWidget, QVBoxLayout, QMenu, QApplication
-
-
-class HelpTocWidget(QWidget):
-    """
-    Class implementing a window for showing the QtHelp TOC.
-    
-    @signal linkActivated(QUrl) emitted when a TOC entry is activated
-    @signal escapePressed() emitted when the ESC key was pressed
-    """
-    linkActivated = pyqtSignal(QUrl)
-    escapePressed = pyqtSignal()
-    
-    def __init__(self, engine, mainWindow, parent=None):
-        """
-        Constructor
-        
-        @param engine reference to the help engine (QHelpEngine)
-        @param mainWindow reference to the main window object (QMainWindow)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(HelpTocWidget, self).__init__(parent)
-        
-        self.__engine = engine
-        self.__mw = mainWindow
-        self.__expandDepth = -2
-        
-        self.__tocWidget = self.__engine.contentWidget()
-        self.__tocWidget.setContextMenuPolicy(Qt.CustomContextMenu)
-        
-        self.__layout = QVBoxLayout(self)
-        self.__layout.addWidget(self.__tocWidget)
-        
-        self.__tocWidget.customContextMenuRequested.connect(
-            self.__showContextMenu)
-        self.__tocWidget.linkActivated.connect(self.__linkActivated)
-        
-        model = self.__tocWidget.model()
-        model.contentsCreated.connect(self.__expandTOC)
-    
-    @pyqtSlot(QUrl)
-    def __linkActivated(self, url):
-        """
-        Private slot handling the activation of an entry.
-        
-        @param url URL of the activated entry
-        @type QUrl
-        """
-        if not url.isEmpty() and url.isValid():
-            buttons = QApplication.mouseButtons()
-            modifiers = QApplication.keyboardModifiers()
-            
-            if buttons & Qt.MidButton:
-                self.__mw.newTab(url)
-            else:
-                if modifiers & Qt.ControlModifier:
-                    self.__mw.newTab(url)
-                else:
-                    self.linkActivated.emit(url)
-    
-    def __expandTOC(self):
-        """
-        Private slot to expand the table of contents.
-        """
-        if self.__expandDepth > -2:
-            self.expandToDepth(self.__expandDepth)
-            self.__expandDepth = -2
-    
-    def expandToDepth(self, depth):
-        """
-        Public slot to expand the table of contents to a specific depth.
-        
-        @param depth depth to expand to (integer)
-        """
-        self.__expandDepth = depth
-        if depth == -1:
-            self.__tocWidget.expandAll()
-        else:
-            self.__tocWidget.expandToDepth(depth)
-    
-    def focusInEvent(self, evt):
-        """
-        Protected method handling focus in events.
-        
-        @param evt reference to the focus event object (QFocusEvent)
-        """
-        if evt.reason() != Qt.MouseFocusReason:
-            self.__tocWidget.setFocus()
-    
-    def keyPressEvent(self, evt):
-        """
-        Protected method handling key press events.
-        
-        @param evt reference to the key press event (QKeyEvent)
-        """
-        if evt.key() == Qt.Key_Escape:
-            self.escapePressed.emit()
-    
-    def itemClicked(self, index):
-        """
-        Public slot handling a click of a TOC entry.
-        
-        @param index index of the TOC clicked (QModelIndex)
-        """
-        if not index.isValid():
-            return
-        
-        model = self.__tocWidget.model()
-        itm = model.contentItemAt(index)
-        if itm:
-            self.linkActivated.emit(itm.url())
-    
-    def syncToContent(self, url):
-        """
-        Public method to sync the TOC to the displayed page.
-        
-        @param url URL of the displayed page (QUrl)
-        @return flag indicating a successful synchronization (boolean)
-        """
-        idx = self.__tocWidget.indexOf(url)
-        if not idx.isValid():
-            return False
-        self.__tocWidget.setCurrentIndex(idx)
-        return True
-    
-    def __showContextMenu(self, pos):
-        """
-        Private slot showing the context menu.
-        
-        @param pos position to show the menu at (QPoint)
-        """
-        if not self.__tocWidget.indexAt(pos).isValid():
-            return
-        
-        menu = QMenu()
-        curTab = menu.addAction(self.tr("Open Link"))
-        newTab = menu.addAction(self.tr("Open Link in New Tab"))
-        menu.move(self.__tocWidget.mapToGlobal(pos))
-        
-        model = self.__tocWidget.model()
-        itm = model.contentItemAt(self.__tocWidget.currentIndex())
-        
-        act = menu.exec_()
-        if act == curTab:
-            self.linkActivated.emit(itm.url())
-        elif act == newTab:
-            self.__mw.newTab(itm.url())
--- a/eric6/Helpviewer/HelpTopicDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to select a help topic to display.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QDialog
-from PyQt5.QtCore import QUrl
-
-from .Ui_HelpTopicDialog import Ui_HelpTopicDialog
-
-
-class HelpTopicDialog(QDialog, Ui_HelpTopicDialog):
-    """
-    Class implementing a dialog to select a help topic to display.
-    """
-    def __init__(self, parent, keyword, links):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        @param keyword keyword for the link set (string)
-        @param links dictionary with help topic as key (string) and
-            URL as value (QUrl)
-        """
-        super(HelpTopicDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.label.setText(self.tr("Choose a &topic for <b>{0}</b>:")
-                           .format(keyword))
-        
-        self.__links = links
-        for topic in sorted(self.__links):
-            self.topicsList.addItem(topic)
-        if self.topicsList.count() > 0:
-            self.topicsList.setCurrentRow(0)
-        self.topicsList.setFocus()
-        
-        self.topicsList.itemActivated.connect(self.accept)
-    
-    def link(self):
-        """
-        Public method to the link of the selected topic.
-        
-        @return URL of the selected topic (QUrl)
-        """
-        itm = self.topicsList.currentItem()
-        if itm is None:
-            return QUrl()
-        
-        topic = itm.text()
-        if topic == "" or topic not in self.__links:
-            return QUrl()
-        
-        return self.__links[topic]
--- a/eric6/Helpviewer/HelpTopicDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-<ui version="4.0" >
- <class>HelpTopicDialog</class>
- <widget class="QDialog" name="HelpTopicDialog" >
-  <property name="geometry" >
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>300</height>
-   </rect>
-  </property>
-  <property name="windowTitle" >
-   <string>Select Help Topic</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout" >
-   <item>
-    <widget class="QLabel" name="label" >
-     <property name="text" >
-      <string>&amp;Topics:</string>
-     </property>
-     <property name="buddy" >
-      <cstring>topicsList</cstring>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QListWidget" name="topicsList" />
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox" >
-     <property name="orientation" >
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons" >
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>topicsList</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>HelpTopicDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel" >
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel" >
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>HelpTopicDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel" >
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel" >
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/HelpUtilities.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing some global helper functions.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import QUrl
-
-
-def getFileNameFromUrl(url):
-    """
-    Module function to generate a file name based on the given URL.
-    
-    @param url URL (QUrl)
-    @return file name (string)
-    """
-    fileName = url.toString(QUrl.RemoveFragment | QUrl.RemoveQuery |
-                            QUrl.RemoveScheme | QUrl.RemovePort)
-    if fileName.find("/") != -1:
-        pos = fileName.rfind("/")
-        fileName = fileName[pos:]
-        fileName = fileName.replace("/", "")
-    
-    fileName = filterCharsFromFilename(fileName)
-    
-    if not fileName:
-        fileName = filterCharsFromFilename(url.host().replace(".", "_"))
-    
-    return fileName
-
-
-def filterCharsFromFilename(name):
-    """
-    Module function to filter illegal characters.
-    
-    @param name name to be sanitized (string)
-    @return sanitized name (string)
-    """
-    return name\
-        .replace("/", "_")\
-        .replace("\\", "")\
-        .replace(":", "")\
-        .replace("*", "")\
-        .replace("?", "")\
-        .replace('"', "")\
-        .replace("<", "")\
-        .replace(">", "")\
-        .replace("|", "")
-
-
-def ensureUniqueFilename(name, appendFormat="({0})"):
-    """
-    Module function to generate an unique file name based on a pattern.
-    
-    @param name desired file name (string)
-    @param appendFormat format pattern to be used to make the unique name
-        (string)
-    @return unique file name
-    """
-    if not os.path.exists(name):
-        return name
-    
-    tmpFileName = name
-    i = 1
-    while os.path.exists(tmpFileName):
-        tmpFileName = name
-        index = tmpFileName.rfind(".")
-        
-        appendString = appendFormat.format(i)
-        if index == -1:
-            tmpFileName += appendString
-        else:
-            tmpFileName = tmpFileName[:index] + appendString + \
-                tmpFileName[index:]
-        i += 1
-    
-    return tmpFileName
-
-
-def parseContentDisposition(reply):
-    """
-    Function to parse a content disposition header.
-    
-    @param reply network reply to be parsed
-    @type QNetworkReply
-    @return file name parsed from a content disposition header
-    @rtype str
-    """
-    path = ""
-    # step 1: check the content disposition header for a file name
-    if reply.hasRawHeader(b"Content-Disposition"):
-        from E5Network.E5RFC6266 import parse_headers
-        contentDisposition = parse_headers(
-            bytes(reply.rawHeader(b"Content-Disposition")))
-        path = contentDisposition.filename()
-    # step 2: get file name from URL
-    if not path:
-        path = reply.url().path()
-    # step 3: give a generic file name
-    if not path:
-        path = "unnamed_download"
-    
-    return os.path.basename(path)
--- a/eric6/Helpviewer/HelpWebSearchWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,398 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a web search widget for the web browser.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSignal, QUrl, QModelIndex, QTimer, Qt
-from PyQt5.QtGui import QStandardItem, QStandardItemModel, QFont, QIcon, \
-    QPixmap
-from PyQt5.QtWidgets import QMenu, QCompleter
-from PyQt5.QtWebKit import QWebSettings
-from PyQt5.QtWebKitWidgets import QWebPage
-
-import UI.PixmapCache
-
-import Preferences
-
-from E5Gui.E5LineEdit import E5ClearableLineEdit
-
-
-class HelpWebSearchWidget(E5ClearableLineEdit):
-    """
-    Class implementing a web search widget for the web browser.
-    
-    @signal search(QUrl) emitted when the search should be done
-    """
-    search = pyqtSignal(QUrl)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(HelpWebSearchWidget, self).__init__(parent)
-        
-        from E5Gui.E5LineEdit import E5LineEdit
-        from E5Gui.E5LineEditButton import E5LineEditButton
-        from .OpenSearch.OpenSearchManager import OpenSearchManager
-
-        self.__mw = parent
-        
-        self.__openSearchManager = OpenSearchManager(self)
-        self.__openSearchManager.currentEngineChanged.connect(
-            self.__currentEngineChanged)
-        self.__currentEngine = ""
-        
-        self.__enginesMenu = QMenu(self)
-        self.__enginesMenu.triggered.connect(
-            self.__handleEnginesMenuActionTriggered)
-        
-        self.__engineButton = E5LineEditButton(self)
-        self.__engineButton.setMenu(self.__enginesMenu)
-        self.addWidget(self.__engineButton, E5LineEdit.LeftSide)
-        
-        self.__searchButton = E5LineEditButton(self)
-        self.__searchButton.setIcon(UI.PixmapCache.getIcon("webSearch.png"))
-        self.addWidget(self.__searchButton, E5LineEdit.LeftSide)
-        
-        self.__model = QStandardItemModel(self)
-        self.__completer = QCompleter()
-        self.__completer.setModel(self.__model)
-        self.__completer.setCompletionMode(
-            QCompleter.UnfilteredPopupCompletion)
-        self.__completer.setWidget(self)
-        
-        self.__searchButton.clicked.connect(self.__searchButtonClicked)
-        self.textEdited.connect(self.__textEdited)
-        self.returnPressed.connect(self.__searchNow)
-        self.__completer.activated[QModelIndex].connect(
-            self.__completerActivated)
-        self.__completer.highlighted[QModelIndex].connect(
-            self.__completerHighlighted)
-        self.__enginesMenu.aboutToShow.connect(self.__showEnginesMenu)
-        
-        self.__suggestionsItem = None
-        self.__suggestions = []
-        self.__suggestTimer = None
-        self.__suggestionsEnabled = Preferences.getHelp("WebSearchSuggestions")
-        
-        self.__recentSearchesItem = None
-        self.__recentSearches = []
-        self.__maxSavedSearches = 10
-        
-        self.__engine = None
-        self.__loadSearches()
-        self.__setupCompleterMenu()
-        self.__currentEngineChanged()
-    
-    def __searchNow(self):
-        """
-        Private slot to perform the web search.
-        """
-        searchText = self.text()
-        if not searchText:
-            return
-        
-        globalSettings = QWebSettings.globalSettings()
-        if not globalSettings.testAttribute(
-                QWebSettings.PrivateBrowsingEnabled):
-            if searchText in self.__recentSearches:
-                self.__recentSearches.remove(searchText)
-            self.__recentSearches.insert(0, searchText)
-            if len(self.__recentSearches) > self.__maxSavedSearches:
-                self.__recentSearches = \
-                    self.__recentSearches[:self.__maxSavedSearches]
-            self.__setupCompleterMenu()
-        
-        url = self.__openSearchManager.currentEngine().searchUrl(searchText)
-        self.search.emit(url)
-    
-    def __setupCompleterMenu(self):
-        """
-        Private method to create the completer menu.
-        """
-        if not self.__suggestions or \
-           (self.__model.rowCount() > 0 and
-                self.__model.item(0) != self.__suggestionsItem):
-            self.__model.clear()
-            self.__suggestionsItem = None
-        else:
-            self.__model.removeRows(1, self.__model.rowCount() - 1)
-        
-        boldFont = QFont()
-        boldFont.setBold(True)
-        
-        if self.__suggestions:
-            if self.__model.rowCount() == 0:
-                if not self.__suggestionsItem:
-                    self.__suggestionsItem = QStandardItem(
-                        self.tr("Suggestions"))
-                    self.__suggestionsItem.setFont(boldFont)
-                self.__model.appendRow(self.__suggestionsItem)
-            
-            for suggestion in self.__suggestions:
-                self.__model.appendRow(QStandardItem(suggestion))
-        
-        if not self.__recentSearches:
-            self.__recentSearchesItem = QStandardItem(
-                self.tr("No Recent Searches"))
-            self.__recentSearchesItem.setFont(boldFont)
-            self.__model.appendRow(self.__recentSearchesItem)
-        else:
-            self.__recentSearchesItem = QStandardItem(
-                self.tr("Recent Searches"))
-            self.__recentSearchesItem.setFont(boldFont)
-            self.__model.appendRow(self.__recentSearchesItem)
-            for recentSearch in self.__recentSearches:
-                self.__model.appendRow(QStandardItem(recentSearch))
-        
-        view = self.__completer.popup()
-        view.setFixedHeight(view.sizeHintForRow(0) * self.__model.rowCount() +
-                            view.frameWidth() * 2)
-        
-        self.__searchButton.setEnabled(
-            bool(self.__recentSearches or self.__suggestions))
-    
-    def __completerActivated(self, index):
-        """
-        Private slot handling the selection of an entry from the completer.
-        
-        @param index index of the item (QModelIndex)
-        """
-        if self.__suggestionsItem and \
-           self.__suggestionsItem.index().row() == index.row():
-            return
-        
-        if self.__recentSearchesItem and \
-           self.__recentSearchesItem.index().row() == index.row():
-            return
-        
-        self.__searchNow()
-    
-    def __completerHighlighted(self, index):
-        """
-        Private slot handling the highlighting of an entry of the completer.
-        
-        @param index index of the item (QModelIndex)
-        @return flah indicating a successful highlighting (boolean)
-        """
-        if self.__suggestionsItem and \
-           self.__suggestionsItem.index().row() == index.row():
-            return False
-        
-        if self.__recentSearchesItem and \
-           self.__recentSearchesItem.index().row() == index.row():
-            return False
-        
-        self.setText(index.data())
-        return True
-    
-    def __textEdited(self, txt):
-        """
-        Private slot to handle changes of the search text.
-        
-        @param txt search text (string)
-        """
-        if self.__suggestionsEnabled:
-            if self.__suggestTimer is None:
-                self.__suggestTimer = QTimer(self)
-                self.__suggestTimer.setSingleShot(True)
-                self.__suggestTimer.setInterval(200)
-                self.__suggestTimer.timeout.connect(self.__getSuggestions)
-            self.__suggestTimer.start()
-        else:
-            self.__completer.setCompletionPrefix(txt)
-            self.__completer.complete()
-    
-    def __getSuggestions(self):
-        """
-        Private slot to get search suggestions from the configured search
-        engine.
-        """
-        searchText = self.text()
-        if searchText:
-            self.__openSearchManager.currentEngine()\
-                .requestSuggestions(searchText)
-    
-    def __newSuggestions(self, suggestions):
-        """
-        Private slot to receive a new list of suggestions.
-        
-        @param suggestions list of suggestions (list of strings)
-        """
-        self.__suggestions = suggestions
-        self.__setupCompleterMenu()
-        self.__completer.complete()
-    
-    def __showEnginesMenu(self):
-        """
-        Private slot to handle the display of the engines menu.
-        """
-        self.__enginesMenu.clear()
-        
-        from .OpenSearch.OpenSearchEngineAction import OpenSearchEngineAction
-        engineNames = self.__openSearchManager.allEnginesNames()
-        for engineName in engineNames:
-            engine = self.__openSearchManager.engine(engineName)
-            action = OpenSearchEngineAction(engine, self.__enginesMenu)
-            action.setData(engineName)
-            self.__enginesMenu.addAction(action)
-            
-            if self.__openSearchManager.currentEngineName() == engineName:
-                action.setCheckable(True)
-                action.setChecked(True)
-        
-        ct = self.__mw.currentBrowser()
-        linkedResources = ct.linkedResources("search")
-        
-        if len(linkedResources) > 0:
-            self.__enginesMenu.addSeparator()
-        
-        for linkedResource in linkedResources:
-            url = QUrl(linkedResource.href)
-            title = linkedResource.title
-            mimetype = linkedResource.type_
-            
-            if mimetype != "application/opensearchdescription+xml":
-                continue
-            if url.isEmpty():
-                continue
-            
-            if url.isRelative():
-                url = ct.url().resolved(url)
-            
-            if not title:
-                if not ct.title():
-                    title = url.host()
-                else:
-                    title = ct.title()
-            
-            action = self.__enginesMenu.addAction(
-                self.tr("Add '{0}'").format(title))
-            action.setData(url)
-            action.setIcon(ct.icon())
-        
-        self.__enginesMenu.addSeparator()
-        self.__enginesMenu.addAction(self.__mw.searchEnginesAction())
-        
-        if self.__recentSearches:
-            act = self.__enginesMenu.addAction(
-                self.tr("Clear Recent Searches"))
-            act.setData("@@CLEAR@@")
-    
-    def __handleEnginesMenuActionTriggered(self, action):
-        """
-        Private slot to handle an action of the menu being triggered.
-        
-        @param action reference to the action that triggered
-        @type QAction
-        """
-        actData = action.data()
-        if isinstance(actData, QUrl):
-            # add search engine
-            self.__openSearchManager.addEngine(actData)
-        elif isinstance(actData, str):
-            # engine name or special action
-            if actData == "@@CLEAR@@":
-                self.clear()
-            else:
-                self.__openSearchManager.setCurrentEngineName(actData)
-    
-    def __searchButtonClicked(self):
-        """
-        Private slot to show the search menu via the search button.
-        """
-        self.__setupCompleterMenu()
-        self.__completer.complete()
-    
-    def clear(self):
-        """
-        Public method to clear all private data.
-        """
-        self.__recentSearches = []
-        self.__setupCompleterMenu()
-        super(HelpWebSearchWidget, self).clear()
-        self.clearFocus()
-    
-    def preferencesChanged(self):
-        """
-        Public method to handle the change of preferences.
-        """
-        self.__suggestionsEnabled = Preferences.getHelp("WebSearchSuggestions")
-        if not self.__suggestionsEnabled:
-            self.__suggestions = []
-            self.__setupCompleterMenu()
-    
-    def saveSearches(self):
-        """
-        Public method to save the recently performed web searches.
-        """
-        Preferences.Prefs.settings.setValue(
-            'Help/WebSearches', self.__recentSearches)
-    
-    def __loadSearches(self):
-        """
-        Private method to load the recently performed web searches.
-        """
-        searches = Preferences.Prefs.settings.value('Help/WebSearches')
-        if searches is not None:
-            self.__recentSearches = searches
-    
-    def openSearchManager(self):
-        """
-        Public method to get a reference to the opensearch manager object.
-        
-        @return reference to the opensearch manager object (OpenSearchManager)
-        """
-        return self.__openSearchManager
-    
-    def __currentEngineChanged(self):
-        """
-        Private slot to track a change of the current search engine.
-        """
-        if self.__openSearchManager.engineExists(self.__currentEngine):
-            oldEngine = self.__openSearchManager.engine(self.__currentEngine)
-            oldEngine.imageChanged.disconnect(self.__engineImageChanged)
-            if self.__suggestionsEnabled:
-                oldEngine.suggestions.disconnect(self.__newSuggestions)
-        
-        newEngine = self.__openSearchManager.currentEngine()
-        if newEngine.networkAccessManager() is None:
-            newEngine.setNetworkAccessManager(self.__mw.networkAccessManager())
-        newEngine.imageChanged.connect(self.__engineImageChanged)
-        if self.__suggestionsEnabled:
-            newEngine.suggestions.connect(self.__newSuggestions)
-        
-        self.setInactiveText(self.__openSearchManager.currentEngineName())
-        self.__currentEngine = self.__openSearchManager.currentEngineName()
-        self.__engineButton.setIcon(QIcon(QPixmap.fromImage(
-            self.__openSearchManager.currentEngine().image())))
-        self.__suggestions = []
-        self.__setupCompleterMenu()
-    
-    def __engineImageChanged(self):
-        """
-        Private slot to handle a change of the current search engine icon.
-        """
-        self.__engineButton.setIcon(QIcon(QPixmap.fromImage(
-            self.__openSearchManager.currentEngine().image())))
-    
-    def mousePressEvent(self, evt):
-        """
-        Protected method called by a mouse press event.
-        
-        @param evt reference to the mouse event (QMouseEvent)
-        """
-        if evt.button() == Qt.XButton1:
-            self.__mw.currentBrowser().pageAction(QWebPage.Back).trigger()
-        elif evt.button() == Qt.XButton2:
-            self.__mw.currentBrowser().pageAction(QWebPage.Forward).trigger()
-        else:
-            super(HelpWebSearchWidget, self).mousePressEvent(evt)
--- a/eric6/Helpviewer/HelpWindow.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4022 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2002 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the helpviewer main window.
-"""
-
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
-import os
-
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QByteArray, QSize, QTimer, \
-    QUrl, QThread, QTextCodec, QFileInfo
-from PyQt5.QtGui import QDesktopServices, QKeySequence, QFont, QFontMetrics, \
-    QIcon
-from PyQt5.QtWidgets import QWidget, QVBoxLayout, QSizePolicy, QDockWidget, \
-    QComboBox, QLabel, QSplitter, QMenu, QToolButton, QLineEdit, \
-    QApplication, QWhatsThis, QDialog, QHBoxLayout, QProgressBar, QAction, \
-    QInputDialog
-from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
-from PyQt5.QtWebKit import QWebSettings, QWebDatabase, QWebSecurityOrigin
-from PyQt5.QtWebKitWidgets import QWebPage
-try:
-    from PyQt5.QtHelp import QHelpEngine, QHelpEngineCore, QHelpSearchQuery
-    QTHELP_AVAILABLE = True
-except ImportError:
-    QTHELP_AVAILABLE = False
-
-from .Network.NetworkAccessManager import SSL_AVAILABLE
-
-from .data import icons_rc          # __IGNORE_WARNING__
-from .data import html_rc           # __IGNORE_WARNING__
-from .data import javascript_rc     # __IGNORE_WARNING__
-
-from E5Gui.E5Action import E5Action
-from E5Gui import E5MessageBox, E5FileDialog, E5ErrorMessage
-from E5Gui.E5MainWindow import E5MainWindow
-from E5Gui.E5Application import e5App
-from E5Gui.E5ZoomWidget import E5ZoomWidget
-
-from E5Network.E5NetworkIcon import E5NetworkIcon
-
-import Preferences
-from Preferences import Shortcuts
-
-import Utilities
-import Globals
-
-import UI.PixmapCache
-import UI.Config
-from UI.Info import Version
-
-from .HelpSingleApplication import HelpSingleApplicationServer
-
-
-class HelpWindow(E5MainWindow):
-    """
-    Class implementing the web browser main window.
-    
-    @signal helpClosed() emitted after the window was requested to close down
-    @signal zoomTextOnlyChanged(bool) emitted after the zoom text only setting
-        was changed
-    @signal privacyChanged(bool) emitted to indicate a new privacy mode
-    """
-    zoomTextOnlyChanged = pyqtSignal(bool)
-    helpClosed = pyqtSignal()
-    privacyChanged = pyqtSignal(bool)
-    
-    helpwindows = []
-
-    _useQtHelp = QTHELP_AVAILABLE
-    
-    _networkAccessManager = None
-    _cookieJar = None
-    _helpEngine = None
-    _bookmarksManager = None
-    _historyManager = None
-    _passwordManager = None
-    _adblockManager = None
-    _downloadManager = None
-    _feedsManager = None
-    _userAgentsManager = None
-    _syncManager = None
-    _speedDial = None
-    _personalInformationManager = None
-    _greaseMonkeyManager = None
-    _notification = None
-    _featurePermissionManager = None
-    _flashCookieManager = None
-    _zoomManager = None
-    
-    def __init__(self, home, path, parent, name,
-                 searchWord=None, qthelp=False, single=False, saname=""):
-        """
-        Constructor
-        
-        @param home the URL to be shown
-        @type str
-        @param path the path of the working dir (usually '.')
-        @type str
-        @param parent parent widget of this window
-        @type QWidget
-        @param name name of this window
-        @type str
-        @param searchWord word to search for
-        @type str
-        @param qthelp flag indicating to enable the QtHelp support
-        @type bool
-        @param single flag indicating to start in single application mode
-        @type bool
-        @param saname name to be used for the single application server
-        @type str
-        """
-        super(HelpWindow, self).__init__(parent)
-        self.setObjectName(name)
-        self.setWindowTitle(self.tr("eric6 Web Browser"))
-        
-        self.setWindowIcon(UI.PixmapCache.getIcon("ericWeb.png"))
-
-        self.mHistory = []
-        self.__lastConfigurationPageName = ""
-        self.__lastActiveWindow = None
-        
-        self.__shortcutsDialog = None
-        
-        self.__eventMouseButtons = Qt.NoButton
-        self.__eventKeyboardModifiers = Qt.NoModifier
-        
-        HelpWindow.setUseQtHelp(qthelp or bool(searchWord))
-            
-        from .SearchWidget import SearchWidget
-        from .HelpTocWidget import HelpTocWidget
-        from .HelpIndexWidget import HelpIndexWidget
-        from .HelpSearchWidget import HelpSearchWidget
-        from .HelpBrowserWV import HelpBrowser
-        from .HelpTabWidget import HelpTabWidget
-        from .AdBlock.AdBlockIcon import AdBlockIcon
-        from .VirusTotal.VirusTotalApi import VirusTotalAPI
-    
-        self.setStyle(Preferences.getUI("Style"),
-                      Preferences.getUI("StyleSheet"))
-        
-        # initialize some SSL stuff
-        from E5Network.E5SslUtilities import initSSL
-        initSSL()
-        
-        if HelpWindow._useQtHelp:
-            self.__helpEngine = QHelpEngine(
-                HelpWindow.getQtHelpCollectionFileName(),
-                self)
-            self.__removeOldDocumentation()
-            self.__helpEngine.warning.connect(self.__warning)
-        else:
-            self.__helpEngine = None
-        self.__helpInstaller = None
-        
-        self.__zoomWidget = E5ZoomWidget(
-            UI.PixmapCache.getPixmap("zoomOut.png"),
-            UI.PixmapCache.getPixmap("zoomIn.png"),
-            UI.PixmapCache.getPixmap("zoomReset.png"), self)
-        self.statusBar().addPermanentWidget(self.__zoomWidget)
-        self.__zoomWidget.setMapping(
-            HelpBrowser.ZoomLevels, HelpBrowser.ZoomLevelDefault)
-        self.__zoomWidget.valueChanged.connect(self.__zoomValueChanged)
-        
-        self.tabWidget = HelpTabWidget(self)
-        self.tabWidget.currentChanged[int].connect(self.__currentChanged)
-        self.tabWidget.titleChanged.connect(self.__titleChanged)
-        self.tabWidget.showMessage.connect(self.statusBar().showMessage)
-        self.tabWidget.browserZoomValueChanged.connect(
-            self.__zoomWidget.setValue)
-        
-        self.findDlg = SearchWidget(self, self)
-        centralWidget = QWidget()
-        layout = QVBoxLayout()
-        layout.setContentsMargins(1, 1, 1, 1)
-        layout.addWidget(self.tabWidget)
-        layout.addWidget(self.findDlg)
-        self.tabWidget.setSizePolicy(
-            QSizePolicy.Preferred, QSizePolicy.Expanding)
-        centralWidget.setLayout(layout)
-        self.setCentralWidget(centralWidget)
-        self.findDlg.hide()
-        
-        if HelpWindow._useQtHelp:
-            # setup the TOC widget
-            self.__tocWindow = HelpTocWidget(self.__helpEngine, self)
-            self.__tocDock = QDockWidget(self.tr("Contents"), self)
-            self.__tocDock.setObjectName("TocWindow")
-            self.__tocDock.setWidget(self.__tocWindow)
-            self.addDockWidget(Qt.LeftDockWidgetArea, self.__tocDock)
-            
-            # setup the index widget
-            self.__indexWindow = HelpIndexWidget(self.__helpEngine, self)
-            self.__indexDock = QDockWidget(self.tr("Index"), self)
-            self.__indexDock.setObjectName("IndexWindow")
-            self.__indexDock.setWidget(self.__indexWindow)
-            self.addDockWidget(Qt.LeftDockWidgetArea, self.__indexDock)
-            
-            # setup the search widget
-            self.__searchWord = searchWord
-            self.__indexing = False
-            self.__indexingProgress = None
-            self.__searchEngine = self.__helpEngine.searchEngine()
-            self.__searchEngine.indexingStarted.connect(
-                self.__indexingStarted)
-            self.__searchEngine.indexingFinished.connect(
-                self.__indexingFinished)
-            self.__searchWindow = HelpSearchWidget(
-                self.__searchEngine, self)
-            self.__searchDock = QDockWidget(self.tr("Search"), self)
-            self.__searchDock.setObjectName("SearchWindow")
-            self.__searchDock.setWidget(self.__searchWindow)
-            self.addDockWidget(Qt.LeftDockWidgetArea, self.__searchDock)
-        
-        if Preferences.getHelp("SaveGeometry"):
-            g = Preferences.getGeometry("HelpViewerGeometry")
-        else:
-            g = QByteArray()
-        if g.isEmpty():
-            s = QSize(800, 800)
-            self.resize(s)
-        else:
-            self.restoreGeometry(g)
-        
-        self.__setIconDatabasePath()
-        self.__initWebSettings()
-        
-        self.__initActions()
-        self.__initMenus()
-        self.__initToolbars()
-        
-        self.historyManager()
-        
-        syncMgr = self.syncManager()
-        syncMgr.syncMessage.connect(self.statusBar().showMessage)
-        syncMgr.syncError.connect(self.statusBar().showMessage)
-        
-        self.tabWidget.newBrowser(home)
-        self.tabWidget.currentBrowser().setFocus()
-        
-        self.__class__.helpwindows.append(self)
-        
-        self.__adBlockIcon = AdBlockIcon(self)
-        self.statusBar().addPermanentWidget(self.__adBlockIcon)
-        self.__adBlockIcon.setEnabled(
-            Preferences.getHelp("AdBlockEnabled"))
-        self.tabWidget.currentChanged[int].connect(
-            self.__adBlockIcon.currentChanged)
-        self.tabWidget.sourceChanged.connect(
-            self.__adBlockIcon.sourceChanged)
-        
-        self.networkIcon = E5NetworkIcon(self)
-        self.statusBar().addPermanentWidget(self.networkIcon)
-        
-        if len(HelpWindow.helpwindows):
-            QDesktopServices.setUrlHandler(
-                "http", HelpWindow.helpwindows[0].urlHandler)
-            QDesktopServices.setUrlHandler(
-                "https", HelpWindow.helpwindows[0].urlHandler)
-        
-        # setup connections
-        self.__activating = False
-        if HelpWindow._useQtHelp:
-            # TOC window
-            self.__tocWindow.linkActivated.connect(self.__linkActivated)
-            self.__tocWindow.escapePressed.connect(
-                self.__activateCurrentBrowser)
-            
-            # index window
-            self.__indexWindow.linkActivated.connect(self.__linkActivated)
-            self.__indexWindow.linksActivated.connect(
-                self.__linksActivated)
-            self.__indexWindow.escapePressed.connect(
-                self.__activateCurrentBrowser)
-            
-            # search window
-            self.__searchWindow.linkActivated.connect(
-                self.__linkActivated)
-            self.__searchWindow.escapePressed.connect(
-                self.__activateCurrentBrowser)
-        
-        state = Preferences.getHelp("HelpViewerState")
-        self.restoreState(state)
-        
-        self.__initHelpDb()
-        
-        self.__virusTotal = VirusTotalAPI(self)
-        self.__virusTotal.submitUrlError.connect(
-            self.__virusTotalSubmitUrlError)
-        self.__virusTotal.urlScanReport.connect(
-            self.__virusTotalUrlScanReport)
-        self.__virusTotal.fileScanReport.connect(
-            self.__virusTotalFileScanReport)
-        
-        self.__shutdownCalled = False
-        
-        self.flashCookieManager()
-        
-        if single:
-            self.SAServer = HelpSingleApplicationServer(saname)
-            self.SAServer.loadUrl.connect(self.__saLoadUrl)
-            self.SAServer.newTab.connect(self.__saNewTab)
-            self.SAServer.search.connect(self.__saSearchWord)
-            self.SAServer.shutdown.connect(self.shutdown)
-        else:
-            self.SAServer = None
-        
-        if HelpWindow._useQtHelp:
-            QTimer.singleShot(50, self.__lookForNewDocumentation)
-            if self.__searchWord is not None:
-                QTimer.singleShot(0, self.__searchForWord)
-        
-        e5App().focusChanged.connect(self.__appFocusChanged)
-        
-        QTimer.singleShot(0, syncMgr.loadSettings)
-    
-    def __del__(self):
-        """
-        Special method called during object destruction.
-        
-        Note: This empty variant seems to get rid of the Qt message
-        'Warning: QBasicTimer::start: QBasicTimer can only be used with
-        threads started with QThread'
-        """
-        pass
-    
-    def __setIconDatabasePath(self, enable=True):
-        """
-        Private method to set the favicons path.
-        
-        @param enable flag indicating to enabled icon storage (boolean)
-        """
-        if enable:
-            iconDatabasePath = os.path.join(Utilities.getConfigDir(),
-                                            "browser", "favicons")
-            if not os.path.exists(iconDatabasePath):
-                os.makedirs(iconDatabasePath)
-        else:
-            iconDatabasePath = ""   # setting an empty path disables it
-        QWebSettings.setIconDatabasePath(iconDatabasePath)
-        
-    def __initWebSettings(self):
-        """
-        Private method to set the global web settings.
-        """
-        standardFont = Preferences.getHelp("StandardFont")
-        fixedFont = Preferences.getHelp("FixedFont")
-
-        settings = QWebSettings.globalSettings()
-        settings.setAttribute(QWebSettings.DeveloperExtrasEnabled, True)
-        
-        settings.setFontFamily(QWebSettings.StandardFont,
-                               standardFont.family())
-        settings.setFontSize(QWebSettings.DefaultFontSize,
-                             standardFont.pointSize())
-        settings.setFontFamily(QWebSettings.FixedFont, fixedFont.family())
-        settings.setFontSize(QWebSettings.DefaultFixedFontSize,
-                             fixedFont.pointSize())
-        
-        styleSheet = Preferences.getHelp("UserStyleSheet")
-        settings.setUserStyleSheetUrl(self.__userStyleSheet(styleSheet))
-        
-        settings.setAttribute(
-            QWebSettings.AutoLoadImages,
-            Preferences.getHelp("AutoLoadImages"))
-        settings.setAttribute(
-            QWebSettings.JavaEnabled,
-            Preferences.getHelp("JavaEnabled"))
-        settings.setAttribute(
-            QWebSettings.JavascriptEnabled,
-            Preferences.getHelp("JavaScriptEnabled"))
-        settings.setAttribute(
-            QWebSettings.JavascriptCanOpenWindows,
-            Preferences.getHelp("JavaScriptCanOpenWindows"))
-        settings.setAttribute(
-            QWebSettings.JavascriptCanAccessClipboard,
-            Preferences.getHelp("JavaScriptCanAccessClipboard"))
-        settings.setAttribute(
-            QWebSettings.PluginsEnabled,
-            Preferences.getHelp("PluginsEnabled"))
-        
-        if hasattr(QWebSettings, "PrintElementBackgrounds"):
-            settings.setAttribute(
-                QWebSettings.PrintElementBackgrounds,
-                Preferences.getHelp("PrintBackgrounds"))
-        
-        if hasattr(QWebSettings, "setOfflineStoragePath"):
-            settings.setAttribute(
-                QWebSettings.OfflineStorageDatabaseEnabled,
-                Preferences.getHelp("OfflineStorageDatabaseEnabled"))
-            webDatabaseDir = os.path.join(
-                Utilities.getConfigDir(), "browser", "webdatabases")
-            if not os.path.exists(webDatabaseDir):
-                os.makedirs(webDatabaseDir)
-            settings.setOfflineStoragePath(webDatabaseDir)
-            settings.setOfflineStorageDefaultQuota(
-                Preferences.getHelp("OfflineStorageDatabaseQuota") *
-                1024 * 1024)
-        
-        if hasattr(QWebSettings, "OfflineWebApplicationCacheEnabled"):
-            settings.setAttribute(
-                QWebSettings.OfflineWebApplicationCacheEnabled,
-                Preferences.getHelp("OfflineWebApplicationCacheEnabled"))
-            appCacheDir = os.path.join(
-                Utilities.getConfigDir(), "browser", "webappcaches")
-            if not os.path.exists(appCacheDir):
-                os.makedirs(appCacheDir)
-            settings.setOfflineWebApplicationCachePath(appCacheDir)
-            settings.setOfflineWebApplicationCacheQuota(
-                Preferences.getHelp("OfflineWebApplicationCacheQuota") *
-                1024 * 1024)
-        
-        if hasattr(QWebSettings, "LocalStorageEnabled"):
-            settings.setAttribute(
-                QWebSettings.LocalStorageEnabled,
-                Preferences.getHelp("LocalStorageEnabled"))
-            localStorageDir = os.path.join(
-                Utilities.getConfigDir(), "browser", "weblocalstorage")
-            if not os.path.exists(localStorageDir):
-                os.makedirs(localStorageDir)
-            settings.setLocalStoragePath(localStorageDir)
-        
-        if hasattr(QWebSettings, "DnsPrefetchEnabled"):
-            settings.setAttribute(
-                QWebSettings.DnsPrefetchEnabled,
-                Preferences.getHelp("DnsPrefetchEnabled"))
-        
-        if hasattr(QWebSettings, "defaultTextEncoding"):
-            settings.setDefaultTextEncoding(
-                Preferences.getHelp("DefaultTextEncoding"))
-        
-        if hasattr(QWebSettings, "SpatialNavigationEnabled"):
-            settings.setAttribute(
-                QWebSettings.SpatialNavigationEnabled,
-                Preferences.getHelp("SpatialNavigationEnabled"))
-        if hasattr(QWebSettings, "LinksIncludedInFocusChain"):
-            settings.setAttribute(
-                QWebSettings.LinksIncludedInFocusChain,
-                Preferences.getHelp("LinksIncludedInFocusChain"))
-        if hasattr(QWebSettings, "LocalContentCanAccessRemoteUrls"):
-            settings.setAttribute(
-                QWebSettings.LocalContentCanAccessRemoteUrls,
-                Preferences.getHelp("LocalContentCanAccessRemoteUrls"))
-        if hasattr(QWebSettings, "LocalContentCanAccessFileUrls"):
-            settings.setAttribute(
-                QWebSettings.LocalContentCanAccessFileUrls,
-                Preferences.getHelp("LocalContentCanAccessFileUrls"))
-        if hasattr(QWebSettings, "XSSAuditingEnabled"):
-            settings.setAttribute(
-                QWebSettings.XSSAuditingEnabled,
-                Preferences.getHelp("XSSAuditingEnabled"))
-        if hasattr(QWebSettings, "SiteSpecificQuirksEnabled"):
-            settings.setAttribute(
-                QWebSettings.SiteSpecificQuirksEnabled,
-                Preferences.getHelp("SiteSpecificQuirksEnabled"))
-        
-        QWebSecurityOrigin.addLocalScheme("eric")
-    
-    def __initActions(self):
-        """
-        Private method to define the user interface actions.
-        """
-        # list of all actions
-        self.__actions = []
-        
-        self.newTabAct = E5Action(
-            self.tr('New Tab'),
-            UI.PixmapCache.getIcon("tabNew.png"),
-            self.tr('&New Tab'),
-            QKeySequence(self.tr("Ctrl+T", "File|New Tab")),
-            0, self, 'help_file_new_tab')
-        self.newTabAct.setStatusTip(self.tr('Open a new help window tab'))
-        self.newTabAct.setWhatsThis(self.tr(
-            """<b>New Tab</b>"""
-            """<p>This opens a new help window tab.</p>"""
-        ))
-        self.newTabAct.triggered.connect(self.newTab)
-        self.__actions.append(self.newTabAct)
-        
-        self.newAct = E5Action(
-            self.tr('New Window'),
-            UI.PixmapCache.getIcon("newWindow.png"),
-            self.tr('New &Window'),
-            QKeySequence(self.tr("Ctrl+N", "File|New Window")),
-            0, self, 'help_file_new_window')
-        self.newAct.setStatusTip(self.tr('Open a new help browser window'))
-        self.newAct.setWhatsThis(self.tr(
-            """<b>New Window</b>"""
-            """<p>This opens a new help browser window.</p>"""
-        ))
-        self.newAct.triggered.connect(self.newWindow)
-        self.__actions.append(self.newAct)
-        
-        self.openAct = E5Action(
-            self.tr('Open File'),
-            UI.PixmapCache.getIcon("open.png"),
-            self.tr('&Open File'),
-            QKeySequence(self.tr("Ctrl+O", "File|Open")),
-            0, self, 'help_file_open')
-        self.openAct.setStatusTip(self.tr('Open a help file for display'))
-        self.openAct.setWhatsThis(self.tr(
-            """<b>Open File</b>"""
-            """<p>This opens a new help file for display."""
-            """ It pops up a file selection dialog.</p>"""
-        ))
-        self.openAct.triggered.connect(self.__openFile)
-        self.__actions.append(self.openAct)
-        
-        self.openTabAct = E5Action(
-            self.tr('Open File in New Tab'),
-            UI.PixmapCache.getIcon("openNewTab.png"),
-            self.tr('Open File in New &Tab'),
-            QKeySequence(self.tr("Shift+Ctrl+O", "File|Open in new tab")),
-            0, self, 'help_file_open_tab')
-        self.openTabAct.setStatusTip(
-            self.tr('Open a help file for display in a new tab'))
-        self.openTabAct.setWhatsThis(self.tr(
-            """<b>Open File in New Tab</b>"""
-            """<p>This opens a new help file for display in a new tab."""
-            """ It pops up a file selection dialog.</p>"""
-        ))
-        self.openTabAct.triggered.connect(self.__openFileNewTab)
-        self.__actions.append(self.openTabAct)
-        
-        self.saveAsAct = E5Action(
-            self.tr('Save As'),
-            UI.PixmapCache.getIcon("fileSaveAs.png"),
-            self.tr('&Save As...'),
-            QKeySequence(self.tr("Shift+Ctrl+S", "File|Save As")),
-            0, self, 'help_file_save_as')
-        self.saveAsAct.setStatusTip(
-            self.tr('Save the current page to disk'))
-        self.saveAsAct.setWhatsThis(self.tr(
-            """<b>Save As...</b>"""
-            """<p>Saves the current page to disk.</p>"""
-        ))
-        self.saveAsAct.triggered.connect(self.__savePageAs)
-        self.__actions.append(self.saveAsAct)
-        
-        self.savePageScreenAct = E5Action(
-            self.tr('Save Page Screen'),
-            UI.PixmapCache.getIcon("fileSavePixmap.png"),
-            self.tr('Save Page Screen...'),
-            0, 0, self, 'help_file_save_page_screen')
-        self.savePageScreenAct.setStatusTip(
-            self.tr('Save the current page as a screen shot'))
-        self.savePageScreenAct.setWhatsThis(self.tr(
-            """<b>Save Page Screen...</b>"""
-            """<p>Saves the current page as a screen shot.</p>"""
-        ))
-        self.savePageScreenAct.triggered.connect(self.__savePageScreen)
-        self.__actions.append(self.savePageScreenAct)
-        
-        self.saveVisiblePageScreenAct = E5Action(
-            self.tr('Save Visible Page Screen'),
-            UI.PixmapCache.getIcon("fileSaveVisiblePixmap.png"),
-            self.tr('Save Visible Page Screen...'),
-            0, 0, self, 'help_file_save_visible_page_screen')
-        self.saveVisiblePageScreenAct.setStatusTip(
-            self.tr('Save the visible part of the current page as a'
-                    ' screen shot'))
-        self.saveVisiblePageScreenAct.setWhatsThis(self.tr(
-            """<b>Save Visible Page Screen...</b>"""
-            """<p>Saves the visible part of the current page as a"""
-            """ screen shot.</p>"""
-        ))
-        self.saveVisiblePageScreenAct.triggered.connect(
-            self.__saveVisiblePageScreen)
-        self.__actions.append(self.saveVisiblePageScreenAct)
-        
-        bookmarksManager = self.bookmarksManager()
-        self.importBookmarksAct = E5Action(
-            self.tr('Import Bookmarks'),
-            self.tr('&Import Bookmarks...'),
-            0, 0, self, 'help_file_import_bookmarks')
-        self.importBookmarksAct.setStatusTip(
-            self.tr('Import bookmarks from other browsers'))
-        self.importBookmarksAct.setWhatsThis(self.tr(
-            """<b>Import Bookmarks</b>"""
-            """<p>Import bookmarks from other browsers.</p>"""
-        ))
-        self.importBookmarksAct.triggered.connect(
-            bookmarksManager.importBookmarks)
-        self.__actions.append(self.importBookmarksAct)
-        
-        self.exportBookmarksAct = E5Action(
-            self.tr('Export Bookmarks'),
-            self.tr('&Export Bookmarks...'),
-            0, 0, self, 'help_file_export_bookmarks')
-        self.exportBookmarksAct.setStatusTip(
-            self.tr('Export the bookmarks into a file'))
-        self.exportBookmarksAct.setWhatsThis(self.tr(
-            """<b>Export Bookmarks</b>"""
-            """<p>Export the bookmarks into a file.</p>"""
-        ))
-        self.exportBookmarksAct.triggered.connect(
-            bookmarksManager.exportBookmarks)
-        self.__actions.append(self.exportBookmarksAct)
-        
-        self.printAct = E5Action(
-            self.tr('Print'),
-            UI.PixmapCache.getIcon("print.png"),
-            self.tr('&Print'),
-            QKeySequence(self.tr("Ctrl+P", "File|Print")),
-            0, self, 'help_file_print')
-        self.printAct.setStatusTip(self.tr('Print the displayed help'))
-        self.printAct.setWhatsThis(self.tr(
-            """<b>Print</b>"""
-            """<p>Print the displayed help text.</p>"""
-        ))
-        self.printAct.triggered.connect(self.tabWidget.printBrowser)
-        self.__actions.append(self.printAct)
-        
-        if Globals.isLinuxPlatform():
-            self.printPdfAct = E5Action(
-                self.tr('Print as PDF'),
-                UI.PixmapCache.getIcon("printPdf.png"),
-                self.tr('Print as PDF'),
-                0, 0, self, 'help_file_print_pdf')
-            self.printPdfAct.setStatusTip(self.tr(
-                'Print the displayed help as PDF'))
-            self.printPdfAct.setWhatsThis(self.tr(
-                """<b>Print as PDF</b>"""
-                """<p>Print the displayed help text as a PDF file.</p>"""
-            ))
-            self.printPdfAct.triggered.connect(
-                self.tabWidget.printBrowserPdf)
-            self.__actions.append(self.printPdfAct)
-        else:
-            self.printPdfAct = None
-        
-        self.printPreviewAct = E5Action(
-            self.tr('Print Preview'),
-            UI.PixmapCache.getIcon("printPreview.png"),
-            self.tr('Print Preview'),
-            0, 0, self, 'help_file_print_preview')
-        self.printPreviewAct.setStatusTip(self.tr(
-            'Print preview of the displayed help'))
-        self.printPreviewAct.setWhatsThis(self.tr(
-            """<b>Print Preview</b>"""
-            """<p>Print preview of the displayed help text.</p>"""
-        ))
-        self.printPreviewAct.triggered.connect(
-            self.tabWidget.printPreviewBrowser)
-        self.__actions.append(self.printPreviewAct)
-        
-        self.closeAct = E5Action(
-            self.tr('Close'),
-            UI.PixmapCache.getIcon("close.png"),
-            self.tr('&Close'),
-            QKeySequence(self.tr("Ctrl+W", "File|Close")),
-            0, self, 'help_file_close')
-        self.closeAct.setStatusTip(self.tr(
-            'Close the current help window'))
-        self.closeAct.setWhatsThis(self.tr(
-            """<b>Close</b>"""
-            """<p>Closes the current help window.</p>"""
-        ))
-        self.closeAct.triggered.connect(self.tabWidget.closeBrowser)
-        self.__actions.append(self.closeAct)
-        
-        self.closeAllAct = E5Action(
-            self.tr('Close All'),
-            self.tr('Close &All'),
-            0, 0, self, 'help_file_close_all')
-        self.closeAllAct.setStatusTip(self.tr('Close all help windows'))
-        self.closeAllAct.setWhatsThis(self.tr(
-            """<b>Close All</b>"""
-            """<p>Closes all help windows except the first one.</p>"""
-        ))
-        self.closeAllAct.triggered.connect(
-            self.tabWidget.closeAllBrowsers)
-        self.__actions.append(self.closeAllAct)
-        
-        self.privateBrowsingAct = E5Action(
-            self.tr('Private Browsing'),
-            UI.PixmapCache.getIcon("privateBrowsing.png"),
-            self.tr('Private &Browsing'),
-            0, 0, self, 'help_file_private_browsing')
-        self.privateBrowsingAct.setStatusTip(self.tr('Private Browsing'))
-        self.privateBrowsingAct.setWhatsThis(self.tr(
-            """<b>Private Browsing</b>"""
-            """<p>Enables private browsing. In this mode no history is"""
-            """ recorded anymore.</p>"""
-        ))
-        self.privateBrowsingAct.triggered.connect(
-            self.__privateBrowsing)
-        self.privateBrowsingAct.setCheckable(True)
-        self.__actions.append(self.privateBrowsingAct)
-        
-        self.exitAct = E5Action(
-            self.tr('Quit'),
-            UI.PixmapCache.getIcon("exit.png"),
-            self.tr('&Quit'),
-            QKeySequence(self.tr("Ctrl+Q", "File|Quit")),
-            0, self, 'help_file_quit')
-        self.exitAct.setStatusTip(self.tr('Quit the eric6 Web Browser'))
-        self.exitAct.setWhatsThis(self.tr(
-            """<b>Quit</b>"""
-            """<p>Quit the eric6 Web Browser.</p>"""
-        ))
-        self.exitAct.triggered.connect(self.__closeAllWindows)
-        self.__actions.append(self.exitAct)
-        
-        self.backAct = E5Action(
-            self.tr('Backward'),
-            UI.PixmapCache.getIcon("back.png"),
-            self.tr('&Backward'),
-            QKeySequence(self.tr("Alt+Left", "Go|Backward")),
-            QKeySequence(self.tr("Backspace", "Go|Backward")),
-            self, 'help_go_backward')
-        self.backAct.setStatusTip(self.tr('Move one help screen backward'))
-        self.backAct.setWhatsThis(self.tr(
-            """<b>Backward</b>"""
-            """<p>Moves one help screen backward. If none is"""
-            """ available, this action is disabled.</p>"""
-        ))
-        self.backAct.triggered.connect(self.__backward)
-        self.__actions.append(self.backAct)
-        
-        self.forwardAct = E5Action(
-            self.tr('Forward'),
-            UI.PixmapCache.getIcon("forward.png"),
-            self.tr('&Forward'),
-            QKeySequence(self.tr("Alt+Right", "Go|Forward")),
-            QKeySequence(self.tr("Shift+Backspace", "Go|Forward")),
-            self, 'help_go_foreward')
-        self.forwardAct.setStatusTip(self.tr(
-            'Move one help screen forward'))
-        self.forwardAct.setWhatsThis(self.tr(
-            """<b>Forward</b>"""
-            """<p>Moves one help screen forward. If none is"""
-            """ available, this action is disabled.</p>"""
-        ))
-        self.forwardAct.triggered.connect(self.__forward)
-        self.__actions.append(self.forwardAct)
-        
-        self.homeAct = E5Action(
-            self.tr('Home'),
-            UI.PixmapCache.getIcon("home.png"),
-            self.tr('&Home'),
-            QKeySequence(self.tr("Ctrl+Home", "Go|Home")),
-            0, self, 'help_go_home')
-        self.homeAct.setStatusTip(self.tr(
-            'Move to the initial help screen'))
-        self.homeAct.setWhatsThis(self.tr(
-            """<b>Home</b>"""
-            """<p>Moves to the initial help screen.</p>"""
-        ))
-        self.homeAct.triggered.connect(self.__home)
-        self.__actions.append(self.homeAct)
-        
-        self.reloadAct = E5Action(
-            self.tr('Reload'),
-            UI.PixmapCache.getIcon("reload.png"),
-            self.tr('&Reload'),
-            QKeySequence(self.tr("Ctrl+R", "Go|Reload")),
-            QKeySequence(self.tr("F5", "Go|Reload")),
-            self, 'help_go_reload')
-        self.reloadAct.setStatusTip(self.tr(
-            'Reload the current help screen'))
-        self.reloadAct.setWhatsThis(self.tr(
-            """<b>Reload</b>"""
-            """<p>Reloads the current help screen.</p>"""
-        ))
-        self.reloadAct.triggered.connect(self.__reload)
-        self.__actions.append(self.reloadAct)
-        
-        self.stopAct = E5Action(
-            self.tr('Stop'),
-            UI.PixmapCache.getIcon("stopLoading.png"),
-            self.tr('&Stop'),
-            QKeySequence(self.tr("Ctrl+.", "Go|Stop")),
-            QKeySequence(self.tr("Esc", "Go|Stop")),
-            self, 'help_go_stop')
-        self.stopAct.setStatusTip(self.tr('Stop loading'))
-        self.stopAct.setWhatsThis(self.tr(
-            """<b>Stop</b>"""
-            """<p>Stops loading of the current tab.</p>"""
-        ))
-        self.stopAct.triggered.connect(self.__stopLoading)
-        self.__actions.append(self.stopAct)
-        
-        self.copyAct = E5Action(
-            self.tr('Copy'),
-            UI.PixmapCache.getIcon("editCopy.png"),
-            self.tr('&Copy'),
-            QKeySequence(self.tr("Ctrl+C", "Edit|Copy")),
-            0, self, 'help_edit_copy')
-        self.copyAct.setStatusTip(self.tr('Copy the selected text'))
-        self.copyAct.setWhatsThis(self.tr(
-            """<b>Copy</b>"""
-            """<p>Copy the selected text to the clipboard.</p>"""
-        ))
-        self.copyAct.triggered.connect(self.__copy)
-        self.__actions.append(self.copyAct)
-        
-        self.findAct = E5Action(
-            self.tr('Find...'),
-            UI.PixmapCache.getIcon("find.png"),
-            self.tr('&Find...'),
-            QKeySequence(self.tr("Ctrl+F", "Edit|Find")),
-            0, self, 'help_edit_find')
-        self.findAct.setStatusTip(self.tr('Find text in page'))
-        self.findAct.setWhatsThis(self.tr(
-            """<b>Find</b>"""
-            """<p>Find text in the current page.</p>"""
-        ))
-        self.findAct.triggered.connect(self.__find)
-        self.__actions.append(self.findAct)
-        
-        self.findNextAct = E5Action(
-            self.tr('Find next'),
-            UI.PixmapCache.getIcon("findNext.png"),
-            self.tr('Find &next'),
-            QKeySequence(self.tr("F3", "Edit|Find next")),
-            0, self, 'help_edit_find_next')
-        self.findNextAct.setStatusTip(self.tr(
-            'Find next occurrence of text in page'))
-        self.findNextAct.setWhatsThis(self.tr(
-            """<b>Find next</b>"""
-            """<p>Find the next occurrence of text in the current page.</p>"""
-        ))
-        self.findNextAct.triggered.connect(self.findDlg.findNext)
-        self.__actions.append(self.findNextAct)
-        
-        self.findPrevAct = E5Action(
-            self.tr('Find previous'),
-            UI.PixmapCache.getIcon("findPrev.png"),
-            self.tr('Find &previous'),
-            QKeySequence(self.tr("Shift+F3", "Edit|Find previous")),
-            0, self, 'help_edit_find_previous')
-        self.findPrevAct.setStatusTip(
-            self.tr('Find previous occurrence of text in page'))
-        self.findPrevAct.setWhatsThis(self.tr(
-            """<b>Find previous</b>"""
-            """<p>Find the previous occurrence of text in the current"""
-            """ page.</p>"""
-        ))
-        self.findPrevAct.triggered.connect(self.findDlg.findPrevious)
-        self.__actions.append(self.findPrevAct)
-        
-        self.bookmarksManageAct = E5Action(
-            self.tr('Manage Bookmarks'),
-            self.tr('&Manage Bookmarks...'),
-            QKeySequence(self.tr("Ctrl+Shift+B", "Help|Manage bookmarks")),
-            0, self, 'help_bookmarks_manage')
-        self.bookmarksManageAct.setStatusTip(self.tr(
-            'Open a dialog to manage the bookmarks.'))
-        self.bookmarksManageAct.setWhatsThis(self.tr(
-            """<b>Manage Bookmarks...</b>"""
-            """<p>Open a dialog to manage the bookmarks.</p>"""
-        ))
-        self.bookmarksManageAct.triggered.connect(
-            self.__showBookmarksDialog)
-        self.__actions.append(self.bookmarksManageAct)
-        
-        self.bookmarksAddAct = E5Action(
-            self.tr('Add Bookmark'),
-            UI.PixmapCache.getIcon("addBookmark.png"),
-            self.tr('Add &Bookmark...'),
-            QKeySequence(self.tr("Ctrl+D", "Help|Add bookmark")),
-            0, self, 'help_bookmark_add')
-        self.bookmarksAddAct.setIconVisibleInMenu(False)
-        self.bookmarksAddAct.setStatusTip(self.tr(
-            'Open a dialog to add a bookmark.'))
-        self.bookmarksAddAct.setWhatsThis(self.tr(
-            """<b>Add Bookmark</b>"""
-            """<p>Open a dialog to add the current URL as a bookmark.</p>"""
-        ))
-        self.bookmarksAddAct.triggered.connect(self.__addBookmark)
-        self.__actions.append(self.bookmarksAddAct)
-        
-        self.bookmarksAddFolderAct = E5Action(
-            self.tr('Add Folder'),
-            self.tr('Add &Folder...'),
-            0, 0, self, 'help_bookmark_show_all')
-        self.bookmarksAddFolderAct.setStatusTip(self.tr(
-            'Open a dialog to add a new bookmarks folder.'))
-        self.bookmarksAddFolderAct.setWhatsThis(self.tr(
-            """<b>Add Folder...</b>"""
-            """<p>Open a dialog to add a new bookmarks folder.</p>"""
-        ))
-        self.bookmarksAddFolderAct.triggered.connect(
-            self.__addBookmarkFolder)
-        self.__actions.append(self.bookmarksAddFolderAct)
-        
-        self.bookmarksAllTabsAct = E5Action(
-            self.tr('Bookmark All Tabs'),
-            self.tr('Bookmark All Tabs...'),
-            0, 0, self, 'help_bookmark_all_tabs')
-        self.bookmarksAllTabsAct.setStatusTip(self.tr(
-            'Bookmark all open tabs.'))
-        self.bookmarksAllTabsAct.setWhatsThis(self.tr(
-            """<b>Bookmark All Tabs...</b>"""
-            """<p>Open a dialog to add a new bookmarks folder for"""
-            """ all open tabs.</p>"""
-        ))
-        self.bookmarksAllTabsAct.triggered.connect(self.bookmarkAll)
-        self.__actions.append(self.bookmarksAllTabsAct)
-        
-        self.whatsThisAct = E5Action(
-            self.tr('What\'s This?'),
-            UI.PixmapCache.getIcon("whatsThis.png"),
-            self.tr('&What\'s This?'),
-            QKeySequence(self.tr("Shift+F1", "Help|What's This?'")),
-            0, self, 'help_help_whats_this')
-        self.whatsThisAct.setStatusTip(self.tr('Context sensitive help'))
-        self.whatsThisAct.setWhatsThis(self.tr(
-            """<b>Display context sensitive help</b>"""
-            """<p>In What's This? mode, the mouse cursor shows an arrow"""
-            """ with a question mark, and you can click on the interface"""
-            """ elements to get a short description of what they do and how"""
-            """ to use them. In dialogs, this feature can be accessed using"""
-            """ the context help button in the titlebar.</p>"""
-        ))
-        self.whatsThisAct.triggered.connect(self.__whatsThis)
-        self.__actions.append(self.whatsThisAct)
-        
-        self.aboutAct = E5Action(
-            self.tr('About'),
-            self.tr('&About'),
-            0, 0, self, 'help_help_about')
-        self.aboutAct.setStatusTip(self.tr(
-            'Display information about this software'))
-        self.aboutAct.setWhatsThis(self.tr(
-            """<b>About</b>"""
-            """<p>Display some information about this software.</p>"""
-        ))
-        self.aboutAct.triggered.connect(self.__about)
-        self.__actions.append(self.aboutAct)
-        
-        self.aboutQtAct = E5Action(
-            self.tr('About Qt'),
-            self.tr('About &Qt'),
-            0, 0, self, 'help_help_about_qt')
-        self.aboutQtAct.setStatusTip(
-            self.tr('Display information about the Qt toolkit'))
-        self.aboutQtAct.setWhatsThis(self.tr(
-            """<b>About Qt</b>"""
-            """<p>Display some information about the Qt toolkit.</p>"""
-        ))
-        self.aboutQtAct.triggered.connect(self.__aboutQt)
-        self.__actions.append(self.aboutQtAct)
-        
-        self.zoomInAct = E5Action(
-            self.tr('Zoom in'),
-            UI.PixmapCache.getIcon("zoomIn.png"),
-            self.tr('Zoom &in'),
-            QKeySequence(self.tr("Ctrl++", "View|Zoom in")),
-            QKeySequence(self.tr("Zoom In", "View|Zoom in")),
-            self, 'help_view_zoom_in')
-        self.zoomInAct.setStatusTip(self.tr('Zoom in on the text'))
-        self.zoomInAct.setWhatsThis(self.tr(
-            """<b>Zoom in</b>"""
-            """<p>Zoom in on the text. This makes the text bigger.</p>"""
-        ))
-        self.zoomInAct.triggered.connect(self.__zoomIn)
-        self.__actions.append(self.zoomInAct)
-        
-        self.zoomOutAct = E5Action(
-            self.tr('Zoom out'),
-            UI.PixmapCache.getIcon("zoomOut.png"),
-            self.tr('Zoom &out'),
-            QKeySequence(self.tr("Ctrl+-", "View|Zoom out")),
-            QKeySequence(self.tr("Zoom Out", "View|Zoom out")),
-            self, 'help_view_zoom_out')
-        self.zoomOutAct.setStatusTip(self.tr('Zoom out on the text'))
-        self.zoomOutAct.setWhatsThis(self.tr(
-            """<b>Zoom out</b>"""
-            """<p>Zoom out on the text. This makes the text smaller.</p>"""
-        ))
-        self.zoomOutAct.triggered.connect(self.__zoomOut)
-        self.__actions.append(self.zoomOutAct)
-        
-        self.zoomResetAct = E5Action(
-            self.tr('Zoom reset'),
-            UI.PixmapCache.getIcon("zoomReset.png"),
-            self.tr('Zoom &reset'),
-            QKeySequence(self.tr("Ctrl+0", "View|Zoom reset")),
-            0, self, 'help_view_zoom_reset')
-        self.zoomResetAct.setStatusTip(self.tr(
-            'Reset the zoom of the text'))
-        self.zoomResetAct.setWhatsThis(self.tr(
-            """<b>Zoom reset</b>"""
-            """<p>Reset the zoom of the text. """
-            """This sets the zoom factor to 100%.</p>"""
-        ))
-        self.zoomResetAct.triggered.connect(self.__zoomReset)
-        self.__actions.append(self.zoomResetAct)
-        
-        if hasattr(QWebSettings, 'ZoomTextOnly'):
-            self.zoomTextOnlyAct = E5Action(
-                self.tr('Zoom text only'),
-                self.tr('Zoom &text only'),
-                0, 0, self, 'help_view_zoom_text_only')
-            self.zoomTextOnlyAct.setCheckable(True)
-            self.zoomTextOnlyAct.setStatusTip(self.tr(
-                'Zoom text only; pictures remain constant'))
-            self.zoomTextOnlyAct.setWhatsThis(self.tr(
-                """<b>Zoom text only</b>"""
-                """<p>Zoom text only; pictures remain constant.</p>"""
-            ))
-            self.zoomTextOnlyAct.triggered[bool].connect(
-                self.__zoomTextOnly)
-            self.__actions.append(self.zoomTextOnlyAct)
-        else:
-            self.zoomTextOnlyAct = None
-        
-        self.pageSourceAct = E5Action(
-            self.tr('Show page source'),
-            self.tr('Show page source'),
-            QKeySequence(self.tr('Ctrl+U')), 0,
-            self, 'help_show_page_source')
-        self.pageSourceAct.setStatusTip(self.tr(
-            'Show the page source in an editor'))
-        self.pageSourceAct.setWhatsThis(self.tr(
-            """<b>Show page source</b>"""
-            """<p>Show the page source in an editor.</p>"""
-        ))
-        self.pageSourceAct.triggered.connect(self.__showPageSource)
-        self.__actions.append(self.pageSourceAct)
-        self.addAction(self.pageSourceAct)
-        
-        self.fullScreenAct = E5Action(
-            self.tr('Full Screen'),
-            UI.PixmapCache.getIcon("windowFullscreen.png"),
-            self.tr('&Full Screen'),
-            QKeySequence(self.tr('F11')), 0,
-            self, 'help_view_full_scree')
-        self.fullScreenAct.triggered.connect(self.__viewFullScreen)
-        self.__actions.append(self.fullScreenAct)
-        self.addAction(self.fullScreenAct)
-        
-        self.nextTabAct = E5Action(
-            self.tr('Show next tab'),
-            self.tr('Show next tab'),
-            QKeySequence(self.tr('Ctrl+Alt+Tab')), 0,
-            self, 'help_view_next_tab')
-        self.nextTabAct.triggered.connect(self.__nextTab)
-        self.__actions.append(self.nextTabAct)
-        self.addAction(self.nextTabAct)
-        
-        self.prevTabAct = E5Action(
-            self.tr('Show previous tab'),
-            self.tr('Show previous tab'),
-            QKeySequence(self.tr('Shift+Ctrl+Alt+Tab')), 0,
-            self, 'help_view_previous_tab')
-        self.prevTabAct.triggered.connect(self.__prevTab)
-        self.__actions.append(self.prevTabAct)
-        self.addAction(self.prevTabAct)
-        
-        self.switchTabAct = E5Action(
-            self.tr('Switch between tabs'),
-            self.tr('Switch between tabs'),
-            QKeySequence(self.tr('Ctrl+1')), 0,
-            self, 'help_switch_tabs')
-        self.switchTabAct.triggered.connect(self.__switchTab)
-        self.__actions.append(self.switchTabAct)
-        self.addAction(self.switchTabAct)
-        
-        self.prefAct = E5Action(
-            self.tr('Preferences'),
-            UI.PixmapCache.getIcon("configure.png"),
-            self.tr('&Preferences...'), 0, 0, self, 'help_preferences')
-        self.prefAct.setStatusTip(self.tr(
-            'Set the prefered configuration'))
-        self.prefAct.setWhatsThis(self.tr(
-            """<b>Preferences</b>"""
-            """<p>Set the configuration items of the application"""
-            """ with your prefered values.</p>"""
-        ))
-        self.prefAct.triggered.connect(self.__showPreferences)
-        self.__actions.append(self.prefAct)
-
-        self.acceptedLanguagesAct = E5Action(
-            self.tr('Languages'),
-            UI.PixmapCache.getIcon("flag.png"),
-            self.tr('&Languages...'), 0, 0,
-            self, 'help_accepted_languages')
-        self.acceptedLanguagesAct.setStatusTip(self.tr(
-            'Configure the accepted languages for web pages'))
-        self.acceptedLanguagesAct.setWhatsThis(self.tr(
-            """<b>Languages</b>"""
-            """<p>Configure the accepted languages for web pages.</p>"""
-        ))
-        self.acceptedLanguagesAct.triggered.connect(
-            self.__showAcceptedLanguages)
-        self.__actions.append(self.acceptedLanguagesAct)
-        
-        self.cookiesAct = E5Action(
-            self.tr('Cookies'),
-            UI.PixmapCache.getIcon("cookie.png"),
-            self.tr('C&ookies...'), 0, 0, self, 'help_cookies')
-        self.cookiesAct.setStatusTip(self.tr(
-            'Configure cookies handling'))
-        self.cookiesAct.setWhatsThis(self.tr(
-            """<b>Cookies</b>"""
-            """<p>Configure cookies handling.</p>"""
-        ))
-        self.cookiesAct.triggered.connect(
-            self.__showCookiesConfiguration)
-        self.__actions.append(self.cookiesAct)
-        
-        self.flashCookiesAct = E5Action(
-            self.tr('Flash Cookies'),
-            UI.PixmapCache.getIcon("flashCookie.png"),
-            self.tr('&Flash Cookies...'), 0, 0, self, 'help_flash_cookies')
-        self.flashCookiesAct.setStatusTip(self.tr(
-            'Manage flash cookies'))
-        self.flashCookiesAct.setWhatsThis(self.tr(
-            """<b>Flash Cookies</b>"""
-            """<p>Show a dialog to manage the flash cookies.</p>"""
-        ))
-        self.flashCookiesAct.triggered.connect(
-            self.__showFlashCookiesManagement)
-        self.__actions.append(self.flashCookiesAct)
-        
-        self.offlineStorageAct = E5Action(
-            self.tr('Offline Storage'),
-            UI.PixmapCache.getIcon("preferences-html5.png"),
-            self.tr('Offline &Storage...'), 0, 0,
-            self, 'help_offline_storage')
-        self.offlineStorageAct.setStatusTip(self.tr(
-            'Configure offline storage'))
-        self.offlineStorageAct.setWhatsThis(self.tr(
-            """<b>Offline Storage</b>"""
-            """<p>Opens a dialog to configure offline storage.</p>"""
-        ))
-        self.offlineStorageAct.triggered.connect(
-            self.__showOfflineStorageConfiguration)
-        self.__actions.append(self.offlineStorageAct)
-        
-        self.personalDataAct = E5Action(
-            self.tr('Personal Information'),
-            UI.PixmapCache.getIcon("pim.png"),
-            self.tr('Personal Information...'),
-            0, 0,
-            self, 'help_personal_information')
-        self.personalDataAct.setStatusTip(self.tr(
-            'Configure personal information for completing form fields'))
-        self.personalDataAct.setWhatsThis(self.tr(
-            """<b>Personal Information...</b>"""
-            """<p>Opens a dialog to configure the personal information"""
-            """ used for completing form fields.</p>"""
-        ))
-        self.personalDataAct.triggered.connect(
-            self.__showPersonalInformationDialog)
-        self.__actions.append(self.personalDataAct)
-        
-        self.greaseMonkeyAct = E5Action(
-            self.tr('GreaseMonkey Scripts'),
-            UI.PixmapCache.getIcon("greaseMonkey.png"),
-            self.tr('GreaseMonkey Scripts...'),
-            0, 0,
-            self, 'help_greasemonkey')
-        self.greaseMonkeyAct.setStatusTip(self.tr(
-            'Configure the GreaseMonkey Scripts'))
-        self.greaseMonkeyAct.setWhatsThis(self.tr(
-            """<b>GreaseMonkey Scripts...</b>"""
-            """<p>Opens a dialog to configure the available GreaseMonkey"""
-            """ Scripts.</p>"""
-        ))
-        self.greaseMonkeyAct.triggered.connect(
-            self.__showGreaseMonkeyConfigDialog)
-        self.__actions.append(self.greaseMonkeyAct)
-        
-        self.editMessageFilterAct = E5Action(
-            self.tr('Edit Message Filters'),
-            UI.PixmapCache.getIcon("warning.png"),
-            self.tr('Edit Message Filters...'), 0, 0, self,
-            'help_manage_message_filters')
-        self.editMessageFilterAct.setStatusTip(self.tr(
-            'Edit the message filters used to suppress unwanted messages'))
-        self.editMessageFilterAct.setWhatsThis(self.tr(
-            """<b>Edit Message Filters</b>"""
-            """<p>Opens a dialog to edit the message filters used to"""
-            """ suppress unwanted messages been shown in an error"""
-            """ window.</p>"""
-        ))
-        self.editMessageFilterAct.triggered.connect(
-            E5ErrorMessage.editMessageFilters)
-        self.__actions.append(self.editMessageFilterAct)
-
-        self.featurePermissionAct = E5Action(
-            self.tr('Edit HTML5 Feature Permissions'),
-            UI.PixmapCache.getIcon("featurePermission.png"),
-            self.tr('Edit HTML5 Feature Permissions...'), 0, 0, self,
-            'help_edit_feature_permissions')
-        self.featurePermissionAct.setStatusTip(self.tr(
-            'Edit the remembered HTML5 feature permissions'))
-        self.featurePermissionAct.setWhatsThis(self.tr(
-            """<b>Edit HTML5 Feature Permissions</b>"""
-            """<p>Opens a dialog to edit the remembered HTML5"""
-            """ feature permissions.</p>"""
-        ))
-        self.featurePermissionAct.triggered.connect(
-            self.__showFeaturePermissionDialog)
-        self.__actions.append(self.featurePermissionAct)
-
-        if HelpWindow._useQtHelp:
-            self.syncTocAct = E5Action(
-                self.tr('Sync with Table of Contents'),
-                UI.PixmapCache.getIcon("syncToc.png"),
-                self.tr('Sync with Table of Contents'),
-                0, 0, self, 'help_sync_toc')
-            self.syncTocAct.setStatusTip(self.tr(
-                'Synchronizes the table of contents with current page'))
-            self.syncTocAct.setWhatsThis(self.tr(
-                """<b>Sync with Table of Contents</b>"""
-                """<p>Synchronizes the table of contents with current"""
-                """ page.</p>"""
-            ))
-            self.syncTocAct.triggered.connect(self.__syncTOC)
-            self.__actions.append(self.syncTocAct)
-            
-            self.showTocAct = E5Action(
-                self.tr('Table of Contents'),
-                self.tr('Table of Contents'),
-                0, 0, self, 'help_show_toc')
-            self.showTocAct.setStatusTip(self.tr(
-                'Shows the table of contents window'))
-            self.showTocAct.setWhatsThis(self.tr(
-                """<b>Table of Contents</b>"""
-                """<p>Shows the table of contents window.</p>"""
-            ))
-            self.showTocAct.triggered.connect(self.__showTocWindow)
-            self.__actions.append(self.showTocAct)
-            
-            self.showIndexAct = E5Action(
-                self.tr('Index'),
-                self.tr('Index'),
-                0, 0, self, 'help_show_index')
-            self.showIndexAct.setStatusTip(self.tr(
-                'Shows the index window'))
-            self.showIndexAct.setWhatsThis(self.tr(
-                """<b>Index</b>"""
-                """<p>Shows the index window.</p>"""
-            ))
-            self.showIndexAct.triggered.connect(self.__showIndexWindow)
-            self.__actions.append(self.showIndexAct)
-            
-            self.showSearchAct = E5Action(
-                self.tr('Search'),
-                self.tr('Search'),
-                0, 0, self, 'help_show_search')
-            self.showSearchAct.setStatusTip(self.tr(
-                'Shows the search window'))
-            self.showSearchAct.setWhatsThis(self.tr(
-                """<b>Search</b>"""
-                """<p>Shows the search window.</p>"""
-            ))
-            self.showSearchAct.triggered.connect(
-                self.__showSearchWindow)
-            self.__actions.append(self.showSearchAct)
-            
-            self.manageQtHelpDocsAct = E5Action(
-                self.tr('Manage QtHelp Documents'),
-                self.tr('Manage QtHelp &Documents'),
-                0, 0, self, 'help_qthelp_documents')
-            self.manageQtHelpDocsAct.setStatusTip(self.tr(
-                'Shows a dialog to manage the QtHelp documentation set'))
-            self.manageQtHelpDocsAct.setWhatsThis(self.tr(
-                """<b>Manage QtHelp Documents</b>"""
-                """<p>Shows a dialog to manage the QtHelp documentation"""
-                """ set.</p>"""
-            ))
-            self.manageQtHelpDocsAct.triggered.connect(
-                self.__manageQtHelpDocumentation)
-            self.__actions.append(self.manageQtHelpDocsAct)
-            
-            self.manageQtHelpFiltersAct = E5Action(
-                self.tr('Manage QtHelp Filters'),
-                self.tr('Manage QtHelp &Filters'),
-                0, 0, self, 'help_qthelp_filters')
-            self.manageQtHelpFiltersAct.setStatusTip(self.tr(
-                'Shows a dialog to manage the QtHelp filters'))
-            self.manageQtHelpFiltersAct.setWhatsThis(self.tr(
-                """<b>Manage QtHelp Filters</b>"""
-                """<p>Shows a dialog to manage the QtHelp filters.</p>"""
-            ))
-            self.manageQtHelpFiltersAct.triggered.connect(
-                self.__manageQtHelpFilters)
-            self.__actions.append(self.manageQtHelpFiltersAct)
-            
-            self.reindexDocumentationAct = E5Action(
-                self.tr('Reindex Documentation'),
-                self.tr('&Reindex Documentation'),
-                0, 0, self, 'help_qthelp_reindex')
-            self.reindexDocumentationAct.setStatusTip(self.tr(
-                'Reindexes the documentation set'))
-            self.reindexDocumentationAct.setWhatsThis(self.tr(
-                """<b>Reindex Documentation</b>"""
-                """<p>Reindexes the documentation set.</p>"""
-            ))
-            self.reindexDocumentationAct.triggered.connect(
-                self.__searchEngine.reindexDocumentation)
-            self.__actions.append(self.reindexDocumentationAct)
-        
-        self.clearPrivateDataAct = E5Action(
-            self.tr('Clear private data'),
-            UI.PixmapCache.getIcon("clearPrivateData.png"),
-            self.tr('Clear private data'),
-            0, 0,
-            self, 'help_clear_private_data')
-        self.clearPrivateDataAct.setStatusTip(self.tr(
-            'Clear private data'))
-        self.clearPrivateDataAct.setWhatsThis(self.tr(
-            """<b>Clear private data</b>"""
-            """<p>Clears the private data like browsing history, search"""
-            """ history or the favicons database.</p>"""
-        ))
-        self.clearPrivateDataAct.triggered.connect(
-            self.__clearPrivateData)
-        self.__actions.append(self.clearPrivateDataAct)
-        
-        self.clearIconsAct = E5Action(
-            self.tr('Clear icons database'),
-            self.tr('Clear &icons database'),
-            0, 0,
-            self, 'help_clear_icons_db')
-        self.clearIconsAct.setStatusTip(self.tr(
-            'Clear the database of favicons'))
-        self.clearIconsAct.setWhatsThis(self.tr(
-            """<b>Clear icons database</b>"""
-            """<p>Clears the database of favicons of previously visited"""
-            """ URLs.</p>"""
-        ))
-        self.clearIconsAct.triggered.connect(self.__clearIconsDatabase)
-        self.__actions.append(self.clearIconsAct)
-        
-        self.searchEnginesAct = E5Action(
-            self.tr('Configure Search Engines'),
-            self.tr('Configure Search &Engines...'),
-            0, 0,
-            self, 'help_search_engines')
-        self.searchEnginesAct.setStatusTip(self.tr(
-            'Configure the available search engines'))
-        self.searchEnginesAct.setWhatsThis(self.tr(
-            """<b>Configure Search Engines...</b>"""
-            """<p>Opens a dialog to configure the available search"""
-            """ engines.</p>"""
-        ))
-        self.searchEnginesAct.triggered.connect(
-            self.__showEnginesConfigurationDialog)
-        self.__actions.append(self.searchEnginesAct)
-        
-        self.passwordsAct = E5Action(
-            self.tr('Manage Saved Passwords'),
-            UI.PixmapCache.getIcon("passwords.png"),
-            self.tr('Manage Saved Passwords...'),
-            0, 0,
-            self, 'help_manage_passwords')
-        self.passwordsAct.setStatusTip(self.tr(
-            'Manage the saved passwords'))
-        self.passwordsAct.setWhatsThis(self.tr(
-            """<b>Manage Saved Passwords...</b>"""
-            """<p>Opens a dialog to manage the saved passwords.</p>"""
-        ))
-        self.passwordsAct.triggered.connect(self.__showPasswordsDialog)
-        self.__actions.append(self.passwordsAct)
-        
-        self.adblockAct = E5Action(
-            self.tr('Ad Block'),
-            UI.PixmapCache.getIcon("adBlockPlus.png"),
-            self.tr('&Ad Block...'),
-            0, 0,
-            self, 'help_adblock')
-        self.adblockAct.setStatusTip(self.tr(
-            'Configure AdBlock subscriptions and rules'))
-        self.adblockAct.setWhatsThis(self.tr(
-            """<b>Ad Block...</b>"""
-            """<p>Opens a dialog to configure AdBlock subscriptions and"""
-            """ rules.</p>"""
-        ))
-        self.adblockAct.triggered.connect(self.__showAdBlockDialog)
-        self.__actions.append(self.adblockAct)
-        
-        self.flashblockAct = E5Action(
-            self.tr('ClickToFlash'),
-            UI.PixmapCache.getIcon("flashBlock.png"),
-            self.tr('&ClickToFlash...'),
-            0, 0,
-            self, 'help_flashblock')
-        self.flashblockAct.setStatusTip(self.tr(
-            'Configure ClickToFlash whitelist'))
-        self.flashblockAct.setWhatsThis(self.tr(
-            """<b>ClickToFlash...</b>"""
-            """<p>Opens a dialog to configure the ClickToFlash"""
-            """ whitelist.</p>"""
-        ))
-        self.flashblockAct.triggered.connect(
-            self.__showClickToFlashDialog)
-        self.__actions.append(self.flashblockAct)
-        
-        if SSL_AVAILABLE:
-            self.certificatesAct = E5Action(
-                self.tr('Manage SSL Certificates'),
-                UI.PixmapCache.getIcon("certificates.png"),
-                self.tr('Manage SSL Certificates...'),
-                0, 0,
-                self, 'help_manage_certificates')
-            self.certificatesAct.setStatusTip(self.tr(
-                'Manage the saved SSL certificates'))
-            self.certificatesAct.setWhatsThis(self.tr(
-                """<b>Manage SSL Certificates...</b>"""
-                """<p>Opens a dialog to manage the saved SSL"""
-                """ certificates.</p>"""
-            ))
-            self.certificatesAct.triggered.connect(
-                self.__showCertificatesDialog)
-            self.__actions.append(self.certificatesAct)
-        
-        self.toolsMonitorAct = E5Action(
-            self.tr('Network Monitor'),
-            self.tr('&Network Monitor...'),
-            0, 0,
-            self, 'help_tools_network_monitor')
-        self.toolsMonitorAct.setStatusTip(self.tr(
-            'Show the network monitor dialog'))
-        self.toolsMonitorAct.setWhatsThis(self.tr(
-            """<b>Network Monitor...</b>"""
-            """<p>Shows the network monitor dialog.</p>"""
-        ))
-        self.toolsMonitorAct.triggered.connect(
-            self.__showNetworkMonitor)
-        self.__actions.append(self.toolsMonitorAct)
-        
-        self.showDownloadManagerAct = E5Action(
-            self.tr('Downloads'),
-            self.tr('Downloads'),
-            0, 0, self, 'help_show_downloads')
-        self.showDownloadManagerAct.setStatusTip(self.tr(
-            'Shows the downloads window'))
-        self.showDownloadManagerAct.setWhatsThis(self.tr(
-            """<b>Downloads</b>"""
-            """<p>Shows the downloads window.</p>"""
-        ))
-        self.showDownloadManagerAct.triggered.connect(
-            self.__showDownloadsWindow)
-        self.__actions.append(self.showDownloadManagerAct)
-        
-        self.feedsManagerAct = E5Action(
-            self.tr('RSS Feeds Dialog'),
-            UI.PixmapCache.getIcon("rss22.png"),
-            self.tr('&RSS Feeds Dialog...'),
-            QKeySequence(self.tr("Ctrl+Shift+F", "Help|RSS Feeds Dialog")),
-            0, self, 'help_rss_feeds')
-        self.feedsManagerAct.setStatusTip(self.tr(
-            'Open a dialog showing the configured RSS feeds.'))
-        self.feedsManagerAct.setWhatsThis(self.tr(
-            """<b>RSS Feeds Dialog...</b>"""
-            """<p>Open a dialog to show the configured RSS feeds."""
-            """ It can be used to mange the feeds and to show their"""
-            """ contents.</p>"""
-        ))
-        self.feedsManagerAct.triggered.connect(self.__showFeedsManager)
-        self.__actions.append(self.feedsManagerAct)
-        
-        self.siteInfoAct = E5Action(
-            self.tr('Siteinfo Dialog'),
-            UI.PixmapCache.getIcon("helpAbout.png"),
-            self.tr('&Siteinfo Dialog...'),
-            QKeySequence(self.tr("Ctrl+Shift+I", "Help|Siteinfo Dialog")),
-            0, self, 'help_siteinfo')
-        self.siteInfoAct.setStatusTip(self.tr(
-            'Open a dialog showing some information about the current site.'))
-        self.siteInfoAct.setWhatsThis(self.tr(
-            """<b>Siteinfo Dialog...</b>"""
-            """<p>Opens a dialog showing some information about the current"""
-            """ site.</p>"""
-        ))
-        self.siteInfoAct.triggered.connect(self.__showSiteinfoDialog)
-        self.__actions.append(self.siteInfoAct)
-        
-        self.userAgentManagerAct = E5Action(
-            self.tr('Manage User Agent Settings'),
-            self.tr('Manage &User Agent Settings'),
-            0, 0, self, 'help_user_agent_settings')
-        self.userAgentManagerAct.setStatusTip(self.tr(
-            'Shows a dialog to manage the User Agent settings'))
-        self.userAgentManagerAct.setWhatsThis(self.tr(
-            """<b>Manage User Agent Settings</b>"""
-            """<p>Shows a dialog to manage the User Agent settings.</p>"""
-        ))
-        self.userAgentManagerAct.triggered.connect(
-            self.__showUserAgentsDialog)
-        self.__actions.append(self.userAgentManagerAct)
-        
-        self.synchronizationAct = E5Action(
-            self.tr('Synchronize data'),
-            UI.PixmapCache.getIcon("sync.png"),
-            self.tr('&Synchronize Data...'),
-            0, 0, self, 'help_synchronize_data')
-        self.synchronizationAct.setStatusTip(self.tr(
-            'Shows a dialog to synchronize data via the network'))
-        self.synchronizationAct.setWhatsThis(self.tr(
-            """<b>Synchronize Data...</b>"""
-            """<p>This shows a dialog to synchronize data via the"""
-            """ network.</p>"""
-        ))
-        self.synchronizationAct.triggered.connect(
-            self.__showSyncDialog)
-        self.__actions.append(self.synchronizationAct)
-        
-        self.zoomValuesAct = E5Action(
-            self.tr('Manage Saved Zoom Values'),
-            UI.PixmapCache.getIcon("zoomReset.png"),
-            self.tr('Manage Saved Zoom Values...'),
-            0, 0,
-            self, 'help_manage_zoom_values')
-        self.zoomValuesAct.setStatusTip(self.tr(
-            'Manage the saved zoom values'))
-        self.zoomValuesAct.setWhatsThis(self.tr(
-            """<b>Manage Saved Zoom Values...</b>"""
-            """<p>Opens a dialog to manage the saved zoom values.</p>"""
-        ))
-        self.zoomValuesAct.triggered.connect(self.__showZoomValuesDialog)
-        self.__actions.append(self.zoomValuesAct)
-
-        self.shortcutsAct = E5Action(
-            self.tr('Keyboard Shortcuts'),
-            UI.PixmapCache.getIcon("configureShortcuts.png"),
-            self.tr('Keyboard &Shortcuts...'),
-            0, 0,
-            self, 'webbrowser_keyboard_shortcuts')
-        self.shortcutsAct.setStatusTip(self.tr(
-            'Set the keyboard shortcuts'))
-        self.shortcutsAct.setWhatsThis(self.tr(
-            """<b>Keyboard Shortcuts</b>"""
-            """<p>Set the keyboard shortcuts of the application"""
-            """ with your prefered values.</p>"""
-        ))
-        self.shortcutsAct.triggered.connect(self.__configShortcuts)
-        self.__actions.append(self.shortcutsAct)
-
-        self.exportShortcutsAct = E5Action(
-            self.tr('Export Keyboard Shortcuts'),
-            UI.PixmapCache.getIcon("exportShortcuts.png"),
-            self.tr('&Export Keyboard Shortcuts...'),
-            0, 0, self, 'export_keyboard_shortcuts')
-        self.exportShortcutsAct.setStatusTip(self.tr(
-            'Export the keyboard shortcuts'))
-        self.exportShortcutsAct.setWhatsThis(self.tr(
-            """<b>Export Keyboard Shortcuts</b>"""
-            """<p>Export the keyboard shortcuts of the application.</p>"""
-        ))
-        self.exportShortcutsAct.triggered.connect(self.__exportShortcuts)
-        self.__actions.append(self.exportShortcutsAct)
-
-        self.importShortcutsAct = E5Action(
-            self.tr('Import Keyboard Shortcuts'),
-            UI.PixmapCache.getIcon("importShortcuts.png"),
-            self.tr('&Import Keyboard Shortcuts...'),
-            0, 0, self, 'import_keyboard_shortcuts')
-        self.importShortcutsAct.setStatusTip(self.tr(
-            'Import the keyboard shortcuts'))
-        self.importShortcutsAct.setWhatsThis(self.tr(
-            """<b>Import Keyboard Shortcuts</b>"""
-            """<p>Import the keyboard shortcuts of the application.</p>"""
-        ))
-        self.importShortcutsAct.triggered.connect(self.__importShortcuts)
-        self.__actions.append(self.importShortcutsAct)
-        
-        self.backAct.setEnabled(False)
-        self.forwardAct.setEnabled(False)
-        
-        # now read the keyboard shortcuts for the actions
-        Shortcuts.readShortcuts(helpViewer=self)
-    
-    def getActions(self):
-        """
-        Public method to get a list of all actions.
-        
-        @return list of all actions (list of E5Action)
-        """
-        return self.__actions[:]
-    
-    def getActionsCategory(self):
-        """
-        Public method to get the category of the defined actions.
-        
-        @return category of the actions
-        @rtype str
-        """
-        return "HelpViewer"
-    
-    def __initMenus(self):
-        """
-        Private method to create the menus.
-        """
-        mb = self.menuBar()
-        
-        menu = mb.addMenu(self.tr('&File'))
-        menu.setTearOffEnabled(True)
-        menu.addAction(self.newTabAct)
-        menu.addAction(self.newAct)
-        menu.addAction(self.openAct)
-        menu.addAction(self.openTabAct)
-        menu.addSeparator()
-        menu.addAction(self.saveAsAct)
-        menu.addAction(self.savePageScreenAct)
-        menu.addAction(self.saveVisiblePageScreenAct)
-        menu.addSeparator()
-        menu.addAction(self.printPreviewAct)
-        menu.addAction(self.printAct)
-        if self.printPdfAct:
-            menu.addAction(self.printPdfAct)
-        menu.addSeparator()
-        menu.addAction(self.closeAct)
-        menu.addAction(self.closeAllAct)
-        menu.addSeparator()
-        menu.addAction(self.privateBrowsingAct)
-        menu.addSeparator()
-        menu.addAction(self.exitAct)
-        
-        menu = mb.addMenu(self.tr('&Edit'))
-        menu.setTearOffEnabled(True)
-        menu.addAction(self.copyAct)
-        menu.addSeparator()
-        menu.addAction(self.findAct)
-        menu.addAction(self.findNextAct)
-        menu.addAction(self.findPrevAct)
-        
-        menu = mb.addMenu(self.tr('&View'))
-        menu.setTearOffEnabled(True)
-        menu.addAction(self.zoomInAct)
-        menu.addAction(self.zoomResetAct)
-        menu.addAction(self.zoomOutAct)
-        if self.zoomTextOnlyAct is not None:
-            menu.addAction(self.zoomTextOnlyAct)
-        menu.addSeparator()
-        menu.addAction(self.pageSourceAct)
-        menu.addAction(self.fullScreenAct)
-        if hasattr(QWebSettings, 'defaultTextEncoding'):
-            self.__textEncodingMenu = menu.addMenu(
-                self.tr("Text Encoding"))
-            self.__textEncodingMenu.aboutToShow.connect(
-                self.__aboutToShowTextEncodingMenu)
-            self.__textEncodingMenu.triggered.connect(self.__setTextEncoding)
-        
-        menu = mb.addMenu(self.tr('&Go'))
-        menu.setTearOffEnabled(True)
-        menu.addAction(self.backAct)
-        menu.addAction(self.forwardAct)
-        menu.addAction(self.homeAct)
-        menu.addSeparator()
-        menu.addAction(self.stopAct)
-        menu.addAction(self.reloadAct)
-        if HelpWindow._useQtHelp:
-            menu.addSeparator()
-            menu.addAction(self.syncTocAct)
-        
-        from .History.HistoryMenu import HistoryMenu
-        self.historyMenu = HistoryMenu(self, self.tabWidget)
-        self.historyMenu.setTearOffEnabled(True)
-        self.historyMenu.setTitle(self.tr('H&istory'))
-        self.historyMenu.openUrl.connect(self.openUrl)
-        self.historyMenu.newUrl.connect(self.openUrlNewTab)
-        mb.addMenu(self.historyMenu)
-        
-        from .Bookmarks.BookmarksMenu import BookmarksMenuBarMenu
-        self.bookmarksMenu = BookmarksMenuBarMenu(self)
-        self.bookmarksMenu.setTearOffEnabled(True)
-        self.bookmarksMenu.setTitle(self.tr('&Bookmarks'))
-        self.bookmarksMenu.openUrl.connect(self.openUrl)
-        self.bookmarksMenu.newUrl.connect(self.openUrlNewTab)
-        mb.addMenu(self.bookmarksMenu)
-        
-        bookmarksActions = []
-        bookmarksActions.append(self.bookmarksManageAct)
-        bookmarksActions.append(self.bookmarksAddAct)
-        bookmarksActions.append(self.bookmarksAllTabsAct)
-        bookmarksActions.append(self.bookmarksAddFolderAct)
-        bookmarksActions.append("--SEPARATOR--")
-        bookmarksActions.append(self.importBookmarksAct)
-        bookmarksActions.append(self.exportBookmarksAct)
-        self.bookmarksMenu.setInitialActions(bookmarksActions)
-        
-        menu = mb.addMenu(self.tr('&Settings'))
-        menu.setTearOffEnabled(True)
-        menu.addAction(self.prefAct)
-        menu.addSeparator()
-        menu.addAction(self.shortcutsAct)
-        menu.addAction(self.exportShortcutsAct)
-        menu.addAction(self.importShortcutsAct)
-        menu.addSeparator()
-        menu.addAction(self.acceptedLanguagesAct)
-        menu.addAction(self.cookiesAct)
-        menu.addAction(self.flashCookiesAct)
-        menu.addAction(self.offlineStorageAct)
-        menu.addAction(self.personalDataAct)
-        menu.addAction(self.greaseMonkeyAct)
-        menu.addAction(self.featurePermissionAct)
-        menu.addSeparator()
-        menu.addAction(self.editMessageFilterAct)
-        menu.addSeparator()
-        menu.addAction(self.searchEnginesAct)
-        menu.addSeparator()
-        menu.addAction(self.passwordsAct)
-        if SSL_AVAILABLE:
-            menu.addAction(self.certificatesAct)
-        menu.addSeparator()
-        menu.addAction(self.zoomValuesAct)
-        menu.addSeparator()
-        menu.addAction(self.adblockAct)
-        menu.addAction(self.flashblockAct)
-        menu.addSeparator()
-        self.__settingsMenu = menu
-        self.__settingsMenu.aboutToShow.connect(
-            self.__aboutToShowSettingsMenu)
-        
-        from .UserAgent.UserAgentMenu import UserAgentMenu
-        self.__userAgentMenu = UserAgentMenu(self.tr("Global User Agent"))
-        menu.addMenu(self.__userAgentMenu)
-        menu.addAction(self.userAgentManagerAct)
-        menu.addSeparator()
-        
-        if HelpWindow._useQtHelp:
-            menu.addAction(self.manageQtHelpDocsAct)
-            menu.addAction(self.manageQtHelpFiltersAct)
-            menu.addAction(self.reindexDocumentationAct)
-            menu.addSeparator()
-        menu.addAction(self.clearPrivateDataAct)
-        menu.addAction(self.clearIconsAct)
-        
-        menu = mb.addMenu(self.tr("&Tools"))
-        menu.setTearOffEnabled(True)
-        menu.addAction(self.feedsManagerAct)
-        menu.addAction(self.siteInfoAct)
-        menu.addSeparator()
-        menu.addAction(self.synchronizationAct)
-        menu.addSeparator()
-        menu.addAction(self.toolsMonitorAct)
-        
-        menu = mb.addMenu(self.tr("&Window"))
-        menu.setTearOffEnabled(True)
-        menu.addAction(self.showDownloadManagerAct)
-        if HelpWindow._useQtHelp:
-            menu.addSeparator()
-            menu.addAction(self.showTocAct)
-            menu.addAction(self.showIndexAct)
-            menu.addAction(self.showSearchAct)
-        
-        mb.addSeparator()
-        
-        menu = mb.addMenu(self.tr('&Help'))
-        menu.setTearOffEnabled(True)
-        menu.addAction(self.aboutAct)
-        menu.addAction(self.aboutQtAct)
-        menu.addSeparator()
-        menu.addAction(self.whatsThisAct)
-    
-    def __initToolbars(self):
-        """
-        Private method to create the toolbars.
-        """
-        filetb = self.addToolBar(self.tr("File"))
-        filetb.setObjectName("FileToolBar")
-        filetb.setIconSize(UI.Config.ToolBarIconSize)
-        filetb.addAction(self.newTabAct)
-        filetb.addAction(self.newAct)
-        filetb.addAction(self.openAct)
-        filetb.addAction(self.openTabAct)
-        filetb.addSeparator()
-        filetb.addAction(self.saveAsAct)
-        filetb.addAction(self.savePageScreenAct)
-        filetb.addSeparator()
-        filetb.addAction(self.printPreviewAct)
-        filetb.addAction(self.printAct)
-        if self.printPdfAct:
-            filetb.addAction(self.printPdfAct)
-        filetb.addSeparator()
-        filetb.addAction(self.closeAct)
-        filetb.addAction(self.exitAct)
-        
-        self.savePageScreenMenu = QMenu(self)
-        self.savePageScreenMenu.addAction(self.savePageScreenAct)
-        self.savePageScreenMenu.addAction(self.saveVisiblePageScreenAct)
-        savePageScreenButton = filetb.widgetForAction(self.savePageScreenAct)
-        savePageScreenButton.setMenu(self.savePageScreenMenu)
-        savePageScreenButton.setPopupMode(QToolButton.MenuButtonPopup)
-        
-        edittb = self.addToolBar(self.tr("Edit"))
-        edittb.setObjectName("EditToolBar")
-        edittb.setIconSize(UI.Config.ToolBarIconSize)
-        edittb.addAction(self.copyAct)
-        
-        viewtb = self.addToolBar(self.tr("View"))
-        viewtb.setObjectName("ViewToolBar")
-        viewtb.setIconSize(UI.Config.ToolBarIconSize)
-        viewtb.addAction(self.zoomInAct)
-        viewtb.addAction(self.zoomResetAct)
-        viewtb.addAction(self.zoomOutAct)
-        viewtb.addSeparator()
-        viewtb.addAction(self.fullScreenAct)
-        
-        findtb = self.addToolBar(self.tr("Find"))
-        findtb.setObjectName("FindToolBar")
-        findtb.setIconSize(UI.Config.ToolBarIconSize)
-        findtb.addAction(self.findAct)
-        findtb.addAction(self.findNextAct)
-        findtb.addAction(self.findPrevAct)
-        
-        if HelpWindow._useQtHelp:
-            filtertb = self.addToolBar(self.tr("Filter"))
-            filtertb.setObjectName("FilterToolBar")
-            self.filterCombo = QComboBox()
-            self.filterCombo.setMinimumWidth(
-                QFontMetrics(QFont()).width("ComboBoxWithEnoughWidth"))
-            filtertb.addWidget(QLabel(self.tr("Filtered by: ")))
-            filtertb.addWidget(self.filterCombo)
-            self.__helpEngine.setupFinished.connect(self.__setupFilterCombo)
-            self.filterCombo.activated[str].connect(
-                self.__filterQtHelpDocumentation)
-            self.__setupFilterCombo()
-        
-        settingstb = self.addToolBar(self.tr("Settings"))
-        settingstb.setObjectName("SettingsToolBar")
-        settingstb.setIconSize(UI.Config.ToolBarIconSize)
-        settingstb.addAction(self.prefAct)
-        settingstb.addAction(self.shortcutsAct)
-        settingstb.addAction(self.acceptedLanguagesAct)
-        settingstb.addAction(self.cookiesAct)
-        settingstb.addAction(self.flashCookiesAct)
-        settingstb.addAction(self.offlineStorageAct)
-        settingstb.addAction(self.personalDataAct)
-        settingstb.addAction(self.greaseMonkeyAct)
-        settingstb.addAction(self.featurePermissionAct)
-        
-        toolstb = self.addToolBar(self.tr("Tools"))
-        toolstb.setObjectName("ToolsToolBar")
-        toolstb.setIconSize(UI.Config.ToolBarIconSize)
-        toolstb.addAction(self.feedsManagerAct)
-        toolstb.addAction(self.siteInfoAct)
-        toolstb.addSeparator()
-        toolstb.addAction(self.synchronizationAct)
-        
-        helptb = self.addToolBar(self.tr("Help"))
-        helptb.setObjectName("HelpToolBar")
-        helptb.setIconSize(UI.Config.ToolBarIconSize)
-        helptb.addAction(self.whatsThisAct)
-        
-        self.addToolBarBreak()
-        
-        gotb = self.addToolBar(self.tr("Go"))
-        gotb.setObjectName("GoToolBar")
-        gotb.setIconSize(UI.Config.ToolBarIconSize)
-        gotb.addAction(self.backAct)
-        gotb.addAction(self.forwardAct)
-        gotb.addAction(self.reloadAct)
-        gotb.addAction(self.stopAct)
-        gotb.addAction(self.homeAct)
-        gotb.addSeparator()
-        
-        self.__navigationSplitter = QSplitter(gotb)
-        self.__navigationSplitter.addWidget(self.tabWidget.stackedUrlBar())
-        
-        from .HelpWebSearchWidget import HelpWebSearchWidget
-        self.searchEdit = HelpWebSearchWidget(self)
-        sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
-        sizePolicy.setHorizontalStretch(2)
-        sizePolicy.setVerticalStretch(0)
-        self.searchEdit.setSizePolicy(sizePolicy)
-        self.searchEdit.search.connect(self.__linkActivated)
-        self.__navigationSplitter.addWidget(self.searchEdit)
-        gotb.addWidget(self.__navigationSplitter)
-        
-        self.__navigationSplitter.setSizePolicy(
-            QSizePolicy.Expanding, QSizePolicy.Maximum)
-        self.__navigationSplitter.setCollapsible(0, False)
-        
-        self.backMenu = QMenu(self)
-        self.backMenu.aboutToShow.connect(self.__showBackMenu)
-        self.backMenu.triggered.connect(self.__navigationMenuActionTriggered)
-        backButton = gotb.widgetForAction(self.backAct)
-        backButton.setMenu(self.backMenu)
-        backButton.setPopupMode(QToolButton.MenuButtonPopup)
-        
-        self.forwardMenu = QMenu(self)
-        self.forwardMenu.aboutToShow.connect(self.__showForwardMenu)
-        self.forwardMenu.triggered.connect(
-            self.__navigationMenuActionTriggered)
-        forwardButton = gotb.widgetForAction(self.forwardAct)
-        forwardButton.setMenu(self.forwardMenu)
-        forwardButton.setPopupMode(QToolButton.MenuButtonPopup)
-        
-        from .Bookmarks.BookmarksToolBar import BookmarksToolBar
-        bookmarksModel = self.bookmarksManager().bookmarksModel()
-        self.bookmarksToolBar = BookmarksToolBar(self, bookmarksModel, self)
-        self.bookmarksToolBar.setObjectName("BookmarksToolBar")
-        self.bookmarksToolBar.setIconSize(UI.Config.ToolBarIconSize)
-        self.bookmarksToolBar.openUrl.connect(self.openUrl)
-        self.bookmarksToolBar.newUrl.connect(self.openUrlNewTab)
-        self.addToolBarBreak()
-        self.addToolBar(self.bookmarksToolBar)
-        
-        self.addToolBarBreak()
-        vttb = self.addToolBar(self.tr("VirusTotal"))
-        vttb.setObjectName("VirusTotalToolBar")
-        vttb.setIconSize(UI.Config.ToolBarIconSize)
-        vttb.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
-        self.virustotalScanCurrentAct = vttb.addAction(
-            UI.PixmapCache.getIcon("virustotal.png"),
-            self.tr("Scan current site"),
-            self.__virusTotalScanCurrentSite)
-        self.virustotalIpReportAct = vttb.addAction(
-            UI.PixmapCache.getIcon("virustotal.png"),
-            self.tr("IP Address Report"),
-            self.__virusTotalIpAddressReport)
-        self.virustotalDomainReportAct = vttb.addAction(
-            UI.PixmapCache.getIcon("virustotal.png"),
-            self.tr("Domain Report"),
-            self.__virusTotalDomainReport)
-        if not Preferences.getHelp("VirusTotalEnabled") or \
-           Preferences.getHelp("VirusTotalServiceKey") == "":
-            self.virustotalScanCurrentAct.setEnabled(False)
-            self.virustotalIpReportAct.setEnabled(False)
-            self.virustotalDomainReportAct.setEnabled(False)
-        
-    def __nextTab(self):
-        """
-        Private slot used to show the next tab.
-        """
-        fwidget = QApplication.focusWidget()
-        while fwidget and not hasattr(fwidget, 'nextTab'):
-            fwidget = fwidget.parent()
-        if fwidget:
-            fwidget.nextTab()
-        
-    def __prevTab(self):
-        """
-        Private slot used to show the previous tab.
-        """
-        fwidget = QApplication.focusWidget()
-        while fwidget and not hasattr(fwidget, 'prevTab'):
-            fwidget = fwidget.parent()
-        if fwidget:
-            fwidget.prevTab()
-        
-    def __switchTab(self):
-        """
-        Private slot used to switch between the current and the previous
-        current tab.
-        """
-        fwidget = QApplication.focusWidget()
-        while fwidget and not hasattr(fwidget, 'switchTab'):
-            fwidget = fwidget.parent()
-        if fwidget:
-            fwidget.switchTab()
-        
-    def __whatsThis(self):
-        """
-        Private slot called in to enter Whats This mode.
-        """
-        QWhatsThis.enterWhatsThisMode()
-        
-    def __titleChanged(self, browser, title):
-        """
-        Private slot called to handle a change of s browser's title.
-        
-        @param browser reference to the browser (HelpBrowser)
-        @param title new title (string)
-        """
-        self.historyManager().updateHistoryEntry(
-            browser.url().toString(), title)
-    
-    @pyqtSlot()
-    def newTab(self, link=None, requestData=None, addNextTo=None):
-        """
-        Public slot called to open a new help window tab.
-        
-        @param link file to be displayed in the new window (string or QUrl)
-        @param requestData tuple containing the request data (QNetworkRequest,
-            QNetworkAccessManager.Operation, QByteArray)
-        @param addNextTo reference to the browser to open the tab after
-            (HelpBrowser)
-        """
-        if addNextTo:
-            self.tabWidget.newBrowserAfter(addNextTo, link, requestData)
-        else:
-            self.tabWidget.newBrowser(link, requestData)
-    
-    @pyqtSlot()
-    def newWindow(self, link=None):
-        """
-        Public slot called to open a new help browser dialog.
-        
-        @param link file to be displayed in the new window (string or QUrl)
-        """
-        if link is None:
-            linkName = ""
-        elif isinstance(link, QUrl):
-            linkName = link.toString()
-        else:
-            linkName = link
-        h = HelpWindow(linkName, ".", self.parent(), "qbrowser")
-        h.show()
-    
-    def __openFile(self):
-        """
-        Private slot called to open a file.
-        """
-        fn = E5FileDialog.getOpenFileName(
-            self,
-            self.tr("Open File"),
-            "",
-            self.tr("Help Files (*.html *.htm);;"
-                    "PDF Files (*.pdf);;"
-                    "CHM Files (*.chm);;"
-                    "All Files (*)"
-                    ))
-        if fn:
-            if Utilities.isWindowsPlatform():
-                url = "file:///" + Utilities.fromNativeSeparators(fn)
-            else:
-                url = "file://" + fn
-            self.currentBrowser().setSource(QUrl(url))
-        
-    def __openFileNewTab(self):
-        """
-        Private slot called to open a file in a new tab.
-        """
-        fn = E5FileDialog.getOpenFileName(
-            self,
-            self.tr("Open File"),
-            "",
-            self.tr("Help Files (*.html *.htm);;"
-                    "PDF Files (*.pdf);;"
-                    "CHM Files (*.chm);;"
-                    "All Files (*)"
-                    ))
-        if fn:
-            if Utilities.isWindowsPlatform():
-                url = "file:///" + Utilities.fromNativeSeparators(fn)
-            else:
-                url = "file://" + fn
-            self.newTab(url)
-        
-    def __savePageAs(self):
-        """
-        Private slot to save the current page.
-        """
-        browser = self.currentBrowser()
-        if browser is not None:
-            browser.saveAs()
-    
-    @pyqtSlot()
-    def __savePageScreen(self, visibleOnly=False):
-        """
-        Private slot to save the current page as a screen shot.
-        
-        @param visibleOnly flag indicating to just save the visible part
-            of the page (boolean)
-        """
-        from .PageScreenDialog import PageScreenDialog
-        self.__pageScreen = PageScreenDialog(
-            self.currentBrowser(), visibleOnly=visibleOnly)
-        self.__pageScreen.show()
-        
-    def __saveVisiblePageScreen(self):
-        """
-        Private slot to save the visible part of the current page as a screen
-        shot.
-        """
-        self.__savePageScreen(visibleOnly=True)
-        
-    def __about(self):
-        """
-        Private slot to show the about information.
-        """
-        E5MessageBox.about(
-            self,
-            self.tr("eric6 Web Browser"),
-            self.tr(
-                """<b>eric6 Web Browser - {0}</b>"""
-                """<p>The eric6 Web Browser is a combined help file and HTML"""
-                """ browser. It is part of the eric6 development"""
-                """ toolset.</p>"""
-            ).format(Version))
-        
-    def __aboutQt(self):
-        """
-        Private slot to show info about Qt.
-        """
-        E5MessageBox.aboutQt(self, self.tr("eric6 Web Browser"))
-
-    def setBackwardAvailable(self, b):
-        """
-        Public slot called when backward references are available.
-        
-        @param b flag indicating availability of the backwards action (boolean)
-        """
-        self.backAct.setEnabled(b)
-        
-    def setForwardAvailable(self, b):
-        """
-        Public slot called when forward references are available.
-        
-        @param b flag indicating the availability of the forwards action
-            (boolean)
-        """
-        self.forwardAct.setEnabled(b)
-        
-    def setLoadingActions(self, b):
-        """
-        Public slot to set the loading dependent actions.
-        
-        @param b flag indicating the loading state to consider (boolean)
-        """
-        self.reloadAct.setEnabled(not b)
-        self.stopAct.setEnabled(b)
-        
-    def __addBookmark(self):
-        """
-        Private slot called to add the displayed file to the bookmarks.
-        """
-        view = self.currentBrowser()
-        url = bytes(view.url().toEncoded()).decode()
-        title = view.title()
-        description = ""
-        meta = view.page().mainFrame().metaData()
-        if "description" in meta:
-            description = meta["description"][0]
-        
-        from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog
-        dlg = AddBookmarkDialog()
-        dlg.setUrl(url)
-        dlg.setTitle(title)
-        dlg.setDescription(description)
-        menu = self.bookmarksManager().menu()
-        idx = self.bookmarksManager().bookmarksModel().nodeIndex(menu)
-        dlg.setCurrentIndex(idx)
-        dlg.exec_()
-        
-    def __addBookmarkFolder(self):
-        """
-        Private slot to add a new bookmarks folder.
-        """
-        from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog
-        dlg = AddBookmarkDialog()
-        menu = self.bookmarksManager().menu()
-        idx = self.bookmarksManager().bookmarksModel().nodeIndex(menu)
-        dlg.setCurrentIndex(idx)
-        dlg.setFolder(True)
-        dlg.exec_()
-        
-    def __showBookmarksDialog(self):
-        """
-        Private slot to show the bookmarks dialog.
-        """
-        from .Bookmarks.BookmarksDialog import BookmarksDialog
-        self.__bookmarksDialog = BookmarksDialog(self)
-        self.__bookmarksDialog.openUrl.connect(self.openUrl)
-        self.__bookmarksDialog.newUrl.connect(self.openUrlNewTab)
-        self.__bookmarksDialog.show()
-        
-    def bookmarkAll(self):
-        """
-        Public slot to bookmark all open tabs.
-        """
-        from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog
-        dlg = AddBookmarkDialog()
-        dlg.setFolder(True)
-        dlg.setTitle(self.tr("Saved Tabs"))
-        dlg.exec_()
-        
-        folder = dlg.addedNode()
-        if folder is None:
-            return
-        
-        from .Bookmarks.BookmarkNode import BookmarkNode
-        for browser in self.tabWidget.browsers():
-            bookmark = BookmarkNode(BookmarkNode.Bookmark)
-            bookmark.url = bytes(browser.url().toEncoded()).decode()
-            bookmark.title = browser.title()
-            meta = browser.page().mainFrame().metaData()
-            if "description" in meta:
-                bookmark.desc = meta["description"][0]
-            
-            self.bookmarksManager().addBookmark(folder, bookmark)
-        
-    def __find(self):
-        """
-        Private slot to handle the find action.
-        
-        It opens the search dialog in order to perform the various
-        search actions and to collect the various search info.
-        """
-        self.findDlg.showFind()
-        
-    def __closeAllWindows(self):
-        """
-        Private slot to close all windows.
-        """
-        for browser in HelpWindow.helpwindows:
-            if browser != self:
-                browser.close()
-        self.close()
-        
-    def closeEvent(self, e):
-        """
-        Protected event handler for the close event.
-        
-        @param e the close event (QCloseEvent)
-                <br />This event is simply accepted after the history has been
-                saved and all window references have been deleted.
-        """
-        if not self.__shutdownCalled:
-            res = self.shutdown()
-            
-            if res:
-                e.accept()
-                self.helpClosed.emit()
-            else:
-                e.ignore()
-        else:
-            e.accept()
-    
-    def shutdown(self):
-        """
-        Public method to shut down the web browser.
-        
-        @return flag indicating successful shutdown (boolean)
-        """
-        if not self.tabWidget.shallShutDown():
-            return False
-        
-        if not self.downloadManager().allowQuit():
-            return False
-        
-        self.downloadManager().shutdown()
-        
-        self.__closeNetworkMonitor()
-        
-        self.cookieJar().close()
-        
-        self.bookmarksToolBar.setModel(None)
-        self.bookmarksManager().close()
-        
-        self.historyManager().close()
-        
-        self.passwordManager().close()
-        
-        self.adBlockManager().close()
-        
-        self.userAgentsManager().close()
-        
-        self.speedDial().close()
-        
-        self.syncManager().close()
-        
-        self.zoomManager().close()
-        
-        self.__virusTotal.close()
-        
-        self.flashCookieManager().shutdown()
-        
-        self.searchEdit.openSearchManager().close()
-        
-        if HelpWindow._useQtHelp:
-            self.__searchEngine.cancelIndexing()
-            self.__searchEngine.cancelSearching()
-            
-            if self.__helpInstaller:
-                self.__helpInstaller.stop()
-        
-        self.searchEdit.saveSearches()
-        
-        self.tabWidget.closeAllBrowsers()
-        
-        state = self.saveState()
-        Preferences.setHelp("HelpViewerState", state)
-
-        if Preferences.getHelp("SaveGeometry"):
-            if not self.__isFullScreen():
-                Preferences.setGeometry("HelpViewerGeometry",
-                                        self.saveGeometry())
-        else:
-            Preferences.setGeometry("HelpViewerGeometry", QByteArray())
-        
-        try:
-            browserIndex = HelpWindow.helpwindows.index(self)
-            if len(HelpWindow.helpwindows):
-                if browserIndex == 0:
-                    if len(HelpWindow.helpwindows) > 1:
-                        # first window will be deleted
-                        QDesktopServices.setUrlHandler(
-                            "http",
-                            HelpWindow.helpwindows[1].urlHandler)
-                        QDesktopServices.setUrlHandler(
-                            "https",
-                            HelpWindow.helpwindows[1].urlHandler)
-                    else:
-                        QDesktopServices.unsetUrlHandler("http")
-                        QDesktopServices.unsetUrlHandler("https")
-            if len(HelpWindow.helpwindows) > 0:
-                del HelpWindow.helpwindows[browserIndex]
-        except ValueError:
-            pass
-        
-        Preferences.syncPreferences()
-        
-        self.__shutdownCalled = True
-        return True
-
-    def __backward(self):
-        """
-        Private slot called to handle the backward action.
-        """
-        self.currentBrowser().backward()
-    
-    def __forward(self):
-        """
-        Private slot called to handle the forward action.
-        """
-        self.currentBrowser().forward()
-    
-    def __home(self):
-        """
-        Private slot called to handle the home action.
-        """
-        self.currentBrowser().home()
-    
-    def __reload(self):
-        """
-        Private slot called to handle the reload action.
-        """
-        self.currentBrowser().reload()
-    
-    def __stopLoading(self):
-        """
-        Private slot called to handle loading of the current page.
-        """
-        self.currentBrowser().stop()
-    
-    def __zoomValueChanged(self, value):
-        """
-        Private slot to handle value changes of the zoom widget.
-        
-        @param value zoom value (integer)
-        """
-        self.currentBrowser().setZoomValue(value)
-    
-    def __zoomIn(self):
-        """
-        Private slot called to handle the zoom in action.
-        """
-        self.currentBrowser().zoomIn()
-        self.__zoomWidget.setValue(self.currentBrowser().zoomValue())
-    
-    def __zoomOut(self):
-        """
-        Private slot called to handle the zoom out action.
-        """
-        self.currentBrowser().zoomOut()
-        self.__zoomWidget.setValue(self.currentBrowser().zoomValue())
-    
-    def __zoomReset(self):
-        """
-        Private slot called to handle the zoom reset action.
-        """
-        self.currentBrowser().zoomReset()
-        self.__zoomWidget.setValue(self.currentBrowser().zoomValue())
-    
-    def __zoomTextOnly(self, textOnly):
-        """
-        Private slot called to handle the zoom text only action.
-        
-        @param textOnly flag indicating to zoom text only (boolean)
-        """
-        QWebSettings.globalSettings().setAttribute(
-            QWebSettings.ZoomTextOnly, textOnly)
-        self.zoomTextOnlyChanged.emit(textOnly)
-    
-    def __viewFullScreen(self):
-        """
-        Private slot called to toggle fullscreen mode.
-        """
-        if self.__isFullScreen():
-            # switch back to normal
-            self.setWindowState(self.windowState() & ~Qt.WindowFullScreen)
-            self.menuBar().show()
-            self.fullScreenAct.setIcon(
-                UI.PixmapCache.getIcon("windowFullscreen.png"))
-            self.fullScreenAct.setIconText(self.tr('Full Screen'))
-        else:
-            # switch to full screen
-            self.setWindowState(self.windowState() | Qt.WindowFullScreen)
-            self.menuBar().hide()
-            self.fullScreenAct.setIcon(
-                UI.PixmapCache.getIcon("windowRestore.png"))
-            self.fullScreenAct.setIconText(self.tr('Restore Window'))
-    
-    def __isFullScreen(self):
-        """
-        Private method to determine, if the window is in full screen mode.
-        
-        @return flag indicating full screen mode (boolean)
-        """
-        return self.windowState() & Qt.WindowFullScreen
-    
-    def __copy(self):
-        """
-        Private slot called to handle the copy action.
-        """
-        self.currentBrowser().copy()
-    
-    def __privateBrowsing(self):
-        """
-        Private slot to switch private browsing.
-        """
-        settings = QWebSettings.globalSettings()
-        pb = settings.testAttribute(QWebSettings.PrivateBrowsingEnabled)
-        if not pb:
-            txt = self.tr(
-                """<b>Are you sure you want to turn on private"""
-                """ browsing?</b><p>When private browsing is turned on,"""
-                """ web pages are not added to the history, searches"""
-                """ are not added to the list of recent searches and"""
-                """ web site icons and cookies are not stored."""
-                """ HTML5 offline storage will be deactivated."""
-                """ Until you close the window, you can still click"""
-                """ the Back and Forward buttons to return to the"""
-                """ web pages you have opened.</p>""")
-            res = E5MessageBox.yesNo(self, "", txt)
-            if res:
-                self.setPrivateMode(True)
-        else:
-            self.setPrivateMode(False)
-    
-    def setPrivateMode(self, on):
-        """
-        Public method to set the privacy mode.
-        
-        @param on flag indicating the privacy state (boolean)
-        """
-        QWebSettings.globalSettings().setAttribute(
-            QWebSettings.PrivateBrowsingEnabled, on)
-        if on:
-            self.__setIconDatabasePath(False)
-        else:
-            self.__setIconDatabasePath(True)
-        self.privateBrowsingAct.setChecked(on)
-        self.privacyChanged.emit(on)
-    
-    def currentBrowser(self):
-        """
-        Public method to get a reference to the current help browser.
-        
-        @return reference to the current help browser (HelpBrowser)
-        """
-        return self.tabWidget.currentBrowser()
-    
-    def browserAt(self, index):
-        """
-        Public method to get a reference to the help browser with the given
-        index.
-        
-        @param index index of the browser to get (integer)
-        @return reference to the indexed help browser (HelpBrowser)
-        """
-        return self.tabWidget.browserAt(index)
-    
-    def browsers(self):
-        """
-        Public method to get a list of references to all help browsers.
-        
-        @return list of references to help browsers (list of HelpBrowser)
-        """
-        return self.tabWidget.browsers()
-    
-    def __currentChanged(self, index):
-        """
-        Private slot to handle the currentChanged signal.
-        
-        @param index index of the current tab (integer)
-        """
-        if index > -1:
-            cb = self.currentBrowser()
-            if cb is not None:
-                self.setForwardAvailable(cb.isForwardAvailable())
-                self.setBackwardAvailable(cb.isBackwardAvailable())
-                self.setLoadingActions(cb.isLoading())
-                
-                # set value of zoom widget
-                self.__zoomWidget.setValue(cb.zoomValue())
-    
-    def __showPreferences(self):
-        """
-        Private slot to set the preferences.
-        """
-        from Preferences.ConfigurationDialog import ConfigurationDialog
-        dlg = ConfigurationDialog(
-            self, 'Configuration', True, fromEric=False,
-            displayMode=ConfigurationDialog.HelpBrowserMode)
-        dlg.preferencesChanged.connect(self.preferencesChanged)
-        dlg.masterPasswordChanged.connect(
-            lambda old, new: self.masterPasswordChanged(old, new, local=True))
-        dlg.show()
-        if self.__lastConfigurationPageName:
-            dlg.showConfigurationPageByName(self.__lastConfigurationPageName)
-        else:
-            dlg.showConfigurationPageByName("empty")
-        dlg.exec_()
-        QApplication.processEvents()
-        if dlg.result() == QDialog.Accepted:
-            dlg.setPreferences()
-            Preferences.syncPreferences()
-            self.preferencesChanged()
-        self.__lastConfigurationPageName = dlg.getConfigurationPageName()
-    
-    def preferencesChanged(self):
-        """
-        Public slot to handle a change of preferences.
-        """
-        self.setStyle(Preferences.getUI("Style"),
-                      Preferences.getUI("StyleSheet"))
-        
-        self.__initWebSettings()
-        
-        self.networkAccessManager().preferencesChanged()
-        
-        self.historyManager().preferencesChanged()
-        
-        self.tabWidget.preferencesChanged()
-        
-        self.searchEdit.preferencesChanged()
-        
-        self.__virusTotal.preferencesChanged()
-        if not Preferences.getHelp("VirusTotalEnabled") or \
-           Preferences.getHelp("VirusTotalServiceKey") == "":
-            self.virustotalScanCurrentAct.setEnabled(False)
-            self.virustotalIpReportAct.setEnabled(False)
-            self.virustotalDomainReportAct.setEnabled(False)
-        else:
-            self.virustotalScanCurrentAct.setEnabled(True)
-            self.virustotalIpReportAct.setEnabled(True)
-            self.virustotalDomainReportAct.setEnabled(True)
-    
-    def masterPasswordChanged(self, oldPassword, newPassword, local=False):
-        """
-        Public slot to handle the change of the master password.
-        
-        @param oldPassword current master password
-        @type str
-        @param newPassword new master password
-        @type str
-        @param local flag indicating being called from the local configuration
-            dialog
-        @type bool
-        """
-        self.passwordManager().masterPasswordChanged(oldPassword, newPassword)
-        if local:
-            # we were called from our local configuration dialog
-            Preferences.convertPasswords(oldPassword, newPassword)
-            Utilities.crypto.changeRememberedMaster(newPassword)
-    
-    def __showAcceptedLanguages(self):
-        """
-        Private slot to configure the accepted languages for web pages.
-        """
-        from .HelpLanguagesDialog import HelpLanguagesDialog
-        dlg = HelpLanguagesDialog(self)
-        dlg.exec_()
-        self.networkAccessManager().languagesChanged()
-    
-    def __showCookiesConfiguration(self):
-        """
-        Private slot to configure the cookies handling.
-        """
-        from .CookieJar.CookiesConfigurationDialog import \
-            CookiesConfigurationDialog
-        dlg = CookiesConfigurationDialog(self)
-        dlg.exec_()
-    
-    def __showFlashCookiesManagement(self):
-        """
-        Private slot to show the flash cookies management dialog.
-        """
-        self.flashCookieManager().showFlashCookieManagerDialog()
-    
-    def __showOfflineStorageConfiguration(self):
-        """
-        Private slot to configure the offline storage.
-        """
-        from .OfflineStorage.OfflineStorageConfigDialog import \
-            OfflineStorageConfigDialog
-        dlg = OfflineStorageConfigDialog(self)
-        if dlg.exec_() == QDialog.Accepted:
-            dlg.storeData()
-            self.__initWebSettings()
-    
-    @classmethod
-    def setUseQtHelp(cls, use):
-        """
-        Class method to set the QtHelp usage.
-        
-        @param use flag indicating usage (boolean)
-        """
-        if use:
-            cls._useQtHelp = use and QTHELP_AVAILABLE
-        else:
-            cls._useQtHelp = False
-    
-    @classmethod
-    def helpEngine(cls):
-        """
-        Class method to get a reference to the help engine.
-        
-        @return reference to the help engine (QHelpEngine)
-        """
-        if cls._useQtHelp:
-            if cls._helpEngine is None:
-                cls._helpEngine = QHelpEngine(
-                    HelpWindow.getQtHelpCollectionFileName())
-            return cls._helpEngine
-        else:
-            return None
-    
-    @classmethod
-    def getQtHelpCollectionFileName(cls):
-        """
-        Class method to determine the name of the QtHelp collection file.
-        
-        @return path of the QtHelp collection file
-        @rtype str
-        """
-        qthelpDir = os.path.join(Utilities.getConfigDir(), "qthelp")
-        if not os.path.exists(qthelpDir):
-            os.makedirs(qthelpDir)
-        return os.path.join(qthelpDir, "eric6help.qhc")
-    
-    @classmethod
-    def networkAccessManager(cls):
-        """
-        Class method to get a reference to the network access manager.
-        
-        @return reference to the network access manager (NetworkAccessManager)
-        """
-        if cls._networkAccessManager is None:
-            from .Network.NetworkAccessManager import NetworkAccessManager
-            from .CookieJar.CookieJar import CookieJar
-            cls._networkAccessManager = \
-                NetworkAccessManager(cls.helpEngine())
-            cls._cookieJar = CookieJar()
-            cls._networkAccessManager.setCookieJar(cls._cookieJar)
-        
-        return cls._networkAccessManager
-        
-    @classmethod
-    def cookieJar(cls):
-        """
-        Class method to get a reference to the cookie jar.
-        
-        @return reference to the cookie jar (CookieJar)
-        """
-        return cls.networkAccessManager().cookieJar()
-        
-    def __clearIconsDatabase(self):
-        """
-        Private slot to clear the icons databse.
-        """
-        QWebSettings.clearIconDatabase()
-        
-    @pyqtSlot(QUrl)
-    def urlHandler(self, url):
-        """
-        Public slot used as desktop URL handler.
-        
-        @param url URL to be handled
-        @type QUrl
-        """
-        self.__linkActivated(url)
-    
-    @pyqtSlot(QUrl)
-    def __linkActivated(self, url):
-        """
-        Private slot to handle the selection of a link in the TOC window.
-        
-        @param url URL to be shown
-        @type QUrl
-        """
-        if not self.__activating:
-            self.__activating = True
-            req = QNetworkRequest(url)
-            req.setRawHeader(b"X-Eric6-UserLoadAction", b"1")
-            cb = self.currentBrowser()
-            if cb is None:
-                self.newTab(
-                    None, (req, QNetworkAccessManager.GetOperation, b""))
-            else:
-                cb.setSource(
-                    None, (req, QNetworkAccessManager.GetOperation, b""))
-            self.__activating = False
-        
-    def __linksActivated(self, links, keyword):
-        """
-        Private slot to select a topic to be shown.
-        
-        @param links dictionary with help topic as key (string) and
-            URL as value (QUrl)
-        @param keyword keyword for the link set (string)
-        """
-        if not self.__activating:
-            from .HelpTopicDialog import HelpTopicDialog
-            self.__activating = True
-            dlg = HelpTopicDialog(self, keyword, links)
-            if dlg.exec_() == QDialog.Accepted:
-                self.currentBrowser().setSource(dlg.link())
-            self.__activating = False
-    
-    def __activateCurrentBrowser(self):
-        """
-        Private slot to activate the current browser.
-        """
-        self.currentBrowser().setFocus()
-        
-    def __syncTOC(self):
-        """
-        Private slot to synchronize the TOC with the currently shown page.
-        """
-        if HelpWindow._useQtHelp:
-            QApplication.setOverrideCursor(Qt.WaitCursor)
-            url = self.currentBrowser().source()
-            self.__showTocWindow()
-            if not self.__tocWindow.syncToContent(url):
-                self.statusBar().showMessage(
-                    self.tr("Could not find an associated content."), 5000)
-            QApplication.restoreOverrideCursor()
-        
-    def __showTocWindow(self):
-        """
-        Private method to show the table of contents window.
-        """
-        if HelpWindow._useQtHelp:
-            self.__activateDock(self.__tocWindow)
-        
-    def __hideTocWindow(self):
-        """
-        Private method to hide the table of contents window.
-        """
-        if HelpWindow._useQtHelp:
-            self.__tocDock.hide()
-        
-    def __showIndexWindow(self):
-        """
-        Private method to show the index window.
-        """
-        if HelpWindow._useQtHelp:
-            self.__activateDock(self.__indexWindow)
-        
-    def __hideIndexWindow(self):
-        """
-        Private method to hide the index window.
-        """
-        if HelpWindow._useQtHelp:
-            self.__indexDock.hide()
-        
-    def __showSearchWindow(self):
-        """
-        Private method to show the search window.
-        """
-        if HelpWindow._useQtHelp:
-            self.__activateDock(self.__searchWindow)
-        
-    def __hideSearchWindow(self):
-        """
-        Private method to hide the search window.
-        """
-        if HelpWindow._useQtHelp:
-            self.__searchDock.hide()
-        
-    def __activateDock(self, widget):
-        """
-        Private method to activate the dock widget of the given widget.
-        
-        @param widget reference to the widget to be activated (QWidget)
-        """
-        widget.parent().show()
-        widget.parent().raise_()
-        widget.setFocus()
-        
-    def __setupFilterCombo(self):
-        """
-        Private slot to setup the filter combo box.
-        """
-        if HelpWindow._useQtHelp:
-            curFilter = self.filterCombo.currentText()
-            if not curFilter:
-                curFilter = self.__helpEngine.currentFilter()
-            self.filterCombo.clear()
-            self.filterCombo.addItems(self.__helpEngine.customFilters())
-            idx = self.filterCombo.findText(curFilter)
-            if idx < 0:
-                idx = 0
-            self.filterCombo.setCurrentIndex(idx)
-        
-    def __filterQtHelpDocumentation(self, customFilter):
-        """
-        Private slot to filter the QtHelp documentation.
-        
-        @param customFilter name of filter to be applied (string)
-        """
-        if self.__helpEngine:
-            self.__helpEngine.setCurrentFilter(customFilter)
-        
-    def __manageQtHelpDocumentation(self):
-        """
-        Private slot to manage the QtHelp documentation database.
-        """
-        if HelpWindow._useQtHelp:
-            from .QtHelpDocumentationDialog import QtHelpDocumentationDialog
-            dlg = QtHelpDocumentationDialog(self.__helpEngine, self)
-            dlg.exec_()
-            if dlg.hasChanges():
-                for i in sorted(dlg.getTabsToClose(), reverse=True):
-                    self.tabWidget.closeBrowserAt(i)
-                self.__helpEngine.setupData()
-        
-    def getSourceFileList(self):
-        """
-        Public method to get a list of all opened source files.
-        
-        @return dictionary with tab id as key and host/namespace as value
-        """
-        return self.tabWidget.getSourceFileList()
-        
-    def __manageQtHelpFilters(self):
-        """
-        Private slot to manage the QtHelp filters.
-        """
-        if HelpWindow._useQtHelp:
-            from .QtHelpFiltersDialog import QtHelpFiltersDialog
-            dlg = QtHelpFiltersDialog(self.__helpEngine, self)
-            dlg.exec_()
-        
-    def __indexingStarted(self):
-        """
-        Private slot to handle the start of the indexing process.
-        """
-        if HelpWindow._useQtHelp:
-            self.__indexing = True
-            if self.__indexingProgress is None:
-                self.__indexingProgress = QWidget()
-                layout = QHBoxLayout(self.__indexingProgress)
-                layout.setContentsMargins(0, 0, 0, 0)
-                sizePolicy = QSizePolicy(QSizePolicy.Preferred,
-                                         QSizePolicy.Maximum)
-                
-                label = QLabel(self.tr("Updating search index"))
-                label.setSizePolicy(sizePolicy)
-                layout.addWidget(label)
-                
-                progressBar = QProgressBar()
-                progressBar.setRange(0, 0)
-                progressBar.setTextVisible(False)
-                progressBar.setFixedHeight(16)
-                progressBar.setSizePolicy(sizePolicy)
-                layout.addWidget(progressBar)
-                
-                self.statusBar().insertPermanentWidget(
-                    0, self.__indexingProgress)
-        
-    def __indexingFinished(self):
-        """
-        Private slot to handle the start of the indexing process.
-        """
-        if HelpWindow._useQtHelp:
-            self.statusBar().removeWidget(self.__indexingProgress)
-            self.__indexingProgress = None
-            self.__indexing = False
-            if self.__searchWord is not None:
-                self.__searchForWord()
-        
-    def __searchForWord(self):
-        """
-        Private slot to search for a word.
-        """
-        if HelpWindow._useQtHelp and not self.__indexing and \
-                self.__searchWord is not None:
-            self.__searchDock.show()
-            self.__searchDock.raise_()
-            query = QHelpSearchQuery(QHelpSearchQuery.DEFAULT,
-                                     [self.__searchWord])
-            self.__searchEngine.search([query])
-            self.__searchWord = None
-        
-    def search(self, word):
-        """
-        Public method to search for a word.
-        
-        @param word word to search for (string)
-        """
-        if HelpWindow._useQtHelp:
-            self.__searchWord = word
-            self.__searchForWord()
-        
-    def __removeOldDocumentation(self):
-        """
-        Private slot to remove non-existing documentation from the help engine.
-        """
-        if HelpWindow._useQtHelp:
-            for namespace in self.__helpEngine.registeredDocumentations():
-                docFile = self.__helpEngine.documentationFileName(namespace)
-                if not os.path.exists(docFile):
-                    self.__helpEngine.unregisterDocumentation(namespace)
-        
-    def __lookForNewDocumentation(self):
-        """
-        Private slot to look for new documentation to be loaded into the
-        help database.
-        """
-        if HelpWindow._useQtHelp:
-            from .HelpDocsInstaller import HelpDocsInstaller
-            self.__helpInstaller = HelpDocsInstaller(
-                self.__helpEngine.collectionFile())
-            self.__helpInstaller.errorMessage.connect(
-                self.__showInstallationError)
-            self.__helpInstaller.docsInstalled.connect(self.__docsInstalled)
-            
-            self.statusBar().showMessage(
-                self.tr("Looking for Documentation..."))
-            self.__helpInstaller.installDocs()
-        
-    def __showInstallationError(self, message):
-        """
-        Private slot to show installation errors.
-        
-        @param message message to be shown (string)
-        """
-        E5MessageBox.warning(
-            self,
-            self.tr("eric6 Web Browser"),
-            message)
-        
-    def __docsInstalled(self, installed):
-        """
-        Private slot handling the end of documentation installation.
-        
-        @param installed flag indicating that documents were installed
-            (boolean)
-        """
-        if HelpWindow._useQtHelp:
-            if installed:
-                self.__helpEngine.setupData()
-            self.statusBar().clearMessage()
-        
-    def __initHelpDb(self):
-        """
-        Private slot to initialize the documentation database.
-        """
-        if HelpWindow._useQtHelp:
-            if not self.__helpEngine.setupData():
-                return
-            
-            unfiltered = self.tr("Unfiltered")
-            if unfiltered not in self.__helpEngine.customFilters():
-                hc = QHelpEngineCore(self.__helpEngine.collectionFile())
-                hc.setupData()
-                hc.addCustomFilter(unfiltered, [])
-                hc = None
-                del hc
-                
-                self.__helpEngine.blockSignals(True)
-                self.__helpEngine.setCurrentFilter(unfiltered)
-                self.__helpEngine.blockSignals(False)
-                self.__helpEngine.setupData()
-        
-    def __warning(self, msg):
-        """
-        Private slot handling warnings from the help engine.
-        
-        @param msg message sent by the help  engine (string)
-        """
-        E5MessageBox.warning(
-            self,
-            self.tr("Help Engine"), msg)
-        
-    def __aboutToShowSettingsMenu(self):
-        """
-        Private slot to show the Settings menu.
-        """
-        self.editMessageFilterAct.setEnabled(
-            E5ErrorMessage.messageHandlerInstalled())
-        
-    def __showBackMenu(self):
-        """
-        Private slot showing the backwards navigation menu.
-        """
-        self.backMenu.clear()
-        history = self.currentBrowser().history()
-        historyCount = history.count()
-        backItems = history.backItems(historyCount)
-        for index in range(len(backItems) - 1, -1, -1):
-            item = backItems[index]
-            act = QAction(self)
-            act.setData(-1 * (index + 1))
-            icon = HelpWindow.__getWebIcon(item.url())
-            act.setIcon(icon)
-            act.setText(item.title())
-            self.backMenu.addAction(act)
-        
-    def __showForwardMenu(self):
-        """
-        Private slot showing the forwards navigation menu.
-        """
-        self.forwardMenu.clear()
-        history = self.currentBrowser().history()
-        historyCount = history.count()
-        forwardItems = history.forwardItems(historyCount)
-        for index in range(len(forwardItems)):
-            item = forwardItems[index]
-            act = QAction(self)
-            act.setData(index + 1)
-            icon = HelpWindow.__getWebIcon(item.url())
-            act.setIcon(icon)
-            act.setText(item.title())
-            self.forwardMenu.addAction(act)
-        
-    def __navigationMenuActionTriggered(self, act):
-        """
-        Private slot to go to the selected page.
-        
-        @param act reference to the action selected in the navigation menu
-            (QAction)
-        """
-        offset = act.data()
-        history = self.currentBrowser().history()
-        historyCount = history.count()
-        if offset < 0:
-            # go back
-            history.goToItem(history.backItems(historyCount)[-1 * offset - 1])
-        else:
-            # go forward
-            history.goToItem(history.forwardItems(historyCount)[offset - 1])
-        
-    def __clearPrivateData(self):
-        """
-        Private slot to clear the private data.
-        """
-        from .HelpClearPrivateDataDialog import HelpClearPrivateDataDialog
-        dlg = HelpClearPrivateDataDialog(self)
-        if dlg.exec_() == QDialog.Accepted:
-            # browsing history, search history, favicons, disk cache, cookies,
-            # passwords, web databases, downloads, Flash cookies
-            (history, searches, favicons, cache, cookies,
-             passwords, databases, downloads, flashCookies, zoomValues,
-             historyPeriod) = dlg.getData()
-            if history:
-                self.historyManager().clear(historyPeriod)
-                self.tabWidget.clearClosedTabsList()
-            if searches:
-                self.searchEdit.clear()
-            if downloads:
-                self.downloadManager().cleanup()
-                self.downloadManager().hide()
-            if favicons:
-                self.__clearIconsDatabase()
-            if cache:
-                try:
-                    self.networkAccessManager().cache().clear()
-                except AttributeError:
-                    pass
-            if cookies:
-                self.cookieJar().clear()
-            if passwords:
-                self.passwordManager().clear()
-            if databases:
-                if hasattr(QWebDatabase, "removeAllDatabases"):
-                    QWebDatabase.removeAllDatabases()
-                else:
-                    for securityOrigin in QWebSecurityOrigin.allOrigins():
-                        for database in securityOrigin.databases():
-                            QWebDatabase.removeDatabase(database)
-            if flashCookies:
-                from .HelpLanguagesDialog import HelpLanguagesDialog
-                languages = Preferences.toList(
-                    Preferences.Prefs.settings.value(
-                        "Help/AcceptLanguages",
-                        HelpLanguagesDialog.defaultAcceptLanguages()))
-                if languages:
-                    language = languages[0]
-                    langCode = language.split("[")[1][:2]
-                self.newTab(
-                    "http://www.macromedia.com/support/documentation/"
-                    "{0}/flashplayer/help/settings_manager07.html".format(
-                        langCode))
-            if zoomValues:
-                self.zoomManager().clear()
-        
-    def __showEnginesConfigurationDialog(self):
-        """
-        Private slot to show the search engines configuration dialog.
-        """
-        from .OpenSearch.OpenSearchDialog import OpenSearchDialog
-        
-        dlg = OpenSearchDialog(self)
-        dlg.exec_()
-        
-    def searchEnginesAction(self):
-        """
-        Public method to get a reference to the search engines configuration
-        action.
-        
-        @return reference to the search engines configuration action (QAction)
-        """
-        return self.searchEnginesAct
-        
-    def __showPasswordsDialog(self):
-        """
-        Private slot to show the passwords management dialog.
-        """
-        from .Passwords.PasswordsDialog import PasswordsDialog
-        
-        dlg = PasswordsDialog(self)
-        dlg.exec_()
-        
-    def __showCertificatesDialog(self):
-        """
-        Private slot to show the certificates management dialog.
-        """
-        from E5Network.E5SslCertificatesDialog import E5SslCertificatesDialog
-        
-        dlg = E5SslCertificatesDialog(self)
-        dlg.exec_()
-        
-    def __showAdBlockDialog(self):
-        """
-        Private slot to show the AdBlock configuration dialog.
-        """
-        self.adBlockManager().showDialog()
-        
-    def __showClickToFlashDialog(self):
-        """
-        Private slot to open the ClickToFlash whitelist configuration dialog.
-        """
-        from .HelpBrowserWV import HelpWebPage
-        HelpWebPage.webPluginFactory().plugin("ClickToFlash").configure()
-        
-    def __showPersonalInformationDialog(self):
-        """
-        Private slot to show the Personal Information configuration dialog.
-        """
-        self.personalInformationManager().showConfigurationDialog()
-        
-    def __showGreaseMonkeyConfigDialog(self):
-        """
-        Private slot to show the GreaseMonkey scripts configuration dialog.
-        """
-        self.greaseMonkeyManager().showConfigurationDialog()
-        
-    def __showFeaturePermissionDialog(self):
-        """
-        Private slot to show the feature permission dialog.
-        """
-        self.featurePermissionManager().showFeaturePermissionsDialog()
-        
-    def __showZoomValuesDialog(self):
-        """
-        Private slot to show the zoom values management dialog.
-        """
-        from .ZoomManager.ZoomValuesDialog import ZoomValuesDialog
-        
-        dlg = ZoomValuesDialog(self)
-        dlg.exec_()
-        
-    def __showNetworkMonitor(self):
-        """
-        Private slot to show the network monitor dialog.
-        """
-        from E5Network.E5NetworkMonitor import E5NetworkMonitor
-        monitor = E5NetworkMonitor.instance(self.networkAccessManager())
-        monitor.show()
-        
-    def __showDownloadsWindow(self):
-        """
-        Private slot to show the downloads dialog.
-        """
-        self.downloadManager().show()
-        
-    def __closeNetworkMonitor(self):
-        """
-        Private slot to close the network monitor dialog.
-        """
-        from E5Network.E5NetworkMonitor import E5NetworkMonitor
-        E5NetworkMonitor.closeMonitor()
-        
-    def __showPageSource(self):
-        """
-        Private slot to show the source of the current page in  an editor.
-        """
-        from QScintilla.MiniEditor import MiniEditor
-        src = self.currentBrowser().page().mainFrame().toHtml()
-        editor = MiniEditor(parent=self)
-        editor.setText(src, "Html")
-        editor.setLanguage("dummy.html")
-        editor.show()
-        
-    @classmethod
-    def icon(cls, url):
-        """
-        Class method to get the icon for an URL.
-        
-        @param url URL to get icon for (QUrl)
-        @return icon for the URL (QIcon)
-        """
-        icon = HelpWindow.__getWebIcon(url)
-        if icon.isNull():
-            hostUrl = QUrl()
-            hostUrl.setScheme(url.scheme())
-            hostUrl.setHost(url.host())
-            icon = HelpWindow.__getWebIcon(hostUrl)
-        
-        if icon.isNull():
-            pixmap = QWebSettings.webGraphic(
-                QWebSettings.DefaultFrameIconGraphic)
-            if pixmap.isNull():
-                pixmap = UI.PixmapCache.getPixmap("defaultIcon.png")
-                QWebSettings.setWebGraphic(
-                    QWebSettings.DefaultFrameIconGraphic, pixmap)
-            return QIcon(pixmap)
-        
-        return icon
-
-    @staticmethod
-    def __getWebIcon(url):
-        """
-        Private static method to fetch the icon for a URL.
-        
-        @param url URL to get icon for (QUrl)
-        @return icon for the URL (QIcon)
-        """
-        scheme = url.scheme()
-        if scheme in ["eric", "about"]:
-            return UI.PixmapCache.getIcon("ericWeb.png")
-        elif scheme == "qthelp" and QTHELP_AVAILABLE:
-            return UI.PixmapCache.getIcon("qthelp.png")
-        elif scheme == "file":
-            return UI.PixmapCache.getIcon("fileMisc.png")
-        elif scheme == "abp":
-            return UI.PixmapCache.getIcon("adBlockPlus.png")
-        
-        icon = QWebSettings.iconForUrl(url)
-        if icon.isNull():
-            # try again
-            QThread.usleep(10)
-            icon = QWebSettings.iconForUrl(url)
-        if not icon.isNull():
-            icon = QIcon(icon.pixmap(22, 22))
-        return icon
-        
-    @classmethod
-    def bookmarksManager(cls):
-        """
-        Class method to get a reference to the bookmarks manager.
-        
-        @return reference to the bookmarks manager (BookmarksManager)
-        """
-        if cls._bookmarksManager is None:
-            from .Bookmarks.BookmarksManager import BookmarksManager
-            cls._bookmarksManager = BookmarksManager()
-        
-        return cls._bookmarksManager
-        
-    def openUrl(self, url, title):
-        """
-        Public slot to load a URL from the bookmarks menu or bookmarks toolbar
-        in the current tab.
-        
-        @param url url to be opened (QUrl)
-        @param title title of the bookmark (string)
-        """
-        self.__linkActivated(url)
-        
-    def openUrlNewTab(self, url, title):
-        """
-        Public slot to load a URL from the bookmarks menu or bookmarks toolbar
-        in a new tab.
-        
-        @param url url to be opened (QUrl)
-        @param title title of the bookmark (string)
-        """
-        req = QNetworkRequest(url)
-        req.setRawHeader(b"X-Eric6-UserLoadAction", b"1")
-        self.newTab(None, (req, QNetworkAccessManager.GetOperation, b""))
-        
-    @classmethod
-    def historyManager(cls):
-        """
-        Class method to get a reference to the history manager.
-        
-        @return reference to the history manager (HistoryManager)
-        """
-        if cls._historyManager is None:
-            from .History.HistoryManager import HistoryManager
-            cls._historyManager = HistoryManager()
-        
-        return cls._historyManager
-        
-    @classmethod
-    def passwordManager(cls):
-        """
-        Class method to get a reference to the password manager.
-        
-        @return reference to the password manager (PasswordManager)
-        """
-        if cls._passwordManager is None:
-            from .Passwords.PasswordManager import PasswordManager
-            cls._passwordManager = PasswordManager()
-        
-        return cls._passwordManager
-        
-    @classmethod
-    def adBlockManager(cls):
-        """
-        Class method to get a reference to the AdBlock manager.
-        
-        @return reference to the AdBlock manager (AdBlockManager)
-        """
-        if cls._adblockManager is None:
-            from .AdBlock.AdBlockManager import AdBlockManager
-            cls._adblockManager = AdBlockManager()
-        
-        return cls._adblockManager
-    
-    def adBlockIcon(self):
-        """
-        Public method to get a reference to the AdBlock icon.
-        
-        @return reference to the AdBlock icon (AdBlockIcon)
-        """
-        return self.__adBlockIcon
-    
-    @classmethod
-    def downloadManager(cls):
-        """
-        Class method to get a reference to the download manager.
-        
-        @return reference to the password manager (DownloadManager)
-        """
-        if cls._downloadManager is None:
-            from .Download.DownloadManager import DownloadManager
-            cls._downloadManager = DownloadManager()
-        
-        return cls._downloadManager
-        
-    @classmethod
-    def personalInformationManager(cls):
-        """
-        Class method to get a reference to the personal information manager.
-        
-        @return reference to the personal information manager
-            (PersonalInformationManager)
-        """
-        if cls._personalInformationManager is None:
-            from .PersonalInformationManager.PersonalInformationManager \
-                import PersonalInformationManager
-            cls._personalInformationManager = PersonalInformationManager()
-        
-        return cls._personalInformationManager
-        
-    @classmethod
-    def greaseMonkeyManager(cls):
-        """
-        Class method to get a reference to the GreaseMonkey manager.
-        
-        @return reference to the GreaseMonkey manager (GreaseMonkeyManager)
-        """
-        if cls._greaseMonkeyManager is None:
-            from .GreaseMonkey.GreaseMonkeyManager import GreaseMonkeyManager
-            cls._greaseMonkeyManager = GreaseMonkeyManager()
-        
-        return cls._greaseMonkeyManager
-        
-    @classmethod
-    def featurePermissionManager(cls):
-        """
-        Class method to get a reference to the feature permission manager.
-        
-        @return reference to the feature permission manager
-        @rtype FeaturePermissionManager
-        """
-        if cls._featurePermissionManager is None:
-            from .FeaturePermissions.FeaturePermissionManager import \
-                FeaturePermissionManager
-            cls._featurePermissionManager = FeaturePermissionManager()
-        
-        return cls._featurePermissionManager
-        
-    @classmethod
-    def flashCookieManager(cls):
-        """
-        Class method to get a reference to the flash cookies manager.
-        
-        @return reference to the flash cookies manager
-        @rtype FlashCookieManager
-        """
-        if cls._flashCookieManager is None:
-            from .FlashCookieManager.FlashCookieManager import \
-                FlashCookieManager
-            cls._flashCookieManager = FlashCookieManager()
-        
-        return cls._flashCookieManager
-        
-    @classmethod
-    def zoomManager(cls):
-        """
-        Class method to get a reference to the zoom values manager.
-        
-        @return reference to the zoom values manager
-        @rtype ZoomManager
-        """
-        if cls._zoomManager is None:
-            from .ZoomManager.ZoomManager import ZoomManager
-            cls._zoomManager = ZoomManager()
-        
-        return cls._zoomManager
-        
-    @classmethod
-    def mainWindow(cls):
-        """
-        Class method to get a reference to the main window.
-        
-        @return reference to the main window (HelpWindow)
-        """
-        if cls.helpwindows:
-            return cls.helpwindows[0]
-        else:
-            return None
-        
-    @classmethod
-    def mainWindows(cls):
-        """
-        Class method to get references to all main windows.
-        
-        @return references to all main window (list of HelpWindow)
-        """
-        return cls.helpwindows
-        
-    def __appFocusChanged(self, old, now):
-        """
-        Private slot to handle a change of the focus.
-        
-        @param old reference to the widget, that lost focus (QWidget or None)
-        @param now reference to the widget having the focus (QWidget or None)
-        """
-        if isinstance(now, HelpWindow):
-            self.__lastActiveWindow = now
-        
-    def getWindow(self):
-        """
-        Public method to get a reference to the most recent active help window.
-        
-        @return reference to most recent help window
-        @rtype HelpWindow
-        """
-        if self.__lastActiveWindow:
-            return self.__lastActiveWindow
-        
-        return self.mainWindow()
-        
-    def openSearchManager(self):
-        """
-        Public method to get a reference to the opensearch manager object.
-        
-        @return reference to the opensearch manager object (OpenSearchManager)
-        """
-        return self.searchEdit.openSearchManager()
-    
-    def __createTextEncodingAction(self, codec, defaultCodec, parentMenu):
-        """
-        Private method to create an action for the text encoding menu.
-        
-        @param codec name of the codec to create an action for
-        @type str
-        @param defaultCodec name of the default codec
-        @type str
-        @param parentMenu reference to the parent menu
-        @type QMenu
-        """
-        act = QAction(codec, parentMenu)
-        act.setData(codec)
-        act.setCheckable(True)
-        if defaultCodec == codec:
-            act.setChecked(True)
-        
-        parentMenu.addAction(act)
-    
-    def __createTextEncodingSubmenu(self, title, codecNames, parentMenu):
-        """
-        Private method to create a text encoding sub menu.
-        
-        @param title title of the menu
-        @type str
-        @param codecNames list of codec names for the menu
-        @type list of str
-        @param parentMenu reference to the parent menu
-        @type QMenu
-        """
-        if codecNames:
-            defaultCodec = \
-                QWebSettings.globalSettings().defaultTextEncoding().lower()
-            
-            menu = QMenu(title, parentMenu)
-            for codec in codecNames:
-                self.__createTextEncodingAction(codec, defaultCodec, menu)
-            
-            parentMenu.addMenu(menu)
-    
-    def __aboutToShowTextEncodingMenu(self):
-        """
-        Private slot to populate the text encoding menu.
-        """
-        self.__textEncodingMenu.clear()
-        
-        codecs = []
-        for mib in QTextCodec.availableMibs():
-            codec = str(QTextCodec.codecForMib(mib).name(),
-                        encoding="utf-8").lower()
-            if codec not in codecs:
-                codecs.append(codec)
-        codecs.sort()
-        
-        defaultTextEncoding = \
-            QWebSettings.globalSettings().defaultTextEncoding().lower()
-        if defaultTextEncoding in codecs:
-            currentCodec = defaultTextEncoding
-        else:
-            currentCodec = "system"
-        
-        isoCodecs = []
-        winCodecs = []
-        isciiCodecs = []
-        uniCodecs = []
-        ibmCodecs = []
-        otherCodecs = []
-        
-        for codec in codecs:
-            if codec.startswith(("iso", "latin")):
-                isoCodecs.append(codec)
-            elif codec.startswith(("windows")):
-                winCodecs.append(codec)
-            elif codec.startswith("iscii"):
-                isciiCodecs.append(codec)
-            elif codec.startswith("utf"):
-                uniCodecs.append(codec)
-            elif codec.startswith(("ibm")):
-                ibmCodecs.append(codec)
-            elif codec == "system":
-                self.__createTextEncodingAction(codec, currentCodec,
-                                                self.__textEncodingMenu)
-            else:
-                otherCodecs.append(codec)
-        
-        self.__createTextEncodingSubmenu(self.tr("ISO"), isoCodecs,
-                                         self.__textEncodingMenu)
-        self.__createTextEncodingSubmenu(self.tr("Unicode"), uniCodecs,
-                                         self.__textEncodingMenu)
-        self.__createTextEncodingSubmenu(self.tr("Windows"), winCodecs,
-                                         self.__textEncodingMenu)
-        self.__createTextEncodingSubmenu(self.tr("ISCII"), isciiCodecs,
-                                         self.__textEncodingMenu)
-        self.__createTextEncodingSubmenu(self.tr("IBM"), ibmCodecs,
-                                         self.__textEncodingMenu)
-        self.__createTextEncodingSubmenu(self.tr("Other"), otherCodecs,
-                                         self.__textEncodingMenu)
-    
-    def __setTextEncoding(self, act):
-        """
-        Private slot to set the selected text encoding as the default for
-        this session.
-        
-        @param act reference to the selected action (QAction)
-        """
-        codec = act.data()
-        if codec == "":
-            QWebSettings.globalSettings().setDefaultTextEncoding("")
-        else:
-            QWebSettings.globalSettings().setDefaultTextEncoding(codec)
-    
-    def eventMouseButtons(self):
-        """
-        Public method to get the last recorded mouse buttons.
-        
-        @return mouse buttons (Qt.MouseButtons)
-        """
-        return self.__eventMouseButtons
-    
-    def eventKeyboardModifiers(self):
-        """
-        Public method to get the last recorded keyboard modifiers.
-        
-        @return keyboard modifiers (Qt.KeyboardModifiers)
-        """
-        return self.__eventKeyboardModifiers
-    
-    def setEventMouseButtons(self, buttons):
-        """
-        Public method to record mouse buttons.
-        
-        @param buttons mouse buttons to record (Qt.MouseButtons)
-        """
-        self.__eventMouseButtons = buttons
-    
-    def setEventKeyboardModifiers(self, modifiers):
-        """
-        Public method to record keyboard modifiers.
-        
-        @param modifiers keyboard modifiers to record (Qt.KeyboardModifiers)
-        """
-        self.__eventKeyboardModifiers = modifiers
-    
-    def mousePressEvent(self, evt):
-        """
-        Protected method called by a mouse press event.
-        
-        @param evt reference to the mouse event (QMouseEvent)
-        """
-        if evt.button() == Qt.XButton1:
-            self.currentBrowser().pageAction(QWebPage.Back).trigger()
-        elif evt.button() == Qt.XButton2:
-            self.currentBrowser().pageAction(QWebPage.Forward).trigger()
-        else:
-            super(HelpWindow, self).mousePressEvent(evt)
-
-    @classmethod
-    def feedsManager(cls):
-        """
-        Class method to get a reference to the RSS feeds manager.
-        
-        @return reference to the RSS feeds manager (FeedsManager)
-        """
-        if cls._feedsManager is None:
-            from .Feeds.FeedsManager import FeedsManager
-            cls._feedsManager = FeedsManager()
-        
-        return cls._feedsManager
-    
-    def __showFeedsManager(self):
-        """
-        Private slot to show the feeds manager dialog.
-        """
-        feedsManager = self.feedsManager()
-        feedsManager.openUrl.connect(self.openUrl)
-        feedsManager.newUrl.connect(self.openUrlNewTab)
-        feedsManager.rejected.connect(
-            lambda fm: self.__feedsManagerClosed(fm))
-        feedsManager.show()
-    
-    def __feedsManagerClosed(self, feedsManager):
-        """
-        Private slot to handle closing the feeds manager dialog.
-        
-        @param feedsManager reference to the feeds manager object
-        @type FeedsManager
-        """
-        feedsManager.openUrl.disconnect(self.openUrl)
-        feedsManager.newUrl.disconnect(self.openUrlNewTab)
-        feedsManager.rejected.disconnect()
-    
-    def __showSiteinfoDialog(self):
-        """
-        Private slot to show the site info dialog.
-        """
-        from .SiteInfo.SiteInfoDialog import SiteInfoDialog
-        self.__siteinfoDialog = SiteInfoDialog(self.currentBrowser(), self)
-        self.__siteinfoDialog.show()
-
-    @classmethod
-    def userAgentsManager(cls):
-        """
-        Class method to get a reference to the user agents manager.
-        
-        @return reference to the user agents manager (UserAgentManager)
-        """
-        if cls._userAgentsManager is None:
-            from .UserAgent.UserAgentManager import UserAgentManager
-            cls._userAgentsManager = UserAgentManager()
-        
-        return cls._userAgentsManager
-    
-    def __showUserAgentsDialog(self):
-        """
-        Private slot to show the user agents management dialog.
-        """
-        from .UserAgent.UserAgentsDialog import UserAgentsDialog
-        
-        dlg = UserAgentsDialog(self)
-        dlg.exec_()
-    
-    @classmethod
-    def syncManager(cls):
-        """
-        Class method to get a reference to the data synchronization manager.
-        
-        @return reference to the data synchronization manager (SyncManager)
-        """
-        if cls._syncManager is None:
-            from .Sync.SyncManager import SyncManager
-            cls._syncManager = SyncManager()
-        
-        return cls._syncManager
-    
-    def __showSyncDialog(self):
-        """
-        Private slot to show the synchronization dialog.
-        """
-        self.syncManager().showSyncDialog()
-    
-    @classmethod
-    def speedDial(cls):
-        """
-        Class methdo to get a reference to the speed dial.
-        
-        @return reference to the speed dial (SpeedDial)
-        """
-        if cls._speedDial is None:
-            from .SpeedDial.SpeedDial import SpeedDial
-            cls._speedDial = SpeedDial()
-        
-        return cls._speedDial
-    
-    def keyPressEvent(self, evt):
-        """
-        Protected method to handle key presses.
-        
-        @param evt reference to the key press event (QKeyEvent)
-        """
-        number = -1
-        key = evt.key()
-        
-        if key == Qt.Key_1:
-            number = 1
-        elif key == Qt.Key_2:
-            number = 2
-        elif key == Qt.Key_3:
-            number = 3
-        elif key == Qt.Key_4:
-            number = 4
-        elif key == Qt.Key_5:
-            number = 5
-        elif key == Qt.Key_6:
-            number = 6
-        elif key == Qt.Key_7:
-            number = 7
-        elif key == Qt.Key_8:
-            number = 8
-        elif key == Qt.Key_9:
-            number = 9
-        elif key == Qt.Key_0:
-            number = 10
-        
-        if number != -1:
-            if evt.modifiers() == Qt.KeyboardModifiers(Qt.AltModifier):
-                if number == 10:
-                    number = self.tabWidget.count()
-                self.tabWidget.setCurrentIndex(number - 1)
-                return
-            
-            if evt.modifiers() == Qt.KeyboardModifiers(Qt.MetaModifier):
-                url = self.speedDial().urlForShortcut(number - 1)
-                if url.isValid():
-                    self.__linkActivated(url)
-                    return
-        
-        super(HelpWindow, self).keyPressEvent(evt)
-    
-    ###########################################################################
-    ## Interface to VirusTotal below                                         ##
-    ###########################################################################
-    
-    def __virusTotalScanCurrentSite(self):
-        """
-        Private slot to ask VirusTotal for a scan of the URL of the current
-        browser.
-        """
-        cb = self.currentBrowser()
-        if cb is not None:
-            url = cb.url()
-            if url.scheme() in ["http", "https", "ftp"]:
-                self.requestVirusTotalScan(url)
-    
-    def requestVirusTotalScan(self, url):
-        """
-        Public method to submit a request to scan an URL by VirusTotal.
-        
-        @param url URL to be scanned (QUrl)
-        """
-        self.__virusTotal.submitUrl(url)
-    
-    def __virusTotalSubmitUrlError(self, msg):
-        """
-        Private slot to handle an URL scan submission error.
-        
-        @param msg error message (str)
-        """
-        E5MessageBox.critical(
-            self,
-            self.tr("VirusTotal Scan"),
-            self.tr("""<p>The VirusTotal scan could not be"""
-                    """ scheduled.<p>\n<p>Reason: {0}</p>""").format(msg))
-    
-    def __virusTotalUrlScanReport(self, url):
-        """
-        Private slot to initiate the display of the URL scan report page.
-        
-        @param url URL of the URL scan report page (string)
-        """
-        self.newTab(url)
-    
-    def __virusTotalFileScanReport(self, url):
-        """
-        Private slot to initiate the display of the file scan report page.
-        
-        @param url URL of the file scan report page (string)
-        """
-        self.newTab(url)
-    
-    def __virusTotalIpAddressReport(self):
-        """
-        Private slot to retrieve an IP address report.
-        """
-        ip, ok = QInputDialog.getText(
-            self,
-            self.tr("IP Address Report"),
-            self.tr("Enter a valid IPv4 address in dotted quad notation:"),
-            QLineEdit.Normal)
-        if ok and ip:
-            if ip.count(".") == 3:
-                self.__virusTotal.getIpAddressReport(ip)
-            else:
-                E5MessageBox.information(
-                    self,
-                    self.tr("IP Address Report"),
-                    self.tr("""The given IP address is not in dotted quad"""
-                            """ notation."""))
-    
-    def __virusTotalDomainReport(self):
-        """
-        Private slot to retrieve a domain report.
-        """
-        domain, ok = QInputDialog.getText(
-            self,
-            self.tr("Domain Report"),
-            self.tr("Enter a valid domain name:"),
-            QLineEdit.Normal)
-        if ok and domain:
-            self.__virusTotal.getDomainReport(domain)
-    
-    ###########################################################################
-    ## Style sheet handling below                                            ##
-    ###########################################################################
-    
-    def reloadUserStyleSheet(self):
-        """
-        Public method to reload the user style sheet.
-        """
-        settings = QWebSettings.globalSettings()
-        styleSheet = Preferences.getHelp("UserStyleSheet")
-        settings.setUserStyleSheetUrl(self.__userStyleSheet(styleSheet))
-    
-    def __userStyleSheet(self, styleSheetFile):
-        """
-        Private method to generate the user style sheet.
-        
-        @param styleSheetFile name of the user style sheet file (string)
-        @return style sheet (QUrl)
-        """
-        userStyle = self.adBlockManager().elementHidingRules() + \
-            "{display:none !important;}"
-        
-        if styleSheetFile:
-            try:
-                f = open(styleSheetFile, "r")
-                fileData = f.read()
-                f.close()
-                fileData = fileData.replace("\n", "")
-                userStyle += fileData
-            except IOError:
-                pass
-        
-        encodedStyle = bytes(QByteArray(userStyle.encode("utf-8")).toBase64())\
-            .decode()
-        dataString = "data:text/css;charset=utf-8;base64,{0}".format(
-            encodedStyle)
-        
-        return QUrl(dataString)
-    
-    ##########################################
-    ## Support for desktop notifications below
-    ##########################################
-    
-    @classmethod
-    def showNotification(cls, icon, heading, text):
-        """
-        Class method to show a desktop notification.
-        
-        @param icon icon to be shown in the notification (QPixmap)
-        @param heading heading of the notification (string)
-        @param text text of the notification (string)
-        """
-        if Preferences.getUI("NotificationsEnabled"):
-            if cls._notification is None:
-                from UI.NotificationWidget import NotificationWidget
-                cls._notification = NotificationWidget()
-            cls._notification.setPixmap(icon)
-            cls._notification.setHeading(heading)
-            cls._notification.setText(text)
-            cls._notification.setTimeout(
-                Preferences.getUI("NotificationTimeout"))
-            cls._notification.move(
-                Preferences.getUI("NotificationPosition"))
-            cls._notification.show()
-    
-    @classmethod
-    def notificationsEnabled(cls):
-        """
-        Class method to check, if notifications are enabled.
-        
-        @return flag indicating, if notifications are enabled (boolean)
-        """
-        return Preferences.getUI("NotificationsEnabled")
-    
-    ###############################################################
-    ## Methods below implement single application related functions
-    ###############################################################
-    
-    @pyqtSlot(str)
-    def __saLoadUrl(self, urlStr):
-        """
-        Private slot to load an URL received via the single application
-        protocol.
-        
-        @param urlStr URL to be loaded
-        @type str
-        """
-        url = QUrl.fromUserInput(urlStr)
-        self.__linkActivated(url)
-    
-    @pyqtSlot(str)
-    def __saNewTab(self, urlStr):
-        """
-        Private slot to load an URL received via the single application
-        protocol in a new tab.
-        
-        @param urlStr URL to be loaded
-        @type str
-        """
-        url = QUrl.fromUserInput(urlStr)
-        self.newTab(url)
-    
-    @pyqtSlot(str)
-    def __saSearchWord(self, word):
-        """
-        Private slot to search for the given word.
-        
-        @param word word to be searched for
-        @type str
-        """
-        if HelpWindow._useQtHelp:
-            self.__searchWord = word
-            self.__searchForWord()
-    
-    ######################################################
-    ## Methods below implement shortcuts related functions
-    ######################################################
-    
-    def __configShortcuts(self):
-        """
-        Private slot to configure the keyboard shortcuts.
-        """
-        if self.__shortcutsDialog is None:
-            from Preferences.ShortcutsDialog import ShortcutsDialog
-            self.__shortcutsDialog = ShortcutsDialog(self)
-        self.__shortcutsDialog.populate(helpViewer=self)
-        self.__shortcutsDialog.show()
-    
-    def __exportShortcuts(self):
-        """
-        Private slot to export the keyboard shortcuts.
-        """
-        fn, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
-            None,
-            self.tr("Export Keyboard Shortcuts"),
-            "",
-            self.tr("Keyboard shortcut file (*.e4k)"),
-            "",
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
-        
-        if not fn:
-            return
-        
-        ext = QFileInfo(fn).suffix()
-        if not ext:
-            ex = selectedFilter.split("(*")[1].split(")")[0]
-            if ex:
-                fn += ex
-        
-        from Preferences import Shortcuts
-        Shortcuts.exportShortcuts(fn, helpViewer=self)
-
-    def __importShortcuts(self):
-        """
-        Private slot to import the keyboard shortcuts.
-        """
-        fn = E5FileDialog.getOpenFileName(
-            None,
-            self.tr("Import Keyboard Shortcuts"),
-            "",
-            self.tr("Keyboard shortcut file (*.e4k)"))
-        
-        if fn:
-            from Preferences import Shortcuts
-            Shortcuts.importShortcuts(fn, helpViewer=self)
--- a/eric6/Helpviewer/History/HistoryCompleter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,303 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a special completer for the history.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt, QRegExp, QTimer, QSortFilterProxyModel
-from PyQt5.QtWidgets import QTableView, QAbstractItemView, QCompleter
-
-from .HistoryModel import HistoryModel
-from .HistoryFilterModel import HistoryFilterModel
-
-
-class HistoryCompletionView(QTableView):
-    """
-    Class implementing a special completer view for history based completions.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(HistoryCompletionView, self).__init__(parent)
-        
-        self.horizontalHeader().hide()
-        self.verticalHeader().hide()
-        
-        self.setShowGrid(False)
-        
-        self.setSelectionBehavior(QAbstractItemView.SelectRows)
-        self.setSelectionMode(QAbstractItemView.SingleSelection)
-        self.setTextElideMode(Qt.ElideRight)
-        
-        metrics = self.fontMetrics()
-        self.verticalHeader().setDefaultSectionSize(metrics.height())
-    
-    def resizeEvent(self, evt):
-        """
-        Protected method handling resize events.
-        
-        @param evt reference to the resize event (QResizeEvent)
-        """
-        self.horizontalHeader().resizeSection(0, 0.65 * self.width())
-        self.horizontalHeader().setStretchLastSection(True)
-        
-        super(HistoryCompletionView, self).resizeEvent(evt)
-    
-    def sizeHintForRow(self, row):
-        """
-        Public method to give a size hint for rows.
-        
-        @param row row number (integer)
-        @return desired row height (integer)
-        """
-        metrics = self.fontMetrics()
-        return metrics.height()
-
-
-class HistoryCompletionModel(QSortFilterProxyModel):
-    """
-    Class implementing a special model for history based completions.
-    """
-    HistoryCompletionRole = HistoryFilterModel.MaxRole + 1
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(HistoryCompletionModel, self).__init__(parent)
-        
-        self.__searchString = ""
-        self.__searchMatcher = QRegExp(
-            "", Qt.CaseInsensitive, QRegExp.FixedString)
-        self.__wordMatcher = QRegExp("", Qt.CaseInsensitive)
-        self.__isValid = False
-        
-        self.setDynamicSortFilter(True)
-    
-    def data(self, index, role=Qt.DisplayRole):
-        """
-        Public method to get data from the model.
-        
-        @param index index of history entry to get data for (QModelIndex)
-        @param role data role (integer)
-        @return history entry data
-        """
-        # If the model is valid, tell QCompleter that everything we have
-        # filtered matches what the user typed; if not, nothing matches
-        if role == self.HistoryCompletionRole and index.isValid():
-            if self.isValid():
-                return "t"
-            else:
-                return "f"
-        
-        if role == Qt.DisplayRole:
-            if index.column() == 0:
-                role = HistoryModel.UrlStringRole
-            else:
-                role = HistoryModel.TitleRole
-        
-        return QSortFilterProxyModel.data(self, index, role)
-    
-    def searchString(self):
-        """
-        Public method to get the current search string.
-        
-        @return current search string (string)
-        """
-        return self.__searchString
-    
-    def setSearchString(self, string):
-        """
-        Public method to set the current search string.
-        
-        @param string new search string (string)
-        """
-        if string == self.__searchString:
-            return
-        
-        self.__searchString = string
-        self.__searchMatcher.setPattern(self.__searchString)
-        self.__wordMatcher.setPattern(
-            "\\b" + QRegExp.escape(self.__searchString))
-        self.invalidateFilter()
-    
-    def isValid(self):
-        """
-        Public method to check the model for validity.
-        
-        @return flag indicating a valid status (boolean)
-        """
-        return self.__isValid
-    
-    def setValid(self, valid):
-        """
-        Public method to set the model's validity.
-        
-        @param valid flag indicating the new valid status (boolean)
-        """
-        if valid == self.__isValid:
-            return
-        
-        self.__isValid = valid
-        
-        # tell the history completer that the model has changed
-        self.dataChanged.emit(self.index(0, 0), self.index(0,
-                              self.rowCount() - 1))
-    
-    def filterAcceptsRow(self, sourceRow, sourceParent):
-        """
-        Public method to determine, if the row is acceptable.
-        
-        @param sourceRow row number in the source model (integer)
-        @param sourceParent index of the source item (QModelIndex)
-        @return flag indicating acceptance (boolean)
-        """
-        # Do a case-insensitive substring match against both the url and title.
-        # It's already ensured, that the user doesn't accidentally use regexp
-        # metacharacters (s. setSearchString()).
-        idx = self.sourceModel().index(sourceRow, 0, sourceParent)
-        
-        url = self.sourceModel().data(idx, HistoryModel.UrlStringRole)
-        if self.__searchMatcher.indexIn(url) != -1:
-            return True
-        
-        title = self.sourceModel().data(idx, HistoryModel.TitleRole)
-        if self.__searchMatcher.indexIn(title) != -1:
-            return True
-        
-        return False
-    
-    def lessThan(self, left, right):
-        """
-        Public method used to sort the displayed items.
-        
-        It implements a special sorting function based on the history entry's
-        frequency giving a bonus to hits that match on a word boundary so that
-        e.g. "dot.python-projects.org" is a better result for typing "dot" than
-        "slashdot.org". However, it only looks for the string in the host name,
-        not the entire URL, since while it makes sense to e.g. give
-        "www.phoronix.com" a bonus for "ph", it does NOT make sense to give
-        "www.yadda.com/foo.php" the bonus.
-        
-        @param left index of left item (QModelIndex)
-        @param right index of right item (QModelIndex)
-        @return true, if left is less than right (boolean)
-        """
-        frequency_L = \
-            self.sourceModel().data(left, HistoryFilterModel.FrequencyRole)
-        url_L = self.sourceModel().data(left, HistoryModel.UrlRole).host()
-        title_L = self.sourceModel().data(left, HistoryModel.TitleRole)
-        
-        if self.__wordMatcher.indexIn(url_L) != -1 or \
-           self.__wordMatcher.indexIn(title_L) != -1:
-            frequency_L *= 2
-        
-        frequency_R = \
-            self.sourceModel().data(right, HistoryFilterModel.FrequencyRole)
-        url_R = self.sourceModel().data(right, HistoryModel.UrlRole).host()
-        title_R = self.sourceModel().data(right, HistoryModel.TitleRole)
-        
-        if self.__wordMatcher.indexIn(url_R) != -1 or \
-           self.__wordMatcher.indexIn(title_R) != -1:
-            frequency_R *= 2
-        
-        # Sort results in descending frequency-derived score.
-        return frequency_R < frequency_L
-
-
-class HistoryCompleter(QCompleter):
-    """
-    Class implementing a completer for the browser history.
-    """
-    def __init__(self, model, parent=None):
-        """
-        Constructor
-        
-        @param model reference to the model (QAbstractItemModel)
-        @param parent reference to the parent object (QObject)
-        """
-        super(HistoryCompleter, self).__init__(model, parent)
-        
-        self.setPopup(HistoryCompletionView())
-        
-        # Completion should be against the faked role.
-        self.setCompletionRole(HistoryCompletionModel.HistoryCompletionRole)
-        
-        # Since the completion role is faked, advantage of the sorted-model
-        # optimizations in QCompleter can be taken.
-        self.setCaseSensitivity(Qt.CaseSensitive)
-        self.setModelSorting(QCompleter.CaseSensitivelySortedModel)
-        
-        self.__searchString = ""
-        self.__filterTimer = QTimer(self)
-        self.__filterTimer.setSingleShot(True)
-        self.__filterTimer.timeout.connect(self.__updateFilter)
-    
-    def pathFromIndex(self, idx):
-        """
-        Public method to get a path for a given index.
-        
-        @param idx reference to the index (QModelIndex)
-        @return the actual URL from the history (string)
-        """
-        return self.model().data(idx, HistoryModel.UrlStringRole)
-    
-    def splitPath(self, path):
-        """
-        Public method to split the given path into strings, that are used to
-        match at each level in the model.
-        
-        @param path path to be split (string)
-        @return list of path elements (list of strings)
-        """
-        if path == self.__searchString:
-            return ["t"]
-        
-        # Queue an update to the search string. Wait a bit, so that if the user
-        # is quickly typing, the completer doesn't try to complete until they
-        # pause.
-        if self.__filterTimer.isActive():
-            self.__filterTimer.stop()
-        self.__filterTimer.start(150)
-        
-        # If the previous search results are not a superset of the current
-        # search results, tell the model that it is not valid yet.
-        if not path.startswith(self.__searchString):
-            self.model().setValid(False)
-        
-        self.__searchString = path
-        
-        # The actual filtering is done by the HistoryCompletionModel. Just
-        # return a short dummy here so that QCompleter thinks everything
-        # matched.
-        return ["t"]
-    
-    def __updateFilter(self):
-        """
-        Private slot to update the search string.
-        """
-        completionModel = self.model()
-        
-        # Tell the HistoryCompletionModel about the new search string.
-        completionModel.setSearchString(self.__searchString)
-        
-        # Sort the model.
-        completionModel.sort(0)
-        
-        # Mark it valid.
-        completionModel.setValid(True)
-        
-        # Now update the QCompleter widget, but only if the user is still
-        # typing a URL.
-        if self.widget() is not None and self.widget().hasFocus():
-            self.complete()
--- a/eric6/Helpviewer/History/HistoryDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,148 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to manage history.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSignal, Qt, QUrl
-from PyQt5.QtGui import QFontMetrics, QCursor
-from PyQt5.QtWidgets import QDialog, QMenu, QApplication
-
-from E5Gui.E5TreeSortFilterProxyModel import E5TreeSortFilterProxyModel
-
-from .HistoryModel import HistoryModel
-
-from .Ui_HistoryDialog import Ui_HistoryDialog
-
-
-class HistoryDialog(QDialog, Ui_HistoryDialog):
-    """
-    Class implementing a dialog to manage history.
-    
-    @signal openUrl(QUrl, str) emitted to open a URL in the current tab
-    @signal newUrl(QUrl, str) emitted to open a URL in a new tab
-    """
-    openUrl = pyqtSignal(QUrl, str)
-    newUrl = pyqtSignal(QUrl, str)
-    
-    def __init__(self, parent=None, manager=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget
-        @param manager reference to the history manager object (HistoryManager)
-        """
-        super(HistoryDialog, self).__init__(parent)
-        self.setupUi(self)
-        self.setWindowFlags(Qt.Window)
-        
-        self.__historyManager = manager
-        if self.__historyManager is None:
-            import Helpviewer.HelpWindow
-            self.__historyManager = \
-                Helpviewer.HelpWindow.HelpWindow.historyManager()
-        
-        self.__model = self.__historyManager.historyTreeModel()
-        self.__proxyModel = E5TreeSortFilterProxyModel(self)
-        self.__proxyModel.setSortRole(HistoryModel.DateTimeRole)
-        self.__proxyModel.setFilterKeyColumn(-1)
-        self.__proxyModel.setSourceModel(self.__model)
-        self.historyTree.setModel(self.__proxyModel)
-        self.historyTree.expandAll()
-        fm = QFontMetrics(self.font())
-        header = fm.width("m") * 40
-        self.historyTree.header().resizeSection(0, header)
-        self.historyTree.header().setStretchLastSection(True)
-        self.historyTree.setContextMenuPolicy(Qt.CustomContextMenu)
-        
-        self.historyTree.activated.connect(self.__activated)
-        self.historyTree.customContextMenuRequested.connect(
-            self.__customContextMenuRequested)
-        
-        self.searchEdit.textChanged.connect(
-            self.__proxyModel.setFilterFixedString)
-        self.removeButton.clicked.connect(self.historyTree.removeSelected)
-        self.removeAllButton.clicked.connect(self.__historyManager.clear)
-        
-        self.__proxyModel.modelReset.connect(self.__modelReset)
-    
-    def __modelReset(self):
-        """
-        Private slot handling a reset of the tree view's model.
-        """
-        self.historyTree.expandAll()
-    
-    def __customContextMenuRequested(self, pos):
-        """
-        Private slot to handle the context menu request for the bookmarks tree.
-        
-        @param pos position the context menu was requested (QPoint)
-        """
-        menu = QMenu()
-        idx = self.historyTree.indexAt(pos)
-        idx = idx.sibling(idx.row(), 0)
-        if idx.isValid() and not self.historyTree.model().hasChildren(idx):
-            menu.addAction(
-                self.tr("&Open"), self.__openHistoryInCurrentTab)
-            menu.addAction(
-                self.tr("Open in New &Tab"), self.__openHistoryInNewTab)
-            menu.addSeparator()
-            menu.addAction(self.tr("&Copy"), self.__copyHistory)
-        menu.addAction(self.tr("&Remove"), self.historyTree.removeSelected)
-        menu.exec_(QCursor.pos())
-    
-    def __activated(self, idx):
-        """
-        Private slot to handle the activation of an entry.
-        
-        @param idx reference to the entry index (QModelIndex)
-        """
-        self.__openHistory(
-            QApplication.keyboardModifiers() & Qt.ControlModifier)
-        
-    def __openHistoryInCurrentTab(self):
-        """
-        Private slot to open a history entry in the current browser tab.
-        """
-        self.__openHistory(False)
-    
-    def __openHistoryInNewTab(self):
-        """
-        Private slot to open a history entry in a new browser tab.
-        """
-        self.__openHistory(True)
-    
-    def __openHistory(self, newTab):
-        """
-        Private method to open a history entry.
-        
-        @param newTab flag indicating to open the history entry in a new tab
-            (boolean)
-        """
-        idx = self.historyTree.currentIndex()
-        if newTab:
-            self.newUrl.emit(
-                idx.data(HistoryModel.UrlRole),
-                idx.data(HistoryModel.TitleRole))
-        else:
-            self.openUrl.emit(
-                idx.data(HistoryModel.UrlRole),
-                idx.data(HistoryModel.TitleRole))
-    
-    def __copyHistory(self):
-        """
-        Private slot to copy a history entry's URL to the clipboard.
-        """
-        idx = self.historyTree.currentIndex()
-        if not idx.parent().isValid():
-            return
-        
-        url = idx.data(HistoryModel.UrlStringRole)
-        
-        clipboard = QApplication.clipboard()
-        clipboard.setText(url)
--- a/eric6/Helpviewer/History/HistoryDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>HistoryDialog</class>
- <widget class="QDialog" name="HistoryDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>750</width>
-    <height>450</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Manage History</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <layout class="QHBoxLayout" name="horizontalLayout">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="E5ClearableLineEdit" name="searchEdit">
-         <property name="toolTip">
-          <string>Enter search term for history entries</string>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="E5TreeView" name="historyTree">
-     <property name="alternatingRowColors">
-      <bool>true</bool>
-     </property>
-     <property name="selectionMode">
-      <enum>QAbstractItemView::ExtendedSelection</enum>
-     </property>
-     <property name="textElideMode">
-      <enum>Qt::ElideMiddle</enum>
-     </property>
-     <property name="uniformRowHeights">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <item>
-      <widget class="QPushButton" name="removeButton">
-       <property name="toolTip">
-        <string>Press to remove the selected entries</string>
-       </property>
-       <property name="text">
-        <string>&amp;Remove</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="removeAllButton">
-       <property name="toolTip">
-        <string>Press to remove all entries</string>
-       </property>
-       <property name="text">
-        <string>Remove &amp;All</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="spacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5TreeView</class>
-   <extends>QTreeView</extends>
-   <header>E5Gui/E5TreeView.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>searchEdit</tabstop>
-  <tabstop>historyTree</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>removeAllButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>HistoryDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>252</x>
-     <y>445</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>HistoryDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>320</x>
-     <y>445</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/History/HistoryFilterModel.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,387 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the history filter model.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt, QDateTime, QModelIndex, QAbstractProxyModel
-
-from .HistoryModel import HistoryModel
-
-
-class HistoryData(object):
-    """
-    Class storing some history data.
-    """
-    def __init__(self, offset, frequency=0):
-        """
-        Constructor
-        
-        @param offset tail offset (integer)
-        @param frequency frequency (integer)
-        """
-        self.tailOffset = offset
-        self.frequency = frequency
-    
-    def __eq__(self, other):
-        """
-        Special method implementing equality.
-        
-        @param other reference to the object to check against (HistoryData)
-        @return flag indicating equality (boolean)
-        """
-        return self.tailOffset == other.tailOffset and \
-            (self.frequency == -1 or other.frequency == -1 or
-             self.frequency == other.frequency)
-    
-    def __lt__(self, other):
-        """
-        Special method determining less relation.
-        
-        Note: Like the actual history entries the index mapping is sorted in
-        reverse order by offset
-        
-        @param other reference to the history data object to compare against
-            (HistoryEntry)
-        @return flag indicating less (boolean)
-        """
-        return self.tailOffset > other.tailOffset
-
-
-class HistoryFilterModel(QAbstractProxyModel):
-    """
-    Class implementing the history filter model.
-    """
-    FrequencyRole = HistoryModel.MaxRole + 1
-    MaxRole = FrequencyRole
-    
-    def __init__(self, sourceModel, parent=None):
-        """
-        Constructor
-        
-        @param sourceModel reference to the source model (QAbstractItemModel)
-        @param parent reference to the parent object (QObject)
-        """
-        super(HistoryFilterModel, self).__init__(parent)
-        
-        self.__loaded = False
-        self.__filteredRows = []
-        self.__historyDict = {}
-        self.__scaleTime = QDateTime()
-        
-        self.setSourceModel(sourceModel)
-    
-    def historyContains(self, url):
-        """
-        Public method to check the history for an entry.
-        
-        @param url URL to check for (string)
-        @return flag indicating success (boolean)
-        """
-        self.__load()
-        return url in self.__historyDict
-    
-    def historyLocation(self, url):
-        """
-        Public method to get the row number of an entry in the source model.
-        
-        @param url URL to check for (tring)
-        @return row number in the source model (integer)
-        """
-        self.__load()
-        if url not in self.__historyDict:
-            return 0
-        
-        return self.sourceModel().rowCount() - self.__historyDict[url]
-    
-    def data(self, index, role=Qt.DisplayRole):
-        """
-        Public method to get data from the model.
-        
-        @param index index of history entry to get data for (QModelIndex)
-        @param role data role (integer)
-        @return history entry data
-        """
-        if role == self.FrequencyRole and index.isValid():
-            return self.__filteredRows[index.row()].frequency
-        
-        return QAbstractProxyModel.data(self, index, role)
-    
-    def setSourceModel(self, sourceModel):
-        """
-        Public method to set the source model.
-        
-        @param sourceModel reference to the source model (QAbstractItemModel)
-        """
-        if self.sourceModel() is not None:
-            self.sourceModel().modelReset.disconnect(self.__sourceReset)
-            self.sourceModel().dataChanged.disconnect(self.__sourceDataChanged)
-            self.sourceModel().rowsInserted.disconnect(
-                self.__sourceRowsInserted)
-            self.sourceModel().rowsRemoved.disconnect(self.__sourceRowsRemoved)
-        
-        super(HistoryFilterModel, self).setSourceModel(sourceModel)
-        
-        if self.sourceModel() is not None:
-            self.__loaded = False
-            self.sourceModel().modelReset.connect(self.__sourceReset)
-            self.sourceModel().dataChanged.connect(self.__sourceDataChanged)
-            self.sourceModel().rowsInserted.connect(self.__sourceRowsInserted)
-            self.sourceModel().rowsRemoved.connect(self.__sourceRowsRemoved)
-    
-    def __sourceDataChanged(self, topLeft, bottomRight):
-        """
-        Private slot to handle the change of data of the source model.
-        
-        @param topLeft index of top left data element (QModelIndex)
-        @param bottomRight index of bottom right data element (QModelIndex)
-        """
-        self.dataChanged.emit(
-            self.mapFromSource(topLeft), self.mapFromSource(bottomRight))
-    
-    def headerData(self, section, orientation, role=Qt.DisplayRole):
-        """
-        Public method to get the header data.
-        
-        @param section section number (integer)
-        @param orientation header orientation (Qt.Orientation)
-        @param role data role (integer)
-        @return header data
-        """
-        return self.sourceModel().headerData(section, orientation, role)
-    
-    def recalculateFrequencies(self):
-        """
-        Public method to recalculate the frequencies.
-        """
-        self.__sourceReset()
-    
-    def __sourceReset(self):
-        """
-        Private slot to handle a reset of the source model.
-        """
-        self.beginResetModel()
-        self.__loaded = False
-        self.endResetModel()
-    
-    def rowCount(self, parent=None):
-        """
-        Public method to determine the number of rows.
-        
-        @param parent index of parent (QModelIndex)
-        @return number of rows (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        self.__load()
-        if parent.isValid():
-            return 0
-        return len(self.__historyDict)
-    
-    def columnCount(self, parent=None):
-        """
-        Public method to get the number of columns.
-        
-        @param parent index of parent (QModelIndex)
-        @return number of columns (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        return self.sourceModel().columnCount(self.mapToSource(parent))
-    
-    def mapToSource(self, proxyIndex):
-        """
-        Public method to map an index to the source model index.
-        
-        @param proxyIndex reference to a proxy model index (QModelIndex)
-        @return source model index (QModelIndex)
-        """
-        self.__load()
-        sourceRow = self.sourceModel().rowCount() - proxyIndex.internalId()
-        return self.sourceModel().index(sourceRow, proxyIndex.column())
-    
-    def mapFromSource(self, sourceIndex):
-        """
-        Public method to map an index to the proxy model index.
-        
-        @param sourceIndex reference to a source model index (QModelIndex)
-        @return proxy model index (QModelIndex)
-        """
-        self.__load()
-        url = sourceIndex.data(HistoryModel.UrlStringRole)
-        if url not in self.__historyDict:
-            return QModelIndex()
-        
-        sourceOffset = self.sourceModel().rowCount() - sourceIndex.row()
-        
-        try:
-            row = self.__filteredRows.index(HistoryData(sourceOffset, -1))
-        except ValueError:
-            return QModelIndex()
-        
-        return self.createIndex(row, sourceIndex.column(), sourceOffset)
-    
-    def index(self, row, column, parent=None):
-        """
-        Public method to create an index.
-        
-        @param row row number for the index (integer)
-        @param column column number for the index (integer)
-        @param parent index of the parent item (QModelIndex)
-        @return requested index (QModelIndex)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        self.__load()
-        if row < 0 or row >= self.rowCount(parent) or \
-           column < 0 or column >= self.columnCount(parent):
-            return QModelIndex()
-        
-        return self.createIndex(row, column,
-                                self.__filteredRows[row].tailOffset)
-
-    def parent(self, index):
-        """
-        Public method to get the parent index.
-        
-        @param index index of item to get parent (QModelIndex)
-        @return index of parent (QModelIndex)
-        """
-        return QModelIndex()
-    
-    def __load(self):
-        """
-        Private method to load the model data.
-        """
-        if self.__loaded:
-            return
-        
-        self.__filteredRows = []
-        self.__historyDict = {}
-        self.__scaleTime = QDateTime.currentDateTime()
-        
-        for sourceRow in range(self.sourceModel().rowCount()):
-            idx = self.sourceModel().index(sourceRow, 0)
-            url = idx.data(HistoryModel.UrlStringRole)
-            if url not in self.__historyDict:
-                sourceOffset = self.sourceModel().rowCount() - sourceRow
-                self.__filteredRows.append(
-                    HistoryData(sourceOffset, self.__frequencyScore(idx)))
-                self.__historyDict[url] = sourceOffset
-            else:
-                # the url is known already, so just update the frequency score
-                row = self.__filteredRows.index(
-                    HistoryData(self.__historyDict[url], -1))
-                self.__filteredRows[row].frequency += \
-                    self.__frequencyScore(idx)
-        
-        self.__loaded = True
-    
-    def __sourceRowsInserted(self, parent, start, end):
-        """
-        Private slot to handle the insertion of data in the source model.
-        
-        @param parent reference to the parent index (QModelIndex)
-        @param start start row (integer)
-        @param end end row (integer)
-        """
-        if start == end and start == 0:
-            if not self.__loaded:
-                return
-            
-            idx = self.sourceModel().index(start, 0, parent)
-            url = idx.data(HistoryModel.UrlStringRole)
-            currentFrequency = 0
-            if url in self.__historyDict:
-                row = self.__filteredRows.index(
-                    HistoryData(self.__historyDict[url], -1))
-                currentFrequency = self.__filteredRows[row].frequency
-                self.beginRemoveRows(QModelIndex(), row, row)
-                del self.__filteredRows[row]
-                del self.__historyDict[url]
-                self.endRemoveRows()
-            
-            self.beginInsertRows(QModelIndex(), 0, 0)
-            self.__filteredRows.insert(
-                0, HistoryData(
-                    self.sourceModel().rowCount(),
-                    self.__frequencyScore(idx) + currentFrequency))
-            self.__historyDict[url] = self.sourceModel().rowCount()
-            self.endInsertRows()
-    
-    def __sourceRowsRemoved(self, parent, start, end):
-        """
-        Private slot to handle the removal of data in the source model.
-        
-        @param parent reference to the parent index (QModelIndex)
-        @param start start row (integer)
-        @param end end row (integer)
-        """
-        self.__sourceReset()
-    
-    def removeRows(self, row, count, parent=None):
-        """
-        Public method to remove entries from the model.
-        
-        @param row row of the first entry to remove (integer)
-        @param count number of entries to remove (integer)
-        @param parent index of the parent entry (QModelIndex)
-        @return flag indicating successful removal (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if row < 0 or \
-           count <= 0 or \
-           row + count > self.rowCount(parent) or \
-           parent.isValid():
-            return False
-        
-        lastRow = row + count - 1
-        self.sourceModel().rowsRemoved.disconnect(self.__sourceRowsRemoved)
-        self.beginRemoveRows(parent, row, lastRow)
-        oldCount = self.rowCount()
-        start = self.sourceModel().rowCount() - \
-            self.__filteredRows[row].tailOffset
-        end = self.sourceModel().rowCount() - \
-            self.__filteredRows[lastRow].tailOffset
-        self.sourceModel().removeRows(start, end - start + 1)
-        self.endRemoveRows()
-        self.sourceModel().rowsRemoved.connect(self.__sourceRowsRemoved)
-        self.__loaded = False
-        if oldCount - count != self.rowCount():
-            self.beginResetModel()
-            self.endResetModel()
-        return True
-    
-    def __frequencyScore(self, sourceIndex):
-        """
-        Private method to calculate the frequency score.
-        
-        @param sourceIndex index of the source model (QModelIndex)
-        @return frequency score (integer)
-        """
-        loadTime = \
-            self.sourceModel().data(sourceIndex, HistoryModel.DateTimeRole)
-        days = loadTime.daysTo(self.__scaleTime)
-        
-        if days <= 1:
-            return 100
-        elif days < 8:      # within the last week
-            return 90
-        elif days < 15:     # within the last two weeks
-            return 70
-        elif days < 31:     # within the last month
-            return 50
-        elif days < 91:     # within the last 3 months
-            return 30
-        else:
-            return 10
--- a/eric6/Helpviewer/History/HistoryManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,528 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the history manager.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QFileInfo, QDateTime, QDate, \
-    QTime, QUrl, QTimer, QFile, QIODevice, QByteArray, QDataStream, \
-    QTemporaryFile
-from PyQt5.QtWebKit import QWebHistoryInterface, QWebSettings
-
-from E5Gui import E5MessageBox
-
-from Utilities.AutoSaver import AutoSaver
-import Utilities
-import Preferences
-
-HISTORY_VERSION = 42
-
-
-class HistoryEntry(object):
-    """
-    Class implementing a history entry.
-    """
-    def __init__(self, url=None, dateTime=None, title=None):
-        """
-        Constructor
-        
-        @param url URL of the history entry (string)
-        @param dateTime date and time this entry was created (QDateTime)
-        @param title title string for the history entry (string)
-        """
-        self.url = url and url or ""
-        self.dateTime = dateTime and dateTime or QDateTime()
-        self.title = title and title or ""
-    
-    def __eq__(self, other):
-        """
-        Special method determining equality.
-        
-        @param other reference to the history entry to compare against
-            (HistoryEntry)
-        @return flag indicating equality (boolean)
-        """
-        return other.title == self.title and \
-            other.url == self.url and \
-            other.dateTime == self.dateTime
-    
-    def __lt__(self, other):
-        """
-        Special method determining less relation.
-        
-        Note: History is sorted in reverse order by date and time
-        
-        @param other reference to the history entry to compare against
-            (HistoryEntry)
-        @return flag indicating less (boolean)
-        """
-        return self.dateTime > other.dateTime
-    
-    def userTitle(self):
-        """
-        Public method to get the title of the history entry.
-        
-        @return title of the entry (string)
-        """
-        if not self.title:
-            page = QFileInfo(QUrl(self.url).path()).fileName()
-            if page:
-                return page
-            return self.url
-        return self.title
-
-
-class HistoryManager(QWebHistoryInterface):
-    """
-    Class implementing the history manager.
-    
-    @signal historyCleared() emitted after the history has been cleared
-    @signal historyReset() emitted after the history has been reset
-    @signal entryAdded(HistoryEntry) emitted after a history entry has been
-        added
-    @signal entryRemoved(HistoryEntry) emitted after a history entry has been
-        removed
-    @signal entryUpdated(int) emitted after a history entry has been updated
-    @signal historySaved() emitted after the history was saved
-    """
-    historyCleared = pyqtSignal()
-    historyReset = pyqtSignal()
-    entryAdded = pyqtSignal(HistoryEntry)
-    entryRemoved = pyqtSignal(HistoryEntry)
-    entryUpdated = pyqtSignal(int)
-    historySaved = pyqtSignal()
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(HistoryManager, self).__init__(parent)
-        
-        self.__saveTimer = AutoSaver(self, self.save)
-        self.__daysToExpire = Preferences.getHelp("HistoryLimit")
-        self.__history = []
-        self.__lastSavedUrl = ""
-        
-        self.__expiredTimer = QTimer(self)
-        self.__expiredTimer.setSingleShot(True)
-        self.__expiredTimer.timeout.connect(self.__checkForExpired)
-        
-        self.__frequencyTimer = QTimer(self)
-        self.__frequencyTimer.setSingleShot(True)
-        self.__frequencyTimer.timeout.connect(self.__refreshFrequencies)
-        
-        self.entryAdded.connect(self.__saveTimer.changeOccurred)
-        self.entryRemoved.connect(self.__saveTimer.changeOccurred)
-        
-        self.__load()
-        
-        from .HistoryModel import HistoryModel
-        from .HistoryFilterModel import HistoryFilterModel
-        from .HistoryTreeModel import HistoryTreeModel
-        
-        self.__historyModel = HistoryModel(self, self)
-        self.__historyFilterModel = \
-            HistoryFilterModel(self.__historyModel, self)
-        self.__historyTreeModel = \
-            HistoryTreeModel(self.__historyFilterModel, self)
-        
-        super(HistoryManager, self).setDefaultInterface(self)
-        self.__startFrequencyTimer()
-    
-    def close(self):
-        """
-        Public method to close the history manager.
-        """
-        # remove history items on application exit
-        if self.__daysToExpire == -2:
-            self.clear()
-        self.__saveTimer.saveIfNeccessary()
-    
-    def history(self):
-        """
-        Public method to return the history.
-        
-        @return reference to the list of history entries (list of HistoryEntry)
-        """
-        return self.__history[:]
-    
-    def setHistory(self, history, loadedAndSorted=False):
-        """
-        Public method to set a new history.
-        
-        @param history reference to the list of history entries to be set
-            (list of HistoryEntry)
-        @param loadedAndSorted flag indicating that the list is sorted
-            (boolean)
-        """
-        self.__history = history[:]
-        if not loadedAndSorted:
-            self.__history.sort()
-        
-        self.__checkForExpired()
-        
-        if loadedAndSorted:
-            try:
-                self.__lastSavedUrl = self.__history[0].url
-            except IndexError:
-                self.__lastSavedUrl = ""
-        else:
-            self.__lastSavedUrl = ""
-            self.__saveTimer.changeOccurred()
-        self.historyReset.emit()
-    
-    def historyContains(self, url):
-        """
-        Public method to check the history for an entry.
-        
-        @param url URL to check for (string)
-        @return flag indicating success (boolean)
-        """
-        return self.__historyFilterModel.historyContains(url)
-    
-    def _addHistoryEntry(self, itm):
-        """
-        Protected method to add a history item.
-        
-        @param itm reference to the history item to add (HistoryEntry)
-        """
-        globalSettings = QWebSettings.globalSettings()
-        if globalSettings.testAttribute(QWebSettings.PrivateBrowsingEnabled):
-            return
-        
-        self.__history.insert(0, itm)
-        self.entryAdded.emit(itm)
-        if len(self.__history) == 1:
-            self.__checkForExpired()
-    
-    def _removeHistoryEntry(self, itm):
-        """
-        Protected method to remove a history item.
-        
-        @param itm reference to the history item to remove (HistoryEntry)
-        """
-        self.__lastSavedUrl = ""
-        self.__history.remove(itm)
-        self.entryRemoved.emit(itm)
-    
-    def addHistoryEntry(self, url):
-        """
-        Public method to add a history entry.
-        
-        @param url URL to be added (string)
-        """
-        cleanurl = QUrl(url)
-        if cleanurl.scheme() not in ["eric", "about"]:
-            if cleanurl.password():
-                # don't save the password in the history
-                cleanurl.setPassword("")
-            if cleanurl.host():
-                cleanurl.setHost(cleanurl.host().lower())
-            itm = HistoryEntry(cleanurl.toString(),
-                               QDateTime.currentDateTime())
-            self._addHistoryEntry(itm)
-    
-    def updateHistoryEntry(self, url, title):
-        """
-        Public method to update a history entry.
-        
-        @param url URL of the entry to update (string)
-        @param title title of the entry to update (string)
-        """
-        cleanurl = QUrl(url)
-        if cleanurl.scheme() not in ["eric", "about"]:
-            for index in range(len(self.__history)):
-                if url == self.__history[index].url:
-                    self.__history[index].title = title
-                    self.__saveTimer.changeOccurred()
-                    if not self.__lastSavedUrl:
-                        self.__lastSavedUrl = self.__history[index].url
-                    self.entryUpdated.emit(index)
-                    break
-    
-    def removeHistoryEntry(self, url, title=""):
-        """
-        Public method to remove a history entry.
-        
-        @param url URL of the entry to remove (QUrl)
-        @param title title of the entry to remove (string)
-        """
-        for index in range(len(self.__history)):
-            if url == QUrl(self.__history[index].url) and \
-               (not title or title == self.__history[index].title):
-                self._removeHistoryEntry(self.__history[index])
-                break
-    
-    def historyModel(self):
-        """
-        Public method to get a reference to the history model.
-        
-        @return reference to the history model (HistoryModel)
-        """
-        return self.__historyModel
-    
-    def historyFilterModel(self):
-        """
-        Public method to get a reference to the history filter model.
-        
-        @return reference to the history filter model (HistoryFilterModel)
-        """
-        return self.__historyFilterModel
-    
-    def historyTreeModel(self):
-        """
-        Public method to get a reference to the history tree model.
-        
-        @return reference to the history tree model (HistoryTreeModel)
-        """
-        return self.__historyTreeModel
-    
-    def __checkForExpired(self):
-        """
-        Private slot to check entries for expiration.
-        """
-        if self.__daysToExpire < 0 or len(self.__history) == 0:
-            return
-        
-        now = QDateTime.currentDateTime()
-        nextTimeout = 0
-        
-        while self.__history:
-            checkForExpired = QDateTime(self.__history[-1].dateTime)
-            checkForExpired.setDate(
-                checkForExpired.date().addDays(self.__daysToExpire))
-            if now.daysTo(checkForExpired) > 7:
-                nextTimeout = 7 * 86400
-            else:
-                nextTimeout = now.secsTo(checkForExpired)
-            if nextTimeout > 0:
-                break
-            
-            itm = self.__history.pop(-1)
-            self.__lastSavedUrl = ""
-            self.entryRemoved.emit(itm)
-        self.__saveTimer.saveIfNeccessary()
-        
-        if nextTimeout > 0:
-            self.__expiredTimer.start(nextTimeout * 1000)
-    
-    def daysToExpire(self):
-        """
-        Public method to get the days for entry expiration.
-        
-        @return days for entry expiration (integer)
-        """
-        return self.__daysToExpire
-    
-    def setDaysToExpire(self, limit):
-        """
-        Public method to set the days for entry expiration.
-        
-        @param limit days for entry expiration (integer)
-        """
-        if self.__daysToExpire == limit:
-            return
-        
-        self.__daysToExpire = limit
-        self.__checkForExpired()
-        self.__saveTimer.changeOccurred()
-    
-    def preferencesChanged(self):
-        """
-        Public method to indicate a change of preferences.
-        """
-        self.setDaysToExpire(Preferences.getHelp("HistoryLimit"))
-    
-    @pyqtSlot()
-    def clear(self, period=0):
-        """
-        Public slot to clear the complete history.
-        
-        @param period history period in milliseconds to be cleared (integer)
-        """
-        if period == 0:
-            self.__history = []
-            self.historyReset.emit()
-        else:
-            breakMS = QDateTime.currentMSecsSinceEpoch() - period
-            while self.__history and \
-                (QDateTime(self.__history[0].dateTime).toMSecsSinceEpoch() >
-                 breakMS):
-                itm = self.__history.pop(0)
-                self.entryRemoved.emit(itm)
-        self.__lastSavedUrl = ""
-        self.__saveTimer.changeOccurred()
-        self.__saveTimer.saveIfNeccessary()
-        self.historyCleared.emit()
-    
-    def getFileName(self):
-        """
-        Public method to get the file name of the history file.
-        
-        @return name of the history file (string)
-        """
-        return os.path.join(Utilities.getConfigDir(), "browser", "history")
-    
-    def reload(self):
-        """
-        Public method to reload the history.
-        """
-        self.__load()
-    
-    def __load(self):
-        """
-        Private method to load the saved history entries from disk.
-        """
-        historyFile = QFile(self.getFileName())
-        if not historyFile.exists():
-            return
-        if not historyFile.open(QIODevice.ReadOnly):
-            E5MessageBox.warning(
-                None,
-                self.tr("Loading History"),
-                self.tr(
-                    """<p>Unable to open history file <b>{0}</b>.<br/>"""
-                    """Reason: {1}</p>""")
-                .format(historyFile.fileName, historyFile.errorString()))
-            return
-        
-        history = []
-        
-        # double check, that the history file is sorted as it is read
-        needToSort = False
-        lastInsertedItem = HistoryEntry()
-        data = QByteArray(historyFile.readAll())
-        stream = QDataStream(data, QIODevice.ReadOnly)
-        stream.setVersion(QDataStream.Qt_4_6)
-        while not stream.atEnd():
-            ver = stream.readUInt32()
-            if ver != HISTORY_VERSION:
-                continue
-            itm = HistoryEntry()
-            itm.url = Utilities.readStringFromStream(stream)
-            stream >> itm.dateTime
-            itm.title = Utilities.readStringFromStream(stream)
-            
-            if not itm.dateTime.isValid():
-                continue
-            
-            if itm == lastInsertedItem:
-                if not lastInsertedItem.title and len(history) > 0:
-                    history[0].title = itm.title
-                continue
-            
-            if not needToSort and history and lastInsertedItem < itm:
-                needToSort = True
-            
-            history.insert(0, itm)
-            lastInsertedItem = itm
-        historyFile.close()
-        
-        if needToSort:
-            history.sort()
-        
-        self.setHistory(history, True)
-        
-        # if the history had to be sorted, rewrite the history sorted
-        if needToSort:
-            self.__lastSavedUrl = ""
-            self.__saveTimer.changeOccurred()
-    
-    def save(self):
-        """
-        Public slot to save the history entries to disk.
-        """
-        historyFile = QFile(self.getFileName())
-        if not historyFile.exists():
-            self.__lastSavedUrl = ""
-        
-        saveAll = self.__lastSavedUrl == ""
-        first = len(self.__history) - 1
-        if not saveAll:
-            # find the first one to save
-            for index in range(len(self.__history)):
-                if self.__history[index].url == self.__lastSavedUrl:
-                    first = index - 1
-                    break
-        if first == len(self.__history) - 1:
-            saveAll = True
-        
-        if saveAll:
-            # use a temporary file when saving everything
-            f = QTemporaryFile()
-            f.setAutoRemove(False)
-            opened = f.open()
-        else:
-            f = historyFile
-            opened = f.open(QIODevice.Append)
-        
-        if not opened:
-            E5MessageBox.warning(
-                None,
-                self.tr("Saving History"),
-                self.tr(
-                    """<p>Unable to open history file <b>{0}</b>.<br/>"""
-                    """Reason: {1}</p>""")
-                .format(f.fileName(), f.errorString()))
-            return
-        
-        for index in range(first, -1, -1):
-            data = QByteArray()
-            stream = QDataStream(data, QIODevice.WriteOnly)
-            stream.setVersion(QDataStream.Qt_4_6)
-            itm = self.__history[index]
-            stream.writeUInt32(HISTORY_VERSION)
-            stream.writeString(itm.url.encode("utf-8"))
-            stream << itm.dateTime
-            stream.writeString(itm.title.encode('utf-8'))
-            f.write(data)
-        
-        f.close()
-        if saveAll:
-            if historyFile.exists() and not historyFile.remove():
-                E5MessageBox.warning(
-                    None,
-                    self.tr("Saving History"),
-                    self.tr(
-                        """<p>Error removing old history file <b>{0}</b>."""
-                        """<br/>Reason: {1}</p>""")
-                    .format(historyFile.fileName(),
-                            historyFile.errorString()))
-            if not f.copy(historyFile.fileName()):
-                E5MessageBox.warning(
-                    None,
-                    self.tr("Saving History"),
-                    self.tr(
-                        """<p>Error moving new history file over old one """
-                        """(<b>{0}</b>).<br/>Reason: {1}</p>""")
-                    .format(historyFile.fileName(), f.errorString()))
-            f.remove()  # get rid of the temporary file
-        self.historySaved.emit()
-        try:
-            self.__lastSavedUrl = self.__history[0].url
-        except IndexError:
-            self.__lastSavedUrl = ""
-    
-    def __refreshFrequencies(self):
-        """
-        Private slot to recalculate the refresh frequencies.
-        """
-        self.__historyFilterModel.recalculateFrequencies()
-        self.__startFrequencyTimer()
-    
-    def __startFrequencyTimer(self):
-        """
-        Private method to start the timer to recalculate the frequencies.
-        """
-        tomorrow = QDateTime(QDate.currentDate().addDays(1), QTime(3, 0))
-        self.__frequencyTimer.start(
-            QDateTime.currentDateTime().secsTo(tomorrow) * 1000)
--- a/eric6/Helpviewer/History/HistoryMenu.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,485 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the history menu.
-"""
-
-from __future__ import unicode_literals
-
-import sys
-
-from PyQt5.QtCore import pyqtSignal, Qt, QMimeData, QUrl, QModelIndex, \
-    QSortFilterProxyModel, QAbstractProxyModel
-from PyQt5.QtWidgets import QMenu
-
-from E5Gui.E5ModelMenu import E5ModelMenu
-from E5Gui import E5MessageBox
-
-from .HistoryModel import HistoryModel
-
-import UI.PixmapCache
-
-
-class HistoryMenuModel(QAbstractProxyModel):
-    """
-    Class implementing a model for the history menu.
-    
-    It maps the first bunch of items of the source model to the root.
-    """
-    MOVEDROWS = 15
-    
-    def __init__(self, sourceModel, parent=None):
-        """
-        Constructor
-        
-        @param sourceModel reference to the source model (QAbstractItemModel)
-        @param parent reference to the parent object (QObject)
-        """
-        super(HistoryMenuModel, self).__init__(parent)
-        
-        self.__treeModel = sourceModel
-        
-        self.setSourceModel(sourceModel)
-    
-    def bumpedRows(self):
-        """
-        Public method to determine the number of rows moved to the root.
-        
-        @return number of rows moved to the root (integer)
-        """
-        first = self.__treeModel.index(0, 0)
-        if not first.isValid():
-            return 0
-        return min(self.__treeModel.rowCount(first), self.MOVEDROWS)
-    
-    def columnCount(self, parent=None):
-        """
-        Public method to get the number of columns.
-        
-        @param parent index of parent (QModelIndex)
-        @return number of columns (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        return self.__treeModel.columnCount(self.mapToSource(parent))
-    
-    def rowCount(self, parent=None):
-        """
-        Public method to determine the number of rows.
-        
-        @param parent index of parent (QModelIndex)
-        @return number of rows (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.column() > 0:
-            return 0
-        
-        if not parent.isValid():
-            folders = self.sourceModel().rowCount()
-            bumpedItems = self.bumpedRows()
-            if bumpedItems <= self.MOVEDROWS and \
-                    bumpedItems == self.sourceModel().rowCount(
-                        self.sourceModel().index(0, 0)):
-                folders -= 1
-            return bumpedItems + folders
-        
-        if parent.internalId() == sys.maxsize:
-            if parent.row() < self.bumpedRows():
-                return 0
-        
-        idx = self.mapToSource(parent)
-        defaultCount = self.sourceModel().rowCount(idx)
-        if idx == self.sourceModel().index(0, 0):
-            return defaultCount - self.bumpedRows()
-        
-        return defaultCount
-    
-    def mapFromSource(self, sourceIndex):
-        """
-        Public method to map an index to the proxy model index.
-        
-        @param sourceIndex reference to a source model index (QModelIndex)
-        @return proxy model index (QModelIndex)
-        """
-        sourceRow = self.__treeModel.mapToSource(sourceIndex).row()
-        return self.createIndex(
-            sourceIndex.row(), sourceIndex.column(), sourceRow)
-    
-    def mapToSource(self, proxyIndex):
-        """
-        Public method to map an index to the source model index.
-        
-        @param proxyIndex reference to a proxy model index (QModelIndex)
-        @return source model index (QModelIndex)
-        """
-        if not proxyIndex.isValid():
-            return QModelIndex()
-        
-        if proxyIndex.internalId() == sys.maxsize:
-            bumpedItems = self.bumpedRows()
-            if proxyIndex.row() < bumpedItems:
-                return self.__treeModel.index(
-                    proxyIndex.row(), proxyIndex.column(),
-                    self.__treeModel.index(0, 0))
-            if bumpedItems <= self.MOVEDROWS and \
-                    bumpedItems == self.sourceModel().rowCount(
-                        self.__treeModel.index(0, 0)):
-                bumpedItems -= 1
-            return self.__treeModel.index(proxyIndex.row() - bumpedItems,
-                                          proxyIndex.column())
-        
-        historyIndex = self.__treeModel.sourceModel()\
-            .index(proxyIndex.internalId(), proxyIndex.column())
-        treeIndex = self.__treeModel.mapFromSource(historyIndex)
-        return treeIndex
-    
-    def index(self, row, column, parent=None):
-        """
-        Public method to create an index.
-        
-        @param row row number for the index (integer)
-        @param column column number for the index (integer)
-        @param parent index of the parent item (QModelIndex)
-        @return requested index (QModelIndex)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if row < 0 or \
-           column < 0 or \
-           column >= self.columnCount(parent) or \
-           parent.column() > 0:
-            return QModelIndex()
-        
-        if not parent.isValid():
-            return self.createIndex(row, column, sys.maxsize)
-        
-        treeIndexParent = self.mapToSource(parent)
-        
-        bumpedItems = 0
-        if treeIndexParent == self.sourceModel().index(0, 0):
-            bumpedItems = self.bumpedRows()
-        treeIndex = self.__treeModel.index(
-            row + bumpedItems, column, treeIndexParent)
-        historyIndex = self.__treeModel.mapToSource(treeIndex)
-        historyRow = historyIndex.row()
-        if historyRow == -1:
-            historyRow = treeIndex.row()
-        return self.createIndex(row, column, historyRow)
-
-    def parent(self, index):
-        """
-        Public method to get the parent index.
-        
-        @param index index of item to get parent (QModelIndex)
-        @return index of parent (QModelIndex)
-        """
-        offset = index.internalId()
-        if offset == sys.maxsize or not index.isValid():
-            return QModelIndex()
-        
-        historyIndex = self.__treeModel.sourceModel().index(
-            index.internalId(), 0)
-        treeIndex = self.__treeModel.mapFromSource(historyIndex)
-        treeIndexParent = treeIndex.parent()
-        
-        sourceRow = self.sourceModel().mapToSource(treeIndexParent).row()
-        bumpedItems = self.bumpedRows()
-        if bumpedItems <= self.MOVEDROWS and \
-                bumpedItems == self.sourceModel().rowCount(
-                    self.sourceModel().index(0, 0)):
-            bumpedItems -= 1
-        
-        return self.createIndex(bumpedItems + treeIndexParent.row(),
-                                treeIndexParent.column(),
-                                sourceRow)
-    
-    def mimeData(self, indexes):
-        """
-        Public method to return the mime data.
-        
-        @param indexes list of indexes (QModelIndexList)
-        @return mime data (QMimeData)
-        """
-        urls = []
-        for index in indexes:
-            url = index.data(HistoryModel.UrlRole)
-            urls.append(url)
-        
-        mdata = QMimeData()
-        mdata.setUrls(urls)
-        return mdata
-
-
-class HistoryMostVisitedMenuModel(QSortFilterProxyModel):
-    """
-    Class implementing a model to show the most visited history entries.
-    """
-    def __init__(self, sourceModel, parent=None):
-        """
-        Constructor
-        
-        @param sourceModel reference to the source model (QAbstractItemModel)
-        @param parent reference to the parent object (QObject)
-        """
-        super(HistoryMostVisitedMenuModel, self).__init__(parent)
-        
-        self.setDynamicSortFilter(True)
-        self.setSourceModel(sourceModel)
-    
-    def lessThan(self, left, right):
-        """
-        Public method used to sort the displayed items.
-        
-        @param left index of left item (QModelIndex)
-        @param right index of right item (QModelIndex)
-        @return true, if left is less than right (boolean)
-        """
-        from .HistoryFilterModel import HistoryFilterModel
-        frequency_L = \
-            self.sourceModel().data(left, HistoryFilterModel.FrequencyRole)
-        dateTime_L = \
-            self.sourceModel().data(left, HistoryModel.DateTimeRole)
-        frequency_R = \
-            self.sourceModel().data(right, HistoryFilterModel.FrequencyRole)
-        dateTime_R = \
-            self.sourceModel().data(right, HistoryModel.DateTimeRole)
-        
-        # Sort results in descending frequency-derived score. If frequencies
-        # are equal, sort on most recently viewed
-        if frequency_R == frequency_L:
-            return dateTime_R < dateTime_L
-        
-        return frequency_R < frequency_L
-
-
-class HistoryMenu(E5ModelMenu):
-    """
-    Class implementing the history menu.
-    
-    @signal openUrl(QUrl, str) emitted to open a URL in the current tab
-    @signal newUrl(QUrl, str) emitted to open a URL in a new tab
-    """
-    openUrl = pyqtSignal(QUrl, str)
-    newUrl = pyqtSignal(QUrl, str)
-    
-    def __init__(self, parent=None, tabWidget=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        @param tabWidget reference to the tab widget managing the browser
-            tabs (HelpTabWidget
-        """
-        E5ModelMenu.__init__(self, parent)
-        
-        self.__tabWidget = tabWidget
-        
-        self.__historyManager = None
-        self.__historyMenuModel = None
-        self.__initialActions = []
-        self.__mostVisitedMenu = None
-        
-        self.__closedTabsMenu = QMenu(self.tr("Closed Tabs"))
-        self.__closedTabsMenu.aboutToShow.connect(
-            self.__aboutToShowClosedTabsMenu)
-        self.__tabWidget.closedTabsManager().closedTabAvailable.connect(
-            self.__closedTabAvailable)
-        
-        self.setMaxRows(7)
-        
-        self.activated.connect(self.__activated)
-        self.setStatusBarTextRole(HistoryModel.UrlStringRole)
-    
-    def __activated(self, idx):
-        """
-        Private slot handling the activated signal.
-        
-        @param idx index of the activated item (QModelIndex)
-        """
-        if self._keyboardModifiers & Qt.ControlModifier:
-            self.newUrl.emit(
-                idx.data(HistoryModel.UrlRole),
-                idx.data(HistoryModel.TitleRole))
-        else:
-            self.openUrl.emit(
-                idx.data(HistoryModel.UrlRole),
-                idx.data(HistoryModel.TitleRole))
-    
-    def prePopulated(self):
-        """
-        Public method to add any actions before the tree.
-       
-        @return flag indicating if any actions were added (boolean)
-        """
-        if self.__historyManager is None:
-            import Helpviewer.HelpWindow
-            self.__historyManager = \
-                Helpviewer.HelpWindow.HelpWindow.historyManager()
-            self.__historyMenuModel = HistoryMenuModel(
-                self.__historyManager.historyTreeModel(), self)
-            self.setModel(self.__historyMenuModel)
-        
-        # initial actions
-        for act in self.__initialActions:
-            self.addAction(act)
-        if len(self.__initialActions) != 0:
-            self.addSeparator()
-        self.setFirstSeparator(self.__historyMenuModel.bumpedRows())
-        
-        return False
-    
-    def postPopulated(self):
-        """
-        Public method to add any actions after the tree.
-        """
-        if len(self.__historyManager.history()) > 0:
-            self.addSeparator()
-        
-        if self.__mostVisitedMenu is None:
-            self.__mostVisitedMenu = HistoryMostVisitedMenu(10, self)
-            self.__mostVisitedMenu.setTitle(self.tr("Most Visited"))
-            self.__mostVisitedMenu.openUrl.connect(self.openUrl)
-            self.__mostVisitedMenu.newUrl.connect(self.newUrl)
-        self.addMenu(self.__mostVisitedMenu)
-        act = self.addMenu(self.__closedTabsMenu)
-        act.setIcon(UI.PixmapCache.getIcon("trash.png"))
-        act.setEnabled(self.__tabWidget.canRestoreClosedTab())
-        self.addSeparator()
-        
-        act = self.addAction(UI.PixmapCache.getIcon("history.png"),
-                             self.tr("Show All History..."))
-        act.triggered.connect(self.__showHistoryDialog)
-        act = self.addAction(UI.PixmapCache.getIcon("historyClear.png"),
-                             self.tr("Clear History..."))
-        act.triggered.connect(self.__clearHistoryDialog)
-    
-    def setInitialActions(self, actions):
-        """
-        Public method to set the list of actions that should appear first in
-        the menu.
-        
-        @param actions list of initial actions (list of QAction)
-        """
-        self.__initialActions = actions[:]
-        for act in self.__initialActions:
-            self.addAction(act)
-    
-    def __showHistoryDialog(self):
-        """
-        Private slot to show the history dialog.
-        """
-        from .HistoryDialog import HistoryDialog
-        dlg = HistoryDialog(self)
-        dlg.newUrl.connect(self.newUrl)
-        dlg.openUrl.connect(self.openUrl)
-        dlg.show()
-    
-    def __clearHistoryDialog(self):
-        """
-        Private slot to clear the history.
-        """
-        if self.__historyManager is not None and E5MessageBox.yesNo(
-                self,
-                self.tr("Clear History"),
-                self.tr("""Do you want to clear the history?""")):
-            self.__historyManager.clear()
-            self.__tabWidget.clearClosedTabsList()
-    
-    def __aboutToShowClosedTabsMenu(self):
-        """
-        Private slot to populate the closed tabs menu.
-        """
-        fm = self.__closedTabsMenu.fontMetrics()
-        maxWidth = fm.width('m') * 40
-        
-        import Helpviewer.HelpWindow
-        self.__closedTabsMenu.clear()
-        index = 0
-        for tab in self.__tabWidget.closedTabsManager().allClosedTabs():
-            title = fm.elidedText(tab.title, Qt.ElideRight, maxWidth)
-            act = self.__closedTabsMenu.addAction(
-                Helpviewer.HelpWindow.HelpWindow.icon(tab.url), title)
-            act.setData(index)
-            act.triggered.connect(
-                lambda: self.__tabWidget.restoreClosedTab(act))
-            index += 1
-        self.__closedTabsMenu.addSeparator()
-        self.__closedTabsMenu.addAction(
-            self.tr("Restore All Closed Tabs"),
-            self.__tabWidget.restoreAllClosedTabs)
-        self.__closedTabsMenu.addAction(
-            self.tr("Clear List"),
-            self.__tabWidget.clearClosedTabsList)
-    
-    def __closedTabAvailable(self, avail):
-        """
-        Private slot to handle changes of the availability of closed tabs.
-        
-        @param avail flag indicating the availability of closed tabs (boolean)
-        """
-        self.__closedTabsMenu.setEnabled(avail)
-
-
-class HistoryMostVisitedMenu(E5ModelMenu):
-    """
-    Class implementing the most visited history menu.
-    
-    @signal openUrl(QUrl, str) emitted to open a URL in the current tab
-    @signal newUrl(QUrl, str) emitted to open a URL in a new tab
-    """
-    openUrl = pyqtSignal(QUrl, str)
-    newUrl = pyqtSignal(QUrl, str)
-    
-    def __init__(self, count, parent=None):
-        """
-        Constructor
-        
-        @param count maximum number of entries to be shown (integer)
-        @param parent reference to the parent widget (QWidget)
-        """
-        E5ModelMenu.__init__(self, parent)
-        
-        self.__historyMenuModel = None
-        
-        self.setMaxRows(count + 1)
-        
-        self.activated.connect(self.__activated)
-        self.setStatusBarTextRole(HistoryModel.UrlStringRole)
-    
-    def __activated(self, idx):
-        """
-        Private slot handling the activated signal.
-        
-        @param idx index of the activated item (QModelIndex)
-        """
-        if self._keyboardModifiers & Qt.ControlModifier:
-            self.newUrl.emit(
-                idx.data(HistoryModel.UrlRole),
-                idx.data(HistoryModel.TitleRole))
-        else:
-            self.openUrl.emit(
-                idx.data(HistoryModel.UrlRole),
-                idx.data(HistoryModel.TitleRole))
-    
-    def prePopulated(self):
-        """
-        Public method to add any actions before the tree.
-       
-        @return flag indicating if any actions were added (boolean)
-        """
-        if self.__historyMenuModel is None:
-            import Helpviewer.HelpWindow
-            historyManager = Helpviewer.HelpWindow.HelpWindow.historyManager()
-            self.__historyMenuModel = HistoryMostVisitedMenuModel(
-                historyManager.historyFilterModel(), self)
-            self.setModel(self.__historyMenuModel)
-        self.__historyMenuModel.sort(0)
-        
-        return False
--- a/eric6/Helpviewer/History/HistoryModel.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the history model.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt, QAbstractTableModel, QModelIndex, QUrl
-
-import Helpviewer.HelpWindow
-
-
-class HistoryModel(QAbstractTableModel):
-    """
-    Class implementing the history model.
-    """
-    DateRole = Qt.UserRole + 1
-    DateTimeRole = Qt.UserRole + 2
-    UrlRole = Qt.UserRole + 3
-    UrlStringRole = Qt.UserRole + 4
-    TitleRole = Qt.UserRole + 5
-    MaxRole = TitleRole
-    
-    def __init__(self, historyManager, parent=None):
-        """
-        Constructor
-        
-        @param historyManager reference to the history manager object
-            (HistoryManager)
-        @param parent reference to the parent object (QObject)
-        """
-        super(HistoryModel, self).__init__(parent)
-        
-        self.__historyManager = historyManager
-        
-        self.__headers = [
-            self.tr("Title"),
-            self.tr("Address"),
-        ]
-        
-        self.__historyManager.historyReset.connect(self.historyReset)
-        self.__historyManager.entryRemoved.connect(self.historyReset)
-        self.__historyManager.entryAdded.connect(self.entryAdded)
-        self.__historyManager.entryUpdated.connect(self.entryUpdated)
-    
-    def historyReset(self):
-        """
-        Public slot to reset the model.
-        """
-        self.beginResetModel()
-        self.endResetModel()
-    
-    def entryAdded(self):
-        """
-        Public slot to handle the addition of a history entry.
-        """
-        self.beginInsertRows(QModelIndex(), 0, 0)
-        self.endInsertRows()
-    
-    def entryUpdated(self, row):
-        """
-        Public slot to handle the update of a history entry.
-        
-        @param row row number of the updated entry (integer)
-        """
-        idx = self.index(row, 0)
-        self.dataChanged.emit(idx, idx)
-    
-    def headerData(self, section, orientation, role=Qt.DisplayRole):
-        """
-        Public method to get the header data.
-        
-        @param section section number (integer)
-        @param orientation header orientation (Qt.Orientation)
-        @param role data role (integer)
-        @return header data
-        """
-        if orientation == Qt.Horizontal and role == Qt.DisplayRole:
-            try:
-                return self.__headers[section]
-            except IndexError:
-                pass
-        return QAbstractTableModel.headerData(self, section, orientation, role)
-    
-    def data(self, index, role=Qt.DisplayRole):
-        """
-        Public method to get data from the model.
-        
-        @param index index of history entry to get data for (QModelIndex)
-        @param role data role (integer)
-        @return history entry data
-        """
-        lst = self.__historyManager.history()
-        if index.row() < 0 or index.row() > len(lst):
-            return None
-        
-        itm = lst[index.row()]
-        if role == self.DateTimeRole:
-            return itm.dateTime
-        elif role == self.DateRole:
-            return itm.dateTime.date()
-        elif role == self.UrlRole:
-            return QUrl(itm.url)
-        elif role == self.UrlStringRole:
-            return itm.url
-        elif role == self.TitleRole:
-            return itm.userTitle()
-        elif role in [Qt.DisplayRole, Qt.EditRole]:
-            if index.column() == 0:
-                return itm.userTitle()
-            elif index.column() == 1:
-                return itm.url
-        elif role == Qt.DecorationRole:
-            if index.column() == 0:
-                return Helpviewer.HelpWindow.HelpWindow.icon(QUrl(itm.url))
-        
-        return None
-    
-    def columnCount(self, parent=None):
-        """
-        Public method to get the number of columns.
-        
-        @param parent index of parent (QModelIndex)
-        @return number of columns (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return 0
-        else:
-            return len(self.__headers)
-    
-    def rowCount(self, parent=None):
-        """
-        Public method to determine the number of rows.
-        
-        @param parent index of parent (QModelIndex)
-        @return number of rows (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return 0
-        else:
-            return len(self.__historyManager.history())
-    
-    def removeRows(self, row, count, parent=None):
-        """
-        Public method to remove history entries from the model.
-        
-        @param row row of the first history entry to remove (integer)
-        @param count number of history entries to remove (integer)
-        @param parent index of the parent entry (QModelIndex)
-        @return flag indicating successful removal (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return False
-        
-        lastRow = row + count - 1
-        self.beginRemoveRows(parent, row, lastRow)
-        lst = self.__historyManager.history()[:]
-        for index in range(lastRow, row - 1, -1):
-            del lst[index]
-        self.__historyManager.historyReset.disconnect(self.historyReset)
-        self.__historyManager.setHistory(lst)
-        self.__historyManager.historyReset.connect(self.historyReset)
-        self.endRemoveRows()
-        return True
--- a/eric6/Helpviewer/History/HistoryTreeModel.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,392 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the history tree model.
-"""
-
-from __future__ import unicode_literals
-
-import bisect
-
-from PyQt5.QtCore import Qt, QModelIndex, QDate, QAbstractProxyModel
-
-from .HistoryModel import HistoryModel
-
-import UI.PixmapCache
-
-
-class HistoryTreeModel(QAbstractProxyModel):
-    """
-    Class implementing the history tree model.
-    """
-    def __init__(self, sourceModel, parent=None):
-        """
-        Constructor
-        
-        @param sourceModel reference to the source model (QAbstractItemModel)
-        @param parent reference to the parent object (QObject)
-        """
-        super(HistoryTreeModel, self).__init__(parent)
-        
-        self.__sourceRowCache = []
-        self.__removingDown = False
-        
-        self.setSourceModel(sourceModel)
-    
-    def headerData(self, section, orientation, role=Qt.DisplayRole):
-        """
-        Public method to get the header data.
-        
-        @param section section number (integer)
-        @param orientation header orientation (Qt.Orientation)
-        @param role data role (integer)
-        @return header data
-        """
-        return self.sourceModel().headerData(section, orientation, role)
-    
-    def data(self, index, role=Qt.DisplayRole):
-        """
-        Public method to get data from the model.
-        
-        @param index index of history entry to get data for (QModelIndex)
-        @param role data role (integer)
-        @return history entry data
-        """
-        if role in [Qt.DisplayRole, Qt.EditRole]:
-            start = index.internalId()
-            if start == 0:
-                offset = self.__sourceDateRow(index.row())
-                if index.column() == 0:
-                    idx = self.sourceModel().index(offset, 0)
-                    date = idx.data(HistoryModel.DateRole)
-                    if date == QDate.currentDate():
-                        return self.tr("Earlier Today")
-                    return date.toString("yyyy-MM-dd")
-                if index.column() == 1:
-                    return self.tr(
-                        "%n item(s)", "",
-                        self.rowCount(index.sibling(index.row(), 0)))
-        
-        elif role == Qt.DecorationRole:
-            if index.column() == 0 and not index.parent().isValid():
-                return UI.PixmapCache.getIcon("history.png")
-        
-        elif role == HistoryModel.DateRole:
-            if index.column() == 0 and index.internalId() == 0:
-                offset = self.__sourceDateRow(index.row())
-                idx = self.sourceModel().index(offset, 0)
-                return idx.data(HistoryModel.DateRole)
-        
-        return QAbstractProxyModel.data(self, index, role)
-    
-    def columnCount(self, parent=None):
-        """
-        Public method to get the number of columns.
-        
-        @param parent index of parent (QModelIndex)
-        @return number of columns (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        return self.sourceModel().columnCount(self.mapToSource(parent))
-    
-    def rowCount(self, parent=None):
-        """
-        Public method to determine the number of rows.
-        
-        @param parent index of parent (QModelIndex)
-        @return number of rows (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.internalId() != 0 or \
-           parent.column() > 0 or \
-           self.sourceModel() is None:
-            return 0
-        
-        # row count OF dates
-        if not parent.isValid():
-            if self.__sourceRowCache:
-                return len(self.__sourceRowCache)
-            
-            currentDate = QDate()
-            rows = 0
-            totalRows = self.sourceModel().rowCount()
-            
-            for row in range(totalRows):
-                rowDate = self.sourceModel().index(row, 0)\
-                    .data(HistoryModel.DateRole)
-                if rowDate != currentDate:
-                    self.__sourceRowCache.append(row)
-                    currentDate = rowDate
-                    rows += 1
-            return rows
-        
-        # row count FOR a date
-        start = self.__sourceDateRow(parent.row())
-        end = self.__sourceDateRow(parent.row() + 1)
-        return end - start
-    
-    def __sourceDateRow(self, row):
-        """
-        Private method to translate the top level date row into the offset
-        where that date starts.
-        
-        @param row row number of the date (integer)
-        @return offset where that date starts (integer)
-        """
-        if row <= 0:
-            return 0
-        
-        if len(self.__sourceRowCache) == 0:
-            self.rowCount(QModelIndex())
-        
-        if row >= len(self.__sourceRowCache):
-            if self.sourceModel() is None:
-                return 0
-            return self.sourceModel().rowCount()
-        
-        return self.__sourceRowCache[row]
-    
-    def mapToSource(self, proxyIndex):
-        """
-        Public method to map an index to the source model index.
-        
-        @param proxyIndex reference to a proxy model index (QModelIndex)
-        @return source model index (QModelIndex)
-        """
-        offset = proxyIndex.internalId()
-        if offset == 0:
-            return QModelIndex()
-        startDateRow = self.__sourceDateRow(offset - 1)
-        return self.sourceModel().index(
-            startDateRow + proxyIndex.row(), proxyIndex.column())
-    
-    def index(self, row, column, parent=None):
-        """
-        Public method to create an index.
-        
-        @param row row number for the index (integer)
-        @param column column number for the index (integer)
-        @param parent index of the parent item (QModelIndex)
-        @return requested index (QModelIndex)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if row < 0 or \
-           column < 0 or \
-           column >= self.columnCount(parent) or \
-           parent.column() > 0:
-            return QModelIndex()
-        
-        if not parent.isValid():
-            return self.createIndex(row, column, 0)
-        return self.createIndex(row, column, parent.row() + 1)
-
-    def parent(self, index):
-        """
-        Public method to get the parent index.
-        
-        @param index index of item to get parent (QModelIndex)
-        @return index of parent (QModelIndex)
-        """
-        offset = index.internalId()
-        if offset == 0 or not index.isValid():
-            return QModelIndex()
-        return self.createIndex(offset - 1, 0, 0)
-    
-    def hasChildren(self, parent=None):
-        """
-        Public method to check, if an entry has some children.
-        
-        @param parent index of the entry to check (QModelIndex)
-        @return flag indicating the presence of children (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        grandparent = parent.parent()
-        if not grandparent.isValid():
-            return True
-        return False
-    
-    def flags(self, index):
-        """
-        Public method to get the item flags.
-        
-        @param index index of the item (QModelIndex)
-        @return flags (Qt.ItemFlags)
-        """
-        if not index.isValid():
-            return Qt.ItemFlags(Qt.NoItemFlags)
-        return Qt.ItemFlags(
-            Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsDragEnabled)
-    
-    def setSourceModel(self, sourceModel):
-        """
-        Public method to set the source model.
-        
-        @param sourceModel reference to the source model (QAbstractItemModel)
-        """
-        if self.sourceModel() is not None:
-            self.sourceModel().modelReset.disconnect(self.__sourceReset)
-            self.sourceModel().layoutChanged.disconnect(self.__sourceReset)
-            self.sourceModel().rowsInserted.disconnect(
-                self.__sourceRowsInserted)
-            self.sourceModel().rowsRemoved.disconnect(self.__sourceRowsRemoved)
-        
-        super(HistoryTreeModel, self).setSourceModel(sourceModel)
-        
-        if self.sourceModel() is not None:
-            self.__loaded = False
-            self.sourceModel().modelReset.connect(self.__sourceReset)
-            self.sourceModel().layoutChanged.connect(self.__sourceReset)
-            self.sourceModel().rowsInserted.connect(self.__sourceRowsInserted)
-            self.sourceModel().rowsRemoved.connect(self.__sourceRowsRemoved)
-        
-        self.beginResetModel()
-        self.endResetModel()
-    
-    def __sourceReset(self):
-        """
-        Private slot to handle a reset of the source model.
-        """
-        self.beginResetModel()
-        self.__sourceRowCache = []
-        self.endResetModel()
-    
-    def __sourceRowsInserted(self, parent, start, end):
-        """
-        Private slot to handle the insertion of data in the source model.
-        
-        @param parent reference to the parent index (QModelIndex)
-        @param start start row (integer)
-        @param end end row (integer)
-        """
-        if not parent.isValid():
-            if start != 0 or start != end:
-                self.beginResetModel()
-                self.__sourceRowCache = []
-                self.endResetModel()
-                return
-            
-            self.__sourceRowCache = []
-            treeIndex = self.mapFromSource(self.sourceModel().index(start, 0))
-            treeParent = treeIndex.parent()
-            if self.rowCount(treeParent) == 1:
-                self.beginInsertRows(QModelIndex(), 0, 0)
-                self.endInsertRows()
-            else:
-                self.beginInsertRows(treeParent, treeIndex.row(),
-                                     treeIndex.row())
-                self.endInsertRows()
-    
-    def mapFromSource(self, sourceIndex):
-        """
-        Public method to map an index to the proxy model index.
-        
-        @param sourceIndex reference to a source model index (QModelIndex)
-        @return proxy model index (QModelIndex)
-        """
-        if not sourceIndex.isValid():
-            return QModelIndex()
-        
-        if len(self.__sourceRowCache) == 0:
-            self.rowCount(QModelIndex())
-        
-        try:
-            row = self.__sourceRowCache.index(sourceIndex.row())
-        except ValueError:
-            row = bisect.bisect_left(self.__sourceRowCache, sourceIndex.row())
-        if row == len(self.__sourceRowCache) or \
-           self.__sourceRowCache[row] != sourceIndex.row():
-            row -= 1
-        dateRow = max(0, row)
-        row = sourceIndex.row() - self.__sourceRowCache[dateRow]
-        return self.createIndex(row, sourceIndex.column(), dateRow + 1)
-    
-    def removeRows(self, row, count, parent=None):
-        """
-        Public method to remove entries from the model.
-        
-        @param row row of the first entry to remove (integer)
-        @param count number of entries to remove (integer)
-        @param parent index of the parent entry (QModelIndex)
-        @return flag indicating successful removal (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if row < 0 or \
-           count <= 0 or \
-           row + count > self.rowCount(parent):
-            return False
-        
-        self.__removingDown = True
-        if parent.isValid() and self.rowCount(parent) == count - row:
-            self.beginRemoveRows(QModelIndex(), parent.row(), parent.row())
-        else:
-            self.beginRemoveRows(parent, row, row + count - 1)
-        if parent.isValid():
-            # removing pages
-            offset = self.__sourceDateRow(parent.row())
-            return self.sourceModel().removeRows(offset + row, count)
-        else:
-            # removing whole dates
-            for i in range(row + count - 1, row - 1, -1):
-                dateParent = self.index(i, 0)
-                offset = self.__sourceDateRow(dateParent.row())
-                if not self.sourceModel().removeRows(
-                        offset, self.rowCount(dateParent)):
-                    return False
-        return True
-    
-    def __sourceRowsRemoved(self, parent, start, end):
-        """
-        Private slot to handle the removal of data in the source model.
-        
-        @param parent reference to the parent index (QModelIndex)
-        @param start start row (integer)
-        @param end end row (integer)
-        """
-        if not self.__removingDown:
-            self.beginResetModel()
-            self.__sourceRowCache = []
-            self.endResetModel()
-            return
-        
-        if not parent.isValid():
-            if self.__sourceRowCache:
-                i = end
-                while i >= start:
-                    try:
-                        ind = self.__sourceRowCache.index(i)
-                    except ValueError:
-                        ind = bisect.bisect_left(self.__sourceRowCache, i)
-                    if ind == len(self.__sourceRowCache) or \
-                       self.__sourceRowCache[ind] != i:
-                        ind -= 1
-                    row = max(0, ind)
-                    offset = self.__sourceRowCache[row]
-                    dateParent = self.index(row, 0)
-                    # If we can remove all the rows in the date do that
-                    # and skip over them.
-                    rc = self.rowCount(dateParent)
-                    if i - rc + 1 == offset and start <= i - rc + 1:
-                        del self.__sourceRowCache[row]
-                        i -= rc + 1
-                    else:
-                        row += 1
-                        i -= 1
-                    for j in range(row, len(self.__sourceRowCache)):
-                        self.__sourceRowCache[j] -= 1
-            
-            if self.__removingDown:
-                self.endRemoveRows()
-                self.__removingDown = False
--- a/eric6/Helpviewer/History/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the history system.
-"""
--- a/eric6/Helpviewer/JavaScriptResources.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module containing some HTML resources.
-"""
-
-from __future__ import unicode_literals
-
-parseForms_js = """
-(function (){
-    var forms = new Array;
-    for (var i = 0; i < document.forms.length; ++i) {
-        var form = document.forms[i];
-        var formObject = new Object;
-        formObject.name = form.name;
-        formObject.index = i
-        var elements = new Array;
-        for (var j = 0; j < form.elements.length; ++j) {
-            var e = form.elements[j];
-            var element = new Object;
-            element.name = e.name;
-            element.value = e.value;
-            element.type = e.type;
-            element.autocomplete = e.attributes.getNamedItem("autocomplete");
-            if (element.autocomplete != null)
-                element.autocomplete = element.autocomplete.value;
-            elements.push(element);
-        }
-        formObject.elements = elements;
-        forms.push(formObject);
-    }
-    return forms;
-}());
-"""
--- a/eric6/Helpviewer/Network/AboutAccessHandler.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a scheme access handler for about schemes.
-"""
-
-from __future__ import unicode_literals
-
-from .SchemeAccessHandler import SchemeAccessHandler
-
-
-class AboutAccessHandler(SchemeAccessHandler):
-    """
-    Class implementing a scheme access handler for about schemes.
-    """
-    def createRequest(self, op, request, outgoingData=None):
-        """
-        Public method to create a request.
-        
-        @param op the operation to be performed
-            (QNetworkAccessManager.Operation)
-        @param request reference to the request object (QNetworkRequest)
-        @param outgoingData reference to an IODevice containing data to be sent
-            (QIODevice)
-        @return reference to the created reply object (QNetworkReply)
-        """
-        from .NetworkProtocolUnknownErrorReply import \
-            NetworkProtocolUnknownErrorReply
-        return NetworkProtocolUnknownErrorReply("about", self.parent())
--- a/eric6/Helpviewer/Network/EmptyNetworkReply.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a network reply class for an empty reply
-(i.e. request was handle other way).
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QTimer
-from PyQt5.QtNetwork import QNetworkReply, QNetworkAccessManager
-
-
-class EmptyNetworkReply(QNetworkReply):
-    """
-    Class implementing an empty network reply.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(EmptyNetworkReply, self).__init__(parent)
-        
-        self.setOperation(QNetworkAccessManager.GetOperation)
-        self.setError(QNetworkReply.OperationCanceledError, "eric6:No Error")
-        
-        QTimer.singleShot(0, lambda: self.finished.emit())
-    
-    def abort(self):
-        """
-        Public slot to abort the operation.
-        """
-        # do nothing
-        pass
-    
-    def readData(self, maxlen):
-        """
-        Public method to retrieve data from the reply object.
-        
-        @param maxlen maximum number of bytes to read (integer)
-        @return string containing the data (bytes)
-        """
-        return bytes()
--- a/eric6/Helpviewer/Network/EricAccessHandler.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a scheme access handler for Python resources.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QFile, QByteArray
-
-import Utilities
-
-from .SchemeAccessHandler import SchemeAccessHandler
-
-
-class EricAccessHandler(SchemeAccessHandler):
-    """
-    Class implementing a scheme access handler for Python resources.
-    """
-    _homePage = None
-    _speedDialPage = None
-    
-    def createRequest(self, op, request, outgoingData=None):
-        """
-        Public method to create a request.
-        
-        @param op the operation to be performed
-            (QNetworkAccessManager.Operation)
-        @param request reference to the request object (QNetworkRequest)
-        @param outgoingData reference to an IODevice containing data to be sent
-            (QIODevice)
-        @return reference to the created reply object (QNetworkReply)
-        """
-        from .NetworkReply import NetworkReply
-        from .NetworkProtocolUnknownErrorReply import \
-            NetworkProtocolUnknownErrorReply
-
-        if request.url().toString() == "eric:home":
-            return NetworkReply(request, self.__createHomePage(),
-                                "text/html", self.parent())
-        elif request.url().toString() == "eric:speeddial":
-            return NetworkReply(request, self.__createSpeedDialPage(),
-                                "text/html", self.parent())
-        
-        return NetworkProtocolUnknownErrorReply("eric", self.parent())
-    
-    def __createHomePage(self):
-        """
-        Private method to create the Home page.
-        
-        @return prepared home page (QByteArray)
-        """
-        if self._homePage is None:
-            htmlFile = QFile(":/html/startPage.html")
-            htmlFile.open(QFile.ReadOnly)
-            html = htmlFile.readAll()
-            
-            html.replace("@IMAGE@", b"qrc:icons/ericWeb32.png")
-            html.replace("@FAVICON@", b"qrc:icons/ericWeb16.png")
-            
-            self._homePage = html
-        
-        return QByteArray(self._homePage)
-    
-    def __createSpeedDialPage(self):
-        """
-        Private method to create the Speeddial page.
-        
-        @return prepared speeddial page (QByteArray)
-        """
-        if self._speedDialPage is None:
-            htmlFile = QFile(":/html/speeddialPage.html")
-            htmlFile.open(QFile.ReadOnly)
-            html = bytes(htmlFile.readAll()).decode()
-            
-            html = html.replace("@FAVICON@", "qrc:icons/ericWeb16.png")
-            html = html.replace("@IMG_PLUS@", "qrc:icons/plus.png")
-            html = html.replace("@IMG_CLOSE@", "qrc:icons/close.png")
-            html = html.replace("@IMG_EDIT@", "qrc:icons/edit.png")
-            html = html.replace("@IMG_RELOAD@", "qrc:icons/reload.png")
-            html = html.replace("@IMG_SETTINGS@", "qrc:icons/setting.png")
-            html = html.replace("@LOADING-IMG@", "qrc:icons/loading.gif")
-            html = html.replace("@BOX-BORDER@",
-                                "qrc:icons/box-border-small.png")
-            
-            html = html.replace("@JQUERY@", "qrc:javascript/jquery.js")
-            html = html.replace("@JQUERY-UI@", "qrc:javascript/jquery-ui.js")
-            
-            html = html.replace("@SITE-TITLE@", self.tr("Speed Dial"))
-            html = html.replace("@URL@", self.tr("URL"))
-            html = html.replace("@TITLE@", self.tr("Title"))
-            html = html.replace("@APPLY@", self.tr("Apply"))
-            html = html.replace("@CLOSE@", self.tr("Close"))
-            html = html.replace("@NEW-PAGE@", self.tr("New Page"))
-            html = html.replace("@TITLE-EDIT@", self.tr("Edit"))
-            html = html.replace("@TITLE-REMOVE@", self.tr("Remove"))
-            html = html.replace("@TITLE-RELOAD@", self.tr("Reload"))
-            html = html.replace("@TITLE-WARN@",
-                                self.tr("Are you sure to remove this"
-                                        " speed dial?"))
-            html = html.replace("@TITLE-WARN-REL@",
-                                self.tr("Are you sure you want to reload"
-                                        " all speed dials?"))
-            html = html.replace("@TITLE-FETCHTITLE@",
-                                self.tr("Load title from page"))
-            html = html.replace("@SETTINGS-TITLE@",
-                                self.tr("Speed Dial Settings"))
-            html = html.replace("@ADD-TITLE@", self.tr("Add New Page"))
-            html = html.replace("@TXT_NRROWS@",
-                                self.tr("Maximum pages in a row:"))
-            html = html.replace("@TXT_SDSIZE@",
-                                self.tr("Change size of pages:"))
-            
-            self._speedDialPage = Utilities.html_uencode(html)
-        
-        import Helpviewer.HelpWindow
-        html = QByteArray(self._speedDialPage.encode("utf-8"))
-        dial = Helpviewer.HelpWindow.HelpWindow.speedDial()
-        
-        html.replace("@INITIAL-SCRIPT@", dial.initialScript().encode("utf-8"))
-        html.replace("@ROW-PAGES@", str(dial.pagesInRow()).encode("utf-8"))
-        html.replace("@SD-SIZE@", str(dial.sdSize()).encode("utf-8"))
-        
-        return html
--- a/eric6/Helpviewer/Network/FileAccessHandler.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a scheme access handler for file.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QFileInfo
-from PyQt5.QtNetwork import QNetworkAccessManager
-
-from .SchemeAccessHandler import SchemeAccessHandler
-
-
-class FileAccessHandler(SchemeAccessHandler):
-    """
-    Class implementing a scheme access handler for FTP.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(FileAccessHandler, self).__init__(parent)
-    
-    def createRequest(self, op, request, outgoingData=None):
-        """
-        Public method to create a request.
-        
-        @param op the operation to be performed
-            (QNetworkAccessManager.Operation)
-        @param request reference to the request object (QNetworkRequest)
-        @param outgoingData reference to an IODevice containing data to be sent
-            (QIODevice)
-        @return reference to the created reply object (QNetworkReply)
-        """
-        if op == QNetworkAccessManager.GetOperation:
-            fileInfo = QFileInfo(request.url().toLocalFile())
-            if not fileInfo.isDir() or \
-               not fileInfo.isReadable() or \
-               not fileInfo.exists():
-                return None
-            from .FileReply import FileReply
-            return FileReply(request.url(), self.parent())
-        else:
-            return None
--- a/eric6/Helpviewer/Network/FileReply.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,301 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a network reply class for directory resources.
-"""
-
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
-from PyQt5.QtCore import Qt, QByteArray, QTimer, QDir, QIODevice, QUrl, QBuffer
-from PyQt5.QtGui import QPixmap
-from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest
-from PyQt5.QtWebKit import QWebSettings
-
-import UI.PixmapCache
-
-import Utilities
-
-
-dirListPage_html = """\
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<title>{0}</title>
-<style type="text/css">
-body {{
-  padding: 3em 0em;
-  background: -webkit-gradient(linear, left top, left bottom, from(#85784A),
-                               to(#FDFDFD), color-stop(0.5, #FDFDFD));
-  background-repeat: repeat-x;
-}}
-#box {{
-  background: white;
-  border: 1px solid #85784A;
-  width: 80%;
-  padding: 30px;
-  margin: auto;
-  -webkit-border-radius: 0.8em;
-}}
-h1 {{
-  font-size: 130%;
-  font-weight: bold;
-  border-bottom: 1px solid #85784A;
-}}
-th {{
-  background-color: #B8B096;
-  color: black;
-}}
-table {{
-  border: solid 1px #85784A;
-  margin: 5px 0;
-  width: 100%;
-}}
-tr.odd {{
-  background-color: white;
-  color: black;
-}}
-tr.even {{
-  background-color: #CEC9B8;
-  color: black;
-}}
-.modified {{
-  text-align: left;
-  vertical-align: top;
-  white-space: nowrap;
-}}
-.size {{
-  text-align: right;
-  vertical-align: top;
-  white-space: nowrap;
-  padding-right: 22px;
-}}
-.name {{
-  text-align: left;
-  vertical-align: top;
-  white-space: pre-wrap;
-  width: 100%
-}}
-{1}
-</style>
-</head>
-<body>
-  <div id="box">
-  <h1>{2}</h1>
-{3}
-  <table align="center" cellspacing="0" width="90%">
-{4}
-  </table>
-  </div>
-</body>
-</html>
-"""
-
-
-class FileReply(QNetworkReply):
-    """
-    Class implementing a network reply for directory resources.
-    """
-    def __init__(self, url, parent=None):
-        """
-        Constructor
-        
-        @param url requested FTP URL (QUrl)
-        @param parent reference to the parent object (QObject)
-        """
-        super(FileReply, self).__init__(parent)
-        
-        self.__content = QByteArray()
-        self.__units = ["Bytes", "KB", "MB", "GB", "TB",
-                        "PB", "EB", "ZB", "YB"]
-        
-        if url.path() == "":
-            url.setPath("/")
-        self.setUrl(url)
-        
-        QTimer.singleShot(0, self.__loadDirectory)
-    
-    def abort(self):
-        """
-        Public slot to abort the operation.
-        """
-        # do nothing
-        pass
-    
-    def bytesAvailable(self):
-        """
-        Public method to determined the bytes available for being read.
-        
-        @return bytes available (integer)
-        """
-        return self.__content.size()
-    
-    def isSequential(self):
-        """
-        Public method to check for sequential access.
-        
-        @return flag indicating sequential access (boolean)
-        """
-        return True
-    
-    def readData(self, maxlen):
-        """
-        Public method to retrieve data from the reply object.
-        
-        @param maxlen maximum number of bytes to read (integer)
-        @return string containing the data (bytes)
-        """
-        if self.__content.size():
-            len_ = min(maxlen, self.__content.size())
-            buffer = bytes(self.__content[:len_])
-            self.__content.remove(0, len_)
-            return buffer
-        else:
-            return b""
-    
-    def __cssLinkClass(self, icon, size=32):
-        """
-        Private method to generate a link class with an icon.
-        
-        @param icon icon to be included (QIcon)
-        @param size size of the icon to be generated (integer)
-        @return CSS class string (string)
-        """
-        cssString = \
-            """a.{{0}} {{{{\n"""\
-            """  padding-left: {0}px;\n"""\
-            """  background: transparent url(data:image/png;base64,{1})"""\
-            """ no-repeat center left;\n"""\
-            """  font-weight: bold;\n"""\
-            """}}}}\n"""
-        pixmap = icon.pixmap(size, size)
-        imageBuffer = QBuffer()
-        imageBuffer.open(QIODevice.ReadWrite)
-        if not pixmap.save(imageBuffer, "PNG"):
-            # write a blank pixmap on error
-            pixmap = QPixmap(size, size)
-            pixmap.fill(Qt.transparent)
-            imageBuffer.buffer().clear()
-            pixmap.save(imageBuffer, "PNG")
-        return cssString.format(
-            size + 4,
-            str(imageBuffer.buffer().toBase64(), encoding="ascii"))
-    
-    def __loadDirectory(self):
-        """
-        Private slot loading the directory and preparing the listing page.
-        """
-        qdir = QDir(self.url().toLocalFile())
-        dirItems = qdir.entryInfoList(
-            QDir.AllEntries | QDir.Hidden | QDir.NoDotAndDotDot,
-            QDir.Name | QDir.DirsFirst)
-        
-        u = self.url()
-        if not u.path().endswith("/"):
-            u.setPath(u.path() + "/")
-        
-        baseUrl = self.url().toString()
-        basePath = u.path()
-        
-        linkClasses = {}
-        iconSize = QWebSettings.globalSettings().fontSize(
-            QWebSettings.DefaultFontSize)
-        
-        parent = u.resolved(QUrl(".."))
-        if parent.isParentOf(u):
-            icon = UI.PixmapCache.getIcon("up.png")
-            linkClasses["link_parent"] = \
-                self.__cssLinkClass(icon, iconSize).format("link_parent")
-            parentStr = self.tr(
-                """  <p><a class="link_parent" href="{0}">"""
-                """Change to parent directory</a></p>"""
-            ).format(parent.toString())
-        else:
-            parentStr = ""
-        
-        row = \
-            """    <tr class="{0}">"""\
-            """<td class="name"><a class="{1}" href="{2}">{3}</a></td>"""\
-            """<td class="size">{4}</td>"""\
-            """<td class="modified">{5}</td>"""\
-            """</tr>\n"""
-        table = self.tr(
-            """    <tr>"""
-            """<th align="left">Name</th>"""
-            """<th>Size</th>"""
-            """<th align="left">Last modified</th>"""
-            """</tr>\n"""
-        )
-        
-        i = 0
-        for item in dirItems:
-            name = item.fileName()
-            if item.isDir() and not name.endswith("/"):
-                name += "/"
-            child = u.resolved(QUrl(name.replace(":", "%3A")))
-            
-            if item.isFile():
-                size = item.size()
-                unit = 0
-                while size:
-                    newSize = size // 1024
-                    if newSize and unit < len(self.__units):
-                        size = newSize
-                        unit += 1
-                    else:
-                        break
-                
-                sizeStr = self.tr("{0} {1}", "size unit")\
-                    .format(size, self.__units[unit])
-                linkClass = "link_file"
-                if linkClass not in linkClasses:
-                    icon = UI.PixmapCache.getIcon("fileMisc.png")
-                    linkClasses[linkClass] = \
-                        self.__cssLinkClass(icon, iconSize).format(linkClass)
-            else:
-                sizeStr = ""
-                linkClass = "link_dir"
-                if linkClass not in linkClasses:
-                    icon = UI.PixmapCache.getIcon("dirClosed.png")
-                    linkClasses[linkClass] = \
-                        self.__cssLinkClass(icon, iconSize).format(linkClass)
-            table += row.format(
-                i == 0 and "odd" or "even",
-                linkClass,
-                child.toString(),
-                Utilities.html_encode(item.fileName()),
-                sizeStr,
-                item.lastModified().toString("yyyy-MM-dd hh:mm"),
-            )
-            i = 1 - i
-        
-        content = dirListPage_html.format(
-            Utilities.html_encode(baseUrl),
-            "".join(linkClasses.values()),
-            self.tr("Listing of {0}").format(basePath),
-            parentStr,
-            table
-        )
-        self.__content = QByteArray(content.encode("utf8"))
-        self.__content.append(512 * b' ')
-        
-        self.open(QIODevice.ReadOnly | QIODevice.Unbuffered)
-        self.setHeader(
-            QNetworkRequest.ContentTypeHeader, "text/html; charset=UTF-8")
-        self.setHeader(
-            QNetworkRequest.ContentLengthHeader, self.__content.size())
-        self.setAttribute(QNetworkRequest.HttpStatusCodeAttribute, 200)
-        self.setAttribute(QNetworkRequest.HttpReasonPhraseAttribute, "Ok")
-        self.metaDataChanged.emit()
-        self.downloadProgress.emit(
-            self.__content.size(), self.__content.size())
-        self.readyRead.emit()
-        self.finished.emit()
--- a/eric6/Helpviewer/Network/FollowRedirectReply.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a network reply delegate allowing to check redirects.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSignal, QObject
-from PyQt5.QtNetwork import QNetworkRequest
-
-
-class FollowRedirectReply(QObject):
-    """
-    Class implementing a network reply delegate allowing to check redirects.
-    
-    @signal finished() emitted to indicate the end of the redirect
-    """
-    finished = pyqtSignal()
-    
-    def __init__(self, url, manager, maxRedirects=5):
-        """
-        Constructor
-        
-        @param url URL to get (QUrl)
-        @param manager reference to the network access manager
-            (QNetworkAccessManager)
-        @keyparam maxRedirects maximum allowed redirects (integer)
-        """
-        super(FollowRedirectReply, self).__init__()
-        
-        self.__manager = manager
-        self.__maxRedirects = maxRedirects
-        self.__redirectCount = 0
-        
-        self.__reply = self.__manager.get(QNetworkRequest(url))
-        self.__reply.finished.connect(self.__replyFinished)
-    
-    def reply(self):
-        """
-        Public method to get the reply object.
-        
-        @return reference to the reply object (QNetworkReply)
-        """
-        return self.__reply
-    
-    def originalUrl(self):
-        """
-        Public method to get the original URL.
-        
-        @return original URL (QUrl)
-        """
-        return self.__reply.request().url()
-    
-    def url(self):
-        """
-        Public method to get the final URL (after redirects).
-        
-        @return final URL (QUrl)
-        """
-        return self.__reply.url()
-    
-    def error(self):
-        """
-        Public method to get the error information.
-        
-        @return error code (QNetworkReply.NetworkError)
-        """
-        return self.__reply.error()
-    
-    def errorString(self):
-        """
-        Public method to get the error message.
-        
-        @return error message (string)
-        """
-        return self.__reply.errorString()
-    
-    def readAll(self):
-        """
-        Public method to read all received data.
-        
-        @return received raw data (QByteArray)
-        """
-        return self.__reply.readAll()
-    
-    def close(self):
-        """
-        Public method to close the data stream.
-        """
-        self.__reply.close()
-    
-    def __replyFinished(self):
-        """
-        Private slot handling the receipt of the requested data.
-        """
-        replyStatus = self.__reply.attribute(
-            QNetworkRequest.HttpStatusCodeAttribute)
-        if (replyStatus != 301 and replyStatus != 302) or \
-           self.__redirectCount == self.__maxRedirects:
-            self.finished.emit()
-            return
-        
-        self.__redirectCount += 1
-        
-        redirectUrl = self.__reply.attribute(
-            QNetworkRequest.RedirectionTargetAttribute)
-        self.__reply.close()
-        self.__reply.deleteLater()
-        self.__reply = None
-        
-        self.__reply = self.__manager.get(QNetworkRequest(redirectUrl))
-        self.__reply.finished.connect(self.__replyFinished)
--- a/eric6/Helpviewer/Network/FtpAccessHandler.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a scheme access handler for FTP.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtNetwork import QNetworkAccessManager
-
-from .SchemeAccessHandler import SchemeAccessHandler
-
-
-class FtpAccessHandler(SchemeAccessHandler):
-    """
-    Class implementing a scheme access handler for FTP.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(FtpAccessHandler, self).__init__(parent)
-        
-        self.__authenticatorCache = {}
-        self.__proxyAuthenticator = None
-    
-    def createRequest(self, op, request, outgoingData=None):
-        """
-        Public method to create a request.
-        
-        @param op the operation to be performed
-            (QNetworkAccessManager.Operation)
-        @param request reference to the request object (QNetworkRequest)
-        @param outgoingData reference to an IODevice containing data to be sent
-            (QIODevice)
-        @return reference to the created reply object (QNetworkReply)
-        """
-        if op == QNetworkAccessManager.GetOperation:
-            from .FtpReply import FtpReply
-            return FtpReply(request.url(), self, self.parent())
-        else:
-            return None
-    
-    def setAuthenticator(self, realm, authenticator):
-        """
-        Public method to add or change an authenticator in our cache.
-        
-        @param realm name of the realm the authenticator belongs to (string)
-        @param authenticator authenticator to add to the cache
-            (QAuthenticator). If it is None, the entry will be deleted from
-            the cache.
-        """
-        if realm:
-            if authenticator:
-                self.__authenticatorCache[realm] = authenticator
-            else:
-                if realm in self.__authenticatorCache:
-                    del self.__authenticatorCache[realm]
-    
-    def getAuthenticator(self, realm):
-        """
-        Public method to get an authenticator for the given realm.
-        
-        @param realm name of the realm to get the authenticator for (string)
-        @return authenticator for the given realm (QAuthenticator) or None
-        """
-        if realm in self.__authenticatorCache:
-            return self.__authenticatorCache[realm]
-        else:
-            return None
-    
-    def setProxyAuthenticator(self, authenticator):
-        """
-        Public method to add or change the authenticator for the FTP proxy.
-        
-        @param authenticator authenticator for the FTP proxy (QAuthenticator)
-        """
-        self.__proxyAuthenticator = authenticator
-    
-    def getProxyAuthenticator(self):
-        """
-        Public method to get the authenticator for the FTP proxy.
-        
-        @return authenticator for the FTP proxy (QAuthenticator)
-        """
-        return self.__proxyAuthenticator
--- a/eric6/Helpviewer/Network/FtpReply.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,510 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a network reply class for FTP resources.
-"""
-
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
-import ftplib
-import socket
-import errno
-import mimetypes
-
-from PyQt5.QtCore import QByteArray, QIODevice, Qt, QUrl, QTimer, QBuffer, \
-    QCoreApplication
-from PyQt5.QtGui import QPixmap
-from PyQt5.QtWidgets import QDialog
-from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest, QAuthenticator
-from PyQt5.QtWebKit import QWebSettings
-
-from E5Network.E5Ftp import E5Ftp, E5FtpProxyError, E5FtpProxyType
-
-import UI.PixmapCache
-
-from Utilities.FtpUtilities import FtpDirLineParser, FtpDirLineParserError
-import Utilities
-
-import Preferences
-
-ftpListPage_html = """\
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
-<title>{0}</title>
-<style type="text/css">
-body {{
-  padding: 3em 0em;
-  background: -webkit-gradient(linear, left top, left bottom, from(#85784A),
-                               to(#FDFDFD), color-stop(0.5, #FDFDFD));
-  background-repeat: repeat-x;
-}}
-#box {{
-  background: white;
-  border: 1px solid #85784A;
-  width: 80%;
-  padding: 30px;
-  margin: auto;
-  -webkit-border-radius: 0.8em;
-}}
-h1 {{
-  font-size: 130%;
-  font-weight: bold;
-  border-bottom: 1px solid #85784A;
-}}
-th {{
-  background-color: #B8B096;
-  color: black;
-}}
-table {{
-  border: solid 1px #85784A;
-  margin: 5px 0;
-  width: 100%;
-}}
-tr.odd {{
-  background-color: white;
-  color: black;
-}}
-tr.even {{
-  background-color: #CEC9B8;
-  color: black;
-}}
-.modified {{
-  text-align: left;
-  vertical-align: top;
-  white-space: nowrap;
-}}
-.size {{
-  text-align: right;
-  vertical-align: top;
-  white-space: nowrap;
-  padding-right: 22px;
-}}
-.name {{
-  text-align: left;
-  vertical-align: top;
-  white-space: pre-wrap;
-  width: 100%
-}}
-{1}
-</style>
-</head>
-<body>
-  <div id="box">
-  <h1>{2}</h1>
-{3}
-  <table align="center" cellspacing="0" width="90%">
-{4}
-  </table>
-  </div>
-</body>
-</html>
-"""
-
-
-class FtpReply(QNetworkReply):
-    """
-    Class implementing a network reply for FTP resources.
-    """
-    def __init__(self, url, accessHandler, parent=None):
-        """
-        Constructor
-        
-        @param url requested FTP URL (QUrl)
-        @param accessHandler reference to the access handler (FtpAccessHandler)
-        @param parent reference to the parent object (QObject)
-        """
-        super(FtpReply, self).__init__(parent)
-        
-        self.__manager = parent
-        self.__handler = accessHandler
-        
-        self.__ftp = E5Ftp()
-        
-        self.__items = []
-        self.__content = QByteArray()
-        self.__units = ["Bytes", "KB", "MB", "GB", "TB",
-                        "PB", "EB", "ZB", "YB"]
-        self.__dirLineParser = FtpDirLineParser()
-        self.__fileBytesReceived = 0
-        
-        if url.path() == "":
-            url.setPath("/")
-        self.setUrl(url)
-        
-        # do proxy setup
-        if not Preferences.getUI("UseProxy"):
-            proxyType = E5FtpProxyType.NoProxy
-        else:
-            proxyType = Preferences.getUI("ProxyType/Ftp")
-        if proxyType != E5FtpProxyType.NoProxy:
-            self.__ftp.setProxy(
-                proxyType,
-                Preferences.getUI("ProxyHost/Ftp"),
-                Preferences.getUI("ProxyPort/Ftp"))
-            if proxyType != E5FtpProxyType.NonAuthorizing:
-                self.__ftp.setProxyAuthentication(
-                    Preferences.getUI("ProxyUser/Ftp"),
-                    Preferences.getUI("ProxyPassword/Ftp"),
-                    Preferences.getUI("ProxyAccount/Ftp"))
-        
-        QTimer.singleShot(0, self.__doFtpCommands)
-    
-    def abort(self):
-        """
-        Public slot to abort the operation.
-        """
-        # do nothing
-        pass
-    
-    def bytesAvailable(self):
-        """
-        Public method to determined the bytes available for being read.
-        
-        @return bytes available (integer)
-        """
-        return self.__content.size()
-    
-    def isSequential(self):
-        """
-        Public method to check for sequential access.
-        
-        @return flag indicating sequential access (boolean)
-        """
-        return True
-    
-    def readData(self, maxlen):
-        """
-        Public method to retrieve data from the reply object.
-        
-        @param maxlen maximum number of bytes to read (integer)
-        @return string containing the data (bytes)
-        """
-        if self.__content.size():
-            len_ = min(maxlen, self.__content.size())
-            buffer = bytes(self.__content[:len_])
-            self.__content.remove(0, len_)
-            return buffer
-        else:
-            return b""
-    
-    def __doFtpCommands(self):
-        """
-        Private slot doing the sequence of FTP commands to get the requested
-        result.
-        """
-        retry = True
-        try:
-            username = self.url().userName()
-            password = self.url().password()
-            byAuth = False
-            
-            while retry:
-                try:
-                    self.__ftp.connect(self.url().host(),
-                                       self.url().port(ftplib.FTP_PORT),
-                                       timeout=10)
-                except E5FtpProxyError as err:
-                    self.setError(QNetworkReply.ProxyNotFoundError, str(err))
-                    self.error.emit(QNetworkReply.ProxyNotFoundError)
-                    self.finished.emit()
-                ok, retry = self.__doFtpLogin(username, password, byAuth)
-                if not ok and retry:
-                    auth = self.__handler.getAuthenticator(self.url().host())
-                    if auth and not auth.isNull() and auth.user():
-                        username = auth.user()
-                        password = auth.password()
-                        byAuth = True
-                    else:
-                        retry = False
-            if ok:
-                self.__ftp.retrlines("LIST " + self.url().path(),
-                                     self.__dirCallback)
-                if len(self.__items) == 1 and \
-                   self.__items[0].isFile():
-                    self.__fileBytesReceived = 0
-                    self.__setContent()
-                    self.__ftp.retrbinary(
-                        "RETR " + self.url().path(), self.__retrCallback)
-                    self.__content.append(512 * b' ')
-                    self.readyRead.emit()
-                else:
-                    self.__setListContent()
-                self.__ftp.quit()
-        except ftplib.all_errors as err:
-            if isinstance(err, socket.gaierror):
-                errCode = QNetworkReply.HostNotFoundError
-            elif isinstance(err, socket.error) and \
-                    err.errno == errno.ECONNREFUSED:
-                errCode = QNetworkReply.ConnectionRefusedError
-            else:
-                errCode = QNetworkReply.ProtocolFailure
-            self.setError(errCode, str(err))
-            self.error.emit(errCode)
-        self.finished.emit()
-    
-    def __doFtpLogin(self, username, password, byAuth=False):
-        """
-        Private method to do the FTP login with asking for a username and
-        password, if the login fails with an error 530.
-        
-        @param username user name to use for the login (string)
-        @param password password to use for the login (string)
-        @param byAuth flag indicating that the login data was provided by an
-            authenticator (boolean)
-        @return tuple of two flags indicating a successful login and
-            if the login should be retried (boolean, boolean)
-        """
-        try:
-            self.__ftp.login(username, password)
-            return True, False
-        except E5FtpProxyError as err:
-            code = str(err)[:3]
-            if code[1] == "5":
-                # could be a 530, check second line
-                lines = str(err).splitlines()
-                if lines[1][:3] == "530":
-                    if "usage" in "\n".join(lines[1:].lower()):
-                        # found a not supported proxy
-                        self.setError(
-                            QNetworkReply.ProxyConnectionRefusedError,
-                            self.tr("The proxy type seems to be wrong."
-                                    " If it is not in the list of"
-                                    " supported proxy types please report"
-                                    " it with the instructions given by"
-                                    " the proxy.\n{0}").format(
-                                "\n".join(lines[1:])))
-                        self.error.emit(
-                            QNetworkReply.ProxyConnectionRefusedError)
-                        return False, False
-                    else:
-                        from UI.AuthenticationDialog import \
-                            AuthenticationDialog
-                        info = self.tr(
-                            "<b>Connect to proxy '{0}' using:</b>")\
-                            .format(Utilities.html_encode(
-                                Preferences.getUI("ProxyHost/Ftp")))
-                        dlg = AuthenticationDialog(
-                            info, Preferences.getUI("ProxyUser/Ftp"), True)
-                        dlg.setData(Preferences.getUI("ProxyUser/Ftp"),
-                                    Preferences.getUI("ProxyPassword/Ftp"))
-                        if dlg.exec_() == QDialog.Accepted:
-                            username, password = dlg.getData()
-                            if dlg.shallSave():
-                                Preferences.setUI("ProxyUser/Ftp", username)
-                                Preferences.setUI(
-                                    "ProxyPassword/Ftp", password)
-                            self.__ftp.setProxyAuthentication(username,
-                                                              password)
-                            return False, True
-            return False, False
-        except (ftplib.error_perm, ftplib.error_temp) as err:
-            code = err.args[0].strip()[:3]
-            if code in ["530", "421"]:
-                # error 530 -> Login incorrect
-                # error 421 -> Login may be incorrect (reported by some
-                # proxies)
-                if byAuth:
-                    self.__handler.setAuthenticator(self.url().host(), None)
-                    auth = None
-                else:
-                    auth = self.__handler.getAuthenticator(self.url().host())
-                if not auth or auth.isNull() or not auth.user():
-                    auth = QAuthenticator()
-                    self.__manager.authenticationRequired.emit(self, auth)
-                    if not auth.isNull():
-                        if auth.user():
-                            self.__handler.setAuthenticator(self.url().host(),
-                                                            auth)
-                            return False, True
-                    return False, False
-                return False, True
-            else:
-                raise
-    
-    def __dirCallback(self, line):
-        """
-        Private slot handling the receipt of directory listings.
-        
-        @param line the received line of the directory listing (string)
-        """
-        try:
-            urlInfo = self.__dirLineParser.parseLine(line)
-        except FtpDirLineParserError:
-            # silently ignore parser errors
-            urlInfo = None
-        
-        if urlInfo:
-            self.__items.append(urlInfo)
-        
-        QCoreApplication.processEvents()
-    
-    def __retrCallback(self, data):
-        """
-        Private slot handling the reception of data.
-        
-        @param data data received from the FTP server (bytes)
-        """
-        self.__content += QByteArray(data)
-        self.__fileBytesReceived += len(data)
-        self.downloadProgress.emit(
-            self.__fileBytesReceived, self.__items[0].size())
-        self.readyRead.emit()
-        
-        QCoreApplication.processEvents()
-    
-    def __setContent(self):
-        """
-        Private method to finish the setup of the data.
-        """
-        mtype, encoding = mimetypes.guess_type(self.url().toString())
-        self.open(QIODevice.ReadOnly | QIODevice.Unbuffered)
-        self.setHeader(QNetworkRequest.ContentLengthHeader,
-                       self.__items[0].size())
-        if mtype:
-            self.setHeader(QNetworkRequest.ContentTypeHeader, mtype)
-        self.setAttribute(QNetworkRequest.HttpStatusCodeAttribute, 200)
-        self.setAttribute(QNetworkRequest.HttpReasonPhraseAttribute, "Ok")
-        self.metaDataChanged.emit()
-    
-    def __cssLinkClass(self, icon, size=32):
-        """
-        Private method to generate a link class with an icon.
-        
-        @param icon icon to be included (QIcon)
-        @param size size of the icon to be generated (integer)
-        @return CSS class string (string)
-        """
-        cssString = \
-            """a.{{0}} {{{{\n"""\
-            """  padding-left: {0}px;\n"""\
-            """  background: transparent url(data:image/png;base64,{1})"""\
-            """ no-repeat center left;\n"""\
-            """  font-weight: bold;\n"""\
-            """}}}}\n"""
-        pixmap = icon.pixmap(size, size)
-        imageBuffer = QBuffer()
-        imageBuffer.open(QIODevice.ReadWrite)
-        if not pixmap.save(imageBuffer, "PNG"):
-            # write a blank pixmap on error
-            pixmap = QPixmap(size, size)
-            pixmap.fill(Qt.transparent)
-            imageBuffer.buffer().clear()
-            pixmap.save(imageBuffer, "PNG")
-        return cssString.format(
-            size + 4,
-            str(imageBuffer.buffer().toBase64(), encoding="ascii"))
-    
-    def __setListContent(self):
-        """
-        Private method to prepare the content for the reader.
-        """
-        u = self.url()
-        if not u.path().endswith("/"):
-            u.setPath(u.path() + "/")
-        
-        baseUrl = self.url().toString()
-        basePath = u.path()
-        
-        linkClasses = {}
-        iconSize = QWebSettings.globalSettings().fontSize(
-            QWebSettings.DefaultFontSize)
-        
-        parent = u.resolved(QUrl(".."))
-        if parent.isParentOf(u):
-            icon = UI.PixmapCache.getIcon("up.png")
-            linkClasses["link_parent"] = \
-                self.__cssLinkClass(icon, iconSize).format("link_parent")
-            parentStr = self.tr(
-                """  <p><a class="link_parent" href="{0}">"""
-                """Change to parent directory</a></p>"""
-            ).format(parent.toString())
-        else:
-            parentStr = ""
-        
-        row = \
-            """    <tr class="{0}">"""\
-            """<td class="name"><a class="{1}" href="{2}">{3}</a></td>"""\
-            """<td class="size">{4}</td>"""\
-            """<td class="modified">{5}</td>"""\
-            """</tr>\n"""
-        table = self.tr(
-            """    <tr>"""
-            """<th align="left">Name</th>"""
-            """<th>Size</th>"""
-            """<th align="left">Last modified</th>"""
-            """</tr>\n"""
-        )
-        
-        i = 0
-        for item in self.__items:
-            name = item.name()
-            if item.isDir() and not name.endswith("/"):
-                name += "/"
-            child = u.resolved(QUrl(name.replace(":", "%3A")))
-            
-            if item.isFile():
-                size = item.size()
-                unit = 0
-                while size:
-                    newSize = size // 1024
-                    if newSize and unit < len(self.__units):
-                        size = newSize
-                        unit += 1
-                    else:
-                        break
-                
-                sizeStr = self.tr("{0} {1}", "size unit")\
-                    .format(size, self.__units[unit])
-                linkClass = "link_file"
-                if linkClass not in linkClasses:
-                    icon = UI.PixmapCache.getIcon("fileMisc.png")
-                    linkClasses[linkClass] = \
-                        self.__cssLinkClass(icon, iconSize).format(linkClass)
-            else:
-                sizeStr = ""
-                linkClass = "link_dir"
-                if linkClass not in linkClasses:
-                    icon = UI.PixmapCache.getIcon("dirClosed.png")
-                    linkClasses[linkClass] = \
-                        self.__cssLinkClass(icon, iconSize).format(linkClass)
-            table += row.format(
-                i == 0 and "odd" or "even",
-                linkClass,
-                child.toString(),
-                Utilities.html_encode(item.name()),
-                sizeStr,
-                item.lastModified().toString("yyyy-MM-dd hh:mm"),
-            )
-            i = 1 - i
-        
-        content = ftpListPage_html.format(
-            Utilities.html_encode(baseUrl),
-            "".join(linkClasses.values()),
-            self.tr("Listing of {0}").format(basePath),
-            parentStr,
-            table
-        )
-        self.__content = QByteArray(content.encode("utf8"))
-        self.__content.append(512 * b' ')
-        
-        self.open(QIODevice.ReadOnly | QIODevice.Unbuffered)
-        self.setHeader(
-            QNetworkRequest.ContentTypeHeader, "text/html; charset=UTF-8")
-        self.setHeader(
-            QNetworkRequest.ContentLengthHeader, self.__content.size())
-        self.setAttribute(QNetworkRequest.HttpStatusCodeAttribute, 200)
-        self.setAttribute(QNetworkRequest.HttpReasonPhraseAttribute, "Ok")
-        self.metaDataChanged.emit()
-        self.downloadProgress.emit(
-            self.__content.size(), self.__content.size())
-        self.readyRead.emit()
--- a/eric6/Helpviewer/Network/NetworkAccessManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,277 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a QNetworkAccessManager subclass.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSignal, QByteArray
-from PyQt5.QtWidgets import QDialog
-from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, \
-    QNetworkReply
-
-from E5Network.E5NetworkProxyFactory import E5NetworkProxyFactory, \
-    proxyAuthenticationRequired
-try:
-    from PyQt5.QtNetwork import QSslSocket
-    from E5Network.E5SslErrorHandler import E5SslErrorHandler
-    SSL_AVAILABLE = True
-except ImportError:
-    SSL_AVAILABLE = False
-
-import Preferences
-import Utilities
-from Globals import qVersionTuple
-
-
-class NetworkAccessManager(QNetworkAccessManager):
-    """
-    Class implementing a QNetworkAccessManager subclass.
-    
-    @signal requestCreated emitted after the request has been created passing
-        the operation, a reference to the network request and a reference to
-        the network reply (QNetworkAccessManager.Operation, QNetworkRequest,
-        QNetworkReply)
-    """
-    requestCreated = pyqtSignal(
-        QNetworkAccessManager.Operation, QNetworkRequest, QNetworkReply)
-    
-    def __init__(self, engine, parent=None):
-        """
-        Constructor
-        
-        @param engine reference to the help engine (QHelpEngine)
-        @param parent reference to the parent object (QObject)
-        """
-        super(NetworkAccessManager, self).__init__(parent)
-        
-        self.__adblockNetwork = None
-        
-        self.__schemeHandlers = {}  # dictionary of scheme handlers
-        
-        self.__proxyFactory = E5NetworkProxyFactory()
-        self.setProxyFactory(self.__proxyFactory)
-        
-        self.__setDiskCache()
-        self.languagesChanged()
-        
-        if SSL_AVAILABLE:
-            self.__sslErrorHandler = E5SslErrorHandler(self)
-            self.sslErrors.connect(self.__sslErrorHandler.sslErrorsReplySlot)
-        
-        self.proxyAuthenticationRequired.connect(proxyAuthenticationRequired)
-        self.authenticationRequired.connect(self.__authenticationRequired)
-        
-        self.__doNotTrack = Preferences.getHelp("DoNotTrack")
-        self.__sendReferer = Preferences.getHelp("SendReferer")
-        
-        # register scheme handlers
-        if engine:
-            from .QtHelpAccessHandler import QtHelpAccessHandler
-            self.setSchemeHandler("qthelp", QtHelpAccessHandler(engine, self))
-        
-        from .EricAccessHandler import EricAccessHandler
-        self.setSchemeHandler("eric", EricAccessHandler(self))
-        
-        from .AboutAccessHandler import AboutAccessHandler
-        self.setSchemeHandler("about", AboutAccessHandler(self))
-        
-        from Helpviewer.AdBlock.AdBlockAccessHandler import \
-            AdBlockAccessHandler
-        self.setSchemeHandler("abp", AdBlockAccessHandler(self))
-        
-        from .FtpAccessHandler import FtpAccessHandler
-        self.setSchemeHandler("ftp", FtpAccessHandler(self))
-        
-        from .FileAccessHandler import FileAccessHandler
-        self.setSchemeHandler("file", FileAccessHandler(self))
-    
-    def setSchemeHandler(self, scheme, handler):
-        """
-        Public method to register a scheme handler.
-        
-        @param scheme access scheme (string)
-        @param handler reference to the scheme handler object
-            (SchemeAccessHandler)
-        """
-        self.__schemeHandlers[scheme] = handler
-    
-    def createRequest(self, op, request, outgoingData=None):
-        """
-        Public method to create a request.
-        
-        @param op the operation to be performed
-            (QNetworkAccessManager.Operation)
-        @param request reference to the request object (QNetworkRequest)
-        @param outgoingData reference to an IODevice containing data to be sent
-            (QIODevice)
-        @return reference to the created reply object (QNetworkReply)
-        """
-        scheme = request.url().scheme()
-        if scheme == "https" and \
-                (not SSL_AVAILABLE or not QSslSocket.supportsSsl()):
-            from .NetworkProtocolUnknownErrorReply import \
-                NetworkProtocolUnknownErrorReply
-            return NetworkProtocolUnknownErrorReply(scheme, self)
-        
-        import Helpviewer.HelpWindow
-        
-        if op == QNetworkAccessManager.PostOperation and \
-                outgoingData is not None:
-            outgoingDataByteArray = outgoingData.peek(1024 * 1024)
-            Helpviewer.HelpWindow.HelpWindow.passwordManager().post(
-                request, outgoingDataByteArray)
-        
-        reply = None
-        if scheme in self.__schemeHandlers:
-            reply = self.__schemeHandlers[scheme]\
-                        .createRequest(op, request, outgoingData)
-        if reply is not None:
-            return reply
-        
-        # give GreaseMonkey the chance to create a request
-        reply = Helpviewer.HelpWindow.HelpWindow.greaseMonkeyManager()\
-            .createRequest(op, request, outgoingData)
-        if reply is not None:
-            return reply
-        
-        req = QNetworkRequest(request)
-        if req.rawHeader(b"X-Eric6-UserLoadAction") == QByteArray(b"1"):
-            req.setRawHeader(b"X-Eric6-UserLoadAction", QByteArray())
-            req.setAttribute(QNetworkRequest.User + 200, b"")
-        else:
-            req.setAttribute(
-                QNetworkRequest.User + 200, req.rawHeader(b"Referer"))
-        
-        if hasattr(QNetworkRequest, 'HttpPipeliningAllowedAttribute'):
-            req.setAttribute(
-                QNetworkRequest.HttpPipeliningAllowedAttribute, True)
-        if not self.__acceptLanguage.isEmpty():
-            req.setRawHeader(b"Accept-Language", self.__acceptLanguage)
-        
-        # AdBlock code
-        if op == QNetworkAccessManager.GetOperation:
-            if self.__adblockNetwork is None:
-                self.__adblockNetwork = \
-                    Helpviewer.HelpWindow.HelpWindow.adBlockManager().network()
-            reply = self.__adblockNetwork.block(req)
-            if reply is not None:
-                reply.setParent(self)
-                return reply
-        
-        # set cache policy
-        if op == QNetworkAccessManager.GetOperation:
-            urlHost = req.url().host()
-            for host in Preferences.getHelp("NoCacheHosts"):
-                if host in urlHost:
-                    req.setAttribute(
-                        QNetworkRequest.CacheLoadControlAttribute,
-                        QNetworkRequest.AlwaysNetwork)
-                    break
-            else:
-                req.setAttribute(
-                    QNetworkRequest.CacheLoadControlAttribute,
-                    Preferences.getHelp("CachePolicy"))
-        else:
-            req.setAttribute(
-                QNetworkRequest.CacheLoadControlAttribute,
-                QNetworkRequest.AlwaysNetwork)
-        
-        # Do Not Track feature
-        if self.__doNotTrack:
-            req.setRawHeader(b"DNT", b"1")
-            req.setRawHeader(b"X-Do-Not-Track", b"1")
-        
-        # Send referer header?
-        if not self.__sendReferer and \
-           req.url().host() not in Preferences.getHelp("SendRefererWhitelist"):
-            req.setRawHeader(b"Referer", b"")
-        
-        reply = QNetworkAccessManager.createRequest(
-            self, op, req, outgoingData)
-        self.requestCreated.emit(op, req, reply)
-        
-        return reply
-    
-    def __authenticationRequired(self, reply, auth):
-        """
-        Private slot to handle an authentication request.
-        
-        @param reply reference to the reply object (QNetworkReply)
-        @param auth reference to the authenticator object (QAuthenticator)
-        """
-        urlRoot = "{0}://{1}"\
-            .format(reply.url().scheme(), reply.url().authority())
-        realm = auth.realm()
-        if not realm and 'realm' in auth.options():
-            realm = auth.option("realm")
-        if realm:
-            info = self.tr("<b>Enter username and password for '{0}', "
-                           "realm '{1}'</b>").format(urlRoot, realm)
-        else:
-            info = self.tr("<b>Enter username and password for '{0}'</b>")\
-                .format(urlRoot)
-        
-        from UI.AuthenticationDialog import AuthenticationDialog
-        import Helpviewer.HelpWindow
-        
-        dlg = AuthenticationDialog(info, auth.user(),
-                                   Preferences.getUser("SavePasswords"),
-                                   Preferences.getUser("SavePasswords"))
-        if Preferences.getUser("SavePasswords"):
-            username, password = \
-                Helpviewer.HelpWindow.HelpWindow.passwordManager().getLogin(
-                    reply.url(), realm)
-            if username:
-                dlg.setData(username, password)
-        if dlg.exec_() == QDialog.Accepted:
-            username, password = dlg.getData()
-            auth.setUser(username)
-            auth.setPassword(password)
-            if Preferences.getUser("SavePasswords") and dlg.shallSave():
-                Helpviewer.HelpWindow.HelpWindow.passwordManager().setLogin(
-                    reply.url(), realm, username, password)
-    
-    def preferencesChanged(self):
-        """
-        Public slot to signal a change of preferences.
-        """
-        self.__setDiskCache()
-        
-        self.__doNotTrack = Preferences.getHelp("DoNotTrack")
-        self.__sendReferer = Preferences.getHelp("SendReferer")
-    
-    def languagesChanged(self):
-        """
-        Public slot to (re-)load the list of accepted languages.
-        """
-        from Helpviewer.HelpLanguagesDialog import HelpLanguagesDialog
-        languages = Preferences.toList(
-            Preferences.Prefs.settings.value(
-                "Help/AcceptLanguages",
-                HelpLanguagesDialog.defaultAcceptLanguages()))
-        self.__acceptLanguage = HelpLanguagesDialog.httpString(languages)
-    
-    def __setDiskCache(self):
-        """
-        Private method to set the disk cache.
-        """
-        if Preferences.getHelp("DiskCacheEnabled"):
-            from PyQt5.QtWebKit import qWebKitVersion
-            from .NetworkDiskCache import NetworkDiskCache
-            diskCache = NetworkDiskCache(self)
-            location = os.path.join(
-                Utilities.getConfigDir(), "browser", 'cache',
-                "{0}-Qt{1}.{2}".format(qWebKitVersion(), *qVersionTuple()))
-            size = Preferences.getHelp("DiskCacheSize") * 1024 * 1024
-            diskCache.setCacheDirectory(location)
-            diskCache.setMaximumCacheSize(size)
-        else:
-            diskCache = None
-        self.setCache(diskCache)
--- a/eric6/Helpviewer/Network/NetworkAccessManagerProxy.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a network access manager proxy for web pages.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
-try:
-    from PyQt5.QtNetwork import QSslError
-    # __IGNORE_EXCEPTION__ __IGNORE_WARNING__
-    SSL_AVAILABLE = True
-except ImportError:
-    SSL_AVAILABLE = False
-
-
-class NetworkAccessManagerProxy(QNetworkAccessManager):
-    """
-    Class implementing a network access manager proxy for web pages.
-    """
-    primaryManager = None
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(NetworkAccessManagerProxy, self).__init__(parent)
-        self.__webPage = None
-    
-    def setWebPage(self, page):
-        """
-        Public method to set the reference to a web page.
-        
-        @param page reference to the web page object (HelpWebPage)
-        """
-        assert page is not None
-        self.__webPage = page
-    
-    def setPrimaryNetworkAccessManager(self, manager):
-        """
-        Public method to set the primary network access manager.
-        
-        @param manager reference to the network access manager object
-            (QNetworkAccessManager)
-        """
-        assert manager is not None
-        if self.__class__.primaryManager is None:
-            self.__class__.primaryManager = manager
-        self.setCookieJar(self.__class__.primaryManager.cookieJar())
-        # do not steal ownership
-        self.cookieJar().setParent(self.__class__.primaryManager)
-        
-        if SSL_AVAILABLE:
-            self.sslErrors.connect(self.__class__.primaryManager.sslErrors)
-        self.proxyAuthenticationRequired.connect(
-            self.__class__.primaryManager.proxyAuthenticationRequired)
-        self.authenticationRequired.connect(
-            self.__class__.primaryManager.authenticationRequired)
-        self.finished.connect(self.__class__.primaryManager.finished)
-    
-    def createRequest(self, op, request, outgoingData=None):
-        """
-        Public method to create a request.
-        
-        @param op the operation to be performed
-            (QNetworkAccessManager.Operation)
-        @param request reference to the request object (QNetworkRequest)
-        @param outgoingData reference to an IODevice containing data to be sent
-            (QIODevice)
-        @return reference to the created reply object (QNetworkReply)
-        """
-        if self.primaryManager is not None:
-            pageRequest = QNetworkRequest(request)
-            if self.__webPage is not None:
-                self.__webPage.populateNetworkRequest(pageRequest)
-            return self.primaryManager.createRequest(
-                op, pageRequest, outgoingData)
-        else:
-            return QNetworkAccessManager.createRequest(
-                self, op, request, outgoingData)
--- a/eric6/Helpviewer/Network/NetworkDiskCache.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a disk cache respecting privacy.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWebKit import QWebSettings
-from PyQt5.QtNetwork import QNetworkDiskCache
-
-
-class NetworkDiskCache(QNetworkDiskCache):
-    """
-    Class implementing a disk cache respecting privacy.
-    """
-    def prepare(self, metaData):
-        """
-        Public method to prepare the disk cache file.
-        
-        @param metaData meta data for a URL (QNetworkCacheMetaData)
-        @return reference to the IO device (QIODevice)
-        """
-        if QWebSettings.globalSettings().testAttribute(
-                QWebSettings.PrivateBrowsingEnabled):
-            return None
-        
-        return QNetworkDiskCache.prepare(self, metaData)
--- a/eric6/Helpviewer/Network/NetworkProtocolUnknownErrorReply.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a QNetworkReply subclass reporting an unknown protocol
-error.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QTimer
-from PyQt5.QtNetwork import QNetworkReply
-
-
-class NetworkProtocolUnknownErrorReply(QNetworkReply):
-    """
-    Class implementing a QNetworkReply subclass reporting an unknown protocol
-    error.
-    """
-    def __init__(self, protocol, parent=None):
-        """
-        Constructor
-        
-        @param protocol protocol name (string)
-        @param parent reference to the parent object (QObject)
-        """
-        super(NetworkProtocolUnknownErrorReply, self).__init__(parent)
-        self.setError(
-            QNetworkReply.ProtocolUnknownError,
-            self.tr("Protocol '{0}' not supported.").format(protocol))
-        QTimer.singleShot(0, self.__fireSignals)
-    
-    def __fireSignals(self):
-        """
-        Private method to send some signals to end the connection.
-        """
-        self.error.emit(QNetworkReply.ProtocolUnknownError)
-        self.finished.emit()
-    
-    def abort(self):
-        """
-        Public slot to abort the operation.
-        """
-        # do nothing
-        pass
-    
-    def bytesAvailable(self):
-        """
-        Public method to determined the bytes available for being read.
-        
-        @return bytes available (integer)
-        """
-        return 0
--- a/eric6/Helpviewer/Network/NetworkReply.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a network reply object for special data.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QTimer, QIODevice, QByteArray
-from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest
-
-
-class NetworkReply(QNetworkReply):
-    """
-    Class implementing a QNetworkReply subclass for special data.
-    """
-    def __init__(self, request, fileData, mimeType, parent=None):
-        """
-        Constructor
-        
-        @param request reference to the request object (QNetworkRequest)
-        @param fileData reference to the data buffer (QByteArray)
-        @param mimeType for the reply (string)
-        @param parent reference to the parent object (QObject)
-        """
-        super(NetworkReply, self).__init__(parent)
-        
-        self.__data = fileData
-        
-        self.setRequest(request)
-        self.setOpenMode(QIODevice.ReadOnly)
-        
-        self.setHeader(QNetworkRequest.ContentTypeHeader, mimeType)
-        self.setHeader(QNetworkRequest.ContentLengthHeader,
-                       QByteArray.number(fileData.length()))
-        self.setAttribute(QNetworkRequest.HttpStatusCodeAttribute, 200)
-        self.setAttribute(QNetworkRequest.HttpReasonPhraseAttribute, "OK")
-        QTimer.singleShot(0, lambda: self.metaDataChanged.emit())
-        QTimer.singleShot(0, lambda: self.readyRead.emit())
-        QTimer.singleShot(0, lambda: self.finished.emit())
-    
-    def abort(self):
-        """
-        Public slot to abort the operation.
-        """
-        # do nothing
-        pass
-    
-    def bytesAvailable(self):
-        """
-        Public method to determined the bytes available for being read.
-        
-        @return bytes available (integer)
-        """
-        return self.__data.length() + QNetworkReply.bytesAvailable(self)
-    
-    def readData(self, maxlen):
-        """
-        Public method to retrieve data from the reply object.
-        
-        @param maxlen maximum number of bytes to read (integer)
-        @return string containing the data (bytes)
-        """
-        len_ = min(maxlen, self.__data.length())
-        buffer = bytes(self.__data[:len_])
-        self.__data.remove(0, len_)
-        return buffer
-    
-    def isFinished(self):
-        """
-        Public method to check, if the reply has finished.
-        
-        @return flag indicating the finished state (boolean)
-        """
-        return True
--- a/eric6/Helpviewer/Network/NoCacheHostsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to manage the list of hosts not to be cached.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt, QSortFilterProxyModel, QStringListModel
-from PyQt5.QtWidgets import QDialog, QInputDialog, QLineEdit
-
-from .Ui_NoCacheHostsDialog import Ui_NoCacheHostsDialog
-
-import Preferences
-
-
-class NoCacheHostsDialog(QDialog, Ui_NoCacheHostsDialog):
-    """
-    Class implementing a dialog to manage the list of hosts not to be cached.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(NoCacheHostsDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.__model = QStringListModel(
-            Preferences.getHelp("NoCacheHosts"), self)
-        self.__model.sort(0)
-        self.__proxyModel = QSortFilterProxyModel(self)
-        self.__proxyModel.setFilterCaseSensitivity(Qt.CaseInsensitive)
-        self.__proxyModel.setSourceModel(self.__model)
-        self.noCacheList.setModel(self.__proxyModel)
-        
-        self.searchEdit.textChanged.connect(
-            self.__proxyModel.setFilterFixedString)
-        
-        self.removeButton.clicked.connect(self.noCacheList.removeSelected)
-        self.removeAllButton.clicked.connect(self.noCacheList.removeAll)
-    
-    @pyqtSlot()
-    def on_addButton_clicked(self):
-        """
-        Private slot to add an entry to the list.
-        """
-        host, ok = QInputDialog.getText(
-            self,
-            self.tr("Not Cached Hosts"),
-            self.tr("Enter host name to add to the list:"),
-            QLineEdit.Normal)
-        if ok and host != "" and host not in self.__model.stringList():
-            self.__model.insertRow(self.__model.rowCount())
-            self.__model.setData(
-                self.__model.index(self.__model.rowCount() - 1), host)
-            self.__model.sort(0)
-    
-    def accept(self):
-        """
-        Public method to accept the dialog data.
-        """
-        Preferences.setHelp("NoCacheHosts", self.__model.stringList())
-        
-        super(NoCacheHostsDialog, self).accept()
--- a/eric6/Helpviewer/Network/NoCacheHostsDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>NoCacheHostsDialog</class>
- <widget class="QDialog" name="NoCacheHostsDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>350</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Not Cached Hosts</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QGridLayout" name="gridLayout_2">
-     <property name="horizontalSpacing">
-      <number>0</number>
-     </property>
-     <item row="0" column="1">
-      <widget class="E5ClearableLineEdit" name="searchEdit">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="minimumSize">
-        <size>
-         <width>300</width>
-         <height>0</height>
-        </size>
-       </property>
-       <property name="toolTip">
-        <string>Enter search term for hosts</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="0">
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="4" column="1">
-      <spacer name="verticalSpacer">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>40</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item row="0" column="1">
-      <widget class="QPushButton" name="addButton">
-       <property name="toolTip">
-        <string>Press to add site to the list</string>
-       </property>
-       <property name="text">
-        <string>&amp;Add...</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="Line" name="line">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QPushButton" name="removeButton">
-       <property name="toolTip">
-        <string>Press to remove the selected entries</string>
-       </property>
-       <property name="text">
-        <string>&amp;Remove</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="1">
-      <widget class="QPushButton" name="removeAllButton">
-       <property name="toolTip">
-        <string>Press to remove all entries</string>
-       </property>
-       <property name="text">
-        <string>R&amp;emove All</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="0" rowspan="5">
-      <widget class="E5ListView" name="noCacheList">
-       <property name="alternatingRowColors">
-        <bool>true</bool>
-       </property>
-       <property name="selectionMode">
-        <enum>QAbstractItemView::ExtendedSelection</enum>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5ListView</class>
-   <extends>QListView</extends>
-   <header>E5Gui/E5ListView.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>searchEdit</tabstop>
-  <tabstop>noCacheList</tabstop>
-  <tabstop>addButton</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>removeAllButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>NoCacheHostsDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>227</x>
-     <y>329</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>NoCacheHostsDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>295</x>
-     <y>335</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/Network/QtHelpAccessHandler.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a scheme access handler for QtHelp.
-"""
-
-from __future__ import unicode_literals
-
-import mimetypes
-import os
-
-from PyQt5.QtCore import QByteArray
-
-from .SchemeAccessHandler import SchemeAccessHandler
-
-from .NetworkReply import NetworkReply
-
-QtDocPath = "qthelp://com.trolltech."
-
-ExtensionMap = {
-    ".bmp": "image/bmp",
-    ".css": "text/css",
-    ".gif": "image/gif",
-    ".html": "text/html",
-    ".htm": "text/html",
-    ".ico": "image/x-icon",
-    ".jpeg": "image/jpeg",
-    ".jpg": "image/jpeg",
-    ".js": "application/x-javascript",
-    ".mng": "video/x-mng",
-    ".pbm": "image/x-portable-bitmap",
-    ".pgm": "image/x-portable-graymap",
-    ".pdf": "application/pdf",
-    ".png": "image/png",
-    ".ppm": "image/x-portable-pixmap",
-    ".rss": "application/rss+xml",
-    ".svg": "image/svg+xml",
-    ".svgz": "image/svg+xml",
-    ".text": "text/plain",
-    ".tif": "image/tiff",
-    ".tiff": "image/tiff",
-    ".txt": "text/plain",
-    ".xbm": "image/x-xbitmap",
-    ".xml": "text/xml",
-    ".xpm": "image/x-xpm",
-    ".xsl": "text/xsl",
-    ".xhtml": "application/xhtml+xml",
-    ".wml": "text/vnd.wap.wml",
-    ".wmlc": "application/vnd.wap.wmlc",
-}
-
-
-class QtHelpAccessHandler(SchemeAccessHandler):
-    """
-    Class implementing a scheme access handler for QtHelp.
-    """
-    def __init__(self, engine, parent=None):
-        """
-        Constructor
-        
-        @param engine reference to the help engine (QHelpEngine)
-        @param parent reference to the parent object (QObject)
-        """
-        SchemeAccessHandler.__init__(self, parent)
-        
-        self.__engine = engine
-    
-    def __mimeFromUrl(self, url):
-        """
-        Private method to guess the mime type given an URL.
-        
-        @param url URL to guess the mime type from (QUrl)
-        @return mime type for the given URL (string)
-        """
-        path = url.path()
-        ext = os.path.splitext(path)[1].lower()
-        if ext in ExtensionMap:
-            return ExtensionMap[ext]
-        else:
-            return "application/octet-stream"
-    
-    def createRequest(self, op, request, outgoingData=None):
-        """
-        Public method to create a request.
-        
-        @param op the operation to be performed
-            (QNetworkAccessManager.Operation)
-        @param request reference to the request object (QNetworkRequest)
-        @param outgoingData reference to an IODevice containing data to be sent
-            (QIODevice)
-        @return reference to the created reply object (QNetworkReply)
-        """
-        url = request.url()
-        strUrl = url.toString()
-        
-        # For some reason the url to load is already wrong (passed from webkit)
-        # though the css file and the references inside should work that way.
-        # One possible problem might be that the css is loaded at the same
-        # level as the html, thus a path inside the css like
-        # (../images/foo.png) might cd out of the virtual folder
-        if not self.__engine.findFile(url).isValid():
-            if strUrl.startswith(QtDocPath):
-                newUrl = request.url()
-                if not newUrl.path().startswith("/qdoc/"):
-                    newUrl.setPath("qdoc" + newUrl.path())
-                    url = newUrl
-                    strUrl = url.toString()
-        
-        mimeType = mimetypes.guess_type(strUrl)[0]
-        if mimeType is None:
-            # do our own (limited) guessing
-            mimeType = self.__mimeFromUrl(url)
-        
-        if self.__engine.findFile(url).isValid():
-            data = self.__engine.fileData(url)
-        else:
-            data = QByteArray(self.tr(
-                """<title>Error 404...</title>"""
-                """<div align="center"><br><br>"""
-                """<h1>The page could not be found</h1><br>"""
-                """<h3>'{0}'</h3></div>""").format(strUrl).encode("utf-8"))
-        return NetworkReply(request, data, mimeType, self.parent())
--- a/eric6/Helpviewer/Network/SchemeAccessHandler.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the base class for specific scheme access handlers.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QObject
-
-
-class SchemeAccessHandler(QObject):
-    """
-    Clase implementing the base class for specific scheme access handlers.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(SchemeAccessHandler, self).__init__(parent)
-    
-    def createRequest(self, op, request, outgoingData=None):
-        """
-        Public method to create a request.
-        
-        @param op the operation to be performed
-            (QNetworkAccessManager.Operation)
-        @param request reference to the request object (QNetworkRequest)
-        @param outgoingData reference to an IODevice containing data to be sent
-            (QIODevice)
-        @return reference to the created reply object (QNetworkReply)
-        @exception NotImplementedError raised to indicate that the method must
-            be implemented by a subclass
-        """
-        raise NotImplementedError()
--- a/eric6/Helpviewer/Network/SendRefererWhitelistDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to manage the Send Referer whitelist.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt, QSortFilterProxyModel, QStringListModel
-from PyQt5.QtWidgets import QDialog, QInputDialog, QLineEdit
-
-from .Ui_SendRefererWhitelistDialog import Ui_SendRefererWhitelistDialog
-
-import Preferences
-
-
-class SendRefererWhitelistDialog(QDialog, Ui_SendRefererWhitelistDialog):
-    """
-    Class implementing a dialog to manage the Send Referer whitelist.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(SendRefererWhitelistDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.__model = QStringListModel(
-            Preferences.getHelp("SendRefererWhitelist"), self)
-        self.__model.sort(0)
-        self.__proxyModel = QSortFilterProxyModel(self)
-        self.__proxyModel.setFilterCaseSensitivity(Qt.CaseInsensitive)
-        self.__proxyModel.setSourceModel(self.__model)
-        self.whitelist.setModel(self.__proxyModel)
-        
-        self.searchEdit.textChanged.connect(
-            self.__proxyModel.setFilterFixedString)
-        
-        self.removeButton.clicked.connect(self.whitelist.removeSelected)
-        self.removeAllButton.clicked.connect(self.whitelist.removeAll)
-    
-    @pyqtSlot()
-    def on_addButton_clicked(self):
-        """
-        Private slot to add an entry to the whitelist.
-        """
-        host, ok = QInputDialog.getText(
-            self,
-            self.tr("Send Referer Whitelist"),
-            self.tr("Enter host name to add to the whitelist:"),
-            QLineEdit.Normal)
-        if ok and host != "" and host not in self.__model.stringList():
-            self.__model.insertRow(self.__model.rowCount())
-            self.__model.setData(
-                self.__model.index(self.__model.rowCount() - 1), host)
-            self.__model.sort(0)
-    
-    def accept(self):
-        """
-        Public method to accept the dialog data.
-        """
-        Preferences.setHelp("SendRefererWhitelist", self.__model.stringList())
-        
-        super(SendRefererWhitelistDialog, self).accept()
--- a/eric6/Helpviewer/Network/SendRefererWhitelistDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,199 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SendRefererWhitelistDialog</class>
- <widget class="QDialog" name="SendRefererWhitelistDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>350</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Send Referer Whitelist</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QGridLayout" name="gridLayout_2">
-     <property name="horizontalSpacing">
-      <number>0</number>
-     </property>
-     <item row="0" column="1">
-      <widget class="E5ClearableLineEdit" name="searchEdit">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="minimumSize">
-        <size>
-         <width>300</width>
-         <height>0</height>
-        </size>
-       </property>
-       <property name="toolTip">
-        <string>Enter search term for hosts</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="0">
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="4" column="1">
-      <spacer name="verticalSpacer">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>40</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item row="0" column="1">
-      <widget class="QPushButton" name="addButton">
-       <property name="toolTip">
-        <string>Press to add site to the whitelist</string>
-       </property>
-       <property name="text">
-        <string>&amp;Add...</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="Line" name="line">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QPushButton" name="removeButton">
-       <property name="toolTip">
-        <string>Press to remove the selected entries</string>
-       </property>
-       <property name="text">
-        <string>&amp;Remove</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="1">
-      <widget class="QPushButton" name="removeAllButton">
-       <property name="toolTip">
-        <string>Press to remove all entries</string>
-       </property>
-       <property name="text">
-        <string>R&amp;emove All</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="0" rowspan="5">
-      <widget class="E5ListView" name="whitelist">
-       <property name="alternatingRowColors">
-        <bool>true</bool>
-       </property>
-       <property name="selectionMode">
-        <enum>QAbstractItemView::ExtendedSelection</enum>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5ListView</class>
-   <extends>QListView</extends>
-   <header>E5Gui/E5ListView.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>searchEdit</tabstop>
-  <tabstop>whitelist</tabstop>
-  <tabstop>addButton</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>removeAllButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>SendRefererWhitelistDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>227</x>
-     <y>329</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>SendRefererWhitelistDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>295</x>
-     <y>335</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/Network/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package containing network related modules.
-"""
--- a/eric6/Helpviewer/OfflineStorage/OfflineStorageConfigDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to configure the offline storage.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot
-from PyQt5.QtWidgets import QDialog
-from PyQt5.QtWebKit import QWebSettings
-
-from .Ui_OfflineStorageConfigDialog import Ui_OfflineStorageConfigDialog
-
-import Preferences
-
-
-class OfflineStorageConfigDialog(QDialog, Ui_OfflineStorageConfigDialog):
-    """
-    Class implementing a dialog to configure the offline storage.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(OfflineStorageConfigDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.databaseEnabledCheckBox.setChecked(
-            Preferences.getHelp("OfflineStorageDatabaseEnabled"))
-        self.databaseQuotaSpinBox.setValue(
-            Preferences.getHelp("OfflineStorageDatabaseQuota"))
-        
-        if hasattr(QWebSettings, "OfflineWebApplicationCacheEnabled"):
-            self.applicationCacheEnabledCheckBox.setChecked(
-                Preferences.getHelp("OfflineWebApplicationCacheEnabled"))
-            self.applicationCacheQuotaSpinBox.setValue(
-                Preferences.getHelp("OfflineWebApplicationCacheQuota"))
-        else:
-            self.applicationCacheGroup.setEnabled(False)
-        
-        if hasattr(QWebSettings, "LocalStorageEnabled"):
-            self.localStorageEnabledCheckBox.setChecked(
-                Preferences.getHelp("LocalStorageEnabled"))
-        else:
-            self.localStorageGroup.setEnabled(False)
-        
-        if hasattr(QWebSettings, "LocalContentCanAccessRemoteUrls"):
-            self.localRemoteUrlsCheckBox.setChecked(
-                Preferences.getHelp("LocalContentCanAccessRemoteUrls"))
-        else:
-            self.localRemoteUrlsCheckBox.setVisible(False)
-        
-        if hasattr(QWebSettings, "LocalContentCanAccessFileUrls"):
-            self.localFileUrlsCheckBox.setChecked(
-                Preferences.getHelp("LocalContentCanAccessFileUrls"))
-        else:
-            self.localFileUrlsCheckBox.setVisible(False)
-        
-        msh = self.minimumSizeHint()
-        self.resize(max(self.width(), msh.width()), msh.height())
-    
-    def storeData(self):
-        """
-        Public slot to store the configuration data.
-        """
-        Preferences.setHelp(
-            "OfflineStorageDatabaseEnabled",
-            self.databaseEnabledCheckBox.isChecked())
-        Preferences.setHelp(
-            "OfflineStorageDatabaseQuota",
-            self.databaseQuotaSpinBox.value())
-        
-        if self.applicationCacheGroup.isEnabled():
-            Preferences.setHelp(
-                "OfflineWebApplicationCacheEnabled",
-                self.applicationCacheEnabledCheckBox.isChecked())
-            Preferences.setHelp(
-                "OfflineWebApplicationCacheQuota",
-                self.applicationCacheQuotaSpinBox.value())
-        
-        if self.localStorageGroup.isEnabled():
-            Preferences.setHelp(
-                "LocalStorageEnabled",
-                self.localStorageEnabledCheckBox.isChecked())
-            if self.localRemoteUrlsCheckBox.isVisible():
-                Preferences.setHelp(
-                    "LocalContentCanAccessRemoteUrls",
-                    self.localRemoteUrlsCheckBox.isChecked())
-            if self.localFileUrlsCheckBox.isVisible():
-                Preferences.setHelp(
-                    "LocalContentCanAccessFileUrls",
-                    self.localFileUrlsCheckBox.isChecked())
-    
-    @pyqtSlot()
-    def on_showDatabasesButton_clicked(self):
-        """
-        Private slot to show a dialog with all databases.
-        """
-        from .WebDatabasesDialog import WebDatabasesDialog
-        dlg = WebDatabasesDialog(self)
-        dlg.exec_()
--- a/eric6/Helpviewer/OfflineStorage/OfflineStorageConfigDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,320 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>OfflineStorageConfigDialog</class>
- <widget class="QDialog" name="OfflineStorageConfigDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>487</width>
-    <height>338</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Offline Storage Settings</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QLabel" name="headerLabel">
-     <property name="text">
-      <string>&lt;b&gt;Configure offline storage&lt;/b&gt;</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="Line" name="line17">
-     <property name="frameShape">
-      <enum>QFrame::HLine</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Sunken</enum>
-     </property>
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="databaseGroup">
-     <property name="title">
-      <string>Web SQL Databases</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout">
-      <item row="0" column="0" colspan="3">
-       <widget class="QCheckBox" name="databaseEnabledCheckBox">
-        <property name="toolTip">
-         <string>Select to enable Web SQL Databases</string>
-        </property>
-        <property name="text">
-         <string>Enable Web SQL Databases</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="label">
-        <property name="text">
-         <string>Default Quota:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QSpinBox" name="databaseQuotaSpinBox">
-        <property name="toolTip">
-         <string>Enter the default quota for Web SQL Databases</string>
-        </property>
-        <property name="alignment">
-         <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-        </property>
-        <property name="suffix">
-         <string> MB</string>
-        </property>
-        <property name="minimum">
-         <number>10</number>
-        </property>
-        <property name="maximum">
-         <number>999</number>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="2">
-       <spacer name="horizontalSpacer_2">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>306</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="1" column="3">
-       <widget class="QPushButton" name="showDatabasesButton">
-        <property name="toolTip">
-         <string>Press to show the Web SQL Databases</string>
-        </property>
-        <property name="text">
-         <string>Show databases...</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="applicationCacheGroup">
-     <property name="title">
-      <string>Offline Web Application Cache</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_2">
-      <item row="0" column="0" colspan="3">
-       <widget class="QCheckBox" name="applicationCacheEnabledCheckBox">
-        <property name="toolTip">
-         <string>Select to enable Offline Web Application Caches</string>
-        </property>
-        <property name="text">
-         <string>Enable Offline Web Application Caches</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="label_2">
-        <property name="text">
-         <string>Default Quota:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QSpinBox" name="applicationCacheQuotaSpinBox">
-        <property name="toolTip">
-         <string>Enter the default quota for Offline Web Application Caches</string>
-        </property>
-        <property name="alignment">
-         <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-        </property>
-        <property name="suffix">
-         <string> MB</string>
-        </property>
-        <property name="minimum">
-         <number>10</number>
-        </property>
-        <property name="maximum">
-         <number>999</number>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="2">
-       <spacer name="horizontalSpacer_3">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>288</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="localStorageGroup">
-     <property name="title">
-      <string>Local Web Storage</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_3">
-      <item row="0" column="0" colspan="2">
-       <widget class="QCheckBox" name="localStorageEnabledCheckBox">
-        <property name="toolTip">
-         <string>Select to enable Local Web Storage</string>
-        </property>
-        <property name="text">
-         <string>Enable Local Web Storage</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="label_3">
-        <property name="text">
-         <string notr="true"/>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QCheckBox" name="localRemoteUrlsCheckBox">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="toolTip">
-         <string>Select to allow local content to access remote URLs</string>
-        </property>
-        <property name="text">
-         <string>Local Content can access Remote URLs</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1">
-       <widget class="QCheckBox" name="localFileUrlsCheckBox">
-        <property name="enabled">
-         <bool>false</bool>
-        </property>
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="toolTip">
-         <string>Select to allow local content to access local files</string>
-        </property>
-        <property name="text">
-         <string>Local Content can access Local Files</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>databaseEnabledCheckBox</tabstop>
-  <tabstop>databaseQuotaSpinBox</tabstop>
-  <tabstop>showDatabasesButton</tabstop>
-  <tabstop>applicationCacheEnabledCheckBox</tabstop>
-  <tabstop>applicationCacheQuotaSpinBox</tabstop>
-  <tabstop>localStorageEnabledCheckBox</tabstop>
-  <tabstop>localRemoteUrlsCheckBox</tabstop>
-  <tabstop>localFileUrlsCheckBox</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>OfflineStorageConfigDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>203</x>
-     <y>495</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>OfflineStorageConfigDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>203</x>
-     <y>495</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>localStorageEnabledCheckBox</sender>
-   <signal>toggled(bool)</signal>
-   <receiver>localRemoteUrlsCheckBox</receiver>
-   <slot>setEnabled(bool)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>66</x>
-     <y>275</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>65</x>
-     <y>290</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>localStorageEnabledCheckBox</sender>
-   <signal>toggled(bool)</signal>
-   <receiver>localFileUrlsCheckBox</receiver>
-   <slot>setEnabled(bool)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>86</x>
-     <y>274</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>86</x>
-     <y>315</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/OfflineStorage/WebDatabasesDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to show all web databases.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt
-from PyQt5.QtGui import QFontMetrics
-from PyQt5.QtWidgets import QDialog
-
-from E5Gui.E5TreeSortFilterProxyModel import E5TreeSortFilterProxyModel
-
-from .Ui_WebDatabasesDialog import Ui_WebDatabasesDialog
-
-from .WebDatabasesModel import WebDatabasesModel
-
-
-class WebDatabasesDialog(QDialog, Ui_WebDatabasesDialog):
-    """
-    Class implementing a dialog to show all web databases.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(WebDatabasesDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.removeButton.clicked.connect(self.databasesTree.removeSelected)
-        self.removeAllButton.clicked.connect(self.databasesTree.removeAll)
-        
-        model = WebDatabasesModel(self)
-        self.__proxyModel = E5TreeSortFilterProxyModel(self)
-        self.__proxyModel.setFilterKeyColumn(-1)
-        self.__proxyModel.setSourceModel(model)
-        
-        self.searchEdit.textChanged.connect(
-            self.__proxyModel.setFilterFixedString)
-        
-        self.databasesTree.setModel(self.__proxyModel)
-        fm = QFontMetrics(self.font())
-        header = fm.width("m") * 30
-        self.databasesTree.header().resizeSection(0, header)
-        self.databasesTree.model().sort(
-            self.databasesTree.header().sortIndicatorSection(),
-            Qt.AscendingOrder)
-        self.databasesTree.expandAll()
--- a/eric6/Helpviewer/OfflineStorage/WebDatabasesDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>WebDatabasesDialog</class>
- <widget class="QDialog" name="WebDatabasesDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>357</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Web SQL Databases</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="0" colspan="3">
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <layout class="QHBoxLayout" name="horizontalLayout">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="E5ClearableLineEdit" name="searchEdit">
-         <property name="minimumSize">
-          <size>
-           <width>300</width>
-           <height>0</height>
-          </size>
-         </property>
-         <property name="toolTip">
-          <string>Enter search term for databases</string>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-    </layout>
-   </item>
-   <item row="1" column="0" colspan="3">
-    <widget class="E5TreeView" name="databasesTree">
-     <property name="alternatingRowColors">
-      <bool>true</bool>
-     </property>
-     <property name="selectionMode">
-      <enum>QAbstractItemView::ExtendedSelection</enum>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="0">
-    <widget class="QPushButton" name="removeButton">
-     <property name="toolTip">
-      <string>Press to remove the selected entries</string>
-     </property>
-     <property name="text">
-      <string>&amp;Remove</string>
-     </property>
-     <property name="autoDefault">
-      <bool>false</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="1">
-    <widget class="QPushButton" name="removeAllButton">
-     <property name="toolTip">
-      <string>Press to remove all entries</string>
-     </property>
-     <property name="text">
-      <string>Remove &amp;All</string>
-     </property>
-     <property name="autoDefault">
-      <bool>false</bool>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="2">
-    <spacer name="horizontalSpacer_2">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>309</width>
-       <height>20</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item row="3" column="0" colspan="3">
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5TreeView</class>
-   <extends>QTreeView</extends>
-   <header>E5Gui/E5TreeView.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>searchEdit</tabstop>
-  <tabstop>databasesTree</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>removeAllButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>WebDatabasesDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>WebDatabasesDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/OfflineStorage/WebDatabasesModel.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,236 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the web databases model.
-"""
-
-from __future__ import unicode_literals
-
-import sys
-
-from PyQt5.QtCore import QAbstractItemModel, QModelIndex, Qt
-from PyQt5.QtWebKit import QWebSecurityOrigin, QWebDatabase
-
-
-class WebDatabasesModel(QAbstractItemModel):
-    """
-    Class implementing the web databases model.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(WebDatabasesModel, self).__init__(parent)
-        self.__headers = [
-            self.tr("Name"),
-            self.tr("Size")
-        ]
-        
-        self.__data = []
-        for origin in QWebSecurityOrigin.allOrigins():
-            self.__data.append([origin, origin.databases()])
-    
-    def removeRows(self, row, count, parent=None):
-        """
-        Public method to remove databases from the model.
-        
-        @param row row of the first database to remove (integer)
-        @param count number of databases to remove (integer)
-        @param parent index of the security origin (QModelIndex)
-        @return flag indicating successful removal (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if row < 0 or count <= 0 or row + count > self.rowCount(parent):
-            return False
-        
-        if parent.isValid():
-            self.beginRemoveRows(parent, row, row + count - 1)
-            parentRow = parent.row()
-            for db in self.__data[parentRow][1][row:row + count]:
-                QWebDatabase.removeDatabase(db)
-            del self.__data[parentRow][1][row:row + count]
-            self.endRemoveRows()
-        else:
-            for parentRow in range(row, row + count):
-                self.beginRemoveRows(self.index(parentRow, 0, parent),
-                                     0, len(self.__data[parentRow][1]) - 1)
-                for db in self.__data[parentRow][1]:
-                    QWebDatabase.removeDatabase(db)
-                del self.__data[parentRow][1][:]
-                self.endRemoveRows()
-        
-        return True
-    
-    def headerData(self, section, orientation, role=Qt.DisplayRole):
-        """
-        Public method to get the header data.
-        
-        @param section section number (integer)
-        @param orientation header orientation (Qt.Orientation)
-        @param role data role (integer)
-        @return header data
-        """
-        if orientation == Qt.Horizontal and role == Qt.DisplayRole:
-            try:
-                return self.__headers[section]
-            except IndexError:
-                pass
-        return QAbstractItemModel.headerData(self, section, orientation, role)
-    
-    def data(self, index, role=Qt.DisplayRole):
-        """
-        Public method to get data from the model.
-        
-        @param index index of entry to get data for (QModelIndex)
-        @param role data role (integer)
-        @return entry data
-        """
-        if not index.isValid() or index.model() != self:
-            return None
-        
-        if role == Qt.DisplayRole:
-            parent = index.parent()
-            if not parent.isValid():
-                # security origin
-                origin = self.__data[index.row()][0]
-                if index.column() == 0:
-                    if origin.host() == "":
-                        return self.tr("Local")
-                    elif origin.port() == 0:
-                        return "{0}://{1}".format(
-                            origin.scheme(),
-                            origin.host(),
-                        )
-                    else:
-                        return "{0}://{1}:{2}".format(
-                            origin.scheme(),
-                            origin.host(),
-                            origin.port(),
-                        )
-                elif index.column() == 1:
-                    return self.__dataString(origin.databaseUsage())
-            else:
-                # web database
-                db = self.__data[parent.row()][1][index.row()]
-                if index.column() == 0:
-                    return self.tr("{0} ({1})").format(
-                        db.displayName(), db.name())
-                elif index.column() == 1:
-                    return self.__dataString(db.size())
-        
-        return None
-    
-    def columnCount(self, parent=None):
-        """
-        Public method to get the number of columns.
-        
-        @param parent index of parent (QModelIndex)
-        @return number of columns (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.column() > 0:
-            return 0
-        else:
-            return len(self.__headers)
-    
-    def rowCount(self, parent=None):
-        """
-        Public method to determine the number of rows.
-        
-        @param parent index of parent (QModelIndex)
-        @return number of rows (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.column() > 0:
-            return 0
-        
-        if not parent.isValid():
-            return len(self.__data)
-        else:
-            return len(self.__data[parent.row()][1])
-    
-    def index(self, row, column, parent=None):
-        """
-        Public method to get a model index for an entry.
-        
-        @param row row number (integer)
-        @param column column number (integer)
-        @param parent index of the parent (QModelIndex)
-        @return index (QModelIndex)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if row < 0 or column < 0 or \
-           row >= self.rowCount(parent) or column >= self.columnCount(parent):
-            return QModelIndex()
-        
-        if parent.isValid():
-            return self.createIndex(row, column, parent.row())
-        else:
-            return self.createIndex(row, column, sys.maxsize)
-    
-    def parent(self, index=None):
-        """
-        Public method to get the index of the parent entry.
-        
-        @param index index of the child entry (QModelIndex)
-        @return index of the parent entry (QModelIndex)
-        """
-        if index is None:
-            index = QModelIndex()
-        
-        if not index.isValid():
-            return QModelIndex()
-        
-        if index.internalId() == sys.maxsize:
-            return QModelIndex()
-        
-        return self.createIndex(index.internalId(), 0)
-    
-    def hasChildren(self, parent=None):
-        """
-        Public method to check, if a parent node has some children.
-        
-        @param parent index of the parent node (QModelIndex)
-        @return flag indicating the presence of children (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if not parent.isValid():
-            return True
-        
-        if parent.internalId() == sys.maxsize:
-            return True
-        
-        return False
-    
-    def __dataString(self, size):
-        """
-        Private method to generate a formatted data string.
-        
-        @param size size to be formatted (integer)
-        @return formatted data string (string)
-        """
-        unit = ""
-        if size < 1024:
-            unit = self.tr("bytes")
-        elif size < 1024 * 1024:
-            size /= 1024
-            unit = self.tr("kB")
-        else:
-            size /= 1024 * 1024
-            unit = self.tr("MB")
-        return "{0:.1f} {1}".format(size, unit)
--- a/eric6/Helpviewer/OfflineStorage/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the offline storage related dialogs and models.
-"""
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Amazoncom.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>Amazon.com</ShortName>
-    <Description>Amazon.com Search</Description>
-    <Url method="get" type="text/html" template="http://www.amazon.com/exec/obidos/external-search/?field-keywords={searchTerms}"/>
-    <Image>http://www.amazon.com/favicon.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Bing.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>Bing</ShortName>
-    <Description>Bing Web Search</Description>
-    <Url method="get" type="text/html" template="http://www.bing.com/search?cc={language}&amp;q={searchTerms}"/>
-    <Image>http://www.bing.com/s/wlflag.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/DeEn_Beolingus.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>De-En Beolingus</ShortName>
-    <Description>Beolingus: German-English Dictionary</Description>
-    <Url method="get" type="text/html" template="http://dict.tu-chemnitz.de/?query={searchTerms}"/>
-    <Url method="get" type="application/x-suggestions+json" template="http://dict.tu-chemnitz.de/sugg.php?json=1&amp;s={searchTerms}"/>
-    <Image>http://dict.tu-chemnitz.de/pics/beo-de.png</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/DefaultSearchEngines.qrc	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-<!DOCTYPE RCC>
-<RCC version="1.0">
-<qresource>
-  <file>Amazoncom.xml</file>
-  <file>Bing.xml</file>
-  <file>DeEn_Beolingus.xml</file>
-  <file>DuckDuckGo.xml</file>
-  <file>Facebook.xml</file>
-  <file>Google.xml</file>
-  <file>Google_Im_Feeling_Lucky.xml</file>
-  <file>LEO_DeuEng.xml</file>
-  <file>LinuxMagazin.xml</file>
-  <file>PyPI.xml</file>
-  <file>Reddit.xml</file>
-  <file>Wikia.xml</file>
-  <file>Wikia_en.xml</file>
-  <file>Wikipedia.xml</file>
-  <file>Wiktionary.xml</file>
-  <file>Yahoo.xml</file>
-  <file>YouTube.xml</file>
-</qresource>
-</RCC>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/DefaultSearchEngines_rc.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,806 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Resource object code
-#
-# Created by: The Resource Compiler for PyQt5 (Qt v5.12.1)
-#
-# WARNING! All changes made in this file will be lost!
-
-from PyQt5 import QtCore
-
-qt_resource_data = b"\
-\x00\x00\x02\x46\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x57\x69\x6b\x69\x61\x20\
-\x28\x65\x6e\x29\x3c\x2f\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\
-\x0a\x20\x20\x20\x20\x3c\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\
-\x6e\x3e\x57\x69\x6b\x69\x61\x20\x28\x65\x6e\x29\x3c\x2f\x44\x65\
-\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x20\x20\x3c\
-\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x67\x65\x74\x22\
-\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x68\x74\x6d\x6c\
-\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\x68\x74\x74\x70\
-\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x69\x6b\x69\x61\x2e\x63\x6f\x6d\
-\x2f\x69\x6e\x64\x65\x78\x2e\x70\x68\x70\x3f\x74\x69\x74\x6c\x65\
-\x3d\x53\x70\x65\x63\x69\x61\x6c\x3a\x53\x65\x61\x72\x63\x68\x26\
-\x61\x6d\x70\x3b\x73\x65\x61\x72\x63\x68\x3d\x7b\x73\x65\x61\x72\
-\x63\x68\x54\x65\x72\x6d\x73\x7d\x22\x2f\x3e\x0a\x20\x20\x20\x20\
-\x3c\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x67\x65\x74\
-\x22\x20\x74\x79\x70\x65\x3d\x22\x61\x70\x70\x6c\x69\x63\x61\x74\
-\x69\x6f\x6e\x2f\x78\x2d\x73\x75\x67\x67\x65\x73\x74\x69\x6f\x6e\
-\x73\x2b\x6a\x73\x6f\x6e\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\
-\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x77\x69\x6b\
-\x69\x61\x2e\x63\x6f\x6d\x2f\x61\x70\x69\x2e\x70\x68\x70\x3f\x61\
-\x63\x74\x69\x6f\x6e\x3d\x6f\x70\x65\x6e\x73\x65\x61\x72\x63\x68\
-\x26\x61\x6d\x70\x3b\x73\x65\x61\x72\x63\x68\x3d\x7b\x73\x65\x61\
-\x72\x63\x68\x54\x65\x72\x6d\x73\x7d\x26\x61\x6d\x70\x3b\x6e\x61\
-\x6d\x65\x73\x70\x61\x63\x65\x3d\x31\x22\x2f\x3e\x0a\x20\x20\x20\
-\x20\x3c\x49\x6d\x61\x67\x65\x3e\x68\x74\x74\x70\x3a\x2f\x2f\x69\
-\x6d\x61\x67\x65\x73\x2e\x77\x69\x6b\x69\x61\x2e\x63\x6f\x6d\x2f\
-\x77\x69\x6b\x69\x61\x67\x6c\x6f\x62\x61\x6c\x2f\x69\x6d\x61\x67\
-\x65\x73\x2f\x36\x2f\x36\x34\x2f\x46\x61\x76\x69\x63\x6f\x6e\x2e\
-\x69\x63\x6f\x3c\x2f\x49\x6d\x61\x67\x65\x3e\x0a\x3c\x2f\x4f\x70\
-\x65\x6e\x53\x65\x61\x72\x63\x68\x44\x65\x73\x63\x72\x69\x70\x74\
-\x69\x6f\x6e\x3e\x0a\
-\x00\x00\x02\x5b\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x57\x69\x6b\x69\x70\x65\
-\x64\x69\x61\x3c\x2f\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x0a\
-\x20\x20\x20\x20\x3c\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\
-\x3e\x46\x75\x6c\x6c\x20\x74\x65\x78\x74\x20\x73\x65\x61\x72\x63\
-\x68\x20\x69\x6e\x20\x57\x69\x6b\x69\x70\x65\x64\x69\x61\x3c\x2f\
-\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x20\
-\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x67\x65\
-\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x68\x74\
-\x6d\x6c\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\x68\x74\
-\x74\x70\x3a\x2f\x2f\x7b\x63\x6f\x75\x6e\x74\x72\x79\x7d\x2e\x77\
-\x69\x6b\x69\x70\x65\x64\x69\x61\x2e\x6f\x72\x67\x2f\x77\x69\x6b\
-\x69\x2f\x53\x70\x65\x63\x69\x61\x6c\x3a\x53\x65\x61\x72\x63\x68\
-\x3f\x73\x65\x61\x72\x63\x68\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\
-\x65\x72\x6d\x73\x7d\x26\x61\x6d\x70\x3b\x66\x75\x6c\x6c\x74\x65\
-\x78\x74\x3d\x53\x65\x61\x72\x63\x68\x22\x2f\x3e\x0a\x20\x20\x20\
-\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x67\x65\
-\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x61\x70\x70\x6c\x69\x63\x61\
-\x74\x69\x6f\x6e\x2f\x78\x2d\x73\x75\x67\x67\x65\x73\x74\x69\x6f\
-\x6e\x73\x2b\x6a\x73\x6f\x6e\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\
-\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x7b\x63\x6f\x75\x6e\x74\
-\x72\x79\x7d\x2e\x77\x69\x6b\x69\x70\x65\x64\x69\x61\x2e\x6f\x72\
-\x67\x2f\x77\x2f\x61\x70\x69\x2e\x70\x68\x70\x3f\x61\x63\x74\x69\
-\x6f\x6e\x3d\x6f\x70\x65\x6e\x73\x65\x61\x72\x63\x68\x26\x61\x6d\
-\x70\x3b\x73\x65\x61\x72\x63\x68\x3d\x7b\x73\x65\x61\x72\x63\x68\
-\x54\x65\x72\x6d\x73\x7d\x26\x61\x6d\x70\x3b\x6e\x61\x6d\x65\x73\
-\x70\x61\x63\x65\x3d\x30\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x49\
-\x6d\x61\x67\x65\x3e\x68\x74\x74\x70\x3a\x2f\x2f\x65\x6e\x2e\x77\
-\x69\x6b\x69\x70\x65\x64\x69\x61\x2e\x6f\x72\x67\x2f\x66\x61\x76\
-\x69\x63\x6f\x6e\x2e\x69\x63\x6f\x3c\x2f\x49\x6d\x61\x67\x65\x3e\
-\x0a\x3c\x2f\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\x68\x44\x65\x73\
-\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\
-\x00\x00\x01\x7e\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x46\x61\x63\x65\x62\x6f\
-\x6f\x6b\x3c\x2f\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x0a\x20\
-\x20\x20\x20\x3c\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\
-\x53\x65\x61\x72\x63\x68\x20\x46\x61\x63\x65\x62\x6f\x6f\x6b\x3c\
-\x2f\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\
-\x20\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x67\
-\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x68\
-\x74\x6d\x6c\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\x68\
-\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x66\x61\x63\x65\x62\x6f\
-\x6f\x6b\x2e\x63\x6f\x6d\x2f\x73\x65\x61\x72\x63\x68\x2f\x3f\x73\
-\x72\x63\x3d\x6f\x73\x26\x61\x6d\x70\x3b\x71\x3d\x7b\x73\x65\x61\
-\x72\x63\x68\x54\x65\x72\x6d\x73\x7d\x22\x2f\x3e\x0a\x20\x20\x20\
-\x20\x3c\x49\x6d\x61\x67\x65\x3e\x68\x74\x74\x70\x3a\x2f\x2f\x77\
-\x77\x77\x2e\x66\x61\x63\x65\x62\x6f\x6f\x6b\x2e\x63\x6f\x6d\x2f\
-\x66\x61\x76\x69\x63\x6f\x6e\x2e\x69\x63\x6f\x3c\x2f\x49\x6d\x61\
-\x67\x65\x3e\x0a\x3c\x2f\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\x68\
-\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\
-\x00\x00\x02\x64\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x47\x6f\x6f\x67\x6c\x65\
-\x20\x28\x49\x27\x6d\x20\x46\x65\x65\x6c\x69\x6e\x67\x20\x4c\x75\
-\x63\x6b\x79\x29\x3c\x2f\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\
-\x0a\x20\x20\x20\x20\x3c\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\
-\x6e\x3e\x47\x6f\x6f\x67\x6c\x65\x20\x57\x65\x62\x20\x53\x65\x61\
-\x72\x63\x68\x3c\x2f\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\
-\x3e\x0a\x20\x20\x20\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\
-\x64\x3d\x22\x67\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x74\x65\
-\x78\x74\x2f\x68\x74\x6d\x6c\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\
-\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x67\x6f\
-\x6f\x67\x6c\x65\x2e\x63\x6f\x6d\x2f\x73\x65\x61\x72\x63\x68\x3f\
-\x62\x74\x6e\x49\x3d\x26\x61\x6d\x70\x3b\x68\x6c\x3d\x7b\x6c\x61\
-\x6e\x67\x75\x61\x67\x65\x7d\x26\x61\x6d\x70\x3b\x6c\x72\x3d\x6c\
-\x61\x6e\x67\x5f\x7b\x6c\x61\x6e\x67\x75\x61\x67\x65\x7d\x26\x61\
-\x6d\x70\x3b\x71\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\x65\x72\x6d\
-\x73\x7d\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x55\x72\x6c\x20\x6d\
-\x65\x74\x68\x6f\x64\x3d\x22\x67\x65\x74\x22\x20\x74\x79\x70\x65\
-\x3d\x22\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x78\x2d\
-\x73\x75\x67\x67\x65\x73\x74\x69\x6f\x6e\x73\x2b\x6a\x73\x6f\x6e\
-\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\x68\x74\x74\x70\
-\x3a\x2f\x2f\x73\x75\x67\x67\x65\x73\x74\x71\x75\x65\x72\x69\x65\
-\x73\x2e\x67\x6f\x6f\x67\x6c\x65\x2e\x63\x6f\x6d\x2f\x63\x6f\x6d\
-\x70\x6c\x65\x74\x65\x2f\x73\x65\x61\x72\x63\x68\x3f\x6f\x75\x74\
-\x70\x75\x74\x3d\x66\x69\x72\x65\x66\x6f\x78\x26\x61\x6d\x70\x3b\
-\x68\x6c\x3d\x7b\x6c\x61\x6e\x67\x75\x61\x67\x65\x7d\x26\x61\x6d\
-\x70\x3b\x71\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\x65\x72\x6d\x73\
-\x7d\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x49\x6d\x61\x67\x65\x3e\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x67\x6f\x6f\x67\x6c\
-\x65\x2e\x63\x6f\x6d\x2f\x66\x61\x76\x69\x63\x6f\x6e\x2e\x69\x63\
-\x6f\x3c\x2f\x49\x6d\x61\x67\x65\x3e\x0a\x3c\x2f\x4f\x70\x65\x6e\
-\x53\x65\x61\x72\x63\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\
-\x6e\x3e\x0a\
-\x00\x00\x02\x1e\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x44\x65\x2d\x45\x6e\x20\
-\x42\x65\x6f\x6c\x69\x6e\x67\x75\x73\x3c\x2f\x53\x68\x6f\x72\x74\
-\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\x20\x3c\x44\x65\x73\x63\x72\
-\x69\x70\x74\x69\x6f\x6e\x3e\x42\x65\x6f\x6c\x69\x6e\x67\x75\x73\
-\x3a\x20\x47\x65\x72\x6d\x61\x6e\x2d\x45\x6e\x67\x6c\x69\x73\x68\
-\x20\x44\x69\x63\x74\x69\x6f\x6e\x61\x72\x79\x3c\x2f\x44\x65\x73\
-\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x20\x20\x3c\x55\
-\x72\x6c\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x67\x65\x74\x22\x20\
-\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x68\x74\x6d\x6c\x22\
-\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x64\x69\x63\x74\x2e\x74\x75\x2d\x63\x68\x65\x6d\x6e\x69\
-\x74\x7a\x2e\x64\x65\x2f\x3f\x71\x75\x65\x72\x79\x3d\x7b\x73\x65\
-\x61\x72\x63\x68\x54\x65\x72\x6d\x73\x7d\x22\x2f\x3e\x0a\x20\x20\
-\x20\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x67\
-\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x61\x70\x70\x6c\x69\x63\
-\x61\x74\x69\x6f\x6e\x2f\x78\x2d\x73\x75\x67\x67\x65\x73\x74\x69\
-\x6f\x6e\x73\x2b\x6a\x73\x6f\x6e\x22\x20\x74\x65\x6d\x70\x6c\x61\
-\x74\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x64\x69\x63\x74\x2e\
-\x74\x75\x2d\x63\x68\x65\x6d\x6e\x69\x74\x7a\x2e\x64\x65\x2f\x73\
-\x75\x67\x67\x2e\x70\x68\x70\x3f\x6a\x73\x6f\x6e\x3d\x31\x26\x61\
-\x6d\x70\x3b\x73\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\x65\x72\x6d\
-\x73\x7d\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x49\x6d\x61\x67\x65\
-\x3e\x68\x74\x74\x70\x3a\x2f\x2f\x64\x69\x63\x74\x2e\x74\x75\x2d\
-\x63\x68\x65\x6d\x6e\x69\x74\x7a\x2e\x64\x65\x2f\x70\x69\x63\x73\
-\x2f\x62\x65\x6f\x2d\x64\x65\x2e\x70\x6e\x67\x3c\x2f\x49\x6d\x61\
-\x67\x65\x3e\x0a\x3c\x2f\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\x68\
-\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\
-\x00\x00\x02\x27\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x59\x61\x68\x6f\x6f\x21\
-\x3c\x2f\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\
-\x20\x3c\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x59\x61\
-\x68\x6f\x6f\x20\x57\x65\x62\x20\x53\x65\x61\x72\x63\x68\x3c\x2f\
-\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x20\
-\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x67\x65\
-\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x68\x74\
-\x6d\x6c\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\x68\x74\
-\x74\x70\x3a\x2f\x2f\x73\x65\x61\x72\x63\x68\x2e\x79\x61\x68\x6f\
-\x6f\x2e\x63\x6f\x6d\x2f\x73\x65\x61\x72\x63\x68\x3f\x65\x69\x3d\
-\x75\x74\x66\x2d\x38\x26\x61\x6d\x70\x3b\x66\x72\x3d\x73\x66\x70\
-\x26\x61\x6d\x70\x3b\x69\x73\x63\x71\x72\x79\x3d\x26\x61\x6d\x70\
-\x3b\x70\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\x65\x72\x6d\x73\x7d\
-\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\
-\x68\x6f\x64\x3d\x22\x67\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\
-\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x78\x2d\x73\x75\
-\x67\x67\x65\x73\x74\x69\x6f\x6e\x73\x2b\x6a\x73\x6f\x6e\x22\x20\
-\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\
-\x2f\x66\x66\x2e\x73\x65\x61\x72\x63\x68\x2e\x79\x61\x68\x6f\x6f\
-\x2e\x63\x6f\x6d\x2f\x67\x6f\x73\x73\x69\x70\x3f\x6f\x75\x74\x70\
-\x75\x74\x3d\x66\x78\x6a\x73\x6f\x6e\x26\x61\x6d\x70\x3b\x63\x6f\
-\x6d\x6d\x61\x6e\x64\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\x65\x72\
-\x6d\x73\x7d\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x49\x6d\x61\x67\
-\x65\x3e\x68\x74\x74\x70\x3a\x2f\x2f\x6d\x2e\x77\x77\x77\x2e\x79\
-\x61\x68\x6f\x6f\x2e\x63\x6f\x6d\x2f\x66\x61\x76\x69\x63\x6f\x6e\
-\x2e\x69\x63\x6f\x3c\x2f\x49\x6d\x61\x67\x65\x3e\x0a\x3c\x2f\x4f\
-\x70\x65\x6e\x53\x65\x61\x72\x63\x68\x44\x65\x73\x63\x72\x69\x70\
-\x74\x69\x6f\x6e\x3e\x0a\
-\x00\x00\x02\x46\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x47\x6f\x6f\x67\x6c\x65\
-\x3c\x2f\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\
-\x20\x3c\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x47\x6f\
-\x6f\x67\x6c\x65\x20\x57\x65\x62\x20\x53\x65\x61\x72\x63\x68\x3c\
-\x2f\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\
-\x20\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x67\
-\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x68\
-\x74\x6d\x6c\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\x68\
-\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x67\x6f\x6f\x67\x6c\x65\
-\x2e\x63\x6f\x6d\x2f\x73\x65\x61\x72\x63\x68\x3f\x68\x6c\x3d\x7b\
-\x6c\x61\x6e\x67\x75\x61\x67\x65\x7d\x26\x61\x6d\x70\x3b\x6c\x72\
-\x3d\x6c\x61\x6e\x67\x5f\x7b\x6c\x61\x6e\x67\x75\x61\x67\x65\x7d\
-\x26\x61\x6d\x70\x3b\x71\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\x65\
-\x72\x6d\x73\x7d\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x55\x72\x6c\
-\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x67\x65\x74\x22\x20\x74\x79\
-\x70\x65\x3d\x22\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\
-\x78\x2d\x73\x75\x67\x67\x65\x73\x74\x69\x6f\x6e\x73\x2b\x6a\x73\
-\x6f\x6e\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\x68\x74\
-\x74\x70\x3a\x2f\x2f\x73\x75\x67\x67\x65\x73\x74\x71\x75\x65\x72\
-\x69\x65\x73\x2e\x67\x6f\x6f\x67\x6c\x65\x2e\x63\x6f\x6d\x2f\x63\
-\x6f\x6d\x70\x6c\x65\x74\x65\x2f\x73\x65\x61\x72\x63\x68\x3f\x6f\
-\x75\x74\x70\x75\x74\x3d\x66\x69\x72\x65\x66\x6f\x78\x26\x61\x6d\
-\x70\x3b\x68\x6c\x3d\x7b\x6c\x61\x6e\x67\x75\x61\x67\x65\x7d\x26\
-\x61\x6d\x70\x3b\x71\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\x65\x72\
-\x6d\x73\x7d\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x49\x6d\x61\x67\
-\x65\x3e\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x67\x6f\x6f\
-\x67\x6c\x65\x2e\x63\x6f\x6d\x2f\x66\x61\x76\x69\x63\x6f\x6e\x2e\
-\x69\x63\x6f\x3c\x2f\x49\x6d\x61\x67\x65\x3e\x0a\x3c\x2f\x4f\x70\
-\x65\x6e\x53\x65\x61\x72\x63\x68\x44\x65\x73\x63\x72\x69\x70\x74\
-\x69\x6f\x6e\x3e\x0a\
-\x00\x00\x01\x79\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x42\x69\x6e\x67\x3c\x2f\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\x20\x3c\
-\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x42\x69\x6e\x67\
-\x20\x57\x65\x62\x20\x53\x65\x61\x72\x63\x68\x3c\x2f\x44\x65\x73\
-\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x20\x20\x3c\x55\
-\x72\x6c\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x67\x65\x74\x22\x20\
-\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x68\x74\x6d\x6c\x22\
-\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x62\x69\x6e\x67\x2e\x63\x6f\x6d\x2f\x73\
-\x65\x61\x72\x63\x68\x3f\x63\x63\x3d\x7b\x6c\x61\x6e\x67\x75\x61\
-\x67\x65\x7d\x26\x61\x6d\x70\x3b\x71\x3d\x7b\x73\x65\x61\x72\x63\
-\x68\x54\x65\x72\x6d\x73\x7d\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\
-\x49\x6d\x61\x67\x65\x3e\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\
-\x2e\x62\x69\x6e\x67\x2e\x63\x6f\x6d\x2f\x73\x2f\x77\x6c\x66\x6c\
-\x61\x67\x2e\x69\x63\x6f\x3c\x2f\x49\x6d\x61\x67\x65\x3e\x0a\x3c\
-\x2f\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\x68\x44\x65\x73\x63\x72\
-\x69\x70\x74\x69\x6f\x6e\x3e\x0a\
-\x00\x00\x06\xfe\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x44\x75\x63\x6b\x44\x75\
-\x63\x6b\x47\x6f\x3c\x2f\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\
-\x0a\x20\x20\x20\x20\x3c\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\
-\x6e\x3e\x53\x65\x61\x72\x63\x68\x20\x44\x75\x63\x6b\x44\x75\x63\
-\x6b\x47\x6f\x3c\x2f\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\
-\x3e\x0a\x20\x20\x20\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\
-\x64\x3d\x22\x67\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x74\x65\
-\x78\x74\x2f\x68\x74\x6d\x6c\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\
-\x65\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x64\x75\x63\x6b\x64\
-\x75\x63\x6b\x67\x6f\x2e\x63\x6f\x6d\x2f\x3f\x71\x3d\x7b\x73\x65\
-\x61\x72\x63\x68\x54\x65\x72\x6d\x73\x7d\x22\x2f\x3e\x0a\x20\x20\
-\x20\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x67\
-\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x61\x70\x70\x6c\x69\x63\
-\x61\x74\x69\x6f\x6e\x2f\x78\x2d\x73\x75\x67\x67\x65\x73\x74\x69\
-\x6f\x6e\x73\x2b\x6a\x73\x6f\x6e\x22\x20\x74\x65\x6d\x70\x6c\x61\
-\x74\x65\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x61\x63\x2e\x64\
-\x75\x63\x6b\x64\x75\x63\x6b\x67\x6f\x2e\x63\x6f\x6d\x2f\x61\x63\
-\x2f\x3f\x71\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\x65\x72\x6d\x73\
-\x7d\x26\x61\x6d\x70\x3b\x74\x79\x70\x65\x3d\x6c\x69\x73\x74\x22\
-\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x49\x6d\x61\x67\x65\x3e\x64\x61\
-\x74\x61\x3a\x69\x6d\x61\x67\x65\x2f\x78\x2d\x69\x63\x6f\x6e\x3b\
-\x62\x61\x73\x65\x36\x34\x2c\x69\x56\x42\x4f\x52\x77\x30\x4b\x47\
-\x67\x6f\x41\x41\x41\x41\x4e\x53\x55\x68\x45\x55\x67\x41\x41\x41\
-\x42\x41\x41\x41\x41\x41\x51\x43\x41\x4d\x41\x41\x41\x41\x6f\x4c\
-\x51\x39\x54\x41\x41\x41\x41\x42\x47\x64\x42\x54\x55\x45\x41\x41\
-\x4c\x47\x50\x43\x2f\x78\x68\x42\x51\x41\x41\x41\x43\x42\x6a\x53\
-\x46\x4a\x4e\x41\x41\x42\x36\x4a\x67\x41\x41\x67\x49\x51\x41\x41\
-\x50\x6f\x41\x41\x41\x43\x41\x36\x41\x41\x41\x64\x54\x41\x41\x41\
-\x4f\x70\x67\x41\x41\x41\x36\x6d\x41\x41\x41\x46\x33\x43\x63\x75\
-\x6c\x45\x38\x41\x41\x41\x42\x38\x6c\x42\x4d\x56\x45\x55\x41\x41\
-\x41\x44\x6b\x52\x51\x7a\x6a\x50\x77\x50\x6a\x51\x51\x58\x6b\x52\
-\x51\x33\x69\x50\x77\x54\x69\x51\x51\x58\x67\x50\x51\x50\x65\x51\
-\x67\x72\x63\x4f\x77\x50\x56\x4e\x67\x44\x56\x4e\x51\x44\x57\x4f\
-\x67\x62\x54\x4d\x77\x44\x52\x4d\x67\x44\x51\x4d\x77\x44\x53\x4d\
-\x77\x44\x52\x4e\x77\x54\x51\x4c\x67\x44\x52\x4a\x67\x44\x53\x4a\
-\x77\x44\x53\x4c\x67\x44\x53\x4e\x77\x54\x6a\x4f\x67\x44\x69\x4f\
-\x41\x44\x6a\x4f\x51\x44\x6b\x50\x41\x44\x68\x51\x41\x58\x7a\x73\
-\x35\x76\x2b\x2f\x66\x76\x2f\x2f\x2f\x2f\x30\x76\x4b\x62\x69\x52\
-\x51\x76\x67\x50\x51\x48\x70\x64\x55\x72\x38\x35\x4e\x7a\x75\x6b\
-\x6e\x50\x64\x4b\x67\x44\x63\x49\x77\x44\x6e\x5a\x7a\x6a\x32\x77\
-\x37\x48\x71\x65\x55\x2f\x67\x50\x51\x4c\x73\x69\x6d\x62\x2f\x2b\
-\x50\x66\x74\x6a\x57\x6e\x39\x37\x4f\x62\x70\x62\x30\x4c\x64\x4a\
-\x51\x44\x65\x4c\x51\x44\x74\x6a\x6d\x76\x73\x69\x32\x6a\x67\x53\
-\x42\x44\x6e\x62\x55\x4c\x67\x4f\x51\x44\x2f\x33\x39\x48\x67\x4c\
-\x51\x44\x65\x4d\x67\x44\x70\x65\x46\x4c\x67\x53\x42\x48\x30\x76\
-\x36\x37\x30\x75\x71\x62\x61\x4a\x51\x44\x32\x71\x49\x6d\x57\x76\
-\x50\x2f\x47\x31\x4f\x62\x35\x2b\x2f\x33\x75\x2f\x2f\x2b\x66\x76\
-\x76\x58\x79\x70\x34\x37\x64\x4d\x77\x44\x61\x4c\x77\x44\x30\x75\
-\x36\x76\x30\x76\x36\x2f\x61\x4e\x51\x44\x69\x58\x69\x2f\x61\x4b\
-\x51\x44\x33\x71\x6f\x7a\x55\x37\x2f\x38\x67\x53\x59\x32\x76\x76\
-\x74\x67\x30\x5a\x4b\x2f\x4f\x71\x4c\x44\x61\x4b\x51\x48\x59\x4b\
-\x67\x4c\x67\x57\x54\x66\x61\x4e\x41\x44\x5a\x4d\x67\x44\x5a\x4d\
-\x41\x44\x5a\x4c\x41\x44\x7a\x71\x70\x44\x37\x2f\x2f\x2b\x78\x77\
-\x64\x7a\x2f\x2f\x39\x48\x2f\x35\x42\x6e\x2f\x37\x42\x6e\x2f\x2f\
-\x41\x44\x6f\x66\x41\x44\x59\x4d\x41\x44\x59\x4d\x51\x44\x5a\x4f\
-\x67\x50\x58\x4c\x67\x44\x69\x5a\x44\x6a\x2f\x2f\x39\x37\x2f\x30\
-\x41\x44\x33\x74\x51\x44\x76\x6c\x67\x48\x5a\x4f\x67\x62\x58\x4c\
-\x41\x54\x58\x4d\x41\x44\x57\x4d\x67\x44\x66\x58\x6a\x4c\x56\x4c\
-\x51\x44\x2f\x2f\x2f\x7a\x2b\x30\x41\x44\x2f\x33\x52\x6e\x2f\x79\
-\x52\x6e\x77\x6e\x51\x44\x63\x56\x6a\x62\x56\x4d\x51\x44\x79\x76\
-\x36\x37\x77\x75\x4b\x54\x53\x4a\x77\x44\x52\x48\x51\x44\x2b\x38\
-\x4f\x2f\x74\x67\x33\x2f\x69\x51\x51\x44\x77\x68\x41\x48\x6e\x61\
-\x77\x48\x57\x4d\x41\x44\x76\x74\x4b\x66\x79\x76\x61\x37\x58\x51\
-\x78\x48\x67\x61\x30\x62\x51\x47\x51\x44\x32\x76\x62\x48\x2f\x75\
-\x38\x4c\x58\x49\x51\x43\x6d\x50\x51\x7a\x6a\x61\x30\x37\x58\x51\
-\x78\x4c\x6c\x69\x47\x6e\x39\x39\x66\x50\x6b\x63\x56\x48\x76\x68\
-\x6e\x47\x5a\x35\x56\x67\x75\x76\x55\x55\x35\x77\x6b\x74\x42\x77\
-\x43\x63\x41\x67\x78\x7a\x79\x64\x56\x76\x2f\x38\x2f\x58\x6d\x69\
-\x47\x6e\x67\x64\x6c\x4c\x2b\x79\x73\x69\x33\x2b\x49\x38\x4c\x74\
-\x43\x45\x38\x30\x56\x36\x50\x33\x59\x6d\x58\x34\x73\x44\x6c\x65\
-\x6c\x6a\x53\x4e\x51\x4c\x7a\x72\x36\x44\x37\x73\x4b\x50\x58\x4e\
-\x51\x54\x53\x49\x77\x41\x45\x41\x62\x4d\x72\x41\x41\x41\x41\x46\
-\x33\x52\x53\x54\x6c\x4d\x41\x52\x71\x53\x6b\x52\x76\x50\x7a\x38\
-\x30\x50\x54\x70\x4b\x52\x47\x33\x66\x50\x65\x33\x68\x69\x6f\x39\
-\x2f\x65\x6f\x47\x50\x35\x30\x6a\x4e\x73\x41\x41\x41\x41\x42\x59\
-\x6b\x74\x48\x52\x42\x35\x79\x43\x69\x41\x72\x41\x41\x41\x41\x79\
-\x45\x6c\x45\x51\x56\x51\x59\x47\x51\x58\x42\x76\x55\x71\x43\x59\
-\x52\x69\x41\x34\x66\x75\x32\x56\x39\x54\x6e\x2b\x55\x51\x64\x64\
-\x49\x33\x61\x43\x70\x78\x61\x4f\x6f\x55\x36\x69\x55\x34\x67\x63\
-\x71\x71\x70\x6f\x59\x62\x41\x4c\x58\x42\x75\x43\x75\x6f\x59\x6d\
-\x74\x74\x61\x6d\x71\x4a\x44\x69\x45\x6f\x68\x34\x59\x50\x2b\x4d\
-\x4f\x69\x36\x42\x4e\x43\x68\x2b\x75\x59\x4b\x45\x47\x69\x4f\x56\
-\x4e\x43\x58\x58\x78\x41\x32\x58\x44\x56\x56\x2f\x55\x79\x66\x4b\
-\x62\x52\x43\x58\x54\x4c\x51\x57\x41\x78\x62\x50\x32\x76\x74\x38\
-\x55\x65\x2f\x75\x59\x44\x76\x66\x69\x6d\x39\x31\x36\x31\x35\x73\
-\x62\x32\x75\x6d\x36\x72\x71\x74\x72\x72\x2f\x4e\x46\x62\x31\x63\
-\x55\x66\x31\x59\x62\x64\x30\x36\x61\x72\x65\x55\x36\x6c\x53\x6c\
-\x59\x70\x4b\x37\x39\x6a\x7a\x4b\x31\x53\x79\x4a\x4f\x6b\x66\x68\
-\x4f\x6c\x38\x4a\x47\x45\x63\x71\x56\x35\x7a\x6f\x4b\x72\x54\x52\
-\x71\x4f\x36\x79\x55\x7a\x49\x7a\x4e\x75\x34\x36\x69\x6a\x64\x4d\
-\x31\x56\x56\x39\x62\x68\x75\x55\x4a\x2f\x6e\x5a\x55\x52\x45\x78\
-\x4c\x52\x7a\x55\x69\x50\x51\x6d\x33\x6b\x4b\x58\x48\x69\x34\x42\
-\x41\x45\x47\x4f\x6d\x4f\x69\x37\x38\x41\x2f\x4c\x31\x51\x6f\x55\
-\x2f\x56\x48\x6f\x54\x73\x41\x41\x41\x41\x6c\x64\x45\x56\x59\x64\
-\x47\x52\x68\x64\x47\x55\x36\x59\x33\x4a\x6c\x59\x58\x52\x6c\x41\
-\x44\x49\x77\x4d\x54\x51\x74\x4d\x44\x45\x74\x4d\x54\x6c\x55\x4d\
-\x6a\x41\x36\x4d\x44\x45\x36\x4d\x54\x45\x74\x4d\x44\x55\x36\x4d\
-\x44\x41\x75\x45\x54\x36\x63\x41\x41\x41\x41\x4a\x58\x52\x46\x57\
-\x48\x52\x6b\x59\x58\x52\x6c\x4f\x6d\x31\x76\x5a\x47\x6c\x6d\x65\
-\x51\x41\x79\x4d\x44\x45\x30\x4c\x54\x41\x78\x4c\x54\x45\x35\x56\
-\x44\x49\x77\x4f\x6a\x41\x78\x4f\x6a\x45\x78\x4c\x54\x41\x31\x4f\
-\x6a\x41\x77\x58\x30\x79\x47\x49\x41\x41\x41\x41\x41\x42\x4a\x52\
-\x55\x35\x45\x72\x6b\x4a\x67\x67\x67\x3d\x3d\x3c\x2f\x49\x6d\x61\
-\x67\x65\x3e\x0a\x3c\x2f\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\x68\
-\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\
-\x00\x00\x01\x95\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x41\x6d\x61\x7a\x6f\x6e\
-\x2e\x63\x6f\x6d\x3c\x2f\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\
-\x0a\x20\x20\x20\x20\x3c\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\
-\x6e\x3e\x41\x6d\x61\x7a\x6f\x6e\x2e\x63\x6f\x6d\x20\x53\x65\x61\
-\x72\x63\x68\x3c\x2f\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\
-\x3e\x0a\x20\x20\x20\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\
-\x64\x3d\x22\x67\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x74\x65\
-\x78\x74\x2f\x68\x74\x6d\x6c\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\
-\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x61\x6d\
-\x61\x7a\x6f\x6e\x2e\x63\x6f\x6d\x2f\x65\x78\x65\x63\x2f\x6f\x62\
-\x69\x64\x6f\x73\x2f\x65\x78\x74\x65\x72\x6e\x61\x6c\x2d\x73\x65\
-\x61\x72\x63\x68\x2f\x3f\x66\x69\x65\x6c\x64\x2d\x6b\x65\x79\x77\
-\x6f\x72\x64\x73\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\x65\x72\x6d\
-\x73\x7d\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x49\x6d\x61\x67\x65\
-\x3e\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x61\x6d\x61\x7a\
-\x6f\x6e\x2e\x63\x6f\x6d\x2f\x66\x61\x76\x69\x63\x6f\x6e\x2e\x69\
-\x63\x6f\x3c\x2f\x49\x6d\x61\x67\x65\x3e\x0a\x3c\x2f\x4f\x70\x65\
-\x6e\x53\x65\x61\x72\x63\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\
-\x6f\x6e\x3e\x0a\
-\x00\x00\x02\x7a\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x4c\x45\x4f\x20\x44\x65\
-\x75\x2d\x45\x6e\x67\x3c\x2f\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\
-\x3e\x0a\x20\x20\x20\x20\x3c\x44\x65\x73\x63\x72\x69\x70\x74\x69\
-\x6f\x6e\x3e\x44\x65\x75\x74\x73\x63\x68\x2d\x45\x6e\x67\x6c\x69\
-\x73\x63\x68\x20\x57\xc3\xb6\x72\x74\x65\x72\x62\x75\x63\x68\x20\
-\x76\x6f\x6e\x20\x4c\x45\x4f\x3c\x2f\x44\x65\x73\x63\x72\x69\x70\
-\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x20\x20\x3c\x55\x72\x6c\x20\x6d\
-\x65\x74\x68\x6f\x64\x3d\x22\x67\x65\x74\x22\x20\x74\x79\x70\x65\
-\x3d\x22\x74\x65\x78\x74\x2f\x68\x74\x6d\x6c\x22\x20\x74\x65\x6d\
-\x70\x6c\x61\x74\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x64\x69\
-\x63\x74\x2e\x6c\x65\x6f\x2e\x6f\x72\x67\x2f\x65\x6e\x64\x65\x3f\
-\x6c\x61\x6e\x67\x3d\x64\x65\x26\x61\x6d\x70\x3b\x73\x65\x61\x72\
-\x63\x68\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\x65\x72\x6d\x73\x7d\
-\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\
-\x68\x6f\x64\x3d\x22\x67\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\
-\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x78\x2d\x73\x75\
-\x67\x67\x65\x73\x74\x69\x6f\x6e\x73\x2b\x6a\x73\x6f\x6e\x22\x20\
-\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\
-\x2f\x64\x69\x63\x74\x2e\x6c\x65\x6f\x2e\x6f\x72\x67\x2f\x64\x69\
-\x63\x74\x51\x75\x65\x72\x79\x2f\x6d\x2d\x71\x75\x65\x72\x79\x2f\
-\x63\x6f\x6e\x66\x2f\x65\x6e\x64\x65\x2f\x71\x75\x65\x72\x79\x2e\
-\x63\x6f\x6e\x66\x2f\x73\x74\x72\x6c\x69\x73\x74\x2e\x6a\x73\x6f\
-\x6e\x3f\x71\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\x65\x72\x6d\x73\
-\x7d\x26\x61\x6d\x70\x3b\x73\x6f\x72\x74\x3d\x50\x4c\x61\x26\x61\
-\x6d\x70\x3b\x73\x68\x6f\x72\x74\x51\x75\x65\x72\x79\x26\x61\x6d\
-\x70\x3b\x6e\x6f\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x26\
-\x61\x6d\x70\x3b\x6e\x6f\x51\x75\x65\x72\x79\x55\x52\x4c\x73\x22\
-\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x49\x6d\x61\x67\x65\x3e\x68\x74\
-\x74\x70\x3a\x2f\x2f\x64\x69\x63\x74\x2e\x6c\x65\x6f\x2e\x6f\x72\
-\x67\x2f\x69\x6d\x67\x2f\x66\x61\x76\x69\x63\x6f\x6e\x73\x2f\x65\
-\x6e\x64\x65\x2e\x69\x63\x6f\x3c\x2f\x49\x6d\x61\x67\x65\x3e\x0a\
-\x3c\x2f\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\x68\x44\x65\x73\x63\
-\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\
-\x00\x00\x01\x74\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x50\x79\x50\x49\x3c\x2f\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\x20\x3c\
-\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x53\x65\x61\x72\
-\x63\x68\x20\x50\x79\x50\x49\x3c\x2f\x44\x65\x73\x63\x72\x69\x70\
-\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x20\x20\x3c\x55\x72\x6c\x20\x6d\
-\x65\x74\x68\x6f\x64\x3d\x22\x67\x65\x74\x22\x20\x74\x79\x70\x65\
-\x3d\x22\x74\x65\x78\x74\x2f\x68\x74\x6d\x6c\x22\x20\x74\x65\x6d\
-\x70\x6c\x61\x74\x65\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x70\
-\x79\x70\x69\x2e\x6f\x72\x67\x2f\x73\x65\x61\x72\x63\x68\x2f\x3f\
-\x71\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\x65\x72\x6d\x73\x7d\x22\
-\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x49\x6d\x61\x67\x65\x3e\x68\x74\
-\x74\x70\x73\x3a\x2f\x2f\x70\x79\x70\x69\x2e\x6f\x72\x67\x2f\x73\
-\x74\x61\x74\x69\x63\x2f\x69\x6d\x61\x67\x65\x73\x2f\x66\x61\x76\
-\x69\x63\x6f\x6e\x2e\x36\x61\x37\x36\x32\x37\x35\x64\x2e\x69\x63\
-\x6f\x3c\x2f\x49\x6d\x61\x67\x65\x3e\x0a\x3c\x2f\x4f\x70\x65\x6e\
-\x53\x65\x61\x72\x63\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\
-\x6e\x3e\x0a\
-\x00\x00\x01\x85\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x59\x6f\x75\x54\x75\x62\
-\x65\x3c\x2f\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x0a\x20\x20\
-\x20\x20\x3c\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x59\
-\x6f\x75\x54\x75\x62\x65\x3c\x2f\x44\x65\x73\x63\x72\x69\x70\x74\
-\x69\x6f\x6e\x3e\x0a\x20\x20\x20\x20\x3c\x55\x72\x6c\x20\x6d\x65\
-\x74\x68\x6f\x64\x3d\x22\x67\x65\x74\x22\x20\x74\x79\x70\x65\x3d\
-\x22\x74\x65\x78\x74\x2f\x68\x74\x6d\x6c\x22\x20\x74\x65\x6d\x70\
-\x6c\x61\x74\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\
-\x2e\x79\x6f\x75\x74\x75\x62\x65\x2e\x63\x6f\x6d\x2f\x72\x65\x73\
-\x75\x6c\x74\x73\x3f\x73\x65\x61\x72\x63\x68\x5f\x71\x75\x65\x72\
-\x79\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\x65\x72\x6d\x73\x7d\x26\
-\x61\x6d\x70\x3b\x73\x65\x61\x72\x63\x68\x3d\x53\x65\x61\x72\x63\
-\x68\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x49\x6d\x61\x67\x65\x3e\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x79\x6f\x75\x74\x75\
-\x62\x65\x2e\x63\x6f\x6d\x2f\x66\x61\x76\x69\x63\x6f\x6e\x2e\x69\
-\x63\x6f\x3c\x2f\x49\x6d\x61\x67\x65\x3e\x0a\x3c\x2f\x4f\x70\x65\
-\x6e\x53\x65\x61\x72\x63\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\
-\x6f\x6e\x3e\x0a\
-\x00\x00\x01\x6f\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x52\x65\x64\x64\x69\x74\
-\x3c\x2f\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\
-\x20\x3c\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x52\x65\
-\x64\x64\x69\x74\x20\x53\x69\x74\x65\x20\x53\x65\x61\x72\x63\x68\
-\x3c\x2f\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\x20\
-\x20\x20\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\
-\x67\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\
-\x68\x74\x6d\x6c\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\
-\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x72\x65\x64\x64\x69\
-\x74\x2e\x63\x6f\x6d\x2f\x73\x65\x61\x72\x63\x68\x3f\x71\x3d\x7b\
-\x73\x65\x61\x72\x63\x68\x54\x65\x72\x6d\x73\x7d\x22\x2f\x3e\x0a\
-\x20\x20\x20\x20\x3c\x49\x6d\x61\x67\x65\x3e\x68\x74\x74\x70\x3a\
-\x2f\x2f\x77\x77\x77\x2e\x72\x65\x64\x64\x69\x74\x2e\x63\x6f\x6d\
-\x2f\x66\x61\x76\x69\x63\x6f\x6e\x2e\x69\x63\x6f\x3c\x2f\x49\x6d\
-\x61\x67\x65\x3e\x0a\x3c\x2f\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\
-\x00\x00\x02\x54\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x57\x69\x6b\x69\x61\x3c\
-\x2f\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x0a\x20\x20\x20\x20\
-\x3c\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x57\x69\x6b\
-\x69\x61\x20\x53\x69\x74\x65\x20\x53\x65\x61\x72\x63\x68\x3c\x2f\
-\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x20\
-\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x67\x65\
-\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x68\x74\
-\x6d\x6c\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\x68\x74\
-\x74\x70\x3a\x2f\x2f\x7b\x63\x6f\x75\x6e\x74\x72\x79\x7d\x2e\x77\
-\x69\x6b\x69\x61\x2e\x63\x6f\x6d\x2f\x69\x6e\x64\x65\x78\x2e\x70\
-\x68\x70\x3f\x74\x69\x74\x6c\x65\x3d\x53\x70\x65\x63\x69\x61\x6c\
-\x3a\x53\x65\x61\x72\x63\x68\x26\x61\x6d\x70\x3b\x73\x65\x61\x72\
-\x63\x68\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\x65\x72\x6d\x73\x7d\
-\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\
-\x68\x6f\x64\x3d\x22\x67\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\
-\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x78\x2d\x73\x75\
-\x67\x67\x65\x73\x74\x69\x6f\x6e\x73\x2b\x6a\x73\x6f\x6e\x22\x20\
-\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\
-\x2f\x7b\x63\x6f\x75\x6e\x74\x72\x79\x7d\x2e\x77\x69\x6b\x69\x61\
-\x2e\x63\x6f\x6d\x2f\x61\x70\x69\x2e\x70\x68\x70\x3f\x61\x63\x74\
-\x69\x6f\x6e\x3d\x6f\x70\x65\x6e\x73\x65\x61\x72\x63\x68\x26\x61\
-\x6d\x70\x3b\x73\x65\x61\x72\x63\x68\x3d\x7b\x73\x65\x61\x72\x63\
-\x68\x54\x65\x72\x6d\x73\x7d\x26\x61\x6d\x70\x3b\x6e\x61\x6d\x65\
-\x73\x70\x61\x63\x65\x3d\x30\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\
-\x49\x6d\x61\x67\x65\x3e\x68\x74\x74\x70\x3a\x2f\x2f\x69\x6d\x61\
-\x67\x65\x73\x2e\x77\x69\x6b\x69\x61\x2e\x63\x6f\x6d\x2f\x77\x69\
-\x6b\x69\x61\x67\x6c\x6f\x62\x61\x6c\x2f\x69\x6d\x61\x67\x65\x73\
-\x2f\x36\x2f\x36\x34\x2f\x46\x61\x76\x69\x63\x6f\x6e\x2e\x69\x63\
-\x6f\x3c\x2f\x49\x6d\x61\x67\x65\x3e\x0a\x3c\x2f\x4f\x70\x65\x6e\
-\x53\x65\x61\x72\x63\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\
-\x6e\x3e\x0a\
-\x00\x00\x01\x9b\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x57\x69\x6b\x74\x69\x6f\
-\x6e\x61\x72\x79\x3c\x2f\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\
-\x0a\x20\x20\x20\x20\x3c\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\
-\x6e\x3e\x57\x69\x6b\x74\x69\x6f\x6e\x61\x72\x79\x3c\x2f\x44\x65\
-\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\x20\x20\x20\x20\x3c\
-\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x67\x65\x74\x22\
-\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x68\x74\x6d\x6c\
-\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x3d\x22\x68\x74\x74\x70\
-\x3a\x2f\x2f\x7b\x63\x6f\x75\x6e\x74\x72\x79\x7d\x2e\x77\x69\x6b\
-\x74\x69\x6f\x6e\x61\x72\x79\x2e\x6f\x72\x67\x2f\x77\x2f\x69\x6e\
-\x64\x65\x78\x2e\x70\x68\x70\x3f\x74\x69\x74\x6c\x65\x3d\x53\x70\
-\x65\x63\x69\x61\x6c\x3a\x53\x65\x61\x72\x63\x68\x26\x61\x6d\x70\
-\x3b\x73\x65\x61\x72\x63\x68\x3d\x7b\x73\x65\x61\x72\x63\x68\x54\
-\x65\x72\x6d\x73\x7d\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x49\x6d\
-\x61\x67\x65\x3e\x68\x74\x74\x70\x3a\x2f\x2f\x65\x6e\x2e\x77\x69\
-\x6b\x74\x69\x6f\x6e\x61\x72\x79\x2e\x6f\x72\x67\x2f\x66\x61\x76\
-\x69\x63\x6f\x6e\x2e\x69\x63\x6f\x3c\x2f\x49\x6d\x61\x67\x65\x3e\
-\x0a\x3c\x2f\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\x68\x44\x65\x73\
-\x63\x72\x69\x70\x74\x69\x6f\x6e\x3e\x0a\
-\x00\x00\x01\xc9\
-\x3c\
-\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\
-\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\
-\x2d\x38\x22\x3f\x3e\x0a\x3c\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\
-\x68\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x20\x78\x6d\x6c\
-\x6e\x73\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x61\x39\x2e\x63\x6f\
-\x6d\x2f\x2d\x2f\x73\x70\x65\x63\x2f\x6f\x70\x65\x6e\x73\x65\x61\
-\x72\x63\x68\x2f\x31\x2e\x31\x2f\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x53\x68\x6f\x72\x74\x4e\x61\x6d\x65\x3e\x4c\x69\x6e\x75\x78\x2d\
-\x4d\x61\x67\x61\x7a\x69\x6e\x3c\x2f\x53\x68\x6f\x72\x74\x4e\x61\
-\x6d\x65\x3e\x0a\x20\x20\x20\x20\x3c\x44\x65\x73\x63\x72\x69\x70\
-\x74\x69\x6f\x6e\x3e\x53\x75\x63\x68\x65\x20\x61\x75\x66\x20\x77\
-\x77\x77\x2e\x6c\x69\x6e\x75\x78\x2d\x6d\x61\x67\x61\x7a\x69\x6e\
-\x2e\x64\x65\x3c\x2f\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\
-\x3e\x0a\x20\x20\x20\x20\x3c\x55\x72\x6c\x20\x6d\x65\x74\x68\x6f\
-\x64\x3d\x22\x67\x65\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x74\x65\
-\x78\x74\x2f\x68\x74\x6d\x6c\x22\x20\x74\x65\x6d\x70\x6c\x61\x74\
-\x65\x3d\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x6c\x69\
-\x6e\x75\x78\x2d\x6d\x61\x67\x61\x7a\x69\x6e\x2e\x64\x65\x2f\x63\
-\x6f\x6e\x74\x65\x6e\x74\x2f\x73\x65\x61\x72\x63\x68\x3f\x53\x65\
-\x61\x72\x63\x68\x54\x65\x78\x74\x3d\x7b\x73\x65\x61\x72\x63\x68\
-\x54\x65\x72\x6d\x73\x7d\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x49\
-\x6d\x61\x67\x65\x3e\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\
-\x6c\x69\x6e\x75\x78\x2d\x6d\x61\x67\x61\x7a\x69\x6e\x2e\x64\x65\
-\x2f\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x2f\x6c\x6e\x6d\x2f\x64\
-\x65\x73\x69\x67\x6e\x2f\x6c\x69\x6e\x75\x78\x5f\x6d\x61\x67\x61\
-\x7a\x69\x6e\x2f\x69\x6d\x61\x67\x65\x73\x2f\x66\x61\x76\x69\x63\
-\x6f\x6e\x2e\x69\x63\x6f\x3c\x2f\x49\x6d\x61\x67\x65\x3e\x0a\x3c\
-\x2f\x4f\x70\x65\x6e\x53\x65\x61\x72\x63\x68\x44\x65\x73\x63\x72\
-\x69\x70\x74\x69\x6f\x6e\x3e\x0a\
-"
-
-qt_resource_name = b"\
-\x00\x0c\
-\x0e\x81\x61\xdc\
-\x00\x57\
-\x00\x69\x00\x6b\x00\x69\x00\x61\x00\x5f\x00\x65\x00\x6e\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x0d\
-\x06\xf8\x53\x3c\
-\x00\x57\
-\x00\x69\x00\x6b\x00\x69\x00\x70\x00\x65\x00\x64\x00\x69\x00\x61\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x0c\
-\x0f\xd5\x68\x1c\
-\x00\x46\
-\x00\x61\x00\x63\x00\x65\x00\x62\x00\x6f\x00\x6f\x00\x6b\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x1b\
-\x0d\x52\x43\x5c\
-\x00\x47\
-\x00\x6f\x00\x6f\x00\x67\x00\x6c\x00\x65\x00\x5f\x00\x49\x00\x6d\x00\x5f\x00\x46\x00\x65\x00\x65\x00\x6c\x00\x69\x00\x6e\x00\x67\
-\x00\x5f\x00\x4c\x00\x75\x00\x63\x00\x6b\x00\x79\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x12\
-\x0a\xf9\x0f\x7c\
-\x00\x44\
-\x00\x65\x00\x45\x00\x6e\x00\x5f\x00\x42\x00\x65\x00\x6f\x00\x6c\x00\x69\x00\x6e\x00\x67\x00\x75\x00\x73\x00\x2e\x00\x78\x00\x6d\
-\x00\x6c\
-\x00\x09\
-\x0f\x62\xe1\xdc\
-\x00\x59\
-\x00\x61\x00\x68\x00\x6f\x00\x6f\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x0a\
-\x0e\x31\x93\x9c\
-\x00\x47\
-\x00\x6f\x00\x6f\x00\x67\x00\x6c\x00\x65\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x08\
-\x00\x4a\x56\x1c\
-\x00\x42\
-\x00\x69\x00\x6e\x00\x67\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x0e\
-\x09\x21\x3a\xfc\
-\x00\x44\
-\x00\x75\x00\x63\x00\x6b\x00\x44\x00\x75\x00\x63\x00\x6b\x00\x47\x00\x6f\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x0d\
-\x0a\x2e\x72\x9c\
-\x00\x41\
-\x00\x6d\x00\x61\x00\x7a\x00\x6f\x00\x6e\x00\x63\x00\x6f\x00\x6d\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x0e\
-\x00\xf1\x12\x1c\
-\x00\x4c\
-\x00\x45\x00\x4f\x00\x5f\x00\x44\x00\x65\x00\x75\x00\x45\x00\x6e\x00\x67\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x08\
-\x0e\x4c\x55\xdc\
-\x00\x50\
-\x00\x79\x00\x50\x00\x49\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x0b\
-\x0b\x48\x8a\x5c\
-\x00\x59\
-\x00\x6f\x00\x75\x00\x54\x00\x75\x00\x62\x00\x65\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x0a\
-\x0b\x0c\x48\x7c\
-\x00\x52\
-\x00\x65\x00\x64\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x09\
-\x01\xf4\xe3\x3c\
-\x00\x57\
-\x00\x69\x00\x6b\x00\x69\x00\x61\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x0e\
-\x08\xce\x7c\x3c\
-\x00\x57\
-\x00\x69\x00\x6b\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x61\x00\x72\x00\x79\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-\x00\x10\
-\x09\x73\x65\x7c\
-\x00\x4c\
-\x00\x69\x00\x6e\x00\x75\x00\x78\x00\x4d\x00\x61\x00\x67\x00\x61\x00\x7a\x00\x69\x00\x6e\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-"
-
-qt_resource_struct_v1 = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\x01\
-\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x2a\
-\x00\x00\x01\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x19\x42\
-\x00\x00\x01\xba\x00\x00\x00\x00\x00\x01\x00\x00\x20\x34\
-\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x02\x4a\
-\x00\x00\x01\xd2\x00\x00\x00\x00\x00\x01\x00\x00\x22\x8c\
-\x00\x00\x01\x0a\x00\x00\x00\x00\x00\x01\x00\x00\x10\xa7\
-\x00\x00\x01\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x24\x2b\
-\x00\x00\x01\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x17\xa9\
-\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x08\x93\
-\x00\x00\x01\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x1e\xc1\
-\x00\x00\x01\x84\x00\x00\x00\x00\x00\x01\x00\x00\x1d\x38\
-\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x06\x2b\
-\x00\x00\x00\xda\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xe0\
-\x00\x00\x01\x6e\x00\x00\x00\x00\x00\x01\x00\x00\x1b\xc0\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xb5\
-\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x04\xa9\
-"
-
-qt_resource_struct_v2 = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x2a\
-\x00\x00\x01\x6a\x36\x3b\x4f\xf6\
-\x00\x00\x01\x4c\x00\x00\x00\x00\x00\x01\x00\x00\x19\x42\
-\x00\x00\x01\x6a\x36\x3b\x4f\xf8\
-\x00\x00\x01\xba\x00\x00\x00\x00\x00\x01\x00\x00\x20\x34\
-\x00\x00\x01\x6a\x36\x3b\x4f\xb5\
-\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x02\x4a\
-\x00\x00\x01\x6a\x36\x3b\x4f\xc2\
-\x00\x00\x01\xd2\x00\x00\x00\x00\x00\x01\x00\x00\x22\x8c\
-\x00\x00\x01\x6a\x36\x3b\x50\x83\
-\x00\x00\x01\x0a\x00\x00\x00\x00\x00\x01\x00\x00\x10\xa7\
-\x00\x00\x01\x6a\x36\x3b\x4f\xb0\
-\x00\x00\x01\xf4\x00\x00\x00\x00\x00\x01\x00\x00\x24\x2b\
-\x00\x00\x01\x6a\x36\x3b\x4f\x62\
-\x00\x00\x01\x2c\x00\x00\x00\x00\x00\x01\x00\x00\x17\xa9\
-\x00\x00\x01\x6a\x36\x3b\x50\x7e\
-\x00\x00\x00\x98\x00\x00\x00\x00\x00\x01\x00\x00\x08\x93\
-\x00\x00\x01\x6a\x36\x3b\x4f\x61\
-\x00\x00\x01\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x1e\xc1\
-\x00\x00\x01\x6a\x36\x3b\x4f\x76\
-\x00\x00\x01\x84\x00\x00\x00\x00\x00\x01\x00\x00\x1d\x38\
-\x00\x00\x01\x6a\x36\x3b\x4f\x64\
-\x00\x00\x00\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x06\x2b\
-\x00\x00\x01\x6a\x36\x3b\x50\x80\
-\x00\x00\x00\xda\x00\x00\x00\x00\x00\x01\x00\x00\x0c\xe0\
-\x00\x00\x01\x6a\x36\x3b\x4f\xc0\
-\x00\x00\x01\x6e\x00\x00\x00\x00\x00\x01\x00\x00\x1b\xc0\
-\x00\x00\x01\x6a\x36\x3b\x4f\xd0\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\x6a\x36\x3b\x4f\xb4\
-\x00\x00\x00\xc2\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xb5\
-\x00\x00\x01\x6a\x36\x3b\x4f\xfa\
-\x00\x00\x00\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x04\xa9\
-\x00\x00\x01\x6a\x36\x3b\x4f\xb2\
-"
-
-qt_version = [int(v) for v in QtCore.qVersion().split('.')]
-if qt_version < [5, 8, 0]:
-    rcc_version = 1
-    qt_resource_struct = qt_resource_struct_v1
-else:
-    rcc_version = 2
-    qt_resource_struct = qt_resource_struct_v2
-
-def qInitResources():
-    QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-def qCleanupResources():
-    QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-qInitResources()
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/DuckDuckGo.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>DuckDuckGo</ShortName>
-    <Description>Search DuckDuckGo</Description>
-    <Url method="get" type="text/html" template="https://duckduckgo.com/?q={searchTerms}"/>
-    <Url method="get" type="application/x-suggestions+json" template="https://ac.duckduckgo.com/ac/?q={searchTerms}&amp;type=list"/>
-    <Image>data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAB8lBMVEUAAADkRQzjPwPjQQXkRQ3iPwTiQQXgPQPeQgrcOwPVNgDVNQDWOgbTMwDRMgDQMwDSMwDRNwTQLgDRJgDSJwDSLgDSNwTjOgDiOADjOQDkPADhQAXzs5v+/fv////0vKbiRQvgPQHpdUr85NzuknPdKgDcIwDnZzj2w7HqeU/gPQLsimb/+PftjWn97Obpb0LdJQDeLQDtjmvsi2jgSBDnbULgOQD/39HgLQDeMgDpeFLgSBH0v670uqbaJQD2qImWvP/G1Ob5+/3u//+fvvXyp47dMwDaLwD0u6v0v6/aNQDiXi/aKQD3qozU7/8gSY2vvtg0ZK/OqLDaKQHYKgLgWTfaNADZMgDZMADZLADzqpD7//+xwdz//9H/5Bn/7Bn//ADofADYMADYMQDZOgPXLgDiZDj//97/0AD3tQDvlgHZOgbXLATXMADWMgDfXjLVLQD///z+0AD/3Rn/yRnwnQDcVjbVMQDyv67wuKTSJwDRHQD+8O/tg3/iQQDwhAHnawHWMADvtKfyva7XQxHga0bQGQD2vbH/u8LXIQCmPQzja07XQxLliGn99fPkcVHvhnGZ5VguvUU5wktBwCcAgxzydVv/8/XmiGngdlL+ysi3+I8LtCE80V6P3YmX4sDleljSNQLzr6D7sKPXNQTSIwAEAbMrAAAAF3RSTlMARqSkRvPz80PTpKRG3fPe3hio9/eoGP50jNsAAAABYktHRB5yCiArAAAAyElEQVQYGQXBvUqCYRiA4fu2V9Tn+UQddI3aCpxaOoU6iU4gcqqpoYbALXBuCuoYmttamqJDiEoh4YP+MOi6BNCh+uYKEGiOVNCXXxA2XDVV/UyfKbRCXTLQWAxbP2vt8Ue/uYDvfim91615sb2um6rqtrr/NFb1cUf1Ybd06areU6lSlYpK79jzK1SyJOkfhOl8JGEcqV5zoKrTRqO6yUzIzNu46ijdM1VV9bhuUJ/nZURExLRzUiPQm3kKXHi4BAEGOmOi78A/L1QoU/VHoTsAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTQtMDEtMTlUMjA6MDE6MTEtMDU6MDAuET6cAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE0LTAxLTE5VDIwOjAxOjExLTA1OjAwX0yGIAAAAABJRU5ErkJggg==</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Facebook.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>Facebook</ShortName>
-    <Description>Search Facebook</Description>
-    <Url method="get" type="text/html" template="http://www.facebook.com/search/?src=os&amp;q={searchTerms}"/>
-    <Image>http://www.facebook.com/favicon.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Google.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>Google</ShortName>
-    <Description>Google Web Search</Description>
-    <Url method="get" type="text/html" template="http://www.google.com/search?hl={language}&amp;lr=lang_{language}&amp;q={searchTerms}"/>
-    <Url method="get" type="application/x-suggestions+json" template="http://suggestqueries.google.com/complete/search?output=firefox&amp;hl={language}&amp;q={searchTerms}"/>
-    <Image>http://www.google.com/favicon.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Google_Im_Feeling_Lucky.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>Google (I'm Feeling Lucky)</ShortName>
-    <Description>Google Web Search</Description>
-    <Url method="get" type="text/html" template="http://www.google.com/search?btnI=&amp;hl={language}&amp;lr=lang_{language}&amp;q={searchTerms}"/>
-    <Url method="get" type="application/x-suggestions+json" template="http://suggestqueries.google.com/complete/search?output=firefox&amp;hl={language}&amp;q={searchTerms}"/>
-    <Image>http://www.google.com/favicon.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/LEO_DeuEng.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>LEO Deu-Eng</ShortName>
-    <Description>Deutsch-Englisch Wörterbuch von LEO</Description>
-    <Url method="get" type="text/html" template="http://dict.leo.org/ende?lang=de&amp;search={searchTerms}"/>
-    <Url method="get" type="application/x-suggestions+json" template="http://dict.leo.org/dictQuery/m-query/conf/ende/query.conf/strlist.json?q={searchTerms}&amp;sort=PLa&amp;shortQuery&amp;noDescription&amp;noQueryURLs"/>
-    <Image>http://dict.leo.org/img/favicons/ende.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/LinuxMagazin.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>Linux-Magazin</ShortName>
-    <Description>Suche auf www.linux-magazin.de</Description>
-    <Url method="get" type="text/html" template="http://www.linux-magazin.de/content/search?SearchText={searchTerms}"/>
-    <Image>http://www.linux-magazin.de/extension/lnm/design/linux_magazin/images/favicon.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/PyPI.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>PyPI</ShortName>
-    <Description>Search PyPI</Description>
-    <Url method="get" type="text/html" template="https://pypi.org/search/?q={searchTerms}"/>
-    <Image>https://pypi.org/static/images/favicon.6a76275d.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Reddit.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>Reddit</ShortName>
-    <Description>Reddit Site Search</Description>
-    <Url method="get" type="text/html" template="http://www.reddit.com/search?q={searchTerms}"/>
-    <Image>http://www.reddit.com/favicon.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Wikia.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>Wikia</ShortName>
-    <Description>Wikia Site Search</Description>
-    <Url method="get" type="text/html" template="http://{country}.wikia.com/index.php?title=Special:Search&amp;search={searchTerms}"/>
-    <Url method="get" type="application/x-suggestions+json" template="http://{country}.wikia.com/api.php?action=opensearch&amp;search={searchTerms}&amp;namespace=0"/>
-    <Image>http://images.wikia.com/wikiaglobal/images/6/64/Favicon.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Wikia_en.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>Wikia (en)</ShortName>
-    <Description>Wikia (en)</Description>
-    <Url method="get" type="text/html" template="http://www.wikia.com/index.php?title=Special:Search&amp;search={searchTerms}"/>
-    <Url method="get" type="application/x-suggestions+json" template="http://www.wikia.com/api.php?action=opensearch&amp;search={searchTerms}&amp;namespace=1"/>
-    <Image>http://images.wikia.com/wikiaglobal/images/6/64/Favicon.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Wikipedia.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>Wikipedia</ShortName>
-    <Description>Full text search in Wikipedia</Description>
-    <Url method="get" type="text/html" template="http://{country}.wikipedia.org/wiki/Special:Search?search={searchTerms}&amp;fulltext=Search"/>
-    <Url method="get" type="application/x-suggestions+json" template="http://{country}.wikipedia.org/w/api.php?action=opensearch&amp;search={searchTerms}&amp;namespace=0"/>
-    <Image>http://en.wikipedia.org/favicon.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Wiktionary.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>Wiktionary</ShortName>
-    <Description>Wiktionary</Description>
-    <Url method="get" type="text/html" template="http://{country}.wiktionary.org/w/index.php?title=Special:Search&amp;search={searchTerms}"/>
-    <Image>http://en.wiktionary.org/favicon.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/Yahoo.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>Yahoo!</ShortName>
-    <Description>Yahoo Web Search</Description>
-    <Url method="get" type="text/html" template="http://search.yahoo.com/search?ei=utf-8&amp;fr=sfp&amp;iscqry=&amp;p={searchTerms}"/>
-    <Url method="get" type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command={searchTerms}"/>
-    <Image>http://m.www.yahoo.com/favicon.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/YouTube.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-    <ShortName>YouTube</ShortName>
-    <Description>YouTube</Description>
-    <Url method="get" type="text/html" template="http://www.youtube.com/results?search_query={searchTerms}&amp;search=Search"/>
-    <Image>http://www.youtube.com/favicon.ico</Image>
-</OpenSearchDescription>
--- a/eric6/Helpviewer/OpenSearch/DefaultSearchEngines/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2013 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package conatining the default search engine definitions.
-"""
--- a/eric6/Helpviewer/OpenSearch/OpenSearchDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog for the configuration of search engines.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QDialog
-from PyQt5.QtCore import pyqtSlot
-
-from E5Gui import E5MessageBox, E5FileDialog
-
-from .OpenSearchEngineModel import OpenSearchEngineModel
-
-from .Ui_OpenSearchDialog import Ui_OpenSearchDialog
-
-
-class OpenSearchDialog(QDialog, Ui_OpenSearchDialog):
-    """
-    Class implementing a dialog for the configuration of search engines.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QWidget)
-        """
-        super(OpenSearchDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.setModal(True)
-        
-        self.__mw = parent
-        
-        self.__model = \
-            OpenSearchEngineModel(self.__mw.openSearchManager(), self)
-        self.enginesTable.setModel(self.__model)
-        self.enginesTable.horizontalHeader().resizeSection(0, 200)
-        self.enginesTable.horizontalHeader().setStretchLastSection(True)
-        self.enginesTable.verticalHeader().hide()
-        self.enginesTable.verticalHeader().setDefaultSectionSize(
-            1.2 * self.fontMetrics().height())
-        
-        self.enginesTable.selectionModel().selectionChanged.connect(
-            self.__selectionChanged)
-        self.editButton.setEnabled(False)
-    
-    @pyqtSlot()
-    def on_addButton_clicked(self):
-        """
-        Private slot to add a new search engine.
-        """
-        fileNames = E5FileDialog.getOpenFileNames(
-            self,
-            self.tr("Add search engine"),
-            "",
-            self.tr("OpenSearch (*.xml);;All Files (*)"))
-        
-        osm = self.__mw.openSearchManager()
-        for fileName in fileNames:
-            if not osm.addEngine(fileName):
-                E5MessageBox.critical(
-                    self,
-                    self.tr("Add search engine"),
-                    self.tr(
-                        """{0} is not a valid OpenSearch 1.1 description or"""
-                        """ is already on your list.""").format(fileName))
-    
-    @pyqtSlot()
-    def on_deleteButton_clicked(self):
-        """
-        Private slot to delete the selected search engines.
-        """
-        if self.enginesTable.model().rowCount() == 1:
-            E5MessageBox.critical(
-                self,
-                self.tr("Delete selected engines"),
-                self.tr("""You must have at least one search engine."""))
-        
-        self.enginesTable.removeSelected()
-    
-    @pyqtSlot()
-    def on_restoreButton_clicked(self):
-        """
-        Private slot to restore the default search engines.
-        """
-        self.__mw.openSearchManager().restoreDefaults()
-    
-    @pyqtSlot()
-    def on_editButton_clicked(self):
-        """
-        Private slot to edit the data of the current search engine.
-        """
-        from .OpenSearchEditDialog import OpenSearchEditDialog
-        
-        rows = self.enginesTable.selectionModel().selectedRows()
-        if len(rows) == 0:
-            row = self.enginesTable.selectionModel().currentIndex().row()
-        else:
-            row = rows[0].row()
-        
-        osm = self.__mw.openSearchManager()
-        engineName = osm.allEnginesNames()[row]
-        engine = osm.engine(engineName)
-        dlg = OpenSearchEditDialog(engine, self)
-        if dlg.exec_() == QDialog.Accepted:
-            osm.enginesChanged()
-    
-    def __selectionChanged(self, selected, deselected):
-        """
-        Private slot to handle a change of the selection.
-        
-        @param selected item selection of selected items (QItemSelection)
-        @param deselected item selection of deselected items (QItemSelection)
-        """
-        self.editButton.setEnabled(
-            len(self.enginesTable.selectionModel().selectedRows()) <= 1)
--- a/eric6/Helpviewer/OpenSearch/OpenSearchDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>OpenSearchDialog</class>
- <widget class="QDialog" name="OpenSearchDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>650</width>
-    <height>350</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Open Search Engines Configuration</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0" rowspan="5">
-      <widget class="E5TableView" name="enginesTable">
-       <property name="alternatingRowColors">
-        <bool>true</bool>
-       </property>
-       <property name="selectionBehavior">
-        <enum>QAbstractItemView::SelectRows</enum>
-       </property>
-       <property name="showGrid">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QPushButton" name="addButton">
-       <property name="toolTip">
-        <string>Press to add a new search engine from file</string>
-       </property>
-       <property name="text">
-        <string>&amp;Add...</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QPushButton" name="deleteButton">
-       <property name="toolTip">
-        <string>Press to delete the selected engines</string>
-       </property>
-       <property name="text">
-        <string>&amp;Delete</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QPushButton" name="editButton">
-       <property name="toolTip">
-        <string>Press to edit the data of the current engine</string>
-       </property>
-       <property name="text">
-        <string>Edit...</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="1">
-      <widget class="QPushButton" name="restoreButton">
-       <property name="toolTip">
-        <string>Press to restore the default engines</string>
-       </property>
-       <property name="text">
-        <string>&amp;Restore Defaults</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="4" column="1">
-      <spacer name="verticalSpacer">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>38</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5TableView</class>
-   <extends>QTableView</extends>
-   <header>E5Gui/E5TableView.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>enginesTable</tabstop>
-  <tabstop>addButton</tabstop>
-  <tabstop>deleteButton</tabstop>
-  <tabstop>editButton</tabstop>
-  <tabstop>restoreButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>OpenSearchDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>OpenSearchDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/OpenSearch/OpenSearchEditDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to edit the data of a search engine.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QDialog
-
-from .Ui_OpenSearchEditDialog import Ui_OpenSearchEditDialog
-
-
-class OpenSearchEditDialog(QDialog, Ui_OpenSearchEditDialog):
-    """
-    Class implementing a dialog to edit the data of a search engine.
-    """
-    def __init__(self, engine, parent=None):
-        """
-        Constructor
-        
-        @param engine reference to the search engine (OpenSearchEngine)
-        @param parent reference to the parent object (QWidget)
-        """
-        super(OpenSearchEditDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.__engine = engine
-        
-        self.nameEdit.setText(engine.name())
-        self.descriptionEdit.setText(engine.description())
-        self.imageEdit.setText(engine.imageUrl())
-        self.searchEdit.setText(engine.searchUrlTemplate())
-        self.suggestionsEdit.setText(engine.suggestionsUrlTemplate())
-        
-        msh = self.minimumSizeHint()
-        self.resize(max(self.width(), msh.width()), msh.height())
-    
-    def accept(self):
-        """
-        Public slot to accept the data entered.
-        """
-        self.__engine.setName(self.nameEdit.text())
-        self.__engine.setDescription(self.descriptionEdit.text())
-        self.__engine.setImageUrlAndLoad(self.imageEdit.text())
-        self.__engine.setSearchUrlTemplate(self.searchEdit.text())
-        self.__engine.setSuggestionsUrlTemplate(self.suggestionsEdit.text())
-        
-        super(OpenSearchEditDialog, self).accept()
--- a/eric6/Helpviewer/OpenSearch/OpenSearchEditDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>OpenSearchEditDialog</class>
- <widget class="QDialog" name="OpenSearchEditDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>690</width>
-    <height>218</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Edit search engine data</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0">
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>&amp;Name:</string>
-       </property>
-       <property name="buddy">
-        <cstring>nameEdit</cstring>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QLineEdit" name="nameEdit">
-       <property name="focusPolicy">
-        <enum>Qt::NoFocus</enum>
-       </property>
-       <property name="toolTip">
-        <string>Shows the name of the search engine</string>
-       </property>
-       <property name="readOnly">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="label_3">
-       <property name="text">
-        <string>&amp;Description:</string>
-       </property>
-       <property name="buddy">
-        <cstring>descriptionEdit</cstring>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QLineEdit" name="descriptionEdit">
-       <property name="toolTip">
-        <string>Enter a description</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="0">
-      <widget class="QLabel" name="label_5">
-       <property name="text">
-        <string>&amp;Image URL:</string>
-       </property>
-       <property name="buddy">
-        <cstring>imageEdit</cstring>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QLineEdit" name="imageEdit">
-       <property name="toolTip">
-        <string>Enter the URL of the image</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_4">
-     <property name="text">
-      <string>&amp;Search URL Template:</string>
-     </property>
-     <property name="buddy">
-      <cstring>searchEdit</cstring>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLineEdit" name="searchEdit">
-     <property name="toolTip">
-      <string>Enter the template of the search URL</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_6">
-     <property name="text">
-      <string>Su&amp;ggestions URL Template:</string>
-     </property>
-     <property name="buddy">
-      <cstring>suggestionsEdit</cstring>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLineEdit" name="suggestionsEdit">
-     <property name="toolTip">
-      <string>Enter the template of the suggestions URL</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>nameEdit</tabstop>
-  <tabstop>descriptionEdit</tabstop>
-  <tabstop>imageEdit</tabstop>
-  <tabstop>searchEdit</tabstop>
-  <tabstop>suggestionsEdit</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>OpenSearchEditDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>222</x>
-     <y>232</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>246</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>OpenSearchEditDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>290</x>
-     <y>238</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>246</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/OpenSearch/OpenSearchEngine.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,537 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the open search engine.
-"""
-
-from __future__ import unicode_literals
-
-import re
-import json
-
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QLocale, QUrl, QByteArray, \
-    QBuffer, QIODevice, QObject
-from PyQt5.QtGui import QImage
-from PyQt5.QtNetwork import QNetworkRequest, QNetworkAccessManager, \
-    QNetworkReply
-
-from UI.Info import Program
-
-import Preferences
-import Utilities
-from Globals import qVersionTuple
-
-
-class OpenSearchEngine(QObject):
-    """
-    Class implementing the open search engine.
-    
-    @signal imageChanged() emitted after the icon has been changed
-    @signal suggestions(list of strings) emitted after the suggestions have
-            been received
-    """
-    imageChanged = pyqtSignal()
-    suggestions = pyqtSignal(list)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(OpenSearchEngine, self).__init__(parent)
-        
-        self.__suggestionsReply = None
-        self.__networkAccessManager = None
-        self._name = ""
-        self._description = ""
-        self._searchUrlTemplate = ""
-        self._suggestionsUrlTemplate = ""
-        self._searchParameters = []            # list of two tuples
-        self._suggestionsParameters = []       # list of two tuples
-        self._imageUrl = ""
-        self.__image = QImage()
-        self.__iconMoved = False
-        self.__searchMethod = "get"
-        self.__suggestionsMethod = "get"
-        self.__requestMethods = {
-            "get": QNetworkAccessManager.GetOperation,
-            "post": QNetworkAccessManager.PostOperation,
-        }
-        
-        self.__replies = []
-    
-    @classmethod
-    def parseTemplate(cls, searchTerm, searchTemplate):
-        """
-        Class method to parse a search template.
-        
-        @param searchTerm term to search for (string)
-        @param searchTemplate template to be parsed (string)
-        @return parsed template (string)
-        """
-        locale = QLocale(Preferences.getHelp("SearchLanguage"))
-        language = locale.name().split("_")[0]
-        country = language.lower()
-        
-        result = searchTemplate
-        result = result.replace("{count}", "20")
-        result = result.replace("{startIndex}", "0")
-        result = result.replace("{startPage}", "0")
-        result = result.replace("{language}", language)
-        result = result.replace("{country}", country)
-        result = result.replace("{inputEncoding}", "UTF-8")
-        result = result.replace("{outputEncoding}", "UTF-8")
-        result = result.replace(
-            "{searchTerms}",
-            bytes(QUrl.toPercentEncoding(searchTerm)).decode())
-        result = re.sub(r"""\{([^\}]*:|)source\??\}""", Program, result)
-
-        return result
-    
-    @pyqtSlot(result=str)
-    def name(self):
-        """
-        Public method to get the name of the engine.
-        
-        @return name of the engine (string)
-        """
-        return self._name
-    
-    def setName(self, name):
-        """
-        Public method to set the engine name.
-        
-        @param name name of the engine (string)
-        """
-        self._name = name
-    
-    def description(self):
-        """
-        Public method to get the description of the engine.
-        
-        @return description of the engine (string)
-        """
-        return self._description
-    
-    def setDescription(self, description):
-        """
-        Public method to set the engine description.
-        
-        @param description description of the engine (string)
-        """
-        self._description = description
-    
-    def searchUrlTemplate(self):
-        """
-        Public method to get the search URL template of the engine.
-        
-        @return search URL template of the engine (string)
-        """
-        return self._searchUrlTemplate
-    
-    def setSearchUrlTemplate(self, searchUrlTemplate):
-        """
-        Public method to set the engine search URL template.
-        
-        The URL template is processed according to the specification:
-        <a
-          href="http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_URL_template_syntax">
-        http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_URL_template_syntax</a>
-
-        A list of template parameters currently supported and what they are
-        replaced with:
-        <table>
-        <tr><td><b>Parameter</b></td><td><b>Value</b></td></tr>
-        <tr><td>{count}</td><td>20</td></tr>
-        <tr><td>{startIndex}</td><td>0</td></tr>
-        <tr><td>{startPage}</td><td>0</td></tr>
-        <tr><td>{language}</td>
-          <td>the default language code (RFC 3066)</td></tr>
-        <tr><td>{country}</td>
-          <td>the default language code (RFC 3066) converted to lower
-              case</td></tr>
-        <tr><td>{inputEncoding}</td><td>UTF-8</td></tr>
-        <tr><td>{outputEncoding}</td><td>UTF-8</td></tr>
-        <tr><td>{searchTerms}</td><td>the string supplied by the user</td></tr>
-        <tr><td>{*:source}</td>
-          <td>application name, QCoreApplication::applicationName()</td></tr>
-        </table>
-        
-        @param searchUrlTemplate search URL template of the engine (string)
-        """
-        self._searchUrlTemplate = searchUrlTemplate
-    
-    def searchUrl(self, searchTerm):
-        """
-        Public method to get a URL ready for searching.
-        
-        @param searchTerm term to search for (string)
-        @return URL (QUrl)
-        """
-        if not self._searchUrlTemplate:
-            return QUrl()
-        
-        ret = QUrl.fromEncoded(
-            self.parseTemplate(searchTerm, self._searchUrlTemplate)
-            .encode("utf-8"))
-        
-        if self.__searchMethod != "post":
-            if qVersionTuple() >= (5, 0, 0):
-                from PyQt5.QtCore import QUrlQuery
-                urlQuery = QUrlQuery(ret)
-                for parameter in self._searchParameters:
-                    urlQuery.addQueryItem(
-                        parameter[0],
-                        self.parseTemplate(searchTerm, parameter[1]))
-                ret.setQuery(urlQuery)
-            else:
-                for parameter in self._searchParameters:
-                    ret.addQueryItem(
-                        parameter[0],
-                        self.parseTemplate(searchTerm, parameter[1]))
-        
-        return ret
-    
-    def providesSuggestions(self):
-        """
-        Public method to check, if the engine provides suggestions.
-        
-        @return flag indicating suggestions are provided (boolean)
-        """
-        return self._suggestionsUrlTemplate != ""
-    
-    def suggestionsUrlTemplate(self):
-        """
-        Public method to get the search URL template of the engine.
-        
-        @return search URL template of the engine (string)
-        """
-        return self._suggestionsUrlTemplate
-    
-    def setSuggestionsUrlTemplate(self, suggestionsUrlTemplate):
-        """
-        Public method to set the engine suggestions URL template.
-        
-        @param suggestionsUrlTemplate suggestions URL template of the
-            engine (string)
-        """
-        self._suggestionsUrlTemplate = suggestionsUrlTemplate
-    
-    def suggestionsUrl(self, searchTerm):
-        """
-        Public method to get a URL ready for suggestions.
-        
-        @param searchTerm term to search for (string)
-        @return URL (QUrl)
-        """
-        if not self._suggestionsUrlTemplate:
-            return QUrl()
-        
-        ret = QUrl.fromEncoded(QByteArray(self.parseTemplate(
-            searchTerm, self._suggestionsUrlTemplate).encode("utf-8")))
-        
-        if self.__searchMethod != "post":
-            if qVersionTuple() >= (5, 0, 0):
-                from PyQt5.QtCore import QUrlQuery
-                urlQuery = QUrlQuery(ret)
-                for parameter in self._suggestionsParameters:
-                    urlQuery.addQueryItem(
-                        parameter[0],
-                        self.parseTemplate(searchTerm, parameter[1]))
-                ret.setQuery(urlQuery)
-            else:
-                for parameter in self._suggestionsParameters:
-                    ret.addQueryItem(
-                        parameter[0],
-                        self.parseTemplate(searchTerm, parameter[1]))
-        
-        return ret
-    
-    def searchParameters(self):
-        """
-        Public method to get the search parameters of the engine.
-        
-        @return search parameters of the engine (list of two tuples)
-        """
-        return self._searchParameters[:]
-    
-    def setSearchParameters(self, searchParameters):
-        """
-        Public method to set the engine search parameters.
-        
-        @param searchParameters search parameters of the engine
-            (list of two tuples)
-        """
-        self._searchParameters = searchParameters[:]
-    
-    def suggestionsParameters(self):
-        """
-        Public method to get the suggestions parameters of the engine.
-        
-        @return suggestions parameters of the engine (list of two tuples)
-        """
-        return self._suggestionsParameters[:]
-    
-    def setSuggestionsParameters(self, suggestionsParameters):
-        """
-        Public method to set the engine suggestions parameters.
-        
-        @param suggestionsParameters suggestions parameters of the
-            engine (list of two tuples)
-        """
-        self._suggestionsParameters = suggestionsParameters[:]
-    
-    def searchMethod(self):
-        """
-        Public method to get the HTTP request method used to perform search
-        requests.
-        
-        @return HTTP request method (string)
-        """
-        return self.__searchMethod
-    
-    def setSearchMethod(self, method):
-        """
-        Public method to set the HTTP request method used to perform search
-        requests.
-        
-        @param method HTTP request method (string)
-        """
-        requestMethod = method.lower()
-        if requestMethod not in self.__requestMethods:
-            return
-        
-        self.__searchMethod = requestMethod
-    
-    def suggestionsMethod(self):
-        """
-        Public method to get the HTTP request method used to perform
-        suggestions requests.
-        
-        @return HTTP request method (string)
-        """
-        return self.__suggestionsMethod
-    
-    def setSuggestionsMethod(self, method):
-        """
-        Public method to set the HTTP request method used to perform
-        suggestions requests.
-        
-        @param method HTTP request method (string)
-        """
-        requestMethod = method.lower()
-        if requestMethod not in self.__requestMethods:
-            return
-        
-        self.__suggestionsMethod = requestMethod
-    
-    def imageUrl(self):
-        """
-        Public method to get the image URL of the engine.
-        
-        @return image URL of the engine (string)
-        """
-        return self._imageUrl
-    
-    def setImageUrl(self, imageUrl):
-        """
-        Public method to set the engine image URL.
-        
-        @param imageUrl image URL of the engine (string)
-        """
-        self._imageUrl = imageUrl
-    
-    def setImageUrlAndLoad(self, imageUrl):
-        """
-        Public method to set the engine image URL.
-        
-        @param imageUrl image URL of the engine (string)
-        """
-        self.setImageUrl(imageUrl)
-        self.__iconMoved = False
-        self.loadImage()
-    
-    def loadImage(self):
-        """
-        Public method to load the image of the engine.
-        """
-        if self.__networkAccessManager is None or not self._imageUrl:
-            return
-        
-        reply = self.__networkAccessManager.get(
-            QNetworkRequest(QUrl.fromEncoded(self._imageUrl.encode("utf-8"))))
-        reply.finished.connect(lambda: self.__imageObtained(reply))
-        self.__replies.append(reply)
-    
-    def __imageObtained(self, reply):
-        """
-        Private slot to receive the image of the engine.
-        
-        @param reply reference to the network reply
-        @type QNetworkReply
-        """
-        response = reply.readAll()
-        
-        reply.close()
-        if reply in self.__replies:
-            self.__replies.remove(reply)
-        reply.deleteLater()
-        
-        if response.isEmpty():
-            return
-        
-        if response.startsWith(b"<html>") or response.startsWith(b"HTML"):
-            self.__iconMoved = True
-            self.__image = QImage()
-        else:
-            self.__image.loadFromData(response)
-        self.imageChanged.emit()
-    
-    def image(self):
-        """
-        Public method to get the image of the engine.
-        
-        @return image of the engine (QImage)
-        """
-        if not self.__iconMoved and self.__image.isNull():
-            self.loadImage()
-        
-        return self.__image
-    
-    def setImage(self, image):
-        """
-        Public method to set the image of the engine.
-        
-        @param image image to be set (QImage)
-        """
-        if not self._imageUrl:
-            imageBuffer = QBuffer()
-            imageBuffer.open(QIODevice.ReadWrite)
-            if image.save(imageBuffer, "PNG"):
-                self._imageUrl = "data:image/png;base64,{0}".format(
-                    bytes(imageBuffer.buffer().toBase64()).decode())
-        
-        self.__image = QImage(image)
-        self.imageChanged.emit()
-    
-    def isValid(self):
-        """
-        Public method to check, if the engine is valid.
-        
-        @return flag indicating validity (boolean)
-        """
-        return self._name and self._searchUrlTemplate
-    
-    def __eq__(self, other):
-        """
-        Special method implementing the == operator.
-        
-        @param other reference to an open search engine (OpenSearchEngine)
-        @return flag indicating equality (boolean)
-        """
-        if not isinstance(other, OpenSearchEngine):
-            return NotImplemented
-        
-        return self._name == other._name and \
-            self._description == other._description and \
-            self._imageUrl == other._imageUrl and \
-            self._searchUrlTemplate == other._searchUrlTemplate and \
-            self._suggestionsUrlTemplate == other._suggestionsUrlTemplate and \
-            self._searchParameters == other._searchParameters and \
-            self._suggestionsParameters == other._suggestionsParameters
-    
-    def __lt__(self, other):
-        """
-        Special method implementing the < operator.
-        
-        @param other reference to an open search engine (OpenSearchEngine)
-        @return flag indicating less than (boolean)
-        """
-        if not isinstance(other, OpenSearchEngine):
-            return NotImplemented
-        
-        return self._name < other._name
-    
-    def requestSuggestions(self, searchTerm):
-        """
-        Public method to request suggestions.
-        
-        @param searchTerm term to get suggestions for (string)
-        """
-        if not searchTerm or not self.providesSuggestions():
-            return
-        
-        if self.__networkAccessManager is None:
-            return
-        
-        if self.__suggestionsReply is not None:
-            self.__suggestionsReply.abort()
-            self.__suggestionsReply.deleteLater()
-            self.__suggestionsReply = None
-        
-        if self.__suggestionsMethod not in self.__requestMethods:
-            # ignore
-            return
-        
-        if self.__suggestionsMethod == "get":
-            self.__suggestionsReply = self.networkAccessManager().get(
-                QNetworkRequest(self.suggestionsUrl(searchTerm)))
-        else:
-            parameters = []
-            for parameter in self._suggestionsParameters:
-                parameters.append(parameter[0] + "=" + parameter[1])
-            data = "&".join(parameters)
-            self.__suggestionsReply = self.networkAccessManager().post(
-                QNetworkRequest(self.suggestionsUrl(searchTerm)), data)
-        self.__suggestionsReply.finished.connect(
-            self.__suggestionsObtained)
-    
-    def __suggestionsObtained(self):
-        """
-        Private slot to receive the suggestions.
-        """
-        if self.__suggestionsReply.error() == QNetworkReply.NoError:
-            buffer = bytes(self.__suggestionsReply.readAll())
-            response = Utilities.decodeBytes(buffer)
-            response = response.strip()
-            
-            self.__suggestionsReply.close()
-            self.__suggestionsReply.deleteLater()
-            self.__suggestionsReply = None
-            
-            if len(response) == 0:
-                return
-            
-            try:
-                result = json.loads(response)
-            except ValueError:
-                return
-            
-            try:
-                suggestions = result[1]
-            except IndexError:
-                return
-            
-            self.suggestions.emit(suggestions)
-    
-    def networkAccessManager(self):
-        """
-        Public method to get a reference to the network access manager object.
-        
-        @return reference to the network access manager object
-            (QNetworkAccessManager)
-        """
-        return self.__networkAccessManager
-    
-    def setNetworkAccessManager(self, networkAccessManager):
-        """
-        Public method to set the reference to the network access manager.
-        
-        @param networkAccessManager reference to the network access manager
-            object (QNetworkAccessManager)
-        """
-        self.__networkAccessManager = networkAccessManager
--- a/eric6/Helpviewer/OpenSearch/OpenSearchEngineAction.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a QAction subclass for open search.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QUrl
-from PyQt5.QtGui import QPixmap, QIcon
-from PyQt5.QtWidgets import QAction
-
-
-class OpenSearchEngineAction(QAction):
-    """
-    Class implementing a QAction subclass for open search.
-    """
-    def __init__(self, engine, parent=None):
-        """
-        Constructor
-        
-        @param engine reference to the open search engine object
-            (OpenSearchEngine)
-        @param parent reference to the parent object (QObject)
-        """
-        super(OpenSearchEngineAction, self).__init__(parent)
-        
-        self.__engine = engine
-        if self.__engine.networkAccessManager() is None:
-            import Helpviewer.HelpWindow
-            self.__engine.setNetworkAccessManager(
-                Helpviewer.HelpWindow.HelpWindow.networkAccessManager())
-        
-        self.setText(engine.name())
-        self.__imageChanged()
-        
-        engine.imageChanged.connect(self.__imageChanged)
-    
-    def __imageChanged(self):
-        """
-        Private slot handling a change of the associated image.
-        """
-        image = self.__engine.image()
-        if image.isNull():
-            import Helpviewer.HelpWindow
-            self.setIcon(
-                Helpviewer.HelpWindow.HelpWindow.icon(
-                    QUrl(self.__engine.imageUrl())))
-        else:
-            self.setIcon(QIcon(QPixmap.fromImage(image)))
--- a/eric6/Helpviewer/OpenSearch/OpenSearchEngineModel.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,207 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a model for search engines.
-"""
-
-from __future__ import unicode_literals
-
-import re
-
-from PyQt5.QtCore import Qt, QUrl, QAbstractTableModel, QModelIndex
-from PyQt5.QtGui import QPixmap, QIcon
-
-
-class OpenSearchEngineModel(QAbstractTableModel):
-    """
-    Class implementing a model for search engines.
-    """
-    def __init__(self, manager, parent=None):
-        """
-        Constructor
-        
-        @param manager reference to the search engine manager
-            (OpenSearchManager)
-        @param parent reference to the parent object (QObject)
-        """
-        super(OpenSearchEngineModel, self).__init__(parent)
-        
-        self.__manager = manager
-        manager.changed.connect(self.__enginesChanged)
-        
-        self.__headers = [
-            self.tr("Name"),
-            self.tr("Keywords"),
-        ]
-    
-    def removeRows(self, row, count, parent=None):
-        """
-        Public method to remove entries from the model.
-        
-        @param row start row (integer)
-        @param count number of rows to remove (integer)
-        @param parent parent index (QModelIndex)
-        @return flag indicating success (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return False
-        
-        if count <= 0:
-            return False
-        
-        if self.rowCount() <= 1:
-            return False
-        
-        lastRow = row + count - 1
-        
-        self.beginRemoveRows(parent, row, lastRow)
-        
-        nameList = self.__manager.allEnginesNames()
-        for index in range(row, lastRow + 1):
-            self.__manager.removeEngine(nameList[index])
-        
-        # removeEngine emits changed()
-        #self.endRemoveRows()
-        
-        return True
-    
-    def rowCount(self, parent=None):
-        """
-        Public method to get the number of rows of the model.
-        
-        @param parent parent index (QModelIndex)
-        @return number of rows (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return 0
-        else:
-            return self.__manager.enginesCount()
-    
-    def columnCount(self, parent=None):
-        """
-        Public method to get the number of columns of the model.
-        
-        @param parent parent index (QModelIndex) (Unused)
-        @return number of columns (integer)
-        """
-        return 2
-    
-    def flags(self, index):
-        """
-        Public method to get flags for a model cell.
-        
-        @param index index of the model cell (QModelIndex)
-        @return flags (Qt.ItemFlags)
-        """
-        if index.column() == 1:
-            return Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsEditable
-        else:
-            return Qt.ItemIsEnabled | Qt.ItemIsSelectable
-    
-    def data(self, index, role):
-        """
-        Public method to get data from the model.
-        
-        @param index index to get data for (QModelIndex)
-        @param role role of the data to retrieve (integer)
-        @return requested data
-        """
-        if index.row() >= self.__manager.enginesCount() or index.row() < 0:
-            return None
-        
-        engine = self.__manager.engine(
-            self.__manager.allEnginesNames()[index.row()])
-        
-        if engine is None:
-            return None
-        
-        if index.column() == 0:
-            if role == Qt.DisplayRole:
-                return engine.name()
-                
-            elif role == Qt.DecorationRole:
-                image = engine.image()
-                if image.isNull():
-                    from Helpviewer.HelpWindow import HelpWindow
-                    icon = HelpWindow.icon(QUrl(engine.imageUrl()))
-                else:
-                    icon = QIcon(QPixmap.fromImage(image))
-                return icon
-                
-            elif role == Qt.ToolTipRole:
-                description = self.tr("<strong>Description:</strong> {0}")\
-                    .format(engine.description())
-                if engine.providesSuggestions():
-                    description += "<br/>"
-                    description += self.tr(
-                        "<strong>Provides contextual suggestions</strong>")
-                
-                return description
-        elif index.column() == 1:
-            if role in [Qt.EditRole, Qt.DisplayRole]:
-                return ",".join(self.__manager.keywordsForEngine(engine))
-            elif role == Qt.ToolTipRole:
-                return self.tr(
-                    "Comma-separated list of keywords that may"
-                    " be entered in the location bar followed by search terms"
-                    " to search with this engine")
-        
-        return None
-    
-    def setData(self, index, value, role=Qt.EditRole):
-        """
-        Public method to set the data of a model cell.
-        
-        @param index index of the model cell (QModelIndex)
-        @param value value to be set
-        @param role role of the data (integer)
-        @return flag indicating success (boolean)
-        """
-        if not index.isValid() or index.column() != 1:
-            return False
-        
-        if index.row() >= self.rowCount() or index.row() < 0:
-            return False
-        
-        if role != Qt.EditRole:
-            return False
-        
-        engineName = self.__manager.allEnginesNames()[index.row()]
-        keywords = re.split("[ ,]+", value)
-        self.__manager.setKeywordsForEngine(
-            self.__manager.engine(engineName), keywords)
-        
-        return True
-    
-    def headerData(self, section, orientation, role=Qt.DisplayRole):
-        """
-        Public method to get the header data.
-        
-        @param section section number (integer)
-        @param orientation header orientation (Qt.Orientation)
-        @param role data role (integer)
-        @return header data
-        """
-        if orientation == Qt.Horizontal and role == Qt.DisplayRole:
-            try:
-                return self.__headers[section]
-            except IndexError:
-                pass
-        
-        return None
-    
-    def __enginesChanged(self):
-        """
-        Private slot handling a change of the registered engines.
-        """
-        self.beginResetModel()
-        self.endResetModel()
--- a/eric6/Helpviewer/OpenSearch/OpenSearchManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,535 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a manager for open search engines.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSignal, QObject, QUrl, QFile, QDir, QIODevice
-from PyQt5.QtNetwork import QNetworkRequest, QNetworkReply
-
-from E5Gui.E5Application import e5App
-from E5Gui import E5MessageBox
-
-from Utilities.AutoSaver import AutoSaver
-import Utilities
-import Preferences
-
-
-class OpenSearchManager(QObject):
-    """
-    Class implementing a manager for open search engines.
-    
-    @signal changed() emitted to indicate a change
-    @signal currentEngineChanged() emitted to indicate a change of
-            the current search engine
-    """
-    changed = pyqtSignal()
-    currentEngineChanged = pyqtSignal()
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        if parent is None:
-            parent = e5App()
-        super(OpenSearchManager, self).__init__(parent)
-        
-        self.__replies = []
-        self.__engines = {}
-        self.__keywords = {}
-        self.__current = ""
-        self.__loading = False
-        self.__saveTimer = AutoSaver(self, self.save)
-        
-        self.changed.connect(self.__saveTimer.changeOccurred)
-        
-        self.load()
-    
-    def close(self):
-        """
-        Public method to close the open search engines manager.
-        """
-        self.__saveTimer.saveIfNeccessary()
-    
-    def currentEngineName(self):
-        """
-        Public method to get the name of the current search engine.
-        
-        @return name of the current search engine (string)
-        """
-        return self.__current
-    
-    def setCurrentEngineName(self, name):
-        """
-        Public method to set the current engine by name.
-        
-        @param name name of the new current engine (string)
-        """
-        if name not in self.__engines:
-            return
-        
-        self.__current = name
-        self.currentEngineChanged.emit()
-        self.changed.emit()
-    
-    def currentEngine(self):
-        """
-        Public method to get a reference to the current engine.
-        
-        @return reference to the current engine (OpenSearchEngine)
-        """
-        if not self.__current or self.__current not in self.__engines:
-            return None
-        
-        return self.__engines[self.__current]
-    
-    def setCurrentEngine(self, engine):
-        """
-        Public method to set the current engine.
-        
-        @param engine reference to the new current engine (OpenSearchEngine)
-        """
-        if engine is None:
-            return
-        
-        for engineName in self.__engines:
-            if self.__engines[engineName] == engine:
-                self.setCurrentEngineName(engineName)
-                break
-    
-    def engine(self, name):
-        """
-        Public method to get a reference to the named engine.
-        
-        @param name name of the engine (string)
-        @return reference to the engine (OpenSearchEngine)
-        """
-        if name not in self.__engines:
-            return None
-        
-        return self.__engines[name]
-    
-    def engineExists(self, name):
-        """
-        Public method to check, if an engine exists.
-        
-        @param name name of the engine (string)
-        @return flag indicating an existing engine (boolean)
-        """
-        return name in self.__engines
-    
-    def allEnginesNames(self):
-        """
-        Public method to get a list of all engine names.
-        
-        @return sorted list of all engine names (list of strings)
-        """
-        return sorted(self.__engines.keys())
-    
-    def enginesCount(self):
-        """
-        Public method to get the number of available engines.
-        
-        @return number of engines (integer)
-        """
-        return len(self.__engines)
-    
-    def addEngine(self, engine):
-        """
-        Public method to add a new search engine.
-        
-        @param engine URL of the engine definition file (QUrl) or
-            name of a file containing the engine definition (string)
-            or reference to an engine object (OpenSearchEngine)
-        @return flag indicating success (boolean)
-        """
-        from .OpenSearchEngine import OpenSearchEngine
-        if isinstance(engine, QUrl):
-            return self.__addEngineByUrl(engine)
-        elif isinstance(engine, OpenSearchEngine):
-            return self.__addEngineByEngine(engine)
-        else:
-            return self.__addEngineByFile(engine)
-    
-    def __addEngineByUrl(self, url):
-        """
-        Private method to add a new search engine given its URL.
-        
-        @param url URL of the engine definition file (QUrl)
-        @return flag indicating success (boolean)
-        """
-        if not url.isValid():
-            return False
-        
-        from Helpviewer.HelpWindow import HelpWindow
-
-        reply = HelpWindow.networkAccessManager().get(QNetworkRequest(url))
-        reply.finished.connect(lambda: self.__engineFromUrlAvailable(reply))
-        reply.setParent(self)
-        self.__replies.append(reply)
-        
-        return True
-    
-    def __addEngineByFile(self, filename):
-        """
-        Private method to add a new search engine given a filename.
-        
-        @param filename name of a file containing the engine definition
-            (string)
-        @return flag indicating success (boolean)
-        """
-        file_ = QFile(filename)
-        if not file_.open(QIODevice.ReadOnly):
-            return False
-        
-        from .OpenSearchReader import OpenSearchReader
-        reader = OpenSearchReader()
-        engine = reader.read(file_)
-        
-        if not self.__addEngineByEngine(engine):
-            return False
-        
-        return True
-    
-    def __addEngineByEngine(self, engine):
-        """
-        Private method to add a new search engine given a reference to an
-        engine.
-        
-        @param engine reference to an engine object (OpenSearchEngine)
-        @return flag indicating success (boolean)
-        """
-        if engine is None:
-            return False
-        
-        if not engine.isValid():
-            return False
-        
-        if engine.name() in self.__engines:
-            return False
-        
-        engine.setParent(self)
-        self.__engines[engine.name()] = engine
-        
-        self.changed.emit()
-        
-        return True
-    
-    def removeEngine(self, name):
-        """
-        Public method to remove an engine.
-        
-        @param name name of the engine (string)
-        """
-        if len(self.__engines) <= 1:
-            return
-        
-        if name not in self.__engines:
-            return
-        
-        engine = self.__engines[name]
-        for keyword in [k for k in self.__keywords
-                        if self.__keywords[k] == engine]:
-            del self.__keywords[keyword]
-        del self.__engines[name]
-        
-        file_ = QDir(self.enginesDirectory()).filePath(
-            self.generateEngineFileName(name))
-        QFile.remove(file_)
-        
-        if name == self.__current:
-            self.setCurrentEngineName(list(self.__engines.keys())[0])
-        
-        self.changed.emit()
-    
-    def generateEngineFileName(self, engineName):
-        """
-        Public method to generate a valid engine file name.
-        
-        @param engineName name of the engine (string)
-        @return valid engine file name (string)
-        """
-        fileName = ""
-        
-        # strip special characters
-        for c in engineName:
-            if c.isspace():
-                fileName += '_'
-                continue
-            
-            if c.isalnum():
-                fileName += c
-        
-        fileName += ".xml"
-        
-        return fileName
-    
-    def saveDirectory(self, dirName):
-        """
-        Public method to save the search engine definitions to files.
-        
-        @param dirName name of the directory to write the files to (string)
-        """
-        qdir = QDir()
-        if not qdir.mkpath(dirName):
-            return
-        qdir.setPath(dirName)
-        
-        from .OpenSearchWriter import OpenSearchWriter
-        writer = OpenSearchWriter()
-        
-        for engine in list(self.__engines.values()):
-            name = self.generateEngineFileName(engine.name())
-            fileName = qdir.filePath(name)
-            
-            file = QFile(fileName)
-            if not file.open(QIODevice.WriteOnly):
-                continue
-            
-            writer.write(file, engine)
-    
-    def save(self):
-        """
-        Public method to save the search engines configuration.
-        """
-        if self.__loading:
-            return
-        
-        self.saveDirectory(self.enginesDirectory())
-        
-        Preferences.setHelp("WebSearchEngine", self.__current)
-        keywords = []
-        for k in self.__keywords:
-            if self.__keywords[k]:
-                keywords.append((k, self.__keywords[k].name()))
-        Preferences.setHelp("WebSearchKeywords", keywords)
-    
-    def loadDirectory(self, dirName):
-        """
-        Public method to load the search engine definitions from files.
-        
-        @param dirName name of the directory to load the files from (string)
-        @return flag indicating success (boolean)
-        """
-        if not QFile.exists(dirName):
-            return False
-        
-        success = False
-        
-        qdir = QDir(dirName)
-        for name in qdir.entryList(["*.xml"]):
-            fileName = qdir.filePath(name)
-            if self.__addEngineByFile(fileName):
-                success = True
-        
-        return success
-    
-    def load(self):
-        """
-        Public method to load the search engines configuration.
-        """
-        self.__loading = True
-        self.__current = Preferences.getHelp("WebSearchEngine")
-        keywords = Preferences.getHelp("WebSearchKeywords")
-        
-        if not self.loadDirectory(self.enginesDirectory()):
-            self.restoreDefaults()
-        
-        for keyword, engineName in keywords:
-            self.__keywords[keyword] = self.engine(engineName)
-        
-        if self.__current not in self.__engines and \
-           len(self.__engines) > 0:
-            self.__current = list(self.__engines.keys())[0]
-        
-        self.__loading = False
-        self.currentEngineChanged.emit()
-    
-    def restoreDefaults(self):
-        """
-        Public method to restore the default search engines.
-        """
-        from .OpenSearchReader import OpenSearchReader
-        from .DefaultSearchEngines import DefaultSearchEngines_rc
-        # __IGNORE_WARNING__
-        
-        defaultEngineFiles = ["Amazoncom.xml", "Bing.xml",
-                              "DeEn_Beolingus.xml", "DuckDuckGo.xml",
-                              "Facebook.xml", "Google.xml",
-                              "Google_Im_Feeling_Lucky.xml", "LEO_DeuEng.xml",
-                              "LinuxMagazin.xml", "Reddit.xml", "Wikia.xml",
-                              "Wikia_en.xml", "Wikipedia.xml",
-                              "Wiktionary.xml", "Yahoo.xml", "YouTube.xml", ]
-        # Keep this list in sync with the contents of the resource file.
-
-        reader = OpenSearchReader()
-        for engineFileName in defaultEngineFiles:
-            engineFile = QFile(":/" + engineFileName)
-            if not engineFile.open(QIODevice.ReadOnly):
-                continue
-            engine = reader.read(engineFile)
-            self.__addEngineByEngine(engine)
-    
-    def enginesDirectory(self):
-        """
-        Public method to determine the directory containing the search engine
-        descriptions.
-        
-        @return directory name (string)
-        """
-        return os.path.join(
-            Utilities.getConfigDir(), "browser", "searchengines")
-    
-    def __confirmAddition(self, engine):
-        """
-        Private method to confirm the addition of a new search engine.
-        
-        @param engine reference to the engine to be added (OpenSearchEngine)
-        @return flag indicating the engine shall be added (boolean)
-        """
-        if engine is None or not engine.isValid():
-            return False
-        
-        host = QUrl(engine.searchUrlTemplate()).host()
-        
-        res = E5MessageBox.yesNo(
-            None,
-            "",
-            self.tr(
-                """<p>Do you want to add the following engine to your"""
-                """ list of search engines?<br/><br/>Name: {0}<br/>"""
-                """Searches on: {1}</p>""").format(engine.name(), host))
-        return res
-    
-    def __engineFromUrlAvailable(self, reply):
-        """
-        Private slot to add a search engine from the net.
-        
-        @param reply reference to the network reply
-        @type QNetworkReply
-        """
-        reply.close()
-        if reply in self.__replies:
-            self.__replies.remove(reply)
-        
-        if reply.error() == QNetworkReply.NoError:
-            from .OpenSearchReader import OpenSearchReader
-            reader = OpenSearchReader()
-            engine = reader.read(reply)
-            
-            if not engine.isValid():
-                return
-            
-            if self.engineExists(engine.name()):
-                return
-            
-            if not self.__confirmAddition(engine):
-                return
-            
-            if not self.__addEngineByEngine(engine):
-                return
-        else:
-            # some error happened
-            from Helpviewer.HelpWindow import HelpWindow
-            HelpWindow.getWindow().statusBar().showMessage(
-                reply.errorString(), 10000)
-    
-    def convertKeywordSearchToUrl(self, keywordSearch):
-        """
-        Public method to get the search URL for a keyword search.
-        
-        @param keywordSearch search string for keyword search (string)
-        @return search URL (QUrl)
-        """
-        try:
-            keyword, term = keywordSearch.split(" ", 1)
-        except ValueError:
-            return QUrl()
-        
-        if not term:
-            return QUrl()
-        
-        engine = self.engineForKeyword(keyword)
-        if engine:
-            return engine.searchUrl(term)
-        
-        return QUrl()
-    
-    def engineForKeyword(self, keyword):
-        """
-        Public method to get the engine for a keyword.
-        
-        @param keyword keyword to get engine for (string)
-        @return reference to the search engine object (OpenSearchEngine)
-        """
-        if keyword and keyword in self.__keywords:
-            return self.__keywords[keyword]
-        
-        return None
-    
-    def setEngineForKeyword(self, keyword, engine):
-        """
-        Public method to set the engine for a keyword.
-        
-        @param keyword keyword to get engine for (string)
-        @param engine reference to the search engine object (OpenSearchEngine)
-            or None to remove the keyword
-        """
-        if not keyword:
-            return
-        
-        if engine is None:
-            try:
-                del self.__keywords[keyword]
-            except KeyError:
-                pass
-        else:
-            self.__keywords[keyword] = engine
-        
-        self.changed.emit()
-    
-    def keywordsForEngine(self, engine):
-        """
-        Public method to get the keywords for a given engine.
-        
-        @param engine reference to the search engine object (OpenSearchEngine)
-        @return list of keywords (list of strings)
-        """
-        return [k for k in self.__keywords if self.__keywords[k] == engine]
-    
-    def setKeywordsForEngine(self, engine, keywords):
-        """
-        Public method to set the keywords for an engine.
-        
-        @param engine reference to the search engine object (OpenSearchEngine)
-        @param keywords list of keywords (list of strings)
-        """
-        if engine is None:
-            return
-        
-        for keyword in self.keywordsForEngine(engine):
-            del self.__keywords[keyword]
-        
-        for keyword in keywords:
-            if not keyword:
-                continue
-            
-            self.__keywords[keyword] = engine
-        
-        self.changed.emit()
-    
-    def enginesChanged(self):
-        """
-        Public slot to tell the search engine manager, that something has
-        changed.
-        """
-        self.changed.emit()
--- a/eric6/Helpviewer/OpenSearch/OpenSearchReader.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a reader for open search engine descriptions.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QXmlStreamReader, QIODevice, QCoreApplication
-
-
-class OpenSearchReader(QXmlStreamReader):
-    """
-    Class implementing a reader for open search engine descriptions.
-    """
-    def read(self, device):
-        """
-        Public method to read the description.
-        
-        @param device device to read the description from (QIODevice)
-        @return search engine object (OpenSearchEngine)
-        """
-        self.clear()
-        
-        if not device.isOpen():
-            device.open(QIODevice.ReadOnly)
-        
-        self.setDevice(device)
-        return self.__read()
-    
-    def __read(self):
-        """
-        Private method to read and parse the description.
-        
-        @return search engine object (OpenSearchEngine)
-        """
-        from .OpenSearchEngine import OpenSearchEngine
-        engine = OpenSearchEngine()
-        
-        while not self.isStartElement() and not self.atEnd():
-            self.readNext()
-        
-        if self.name() != "OpenSearchDescription" or \
-           self.namespaceUri() != "http://a9.com/-/spec/opensearch/1.1/":
-            self.raiseError(QCoreApplication.translate(
-                "OpenSearchReader",
-                "The file is not an OpenSearch 1.1 file."))
-            return engine
-        
-        while not self.atEnd():
-            self.readNext()
-            
-            if not self.isStartElement():
-                continue
-            
-            if self.name() == "ShortName":
-                engine.setName(self.readElementText())
-                
-            elif self.name() == "Description":
-                engine.setDescription(self.readElementText())
-                
-            elif self.name() == "Url":
-                type_ = self.attributes().value("type")
-                url = self.attributes().value("template")
-                method = self.attributes().value("method")
-                
-                if type_ == "application/x-suggestions+json" and \
-                   engine.suggestionsUrlTemplate():
-                    continue
-                
-                if (not type_ or
-                    type_ == "text/html" or
-                    type_ == "application/xhtml+xml") and \
-                   engine.searchUrlTemplate():
-                    continue
-                
-                if not url:
-                    continue
-                
-                parameters = []
-                
-                self.readNext()
-                
-                while not (self.isEndElement() and self.name() == "Url"):
-                    if not self.isStartElement() or \
-                       (self.name() != "Param" and self.name() != "Parameter"):
-                        self.readNext()
-                        continue
-                    
-                    key = self.attributes().value("name")
-                    value = self.attributes().value("value")
-                    
-                    if key and value:
-                        parameters.append((key, value))
-                    
-                    while not self.isEndElement():
-                        self.readNext()
-                
-                if type_ == "application/x-suggestions+json":
-                    engine.setSuggestionsUrlTemplate(url)
-                    engine.setSuggestionsParameters(parameters)
-                    engine.setSuggestionsMethod(method)
-                elif not type_ or \
-                    type_ == "text/html" or \
-                        type_ == "application/xhtml+xml":
-                    engine.setSearchUrlTemplate(url)
-                    engine.setSearchParameters(parameters)
-                    engine.setSearchMethod(method)
-                
-            elif self.name() == "Image":
-                engine.setImageUrl(self.readElementText())
-            
-            if engine.name() and \
-               engine.description() and \
-               engine.suggestionsUrlTemplate() and \
-               engine.searchUrlTemplate() and \
-               engine.imageUrl():
-                break
-        
-        return engine
--- a/eric6/Helpviewer/OpenSearch/OpenSearchWriter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a writer for open search engine descriptions.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QXmlStreamWriter, QIODevice
-
-
-class OpenSearchWriter(QXmlStreamWriter):
-    """
-    Class implementing a writer for open search engine descriptions.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(OpenSearchWriter, self).__init__()
-        
-        self.setAutoFormatting(True)
-    
-    def write(self, device, engine):
-        """
-        Public method to write the description of an engine.
-        
-        @param device reference to the device to write to (QIODevice)
-        @param engine reference to the engine (OpenSearchEngine)
-        @return flag indicating success (boolean)
-        """
-        if engine is None:
-            return False
-        
-        if not device.isOpen():
-            if not device.open(QIODevice.WriteOnly):
-                return False
-        
-        self.setDevice(device)
-        self.__write(engine)
-        return True
-    
-    def __write(self, engine):
-        """
-        Private method to write the description of an engine.
-        
-        @param engine reference to the engine (OpenSearchEngine)
-        """
-        self.writeStartDocument()
-        self.writeStartElement("OpenSearchDescription")
-        self.writeDefaultNamespace("http://a9.com/-/spec/opensearch/1.1/")
-        
-        if engine.name():
-            self.writeTextElement("ShortName", engine.name())
-        
-        if engine.description():
-            self.writeTextElement("Description", engine.description())
-        
-        if engine.searchUrlTemplate():
-            self.writeStartElement("Url")
-            self.writeAttribute("method", engine.searchMethod())
-            self.writeAttribute("type", "text/html")
-            self.writeAttribute("template", engine.searchUrlTemplate())
-            
-            if len(engine.searchParameters()) > 0:
-                self.writeNamespace(
-                    "http://a9.com/-/spec/opensearch/extensions/"
-                    "parameters/1.0/", "p")
-                for parameter in engine.searchParameters():
-                    self.writeStartElement("p:Parameter")
-                    self.writeAttribute("name", parameter[0])
-                    self.writeAttribute("value", parameter[1])
-            
-            self.writeEndElement()
-        
-        if engine.suggestionsUrlTemplate():
-            self.writeStartElement("Url")
-            self.writeAttribute("method", engine.suggestionsMethod())
-            self.writeAttribute("type", "application/x-suggestions+json")
-            self.writeAttribute("template", engine.suggestionsUrlTemplate())
-            
-            if len(engine.suggestionsParameters()) > 0:
-                self.writeNamespace(
-                    "http://a9.com/-/spec/opensearch/extensions/"
-                    "parameters/1.0/", "p")
-                for parameter in engine.suggestionsParameters():
-                    self.writeStartElement("p:Parameter")
-                    self.writeAttribute("name", parameter[0])
-                    self.writeAttribute("value", parameter[1])
-            
-            self.writeEndElement()
-        
-        if engine.imageUrl():
-            self.writeTextElement("Image", engine.imageUrl())
-        
-        self.writeEndElement()
-        self.writeEndDocument()
--- a/eric6/Helpviewer/OpenSearch/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the opensearch search engine interfaces.
-"""
--- a/eric6/Helpviewer/PageScreenDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to save a screenshot of a web page.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt, QFile, QFileInfo
-from PyQt5.QtGui import QImage, QPainter, QPixmap
-from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QAbstractButton
-
-from E5Gui import E5FileDialog, E5MessageBox
-
-from .Ui_PageScreenDialog import Ui_PageScreenDialog
-
-
-class PageScreenDialog(QDialog, Ui_PageScreenDialog):
-    """
-    Class implementing a dialog to save a screenshot of a web page.
-    """
-    def __init__(self, view, visibleOnly=False, parent=None):
-        """
-        Constructor
-        
-        @param view reference to the web view containing the page to be saved
-            (HelpBrowser)
-        @param visibleOnly flag indicating to just save the visible part
-            of the page (boolean)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(PageScreenDialog, self).__init__(parent)
-        self.setupUi(self)
-        self.setWindowFlags(Qt.Window)
-        
-        self.__view = view
-        self.__createPixmap(visibleOnly)
-        self.pageScreenLabel.setPixmap(self.__pagePixmap)
-    
-    def __createPixmap(self, visibleOnly):
-        """
-        Private slot to create a pixmap of the associated view's page.
-        
-        @param visibleOnly flag indicating to just save the visible part
-            of the page (boolean)
-        """
-        page = self.__view.page()
-        origSize = page.viewportSize()
-        if not visibleOnly:
-            page.setViewportSize(page.mainFrame().contentsSize())
-        
-        image = QImage(page.viewportSize(), QImage.Format_ARGB32)
-        painter = QPainter(image)
-        page.mainFrame().render(painter)
-        painter.end()
-        
-        self.__pagePixmap = QPixmap.fromImage(image)
-        
-        page.setViewportSize(origSize)
-    
-    def __savePageScreen(self):
-        """
-        Private slot to save the page screen.
-        
-        @return flag indicating success (boolean)
-        """
-        fileName = E5FileDialog.getSaveFileName(
-            self,
-            self.tr("Save Page Screen"),
-            self.tr("screen.png"),
-            self.tr("Portable Network Graphics File (*.png)"),
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
-        if not fileName:
-            return False
-        
-        if QFileInfo(fileName).exists():
-            res = E5MessageBox.yesNo(
-                self,
-                self.tr("Save Page Screen"),
-                self.tr("<p>The file <b>{0}</b> already exists."
-                        " Overwrite it?</p>").format(fileName),
-                icon=E5MessageBox.Warning)
-            if not res:
-                return False
-        
-        file = QFile(fileName)
-        if not file.open(QFile.WriteOnly):
-            E5MessageBox.warning(
-                self,
-                self.tr("Save Page Screen"),
-                self.tr("Cannot write file '{0}:\n{1}.")
-                .format(fileName, file.errorString()))
-            return False
-        
-        res = self.__pagePixmap.save(file)
-        file.close()
-        
-        if not res:
-            E5MessageBox.warning(
-                self,
-                self.tr("Save Page Screen"),
-                self.tr("Cannot write file '{0}:\n{1}.")
-                .format(fileName, file.errorString()))
-            return False
-        
-        return True
-    
-    @pyqtSlot(QAbstractButton)
-    def on_buttonBox_clicked(self, button):
-        """
-        Private slot to handle clicks of the dialog buttons.
-        
-        @param button button that was clicked (QAbstractButton)
-        """
-        if button == self.buttonBox.button(QDialogButtonBox.Cancel):
-            self.reject()
-        elif button == self.buttonBox.button(QDialogButtonBox.Save):
-            if self.__savePageScreen():
-                self.accept()
--- a/eric6/Helpviewer/PageScreenDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>PageScreenDialog</class>
- <widget class="QDialog" name="PageScreenDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>450</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Page Screen</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QScrollArea" name="scrollArea">
-     <property name="frameShape">
-      <enum>QFrame::NoFrame</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Plain</enum>
-     </property>
-     <property name="lineWidth">
-      <number>0</number>
-     </property>
-     <property name="widgetResizable">
-      <bool>true</bool>
-     </property>
-     <widget class="QWidget" name="scrollAreaWidgetContents">
-      <property name="geometry">
-       <rect>
-        <x>0</x>
-        <y>0</y>
-        <width>482</width>
-        <height>403</height>
-       </rect>
-      </property>
-      <layout class="QHBoxLayout" name="horizontalLayout">
-       <property name="margin">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="QLabel" name="pageScreenLabel">
-         <property name="alignment">
-          <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </widget>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Save</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>scrollArea</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Helpviewer/Passwords/LoginForm.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a data structure for login forms.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QUrl
-
-
-class LoginForm(object):
-    """
-    Class implementing a data structure for login forms.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        self.url = QUrl()
-        self.name = ""
-        self.hasAPassword = False
-        self.elements = []
-        # list of tuples of element name and value (string, string)
-        self.elementTypes = {}
-        # dict of element name as key and type as value
-    
-    def isValid(self):
-        """
-        Public method to test for validity.
-        
-        @return flag indicating a valid form (boolean)
-        """
-        return len(self.elements) > 0
--- a/eric6/Helpviewer/Passwords/PasswordManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,649 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the password manager.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSignal, QObject, QByteArray, QUrl, \
-    QCoreApplication, QXmlStreamReader
-from PyQt5.QtWidgets import QApplication
-from PyQt5.QtNetwork import QNetworkRequest
-from PyQt5.QtWebKit import QWebSettings
-from PyQt5.QtWebKitWidgets import QWebPage
-
-from E5Gui import E5MessageBox
-from E5Gui.E5ProgressDialog import E5ProgressDialog
-
-from Utilities.AutoSaver import AutoSaver
-import Utilities
-import Utilities.crypto
-import Preferences
-from Globals import qVersionTuple
-
-
-class PasswordManager(QObject):
-    """
-    Class implementing the password manager.
-    
-    @signal changed() emitted to indicate a change
-    @signal passwordsSaved() emitted after the passwords were saved
-    """
-    changed = pyqtSignal()
-    passwordsSaved = pyqtSignal()
-    
-    SEPARATOR = "===================="
-    FORMS = "=====FORMS====="
-    NEVER = "=====NEVER====="
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(PasswordManager, self).__init__(parent)
-        
-        self.__logins = {}
-        self.__loginForms = {}
-        self.__never = []
-        self.__loaded = False
-        self.__saveTimer = AutoSaver(self, self.save)
-        
-        self.changed.connect(self.__saveTimer.changeOccurred)
-    
-    def clear(self):
-        """
-        Public slot to clear the saved passwords.
-        """
-        if not self.__loaded:
-            self.__load()
-        
-        self.__logins = {}
-        self.__loginForms = {}
-        self.__never = []
-        self.__saveTimer.changeOccurred()
-        self.__saveTimer.saveIfNeccessary()
-        
-        self.changed.emit()
-    
-    def getLogin(self, url, realm):
-        """
-        Public method to get the login credentials.
-        
-        @param url URL to get the credentials for (QUrl)
-        @param realm realm to get the credentials for (string)
-        @return tuple containing the user name (string) and password (string)
-        """
-        if not self.__loaded:
-            self.__load()
-        
-        key = self.__createKey(url, realm)
-        try:
-            return self.__logins[key][0], Utilities.crypto.pwConvert(
-                self.__logins[key][1], encode=False)
-        except KeyError:
-            return "", ""
-    
-    def setLogin(self, url, realm, username, password):
-        """
-        Public method to set the login credentials.
-        
-        @param url URL to set the credentials for (QUrl)
-        @param realm realm to set the credentials for (string)
-        @param username username for the login (string)
-        @param password password for the login (string)
-        """
-        if not self.__loaded:
-            self.__load()
-        
-        key = self.__createKey(url, realm)
-        self.__logins[key] = (
-            username,
-            Utilities.crypto.pwConvert(password, encode=True)
-        )
-        self.changed.emit()
-    
-    def __createKey(self, url, realm):
-        """
-        Private method to create the key string for the login credentials.
-        
-        @param url URL to get the credentials for (QUrl)
-        @param realm realm to get the credentials for (string)
-        @return key string (string)
-        """
-        authority = url.authority()
-        if authority.startswith("@"):
-            authority = authority[1:]
-        if realm:
-            key = "{0}://{1} ({2})".format(
-                url.scheme(), authority, realm)
-        else:
-            key = "{0}://{1}".format(url.scheme(), authority)
-        return key
-    
-    def getFileName(self):
-        """
-        Public method to get the file name of the passwords file.
-        
-        @return name of the passwords file (string)
-        """
-        return os.path.join(Utilities.getConfigDir(), "browser", "logins.xml")
-    
-    def save(self):
-        """
-        Public slot to save the login entries to disk.
-        """
-        if not self.__loaded:
-            return
-        
-        from .PasswordWriter import PasswordWriter
-        loginFile = self.getFileName()
-        writer = PasswordWriter()
-        if not writer.write(
-                loginFile, self.__logins, self.__loginForms, self.__never):
-            E5MessageBox.critical(
-                None,
-                self.tr("Saving login data"),
-                self.tr(
-                    """<p>Login data could not be saved to <b>{0}</b></p>"""
-                ).format(loginFile))
-        else:
-            self.passwordsSaved.emit()
-    
-    def __load(self):
-        """
-        Private method to load the saved login credentials.
-        """
-        loginFile = self.getFileName()
-        if not os.path.exists(loginFile):
-            self.__loadNonXml(os.path.splitext(loginFile)[0])
-        else:
-            from .PasswordReader import PasswordReader
-            reader = PasswordReader()
-            self.__logins, self.__loginForms, self.__never = \
-                reader.read(loginFile)
-            if reader.error() != QXmlStreamReader.NoError:
-                E5MessageBox.warning(
-                    None,
-                    self.tr("Loading login data"),
-                    self.tr("""Error when loading login data on"""
-                            """ line {0}, column {1}:\n{2}""")
-                    .format(reader.lineNumber(),
-                            reader.columnNumber(),
-                            reader.errorString()))
-        
-        self.__loaded = True
-    
-    def __loadNonXml(self, loginFile):
-        """
-        Private method to load non-XML password files.
-        
-        This method is to convert from the old, non-XML format to the new
-        XML based format.
-        
-        @param loginFile name of the non-XML password file (string)
-        """
-        if os.path.exists(loginFile):
-            try:
-                f = open(loginFile, "r", encoding="utf-8")
-                lines = f.read()
-                f.close()
-            except IOError as err:
-                E5MessageBox.critical(
-                    None,
-                    self.tr("Loading login data"),
-                    self.tr("""<p>Login data could not be loaded """
-                            """from <b>{0}</b></p>"""
-                            """<p>Reason: {1}</p>""")
-                    .format(loginFile, str(err)))
-                return
-            
-            data = []
-            section = 0
-            # 0 = login data, 1 = forms data, 2 = never store info
-            for line in lines.splitlines():
-                if line == self.FORMS:
-                    section = 1
-                    continue
-                elif line == self.NEVER:
-                    section = 2
-                    continue
-                
-                if section == 0:
-                    if line != self.SEPARATOR:
-                        data.append(line)
-                    else:
-                        if len(data) != 3:
-                            E5MessageBox.critical(
-                                None,
-                                self.tr("Loading login data"),
-                                self.tr(
-                                    """<p>Login data could not be loaded """
-                                    """from <b>{0}</b></p>"""
-                                    """<p>Reason: Wrong input format</p>""")
-                                .format(loginFile))
-                            return
-                        self.__logins[data[0]] = (data[1], data[2])
-                        data = []
-                
-                elif section == 1:
-                    if line != self.SEPARATOR:
-                        data.append(line)
-                    else:
-                        from .LoginForm import LoginForm
-                        key = data[0]
-                        form = LoginForm()
-                        form.url = QUrl(data[1])
-                        form.name = data[2]
-                        form.hasAPassword = data[3] == "True"
-                        for element in data[4:]:
-                            name, value = element.split(" = ", 1)
-                            form.elements.append((name, value))
-                        self.__loginForms[key] = form
-                        data = []
-                
-                elif section == 2:
-                    self.__never.append(line)
-            
-            os.remove(loginFile)
-        
-        self.__loaded = True
-        
-        # this does the conversion
-        self.save()
-    
-    def reload(self):
-        """
-        Public method to reload the login data.
-        """
-        if not self.__loaded:
-            return
-        
-        self.__load()
-    
-    def close(self):
-        """
-        Public method to close the passwords manager.
-        """
-        self.__saveTimer.saveIfNeccessary()
-    
-    def removePassword(self, site):
-        """
-        Public method to remove a password entry.
-        
-        @param site web site name (string)
-        """
-        if site in self.__logins:
-            del self.__logins[site]
-            if site in self.__loginForms:
-                del self.__loginForms[site]
-            self.changed.emit()
-    
-    def allSiteNames(self):
-        """
-        Public method to get a list of all site names.
-        
-        @return sorted list of all site names (list of strings)
-        """
-        if not self.__loaded:
-            self.__load()
-        
-        return sorted(self.__logins.keys())
-    
-    def sitesCount(self):
-        """
-        Public method to get the number of available sites.
-        
-        @return number of sites (integer)
-        """
-        if not self.__loaded:
-            self.__load()
-        
-        return len(self.__logins)
-    
-    def siteInfo(self, site):
-        """
-        Public method to get a reference to the named site.
-        
-        @param site web site name (string)
-        @return tuple containing the user name (string) and password (string)
-        """
-        if not self.__loaded:
-            self.__load()
-        
-        if site not in self.__logins:
-            return None
-        
-        return self.__logins[site][0], Utilities.crypto.pwConvert(
-            self.__logins[site][1], encode=False)
-    
-    def post(self, request, data):
-        """
-        Public method to check, if the data to be sent contains login data.
-        
-        @param request reference to the network request (QNetworkRequest)
-        @param data data to be sent (QByteArray)
-        """
-        # shall passwords be saved?
-        if not Preferences.getUser("SavePasswords"):
-            return
-        
-        # observe privacy
-        if QWebSettings.globalSettings().testAttribute(
-                QWebSettings.PrivateBrowsingEnabled):
-            return
-        
-        if not self.__loaded:
-            self.__load()
-        
-        # determine the url
-        refererHeader = request.rawHeader(b"Referer")
-        if refererHeader.isEmpty():
-            return
-        url = QUrl.fromEncoded(refererHeader)
-        url = self.__stripUrl(url)
-        
-        # check that url isn't in __never
-        if url.toString() in self.__never:
-            return
-        
-        # check the request type
-        navType = request.attribute(QNetworkRequest.User + 101)
-        if navType is None:
-            return
-        if navType != QWebPage.NavigationTypeFormSubmitted:
-            return
-        
-        # determine the QWebPage
-        webPage = request.attribute(QNetworkRequest.User + 100)
-        if webPage is None:
-            return
-        
-        # determine the requests content type
-        contentTypeHeader = request.rawHeader(b"Content-Type")
-        if contentTypeHeader.isEmpty():
-            return
-        multipart = contentTypeHeader.startsWith(b"multipart/form-data")
-        if multipart:
-            boundary = contentTypeHeader.split(" ")[1].split("=")[1]
-        else:
-            boundary = None
-        
-        # find the matching form on the web page
-        form = self.__findForm(webPage, data, boundary=boundary)
-        if not form.isValid():
-            return
-        form.url = QUrl(url)
-        
-        # check, if the form has a password
-        if not form.hasAPassword:
-            return
-        
-        # prompt, if the form has never be seen
-        key = self.__createKey(url, "")
-        if key not in self.__loginForms:
-            mb = E5MessageBox.E5MessageBox(
-                E5MessageBox.Question,
-                self.tr("Save password"),
-                self.tr(
-                    """<b>Would you like to save this password?</b><br/>"""
-                    """To review passwords you have saved and remove them, """
-                    """use the password management dialog of the Settings"""
-                    """ menu."""),
-                modal=True)
-            neverButton = mb.addButton(
-                self.tr("Never for this site"),
-                E5MessageBox.DestructiveRole)
-            noButton = mb.addButton(
-                self.tr("Not now"), E5MessageBox.RejectRole)
-            mb.addButton(E5MessageBox.Yes)
-            mb.exec_()
-            if mb.clickedButton() == neverButton:
-                self.__never.append(url.toString())
-                return
-            elif mb.clickedButton() == noButton:
-                return
-        
-        # extract user name and password
-        user = ""
-        password = ""
-        for index in range(len(form.elements)):
-            element = form.elements[index]
-            type_ = form.elementTypes[element[0]]
-            if user == "" and \
-               type_ == "text":
-                user = element[1]
-            elif password == "" and \
-                    type_ == "password":
-                password = element[1]
-                form.elements[index] = (element[0], "--PASSWORD--")
-        if user and password:
-            self.__logins[key] = \
-                (user, Utilities.crypto.pwConvert(password, encode=True))
-            self.__loginForms[key] = form
-            self.changed.emit()
-    
-    def __stripUrl(self, url):
-        """
-        Private method to strip off all unneeded parts of a URL.
-        
-        @param url URL to be stripped (QUrl)
-        @return stripped URL (QUrl)
-        """
-        cleanUrl = QUrl(url)
-        if qVersionTuple() >= (5, 0, 0):
-            cleanUrl.setQuery("")
-        else:
-            cleanUrl.setQueryItems([])
-        cleanUrl.setUserInfo("")
-        
-        authority = cleanUrl.authority()
-        if authority.startswith("@"):
-            authority = authority[1:]
-        cleanUrl = QUrl("{0}://{1}{2}".format(
-            cleanUrl.scheme(), authority, cleanUrl.path()))
-        cleanUrl.setFragment("")
-        return cleanUrl
-    
-    def __findForm(self, webPage, data, boundary=None):
-        """
-        Private method to find the form used for logging in.
-        
-        @param webPage reference to the web page (QWebPage)
-        @param data data to be sent (QByteArray)
-        @keyparam boundary boundary string (QByteArray) for multipart
-            encoded data, None for urlencoded data
-        @return parsed form (LoginForm)
-        """
-        from .LoginForm import LoginForm
-        form = LoginForm()
-        if boundary is not None:
-            args = self.__extractMultipartQueryItems(data, boundary)
-        else:
-            if qVersionTuple() >= (5, 0, 0):
-                from PyQt5.QtCore import QUrlQuery
-                argsUrl = QUrl.fromEncoded(
-                    QByteArray(b"foo://bar.com/?" + QUrl.fromPercentEncoding(
-                        data.replace(b"+", b"%20")).encode("utf-8")))
-                encodedArgs = QUrlQuery(argsUrl).queryItems()
-            else:
-                argsUrl = QUrl.fromEncoded(
-                    QByteArray(b"foo://bar.com/?" + data.replace(b"+", b"%20"))
-                )
-                encodedArgs = argsUrl.queryItems()
-            args = set()
-            for arg in encodedArgs:
-                key = arg[0]
-                value = arg[1]
-                args.add((key, value))
-        
-        # extract the forms
-        from Helpviewer.JavaScriptResources import parseForms_js
-        lst = webPage.mainFrame().evaluateJavaScript(parseForms_js)
-        for formMap in lst:
-            formHasPasswords = False
-            formName = formMap["name"]
-            formIndex = formMap["index"]
-            if isinstance(formIndex, float) and formIndex.is_integer():
-                formIndex = int(formIndex)
-            elements = formMap["elements"]
-            formElements = set()
-            formElementTypes = {}
-            deadElements = set()
-            for elementMap in elements:
-                try:
-                    name = elementMap["name"]
-                    value = elementMap["value"]
-                    type_ = elementMap["type"]
-                except KeyError:
-                    continue
-                if type_ == "password":
-                    formHasPasswords = True
-                t = (name, value)
-                try:
-                    if elementMap["autocomplete"] == "off":
-                        deadElements.add(t)
-                except KeyError:
-                    pass
-                if name:
-                    formElements.add(t)
-                    formElementTypes[name] = type_
-            if formElements.intersection(args) == args:
-                form.hasAPassword = formHasPasswords
-                if not formName:
-                    form.name = formIndex
-                else:
-                    form.name = formName
-                args.difference_update(deadElements)
-                for elt in deadElements:
-                    if elt[0] in formElementTypes:
-                        del formElementTypes[elt[0]]
-                form.elements = list(args)
-                form.elementTypes = formElementTypes
-                break
-        
-        return form
-    
-    def __extractMultipartQueryItems(self, data, boundary):
-        """
-        Private method to extract the query items for a post operation.
-        
-        @param data data to be sent (QByteArray)
-        @param boundary boundary string (QByteArray)
-        @return set of name, value pairs (set of tuple of string, string)
-        """
-        args = set()
-        
-        dataStr = bytes(data).decode()
-        boundaryStr = bytes(boundary).decode()
-        
-        parts = dataStr.split(boundaryStr + "\r\n")
-        for part in parts:
-            if part.startswith("Content-Disposition"):
-                lines = part.split("\r\n")
-                name = lines[0].split("=")[1][1:-1]
-                value = lines[2]
-                args.add((name, value))
-        
-        return args
-    
-    def fill(self, page):
-        """
-        Public slot to fill login forms with saved data.
-        
-        @param page reference to the web page (QWebPage)
-        """
-        if page is None or page.mainFrame() is None:
-            return
-        
-        if not self.__loaded:
-            self.__load()
-        
-        url = page.mainFrame().url()
-        url = self.__stripUrl(url)
-        key = self.__createKey(url, "")
-        if key not in self.__loginForms or \
-           key not in self.__logins:
-            return
-        
-        form = self.__loginForms[key]
-        if form.url != url:
-            return
-        
-        if form.name == "":
-            formName = "0"
-        else:
-            try:
-                formName = "{0:d}".format(int(form.name))
-            except ValueError:
-                formName = '"{0}"'.format(form.name)
-        for element in form.elements:
-            name = element[0]
-            value = element[1]
-            
-            disabled = page.mainFrame().evaluateJavaScript(
-                'document.forms[{0}].elements["{1}"].disabled'.format(
-                    formName, name))
-            if disabled:
-                continue
-            
-            readOnly = page.mainFrame().evaluateJavaScript(
-                'document.forms[{0}].elements["{1}"].readOnly'.format(
-                    formName, name))
-            if readOnly:
-                continue
-            
-            type_ = page.mainFrame().evaluateJavaScript(
-                'document.forms[{0}].elements["{1}"].type'.format(
-                    formName, name))
-            if type_ == "" or \
-               type_ in ["hidden", "reset", "submit"]:
-                continue
-            if type_ == "password":
-                value = Utilities.crypto.pwConvert(
-                    self.__logins[key][1], encode=False)
-            setType = type_ == "checkbox" and "checked" or "value"
-            value = value.replace("\\", "\\\\")
-            value = value.replace('"', '\\"')
-            javascript = \
-                'document.forms[{0}].elements["{1}"].{2}="{3}";'.format(
-                    formName, name, setType, value)
-            page.mainFrame().evaluateJavaScript(javascript)
-    
-    def masterPasswordChanged(self, oldPassword, newPassword):
-        """
-        Public slot to handle the change of the master password.
-        
-        @param oldPassword current master password (string)
-        @param newPassword new master password (string)
-        """
-        if not self.__loaded:
-            self.__load()
-        
-        progress = E5ProgressDialog(
-            self.tr("Re-encoding saved passwords..."),
-            None, 0, len(self.__logins), self.tr("%v/%m Passwords"),
-            QApplication.activeModalWidget())
-        progress.setMinimumDuration(0)
-        progress.setWindowTitle(self.tr("Passwords"))
-        count = 0
-        
-        for key in self.__logins:
-            progress.setValue(count)
-            QCoreApplication.processEvents()
-            username, oldPwHash = self.__logins[key]
-            newPwHash = Utilities.crypto.pwRecode(oldPwHash, oldPassword,
-                                                  newPassword)
-            self.__logins[key] = (username, newPwHash)
-            count += 1
-        
-        progress.setValue(len(self.__logins))
-        QCoreApplication.processEvents()
-        self.changed.emit()
--- a/eric6/Helpviewer/Passwords/PasswordModel.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a model for password management.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt, QModelIndex, QAbstractTableModel
-
-
-class PasswordModel(QAbstractTableModel):
-    """
-    Class implementing a model for password management.
-    """
-    def __init__(self, manager, parent=None):
-        """
-        Constructor
-        
-        @param manager reference to the password manager (PasswordManager)
-        @param parent reference to the parent object (QObject)
-        """
-        super(PasswordModel, self).__init__(parent)
-        
-        self.__manager = manager
-        manager.changed.connect(self.__passwordsChanged)
-        
-        self.__headers = [
-            self.tr("Website"),
-            self.tr("Username"),
-            self.tr("Password")
-        ]
-        
-        self.__showPasswords = False
-    
-    def setShowPasswords(self, on):
-        """
-        Public methods to show passwords.
-        
-        @param on flag indicating if passwords shall be shown (boolean)
-        """
-        self.__showPasswords = on
-        self.beginResetModel()
-        self.endResetModel()
-    
-    def showPasswords(self):
-        """
-        Public method to indicate, if passwords shall be shown.
-        
-        @return flag indicating if passwords shall be shown (boolean)
-        """
-        return self.__showPasswords
-    
-    def __passwordsChanged(self):
-        """
-        Private slot handling a change of the registered passwords.
-        """
-        self.beginResetModel()
-        self.endResetModel()
-    
-    def removeRows(self, row, count, parent=None):
-        """
-        Public method to remove entries from the model.
-        
-        @param row start row (integer)
-        @param count number of rows to remove (integer)
-        @param parent parent index (QModelIndex)
-        @return flag indicating success (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return False
-        
-        if count <= 0:
-            return False
-        
-        lastRow = row + count - 1
-        
-        self.beginRemoveRows(parent, row, lastRow)
-        
-        siteList = self.__manager.allSiteNames()
-        for index in range(row, lastRow + 1):
-            self.__manager.removePassword(siteList[index])
-        
-        # removeEngine emits changed()
-        #self.endRemoveRows()
-        
-        return True
-    
-    def rowCount(self, parent=None):
-        """
-        Public method to get the number of rows of the model.
-        
-        @param parent parent index (QModelIndex)
-        @return number of rows (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return 0
-        else:
-            return self.__manager.sitesCount()
-    
-    def columnCount(self, parent=None):
-        """
-        Public method to get the number of columns of the model.
-        
-        @param parent parent index (QModelIndex) (Unused)
-        @return number of columns (integer)
-        """
-        if self.__showPasswords:
-            return 3
-        else:
-            return 2
-    
-    def data(self, index, role):
-        """
-        Public method to get data from the model.
-        
-        @param index index to get data for (QModelIndex)
-        @param role role of the data to retrieve (integer)
-        @return requested data
-        """
-        if index.row() >= self.__manager.sitesCount() or index.row() < 0:
-            return None
-        
-        site = self.__manager.allSiteNames()[index.row()]
-        siteInfo = self.__manager.siteInfo(site)
-        
-        if siteInfo is None:
-            return None
-        
-        if role == Qt.DisplayRole:
-            if index.column() == 0:
-                return site
-            elif index.column() in [1, 2]:
-                return siteInfo[index.column() - 1]
-        
-        return None
-    
-    def headerData(self, section, orientation, role=Qt.DisplayRole):
-        """
-        Public method to get the header data.
-        
-        @param section section number (integer)
-        @param orientation header orientation (Qt.Orientation)
-        @param role data role (integer)
-        @return header data
-        """
-        if orientation == Qt.Horizontal and role == Qt.DisplayRole:
-            try:
-                return self.__headers[section]
-            except IndexError:
-                pass
-        
-        return None
--- a/eric6/Helpviewer/Passwords/PasswordReader.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a class to read login data files.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QXmlStreamReader, QIODevice, QFile, \
-    QCoreApplication, QUrl
-
-
-class PasswordReader(QXmlStreamReader):
-    """
-    Class implementing a reader object for login data files.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(PasswordReader, self).__init__()
-    
-    def read(self, fileNameOrDevice):
-        """
-        Public method to read a login data file.
-        
-        @param fileNameOrDevice name of the file to read (string)
-            or reference to the device to read (QIODevice)
-        @return tuple containing the logins, forms and never URLs
-        """
-        self.__logins = {}
-        self.__loginForms = {}
-        self.__never = []
-        
-        if isinstance(fileNameOrDevice, QIODevice):
-            self.setDevice(fileNameOrDevice)
-        else:
-            f = QFile(fileNameOrDevice)
-            if not f.exists():
-                return self.__logins, self.__loginForms, self.__never
-            f.open(QFile.ReadOnly)
-            self.setDevice(f)
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isStartElement():
-                version = self.attributes().value("version")
-                if self.name() == "Password" and \
-                   (not version or version == "1.0"):
-                    self.__readPasswords()
-                else:
-                    self.raiseError(QCoreApplication.translate(
-                        "PasswordReader",
-                        "The file is not a Passwords version 1.0 file."))
-        
-        return self.__logins, self.__loginForms, self.__never
-    
-    def __readPasswords(self):
-        """
-        Private method to read and parse the login data file.
-        """
-        if not self.isStartElement() and self.name() != "Password":
-            return
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isEndElement():
-                break
-            
-            if self.isStartElement():
-                if self.name() == "Logins":
-                    self.__readLogins()
-                elif self.name() == "Forms":
-                    self.__readForms()
-                elif self.name() == "Nevers":
-                    self.__readNevers()
-                else:
-                    self.__skipUnknownElement()
-    
-    def __readLogins(self):
-        """
-        Private method to read the login information.
-        """
-        if not self.isStartElement() and self.name() != "Logins":
-            return
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isEndElement():
-                if self.name() == "Login":
-                    continue
-                else:
-                    break
-            
-            if self.isStartElement():
-                if self.name() == "Login":
-                    attributes = self.attributes()
-                    key = attributes.value("key")
-                    user = attributes.value("user")
-                    password = attributes.value("password")
-                    self.__logins[key] = (user, password)
-                else:
-                    self.__skipUnknownElement()
-    
-    def __readForms(self):
-        """
-        Private method to read the forms information.
-        """
-        if not self.isStartElement() and self.name() != "Forms":
-            return
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isStartElement():
-                if self.name() == "Form":
-                    from .LoginForm import LoginForm
-                    attributes = self.attributes()
-                    key = attributes.value("key")
-                    form = LoginForm()
-                    form.url = QUrl(attributes.value("url"))
-                    form.name = attributes.value("name")
-                    form.hasAPassword = attributes.value("password") == "yes"
-                elif self.name() == "Elements":
-                    continue
-                elif self.name() == "Element":
-                    attributes = self.attributes()
-                    name = attributes.value("name")
-                    value = attributes.value("value")
-                    form.elements.append((name, value))
-                else:
-                    self.__skipUnknownElement()
-            
-            if self.isEndElement():
-                if self.name() == "Form":
-                    self.__loginForms[key] = form
-                    continue
-                elif self.name() in ["Elements", "Element"]:
-                    continue
-                else:
-                    break
-    
-    def __readNevers(self):
-        """
-        Private method to read the never URLs.
-        """
-        if not self.isStartElement() and self.name() != "Nevers":
-            return
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isEndElement():
-                if self.name() == "Never":
-                    continue
-                else:
-                    break
-            
-            if self.isStartElement():
-                if self.name() == "Never":
-                    self.__never.append(self.attributes().value("url"))
-                else:
-                    self.__skipUnknownElement()
-    
-    def __skipUnknownElement(self):
-        """
-        Private method to skip over all unknown elements.
-        """
-        if not self.isStartElement():
-            return
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isEndElement():
-                break
-            
-            if self.isStartElement():
-                self.__skipUnknownElement()
--- a/eric6/Helpviewer/Passwords/PasswordWriter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a class to write login data files.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QXmlStreamWriter, QIODevice, QFile
-
-
-class PasswordWriter(QXmlStreamWriter):
-    """
-    Class implementing a writer object to generate login data files.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(PasswordWriter, self).__init__()
-        
-        self.setAutoFormatting(True)
-    
-    def write(self, fileNameOrDevice, logins, forms, nevers):
-        """
-        Public method to write an login data file.
-        
-        @param fileNameOrDevice name of the file to write (string)
-            or device to write to (QIODevice)
-        @param logins dictionary with login data (user name, password)
-        @param forms list of forms data (list of LoginForm)
-        @param nevers list of URLs to never store data for (list of strings)
-        @return flag indicating success (boolean)
-        """
-        if isinstance(fileNameOrDevice, QIODevice):
-            f = fileNameOrDevice
-        else:
-            f = QFile(fileNameOrDevice)
-            if not f.open(QFile.WriteOnly):
-                return False
-        
-        self.setDevice(f)
-        return self.__write(logins, forms, nevers)
-    
-    def __write(self, logins, forms, nevers):
-        """
-        Private method to write an login data file.
-        
-        @param logins dictionary with login data (user name, password)
-        @param forms list of forms data (list of LoginForm)
-        @param nevers list of URLs to never store data for (list of strings)
-        @return flag indicating success (boolean)
-        """
-        self.writeStartDocument()
-        self.writeDTD("<!DOCTYPE passwords>")
-        self.writeStartElement("Password")
-        self.writeAttribute("version", "1.0")
-        
-        if logins:
-            self.__writeLogins(logins)
-        if forms:
-            self.__writeForms(forms)
-        if nevers:
-            self.__writeNevers(nevers)
-        
-        self.writeEndDocument()
-        return True
-    
-    def __writeLogins(self, logins):
-        """
-        Private method to write the login data.
-        
-        @param logins dictionary with login data (user name, password)
-        """
-        self.writeStartElement("Logins")
-        for key, login in logins.items():
-            self.writeEmptyElement("Login")
-            self.writeAttribute("key", key)
-            self.writeAttribute("user", login[0])
-            self.writeAttribute("password", login[1])
-        self.writeEndElement()
-    
-    def __writeForms(self, forms):
-        """
-        Private method to write forms data.
-        
-        @param forms list of forms data (list of LoginForm)
-        """
-        self.writeStartElement("Forms")
-        for key, form in forms.items():
-            self.writeStartElement("Form")
-            self.writeAttribute("key", key)
-            self.writeAttribute("url", form.url.toString())
-            self.writeAttribute("name", str(form.name))
-            self.writeAttribute(
-                "password", "yes" if form.hasAPassword else "no")
-            if form.elements:
-                self.writeStartElement("Elements")
-                for element in form.elements:
-                    self.writeEmptyElement("Element")
-                    self.writeAttribute("name", element[0])
-                    self.writeAttribute("value", element[1])
-                self.writeEndElement()
-            self.writeEndElement()
-        self.writeEndElement()
-    
-    def __writeNevers(self, nevers):
-        """
-        Private method to write the URLs never to store login data for.
-        
-        @param nevers list of URLs to never store data for (list of strings)
-        """
-        self.writeStartElement("Nevers")
-        for never in nevers:
-            self.writeEmptyElement("Never")
-            self.writeAttribute("url", never)
-        self.writeEndElement()
--- a/eric6/Helpviewer/Passwords/PasswordsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to show all saved logins.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, QSortFilterProxyModel
-from PyQt5.QtGui import QFont, QFontMetrics
-from PyQt5.QtWidgets import QDialog
-
-from E5Gui import E5MessageBox
-
-from .Ui_PasswordsDialog import Ui_PasswordsDialog
-
-
-class PasswordsDialog(QDialog, Ui_PasswordsDialog):
-    """
-    Class implementing a dialog to show all saved logins.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(PasswordsDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.__showPasswordsText = self.tr("Show Passwords")
-        self.__hidePasswordsText = self.tr("Hide Passwords")
-        self.passwordsButton.setText(self.__showPasswordsText)
-        
-        self.removeButton.clicked.connect(
-            self.passwordsTable.removeSelected)
-        self.removeAllButton.clicked.connect(self.passwordsTable.removeAll)
-        
-        import Helpviewer.HelpWindow
-        from .PasswordModel import PasswordModel
-        
-        self.passwordsTable.verticalHeader().hide()
-        self.__passwordModel = PasswordModel(
-            Helpviewer.HelpWindow.HelpWindow.passwordManager(), self)
-        self.__proxyModel = QSortFilterProxyModel(self)
-        self.__proxyModel.setSourceModel(self.__passwordModel)
-        self.searchEdit.textChanged.connect(
-            self.__proxyModel.setFilterFixedString)
-        self.passwordsTable.setModel(self.__proxyModel)
-        
-        fm = QFontMetrics(QFont())
-        height = fm.height() + fm.height() // 3
-        self.passwordsTable.verticalHeader().setDefaultSectionSize(height)
-        self.passwordsTable.verticalHeader().setMinimumSectionSize(-1)
-        
-        self.__calculateHeaderSizes()
-    
-    def __calculateHeaderSizes(self):
-        """
-        Private method to calculate the section sizes of the horizontal header.
-        """
-        fm = QFontMetrics(QFont())
-        for section in range(self.__passwordModel.columnCount()):
-            header = self.passwordsTable.horizontalHeader()\
-                .sectionSizeHint(section)
-            if section == 0:
-                header = fm.width("averagebiglongsitename")
-            elif section == 1:
-                header = fm.width("averagelongusername")
-            elif section == 2:
-                header = fm.width("averagelongpassword")
-            buffer = fm.width("mm")
-            header += buffer
-            self.passwordsTable.horizontalHeader()\
-                .resizeSection(section, header)
-        self.passwordsTable.horizontalHeader().setStretchLastSection(True)
-    
-    @pyqtSlot()
-    def on_passwordsButton_clicked(self):
-        """
-        Private slot to switch the password display mode.
-        """
-        if self.__passwordModel.showPasswords():
-            self.__passwordModel.setShowPasswords(False)
-            self.passwordsButton.setText(self.__showPasswordsText)
-        else:
-            res = E5MessageBox.yesNo(
-                self,
-                self.tr("Saved Passwords"),
-                self.tr("""Do you really want to show passwords?"""))
-            if res:
-                self.__passwordModel.setShowPasswords(True)
-                self.passwordsButton.setText(self.__hidePasswordsText)
-        self.__calculateHeaderSizes()
--- a/eric6/Helpviewer/Passwords/PasswordsDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>PasswordsDialog</class>
- <widget class="QDialog" name="PasswordsDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>350</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Saved Passwords</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <layout class="QHBoxLayout" name="horizontalLayout">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="E5ClearableLineEdit" name="searchEdit">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="minimumSize">
-          <size>
-           <width>300</width>
-           <height>0</height>
-          </size>
-         </property>
-         <property name="toolTip">
-          <string>Enter search term</string>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="E5TableView" name="passwordsTable">
-     <property name="alternatingRowColors">
-      <bool>true</bool>
-     </property>
-     <property name="selectionBehavior">
-      <enum>QAbstractItemView::SelectRows</enum>
-     </property>
-     <property name="textElideMode">
-      <enum>Qt::ElideMiddle</enum>
-     </property>
-     <property name="showGrid">
-      <bool>false</bool>
-     </property>
-     <property name="sortingEnabled">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <item>
-      <widget class="QPushButton" name="removeButton">
-       <property name="toolTip">
-        <string>Press to remove the selected entries</string>
-       </property>
-       <property name="text">
-        <string>&amp;Remove</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="removeAllButton">
-       <property name="toolTip">
-        <string>Press to remove all entries</string>
-       </property>
-       <property name="text">
-        <string>Remove &amp;All</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>208</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QPushButton" name="passwordsButton">
-       <property name="toolTip">
-        <string>Press to toggle the display of passwords</string>
-       </property>
-       <property name="text">
-        <string/>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5TableView</class>
-   <extends>QTableView</extends>
-   <header>E5Gui/E5TableView.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>searchEdit</tabstop>
-  <tabstop>passwordsTable</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>removeAllButton</tabstop>
-  <tabstop>passwordsButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>PasswordsDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>237</x>
-     <y>340</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>PasswordsDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>325</x>
-     <y>340</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/Passwords/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the password management interface.
-"""
--- a/eric6/Helpviewer/PersonalInformationManager/PersonalDataDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to enter personal data.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QDialog
-
-from .Ui_PersonalDataDialog import Ui_PersonalDataDialog
-
-import UI.PixmapCache
-import Preferences
-
-
-class PersonalDataDialog(QDialog, Ui_PersonalDataDialog):
-    """
-    Class implementing a dialog to enter personal data.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(PersonalDataDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.iconLabel.setPixmap(UI.PixmapCache.getPixmap("pim48.png"))
-        
-        self.firstnameEdit.setText(Preferences.getHelp("PimFirstName"))
-        self.lastnameEdit.setText(Preferences.getHelp("PimLastName"))
-        self.fullnameEdit.setText(Preferences.getHelp("PimFullName"))
-        self.emailEdit.setText(Preferences.getHelp("PimEmail"))
-        self.phoneEdit.setText(Preferences.getHelp("PimPhone"))
-        self.mobileEdit.setText(Preferences.getHelp("PimMobile"))
-        self.addressEdit.setText(Preferences.getHelp("PimAddress"))
-        self.cityEdit.setText(Preferences.getHelp("PimCity"))
-        self.zipEdit.setText(Preferences.getHelp("PimZip"))
-        self.stateEdit.setText(Preferences.getHelp("PimState"))
-        self.countryEdit.setText(Preferences.getHelp("PimCountry"))
-        self.homepageEdit.setText(Preferences.getHelp("PimHomePage"))
-        self.special1Edit.setText(Preferences.getHelp("PimSpecial1"))
-        self.special2Edit.setText(Preferences.getHelp("PimSpecial2"))
-        self.special3Edit.setText(Preferences.getHelp("PimSpecial3"))
-        self.special4Edit.setText(Preferences.getHelp("PimSpecial4"))
-    
-    def storeData(self):
-        """
-        Public method to store the entered personal information.
-        """
-        Preferences.setHelp("PimFirstName", self.firstnameEdit.text())
-        Preferences.setHelp("PimLastName", self.lastnameEdit.text())
-        Preferences.setHelp("PimFullName", self.fullnameEdit.text())
-        Preferences.setHelp("PimEmail", self.emailEdit.text())
-        Preferences.setHelp("PimPhone", self.phoneEdit.text())
-        Preferences.setHelp("PimMobile", self.mobileEdit.text())
-        Preferences.setHelp("PimAddress", self.addressEdit.text())
-        Preferences.setHelp("PimCity", self.cityEdit.text())
-        Preferences.setHelp("PimZip", self.zipEdit.text())
-        Preferences.setHelp("PimState", self.stateEdit.text())
-        Preferences.setHelp("PimCountry", self.countryEdit.text())
-        Preferences.setHelp("PimHomePage", self.homepageEdit.text())
-        Preferences.setHelp("PimSpecial1", self.special1Edit.text())
-        Preferences.setHelp("PimSpecial2", self.special2Edit.text())
-        Preferences.setHelp("PimSpecial3", self.special3Edit.text())
-        Preferences.setHelp("PimSpecial4", self.special4Edit.text())
--- a/eric6/Helpviewer/PersonalInformationManager/PersonalDataDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,384 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>PersonalDataDialog</class>
- <widget class="QDialog" name="PersonalDataDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>600</width>
-    <height>400</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Personal Information</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <spacer name="horizontalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QLabel" name="iconLabel">
-       <property name="minimumSize">
-        <size>
-         <width>48</width>
-         <height>48</height>
-        </size>
-       </property>
-       <property name="text">
-        <string notr="true">Icon</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>&lt;h2&gt;Personal Information&lt;/h2&gt;</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_01">
-     <property name="text">
-      <string>Your personal information that will be used on webpages.</string>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignCenter</set>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0">
-      <widget class="QLabel" name="label_02">
-       <property name="text">
-        <string>First Name:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QLineEdit" name="firstnameEdit"/>
-     </item>
-     <item row="0" column="2">
-      <widget class="QLabel" name="label_08">
-       <property name="text">
-        <string>ZIP Code:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="3">
-      <widget class="QLineEdit" name="zipEdit"/>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="label_03">
-       <property name="text">
-        <string>Last Name:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QLineEdit" name="lastnameEdit"/>
-     </item>
-     <item row="1" column="2">
-      <widget class="QLabel" name="label_09">
-       <property name="text">
-        <string>State/Region:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="3">
-      <widget class="QLineEdit" name="stateEdit"/>
-     </item>
-     <item row="2" column="0">
-      <widget class="QLabel" name="label_18">
-       <property name="text">
-        <string>Full Name:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QLineEdit" name="fullnameEdit"/>
-     </item>
-     <item row="2" column="2">
-      <widget class="QLabel" name="label_10">
-       <property name="text">
-        <string>Country:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="3">
-      <widget class="QLineEdit" name="countryEdit"/>
-     </item>
-     <item row="3" column="0">
-      <widget class="QLabel" name="label_12">
-       <property name="text">
-        <string>E-mail:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="1">
-      <widget class="QLineEdit" name="emailEdit"/>
-     </item>
-     <item row="3" column="2">
-      <widget class="QLabel" name="label_11">
-       <property name="text">
-        <string>Home Page:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="3">
-      <widget class="QLineEdit" name="homepageEdit"/>
-     </item>
-     <item row="4" column="0">
-      <widget class="QLabel" name="label_04">
-       <property name="text">
-        <string>Phone:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="4" column="1">
-      <widget class="QLineEdit" name="phoneEdit"/>
-     </item>
-     <item row="4" column="2">
-      <widget class="QLabel" name="label_13">
-       <property name="text">
-        <string>Custom 1:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="4" column="3">
-      <widget class="QLineEdit" name="special1Edit"/>
-     </item>
-     <item row="5" column="0">
-      <widget class="QLabel" name="label_05">
-       <property name="text">
-        <string>Mobile Phone:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="5" column="1">
-      <widget class="QLineEdit" name="mobileEdit"/>
-     </item>
-     <item row="5" column="2">
-      <widget class="QLabel" name="label_14">
-       <property name="text">
-        <string>Custom 2:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="5" column="3">
-      <widget class="QLineEdit" name="special2Edit"/>
-     </item>
-     <item row="6" column="0">
-      <widget class="QLabel" name="label_06">
-       <property name="text">
-        <string>Address:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="6" column="1">
-      <widget class="QLineEdit" name="addressEdit"/>
-     </item>
-     <item row="6" column="2">
-      <widget class="QLabel" name="label_15">
-       <property name="text">
-        <string>Custom 3:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="6" column="3">
-      <widget class="QLineEdit" name="special3Edit"/>
-     </item>
-     <item row="7" column="0">
-      <widget class="QLabel" name="label_07">
-       <property name="text">
-        <string>City:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="7" column="1">
-      <widget class="QLineEdit" name="cityEdit"/>
-     </item>
-     <item row="7" column="2">
-      <widget class="QLabel" name="label_17">
-       <property name="text">
-        <string>Custom 4:</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="7" column="3">
-      <widget class="QLineEdit" name="special4Edit"/>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_16">
-     <property name="text">
-      <string>&lt;b&gt;Note:&lt;/b&gt; Press Ctrl+ENTER to autofill form fields for which personal entries were found.</string>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>31</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>firstnameEdit</tabstop>
-  <tabstop>lastnameEdit</tabstop>
-  <tabstop>fullnameEdit</tabstop>
-  <tabstop>emailEdit</tabstop>
-  <tabstop>phoneEdit</tabstop>
-  <tabstop>mobileEdit</tabstop>
-  <tabstop>addressEdit</tabstop>
-  <tabstop>cityEdit</tabstop>
-  <tabstop>zipEdit</tabstop>
-  <tabstop>stateEdit</tabstop>
-  <tabstop>countryEdit</tabstop>
-  <tabstop>homepageEdit</tabstop>
-  <tabstop>special1Edit</tabstop>
-  <tabstop>special2Edit</tabstop>
-  <tabstop>special3Edit</tabstop>
-  <tabstop>special4Edit</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>PersonalDataDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>PersonalDataDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/PersonalInformationManager/PersonalInformationManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,259 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a personal information manager used to complete form
-fields.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt, QObject
-from PyQt5.QtWidgets import QDialog, QMenu
-
-import Preferences
-import UI.PixmapCache
-
-
-class PersonalInformationManager(QObject):
-    """
-    Class implementing the personal information manager used to complete form
-    fields.
-    """
-    FullName = 0
-    LastName = 1
-    FirstName = 2
-    Email = 3
-    Mobile = 4
-    Phone = 5
-    Address = 6
-    City = 7
-    Zip = 8
-    State = 9
-    Country = 10
-    HomePage = 11
-    Special1 = 12
-    Special2 = 13
-    Special3 = 14
-    Special4 = 15
-    Max = 16
-    Invalid = 256
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(PersonalInformationManager, self).__init__(parent)
-        
-        self.__loaded = False
-        self.__allInfo = {}
-        self.__infoMatches = {}
-        self.__translations = {}
-        
-        self.__view = None
-        self.__element = None
-    
-    def __loadSettings(self):
-        """
-        Private method to load the settings.
-        """
-        self.__allInfo[self.FullName] = Preferences.getHelp("PimFullName")
-        self.__allInfo[self.LastName] = Preferences.getHelp("PimLastName")
-        self.__allInfo[self.FirstName] = Preferences.getHelp("PimFirstName")
-        self.__allInfo[self.Email] = Preferences.getHelp("PimEmail")
-        self.__allInfo[self.Mobile] = Preferences.getHelp("PimMobile")
-        self.__allInfo[self.Phone] = Preferences.getHelp("PimPhone")
-        self.__allInfo[self.Address] = Preferences.getHelp("PimAddress")
-        self.__allInfo[self.City] = Preferences.getHelp("PimCity")
-        self.__allInfo[self.Zip] = Preferences.getHelp("PimZip")
-        self.__allInfo[self.State] = Preferences.getHelp("PimState")
-        self.__allInfo[self.Country] = Preferences.getHelp("PimCountry")
-        self.__allInfo[self.HomePage] = Preferences.getHelp("PimHomePage")
-        self.__allInfo[self.Special1] = Preferences.getHelp("PimSpecial1")
-        self.__allInfo[self.Special2] = Preferences.getHelp("PimSpecial2")
-        self.__allInfo[self.Special3] = Preferences.getHelp("PimSpecial3")
-        self.__allInfo[self.Special4] = Preferences.getHelp("PimSpecial4")
-        
-        self.__translations[self.FullName] = self.tr("Full Name")
-        self.__translations[self.LastName] = self.tr("Last Name")
-        self.__translations[self.FirstName] = self.tr("First Name")
-        self.__translations[self.Email] = self.tr("E-mail")
-        self.__translations[self.Mobile] = self.tr("Mobile")
-        self.__translations[self.Phone] = self.tr("Phone")
-        self.__translations[self.Address] = self.tr("Address")
-        self.__translations[self.City] = self.tr("City")
-        self.__translations[self.Zip] = self.tr("ZIP Code")
-        self.__translations[self.State] = self.tr("State/Region")
-        self.__translations[self.Country] = self.tr("Country")
-        self.__translations[self.HomePage] = self.tr("Home Page")
-        self.__translations[self.Special1] = self.tr("Custom 1")
-        self.__translations[self.Special2] = self.tr("Custom 2")
-        self.__translations[self.Special3] = self.tr("Custom 3")
-        self.__translations[self.Special4] = self.tr("Custom 4")
-        
-        self.__infoMatches[self.FullName] = ["fullname", "realname"]
-        self.__infoMatches[self.LastName] = ["lastname", "surname"]
-        self.__infoMatches[self.FirstName] = ["firstname", "name"]
-        self.__infoMatches[self.Email] = ["email", "e-mail", "mail"]
-        self.__infoMatches[self.Mobile] = ["mobile", "mobilephone"]
-        self.__infoMatches[self.Phone] = ["phone", "telephone"]
-        self.__infoMatches[self.Address] = ["address"]
-        self.__infoMatches[self.City] = ["city"]
-        self.__infoMatches[self.Zip] = ["zip"]
-        self.__infoMatches[self.State] = ["state", "region"]
-        self.__infoMatches[self.Country] = ["country"]
-        self.__infoMatches[self.HomePage] = ["homepage", "www"]
-        
-        self.__loaded = True
-    
-    def showConfigurationDialog(self):
-        """
-        Public method to show the configuration dialog.
-        """
-        from .PersonalDataDialog import PersonalDataDialog
-        dlg = PersonalDataDialog()
-        if dlg.exec_() == QDialog.Accepted:
-            dlg.storeData()
-            self.__loadSettings()
-    
-    def createSubMenu(self, menu, view, hitTestResult):
-        """
-        Public method to create the personal information sub-menu.
-        
-        @param menu reference to the main menu (QMenu)
-        @param view reference to the view (HelpBrowser)
-        @param hitTestResult reference to the hit test result
-            (QWebHitTestResult)
-        """
-        self.__view = view
-        self.__element = hitTestResult.element()
-        
-        if not hitTestResult.isContentEditable():
-            return
-        
-        if not self.__loaded:
-            self.__loadSettings()
-        
-        submenu = QMenu(self.tr("Insert Personal Information"), menu)
-        submenu.setIcon(UI.PixmapCache.getIcon("pim.png"))
-        
-        for key, info in sorted(self.__allInfo.items()):
-            if info:
-                act = submenu.addAction(self.__translations[key])
-                act.setData(info)
-                act.triggered.connect(lambda: self.__insertData(act))
-        
-        submenu.addSeparator()
-        submenu.addAction(self.tr("Edit Personal Information"),
-                          self.showConfigurationDialog)
-        
-        menu.addMenu(submenu)
-        menu.addSeparator()
-    
-    def __insertData(self, act):
-        """
-        Private slot to insert the selected personal information.
-        
-        @param act reference to the action that triggered
-        @type QAction
-        """
-        if not self.__element or self.__element.isNull():
-            return
-        
-        info = act.data()
-        info = info.replace('"', '\\"')
-        self.__element.evaluateJavaScript(
-            'var newVal = this.value.substring(0, this.selectionStart) +'
-            ' "{0}" + this.value.substring(this.selectionEnd); this.value ='
-            ' newVal;'.format(info))
-    
-    def viewKeyPressEvent(self, view, evt):
-        """
-        Protected method to handle key press events we are interested in.
-        
-        @param view reference to the view (HelpBrowser)
-        @param evt reference to the key event (QKeyEvent)
-        @return flag indicating handling of the event (boolean)
-        """
-        if view is None:
-            return False
-        
-        isEnter = evt.key() in [Qt.Key_Return, Qt.Key_Enter]
-        if not isEnter or evt.modifiers() != Qt.ControlModifier:
-            return False
-        
-        if not self.__loaded:
-            self.__loadSettings()
-        
-        document = view.page().mainFrame().documentElement()
-        elements = document.findAll('input[type="text"]')
-        
-        for element in elements:
-            name = element.attribute("name")
-            if name == "":
-                continue
-            
-            match = self.__nameMatch(name)
-            if match != self.Invalid:
-                element.evaluateJavaScript(
-                    'this.value = "{0}"'.format(self.__allInfo[match]))
-        
-        return True
-    
-    def __nameMatch(self, name):
-        """
-        Private method to find the information entry for the given field.
-        
-        @param name name of the form field (string)
-        @return value of the information entry (integer)
-        """
-        for index in range(self.Max):
-            if self.__allInfo[index]:
-                for n in self.__infoMatches[index]:
-                    if name == n or n in name:
-                        return index
-        
-        return self.Invalid
-    
-    def connectPage(self, page):
-        """
-        Public method to allow the personal information manager to connect to
-        the page.
-        
-        @param page reference to the web page (HelpWebPage)
-        """
-        page.loadFinished.connect(lambda ok: self.__pageLoadFinished(ok, page))
-    
-    def __pageLoadFinished(self, ok, page):
-        """
-        Private slot to handle the completion of a page load.
-        
-        @param ok flag indicating a successful load
-        @type bool
-        @param page reference to the web page object
-        @type HelpWebPage
-        """
-        if page is None or not ok:
-            return
-        
-        if not self.__loaded:
-            self.__loadSettings()
-        
-        document = page.mainFrame().documentElement()
-        elements = document.findAll('input[type="text"]')
-        
-        for element in elements:
-            name = element.attribute("name")
-            if name == "":
-                continue
-            
-            match = self.__nameMatch(name)
-            if match != self.Invalid:
-                element.setStyleProperty(
-                    "-webkit-appearance", "none")
-                element.setStyleProperty(
-                    "-webkit-box-shadow", "inset 0 0 2px 1px #0000EE")
--- a/eric6/Helpviewer/PersonalInformationManager/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the personal information manager for the completion of
-forms.
-"""
--- a/eric6/Helpviewer/QtHelpDocumentationDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,208 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to manage the QtHelp documentation database.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt, QItemSelectionModel
-from PyQt5.QtWidgets import QDialog
-from PyQt5.QtHelp import QHelpEngineCore
-
-from E5Gui import E5MessageBox, E5FileDialog
-from E5Gui.E5Application import e5App
-
-from .Ui_QtHelpDocumentationDialog import Ui_QtHelpDocumentationDialog
-
-
-class QtHelpDocumentationDialog(QDialog, Ui_QtHelpDocumentationDialog):
-    """
-    Class implementing a dialog to manage the QtHelp documentation database.
-    """
-    def __init__(self, engine, parent):
-        """
-        Constructor
-        
-        @param engine reference to the help engine (QHelpEngine)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(QtHelpDocumentationDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.removeButton.setEnabled(False)
-        
-        self.__engine = engine
-        self.__mw = parent
-        
-        docs = self.__engine.registeredDocumentations()
-        self.documentsList.addItems(docs)
-        
-        self.__registeredDocs = []
-        self.__unregisteredDocs = []
-        self.__tabsToClose = []
-        
-        try:
-            self.__pluginHelpDocuments = \
-                e5App().getObject("PluginManager").getPluginQtHelpFiles()
-        except KeyError:
-            from PluginManager.PluginManager import PluginManager
-            pluginManager = PluginManager(self, doLoadPlugins=False)
-            pluginManager.loadDocumentationSetPlugins()
-            pluginManager.activatePlugins()
-            self.__pluginHelpDocuments = pluginManager.getPluginQtHelpFiles()
-        self.addPluginButton.setEnabled(bool(self.__pluginHelpDocuments))
-    
-    @pyqtSlot()
-    def on_documentsList_itemSelectionChanged(self):
-        """
-        Private slot handling a change of the documents selection.
-        """
-        self.removeButton.setEnabled(
-            len(self.documentsList.selectedItems()) != 0)
-    
-    @pyqtSlot()
-    def on_addButton_clicked(self):
-        """
-        Private slot to add QtHelp documents to the help database.
-        """
-        fileNames = E5FileDialog.getOpenFileNames(
-            self,
-            self.tr("Add Documentation"),
-            "",
-            self.tr("Qt Compressed Help Files (*.qch)"))
-        if not fileNames:
-            return
-        
-        self.__registerDocumentations(fileNames)
-    
-    @pyqtSlot()
-    def on_addPluginButton_clicked(self):
-        """
-        Private slot to add QtHelp documents provided by plug-ins to
-        the help database.
-        """
-        from .QtHelpDocumentationSelectionDialog import \
-            QtHelpDocumentationSelectionDialog
-        dlg = QtHelpDocumentationSelectionDialog(
-            self.__pluginHelpDocuments,
-            QtHelpDocumentationSelectionDialog.AddMode,
-            self)
-        if dlg.exec_() == QDialog.Accepted:
-            documents = dlg.getData()
-            if not documents:
-                return
-            
-            self.__registerDocumentations(documents)
-    
-    @pyqtSlot()
-    def on_managePluginButton_clicked(self):
-        """
-        Private slot to manage the QtHelp documents provided by plug-ins.
-        """
-        from .QtHelpDocumentationSelectionDialog import \
-            QtHelpDocumentationSelectionDialog
-        dlg = QtHelpDocumentationSelectionDialog(
-            self.__pluginHelpDocuments,
-            QtHelpDocumentationSelectionDialog.ManageMode,
-            self)
-        dlg.exec_()
-    
-    def __registerDocumentations(self, fileNames):
-        """
-        Private method to register a given list of documentations.
-        
-        @param fileNames list of documentation files to be registered
-        @type list of str
-        """
-        for fileName in fileNames:
-            ns = QHelpEngineCore.namespaceName(fileName)
-            if not ns:
-                E5MessageBox.warning(
-                    self,
-                    self.tr("Add Documentation"),
-                    self.tr(
-                        """The file <b>{0}</b> is not a valid"""
-                        """ Qt Help File.""").format(fileName)
-                )
-                continue
-            
-            if len(self.documentsList.findItems(ns, Qt.MatchFixedString)):
-                E5MessageBox.warning(
-                    self,
-                    self.tr("Add Documentation"),
-                    self.tr(
-                        """The namespace <b>{0}</b> is already registered.""")
-                    .format(ns)
-                )
-                continue
-            
-            self.__engine.registerDocumentation(fileName)
-            self.documentsList.addItem(ns)
-            self.__registeredDocs.append(ns)
-            if ns in self.__unregisteredDocs:
-                self.__unregisteredDocs.remove(ns)
-
-    @pyqtSlot()
-    def on_removeButton_clicked(self):
-        """
-        Private slot to remove a document from the help database.
-        """
-        res = E5MessageBox.yesNo(
-            self,
-            self.tr("Remove Documentation"),
-            self.tr(
-                """Do you really want to remove the selected documentation """
-                """sets from the database?"""))
-        if not res:
-            return
-        
-        openedDocs = self.__mw.getSourceFileList()
-        
-        items = self.documentsList.selectedItems()
-        for item in items:
-            ns = item.text()
-            if ns in list(openedDocs.values()):
-                res = E5MessageBox.yesNo(
-                    self,
-                    self.tr("Remove Documentation"),
-                    self.tr(
-                        """Some documents currently opened reference the """
-                        """documentation you are attempting to remove. """
-                        """Removing the documentation will close those """
-                        """documents. Remove anyway?"""),
-                    icon=E5MessageBox.Warning)
-                if not res:
-                    return
-            self.__unregisteredDocs.append(ns)
-            for docId in openedDocs:
-                if openedDocs[docId] == ns and docId not in self.__tabsToClose:
-                    self.__tabsToClose.append(docId)
-            itm = self.documentsList.takeItem(self.documentsList.row(item))
-            del itm
-            
-            self.__engine.unregisterDocumentation(ns)
-        
-        if self.documentsList.count():
-            self.documentsList.setCurrentRow(
-                0, QItemSelectionModel.ClearAndSelect)
-    
-    def hasChanges(self):
-        """
-        Public slot to test the dialog for changes.
-        
-        @return flag indicating presence of changes
-        """
-        return len(self.__registeredDocs) > 0 or \
-            len(self.__unregisteredDocs) > 0
-    
-    def getTabsToClose(self):
-        """
-        Public method to get the list of tabs to close.
-        
-        @return list of tab ids to be closed (list of integers)
-        """
-        return self.__tabsToClose
--- a/eric6/Helpviewer/QtHelpDocumentationDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>QtHelpDocumentationDialog</class>
- <widget class="QDialog" name="QtHelpDocumentationDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>450</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Manage QtHelp Documentation Database</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>Registered Documents</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0" rowspan="6">
-      <widget class="QListWidget" name="documentsList">
-       <property name="alternatingRowColors">
-        <bool>true</bool>
-       </property>
-       <property name="selectionMode">
-        <enum>QAbstractItemView::ExtendedSelection</enum>
-       </property>
-       <property name="sortingEnabled">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QPushButton" name="addButton">
-       <property name="toolTip">
-        <string>Press to select QtHelp documents to add to the database</string>
-       </property>
-       <property name="text">
-        <string>Add...</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QPushButton" name="addPluginButton">
-       <property name="toolTip">
-        <string>Press to select QtHelp documents provided by a plug-in to add to the database</string>
-       </property>
-       <property name="text">
-        <string>Add from Plug-ins...</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QPushButton" name="removeButton">
-       <property name="toolTip">
-        <string>Press to remove the selected documents from the database</string>
-       </property>
-       <property name="text">
-        <string>Remove</string>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="1">
-      <widget class="Line" name="line">
-       <property name="lineWidth">
-        <number>2</number>
-       </property>
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-      </widget>
-     </item>
-     <item row="4" column="1">
-      <widget class="QPushButton" name="managePluginButton">
-       <property name="toolTip">
-        <string>Select to manage the plug-in provided documentation sets</string>
-       </property>
-       <property name="text">
-        <string>Manage Plug-ins...</string>
-       </property>
-      </widget>
-     </item>
-     <item row="5" column="1">
-      <spacer name="verticalSpacer">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>18</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>documentsList</tabstop>
-  <tabstop>addButton</tabstop>
-  <tabstop>addPluginButton</tabstop>
-  <tabstop>removeButton</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>QtHelpDocumentationDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>QtHelpDocumentationDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/QtHelpDocumentationSelectionDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2016 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to select QtHelp documentation sets to be
-installed.
-"""
-
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
-import os
-import shutil
-
-from PyQt5.QtCore import pyqtSlot, Qt
-from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QTreeWidgetItem
-
-from E5Gui import E5MessageBox
-
-from .Ui_QtHelpDocumentationSelectionDialog import \
-    Ui_QtHelpDocumentationSelectionDialog
-
-
-class QtHelpDocumentationSelectionDialog(
-        QDialog, Ui_QtHelpDocumentationSelectionDialog):
-    """
-    Class implementing a dialog to select QtHelp documentation sets to be
-    installed.
-    """
-    AddMode = "Add"
-    ManageMode = "Manage"
-    
-    def __init__(self, helpDocuments, mode, parent=None):
-        """
-        Constructor
-        
-        @param helpDocuments dictionary containing the lists of help documents
-            to be shown
-        @type dict of lists of str
-        @param mode mode of the dialog
-        @type str
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super(QtHelpDocumentationSelectionDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        if mode == QtHelpDocumentationSelectionDialog.AddMode:
-            self.buttonBox.button(QDialogButtonBox.Close).hide()
-        else:
-            self.buttonBox.button(QDialogButtonBox.Ok).hide()
-            self.buttonBox.button(QDialogButtonBox.Cancel).hide()
-        
-        for category in helpDocuments:
-            parentItem = QTreeWidgetItem(self.documentationList, [category])
-            for document in helpDocuments[category]:
-                item = QTreeWidgetItem(parentItem,
-                                       [os.path.basename(document)])
-                item.setData(0, Qt.UserRole, document)
-                parentItem.setData(0, Qt.UserRole, os.path.dirname(document))
-        self.documentationList.sortItems(0, Qt.AscendingOrder)
-    
-    @pyqtSlot()
-    def on_documentationList_itemSelectionChanged(self):
-        """
-        Private slot handling the selection of items.
-        """
-        selectedCategoriesCount = 0
-        selectedDocumentSetCount = 0
-        for itm in self.documentationList.selectedItems():
-            if itm.parent() is None:
-                selectedCategoriesCount += 1
-            else:
-                selectedDocumentSetCount += 1
-        
-        self.deleteButton.setEnabled(selectedDocumentSetCount > 0)
-        self.deleteCategoryButton.setEnabled(selectedCategoriesCount > 0)
-    
-    @pyqtSlot()
-    def on_deleteButton_clicked(self):
-        """
-        Private slot to delete the selected documentation sets.
-        """
-        yes = E5MessageBox.yesNo(
-            self,
-            self.tr("Delete Documentation Sets"),
-            self.tr("""Shall the selected documentation sets really be"""
-                    """ deleted?"""))
-        if yes:
-            for itm in self.documentationList.selectedItems():
-                if itm.parent is None:
-                    # it is a category item, skip it
-                    continue
-                
-                category = itm.parent()
-                fileName = itm.data(0, Qt.UserRole)
-                try:
-                    os.remove(fileName)
-                except OSError as err:
-                    E5MessageBox.warning(
-                        self,
-                        self.tr("Delete Documentation Sets"),
-                        self.tr("""<p>The documentation set <b>{0}</b> could"""
-                                """ not be deleted.</p><p>Reason: {1}</p>""")
-                        .format(fileName, str(err)))
-                    continue
-                
-                category.removeChild(itm)
-                del itm
-                
-                if category.childCount() == 0:
-                    self.__deleteCategory(category)
-    
-    @pyqtSlot()
-    def on_deleteCategoryButton_clicked(self):
-        """
-        Private slot to delete the selected documentation set categories.
-        """
-        yes = E5MessageBox.yesNo(
-            self,
-            self.tr("Delete Documentation Sets"),
-            self.tr("""Shall the selected documentation set categories"""
-                    """ really be deleted?"""))
-        if yes:
-            categories = []
-            for itm in self.documentationList.selectedItems():
-                if itm.parent() is None:
-                    categories.append(itm)
-            for category in categories:
-                self.__deleteCategory(category)
-    
-    @pyqtSlot()
-    def on_deleteAllButton_clicked(self):
-        """
-        Private slot to delete all documentation sets.
-        """
-        yes = E5MessageBox.yesNo(
-            self,
-            self.tr("Delete Documentation Sets"),
-            self.tr("""Shall all documentation sets really be deleted?"""))
-        if yes:
-            categories = []
-            for index in range(self.documentationList.topLevelItemCount()):
-                categories.append(
-                    self.documentationList.topLevelItem(index))
-            for category in categories:
-                self.__deleteCategory(category)
-    
-    def __deleteCategory(self, category):
-        """
-        Private method to delete a category.
-        
-        @param category reference to the category item
-        @type QTreeWidgetItem
-        """
-        categoryDir = category.data(0, Qt.UserRole)
-        shutil.rmtree(categoryDir, True)
-        
-        self.documentationList.takeTopLevelItem(
-            self.documentationList.indexOfTopLevelItem(category))
-        del category
-    
-    def getData(self):
-        """
-        Public method to retrieve the selected help documents.
-        
-        @return list of QtHelp documentation sets to be installed
-        @rtype list of str
-        """
-        documents = []
-        for item in self.documentationList.selectedItems():
-            fileName = item.data(0, Qt.UserRole)
-            if fileName:
-                documents.append(fileName)
-        return documents
--- a/eric6/Helpviewer/QtHelpDocumentationSelectionDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>QtHelpDocumentationSelectionDialog</class>
- <widget class="QDialog" name="QtHelpDocumentationSelectionDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>450</width>
-    <height>500</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>QtHelp Documentations</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>Select the documentation files to be installed:</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QTreeWidget" name="documentationList">
-     <property name="alternatingRowColors">
-      <bool>true</bool>
-     </property>
-     <property name="selectionMode">
-      <enum>QAbstractItemView::ExtendedSelection</enum>
-     </property>
-     <property name="sortingEnabled">
-      <bool>true</bool>
-     </property>
-     <property name="allColumnsShowFocus">
-      <bool>true</bool>
-     </property>
-     <attribute name="headerVisible">
-      <bool>false</bool>
-     </attribute>
-     <column>
-      <property name="text">
-       <string notr="true">1</string>
-      </property>
-     </column>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QPushButton" name="deleteButton">
-       <property name="toolTip">
-        <string>Press to delete the selected documentation sets</string>
-       </property>
-       <property name="text">
-        <string>Delete</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="deleteCategoryButton">
-       <property name="toolTip">
-        <string>Press to delete the selected category</string>
-       </property>
-       <property name="text">
-        <string>Delete Categories</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="deleteAllButton">
-       <property name="toolTip">
-        <string>Press to delete all entries</string>
-       </property>
-       <property name="text">
-        <string>Delete All</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Close|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>documentationList</tabstop>
-  <tabstop>deleteButton</tabstop>
-  <tabstop>deleteCategoryButton</tabstop>
-  <tabstop>deleteAllButton</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>QtHelpDocumentationSelectionDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>QtHelpDocumentationSelectionDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/QtHelpFiltersDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,275 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to manage the QtHelp filters.
-"""
-
-from __future__ import unicode_literals
-
-import sqlite3
-
-from PyQt5.QtCore import pyqtSlot, Qt, QItemSelectionModel
-from PyQt5.QtWidgets import QDialog, QTreeWidgetItem, QListWidgetItem, \
-    QInputDialog, QLineEdit
-from PyQt5.QtHelp import QHelpEngineCore
-
-from E5Gui import E5MessageBox
-
-from .Ui_QtHelpFiltersDialog import Ui_QtHelpFiltersDialog
-
-
-class QtHelpFiltersDialog(QDialog, Ui_QtHelpFiltersDialog):
-    """
-    Class implementing a dialog to manage the QtHelp filters.
-    """
-    def __init__(self, engine, parent=None):
-        """
-        Constructor
-        
-        @param engine reference to the help engine (QHelpEngine)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(QtHelpFiltersDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.removeButton.setEnabled(False)
-        self.removeAttributeButton.setEnabled(False)
-        
-        self.__engine = engine
-        
-        self.filtersList.clear()
-        self.attributesList.clear()
-        
-        helpEngineCore = QHelpEngineCore(self.__engine.collectionFile())
-        helpEngineCore.setupData()
-        
-        self.__removedFilters = []
-        self.__filterMap = {}
-        self.__filterMapBackup = {}
-        self.__removedAttributes = []
-        
-        for customFilter in helpEngineCore.customFilters():
-            atts = helpEngineCore.filterAttributes(customFilter)
-            self.__filterMapBackup[customFilter] = atts
-            if customFilter not in self.__filterMap:
-                self.__filterMap[customFilter] = atts
-        
-        self.filtersList.addItems(sorted(self.__filterMap.keys()))
-        for attr in helpEngineCore.filterAttributes():
-            QTreeWidgetItem(self.attributesList, [attr])
-        self.attributesList.sortItems(0, Qt.AscendingOrder)
-        
-        if self.__filterMap:
-            self.filtersList.setCurrentRow(0)
-    
-    @pyqtSlot(QListWidgetItem, QListWidgetItem)
-    def on_filtersList_currentItemChanged(self, current, previous):
-        """
-        Private slot to update the attributes depending on the current filter.
-        
-        @param current reference to the current item (QListWidgetitem)
-        @param previous reference to the previous current item
-            (QListWidgetItem)
-        """
-        checkedList = []
-        if current is not None:
-            checkedList = self.__filterMap[current.text()]
-        for index in range(0, self.attributesList.topLevelItemCount()):
-            itm = self.attributesList.topLevelItem(index)
-            if itm.text(0) in checkedList:
-                itm.setCheckState(0, Qt.Checked)
-            else:
-                itm.setCheckState(0, Qt.Unchecked)
-    
-    @pyqtSlot()
-    def on_filtersList_itemSelectionChanged(self):
-        """
-        Private slot handling a change of selected filters.
-        """
-        self.removeButton.setEnabled(
-            len(self.filtersList.selectedItems()) > 0)
-    
-    @pyqtSlot(QTreeWidgetItem, int)
-    def on_attributesList_itemChanged(self, item, column):
-        """
-        Private slot to handle a change of an attribute.
-        
-        @param item reference to the changed item (QTreeWidgetItem)
-        @param column column containing the change (integer)
-        """
-        if self.filtersList.currentItem() is None:
-            return
-        
-        filterText = self.filtersList.currentItem().text()
-        if filterText not in self.__filterMap:
-            return
-        
-        newAtts = []
-        for index in range(0, self.attributesList.topLevelItemCount()):
-            itm = self.attributesList.topLevelItem(index)
-            if itm.checkState(0) == Qt.Checked:
-                newAtts.append(itm.text(0))
-        self.__filterMap[filterText] = newAtts
-    
-    @pyqtSlot()
-    def on_attributesList_itemSelectionChanged(self):
-        """
-        Private slot handling the selection of attributes.
-        """
-        self.removeAttributeButton.setEnabled(
-            len(self.attributesList.selectedItems()) != 0)
-    
-    @pyqtSlot()
-    def on_addButton_clicked(self):
-        """
-        Private slot to add a new filter.
-        """
-        customFilter, ok = QInputDialog.getText(
-            None,
-            self.tr("Add Filter"),
-            self.tr("Filter name:"),
-            QLineEdit.Normal)
-        if not customFilter:
-            return
-        
-        if customFilter not in self.__filterMap:
-            self.__filterMap[customFilter] = []
-            self.filtersList.addItem(customFilter)
-        
-        itm = self.filtersList.findItems(
-            customFilter, Qt.MatchCaseSensitive)[0]
-        self.filtersList.setCurrentItem(itm)
-    
-    @pyqtSlot()
-    def on_removeButton_clicked(self):
-        """
-        Private slot to remove the selected filters.
-        """
-        ok = E5MessageBox.yesNo(
-            self,
-            self.tr("Remove Filters"),
-            self.tr(
-                """Do you really want to remove the selected filters """
-                """from the database?"""))
-        if not ok:
-            return
-        
-        items = self.filtersList.selectedItems()
-        for item in items:
-            itm = self.filtersList.takeItem(self.filtersList.row(item))
-            if itm is None:
-                continue
-            
-            del self.__filterMap[itm.text()]
-            self.__removedFilters.append(itm.text())
-            del itm
-        
-        if self.filtersList.count():
-            self.filtersList.setCurrentRow(
-                0, QItemSelectionModel.ClearAndSelect)
-    
-    @pyqtSlot()
-    def on_removeAttributeButton_clicked(self):
-        """
-        Private slot to remove the selected filter attributes.
-        """
-        ok = E5MessageBox.yesNo(
-            self,
-            self.tr("Remove Attributes"),
-            self.tr(
-                """Do you really want to remove the selected attributes """
-                """from the database?"""))
-        if not ok:
-            return
-        
-        items = self.attributesList.selectedItems()
-        for item in items:
-            itm = self.attributesList.takeTopLevelItem(
-                self.attributesList.indexOfTopLevelItem(item))
-            if itm is None:
-                continue
-            
-            attr = itm.text(0)
-            self.__removedAttributes.append(attr)
-            for customFilter in self.__filterMap:
-                if attr in self.__filterMap[customFilter]:
-                    self.__filterMap[customFilter].remove(attr)
-            
-            del itm
-    
-    @pyqtSlot()
-    def on_unusedAttributesButton_clicked(self):
-        """
-        Private slot to select all unused attributes.
-        """
-        # step 1: determine all used attributes
-        attributes = set()
-        for customFilter in self.__filterMap:
-            attributes |= set(self.__filterMap[customFilter])
-        
-        # step 2: select all unused attribute items
-        self.attributesList.clearSelection()
-        for row in range(self.attributesList.topLevelItemCount()):
-            itm = self.attributesList.topLevelItem(row)
-            if itm.text(0) not in attributes:
-                itm.setSelected(True)
-    
-    def __removeAttributes(self):
-        """
-        Private method to remove attributes from the Qt Help database.
-        """
-        try:
-            self.__db = sqlite3.connect(self.__engine.collectionFile())
-        except sqlite3.DatabaseError:
-            pass        # ignore database errors
-        
-        for attr in self.__removedAttributes:
-            self.__db.execute(
-                "DELETE FROM FilterAttributeTable WHERE Name = '{0}'"
-                .format(attr))
-        self.__db.commit()
-        self.__db.close()
-    
-    @pyqtSlot()
-    def on_buttonBox_accepted(self):
-        """
-        Private slot to update the database, if the dialog is accepted.
-        """
-        filtersChanged = False
-        if len(self.__filterMapBackup) != len(self.__filterMap):
-            filtersChanged = True
-        else:
-            for customFilter in self.__filterMapBackup:
-                if customFilter not in self.__filterMap:
-                    filtersChanged = True
-                else:
-                    oldFilterAtts = self.__filterMapBackup[customFilter]
-                    newFilterAtts = self.__filterMap[customFilter]
-                    if len(oldFilterAtts) != len(newFilterAtts):
-                        filtersChanged = True
-                    else:
-                        for attr in oldFilterAtts:
-                            if attr not in newFilterAtts:
-                                filtersChanged = True
-                                break
-                
-                if filtersChanged:
-                    break
-        
-        if filtersChanged:
-            for customFilter in self.__removedFilters:
-                self.__engine.removeCustomFilter(customFilter)
-            for customFilter in self.__filterMap:
-                self.__engine.addCustomFilter(
-                    customFilter, self.__filterMap[customFilter])
-        
-        if self.__removedAttributes:
-            self.__removeAttributes()
-        
-        if filtersChanged or self.__removedAttributes:
-            self.__engine.setupData()
-        
-        self.accept()
--- a/eric6/Helpviewer/QtHelpFiltersDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,155 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>QtHelpFiltersDialog</class>
- <widget class="QDialog" name="QtHelpFiltersDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>570</width>
-    <height>391</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Manage QtHelp Filters</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0" colspan="2">
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>Filters:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="2" colspan="2">
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>Attributes:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0" colspan="2">
-      <widget class="QListWidget" name="filtersList">
-       <property name="alternatingRowColors">
-        <bool>true</bool>
-       </property>
-       <property name="selectionMode">
-        <enum>QAbstractItemView::ExtendedSelection</enum>
-       </property>
-       <property name="sortingEnabled">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="2" colspan="2">
-      <widget class="QTreeWidget" name="attributesList">
-       <property name="alternatingRowColors">
-        <bool>true</bool>
-       </property>
-       <property name="selectionMode">
-        <enum>QAbstractItemView::ExtendedSelection</enum>
-       </property>
-       <property name="rootIsDecorated">
-        <bool>false</bool>
-       </property>
-       <property name="sortingEnabled">
-        <bool>true</bool>
-       </property>
-       <property name="headerHidden">
-        <bool>true</bool>
-       </property>
-       <column>
-        <property name="text">
-         <string>1</string>
-        </property>
-       </column>
-      </widget>
-     </item>
-     <item row="2" column="0">
-      <widget class="QPushButton" name="addButton">
-       <property name="toolTip">
-        <string>Press to add a new filter</string>
-       </property>
-       <property name="text">
-        <string>Add Filter ...</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QPushButton" name="removeButton">
-       <property name="toolTip">
-        <string>Press to remove the selected filters</string>
-       </property>
-       <property name="text">
-        <string>Remove Filters</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="2">
-      <widget class="QPushButton" name="removeAttributeButton">
-       <property name="toolTip">
-        <string>Press to remove the selected attributes</string>
-       </property>
-       <property name="text">
-        <string>Remove Attributes</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="3">
-      <widget class="QPushButton" name="unusedAttributesButton">
-       <property name="statusTip">
-        <string>Press to select all unused attributes</string>
-       </property>
-       <property name="text">
-        <string>Select Unused</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>filtersList</tabstop>
-  <tabstop>addButton</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>attributesList</tabstop>
-  <tabstop>removeAttributeButton</tabstop>
-  <tabstop>unusedAttributesButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>QtHelpFiltersDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>320</x>
-     <y>386</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/SearchWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,242 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the search bar for the web browser.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt
-from PyQt5.QtGui import QPalette, QBrush, QColor
-from PyQt5.QtWidgets import QWidget
-from PyQt5.QtWebKitWidgets import QWebPage
-
-from .Ui_SearchWidget import Ui_SearchWidget
-
-import UI.PixmapCache
-
-
-class SearchWidget(QWidget, Ui_SearchWidget):
-    """
-    Class implementing the search bar for the web browser.
-    """
-    def __init__(self, mainWindow, parent=None):
-        """
-        Constructor
-        
-        @param mainWindow reference to the main window (QMainWindow)
-        @param parent parent widget of this dialog (QWidget)
-        """
-        super(SearchWidget, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.__mainWindow = mainWindow
-        
-        self.wrapCheckBox.setChecked(True)
-        self.closeButton.setIcon(UI.PixmapCache.getIcon("close.png"))
-        self.findPrevButton.setIcon(UI.PixmapCache.getIcon("1leftarrow.png"))
-        self.findNextButton.setIcon(UI.PixmapCache.getIcon("1rightarrow.png"))
-        
-        self.__defaultBaseColor = \
-            self.findtextCombo.lineEdit().palette().color(QPalette.Base)
-        self.__defaultTextColor = \
-            self.findtextCombo.lineEdit().palette().color(QPalette.Text)
-        
-        self.findHistory = []
-        self.havefound = False
-        self.__findBackwards = False
-        
-        self.findtextCombo.setCompleter(None)
-        self.findtextCombo.lineEdit().returnPressed.connect(
-            self.__findByReturnPressed)
-        self.findtextCombo.lineEdit().textEdited.connect(
-            self.__searchTextEdited)
-        
-        if hasattr(QWebPage, "HighlightAllOccurrences"):
-            self.highlightAllCheckBox.setChecked(True)
-        else:
-            self.highlightAllCheckBox.setVisible(False)
-
-    def on_findtextCombo_editTextChanged(self, txt):
-        """
-        Private slot to enable/disable the find buttons.
-        
-        @param txt text of the combobox (string)
-        """
-        self.findPrevButton.setEnabled(txt != "")
-        self.findNextButton.setEnabled(txt != "")
-    
-    def __searchTextEdited(self, txt):
-        """
-        Private slot to perform an incremental search.
-        
-        @param txt current text of the search combos line edit (string)
-            (unused)
-        """
-        self.on_highlightAllCheckBox_toggled(True)
-        self.__findNextPrev()
-    
-    def __findNextPrev(self):
-        """
-        Private slot to find the next occurrence of text.
-        """
-        self.infoLabel.clear()
-        self.__setFindtextComboBackground(False)
-        
-        if not self.findtextCombo.currentText():
-            return
-        
-        if not self.__mainWindow.currentBrowser().findNextPrev(
-                self.findtextCombo.currentText(),
-                self.caseCheckBox.isChecked(),
-                self.__findBackwards,
-                self.wrapCheckBox.isChecked(),
-                False):
-            self.infoLabel.setText(self.tr("Expression was not found."))
-            self.__setFindtextComboBackground(True)
-    
-    @pyqtSlot(bool)
-    def on_highlightAllCheckBox_toggled(self, checked):
-        """
-        Private slot to toggle the highlight of all occurrences.
-        
-        @param checked flag indicating the check box toggle state (boolean)
-        """
-        cbr = self.__mainWindow.currentBrowser()
-        if cbr is None:
-            return
-        cbr.findNextPrev(
-            "", False, False, False, True)
-        if self.highlightAllCheckBox.isChecked():
-            cbr.findNextPrev(
-                self.findtextCombo.currentText(),
-                self.caseCheckBox.isChecked(),
-                False, False, True)
-    
-    @pyqtSlot()
-    def on_findNextButton_clicked(self):
-        """
-        Private slot to find the next occurrence.
-        """
-        txt = self.findtextCombo.currentText()
-        
-        # This moves any previous occurrence of this statement to the head
-        # of the list and updates the combobox
-        if txt in self.findHistory:
-            self.findHistory.remove(txt)
-        self.findHistory.insert(0, txt)
-        self.findtextCombo.clear()
-        self.findtextCombo.addItems(self.findHistory)
-        
-        self.__findBackwards = False
-        self.__findNextPrev()
-    
-    def findNext(self):
-        """
-        Public slot to find the next occurrence.
-        """
-        if not self.havefound or not self.findtextCombo.currentText():
-            self.showFind()
-            return
-        
-        self.on_findNextButton_clicked()
-
-    @pyqtSlot()
-    def on_findPrevButton_clicked(self):
-        """
-        Private slot to find the previous occurrence.
-        """
-        txt = self.findtextCombo.currentText()
-        
-        # This moves any previous occurrence of this statement to the head
-        # of the list and updates the combobox
-        if txt in self.findHistory:
-            self.findHistory.remove(txt)
-        self.findHistory.insert(0, txt)
-        self.findtextCombo.clear()
-        self.findtextCombo.addItems(self.findHistory)
-        
-        self.__findBackwards = True
-        self.__findNextPrev()
-    
-    def findPrevious(self):
-        """
-        Public slot to find the previous occurrence.
-        """
-        if not self.havefound or not self.findtextCombo.currentText():
-            self.showFind()
-            return
-        
-        self.on_findPrevButton_clicked()
-    
-    def __findByReturnPressed(self):
-        """
-        Private slot to handle the returnPressed signal of the findtext
-        combobox.
-        """
-        if self.__findBackwards:
-            self.on_findPrevButton_clicked()
-        else:
-            self.on_findNextButton_clicked()
-
-    def showFind(self):
-        """
-        Public method to display this dialog.
-        """
-        self.havefound = True
-        self.__findBackwards = False
-        
-        self.findtextCombo.clear()
-        self.findtextCombo.addItems(self.findHistory)
-        self.findtextCombo.setEditText('')
-        self.findtextCombo.setFocus()
-        
-        self.caseCheckBox.setChecked(False)
-        
-        if self.__mainWindow.currentBrowser().hasSelection():
-            self.findtextCombo.setEditText(
-                self.__mainWindow.currentBrowser().selectedText())
-        
-        self.__setFindtextComboBackground(False)
-        self.show()
-
-    @pyqtSlot()
-    def on_closeButton_clicked(self):
-        """
-        Private slot to close the widget.
-        """
-        self.close()
-    
-    def keyPressEvent(self, event):
-        """
-        Protected slot to handle key press events.
-        
-        @param event reference to the key press event (QKeyEvent)
-        """
-        if event.key() == Qt.Key_Escape:
-            cb = self.__mainWindow.currentBrowser()
-            if cb:
-                cb.setFocus(Qt.ActiveWindowFocusReason)
-            event.accept()
-            self.close()
-    
-    def __setFindtextComboBackground(self, error):
-        """
-        Private slot to change the findtext combo background to indicate
-        errors.
-        
-        @param error flag indicating an error condition (boolean)
-        """
-        le = self.findtextCombo.lineEdit()
-        p = le.palette()
-        if error:
-            p.setBrush(QPalette.Base, QBrush(QColor("#FF6666")))
-            p.setBrush(QPalette.Text, QBrush(QColor("#000000")))
-        else:
-            p.setBrush(QPalette.Base, self.__defaultBaseColor)
-            p.setBrush(QPalette.Text, self.__defaultTextColor)
-        le.setPalette(p)
-        le.update()
--- a/eric6/Helpviewer/SearchWidget.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SearchWidget</class>
- <widget class="QWidget" name="SearchWidget">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>737</width>
-    <height>26</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Find</string>
-  </property>
-  <layout class="QHBoxLayout" name="horizontalLayout_2">
-   <property name="leftMargin">
-    <number>0</number>
-   </property>
-   <property name="topMargin">
-    <number>0</number>
-   </property>
-   <property name="rightMargin">
-    <number>0</number>
-   </property>
-   <property name="bottomMargin">
-    <number>0</number>
-   </property>
-   <item>
-    <widget class="QToolButton" name="closeButton">
-     <property name="toolTip">
-      <string>Press to close the window</string>
-     </property>
-     <property name="text">
-      <string/>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>Find:</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QComboBox" name="findtextCombo">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="editable">
-      <bool>true</bool>
-     </property>
-     <property name="insertPolicy">
-      <enum>QComboBox::InsertAtTop</enum>
-     </property>
-     <property name="duplicatesEnabled">
-      <bool>false</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <property name="spacing">
-      <number>0</number>
-     </property>
-     <item>
-      <widget class="QToolButton" name="findPrevButton">
-       <property name="toolTip">
-        <string>Press to find the previous occurrence</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="findNextButton">
-       <property name="toolTip">
-        <string>Press to find the next occurrence</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="caseCheckBox">
-     <property name="text">
-      <string>Match case</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="wrapCheckBox">
-     <property name="text">
-      <string>Wrap around</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="highlightAllCheckBox">
-     <property name="text">
-      <string>Highlight all</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="Line" name="infoLine">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="infoLabel">
-     <property name="minimumSize">
-      <size>
-       <width>200</width>
-       <height>0</height>
-      </size>
-     </property>
-     <property name="text">
-      <string/>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>findtextCombo</tabstop>
-  <tabstop>caseCheckBox</tabstop>
-  <tabstop>wrapCheckBox</tabstop>
-  <tabstop>highlightAllCheckBox</tabstop>
-  <tabstop>findNextButton</tabstop>
-  <tabstop>findPrevButton</tabstop>
-  <tabstop>closeButton</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Helpviewer/SiteInfo/SiteInfoDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,325 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2011 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to show some information about a site.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSlot, QUrl, Qt, QFile
-from PyQt5.QtGui import QPixmap, QCursor, QPainter, QColor, QBrush
-from PyQt5.QtWidgets import QDialog, QTreeWidgetItem, QGraphicsScene, QMenu, \
-    QApplication, QListWidgetItem
-from PyQt5.QtWebKit import QWebSettings
-
-from E5Gui import E5MessageBox, E5FileDialog
-
-try:
-    from .Ui_SiteInfoDialog import Ui_SiteInfoDialog       # __IGNORE_WARNING__
-    SSL = True
-except ImportError:
-    from .Ui_SiteInfoNoSslDialog import Ui_SiteInfoDialog  # __IGNORE_WARNING__
-    SSL = False
-
-from ..Download.DownloadUtilities import dataString
-
-import UI.PixmapCache
-from Globals import qVersionTuple
-
-
-class SiteInfoDialog(QDialog, Ui_SiteInfoDialog):
-    """
-    Class implementing a dialog to show some information about a site.
-    """
-    okStyle = "QLabel { color : white; background-color : green; }"
-    nokStyle = "QLabel { color : white; background-color : red; }"
-    
-    def __init__(self, browser, parent=None):
-        """
-        Constructor
-        
-        @param browser reference to the browser window (HelpBrowser)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(SiteInfoDialog, self).__init__(parent)
-        self.setupUi(self)
-        self.setWindowFlags(Qt.Window)
-        
-        # put icons
-        self.tabWidget.setTabIcon(
-            0, UI.PixmapCache.getIcon("siteinfo-general.png"))
-        self.tabWidget.setTabIcon(
-            1, UI.PixmapCache.getIcon("siteinfo-media.png"))
-        self.tabWidget.setTabIcon(
-            2, UI.PixmapCache.getIcon("siteinfo-databases.png"))
-        if SSL:
-            self.tabWidget.setTabIcon(
-                3, UI.PixmapCache.getIcon("siteinfo-security.png"))
-        
-        self.__mainFrame = browser.page().mainFrame()
-        self.__baseUrl = browser.url()
-        title = browser.title()
-        sslInfo = browser.page().getSslCertificateChain()
-        
-        #prepare background of image preview
-        self.__imagePreviewStandardBackground = \
-            self.imagePreview.backgroundBrush()
-        color1 = QColor(220, 220, 220)
-        color2 = QColor(160, 160, 160)
-        self.__tilePixmap = QPixmap(8, 8)
-        self.__tilePixmap.fill(color1)
-        tilePainter = QPainter(self.__tilePixmap)
-        tilePainter.fillRect(0, 0, 4, 4, color2)
-        tilePainter.fillRect(4, 4, 4, 4, color2)
-        tilePainter.end()
-        
-        # populate General tab
-        self.heading.setText("<b>{0}</b>".format(title))
-        self.siteAddressLabel.setText(self.__mainFrame.baseUrl().toString())
-        self.sizeLabel.setText(dataString(browser.page().totalBytes()))
-        encoding = ""
-        
-        # populate Meta tags
-        meta = self.__mainFrame.findAllElements("meta")
-        for element in meta:
-            content = element.attribute("content")
-            name = element.attribute("name")
-            if not name:
-                name = element.attribute("http-equiv")
-            if element.attribute("charset"):
-                encoding = element.attribute("charset")
-            if "charset=" in content:
-                encoding = content[content.index("charset=") + 8:]
-            
-            if not content or not name:
-                continue
-            
-            QTreeWidgetItem(self.tagsTree, [name, content])
-        for col in range(self.tagsTree.columnCount()):
-            self.tagsTree.resizeColumnToContents(col)
-        
-        if not encoding:
-            encoding = QWebSettings.globalSettings().defaultTextEncoding()
-        self.encodingLabel.setText(encoding)
-        
-        # populate the Security info and the Security tab
-        if sslInfo and \
-           ((qVersionTuple() >= (5, 0, 0) and
-             not sslInfo[0].isBlacklisted()) or
-                (qVersionTuple() < (5, 0, 0) and sslInfo[0].isValid())):
-            self.securityLabel.setStyleSheet(SiteInfoDialog.okStyle)
-            self.securityLabel.setText('<b>Connection is encrypted.</b>')
-            if SSL:
-                self.sslWidget.showCertificateChain(sslInfo)
-                self.securityDetailsButton.setEnabled(True)
-            else:
-                self.securityDetailsButton.setEnabled(False)
-        else:
-            self.securityLabel.setStyleSheet(SiteInfoDialog.nokStyle)
-            self.securityLabel.setText('<b>Connection is not encrypted.</b>')
-            self.securityDetailsButton.setEnabled(False)
-            self.tabWidget.setTabEnabled(
-                self.tabWidget.indexOf(self.securityTab), False)
-        
-        # populate Media tab
-        images = self.__mainFrame.findAllElements("img")
-        for element in images:
-            src = element.attribute("src")
-            alt = element.attribute("alt")
-            if src and src.startswith("data:"):
-                continue
-            if not alt:
-                if src.find("/") == -1:
-                    alt = src
-                else:
-                    pos = src.find("/")
-                    alt = src[pos + 1:]
-            
-            if not src or not alt:
-                continue
-            
-            QTreeWidgetItem(self.imagesTree, [alt, src])
-        for col in range(self.imagesTree.columnCount()):
-            self.imagesTree.resizeColumnToContents(col)
-        if self.imagesTree.columnWidth(0) > 300:
-            self.imagesTree.setColumnWidth(0, 300)
-        self.imagesTree.setCurrentItem(self.imagesTree.topLevelItem(0))
-        self.imagesTree.setContextMenuPolicy(Qt.CustomContextMenu)
-        self.imagesTree.customContextMenuRequested.connect(
-            self.__imagesTreeContextMenuRequested)
-        
-        # populate the Databases tab
-        databases = self.__mainFrame.securityOrigin().databases()
-        counter = 0
-        for database in databases:
-            itm = QListWidgetItem(self.databasesList)
-            itm.setText(database.displayName())
-            itm.setData(Qt.UserRole, counter)
-            counter += 1
-        
-        if counter == 0:
-            itm = QListWidgetItem(self.databasesList)
-            itm.setText(self.tr("No databases are used by this page."))
-            itm.setFlags(itm.flags() & Qt.ItemIsSelectable)
-    
-    @pyqtSlot()
-    def on_securityDetailsButton_clicked(self):
-        """
-        Private slot to show security details.
-        """
-        self.tabWidget.setCurrentIndex(
-            self.tabWidget.indexOf(self.securityTab))
-    
-    @pyqtSlot(QTreeWidgetItem, QTreeWidgetItem)
-    def on_imagesTree_currentItemChanged(self, current, previous):
-        """
-        Private slot to show a preview of the selected image.
-        
-        @param current current image entry (QTreeWidgetItem)
-        @param previous old current entry (QTreeWidgetItem)
-        """
-        if current is None:
-            return
-        
-        imageUrl = QUrl(current.text(1))
-        if imageUrl.isRelative():
-            imageUrl = self.__baseUrl.resolved(imageUrl)
-        
-        import Helpviewer.HelpWindow
-        cache = Helpviewer.HelpWindow.HelpWindow.networkAccessManager().cache()
-        if cache:
-            cacheData = cache.data(imageUrl)
-        else:
-            cacheData = None
-        pixmap = QPixmap()
-        invalidPixmap = False
-        scene = QGraphicsScene(self.imagePreview)
-        if not cacheData:
-            invalidPixmap = True
-        else:
-            pixmap.loadFromData(cacheData.readAll())
-            if pixmap.isNull():
-                invalidPixmap = True
-        if invalidPixmap:
-            self.imagePreview.setBackgroundBrush(
-                self.__imagePreviewStandardBackground)
-            scene.addText(self.tr("Preview not available."))
-        else:
-            self.imagePreview.setBackgroundBrush(QBrush(self.__tilePixmap))
-            scene.addPixmap(pixmap)
-        self.imagePreview.setScene(scene)
-    
-    def __imagesTreeContextMenuRequested(self, pos):
-        """
-        Private slot to show a context menu for the images list.
-        
-        @param pos position for the menu (QPoint)
-        """
-        itm = self.imagesTree.itemAt(pos)
-        if itm is None:
-            return
-        
-        menu = QMenu()
-        act = menu.addAction(self.tr("Copy Image Location to Clipboard"))
-        act.setData(itm.text(1))
-        act.triggered.connect(lambda: self.__copyAction(act))
-        act = menu.addAction(self.tr("Copy Image Name to Clipboard"))
-        act.setData(itm.text(0))
-        act.triggered.connect(lambda: self.__copyAction(act))
-        menu.addSeparator()
-        act = menu.addAction(self.tr("Save Image"))
-        act.setData(self.imagesTree.indexOfTopLevelItem(itm))
-        act.triggered.connect(lambda: self.__saveImage(act))
-        menu.exec_(QCursor.pos())
-    
-    def __copyAction(self, act):
-        """
-        Private slot to copy the image URL or the image name to the clipboard.
-        
-        @param act reference to the action that triggered
-        @type QAction
-        """
-        QApplication.clipboard().setText(act.data())
-    
-    def __saveImage(self, act):
-        """
-        Private slot to save the selected image to disk.
-        
-        @param act reference to the action that triggered
-        @type QAction
-        """
-        index = act.data()
-        itm = self.imagesTree.topLevelItem(index)
-        if itm is None:
-            return
-        
-        imageUrl = QUrl(itm.text(1))
-        if not imageUrl.host():
-            imageUrl.setHost(QUrl(self.siteAddressLabel.text()).host())
-            imageUrl.setScheme(QUrl(self.siteAddressLabel.text()).scheme())
-        
-        import Helpviewer.HelpWindow
-        cache = Helpviewer.HelpWindow.HelpWindow.networkAccessManager().cache()
-        if cache:
-            cacheData = cache.data(imageUrl)
-        else:
-            cacheData = None
-        if not cacheData:
-            E5MessageBox.critical(
-                self,
-                self.tr("Save Image"),
-                self.tr("""This image is not available."""))
-            return
-        
-        downloadDirectory = Helpviewer.HelpWindow.HelpWindow\
-            .downloadManager().downloadDirectory()
-        fn = os.path.join(downloadDirectory, os.path.basename(itm.text(1)))
-        filename = E5FileDialog.getSaveFileName(
-            self,
-            self.tr("Save Image"),
-            fn,
-            self.tr("All Files (*)"),
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
-        
-        if not filename:
-            return
-        
-        f = QFile(filename)
-        if not f.open(QFile.WriteOnly):
-            E5MessageBox.critical(
-                self,
-                self.tr("Save Image"),
-                self.tr(
-                    """<p>Cannot write to file <b>{0}</b>.</p>""")
-                .format(filename))
-            return
-        f.write(cacheData.readAll())
-        f.close()
-    
-    @pyqtSlot(QListWidgetItem, QListWidgetItem)
-    def on_databasesList_currentItemChanged(self, current, previous):
-        """
-        Private slot to show data about the selected database.
-        
-        @param current current database entry (QTreeWidgetItem)
-        @param previous old current entry (QTreeWidgetItem)
-        """
-        if current is None:
-            return
-        
-        dbId = current.data(Qt.UserRole)
-        databases = self.__mainFrame.securityOrigin().databases()
-        
-        if dbId >= len(databases):
-            return
-        
-        db = databases[dbId]
-        self.databaseName.setText(
-            "{0} ({1})".format(db.displayName(), db.name()))
-        self.databasePath.setText(db.fileName())
-        self.databaseSize.setText(dataString(db.size()))
--- a/eric6/Helpviewer/SiteInfo/SiteInfoDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,422 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SiteInfoDialog</class>
- <widget class="QDialog" name="SiteInfoDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>700</width>
-    <height>550</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Site Information</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QLabel" name="heading">
-     <property name="text">
-      <string notr="true"/>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QTabWidget" name="tabWidget">
-     <property name="currentIndex">
-      <number>0</number>
-     </property>
-     <widget class="QWidget" name="generalTab">
-      <attribute name="title">
-       <string>General</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_2">
-       <item>
-        <layout class="QGridLayout" name="gridLayout">
-         <item row="0" column="0">
-          <widget class="QLabel" name="label">
-           <property name="text">
-            <string>Site Address:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QLabel" name="siteAddressLabel">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="label_2">
-           <property name="text">
-            <string>Encoding:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QLabel" name="encodingLabel">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="0">
-          <widget class="QLabel" name="label_3">
-           <property name="text">
-            <string>Size:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="1">
-          <widget class="QLabel" name="sizeLabel">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_9">
-         <property name="text">
-          <string>Meta tags of site:</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QTreeWidget" name="tagsTree">
-         <property name="alternatingRowColors">
-          <bool>true</bool>
-         </property>
-         <property name="rootIsDecorated">
-          <bool>false</bool>
-         </property>
-         <property name="itemsExpandable">
-          <bool>false</bool>
-         </property>
-         <property name="wordWrap">
-          <bool>false</bool>
-         </property>
-         <column>
-          <property name="text">
-           <string>Tag</string>
-          </property>
-         </column>
-         <column>
-          <property name="text">
-           <string>Value</string>
-          </property>
-         </column>
-        </widget>
-       </item>
-       <item>
-        <layout class="QGridLayout" name="gridLayout_2">
-         <item row="0" column="0" colspan="4">
-          <widget class="QLabel" name="label_4">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>&lt;b&gt;Security information&lt;/b&gt;</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <spacer name="horizontalSpacer">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Fixed</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>20</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item row="1" column="1">
-          <widget class="QLabel" name="securityLabel">
-           <property name="text">
-            <string/>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="2">
-          <spacer name="horizontalSpacer_2">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item row="1" column="3">
-          <widget class="QPushButton" name="securityDetailsButton">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>Details</string>
-           </property>
-           <property name="autoDefault">
-            <bool>false</bool>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="mediaTab">
-      <attribute name="title">
-       <string>Media</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_4">
-       <item>
-        <widget class="QTreeWidget" name="imagesTree">
-         <property name="alternatingRowColors">
-          <bool>true</bool>
-         </property>
-         <property name="rootIsDecorated">
-          <bool>false</bool>
-         </property>
-         <property name="itemsExpandable">
-          <bool>false</bool>
-         </property>
-         <column>
-          <property name="text">
-           <string>Image</string>
-          </property>
-         </column>
-         <column>
-          <property name="text">
-           <string>Image Address</string>
-          </property>
-         </column>
-        </widget>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_5">
-         <property name="text">
-          <string>&lt;b&gt;Preview&lt;/b&gt;</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QGraphicsView" name="imagePreview"/>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="databasesTab">
-      <attribute name="title">
-       <string>Databases</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_5">
-       <item>
-        <widget class="QListWidget" name="databasesList">
-         <property name="toolTip">
-          <string>Shows a list of databases used by the site</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_10">
-         <property name="text">
-          <string>&lt;b&gt;Database details&lt;/b&gt;</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QGridLayout" name="gridLayout_3">
-         <item row="0" column="0">
-          <widget class="QLabel" name="label_6">
-           <property name="text">
-            <string>Name:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QLabel" name="databaseName">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>&lt;database not selected&gt;</string>
-           </property>
-           <property name="textInteractionFlags">
-            <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="label_7">
-           <property name="text">
-            <string>Path:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QLabel" name="databasePath">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>&lt;database not selected&gt;</string>
-           </property>
-           <property name="textInteractionFlags">
-            <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="0">
-          <widget class="QLabel" name="label_8">
-           <property name="text">
-            <string>Size:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="1">
-          <widget class="QLabel" name="databaseSize">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>&lt;database not selected&gt;</string>
-           </property>
-           <property name="textInteractionFlags">
-            <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <spacer name="verticalSpacer">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>161</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="securityTab">
-      <attribute name="title">
-       <string>Security</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_3">
-       <item>
-        <widget class="E5SslCertificatesInfoWidget" name="sslWidget" native="true"/>
-       </item>
-      </layout>
-     </widget>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5SslCertificatesInfoWidget</class>
-   <extends>QWidget</extends>
-   <header>E5Network/E5SslCertificatesInfoWidget.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>tabWidget</tabstop>
-  <tabstop>tagsTree</tabstop>
-  <tabstop>securityDetailsButton</tabstop>
-  <tabstop>imagesTree</tabstop>
-  <tabstop>imagePreview</tabstop>
-  <tabstop>databasesList</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>SiteInfoDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>SiteInfoDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/SiteInfo/SiteInfoNoSslDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,404 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SiteInfoDialog</class>
- <widget class="QDialog" name="SiteInfoDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>700</width>
-    <height>550</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Site Information</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QLabel" name="heading">
-     <property name="text">
-      <string notr="true"/>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QTabWidget" name="tabWidget">
-     <property name="currentIndex">
-      <number>0</number>
-     </property>
-     <widget class="QWidget" name="generalTab">
-      <attribute name="title">
-       <string>General</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_2">
-       <item>
-        <layout class="QGridLayout" name="gridLayout">
-         <item row="0" column="0">
-          <widget class="QLabel" name="label">
-           <property name="text">
-            <string>Site Address:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QLabel" name="siteAddressLabel">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="label_2">
-           <property name="text">
-            <string>Encoding:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QLabel" name="encodingLabel">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="0">
-          <widget class="QLabel" name="label_3">
-           <property name="text">
-            <string>Size:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="1">
-          <widget class="QLabel" name="sizeLabel">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_9">
-         <property name="text">
-          <string>Meta tags of site:</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QTreeWidget" name="tagsTree">
-         <property name="alternatingRowColors">
-          <bool>true</bool>
-         </property>
-         <property name="rootIsDecorated">
-          <bool>false</bool>
-         </property>
-         <property name="itemsExpandable">
-          <bool>false</bool>
-         </property>
-         <property name="wordWrap">
-          <bool>false</bool>
-         </property>
-         <column>
-          <property name="text">
-           <string>Tag</string>
-          </property>
-         </column>
-         <column>
-          <property name="text">
-           <string>Value</string>
-          </property>
-         </column>
-        </widget>
-       </item>
-       <item>
-        <layout class="QGridLayout" name="gridLayout_2">
-         <item row="0" column="0" colspan="4">
-          <widget class="QLabel" name="label_4">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>&lt;b&gt;Security information&lt;/b&gt;</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <spacer name="horizontalSpacer">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Fixed</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>20</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item row="1" column="1">
-          <widget class="QLabel" name="securityLabel">
-           <property name="text">
-            <string/>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="2">
-          <spacer name="horizontalSpacer_2">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item row="1" column="3">
-          <widget class="QPushButton" name="securityDetailsButton">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>Details</string>
-           </property>
-           <property name="autoDefault">
-            <bool>false</bool>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="mediaTab">
-      <attribute name="title">
-       <string>Media</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_4">
-       <item>
-        <widget class="QTreeWidget" name="imagesTree">
-         <property name="alternatingRowColors">
-          <bool>true</bool>
-         </property>
-         <property name="rootIsDecorated">
-          <bool>false</bool>
-         </property>
-         <property name="itemsExpandable">
-          <bool>false</bool>
-         </property>
-         <column>
-          <property name="text">
-           <string>Image</string>
-          </property>
-         </column>
-         <column>
-          <property name="text">
-           <string>Image Address</string>
-          </property>
-         </column>
-        </widget>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_5">
-         <property name="text">
-          <string>&lt;b&gt;Preview&lt;/b&gt;</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QGraphicsView" name="imagePreview"/>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="databasesTab">
-      <attribute name="title">
-       <string>Databases</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_5">
-       <item>
-        <widget class="QListWidget" name="databasesList">
-         <property name="toolTip">
-          <string>Shows a list of databases used by the site</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QLabel" name="label_10">
-         <property name="text">
-          <string>&lt;b&gt;Database details&lt;/b&gt;</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <layout class="QGridLayout" name="gridLayout_3">
-         <item row="0" column="0">
-          <widget class="QLabel" name="label_6">
-           <property name="text">
-            <string>Name:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QLabel" name="databaseName">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>&lt;database not selected&gt;</string>
-           </property>
-           <property name="textInteractionFlags">
-            <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QLabel" name="label_7">
-           <property name="text">
-            <string>Path:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="1">
-          <widget class="QLabel" name="databasePath">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>&lt;database not selected&gt;</string>
-           </property>
-           <property name="textInteractionFlags">
-            <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="0">
-          <widget class="QLabel" name="label_8">
-           <property name="text">
-            <string>Size:</string>
-           </property>
-          </widget>
-         </item>
-         <item row="2" column="1">
-          <widget class="QLabel" name="databaseSize">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>&lt;database not selected&gt;</string>
-           </property>
-           <property name="textInteractionFlags">
-            <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <spacer name="verticalSpacer">
-         <property name="orientation">
-          <enum>Qt::Vertical</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>20</width>
-           <height>161</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-      </layout>
-     </widget>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>tabWidget</tabstop>
-  <tabstop>tagsTree</tabstop>
-  <tabstop>securityDetailsButton</tabstop>
-  <tabstop>imagesTree</tabstop>
-  <tabstop>imagePreview</tabstop>
-  <tabstop>databasesList</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>SiteInfoDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>SiteInfoDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/SiteInfo/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2011 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the site info widgets.
-"""
--- a/eric6/Helpviewer/SpeedDial/Page.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a structure to hold the data for a speed dial page.
-"""
-
-
-from __future__ import unicode_literals
-
-
-class Page(object):
-    """
-    Class to hold the data for a speed dial page.
-    """
-    def __init__(self, url="", title="", broken=False):
-        """
-        Constructor
-        
-        @param url URL of the page (string)
-        @param title title of the page (string)
-        @param broken flag indicating a broken connection (boolean)
-        """
-        self.url = url
-        self.title = title
-        self.broken = broken
-    
-    def __eq__(self, other):
-        """
-        Special method implementing the equality operator.
-        
-        @param other reference to the other page object (Page)
-        @return flag indicating equality (boolean)
-        """
-        return self.title == other.title and \
-            self.url == other.url
--- a/eric6/Helpviewer/SpeedDial/PageThumbnailer.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an object to create a thumbnail image of a web site.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSignal, QObject, QSize, Qt, QUrl
-from PyQt5.QtGui import QPixmap, QImage, QPainter
-from PyQt5.QtWebKitWidgets import QWebPage
-
-from ..Network.NetworkAccessManagerProxy import NetworkAccessManagerProxy
-
-
-class PageThumbnailer(QObject):
-    """
-    Class implementing a thumbnail creator for web sites.
-    
-    @signal thumbnailCreated(QPixmap) emitted after the thumbnail has been
-        created
-    """
-    thumbnailCreated = pyqtSignal(QPixmap)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(PageThumbnailer, self).__init__(parent)
-        
-        self.__page = QWebPage(self)
-        self.__size = QSize(231, 130)
-        self.__loadTitle = False
-        self.__title = ""
-        self.__url = QUrl()
-        
-        self.__proxy = NetworkAccessManagerProxy(self)
-        import Helpviewer.HelpWindow
-        self.__proxy.setPrimaryNetworkAccessManager(
-            Helpviewer.HelpWindow.HelpWindow.networkAccessManager())
-        self.__page.setNetworkAccessManager(self.__proxy)
-        
-        self.__page.mainFrame().setScrollBarPolicy(
-            Qt.Horizontal, Qt.ScrollBarAlwaysOff)
-        self.__page.mainFrame().setScrollBarPolicy(
-            Qt.Vertical, Qt.ScrollBarAlwaysOff)
-        
-        # Full HD
-        # Every page should fit in this resolution
-        self.__page.setViewportSize(QSize(1920, 1080))
-    
-    def setSize(self, size):
-        """
-        Public method to set the size of the image.
-        
-        @param size size of the image (QSize)
-        """
-        if size.isValid():
-            self.__size = QSize(size)
-    
-    def setUrl(self, url):
-        """
-        Public method to set the URL of the site to be thumbnailed.
-        
-        @param url URL of the web site (QUrl)
-        """
-        if url.isValid():
-            self.__url = QUrl(url)
-    
-    def url(self):
-        """
-        Public method to get the URL of the thumbnail.
-        
-        @return URL of the thumbnail (QUrl)
-        """
-        return QUrl(self.__url)
-    
-    def loadTitle(self):
-        """
-        Public method to check, if the title is loaded from the web site.
-        
-        @return flag indicating, that the title is loaded (boolean)
-        """
-        return self.__loadTitle
-    
-    def setLoadTitle(self, load):
-        """
-        Public method to set a flag indicating to load the title from
-        the web site.
-        
-        @param load flag indicating to load the title (boolean)
-        """
-        self.__loadTitle = load
-    
-    def title(self):
-        """
-        Public method to get the title of the thumbnail.
-        
-        @return title of the thumbnail (string)
-        """
-        return self.__title
-    
-    def start(self):
-        """
-        Public method to start the thumbnailing action.
-        """
-        self.__page.loadFinished.connect(self.__createThumbnail)
-        self.__page.mainFrame().load(self.__url)
-    
-    def __createThumbnail(self, status):
-        """
-        Private slot creating the thumbnail of the web site.
-        
-        @param status flag indicating a successful load of the web site
-            (boolean)
-        """
-        if not status:
-            self.thumbnailCreated.emit(QPixmap())
-            return
-        
-        self.__title = self.__page.mainFrame().title()
-        
-        image = QImage(self.__page.viewportSize(), QImage.Format_ARGB32)
-        painter = QPainter(image)
-        self.__page.mainFrame().render(painter)
-        painter.end()
-        
-        scaledImage = image.scaled(self.__size,
-                                   Qt.KeepAspectRatioByExpanding,
-                                   Qt.SmoothTransformation)
-        
-        self.thumbnailCreated.emit(QPixmap.fromImage(scaledImage))
--- a/eric6/Helpviewer/SpeedDial/SpeedDial.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,457 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the speed dial.
-"""
-
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
-import os
-
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QCryptographicHash, \
-    QByteArray, QUrl, qWarning
-from PyQt5.QtWebKitWidgets import QWebPage
-
-from E5Gui import E5MessageBox
-
-from Utilities.AutoSaver import AutoSaver
-import Utilities
-
-
-class SpeedDial(QObject):
-    """
-    Class implementing the speed dial.
-    
-    @signal pagesChanged() emitted after the list of pages changed
-    @signal speedDialSaved() emitted after the speed dial data was saved
-    """
-    pagesChanged = pyqtSignal()
-    speedDialSaved = pyqtSignal()
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(SpeedDial, self).__init__(parent)
-        
-        self.__regenerateScript = True
-        
-        self.__webPages = []
-        self.__webFrames = []
-        
-        self.__initialScript = ""
-        self.__thumbnailsDirectory = ""
-        
-        self.__thumbnailers = []
-        
-        self.__initialize()
-        
-        self.pagesChanged.connect(self.__pagesChanged)
-        
-        self.__saveTimer = AutoSaver(self, self.save)
-        self.pagesChanged.connect(self.__saveTimer.changeOccurred)
-    
-    def addWebFrame(self, frame):
-        """
-        Public method to add a web frame.
-        
-        @param frame reference to the frame to be added (QWebFrame)
-        """
-        if frame not in self.__webFrames:
-            self.__webFrames.append(frame)
-    
-    def addPage(self, url, title):
-        """
-        Public method to add a page for the given data.
-        
-        @param url URL of the page (QUrl)
-        @param title title of the page (string)
-        """
-        if url.isEmpty():
-            return
-        
-        from .Page import Page
-        page = Page(url.toString(), title)
-        self.__webPages.append(page)
-        
-        self.pagesChanged.emit()
-    
-    def removePage(self, url):
-        """
-        Public method to remove a page.
-        
-        @param url URL of the page (QUrl)
-        """
-        page = self.pageForUrl(url)
-        if not page.url:
-            return
-        
-        self.removeImageForUrl(page.url)
-        self.__webPages.remove(page)
-        
-        self.pagesChanged.emit()
-    
-    def __imageFileName(self, url):
-        """
-        Private method to generate the image file name for a URL.
-        
-        @param url URL to generate the file name from (string)
-        @return name of the image file (string)
-        """
-        return os.path.join(
-            self.__thumbnailsDirectory,
-            str(QCryptographicHash.hash(QByteArray(url.encode("utf-8")),
-                QCryptographicHash.Md5).toHex(), encoding="utf-8") + ".png")
-    
-    def initialScript(self):
-        """
-        Public method to get the 'initial' JavaScript script.
-        
-        @return initial JavaScript script (string)
-        """
-        if self.__regenerateScript:
-            self.__regenerateScript = False
-            self.__initialScript = ""
-            
-            for page in self.__webPages:
-                if page.broken:
-                    imgSource = "qrc:icons/brokenPage.png"
-                else:
-                    imgSource = self.__imageFileName(page.url)
-                    if not os.path.exists(imgSource):
-                        self.loadThumbnail(page.url)
-                        imgSource = "qrc:icons/loading.gif"
-                        
-                        if not page.url:
-                            imgSource = ""
-                    else:
-                        imgSource = QUrl.fromLocalFile(imgSource).toString()
-                
-                self.__initialScript += \
-                    "addBox('{0}', '{1}', '{2}');\n".format(
-                        page.url, Utilities.html_uencode(page.title),
-                        imgSource)
-        
-        return self.__initialScript
-    
-    def getFileName(self):
-        """
-        Public method to get the file name of the user agents file.
-        
-        @return name of the user agents file (string)
-        """
-        return os.path.join(
-            Utilities.getConfigDir(), "browser", "speedDial.xml")
-    
-    def __initialize(self):
-        """
-        Private method to initialize the speed dial.
-        """
-        self.__thumbnailsDirectory = os.path.join(
-            Utilities.getConfigDir(), "browser", "thumbnails")
-        # Create directory if it does not exist yet
-        if not os.path.exists(self.__thumbnailsDirectory):
-            os.makedirs(self.__thumbnailsDirectory)
-        
-        self.__load()
-    
-    def reload(self):
-        """
-        Public method to reload the speed dial data.
-        """
-        self.__load()
-    
-    def __load(self):
-        """
-        Private method to load the speed dial configuration.
-        """
-        allPages, pagesPerRow, speedDialSize = [], 0, 0
-        
-        speedDialFile = self.getFileName()
-        if os.path.exists(speedDialFile):
-            from .SpeedDialReader import SpeedDialReader
-            reader = SpeedDialReader()
-            allPages, pagesPerRow, speedDialSize = reader.read(speedDialFile)
-        
-        self.__pagesPerRow = pagesPerRow if pagesPerRow else 4
-        self.__speedDialSize = speedDialSize if speedDialSize else 231
-        
-        if allPages:
-            self.__webPages = allPages
-            self.pagesChanged.emit()
-        else:
-            allPages = \
-                'url:"https://eric-ide.python-projects.org/"|'\
-                'title:"Eric Web Site";'\
-                'url:"https://www.riverbankcomputing.com/"|'\
-                'title:"PyQt Web Site";'\
-                'url:"http://www.qt.io/"|title:"Qt Web Site";'\
-                'url:"http://blog.qt.io/"|title:"Qt Blog";'\
-                'url:"https://www.python.org"|'\
-                'title:"Python Language Website";'\
-                'url:"http://www.google.com"|title:"Google";'
-            self.changed(allPages)
-    
-    def save(self):
-        """
-        Public method to save the speed dial configuration.
-        """
-        from .SpeedDialWriter import SpeedDialWriter
-        speedDialFile = self.getFileName()
-        writer = SpeedDialWriter()
-        if not writer.write(speedDialFile, self.__webPages,
-                            self.__pagesPerRow, self.__speedDialSize):
-            E5MessageBox.critical(
-                None,
-                self.tr("Saving Speed Dial data"),
-                self.tr(
-                    """<p>Speed Dial data could not be saved to"""
-                    """ <b>{0}</b></p>""").format(speedDialFile))
-        else:
-            self.speedDialSaved.emit()
-    
-    def resetDials(self):
-        """
-        Public method to reset the speed dials to the default values.
-        """
-        ok = E5MessageBox.yesNo(
-            None,
-            self.tr("Reset Speed Dials"),
-            self.tr("""Are you sure you want to reset the speed dials to"""
-                    """ the default pages?"""))
-        if ok:
-            speedDialFile = self.getFileName()
-            if os.path.exists(speedDialFile):
-                os.remove(speedDialFile)
-            
-            self.__load()
-    
-    def close(self):
-        """
-        Public method to close the user agents manager.
-        """
-        self.__saveTimer.saveIfNeccessary()
-    
-    def pageForUrl(self, url):
-        """
-        Public method to get the page for the given URL.
-        
-        @param url URL to be searched for (QUrl)
-        @return page for the URL (Page)
-        """
-        urlString = url.toString()
-        for page in self.__webPages:
-            if page.url == urlString:
-                return page
-        
-        from .Page import Page
-        return Page()
-    
-    def urlForShortcut(self, key):
-        """
-        Public method to get the URL for the given shortcut key.
-        
-        @param key shortcut key (integer)
-        @return URL for the key (QUrl)
-        """
-        if key < 0 or len(self.__webPages) <= key:
-            return QUrl()
-        
-        return QUrl.fromEncoded(self.__webPages[key].url.encode("utf-8"))
-    
-    @pyqtSlot(str)
-    def changed(self, allPages):
-        """
-        Public slot to react on changed pages.
-        
-        @param allPages string giving all pages (string)
-        """
-        if not allPages:
-            return
-        
-        entries = allPages.split('";')
-        self.__webPages = []
-        
-        from .Page import Page
-        for entry in entries:
-            if not entry:
-                continue
-            
-            tmp = entry.split('"|')
-            if len(tmp) == 2:
-                broken = False
-            elif len(tmp) == 3:
-                broken = "brokenPage" in tmp[2][5:]
-            else:
-                continue
-            
-            page = Page(tmp[0][5:], tmp[1][7:], broken)
-            self.__webPages.append(page)
-        
-        self.pagesChanged.emit()
-    
-    @pyqtSlot(str)
-    @pyqtSlot(str, bool)
-    def loadThumbnail(self, url, loadTitle=False):
-        """
-        Public slot to load a thumbnail of the given URL.
-        
-        @param url URL of the thumbnail (string)
-        @param loadTitle flag indicating to get the title for the thumbnail
-            from the site (boolean)
-        """
-        if not url:
-            return
-        
-        from .PageThumbnailer import PageThumbnailer
-        thumbnailer = PageThumbnailer(self)
-        thumbnailer.setUrl(QUrl.fromEncoded(url.encode("utf-8")))
-        thumbnailer.setLoadTitle(loadTitle)
-        thumbnailer.thumbnailCreated.connect(
-            lambda imag: self.__thumbnailCreated(imag, thumbnailer))
-        self.__thumbnailers.append(thumbnailer)
-        
-        thumbnailer.start()
-
-    @pyqtSlot(str)
-    def removeImageForUrl(self, url):
-        """
-        Public slot to remove the image for a URL.
-        
-        @param url URL to remove the image for (string)
-        """
-        fileName = self.__imageFileName(url)
-        if os.path.exists(fileName):
-            os.remove(fileName)
-
-    @pyqtSlot(str, result=str)
-    def urlFromUserInput(self, url):
-        """
-        Public slot to get the URL from user input.
-        
-        @param url URL entered by the user (string)
-        @return sanitized URL (string)
-        """
-        return QUrl.fromUserInput(url).toString()
-    
-    @pyqtSlot(str, result=str)
-    def unescapeTitle(self, title):
-        """
-        Public slot to unescape the titel string.
-        
-        @param title escaped title (string)
-        @return un-escaped title (string)
-        """
-        return Utilities.html_udecode(title)
-
-    @pyqtSlot(int)
-    def setPagesInRow(self, count):
-        """
-        Public slot to set the number of pages per row.
-        
-        @param count number of pages per row (integer)
-        """
-        self.__pagesPerRow = count
-        self.__saveTimer.changeOccurred()
-
-    def pagesInRow(self):
-        """
-        Public method to get the number of dials per row.
-        
-        @return number of dials per row (integer)
-        """
-        return self.__pagesPerRow
-    
-    @pyqtSlot(int)
-    def setSdSize(self, size):
-        """
-        Public slot to set the size of the speed dial.
-        
-        @param size size of the speed dial (integer)
-        """
-        self.__speedDialSize = size
-        self.__saveTimer.changeOccurred()
-    
-    def sdSize(self):
-        """
-        Public method to get the speed dial size.
-        
-        @return speed dial size (integer)
-        """
-        return self.__speedDialSize
-    
-    def __thumbnailCreated(self, image, thumbnailer):
-        """
-        Private slot to handle the creation of a thumbnail image.
-        
-        @param image thumbnail image
-        @type QPixmap
-        @param thumbnailer reference to the page thumbnailer
-        @type PageThumbnailer
-        """
-        if thumbnailer in self.__thumbnailers:
-            loadTitle = thumbnailer.loadTitle()
-            title = thumbnailer.title()
-            url = thumbnailer.url().toString()
-            fileName = self.__imageFileName(url)
-            
-            if image.isNull():
-                fileName = "qrc:icons/brokenPage.png"
-                title = self.tr("Unable to load")
-                loadTitle = True
-                page = self.pageForUrl(thumbnailer.url())
-                page.broken = True
-            else:
-                if not image.save(fileName):
-                    qWarning(
-                        "SpeedDial.__thumbnailCreated: Cannot save thumbnail"
-                        " to {0}".format(fileName))
-                
-                fileName = QUrl.fromLocalFile(fileName).toString()
-            
-            self.__regenerateScript = True
-            
-            for frame in self.__cleanFrames():
-                frame.evaluateJavaScript("setImageToUrl('{0}', '{1}');".format(
-                                         url, fileName))
-                if loadTitle:
-                    frame.evaluateJavaScript(
-                        "setTitleToUrl('{0}', '{1}');".format(
-                            url, Utilities.html_uencode(title)))
-            
-            thumbnailer.deleteLater()
-            self.__thumbnailers.remove(thumbnailer)
-    
-    def __cleanFrames(self):
-        """
-        Private method to clean all frames.
-        
-        @return list of speed dial frames (list of QWebFrame)
-        """
-        frames = []
-        
-        for frame in self.__webFrames[:]:
-            if frame.url().toString() == "eric:speeddial":
-                frames.append(frame)
-            else:
-                self.__webFrames.remove(frame)
-        
-        return frames
-    
-    def __pagesChanged(self):
-        """
-        Private slot to react on a change of the pages configuration.
-        """
-        # update all speed dial pages
-        self.__regenerateScript = True
-        for frame in self.__cleanFrames():
-            frame.page().triggerAction(QWebPage.Reload)
--- a/eric6/Helpviewer/SpeedDial/SpeedDialReader.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-
-"""
-Module implementing a class to read speed dial data files.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QXmlStreamReader, QIODevice, QFile, QCoreApplication
-
-
-class SpeedDialReader(QXmlStreamReader):
-    """
-    Class implementing a reader object for speed dial data files.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(SpeedDialReader, self).__init__()
-    
-    def read(self, fileNameOrDevice):
-        """
-        Public method to read a user agent file.
-        
-        @param fileNameOrDevice name of the file to read (string)
-            or reference to the device to read (QIODevice)
-        @return list of speed dial pages (list of Page), number of pages per
-            row (integer) and size of the speed dial pages (integer)
-        """
-        self.__pages = []
-        self.__pagesPerRow = 0
-        self.__sdSize = 0
-        
-        if isinstance(fileNameOrDevice, QIODevice):
-            self.setDevice(fileNameOrDevice)
-        else:
-            f = QFile(fileNameOrDevice)
-            if not f.exists():
-                return self.__pages, self.__pagesPerRow, self.__sdSize
-            opened = f.open(QFile.ReadOnly)
-            if not opened:
-                self.raiseError(QCoreApplication.translate(
-                    "SpeedDialReader",
-                    "The file {0} could not be opened. Error: {1}").format(
-                    fileNameOrDevice, f.errorString()))
-                return self.__pages, self.__pagesPerRow, self.__sdSize
-            self.setDevice(f)
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isStartElement():
-                version = self.attributes().value("version")
-                if self.name() == "SpeedDial" and \
-                   (not version or version == "1.0"):
-                    self.__readSpeedDial()
-                else:
-                    self.raiseError(QCoreApplication.translate(
-                        "SpeedDialReader",
-                        "The file is not a SpeedDial version 1.0 file."))
-        
-        return self.__pages, self.__pagesPerRow, self.__sdSize
-    
-    def __readSpeedDial(self):
-        """
-        Private method to read the speed dial data.
-        """
-        if not self.isStartElement() and self.name() != "SpeedDial":
-            return
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isEndElement():
-                if self.name() in ["Pages", "Page"]:
-                    continue
-                else:
-                    break
-            
-            if self.isStartElement():
-                if self.name() == "Pages":
-                    attributes = self.attributes()
-                    pagesPerRow = attributes.value("row")
-                    if pagesPerRow.isdigit():
-                        self.__pagesPerRow = int(pagesPerRow)
-                    sdSize = attributes.value("size")
-                    if sdSize.isdigit():
-                        self.__sdSize = int(sdSize)
-                elif self.name() == "Page":
-                    attributes = self.attributes()
-                    url = attributes.value("url")
-                    title = attributes.value("title")
-                    if url:
-                        if not title:
-                            title = url
-                        from .Page import Page
-                        page = Page(url, title)
-                        self.__pages.append(page)
-                else:
-                    self.__skipUnknownElement()
-    
-    def __skipUnknownElement(self):
-        """
-        Private method to skip over all unknown elements.
-        """
-        if not self.isStartElement():
-            return
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isEndElement():
-                break
-            
-            if self.isStartElement():
-                self.__skipUnknownElement()
--- a/eric6/Helpviewer/SpeedDial/SpeedDialWriter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a class to write speed dial data files.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QXmlStreamWriter, QIODevice, QFile
-
-
-class SpeedDialWriter(QXmlStreamWriter):
-    """
-    Class implementing a writer object to generate speed dial data files.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(SpeedDialWriter, self).__init__()
-        
-        self.setAutoFormatting(True)
-    
-    def write(self, fileNameOrDevice, pages, pagesPerRow, speedDialSize):
-        """
-        Public method to write a speed dial data file.
-        
-        @param fileNameOrDevice name of the file to write (string)
-            or device to write to (QIODevice)
-        @param pages list of speed dial pages (list of Page)
-        @param pagesPerRow number of pages per row (integer)
-        @param speedDialSize size of the speed dial pages (integer)
-        @return flag indicating success (boolean)
-        """
-        if isinstance(fileNameOrDevice, QIODevice):
-            f = fileNameOrDevice
-        else:
-            f = QFile(fileNameOrDevice)
-            if not f.open(QFile.WriteOnly):
-                return False
-        
-        self.setDevice(f)
-        return self.__write(pages, pagesPerRow, speedDialSize)
-    
-    def __write(self, pages, pagesPerRow, speedDialSize):
-        """
-        Private method to write a speed dial file.
-        
-        @param pages list of speed dial pages (list of Page)
-        @param pagesPerRow number of pages per row (integer)
-        @param speedDialSize size of the speed dial pages (integer)
-        @return flag indicating success (boolean)
-        """
-        self.writeStartDocument()
-        self.writeDTD("<!DOCTYPE speeddial>")
-        self.writeStartElement("SpeedDial")
-        self.writeAttribute("version", "1.0")
-        
-        self.writeStartElement("Pages")
-        self.writeAttribute("row", str(pagesPerRow))
-        self.writeAttribute("size", str(speedDialSize))
-        
-        for page in pages:
-            self.writeEmptyElement("Page")
-            self.writeAttribute("url", page.url)
-            self.writeAttribute("title", page.title)
-        
-        self.writeEndDocument()
-        return True
--- a/eric6/Helpviewer/SpeedDial/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the speed dial functionality.
-"""
--- a/eric6/Helpviewer/Sync/DirectorySyncHandler.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,278 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a synchronization handler using a shared directory.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSignal, QByteArray, QFileInfo, QCoreApplication
-
-from .SyncHandler import SyncHandler
-
-import Helpviewer.HelpWindow
-
-import Preferences
-
-
-class DirectorySyncHandler(SyncHandler):
-    """
-    Class implementing a synchronization handler using a shared directory.
-    
-    @signal syncStatus(type_, message) emitted to indicate the synchronization
-        status (string one of "bookmarks", "history", "passwords",
-        "useragents" or "speeddial", string)
-    @signal syncError(message) emitted for a general error with the error
-        message (string)
-    @signal syncMessage(message) emitted to send a message about
-        synchronization (string)
-    @signal syncFinished(type_, done, download) emitted after a
-        synchronization has finished (string one of "bookmarks", "history",
-        "passwords", "useragents" or "speeddial", boolean, boolean)
-    """
-    syncStatus = pyqtSignal(str, str)
-    syncError = pyqtSignal(str)
-    syncMessage = pyqtSignal(str)
-    syncFinished = pyqtSignal(str, bool, bool)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(DirectorySyncHandler, self).__init__(parent)
-        self.__forceUpload = False
-        
-        self.__remoteFilesFound = []
-    
-    def initialLoadAndCheck(self, forceUpload):
-        """
-        Public method to do the initial check.
-        
-        @keyparam forceUpload flag indicating a forced upload of the files
-            (boolean)
-        """
-        if not Preferences.getHelp("SyncEnabled"):
-            return
-        
-        self.__forceUpload = forceUpload
-        
-        self.__remoteFilesFound = []
-        
-        # check the existence of the shared directory; create it, if it is
-        # not there
-        if not os.path.exists(Preferences.getHelp("SyncDirectoryPath")):
-            try:
-                os.makedirs(Preferences.getHelp("SyncDirectoryPath"))
-            except OSError as err:
-                self.syncError.emit(
-                    self.tr("Error creating the shared directory.\n{0}")
-                    .format(str(err)))
-                return
-        
-        self.__initialSync()
-    
-    def __downloadFile(self, type_, fileName, timestamp):
-        """
-        Private method to downlaod the given file.
-        
-        @param type_ type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-        @param fileName name of the file to be downloaded (string)
-        @param timestamp time stamp in seconds of the file to be downloaded
-            (integer)
-        """
-        self.syncStatus.emit(type_, self._messages[type_]["RemoteExists"])
-        try:
-            f = open(os.path.join(Preferences.getHelp("SyncDirectoryPath"),
-                                  self._remoteFiles[type_]), "rb")
-            data = f.read()
-            f.close()
-        except IOError as err:
-            self.syncStatus.emit(
-                type_,
-                self.tr("Cannot read remote file.\n{0}").format(str(err)))
-            self.syncFinished.emit(type_, False, True)
-            return
-        
-        QCoreApplication.processEvents()
-        ok, error = self.writeFile(QByteArray(data), fileName, type_,
-                                   timestamp)
-        if not ok:
-            self.syncStatus.emit(type_, error)
-        self.syncFinished.emit(type_, ok, True)
-    
-    def __uploadFile(self, type_, fileName):
-        """
-        Private method to upload the given file.
-        
-        @param type_ type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-        @param fileName name of the file to be uploaded (string)
-        """
-        QCoreApplication.processEvents()
-        data = self.readFile(fileName, type_)
-        if data.isEmpty():
-            self.syncStatus.emit(type_, self._messages[type_]["LocalMissing"])
-            self.syncFinished.emit(type_, False, False)
-            return
-        else:
-            try:
-                f = open(os.path.join(Preferences.getHelp("SyncDirectoryPath"),
-                                      self._remoteFiles[type_]), "wb")
-                f.write(bytes(data))
-                f.close()
-            except IOError as err:
-                self.syncStatus.emit(
-                    type_,
-                    self.tr("Cannot write remote file.\n{0}").format(
-                        str(err)))
-                self.syncFinished.emit(type_, False, False)
-                return
-            
-        self.syncFinished.emit(type_, True, False)
-    
-    def __initialSyncFile(self, type_, fileName):
-        """
-        Private method to do the initial synchronization of the given file.
-        
-        @param type_ type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-        @param fileName name of the file to be synchronized (string)
-        """
-        if not self.__forceUpload and \
-                os.path.exists(
-                    os.path.join(Preferences.getHelp("SyncDirectoryPath"),
-                                 self._remoteFiles[type_])) and \
-                QFileInfo(fileName).lastModified() <= QFileInfo(
-                    os.path.join(Preferences.getHelp("SyncDirectoryPath"),
-                                 self._remoteFiles[type_])).lastModified():
-            self.__downloadFile(
-                type_, fileName,
-                QFileInfo(os.path.join(
-                    Preferences.getHelp("SyncDirectoryPath"),
-                    self._remoteFiles[type_])).lastModified().toTime_t())
-        else:
-            if not os.path.exists(
-                    os.path.join(Preferences.getHelp("SyncDirectoryPath"),
-                                 self._remoteFiles[type_])):
-                self.syncStatus.emit(
-                    type_, self._messages[type_]["RemoteMissing"])
-            else:
-                self.syncStatus.emit(
-                    type_, self._messages[type_]["LocalNewer"])
-            self.__uploadFile(type_, fileName)
-    
-    def __initialSync(self):
-        """
-        Private slot to do the initial synchronization.
-        """
-        QCoreApplication.processEvents()
-        # Bookmarks
-        if Preferences.getHelp("SyncBookmarks"):
-            self.__initialSyncFile(
-                "bookmarks",
-                Helpviewer.HelpWindow.HelpWindow.bookmarksManager()
-                .getFileName())
-        
-        QCoreApplication.processEvents()
-        # History
-        if Preferences.getHelp("SyncHistory"):
-            self.__initialSyncFile(
-                "history",
-                Helpviewer.HelpWindow.HelpWindow.historyManager()
-                .getFileName())
-        
-        QCoreApplication.processEvents()
-        # Passwords
-        if Preferences.getHelp("SyncPasswords"):
-            self.__initialSyncFile(
-                "passwords",
-                Helpviewer.HelpWindow.HelpWindow.passwordManager()
-                .getFileName())
-        
-        QCoreApplication.processEvents()
-        # User Agent Settings
-        if Preferences.getHelp("SyncUserAgents"):
-            self.__initialSyncFile(
-                "useragents",
-                Helpviewer.HelpWindow.HelpWindow.userAgentsManager()
-                .getFileName())
-        
-        QCoreApplication.processEvents()
-        # Speed Dial Settings
-        if Preferences.getHelp("SyncSpeedDial"):
-            self.__initialSyncFile(
-                "speeddial",
-                Helpviewer.HelpWindow.HelpWindow.speedDial().getFileName())
-        
-        self.__forceUpload = False
-        self.syncMessage.emit(self.tr("Synchronization finished"))
-    
-    def __syncFile(self, type_, fileName):
-        """
-        Private method to synchronize the given file.
-        
-        @param type_ type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-        @param fileName name of the file to be synchronized (string)
-        """
-        self.syncStatus.emit(type_, self._messages[type_]["Uploading"])
-        self.__uploadFile(type_, fileName)
-    
-    def syncBookmarks(self):
-        """
-        Public method to synchronize the bookmarks.
-        """
-        self.__syncFile(
-            "bookmarks",
-            Helpviewer.HelpWindow.HelpWindow.bookmarksManager().getFileName())
-    
-    def syncHistory(self):
-        """
-        Public method to synchronize the history.
-        """
-        self.__syncFile(
-            "history",
-            Helpviewer.HelpWindow.HelpWindow.historyManager().getFileName())
-    
-    def syncPasswords(self):
-        """
-        Public method to synchronize the passwords.
-        """
-        self.__syncFile(
-            "passwords",
-            Helpviewer.HelpWindow.HelpWindow.passwordManager().getFileName())
-    
-    def syncUserAgents(self):
-        """
-        Public method to synchronize the user agents.
-        """
-        self.__syncFile(
-            "useragents",
-            Helpviewer.HelpWindow.HelpWindow.userAgentsManager().getFileName())
-    
-    def syncSpeedDial(self):
-        """
-        Public method to synchronize the speed dial data.
-        """
-        self.__syncFile(
-            "speeddial",
-            Helpviewer.HelpWindow.HelpWindow.speedDial().getFileName())
-    
-    def shutdown(self):
-        """
-        Public method to shut down the handler.
-        """
-        # nothing to do
-        return
--- a/eric6/Helpviewer/Sync/FtpSyncHandler.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,413 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a synchronization handler using FTP.
-"""
-
-from __future__ import unicode_literals
-
-import ftplib
-import io
-
-from PyQt5.QtCore import pyqtSignal, QTimer, QFileInfo, QCoreApplication, \
-    QByteArray
-
-from E5Network.E5Ftp import E5Ftp, E5FtpProxyType, E5FtpProxyError
-
-from .SyncHandler import SyncHandler
-
-import Helpviewer.HelpWindow
-
-import Preferences
-
-from Utilities.FtpUtilities import FtpDirLineParser, FtpDirLineParserError
-
-
-class FtpSyncHandler(SyncHandler):
-    """
-    Class implementing a synchronization handler using FTP.
-    
-    @signal syncStatus(type_, message) emitted to indicate the synchronization
-        status (string one of "bookmarks", "history", "passwords",
-        "useragents" or "speeddial", string)
-    @signal syncError(message) emitted for a general error with the error
-        message (string)
-    @signal syncMessage(message) emitted to send a message about
-        synchronization (string)
-    @signal syncFinished(type_, done, download) emitted after a
-        synchronization has finished (string one of "bookmarks", "history",
-        "passwords", "useragents" or "speeddial", boolean, boolean)
-    """
-    syncStatus = pyqtSignal(str, str)
-    syncError = pyqtSignal(str)
-    syncMessage = pyqtSignal(str)
-    syncFinished = pyqtSignal(str, bool, bool)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(FtpSyncHandler, self).__init__(parent)
-        
-        self.__state = "idle"
-        self.__forceUpload = False
-        self.__connected = False
-        
-        self.__remoteFilesFound = {}
-    
-    def initialLoadAndCheck(self, forceUpload):
-        """
-        Public method to do the initial check.
-        
-        @keyparam forceUpload flag indicating a forced upload of the files
-            (boolean)
-        """
-        if not Preferences.getHelp("SyncEnabled"):
-            return
-        
-        self.__state = "initializing"
-        self.__forceUpload = forceUpload
-        
-        self.__dirLineParser = FtpDirLineParser()
-        self.__remoteFilesFound = {}
-        
-        self.__idleTimer = QTimer(self)
-        self.__idleTimer.setInterval(
-            Preferences.getHelp("SyncFtpIdleTimeout") * 1000)
-        self.__idleTimer.timeout.connect(self.__idleTimeout)
-        
-        self.__ftp = E5Ftp()
-        
-        # do proxy setup
-        if not Preferences.getUI("UseProxy"):
-            proxyType = E5FtpProxyType.NoProxy
-        else:
-            proxyType = Preferences.getUI("ProxyType/Ftp")
-        if proxyType != E5FtpProxyType.NoProxy:
-            self.__ftp.setProxy(
-                proxyType,
-                Preferences.getUI("ProxyHost/Ftp"),
-                Preferences.getUI("ProxyPort/Ftp"))
-            if proxyType != E5FtpProxyType.NonAuthorizing:
-                self.__ftp.setProxyAuthentication(
-                    Preferences.getUI("ProxyUser/Ftp"),
-                    Preferences.getUI("ProxyPassword/Ftp"),
-                    Preferences.getUI("ProxyAccount/Ftp"))
-        
-        QTimer.singleShot(0, self.__doFtpCommands)
-    
-    def __doFtpCommands(self):
-        """
-        Private slot executing the sequence of FTP commands.
-        """
-        try:
-            ok = self.__connectAndLogin()
-            if ok:
-                self.__changeToStore()
-                self.__ftp.retrlines("LIST", self.__dirListCallback)
-                self.__initialSync()
-                self.__state = "idle"
-                self.__idleTimer.start()
-        except (ftplib.all_errors + (E5FtpProxyError,)) as err:
-            self.syncError.emit(str(err))
-    
-    def __connectAndLogin(self):
-        """
-        Private method to connect to the FTP server and log in.
-        
-        @return flag indicating a successful log in (boolean)
-        """
-        self.__ftp.connect(
-            Preferences.getHelp("SyncFtpServer"),
-            Preferences.getHelp("SyncFtpPort"),
-            timeout=5)
-        self.__ftp.login(
-            Preferences.getHelp("SyncFtpUser"),
-            Preferences.getHelp("SyncFtpPassword"))
-        self.__connected = True
-        return True
-    
-    def __changeToStore(self):
-        """
-        Private slot to change to the storage directory.
-        
-        This action will create the storage path on the server, if it
-        does not exist. Upon return, the current directory of the server
-        is the sync directory.
-        """
-        storePathList = \
-            Preferences.getHelp("SyncFtpPath").replace("\\", "/").split("/")
-        if storePathList[0] == "":
-            storePathList.pop(0)
-        while storePathList:
-            path = storePathList[0]
-            try:
-                self.__ftp.cwd(path)
-            except ftplib.error_perm as err:
-                code = err.args[0].strip()[:3]
-                if code == "550":
-                    # path does not exist, create it
-                    self.__ftp.mkd(path)
-                    self.__ftp.cwd(path)
-                else:
-                    raise
-            storePathList.pop(0)
-    
-    def __dirListCallback(self, line):
-        """
-        Private slot handling the receipt of directory listing lines.
-        
-        @param line the received line of the directory listing (string)
-        """
-        try:
-            urlInfo = self.__dirLineParser.parseLine(line)
-        except FtpDirLineParserError:
-            # silently ignore parser errors
-            urlInfo = None
-        
-        if urlInfo and urlInfo.isValid() and urlInfo.isFile():
-            if urlInfo.name() in self._remoteFiles.values():
-                self.__remoteFilesFound[urlInfo.name()] = \
-                    urlInfo.lastModified()
-        
-        QCoreApplication.processEvents()
-    
-    def __downloadFile(self, type_, fileName, timestamp):
-        """
-        Private method to downlaod the given file.
-        
-        @param type_ type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-        @param fileName name of the file to be downloaded (string)
-        @param timestamp time stamp in seconds of the file to be downloaded
-            (integer)
-        """
-        self.syncStatus.emit(type_, self._messages[type_]["RemoteExists"])
-        buffer = io.BytesIO()
-        try:
-            self.__ftp.retrbinary(
-                "RETR {0}".format(self._remoteFiles[type_]),
-                lambda x: self.__downloadFileCallback(buffer, x))
-            ok, error = self.writeFile(
-                QByteArray(buffer.getvalue()), fileName, type_, timestamp)
-            if not ok:
-                self.syncStatus.emit(type_, error)
-            self.syncFinished.emit(type_, ok, True)
-        except ftplib.all_errors as err:
-            self.syncStatus.emit(type_, str(err))
-            self.syncFinished.emit(type_, False, True)
-    
-    def __downloadFileCallback(self, buffer, data):
-        """
-        Private method receiving the downloaded data.
-        
-        @param buffer reference to the buffer (io.BytesIO)
-        @param data byte string to store in the buffer (bytes)
-        @return number of bytes written to the buffer (integer)
-        """
-        res = buffer.write(data)
-        QCoreApplication.processEvents()
-        return res
-    
-    def __uploadFile(self, type_, fileName):
-        """
-        Private method to upload the given file.
-        
-        @param type_ type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-        @param fileName name of the file to be uploaded (string)
-        @return flag indicating success (boolean)
-        """
-        res = False
-        data = self.readFile(fileName, type_)
-        if data.isEmpty():
-            self.syncStatus.emit(type_, self._messages[type_]["LocalMissing"])
-            self.syncFinished.emit(type_, False, False)
-        else:
-            buffer = io.BytesIO(data.data())
-            try:
-                self.__ftp.storbinary(
-                    "STOR {0}".format(self._remoteFiles[type_]),
-                    buffer,
-                    callback=lambda x: QCoreApplication.processEvents())
-                self.syncFinished.emit(type_, True, False)
-                res = True
-            except ftplib.all_errors as err:
-                self.syncStatus.emit(type_, str(err))
-                self.syncFinished.emit(type_, False, False)
-        return res
-    
-    def __initialSyncFile(self, type_, fileName):
-        """
-        Private method to do the initial synchronization of the given file.
-        
-        @param type_ type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-        @param fileName name of the file to be synchronized (string)
-        """
-        if not self.__forceUpload and \
-           self._remoteFiles[type_] in self.__remoteFilesFound:
-            if QFileInfo(fileName).lastModified() < \
-               self.__remoteFilesFound[self._remoteFiles[type_]]:
-                self.__downloadFile(
-                    type_, fileName,
-                    self.__remoteFilesFound[self._remoteFiles[type_]]
-                        .toTime_t())
-            else:
-                self.syncStatus.emit(
-                    type_, self.tr("No synchronization required."))
-                self.syncFinished.emit(type_, True, True)
-        else:
-            if self._remoteFiles[type_] not in self.__remoteFilesFound:
-                self.syncStatus.emit(
-                    type_, self._messages[type_]["RemoteMissing"])
-            else:
-                self.syncStatus.emit(
-                    type_, self._messages[type_]["LocalNewer"])
-            self.__uploadFile(type_, fileName)
-    
-    def __initialSync(self):
-        """
-        Private slot to do the initial synchronization.
-        """
-        # Bookmarks
-        if Preferences.getHelp("SyncBookmarks"):
-            self.__initialSyncFile(
-                "bookmarks",
-                Helpviewer.HelpWindow.HelpWindow.bookmarksManager()
-                .getFileName())
-        
-        # History
-        if Preferences.getHelp("SyncHistory"):
-            self.__initialSyncFile(
-                "history",
-                Helpviewer.HelpWindow.HelpWindow.historyManager()
-                .getFileName())
-        
-        # Passwords
-        if Preferences.getHelp("SyncPasswords"):
-            self.__initialSyncFile(
-                "passwords",
-                Helpviewer.HelpWindow.HelpWindow.passwordManager()
-                .getFileName())
-        
-        # User Agent Settings
-        if Preferences.getHelp("SyncUserAgents"):
-            self.__initialSyncFile(
-                "useragents",
-                Helpviewer.HelpWindow.HelpWindow.userAgentsManager()
-                .getFileName())
-        
-        # Speed Dial Settings
-        if Preferences.getHelp("SyncSpeedDial"):
-            self.__initialSyncFile(
-                "speeddial",
-                Helpviewer.HelpWindow.HelpWindow.speedDial().getFileName())
-        
-        self.__forceUpload = False
-    
-    def __syncFile(self, type_, fileName):
-        """
-        Private method to synchronize the given file.
-        
-        @param type_ type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-        @param fileName name of the file to be synchronized (string)
-        """
-        if self.__state == "initializing":
-            return
-        
-        # use idle timeout to check, if we are still connected
-        if self.__connected:
-            self.__idleTimeout()
-        if not self.__connected or self.__ftp.sock is None:
-            ok = self.__connectAndLogin()
-            if not ok:
-                self.syncStatus.emit(
-                    type_, self.tr("Cannot log in to FTP host."))
-                return
-        
-        # upload the changed file
-        self.__state = "uploading"
-        self.syncStatus.emit(type_, self._messages[type_]["Uploading"])
-        if self.__uploadFile(type_, fileName):
-            self.syncStatus.emit(
-                type_, self.tr("Synchronization finished."))
-        self.__state = "idle"
-    
-    def syncBookmarks(self):
-        """
-        Public method to synchronize the bookmarks.
-        """
-        self.__syncFile(
-            "bookmarks",
-            Helpviewer.HelpWindow.HelpWindow.bookmarksManager().getFileName())
-    
-    def syncHistory(self):
-        """
-        Public method to synchronize the history.
-        """
-        self.__syncFile(
-            "history",
-            Helpviewer.HelpWindow.HelpWindow.historyManager().getFileName())
-    
-    def syncPasswords(self):
-        """
-        Public method to synchronize the passwords.
-        """
-        self.__syncFile(
-            "passwords",
-            Helpviewer.HelpWindow.HelpWindow.passwordManager().getFileName())
-    
-    def syncUserAgents(self):
-        """
-        Public method to synchronize the user agents.
-        """
-        self.__syncFile(
-            "useragents",
-            Helpviewer.HelpWindow.HelpWindow.userAgentsManager().getFileName())
-    
-    def syncSpeedDial(self):
-        """
-        Public method to synchronize the speed dial data.
-        """
-        self.__syncFile(
-            "speeddial",
-            Helpviewer.HelpWindow.HelpWindow.speedDial().getFileName())
-    
-    def shutdown(self):
-        """
-        Public method to shut down the handler.
-        """
-        if self.__idleTimer.isActive():
-            self.__idleTimer.stop()
-        
-        try:
-            if self.__connected:
-                self.__ftp.quit()
-        except ftplib.all_errors:
-            pass    # ignore FTP errors because we are shutting down anyway
-        self.__connected = False
-    
-    def __idleTimeout(self):
-        """
-        Private slot to prevent a disconnect from the server.
-        """
-        if self.__state == "idle" and self.__connected:
-            try:
-                self.__ftp.voidcmd("NOOP")
-            except ftplib.Error as err:
-                code = err.args[0].strip()[:3]
-                if code == "421":
-                    self.__connected = False
-            except IOError:
-                self.__connected = False
--- a/eric6/Helpviewer/Sync/SyncAssistantDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a wizard dialog to enter the synchronization data.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QWizard
-
-import UI.PixmapCache
-import Globals
-
-
-class SyncAssistantDialog(QWizard):
-    """
-    Class implementing a wizard dialog to enter the synchronization data.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(SyncAssistantDialog, self).__init__(parent)
-        
-        from . import SyncGlobals
-
-        from .SyncDataPage import SyncDataPage
-        from .SyncEncryptionPage import SyncEncryptionPage
-        from .SyncHostTypePage import SyncHostTypePage
-        from .SyncFtpSettingsPage import SyncFtpSettingsPage
-        from .SyncDirectorySettingsPage import SyncDirectorySettingsPage
-        from .SyncCheckPage import SyncCheckPage
-
-        self.setPage(SyncGlobals.PageData, SyncDataPage(self))
-        self.setPage(SyncGlobals.PageEncryption, SyncEncryptionPage(self))
-        self.setPage(SyncGlobals.PageType, SyncHostTypePage(self))
-        self.setPage(SyncGlobals.PageFTPSettings, SyncFtpSettingsPage(self))
-        self.setPage(SyncGlobals.PageDirectorySettings,
-                     SyncDirectorySettingsPage(self))
-        self.setPage(SyncGlobals.PageCheck, SyncCheckPage(self))
-        
-        self.setPixmap(QWizard.LogoPixmap,
-                       UI.PixmapCache.getPixmap("ericWeb48.png"))
-        self.setPixmap(QWizard.WatermarkPixmap,
-                       UI.PixmapCache.getPixmap("eric256.png"))
-        self.setPixmap(QWizard.BackgroundPixmap,
-                       UI.PixmapCache.getPixmap("eric256.png"))
-        
-        self.setMinimumSize(650, 450)
-        if Globals.isWindowsPlatform():
-            self.setWizardStyle(QWizard.ModernStyle)
--- a/eric6/Helpviewer/Sync/SyncCheckPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,209 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the synchronization status wizard page.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import QByteArray, QTimer
-from PyQt5.QtGui import QMovie
-from PyQt5.QtWidgets import QWizardPage
-
-from . import SyncGlobals
-
-from .Ui_SyncCheckPage import Ui_SyncCheckPage
-
-import Preferences
-import UI.PixmapCache
-
-from eric6config import getConfig
-
-
-class SyncCheckPage(QWizardPage, Ui_SyncCheckPage):
-    """
-    Class implementing the synchronization status wizard page.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(SyncCheckPage, self).__init__(parent)
-        self.setupUi(self)
-    
-    def initializePage(self):
-        """
-        Public method to initialize the page.
-        """
-        self.syncErrorLabel.hide()
-        
-        forceUpload = self.field("ReencryptData")
-        
-        import Helpviewer.HelpWindow
-        syncMgr = Helpviewer.HelpWindow.HelpWindow.syncManager()
-        syncMgr.syncError.connect(self.__syncError)
-        syncMgr.syncStatus.connect(self.__updateMessages)
-        syncMgr.syncFinished.connect(self.__updateLabels)
-        
-        if Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeFtp:
-            self.handlerLabel.setText(self.tr("FTP"))
-            self.infoLabel.setText(self.tr("Host:"))
-            self.infoDataLabel.setText(Preferences.getHelp("SyncFtpServer"))
-        elif Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeDirectory:
-            self.handlerLabel.setText(self.tr("Shared Directory"))
-            self.infoLabel.setText(self.tr("Directory:"))
-            self.infoDataLabel.setText(
-                Preferences.getHelp("SyncDirectoryPath"))
-        else:
-            self.handlerLabel.setText(self.tr("No Synchronization"))
-            self.hostLabel.setText("")
-        
-        self.bookmarkMsgLabel.setText("")
-        self.historyMsgLabel.setText("")
-        self.passwordsMsgLabel.setText("")
-        self.userAgentsMsgLabel.setText("")
-        self.speedDialMsgLabel.setText("")
-        
-        if not syncMgr.syncEnabled():
-            self.bookmarkLabel.setPixmap(
-                UI.PixmapCache.getPixmap("syncNo.png"))
-            self.historyLabel.setPixmap(UI.PixmapCache.getPixmap("syncNo.png"))
-            self.passwordsLabel.setPixmap(
-                UI.PixmapCache.getPixmap("syncNo.png"))
-            self.userAgentsLabel.setPixmap(
-                UI.PixmapCache.getPixmap("syncNo.png"))
-            self.speedDialLabel.setPixmap(
-                UI.PixmapCache.getPixmap("syncNo.png"))
-            return
-        
-        animationFile = os.path.join(getConfig("ericPixDir"), "loading.gif")
-        
-        # bookmarks
-        if Preferences.getHelp("SyncBookmarks"):
-            self.__makeAnimatedLabel(animationFile, self.bookmarkLabel)
-        else:
-            self.bookmarkLabel.setPixmap(
-                UI.PixmapCache.getPixmap("syncNo.png"))
-        
-        # history
-        if Preferences.getHelp("SyncHistory"):
-            self.__makeAnimatedLabel(animationFile, self.historyLabel)
-        else:
-            self.historyLabel.setPixmap(UI.PixmapCache.getPixmap("syncNo.png"))
-        
-        # Passwords
-        if Preferences.getHelp("SyncPasswords"):
-            self.__makeAnimatedLabel(animationFile, self.passwordsLabel)
-        else:
-            self.passwordsLabel.setPixmap(
-                UI.PixmapCache.getPixmap("syncNo.png"))
-        
-        # user agent settings
-        if Preferences.getHelp("SyncUserAgents"):
-            self.__makeAnimatedLabel(animationFile, self.userAgentsLabel)
-        else:
-            self.userAgentsLabel.setPixmap(
-                UI.PixmapCache.getPixmap("syncNo.png"))
-        
-        # speed dial settings
-        if Preferences.getHelp("SyncSpeedDial"):
-            self.__makeAnimatedLabel(animationFile, self.speedDialLabel)
-        else:
-            self.speedDialLabel.setPixmap(
-                UI.PixmapCache.getPixmap("syncNo.png"))
-        
-        QTimer.singleShot(
-            0, lambda: syncMgr.loadSettings(forceUpload=forceUpload))
-    
-    def __makeAnimatedLabel(self, fileName, label):
-        """
-        Private slot to create an animated label.
-        
-        @param fileName name of the file containing the animation (string)
-        @param label reference to the label to be animated (QLabel)
-        """
-        movie = QMovie(fileName, QByteArray(), label)
-        movie.setSpeed(100)
-        label.setMovie(movie)
-        movie.start()
-    
-    def __updateMessages(self, type_, msg):
-        """
-        Private slot to update the synchronization status info.
-        
-        @param type_ type of synchronization data (string)
-        @param msg synchronization message (string)
-        """
-        if type_ == "bookmarks":
-            self.bookmarkMsgLabel.setText(msg)
-        elif type_ == "history":
-            self.historyMsgLabel.setText(msg)
-        elif type_ == "passwords":
-            self.passwordsMsgLabel.setText(msg)
-        elif type_ == "useragents":
-            self.userAgentsMsgLabel.setText(msg)
-        elif type_ == "speeddial":
-            self.speedDialMsgLabel.setText(msg)
-    
-    def __updateLabels(self, type_, status, download):
-        """
-        Private slot to handle a finished synchronization event.
-        
-        @param type_ type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-        @param status flag indicating success (boolean)
-        @param download flag indicating a download of a file (boolean)
-        """
-        if type_ == "bookmarks":
-            if status:
-                self.bookmarkLabel.setPixmap(
-                    UI.PixmapCache.getPixmap("syncCompleted.png"))
-            else:
-                self.bookmarkLabel.setPixmap(
-                    UI.PixmapCache.getPixmap("syncFailed.png"))
-        elif type_ == "history":
-            if status:
-                self.historyLabel.setPixmap(
-                    UI.PixmapCache.getPixmap("syncCompleted.png"))
-            else:
-                self.historyLabel.setPixmap(
-                    UI.PixmapCache.getPixmap("syncFailed.png"))
-        elif type_ == "passwords":
-            if status:
-                self.passwordsLabel.setPixmap(
-                    UI.PixmapCache.getPixmap("syncCompleted.png"))
-            else:
-                self.passwordsLabel.setPixmap(
-                    UI.PixmapCache.getPixmap("syncFailed.png"))
-        elif type_ == "useragents":
-            if status:
-                self.userAgentsLabel.setPixmap(
-                    UI.PixmapCache.getPixmap("syncCompleted.png"))
-            else:
-                self.userAgentsLabel.setPixmap(
-                    UI.PixmapCache.getPixmap("syncFailed.png"))
-        elif type_ == "speeddial":
-            if status:
-                self.speedDialLabel.setPixmap(
-                    UI.PixmapCache.getPixmap("syncCompleted.png"))
-            else:
-                self.speedDialLabel.setPixmap(
-                    UI.PixmapCache.getPixmap("syncFailed.png"))
-    
-    def __syncError(self, message):
-        """
-        Private slot to handle general synchronization issues.
-        
-        @param message error message (string)
-        """
-        self.syncErrorLabel.show()
-        self.syncErrorLabel.setText(self.tr(
-            '<font color="#FF0000"><b>Error:</b> {0}</font>').format(message))
--- a/eric6/Helpviewer/Sync/SyncCheckPage.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SyncCheckPage</class>
- <widget class="QWizardPage" name="SyncCheckPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>650</width>
-    <height>400</height>
-   </rect>
-  </property>
-  <property name="title">
-   <string>Synchronization status</string>
-  </property>
-  <property name="subTitle">
-   <string>This page shows the status of the current synchronization process.</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Synchronization Data</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout">
-      <item row="0" column="0">
-       <widget class="QLabel" name="label">
-        <property name="text">
-         <string>Sync Handler:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QLabel" name="handlerLabel">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="text">
-         <string notr="true">handler</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="infoLabel">
-        <property name="text">
-         <string notr="true">Host:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QLabel" name="infoDataLabel">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="text">
-         <string notr="true">host</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_2">
-     <property name="title">
-      <string>Synchronization Status</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_2">
-      <item row="0" column="0">
-       <widget class="QLabel" name="label_3">
-        <property name="text">
-         <string>Bookmarks:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QLabel" name="bookmarkLabel"/>
-      </item>
-      <item row="0" column="2" colspan="2">
-       <widget class="QLabel" name="bookmarkMsgLabel">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="label_4">
-        <property name="text">
-         <string>History:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QLabel" name="historyLabel"/>
-      </item>
-      <item row="1" column="2" colspan="2">
-       <widget class="QLabel" name="historyMsgLabel">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="0">
-       <widget class="QLabel" name="label_5">
-        <property name="text">
-         <string>Passwords:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1">
-       <widget class="QLabel" name="passwordsLabel"/>
-      </item>
-      <item row="2" column="2" colspan="2">
-       <widget class="QLabel" name="passwordsMsgLabel">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="0">
-       <widget class="QLabel" name="label_6">
-        <property name="text">
-         <string>User Agent Settings:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="1">
-       <widget class="QLabel" name="userAgentsLabel"/>
-      </item>
-      <item row="3" column="2" colspan="2">
-       <widget class="QLabel" name="userAgentsMsgLabel">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="0">
-       <widget class="QLabel" name="label_7">
-        <property name="text">
-         <string>Speed Dial Settings:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="1" colspan="2">
-       <widget class="QLabel" name="speedDialLabel"/>
-      </item>
-      <item row="4" column="3">
-       <widget class="QLabel" name="speedDialMsgLabel">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="5" column="0" colspan="4">
-       <widget class="QLabel" name="syncErrorLabel">
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>81</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Helpviewer/Sync/SyncDataPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the synchronization data wizard page.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QWizardPage
-
-from .Ui_SyncDataPage import Ui_SyncDataPage
-
-import Preferences
-
-
-class SyncDataPage(QWizardPage, Ui_SyncDataPage):
-    """
-    Class implementing the synchronization data wizard page.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(SyncDataPage, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.bookmarksCheckBox.setChecked(Preferences.getHelp("SyncBookmarks"))
-        self.historyCheckBox.setChecked(Preferences.getHelp("SyncHistory"))
-        self.passwordsCheckBox.setChecked(Preferences.getHelp("SyncPasswords"))
-        self.userAgentsCheckBox.setChecked(
-            Preferences.getHelp("SyncUserAgents"))
-        self.speedDialCheckBox.setChecked(Preferences.getHelp("SyncSpeedDial"))
-        
-        self.activeCheckBox.setChecked(Preferences.getHelp("SyncEnabled"))
-    
-    def nextId(self):
-        """
-        Public method returning the ID of the next wizard page.
-        
-        @return next wizard page ID (integer)
-        """
-        # save the settings
-        Preferences.setHelp("SyncEnabled", self.activeCheckBox.isChecked())
-        
-        Preferences.setHelp(
-            "SyncBookmarks", self.bookmarksCheckBox.isChecked())
-        Preferences.setHelp(
-            "SyncHistory", self.historyCheckBox.isChecked())
-        Preferences.setHelp(
-            "SyncPasswords", self.passwordsCheckBox.isChecked())
-        Preferences.setHelp(
-            "SyncUserAgents", self.userAgentsCheckBox.isChecked())
-        Preferences.setHelp(
-            "SyncSpeedDial", self.speedDialCheckBox.isChecked())
-        
-        from . import SyncGlobals
-        if self.activeCheckBox.isChecked():
-            return SyncGlobals.PageEncryption
-        else:
-            return SyncGlobals.PageCheck
--- a/eric6/Helpviewer/Sync/SyncDataPage.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SyncDataPage</class>
- <widget class="QWizardPage" name="SyncDataPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>650</width>
-    <height>400</height>
-   </rect>
-  </property>
-  <property name="title">
-   <string>Basic synchronization settings</string>
-  </property>
-  <property name="subTitle">
-   <string>Please select, if synchronization should be enabled and which data should be synchronized.</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2">
-   <item>
-    <widget class="QCheckBox" name="activeCheckBox">
-     <property name="toolTip">
-      <string>Select to activate data synchronization</string>
-     </property>
-     <property name="text">
-      <string>Activate synchronization</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="syncDataBox">
-     <property name="enabled">
-      <bool>false</bool>
-     </property>
-     <property name="title">
-      <string>Data to be synchronized</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout">
-      <item>
-       <widget class="QCheckBox" name="bookmarksCheckBox">
-        <property name="toolTip">
-         <string>Select to synchronize bookmarks</string>
-        </property>
-        <property name="text">
-         <string>Bookmarks</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QCheckBox" name="historyCheckBox">
-        <property name="toolTip">
-         <string>Select to synchronize history</string>
-        </property>
-        <property name="text">
-         <string>History</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QCheckBox" name="passwordsCheckBox">
-        <property name="toolTip">
-         <string>Select to synchronize passwords</string>
-        </property>
-        <property name="text">
-         <string>Passwords</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QCheckBox" name="userAgentsCheckBox">
-        <property name="toolTip">
-         <string>Select to synchronize user agent settings</string>
-        </property>
-        <property name="text">
-         <string>User Agent Settings</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QCheckBox" name="speedDialCheckBox">
-        <property name="toolTip">
-         <string>Select to synchronize the speed dial data</string>
-        </property>
-        <property name="text">
-         <string>Speed Dial Settings</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>150</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>activeCheckBox</sender>
-   <signal>toggled(bool)</signal>
-   <receiver>syncDataBox</receiver>
-   <slot>setEnabled(bool)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>63</x>
-     <y>15</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>63</x>
-     <y>42</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/Sync/SyncDirectorySettingsPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the synchronization shared directory settings wizard page.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QWizardPage
-
-from E5Gui.E5PathPicker import E5PathPickerModes
-
-from .Ui_SyncDirectorySettingsPage import Ui_SyncDirectorySettingsPage
-
-import Preferences
-
-
-class SyncDirectorySettingsPage(QWizardPage, Ui_SyncDirectorySettingsPage):
-    """
-    Class implementing the shared directory host settings wizard page.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(SyncDirectorySettingsPage, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.directoryPicker.setMode(E5PathPickerModes.DirectoryMode)
-        self.directoryPicker.setText(Preferences.getHelp("SyncDirectoryPath"))
-        
-        self.directoryPicker.textChanged.connect(self.completeChanged)
-    
-    def nextId(self):
-        """
-        Public method returning the ID of the next wizard page.
-        
-        @return next wizard page ID (integer)
-        """
-        # save the settings
-        Preferences.setHelp("SyncDirectoryPath", self.directoryPicker.text())
-        
-        from . import SyncGlobals
-        return SyncGlobals.PageCheck
-    
-    def isComplete(self):
-        """
-        Public method to check the completeness of the page.
-        
-        @return flag indicating completeness (boolean)
-        """
-        return self.directoryPicker.text() != ""
--- a/eric6/Helpviewer/Sync/SyncDirectorySettingsPage.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SyncDirectorySettingsPage</class>
- <widget class="QWizardPage" name="SyncDirectorySettingsPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>650</width>
-    <height>400</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string/>
-  </property>
-  <property name="title">
-   <string>Synchronize to a shared directory</string>
-  </property>
-  <property name="subTitle">
-   <string>Please enter the data for synchronization via a shared directory. All fields must be filled.</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Shared Directory Settings</string>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <item>
-       <widget class="QLabel" name="label">
-        <property name="text">
-         <string>Directory Name:</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="E5PathPicker" name="directoryPicker" native="true">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="focusPolicy">
-         <enum>Qt::StrongFocus</enum>
-        </property>
-        <property name="toolTip">
-         <string>Enter the full path of the shared directory</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>317</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5PathPicker</class>
-   <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Helpviewer/Sync/SyncEncryptionPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing encryption settings wizard page.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot
-from PyQt5.QtWidgets import QWizardPage
-
-from .Ui_SyncEncryptionPage import Ui_SyncEncryptionPage
-
-import Preferences
-
-
-class SyncEncryptionPage(QWizardPage, Ui_SyncEncryptionPage):
-    """
-    Class implementing encryption settings wizard page.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(SyncEncryptionPage, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.keySizeComboBox.addItem(self.tr("128 Bits"), 16)
-        self.keySizeComboBox.addItem(self.tr("192 Bits"), 24)
-        self.keySizeComboBox.addItem(self.tr("256 Bits"), 32)
-        
-        self.registerField("ReencryptData", self.reencryptCheckBox)
-        
-        self.encryptionGroupBox.setChecked(
-            Preferences.getHelp("SyncEncryptData"))
-        self.encryptionKeyEdit.setText(
-            Preferences.getHelp("SyncEncryptionKey"))
-        self.encryptionKeyAgainEdit.setEnabled(False)
-        self.keySizeComboBox.setCurrentIndex(self.keySizeComboBox.findData(
-            Preferences.getHelp("SyncEncryptionKeyLength")))
-        self.loginsOnlyCheckBox.setChecked(
-            Preferences.getHelp("SyncEncryptPasswordsOnly"))
-    
-    def nextId(self):
-        """
-        Public method returning the ID of the next wizard page.
-        
-        @return next wizard page ID (integer)
-        """
-        Preferences.setHelp(
-            "SyncEncryptData", self.encryptionGroupBox.isChecked())
-        Preferences.setHelp(
-            "SyncEncryptionKey", self.encryptionKeyEdit.text())
-        Preferences.setHelp(
-            "SyncEncryptionKeyLength", self.keySizeComboBox.itemData(
-                self.keySizeComboBox.currentIndex()))
-        Preferences.setHelp(
-            "SyncEncryptPasswordsOnly", self.loginsOnlyCheckBox.isChecked())
-        
-        from . import SyncGlobals
-        return SyncGlobals.PageType
-    
-    def isComplete(self):
-        """
-        Public method to check the completeness of the page.
-        
-        @return flag indicating completeness (boolean)
-        """
-        if self.encryptionGroupBox.isChecked():
-            if self.encryptionKeyEdit.text() == "":
-                complete = False
-            else:
-                if self.reencryptCheckBox.isChecked():
-                    complete = (self.encryptionKeyEdit.text() ==
-                                self.encryptionKeyAgainEdit.text())
-                else:
-                    complete = True
-        else:
-            complete = True
-        
-        return complete
-    
-    def __updateUI(self):
-        """
-        Private slot to update the variable parts of the UI.
-        """
-        error = ""
-        
-        if self.encryptionGroupBox.isChecked():
-            self.encryptionKeyAgainEdit.setEnabled(
-                self.reencryptCheckBox.isChecked())
-            
-            if self.encryptionKeyEdit.text() == "":
-                error = error or self.tr(
-                    "Encryption key must not be empty.")
-            
-            if self.encryptionKeyEdit.text() != "" and \
-                    self.reencryptCheckBox.isChecked() and \
-                    (self.encryptionKeyEdit.text() !=
-                     self.encryptionKeyAgainEdit.text()):
-                error = error or self.tr(
-                    "Repeated encryption key is wrong.")
-        
-        self.errorLabel.setText(error)
-        self.completeChanged.emit()
-    
-    @pyqtSlot(str)
-    def on_encryptionKeyEdit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the encryption key.
-        
-        @param txt content of the edit widget (string)
-        """
-        self.passwordMeter.checkPasswordStrength(txt)
-        self.__updateUI()
-    
-    @pyqtSlot(str)
-    def on_encryptionKeyAgainEdit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the encryption key repetition.
-        
-        @param txt content of the edit widget (string)
-        """
-        self.__updateUI()
-    
-    @pyqtSlot(bool)
-    def on_encryptionGroupBox_toggled(self, on):
-        """
-        Private slot to handle changes of the encryption selection.
-        
-        @param on state of the group box (boolean)
-        """
-        self.__updateUI()
-    
-    @pyqtSlot(bool)
-    def on_reencryptCheckBox_toggled(self, on):
-        """
-        Private slot to handle changes of the re-encryption selection.
-        
-        @param on state of the check box (boolean)
-        """
-        self.__updateUI()
--- a/eric6/Helpviewer/Sync/SyncEncryptionPage.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SyncEncryptionPage</class>
- <widget class="QWizardPage" name="SyncEncryptionPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>650</width>
-    <height>400</height>
-   </rect>
-  </property>
-  <property name="title">
-   <string>Encryption Settings</string>
-  </property>
-  <property name="subTitle">
-   <string>Please select, if the synchronized data should be encrypted and enter the encryption key</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QGroupBox" name="encryptionGroupBox">
-     <property name="toolTip">
-      <string>Select to encrypt the synchronzed data</string>
-     </property>
-     <property name="title">
-      <string>Encrypt Data</string>
-     </property>
-     <property name="checkable">
-      <bool>true</bool>
-     </property>
-     <layout class="QGridLayout" name="gridLayout">
-      <item row="0" column="0" colspan="2">
-       <widget class="QLabel" name="label_3">
-        <property name="text">
-         <string>&lt;p&gt;The encryption key will be used to encrypt and decrypt the synchronizde data. If the data should be re-encrypted, the respective selection should be done. The key must only be repeated, if a re-encryption is requested.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Note: If you forget the encryption key, the encrypted data cannot be recovered!&lt;/b&gt;&lt;br/&gt;&lt;/p&gt;</string>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0" colspan="2">
-       <widget class="QCheckBox" name="reencryptCheckBox">
-        <property name="toolTip">
-         <string>Select to re-encrypt the synchronized data</string>
-        </property>
-        <property name="text">
-         <string>Re-encrypt synchronized data</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="0">
-       <widget class="QLabel" name="label">
-        <property name="text">
-         <string>Encryption Key:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1">
-       <widget class="QLineEdit" name="encryptionKeyEdit">
-        <property name="toolTip">
-         <string>Enter the encryption key</string>
-        </property>
-        <property name="echoMode">
-         <enum>QLineEdit::Password</enum>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="0">
-       <widget class="QLabel" name="label_2">
-        <property name="text">
-         <string>Encryption Key (again):</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="1">
-       <widget class="QLineEdit" name="encryptionKeyAgainEdit">
-        <property name="toolTip">
-         <string>Repeat the encryption key</string>
-        </property>
-        <property name="echoMode">
-         <enum>QLineEdit::Password</enum>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="0" colspan="2">
-       <widget class="E5PasswordMeter" name="passwordMeter">
-        <property name="toolTip">
-         <string>Shows an indication for the encryption key strength</string>
-        </property>
-       </widget>
-      </item>
-      <item row="5" column="0" colspan="2">
-       <layout class="QHBoxLayout" name="horizontalLayout">
-        <item>
-         <widget class="QLabel" name="label_4">
-          <property name="text">
-           <string>Size of generated encryption key:</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QComboBox" name="keySizeComboBox">
-          <property name="toolTip">
-           <string>Select the size of the generated encryption key</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </item>
-      <item row="6" column="0" colspan="2">
-       <widget class="QLabel" name="errorLabel">
-        <property name="styleSheet">
-         <string notr="true">color : red;</string>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="7" column="0" colspan="2">
-       <widget class="QCheckBox" name="loginsOnlyCheckBox">
-        <property name="toolTip">
-         <string>Select to encrypt only the passwords</string>
-        </property>
-        <property name="text">
-         <string>Encrypt Passwords Only</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>191</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5PasswordMeter</class>
-   <extends>QProgressBar</extends>
-   <header>E5Gui/E5PasswordMeter</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>encryptionGroupBox</tabstop>
-  <tabstop>reencryptCheckBox</tabstop>
-  <tabstop>encryptionKeyEdit</tabstop>
-  <tabstop>encryptionKeyAgainEdit</tabstop>
-  <tabstop>keySizeComboBox</tabstop>
-  <tabstop>loginsOnlyCheckBox</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Helpviewer/Sync/SyncFtpSettingsPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the synchronization FTP host settings wizard page.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QWizardPage
-
-from .Ui_SyncFtpSettingsPage import Ui_SyncFtpSettingsPage
-
-import Preferences
-
-
-class SyncFtpSettingsPage(QWizardPage, Ui_SyncFtpSettingsPage):
-    """
-    Class implementing the synchronization FTP host settings wizard page.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(SyncFtpSettingsPage, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.serverEdit.setText(Preferences.getHelp("SyncFtpServer"))
-        self.userNameEdit.setText(Preferences.getHelp("SyncFtpUser"))
-        self.passwordEdit.setText(Preferences.getHelp("SyncFtpPassword"))
-        self.pathEdit.setText(Preferences.getHelp("SyncFtpPath"))
-        self.portSpinBox.setValue(Preferences.getHelp("SyncFtpPort"))
-        self.idleSpinBox.setValue(Preferences.getHelp("SyncFtpIdleTimeout"))
-        
-        self.serverEdit.textChanged.connect(self.completeChanged)
-        self.userNameEdit.textChanged.connect(self.completeChanged)
-        self.passwordEdit.textChanged.connect(self.completeChanged)
-        self.pathEdit.textChanged.connect(self.completeChanged)
-    
-    def nextId(self):
-        """
-        Public method returning the ID of the next wizard page.
-        
-        @return next wizard page ID (integer)
-        """
-        # save the settings
-        Preferences.setHelp("SyncFtpServer", self.serverEdit.text())
-        Preferences.setHelp("SyncFtpUser", self.userNameEdit.text())
-        Preferences.setHelp("SyncFtpPassword", self.passwordEdit.text())
-        Preferences.setHelp("SyncFtpPath", self.pathEdit.text())
-        Preferences.setHelp("SyncFtpPort", self.portSpinBox.value())
-        Preferences.setHelp("SyncFtpIdleTimeout", self.idleSpinBox.value())
-        
-        from . import SyncGlobals
-        return SyncGlobals.PageCheck
-    
-    def isComplete(self):
-        """
-        Public method to check the completeness of the page.
-        
-        @return flag indicating completeness (boolean)
-        """
-        return self.serverEdit.text() != "" and \
-            self.userNameEdit.text() != "" and \
-            self.passwordEdit.text() != "" and \
-            self.pathEdit.text() != ""
--- a/eric6/Helpviewer/Sync/SyncFtpSettingsPage.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SyncFtpSettingsPage</class>
- <widget class="QWizardPage" name="SyncFtpSettingsPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>650</width>
-    <height>400</height>
-   </rect>
-  </property>
-  <property name="title">
-   <string>Synchronize to an FTP host</string>
-  </property>
-  <property name="subTitle">
-   <string>Please enter the data for synchronization via FTP. All fields must be filled.</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Remote FTP Host Settings</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout">
-      <item row="0" column="0">
-       <widget class="QLabel" name="label">
-        <property name="text">
-         <string>Server:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1" colspan="2">
-       <widget class="QLineEdit" name="serverEdit">
-        <property name="toolTip">
-         <string>Enter the FTP server name</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="label_2">
-        <property name="text">
-         <string>User Name:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1" colspan="2">
-       <widget class="QLineEdit" name="userNameEdit">
-        <property name="toolTip">
-         <string>Enter the user name</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="0">
-       <widget class="QLabel" name="label_3">
-        <property name="text">
-         <string>Password:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1" colspan="2">
-       <widget class="QLineEdit" name="passwordEdit">
-        <property name="toolTip">
-         <string>Enter the password</string>
-        </property>
-        <property name="echoMode">
-         <enum>QLineEdit::Password</enum>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="0">
-       <widget class="QLabel" name="label_4">
-        <property name="text">
-         <string>Path:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="1" colspan="2">
-       <widget class="QLineEdit" name="pathEdit">
-        <property name="toolTip">
-         <string>Enter the remote path</string>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="0">
-       <widget class="QLabel" name="label_5">
-        <property name="text">
-         <string>Port:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="1">
-       <widget class="QSpinBox" name="portSpinBox">
-        <property name="toolTip">
-         <string>Enter the remote port</string>
-        </property>
-        <property name="alignment">
-         <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-        </property>
-        <property name="minimum">
-         <number>1</number>
-        </property>
-        <property name="maximum">
-         <number>65635</number>
-        </property>
-        <property name="value">
-         <number>21</number>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="2">
-       <spacer name="horizontalSpacer">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>218</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="5" column="0">
-       <widget class="QLabel" name="label_6">
-        <property name="text">
-         <string>Idle Timeout:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="5" column="1">
-       <widget class="QSpinBox" name="idleSpinBox">
-        <property name="toolTip">
-         <string>Enter the idle timeout interval to prevent a server disconnect</string>
-        </property>
-        <property name="alignment">
-         <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-        </property>
-        <property name="suffix">
-         <string> s</string>
-        </property>
-        <property name="minimum">
-         <number>10</number>
-        </property>
-        <property name="maximum">
-         <number>3600</number>
-        </property>
-       </widget>
-      </item>
-      <item row="5" column="2">
-       <spacer name="horizontalSpacer_2">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>419</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>101</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Helpviewer/Sync/SyncGlobals.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing some global definitions.
-"""
-
-# Page IDs for the sync wizard
-PageData = 0
-PageEncryption = 1
-PageType = 2
-PageFTPSettings = 3
-PageDirectorySettings = 4
-PageCheck = 5
-
-# Sync types
-SyncTypeNone = -1
-SyncTypeFtp = 0
-SyncTypeDirectory = 1
-
-#
-# eflag: noqa = M702
--- a/eric6/Helpviewer/Sync/SyncHandler.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,278 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module containing a base class for synchronization handlers.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import QObject, pyqtSignal, QByteArray
-
-import Preferences
-
-from Utilities.crypto import dataEncrypt, dataDecrypt
-
-
-class SyncHandler(QObject):
-    """
-    Base class for synchronization handlers.
-    
-    @signal syncStatus(type_, message) emitted to indicate the synchronization
-        status (string one of "bookmarks", "history", "passwords",
-        "useragents" or "speeddial", string)
-    @signal syncError(message) emitted for a general error with the error
-        message (string)
-    @signal syncMessage(message) emitted to send a message about
-        synchronization (string)
-    @signal syncFinished(type_, done, download) emitted after a
-        synchronization has finished (string one of "bookmarks", "history",
-        "passwords", "useragents" or "speeddial", boolean, boolean)
-    """
-    syncStatus = pyqtSignal(str, str)
-    syncError = pyqtSignal(str)
-    syncMessage = pyqtSignal(str)
-    syncFinished = pyqtSignal(str, bool, bool)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(SyncHandler, self).__init__(parent)
-        
-        self._firstTimeSynced = False
-        
-        self._remoteFiles = {
-            "bookmarks": "Bookmarks",
-            "history": "History",
-            "passwords": "Logins",
-            "useragents": "UserAgentSettings",
-            "speeddial": "SpeedDial",
-        }
-        
-        self._messages = {
-            "bookmarks": {
-                "RemoteExists": self.tr(
-                    "Remote bookmarks file exists! Syncing local copy..."),
-                "RemoteMissing": self.tr(
-                    "Remote bookmarks file does NOT exist. Exporting"
-                    " local copy..."),
-                "LocalNewer": self.tr(
-                    "Local bookmarks file is NEWER. Exporting local copy..."),
-                "LocalMissing": self.tr(
-                    "Local bookmarks file does NOT exist. Skipping"
-                    " synchronization!"),
-                "Uploading": self.tr("Uploading local bookmarks file..."),
-            },
-            "history": {
-                "RemoteExists": self.tr(
-                    "Remote history file exists! Syncing local copy..."),
-                "RemoteMissing": self.tr(
-                    "Remote history file does NOT exist. Exporting"
-                    " local copy..."),
-                "LocalNewer": self.tr(
-                    "Local history file is NEWER. Exporting local copy..."),
-                "LocalMissing": self.tr(
-                    "Local history file does NOT exist. Skipping"
-                    " synchronization!"),
-                "Uploading": self.tr("Uploading local history file..."),
-            },
-            "passwords": {
-                "RemoteExists": self.tr(
-                    "Remote logins file exists! Syncing local copy..."),
-                "RemoteMissing": self.tr(
-                    "Remote logins file does NOT exist. Exporting"
-                    " local copy..."),
-                "LocalNewer": self.tr(
-                    "Local logins file is NEWER. Exporting local copy..."),
-                "LocalMissing": self.tr(
-                    "Local logins file does NOT exist. Skipping"
-                    " synchronization!"),
-                "Uploading": self.tr("Uploading local logins file..."),
-            },
-            "useragents": {
-                "RemoteExists": self.tr(
-                    "Remote user agent settings file exists! Syncing local"
-                    " copy..."),
-                "RemoteMissing": self.tr(
-                    "Remote user agent settings file does NOT exist."
-                    " Exporting local copy..."),
-                "LocalNewer": self.tr(
-                    "Local user agent settings file is NEWER. Exporting"
-                    " local copy..."),
-                "LocalMissing": self.tr(
-                    "Local user agent settings file does NOT exist."
-                    " Skipping synchronization!"),
-                "Uploading": self.tr(
-                    "Uploading local user agent settings file..."),
-            },
-            "speeddial": {
-                "RemoteExists": self.tr(
-                    "Remote speed dial settings file exists! Syncing local"
-                    " copy..."),
-                "RemoteMissing": self.tr(
-                    "Remote speed dial settings file does NOT exist."
-                    " Exporting local copy..."),
-                "LocalNewer": self.tr(
-                    "Local speed dial settings file is NEWER. Exporting"
-                    " local copy..."),
-                "LocalMissing": self.tr(
-                    "Local speed dial settings file does NOT exist."
-                    " Skipping synchronization!"),
-                "Uploading": self.tr(
-                    "Uploading local speed dial settings file..."),
-            },
-        }
-    
-    def syncBookmarks(self):
-        """
-        Public method to synchronize the bookmarks.
-        
-        @exception NotImplementedError raised to indicate that this method
-            must be implemented by subclasses
-        """
-        raise NotImplementedError
-    
-    def syncHistory(self):
-        """
-        Public method to synchronize the history.
-        
-        @exception NotImplementedError raised to indicate that this method
-            must be implemented by subclasses
-        """
-        raise NotImplementedError
-    
-    def syncPasswords(self):
-        """
-        Public method to synchronize the passwords.
-        
-        @exception NotImplementedError raised to indicate that this method
-            must be implemented by subclasses
-        """
-        raise NotImplementedError
-    
-    def syncUserAgents(self):
-        """
-        Public method to synchronize the user agents.
-        
-        @exception NotImplementedError raised to indicate that this method
-            must be implemented by subclasses
-        """
-        raise NotImplementedError
-    
-    def syncSpeedDial(self):
-        """
-        Public method to synchronize the speed dial data.
-        
-        @exception NotImplementedError raised to indicate that this method
-            must be implemented by subclasses
-        """
-        raise NotImplementedError
-    
-    def initialLoadAndCheck(self, forceUpload):
-        """
-        Public method to do the initial check.
-        
-        @keyparam forceUpload flag indicating a forced upload of the files
-            (boolean)
-        @exception NotImplementedError raised to indicate that this method
-            must be implemented by subclasses
-        """
-        raise NotImplementedError
-    
-    def shutdown(self):
-        """
-        Public method to shut down the handler.
-        
-        @exception NotImplementedError raised to indicate that this method
-            must be implemented by subclasses
-        """
-        raise NotImplementedError
-    
-    def readFile(self, fileName, type_):
-        """
-        Public method to read a file.
-        
-        If encrypted synchronization is enabled, the data will be encrypted
-        using the relevant encryption key.
-        
-        @param fileName name of the file to be read (string)
-        @param type_ type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-        @return data of the file, optionally encrypted (QByteArray)
-        """
-        if os.path.exists(fileName):
-            try:
-                inputFile = open(fileName, "rb")
-                data = inputFile.read()
-                inputFile.close()
-            except IOError:
-                return QByteArray()
-            
-            if Preferences.getHelp("SyncEncryptData") and \
-               (not Preferences.getHelp("SyncEncryptPasswordsOnly") or
-                (Preferences.getHelp("SyncEncryptPasswordsOnly") and
-                 type_ == "passwords")):
-                key = Preferences.getHelp("SyncEncryptionKey")
-                if not key:
-                    return QByteArray()
-                
-                data, ok = dataEncrypt(
-                    data, key,
-                    keyLength=Preferences.getHelp("SyncEncryptionKeyLength"),
-                    hashIterations=100)
-                if not ok:
-                    return QByteArray()
-            
-            return QByteArray(data)
-        
-        return QByteArray()
-    
-    def writeFile(self, data, fileName, type_, timestamp=0):
-        """
-        Public method to write the data to a file.
-        
-        If encrypted synchronization is enabled, the data will be decrypted
-        using the relevant encryption key.
-        
-        @param data data to be written and optionally decrypted (QByteArray)
-        @param fileName name of the file the data is to be written to (string)
-        @param type_ type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-        @param timestamp timestamp to be given to the file (int)
-        @return tuple giving a success flag and an error string (boolean,
-            string)
-        """
-        data = bytes(data)
-        
-        if Preferences.getHelp("SyncEncryptData") and \
-                (not Preferences.getHelp("SyncEncryptPasswordsOnly") or
-                 (Preferences.getHelp("SyncEncryptPasswordsOnly") and
-                  type_ == "passwords")):
-            key = Preferences.getHelp("SyncEncryptionKey")
-            if not key:
-                return False, self.tr("Invalid encryption key given.")
-            
-            data, ok = dataDecrypt(
-                data, key,
-                keyLength=Preferences.getHelp("SyncEncryptionKeyLength"))
-            if not ok:
-                return False, self.tr("Data cannot be decrypted.")
-        
-        try:
-            outputFile = open(fileName, "wb")
-            outputFile.write(data)
-            outputFile.close()
-            if timestamp > 0:
-                os.utime(fileName, (timestamp, timestamp))
-            return True, ""
-        except IOError as error:
-            return False, str(error)
--- a/eric6/Helpviewer/Sync/SyncHostTypePage.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the synchronization host type wizard page.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QWizardPage
-
-from . import SyncGlobals
-
-from .Ui_SyncHostTypePage import Ui_SyncHostTypePage
-
-import Preferences
-
-
-class SyncHostTypePage(QWizardPage, Ui_SyncHostTypePage):
-    """
-    Class implementing the synchronization host type wizard page.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(SyncHostTypePage, self).__init__(parent)
-        self.setupUi(self)
-        
-        if Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeFtp:
-            self.ftpRadioButton.setChecked(True)
-        elif Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeDirectory:
-            self.directoryRadioButton.setChecked(True)
-        else:
-            self.noneRadioButton.setChecked(True)
-    
-    def nextId(self):
-        """
-        Public method returning the ID of the next wizard page.
-        
-        @return next wizard page ID (integer)
-        """
-        # save the settings
-        if self.ftpRadioButton.isChecked():
-            Preferences.setHelp("SyncType", SyncGlobals.SyncTypeFtp)
-            return SyncGlobals.PageFTPSettings
-        elif self.directoryRadioButton.isChecked():
-            Preferences.setHelp("SyncType", SyncGlobals.SyncTypeDirectory)
-            return SyncGlobals.PageDirectorySettings
-        else:
-            Preferences.setHelp("SyncType", SyncGlobals.SyncTypeNone)
-            return SyncGlobals.PageCheck
--- a/eric6/Helpviewer/Sync/SyncHostTypePage.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SyncHostTypePage</class>
- <widget class="QWizardPage" name="SyncHostTypePage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>650</width>
-    <height>400</height>
-   </rect>
-  </property>
-  <property name="title">
-   <string>Host Type Selection</string>
-  </property>
-  <property name="subTitle">
-   <string>Please select the type of the host to be used for synchronization.</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2">
-   <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Synchronization Host Type</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout">
-      <item>
-       <widget class="QRadioButton" name="ftpRadioButton">
-        <property name="toolTip">
-         <string>Select to use a FTP host</string>
-        </property>
-        <property name="text">
-         <string>FTP</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QRadioButton" name="directoryRadioButton">
-        <property name="toolTip">
-         <string>Select to use a shared directory</string>
-        </property>
-        <property name="text">
-         <string>Shared Directory</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QRadioButton" name="noneRadioButton">
-        <property name="toolTip">
-         <string>Select to use no particular host type</string>
-        </property>
-        <property name="text">
-         <string>None</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>191</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>ftpRadioButton</tabstop>
-  <tabstop>directoryRadioButton</tabstop>
-  <tabstop>noneRadioButton</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Helpviewer/Sync/SyncManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,275 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the synchronization manager class.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QObject, pyqtSignal
-
-import Preferences
-
-import Helpviewer.HelpWindow
-
-
-class SyncManager(QObject):
-    """
-    Class implementing the synchronization manager.
-    
-    @signal syncError(message) emitted for a general error with the error
-        message (string)
-    @signal syncMessage(message) emitted to give status info about the sync
-        process (string)
-    @signal syncStatus(type_, message) emitted to indicate the synchronization
-        status (string one of "bookmarks", "history", "passwords",
-        "useragents" or "speeddial", string)
-    @signal syncFinished(type_, done, download) emitted after a
-        synchronization has finished (string one of "bookmarks", "history",
-        "passwords", "useragents" or "speeddial", boolean, boolean)
-    """
-    syncError = pyqtSignal(str)
-    syncMessage = pyqtSignal(str)
-    syncStatus = pyqtSignal(str, str)
-    syncFinished = pyqtSignal(str, bool, bool)
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(SyncManager, self).__init__(parent)
-        
-        self.__handler = None
-    
-    def handler(self):
-        """
-        Public method to get a reference to the sync handler object.
-        
-        @return reference to the sync handler object (SyncHandler)
-        """
-        return self.__handler
-    
-    def showSyncDialog(self):
-        """
-        Public method to show the synchronization dialog.
-        """
-        from .SyncAssistantDialog import SyncAssistantDialog
-        dlg = SyncAssistantDialog()
-        dlg.exec_()
-    
-    def loadSettings(self, forceUpload=False):
-        """
-        Public method to load the settings.
-        
-        @keyparam forceUpload flag indicating a forced upload of the files
-            (boolean)
-        """
-        if self.__handler is not None:
-            self.__handler.syncError.disconnect(self.__syncError)
-            self.__handler.syncFinished.disconnect(self.__syncFinished)
-            self.__handler.syncStatus.disconnect(self.__syncStatus)
-            self.__handler.syncMessage.disconnect(self.syncMessage)
-            self.__handler.shutdown()
-        
-        if self.syncEnabled():
-            from . import SyncGlobals
-            if Preferences.getHelp("SyncType") == SyncGlobals.SyncTypeFtp:
-                from .FtpSyncHandler import FtpSyncHandler
-                self.__handler = FtpSyncHandler(self)
-            elif Preferences.getHelp("SyncType") == \
-                    SyncGlobals.SyncTypeDirectory:
-                from .DirectorySyncHandler import DirectorySyncHandler
-                self.__handler = DirectorySyncHandler(self)
-            self.__handler.syncError.connect(self.__syncError)
-            self.__handler.syncFinished.connect(self.__syncFinished)
-            self.__handler.syncStatus.connect(self.__syncStatus)
-            self.__handler.syncMessage.connect(self.syncMessage)
-            
-            self.__handler.initialLoadAndCheck(forceUpload=forceUpload)
-            
-            # connect sync manager to bookmarks manager
-            if Preferences.getHelp("SyncBookmarks"):
-                Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
-                    .bookmarksSaved.connect(self.__syncBookmarks)
-            else:
-                try:
-                    Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
-                        .bookmarksSaved.disconnect(self.__syncBookmarks)
-                except TypeError:
-                    pass
-            
-            # connect sync manager to history manager
-            if Preferences.getHelp("SyncHistory"):
-                Helpviewer.HelpWindow.HelpWindow.historyManager().historySaved\
-                    .connect(self.__syncHistory)
-            else:
-                try:
-                    Helpviewer.HelpWindow.HelpWindow.historyManager()\
-                        .historySaved.disconnect(self.__syncHistory)
-                except TypeError:
-                    pass
-            
-            # connect sync manager to passwords manager
-            if Preferences.getHelp("SyncPasswords"):
-                Helpviewer.HelpWindow.HelpWindow.passwordManager()\
-                    .passwordsSaved.connect(self.__syncPasswords)
-            else:
-                try:
-                    Helpviewer.HelpWindow.HelpWindow.passwordManager()\
-                        .passwordsSaved.disconnect(self.__syncPasswords)
-                except TypeError:
-                    pass
-            
-            # connect sync manager to user agent manager
-            if Preferences.getHelp("SyncUserAgents"):
-                Helpviewer.HelpWindow.HelpWindow.userAgentsManager()\
-                    .userAgentSettingsSaved.connect(self.__syncUserAgents)
-            else:
-                try:
-                    Helpviewer.HelpWindow.HelpWindow.userAgentsManager()\
-                        .userAgentSettingsSaved.disconnect(
-                            self.__syncUserAgents)
-                except TypeError:
-                    pass
-            
-            # connect sync manager to speed dial
-            if Preferences.getHelp("SyncSpeedDial"):
-                Helpviewer.HelpWindow.HelpWindow.speedDial()\
-                    .speedDialSaved.connect(self.__syncSpeedDial)
-            else:
-                try:
-                    Helpviewer.HelpWindow.HelpWindow.speedDial()\
-                        .speedDialSaved.disconnect(self.__syncSpeedDial)
-                except TypeError:
-                    pass
-        else:
-            self.__handler = None
-            
-            try:
-                Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
-                    .bookmarksSaved.disconnect(self.__syncBookmarks)
-            except TypeError:
-                pass
-            try:
-                Helpviewer.HelpWindow.HelpWindow.historyManager().historySaved\
-                    .disconnect(self.__syncHistory)
-            except TypeError:
-                pass
-            try:
-                Helpviewer.HelpWindow.HelpWindow.passwordManager()\
-                    .passwordsSaved.disconnect(self.__syncPasswords)
-            except TypeError:
-                pass
-            try:
-                Helpviewer.HelpWindow.HelpWindow.userAgentsManager()\
-                    .userAgentSettingsSaved.disconnect(self.__syncUserAgents)
-            except TypeError:
-                pass
-            try:
-                Helpviewer.HelpWindow.HelpWindow.speedDial()\
-                    .speedDialSaved.disconnect(self.__syncSpeedDial)
-            except TypeError:
-                pass
-    
-    def syncEnabled(self):
-        """
-        Public method to check, if synchronization is enabled.
-        
-        @return flag indicating enabled synchronization
-        """
-        from . import SyncGlobals
-        return Preferences.getHelp("SyncEnabled") and \
-            Preferences.getHelp("SyncType") != SyncGlobals.SyncTypeNone
-    
-    def __syncBookmarks(self):
-        """
-        Private slot to synchronize the bookmarks.
-        """
-        if self.__handler is not None:
-            self.__handler.syncBookmarks()
-    
-    def __syncHistory(self):
-        """
-        Private slot to synchronize the history.
-        """
-        if self.__handler is not None:
-            self.__handler.syncHistory()
-    
-    def __syncPasswords(self):
-        """
-        Private slot to synchronize the passwords.
-        """
-        if self.__handler is not None:
-            self.__handler.syncPasswords()
-    
-    def __syncUserAgents(self):
-        """
-        Private slot to synchronize the user agent settings.
-        """
-        if self.__handler is not None:
-            self.__handler.syncUserAgents()
-    
-    def __syncSpeedDial(self):
-        """
-        Private slot to synchronize the speed dial settings.
-        """
-        if self.__handler is not None:
-            self.__handler.syncSpeedDial()
-    
-    def __syncError(self, message):
-        """
-        Private slot to handle general synchronization issues.
-        
-        @param message error message (string)
-        """
-        self.syncError.emit(message)
-    
-    def __syncFinished(self, type_, status, download):
-        """
-        Private slot to handle a finished synchronization event.
-        
-        @param type_ type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-        @param status flag indicating success (boolean)
-        @param download flag indicating a download of a file (boolean)
-        """
-        if status and download:
-            if type_ == "bookmarks":
-                Helpviewer.HelpWindow.HelpWindow.bookmarksManager().reload()
-            elif type_ == "history":
-                Helpviewer.HelpWindow.HelpWindow.historyManager().reload()
-            elif type_ == "passwords":
-                Helpviewer.HelpWindow.HelpWindow.passwordManager().reload()
-            elif type_ == "useragents":
-                Helpviewer.HelpWindow.HelpWindow.userAgentsManager().reload()
-            elif type_ == "speeddial":
-                Helpviewer.HelpWindow.HelpWindow.speedDial().reload()
-        self.syncFinished.emit(type_, status, download)
-    
-    def __syncStatus(self, type_, message):
-        """
-        Private slot to handle a status update of a synchronization event.
-        
-        @param type_ type of the synchronization event (string one
-            of "bookmarks", "history", "passwords", "useragents" or
-            "speeddial")
-        @param message status message for the event (string)
-        """
-        self.syncMessage.emit(message)
-        self.syncStatus.emit(type_, message)
-    
-    def close(self):
-        """
-        Public slot to shut down the synchronization manager.
-        """
-        if not self.syncEnabled():
-            return
-        
-        if self.__handler is not None:
-            self.__handler.shutdown()
--- a/eric6/Helpviewer/Sync/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing capabilities to sync some configuration data.
-"""
--- a/eric6/Helpviewer/UrlBar/BookmarkActionSelectionDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to select the action to be performed on the
-bookmark.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot
-from PyQt5.QtWidgets import QDialog
-
-from .Ui_BookmarkActionSelectionDialog import Ui_BookmarkActionSelectionDialog
-
-import UI.PixmapCache
-
-
-class BookmarkActionSelectionDialog(QDialog, Ui_BookmarkActionSelectionDialog):
-    """
-    Class implementing a dialog to select the action to be performed on
-    the bookmark.
-    """
-    Undefined = -1
-    AddBookmark = 0
-    EditBookmark = 1
-    AddSpeeddial = 2
-    RemoveSpeeddial = 3
-    
-    def __init__(self, url, parent=None):
-        """
-        Constructor
-        
-        @param url URL to be worked on (QUrl)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(BookmarkActionSelectionDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.__action = self.Undefined
-        
-        self.icon.setPixmap(UI.PixmapCache.getPixmap("bookmark32.png"))
-        
-        import Helpviewer.HelpWindow
-        
-        if Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
-           .bookmarkForUrl(url) is None:
-            self.__bmAction = self.AddBookmark
-            self.bookmarkPushButton.setText(self.tr("Add Bookmark"))
-        else:
-            self.__bmAction = self.EditBookmark
-            self.bookmarkPushButton.setText(self.tr("Edit Bookmark"))
-        
-        if Helpviewer.HelpWindow.HelpWindow.speedDial().pageForUrl(url).url:
-            self.__sdAction = self.RemoveSpeeddial
-            self.speeddialPushButton.setText(
-                self.tr("Remove from Speed Dial"))
-        else:
-            self.__sdAction = self.AddSpeeddial
-            self.speeddialPushButton.setText(self.tr("Add to Speed Dial"))
-        
-        msh = self.minimumSizeHint()
-        self.resize(max(self.width(), msh.width()), msh.height())
-    
-    @pyqtSlot()
-    def on_bookmarkPushButton_clicked(self):
-        """
-        Private slot handling selection of a bookmark action.
-        """
-        self.__action = self.__bmAction
-        self.accept()
-    
-    @pyqtSlot()
-    def on_speeddialPushButton_clicked(self):
-        """
-        Private slot handling selection of a speed dial action.
-        """
-        self.__action = self.__sdAction
-        self.accept()
-    
-    def getAction(self):
-        """
-        Public method to get the selected action.
-        
-        @return reference to the associated action
-        """
-        return self.__action
--- a/eric6/Helpviewer/UrlBar/BookmarkActionSelectionDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>BookmarkActionSelectionDialog</class>
- <widget class="QDialog" name="BookmarkActionSelectionDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>291</width>
-    <height>153</height>
-   </rect>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QLabel" name="icon">
-     <property name="alignment">
-      <set>Qt::AlignCenter</set>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_2">
-     <property name="text">
-      <string>&lt;b&gt;Add/Edit Bookmark&lt;/b&gt;</string>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignCenter</set>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QPushButton" name="bookmarkPushButton"/>
-   </item>
-   <item>
-    <widget class="QPushButton" name="speeddialPushButton"/>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Helpviewer/UrlBar/BookmarkInfoDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to show some bookmark info.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot
-from PyQt5.QtGui import QFont
-from PyQt5.QtWidgets import QDialog
-
-from .Ui_BookmarkInfoDialog import Ui_BookmarkInfoDialog
-
-import UI.PixmapCache
-
-
-class BookmarkInfoDialog(QDialog, Ui_BookmarkInfoDialog):
-    """
-    Class implementing a dialog to show some bookmark info.
-    """
-    def __init__(self, bookmark, parent=None):
-        """
-        Constructor
-        
-        @param bookmark reference to the bookmark to be shown (Bookmark)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(BookmarkInfoDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.__bookmark = bookmark
-        
-        self.icon.setPixmap(UI.PixmapCache.getPixmap("bookmark32.png"))
-        
-        font = QFont()
-        font.setPointSize(font.pointSize() + 2)
-        self.title.setFont(font)
-        
-        if bookmark is None:
-            self.titleEdit.setEnabled(False)
-        else:
-            self.titleEdit.setText(bookmark.title)
-            self.titleEdit.setFocus()
-        
-        msh = self.minimumSizeHint()
-        self.resize(max(self.width(), msh.width()), msh.height())
-    
-    @pyqtSlot()
-    def on_removeButton_clicked(self):
-        """
-        Private slot to remove the current bookmark.
-        """
-        import Helpviewer.HelpWindow
-        Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
-            .removeBookmark(self.__bookmark)
-        self.close()
-    
-    def accept(self):
-        """
-        Public slot handling the acceptance of the dialog.
-        """
-        if self.__bookmark is not None and \
-           self.titleEdit.text() != self.__bookmark.title:
-            import Helpviewer.HelpWindow
-            Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
-                .setTitle(self.__bookmark, self.titleEdit.text())
-        self.close()
--- a/eric6/Helpviewer/UrlBar/BookmarkInfoDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>BookmarkInfoDialog</class>
- <widget class="QDialog" name="BookmarkInfoDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>350</width>
-    <height>135</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Edit Bookmark</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="1">
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <property name="spacing">
-      <number>10</number>
-     </property>
-     <item>
-      <widget class="QLabel" name="icon">
-       <property name="text">
-        <string/>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <layout class="QVBoxLayout" name="verticalLayout">
-       <item>
-        <widget class="QLabel" name="title">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="text">
-          <string>Edit this Bookmark</string>
-         </property>
-         <property name="alignment">
-          <set>Qt::AlignCenter</set>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QPushButton" name="removeButton">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="toolTip">
-          <string>Press to remove this bookmark</string>
-         </property>
-         <property name="text">
-          <string>Remove this Bookmark</string>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-    </layout>
-   </item>
-   <item row="1" column="0">
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>Title:</string>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="1">
-    <widget class="QLineEdit" name="titleEdit"/>
-   </item>
-   <item row="2" column="0" colspan="2">
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>removeButton</tabstop>
-  <tabstop>titleEdit</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>BookmarkInfoDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>227</x>
-     <y>114</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>134</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>BookmarkInfoDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>295</x>
-     <y>120</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>134</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/UrlBar/FavIconLabel.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the label to show the web site icon.
-"""
-
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
-from PyQt5.QtCore import Qt, QPoint, QUrl, QMimeData
-from PyQt5.QtGui import QDrag, QPixmap
-from PyQt5.QtWidgets import QLabel, QApplication
-
-
-class FavIconLabel(QLabel):
-    """
-    Class implementing the label to show the web site icon.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(FavIconLabel, self).__init__(parent)
-        
-        self.__browser = None
-        self.__dragStartPos = QPoint()
-        
-        self.setFocusPolicy(Qt.NoFocus)
-        self.setCursor(Qt.ArrowCursor)
-        self.setMinimumSize(16, 16)
-        self.resize(16, 16)
-        
-        self.__browserIconChanged()
-    
-    def __browserIconChanged(self):
-        """
-        Private slot to set the icon.
-        """
-        import Helpviewer.HelpWindow
-        try:
-            url = QUrl()
-            if self.__browser:
-                url = self.__browser.url()
-            self.setPixmap(
-                Helpviewer.HelpWindow.HelpWindow.icon(url).pixmap(16, 16))
-        except RuntimeError:
-            pass
-    
-    def __clearIcon(self):
-        """
-        Private slot to clear the icon.
-        """
-        self.setPixmap(QPixmap())
-    
-    def setBrowser(self, browser):
-        """
-        Public method to set the browser connection.
-        
-        @param browser reference to the browser widegt (HelpBrowser)
-        """
-        self.__browser = browser
-        self.__browser.loadFinished.connect(self.__browserIconChanged)
-        self.__browser.iconChanged.connect(self.__browserIconChanged)
-        self.__browser.loadStarted.connect(self.__clearIcon)
-    
-    def mousePressEvent(self, evt):
-        """
-        Protected method to handle mouse press events.
-        
-        @param evt reference to the mouse event (QMouseEvent)
-        """
-        if evt.button() == Qt.LeftButton:
-            self.__dragStartPos = evt.pos()
-        super(FavIconLabel, self).mousePressEvent(evt)
-    
-    def mouseMoveEvent(self, evt):
-        """
-        Protected method to handle mouse move events.
-        
-        @param evt reference to the mouse event (QMouseEvent)
-        """
-        if evt.button() == Qt.LeftButton and \
-           (evt.pos() - self.__dragStartPos).manhattanLength() > \
-                QApplication.startDragDistance() and \
-           self.__browser is not None:
-            drag = QDrag(self)
-            mimeData = QMimeData()
-            title = self.__browser.title()
-            if title == "":
-                title = str(self.__browser.url().toEncoded(), encoding="utf-8")
-            mimeData.setText(title)
-            mimeData.setUrls([self.__browser.url()])
-            p = self.pixmap()
-            if p:
-                drag.setPixmap(p)
-            drag.setMimeData(mimeData)
-            drag.exec_()
--- a/eric6/Helpviewer/UrlBar/SslLabel.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the label to show some SSL info.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt, pyqtSignal, QPoint
-from PyQt5.QtWidgets import QLabel
-
-
-class SslLabel(QLabel):
-    """
-    Class implementing the label to show some SSL info.
-    
-    @signal clicked(pos) emitted to indicate a click of the label (QPoint)
-    """
-    clicked = pyqtSignal(QPoint)
-    
-    okStyle = "QLabel { color : white; background-color : green; }"
-    nokStyle = "QLabel { color : white; background-color : red; }"
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(SslLabel, self).__init__(parent)
-        
-        self.setFocusPolicy(Qt.NoFocus)
-        self.setCursor(Qt.ArrowCursor)
-    
-    def mouseReleaseEvent(self, evt):
-        """
-        Protected method to handle mouse release events.
-        
-        @param evt reference to the mouse event (QMouseEvent)
-        """
-        if evt.button() == Qt.LeftButton:
-            self.clicked.emit(evt.globalPos())
-        else:
-            super(SslLabel, self).mouseReleaseEvent(evt)
-    
-    def mouseDoubleClickEvent(self, evt):
-        """
-        Protected method to handle mouse double click events.
-        
-        @param evt reference to the mouse event (QMouseEvent)
-        """
-        if evt.button() == Qt.LeftButton:
-            self.clicked.emit(evt.globalPos())
-        else:
-            super(SslLabel, self).mouseDoubleClickEvent(evt)
-    
-    def setValidity(self, valid):
-        """
-        Public method to set the validity indication.
-        
-        @param valid flag indicating the certificate validity (boolean)
-        """
-        if valid:
-            self.setStyleSheet(SslLabel.okStyle)
-        else:
-            self.setStyleSheet(SslLabel.nokStyle)
--- a/eric6/Helpviewer/UrlBar/StackedUrlBar.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a widget to stack url bars.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QStackedWidget, QSizePolicy
-
-
-class StackedUrlBar(QStackedWidget):
-    """
-    Class implementing a widget to stack url bars.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(StackedUrlBar, self).__init__(parent)
-        
-        sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)
-        sizePolicy.setHorizontalStretch(6)
-        sizePolicy.setVerticalStretch(0)
-        self.setSizePolicy(sizePolicy)
-        self.setMinimumSize(200, 22)
-    
-    def currentUrlBar(self):
-        """
-        Public method to get a reference to the current url bar.
-        
-        @return reference to the current url bar (UrlBar)
-        """
-        return self.urlBar(self.currentIndex())
-    
-    def urlBar(self, index):
-        """
-        Public method to get a reference to the url bar for a given index.
-        
-        @param index index of the url bar (integer)
-        @return reference to the url bar for the given index (UrlBar)
-        """
-        return self.widget(index)
-    
-    def moveBar(self, from_, to_):
-        """
-        Public slot to move a url bar.
-        
-        @param from_ index of url bar to be moved (integer)
-        @param to_ into to move the url bar to (integer)
-        """
-        fromBar = self.widget(from_)
-        self.removeWidget(fromBar)
-        self.insertWidget(to_, fromBar)
-    
-    def urlBars(self):
-        """
-        Public method to get a list of references to all url bars.
-        
-        @return list of references to url bars (list of UrlBar)
-        """
-        li = []
-        for index in range(self.count()):
-            li.append(self.widget(index))
-        return li
--- a/eric6/Helpviewer/UrlBar/UrlBar.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,461 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the URL bar widget.
-"""
-
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
-from PyQt5.QtCore import pyqtSlot, Qt, QPointF, QUrl, QDateTime
-from PyQt5.QtGui import QColor, QPalette, QLinearGradient, QIcon
-from PyQt5.QtWidgets import QDialog, QApplication
-try:
-    from PyQt5.QtNetwork import QSslCertificate     # __IGNORE_EXCEPTION__
-except ImportError:
-    QSslCertificate = None      # __IGNORE_WARNING__
-from PyQt5.QtWebKit import QWebSettings
-from PyQt5.QtWebKitWidgets import QWebPage
-
-from E5Gui.E5LineEdit import E5LineEdit
-from E5Gui.E5LineEditButton import E5LineEditButton
-
-import Helpviewer.HelpWindow
-
-from .FavIconLabel import FavIconLabel
-from .SslLabel import SslLabel
-
-import UI.PixmapCache
-import Preferences
-import Utilities
-from Globals import qVersionTuple
-
-
-class UrlBar(E5LineEdit):
-    """
-    Class implementing a line edit for entering URLs.
-    """
-    def __init__(self, mainWindow, parent=None):
-        """
-        Constructor
-        
-        @param mainWindow reference to the main window (HelpWindow)
-        @param parent reference to the parent widget (HelpBrowser)
-        """
-        E5LineEdit.__init__(self, parent)
-        self.setInactiveText(self.tr("Enter the URL here."))
-        self.setWhatsThis(self.tr("Enter the URL here."))
-        
-        self.__mw = mainWindow
-        self.__browser = None
-        self.__privateMode = QWebSettings.globalSettings().testAttribute(
-            QWebSettings.PrivateBrowsingEnabled)
-        
-        self.__bmActiveIcon = UI.PixmapCache.getIcon("bookmark16.png")
-        self.__bmInactiveIcon = QIcon(
-            self.__bmActiveIcon.pixmap(16, 16, QIcon.Disabled))
-        
-        self.__favicon = FavIconLabel(self)
-        self.addWidget(self.__favicon, E5LineEdit.LeftSide)
-        
-        self.__sslLabel = SslLabel(self)
-        self.addWidget(self.__sslLabel, E5LineEdit.LeftSide)
-        self.__sslLabel.setVisible(False)
-        
-        self.__privacyButton = E5LineEditButton(self)
-        self.__privacyButton.setIcon(
-            UI.PixmapCache.getIcon("privateBrowsing.png"))
-        self.addWidget(self.__privacyButton, E5LineEdit.RightSide)
-        self.__privacyButton.setVisible(self.__privateMode)
-        
-        self.__rssButton = E5LineEditButton(self)
-        self.__rssButton.setIcon(UI.PixmapCache.getIcon("rss16.png"))
-        self.addWidget(self.__rssButton, E5LineEdit.RightSide)
-        self.__rssButton.setVisible(False)
-        
-        self.__bookmarkButton = E5LineEditButton(self)
-        self.addWidget(self.__bookmarkButton, E5LineEdit.RightSide)
-        self.__bookmarkButton.setVisible(False)
-        
-        self.__clearButton = E5LineEditButton(self)
-        self.__clearButton.setIcon(UI.PixmapCache.getIcon("clearLeft.png"))
-        self.addWidget(self.__clearButton, E5LineEdit.RightSide)
-        self.__clearButton.setVisible(False)
-        
-        self.__bookmarkButton.clicked.connect(self.__showBookmarkInfo)
-        self.__privacyButton.clicked.connect(self.__privacyClicked)
-        self.__rssButton.clicked.connect(self.__rssClicked)
-        self.__clearButton.clicked.connect(self.clear)
-        self.__mw.privacyChanged.connect(self.__privacyButton.setVisible)
-        self.textChanged.connect(self.__textChanged)
-        
-        Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
-            .entryChanged.connect(self.__bookmarkChanged)
-        Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
-            .entryAdded.connect(self.__bookmarkChanged)
-        Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
-            .entryRemoved.connect(self.__bookmarkChanged)
-        Helpviewer.HelpWindow.HelpWindow.speedDial().pagesChanged.connect(
-            self.__bookmarkChanged)
-    
-    def setBrowser(self, browser):
-        """
-        Public method to set the browser connection.
-        
-        @param browser reference to the browser widegt (HelpBrowser)
-        """
-        self.__browser = browser
-        self.__favicon.setBrowser(browser)
-        
-        self.__browser.urlChanged.connect(self.__browserUrlChanged)
-        self.__browser.loadProgress.connect(self.update)
-        self.__browser.loadFinished.connect(self.__loadFinished)
-        self.__browser.loadStarted.connect(self.__loadStarted)
-        
-        self.__sslLabel.clicked.connect(self.__browser.page().showSslInfo)
-    
-    def browser(self):
-        """
-        Public method to get the associated browser.
-       
-        @return reference to the associated browser (HelpBrowser)
-        """
-        return self.__browser
-    
-    def __browserUrlChanged(self, url):
-        """
-        Private slot to handle a URL change of the associated browser.
-        
-        @param url new URL of the browser (QUrl)
-        """
-        strUrl = url.toString()
-        if strUrl in ["eric:speeddial", "eric:home", "about:blank"]:
-            strUrl = ""
-        
-        if self.text() != strUrl:
-            self.setText(strUrl)
-        self.setCursorPosition(0)
-    
-    def __loadStarted(self):
-        """
-        Private slot to perform actions before the page is loaded.
-        """
-        self.__sslLabel.setVisible(False)
-        self.__bookmarkButton.setVisible(False)
-    
-    def __checkBookmark(self):
-        """
-        Private slot to check the current URL for the bookmarked state.
-        """
-        manager = Helpviewer.HelpWindow.HelpWindow.bookmarksManager()
-        if manager.bookmarkForUrl(self.__browser.url()) is not None:
-            self.__bookmarkButton.setIcon(self.__bmActiveIcon)
-            bookmarks = manager.bookmarksForUrl(self.__browser.url())
-            from Helpviewer.Bookmarks.BookmarkNode import BookmarkNode
-            for bookmark in bookmarks:
-                manager.setTimestamp(bookmark, BookmarkNode.TsVisited,
-                                     QDateTime.currentDateTime())
-        elif Helpviewer.HelpWindow.HelpWindow.speedDial()\
-                .pageForUrl(self.__browser.url()).url != "":
-            self.__bookmarkButton.setIcon(self.__bmActiveIcon)
-        else:
-            self.__bookmarkButton.setIcon(self.__bmInactiveIcon)
-    
-    def __loadFinished(self, ok):
-        """
-        Private slot to set some data after the page was loaded.
-        
-        @param ok flag indicating a successful load (boolean)
-        """
-        try:
-            if self.__browser.url().scheme() in ["eric", "about"]:
-                self.__bookmarkButton.setVisible(False)
-            else:
-                self.__checkBookmark()
-                self.__bookmarkButton.setVisible(True)
-            
-            if ok:
-                self.__rssButton.setVisible(self.__browser.checkRSS())
-            
-            if ok and \
-               self.__browser.url().scheme() == "https" and \
-               QSslCertificate is not None:
-                sslInfo = self.__browser.page().getSslCertificate()
-                if sslInfo is not None:
-                    if qVersionTuple() >= (5, 0, 0):
-                        org = Utilities.decodeString(", ".join(
-                            sslInfo.subjectInfo(QSslCertificate.Organization)))
-                    else:
-                        org = Utilities.decodeString(
-                            sslInfo.subjectInfo(QSslCertificate.Organization))
-                    if org == "":
-                        if qVersionTuple() >= (5, 0, 0):
-                            cn = Utilities.decodeString(", ".join(
-                                sslInfo.subjectInfo(
-                                    QSslCertificate.CommonName)))
-                        else:
-                            cn = Utilities.decodeString(
-                                sslInfo.subjectInfo(
-                                    QSslCertificate.CommonName))
-                        if cn != "":
-                            org = cn.split(".", 1)[1]
-                        if org == "":
-                            org = self.tr("Unknown")
-                    self.__sslLabel.setText(" {0} ".format(org))
-                    self.__sslLabel.setVisible(True)
-                    if qVersionTuple() >= (5, 0, 0):
-                        valid = not sslInfo.isBlacklisted()
-                    else:
-                        valid = sslInfo.isValid()
-                    if valid:
-                        config = self.__browser.page().getSslConfiguration()
-                        if config is None or config.sessionCipher().isNull():
-                            valid = False
-                    self.__sslLabel.setValidity(valid)
-                    return
-            
-            self.__sslLabel.setVisible(False)
-        except RuntimeError:
-            pass
-    
-    def setPrivateMode(self, on):
-        """
-        Public method to set the private mode.
-        
-        @param on flag indicating the privacy state (boolean)
-        """
-        self.__privateMode = on
-        self.__privacyButton.setVisible(on)
-    
-    def __privacyClicked(self):
-        """
-        Private slot to handle the click of the private mode button.
-        """
-        self.__mw.setPrivateMode(False)
-    
-    def __textChanged(self, txt):
-        """
-        Private slot to handle changes of the text.
-        
-        @param txt current text (string)
-        """
-        self.__clearButton.setVisible(txt != "")
-    
-    def preferencesChanged(self):
-        """
-        Public slot to handle a change of preferences.
-        """
-        self.update()
-    
-    def __showBookmarkInfo(self):
-        """
-        Private slot to show a dialog with some bookmark info.
-        """
-        from .BookmarkActionSelectionDialog import \
-            BookmarkActionSelectionDialog
-        url = self.__browser.url()
-        dlg = BookmarkActionSelectionDialog(url)
-        if dlg.exec_() == QDialog.Accepted:
-            action = dlg.getAction()
-            if action == BookmarkActionSelectionDialog.AddBookmark:
-                self.__browser.addBookmark()
-            elif action == BookmarkActionSelectionDialog.EditBookmark:
-                bookmark = Helpviewer.HelpWindow.HelpWindow.bookmarksManager()\
-                    .bookmarkForUrl(url)
-                from .BookmarkInfoDialog import BookmarkInfoDialog
-                dlg = BookmarkInfoDialog(bookmark, self.__browser)
-                dlg.exec_()
-            elif action == BookmarkActionSelectionDialog.AddSpeeddial:
-                Helpviewer.HelpWindow.HelpWindow.speedDial().addPage(
-                    url, self.__browser.title())
-            elif action == BookmarkActionSelectionDialog.RemoveSpeeddial:
-                Helpviewer.HelpWindow.HelpWindow.speedDial().removePage(url)
-    
-    @pyqtSlot()
-    def __bookmarkChanged(self):
-        """
-        Private slot to handle bookmark or speed dial changes.
-        """
-        self.__checkBookmark()
-    
-    def paintEvent(self, evt):
-        """
-        Protected method handling a paint event.
-        
-        @param evt reference to the paint event (QPaintEvent)
-        """
-        if self.__privateMode:
-            backgroundColor = QColor(220, 220, 220)     # light gray
-            foregroundColor = Qt.black
-        else:
-            backgroundColor = QApplication.palette().color(QPalette.Base)
-            foregroundColor = QApplication.palette().color(QPalette.Text)
-        
-        if self.__browser is not None:
-            p = self.palette()
-            progress = self.__browser.progress()
-            if progress == 0 or progress == 100:
-                if self.__browser.url().scheme() == "https":
-                    if QSslCertificate is not None:
-                        if self.__browser.page().hasValidSslInfo():
-                            backgroundColor = Preferences.getHelp(
-                                "SaveUrlColor")
-                    else:
-                        backgroundColor = Preferences.getHelp("SaveUrlColor")
-                p.setBrush(QPalette.Base, backgroundColor)
-                p.setBrush(QPalette.Text, foregroundColor)
-            else:
-                if self.__browser.url().scheme() == "https":
-                    if QSslCertificate is not None:
-                        if self.__browser.page().hasValidSslInfo():
-                            backgroundColor = Preferences.getHelp(
-                                "SaveUrlColor")
-                    else:
-                        backgroundColor = Preferences.getHelp("SaveUrlColor")
-                highlight = QApplication.palette().color(QPalette.Highlight)
-                r = (highlight.red() + 2 * backgroundColor.red()) // 3
-                g = (highlight.green() + 2 * backgroundColor.green()) // 3
-                b = (highlight.blue() + 2 * backgroundColor.blue()) // 3
-                
-                loadingColor = QColor(r, g, b)
-                if abs(loadingColor.lightness() -
-                        backgroundColor.lightness()) < 20:
-                    # special handling for special color schemes (e.g Gaia)
-                    r = (2 * highlight.red() + backgroundColor.red()) // 3
-                    g = (2 * highlight.green() + backgroundColor.green()) // 3
-                    b = (2 * highlight.blue() + backgroundColor.blue()) // 3
-                    loadingColor = QColor(r, g, b)
-                
-                gradient = QLinearGradient(
-                    QPointF(0, 0), QPointF(self.width(), 0))
-                gradient.setColorAt(0, loadingColor)
-                gradient.setColorAt(progress / 100.0 - 0.000001, loadingColor)
-                gradient.setColorAt(progress / 100.0, backgroundColor)
-                p.setBrush(QPalette.Base, gradient)
-            
-            self.setPalette(p)
-        
-        E5LineEdit.paintEvent(self, evt)
-    
-    def focusOutEvent(self, evt):
-        """
-        Protected method to handle focus out event.
-        
-        @param evt reference to the focus event (QFocusEvent)
-        """
-        if self.text() == "" and self.__browser is not None:
-            self.__browserUrlChanged(self.__browser.url())
-        E5LineEdit.focusOutEvent(self, evt)
-    
-    def mousePressEvent(self, evt):
-        """
-        Protected method called by a mouse press event.
-        
-        @param evt reference to the mouse event (QMouseEvent)
-        """
-        if evt.button() == Qt.XButton1:
-            self.__mw.currentBrowser().pageAction(QWebPage.Back).trigger()
-        elif evt.button() == Qt.XButton2:
-            self.__mw.currentBrowser().pageAction(QWebPage.Forward).trigger()
-        else:
-            super(UrlBar, self).mousePressEvent(evt)
-    
-    def mouseDoubleClickEvent(self, evt):
-        """
-        Protected method to handle mouse double click events.
-        
-        @param evt reference to the mouse event (QMouseEvent)
-        """
-        if evt.button() == Qt.LeftButton:
-            self.selectAll()
-        else:
-            E5LineEdit.mouseDoubleClickEvent(self, evt)
-    
-    def keyPressEvent(self, evt):
-        """
-        Protected method to handle key presses.
-        
-        @param evt reference to the key press event (QKeyEvent)
-        """
-        if evt.key() == Qt.Key_Escape:
-            if self.__browser is not None:
-                self.setText(
-                    str(self.__browser.url().toEncoded(), encoding="utf-8"))
-                self.selectAll()
-            completer = self.completer()
-            if completer:
-                completer.popup().hide()
-            return
-        
-        currentText = self.text().strip()
-        if evt.key() in [Qt.Key_Enter, Qt.Key_Return] and \
-           not currentText.lower().startswith("http://"):
-            append = ""
-            if evt.modifiers() == Qt.KeyboardModifiers(Qt.ControlModifier):
-                append = ".com"
-            elif evt.modifiers() == Qt.KeyboardModifiers(
-                    Qt.ControlModifier | Qt.ShiftModifier):
-                append = ".org"
-            elif evt.modifiers() == Qt.KeyboardModifiers(Qt.ShiftModifier):
-                append = ".net"
-            
-            if append != "":
-                url = QUrl("http://www." + currentText)
-                host = url.host()
-                if not host.lower().endswith(append):
-                    host += append
-                    url.setHost(host)
-                    self.setText(url.toString())
-        
-        E5LineEdit.keyPressEvent(self, evt)
-    
-    def dragEnterEvent(self, evt):
-        """
-        Protected method to handle drag enter events.
-        
-        @param evt reference to the drag enter event (QDragEnterEvent)
-        """
-        mimeData = evt.mimeData()
-        if mimeData.hasUrls() or mimeData.hasText():
-            evt.acceptProposedAction()
-        
-        E5LineEdit.dragEnterEvent(self, evt)
-    
-    def dropEvent(self, evt):
-        """
-        Protected method to handle drop events.
-        
-        @param evt reference to the drop event (QDropEvent)
-        """
-        mimeData = evt.mimeData()
-        
-        url = QUrl()
-        if mimeData.hasUrls():
-            url = mimeData.urls()[0]
-        elif mimeData.hasText():
-            url = QUrl.fromEncoded(mimeData.text().encode("utf-8"),
-                                   QUrl.TolerantMode)
-        
-        if url.isEmpty() or not url.isValid():
-            E5LineEdit.dropEvent(self, evt)
-            return
-        
-        self.setText(str(url.toEncoded(), encoding="utf-8"))
-        self.selectAll()
-        
-        evt.acceptProposedAction()
-    
-    def __rssClicked(self):
-        """
-        Private slot to handle clicking the RSS icon.
-        """
-        from Helpviewer.Feeds.FeedsDialog import FeedsDialog
-        feeds = self.__browser.getRSS()
-        dlg = FeedsDialog(feeds, self.__browser)
-        dlg.exec_()
--- a/eric6/Helpviewer/UrlBar/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the URL bar widget.
-"""
--- a/eric6/Helpviewer/UserAgent/UserAgentDefaults.qrc	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<!DOCTYPE RCC>
-<RCC version="1.0">
-<qresource>
-  <file>UserAgentDefaults.xml</file>
-</qresource>
-</RCC>
--- a/eric6/Helpviewer/UserAgent/UserAgentDefaults.xml	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-<useragentswitcher>
-    <useragentmenu title="Firefox">
-        <useragent description="Firefox 9.0.1 (Windows)" useragent="Mozilla/5.0 (Windows; U; Windows NT 6.2; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"/>
-        <useragent description="Firefox 4.0.1 (Windows)" useragent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"/>
-        <useragent description="Firefox 3.5.3 (Windows)" useragent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3"/>
-    </useragentmenu>
-
-    <useragentmenu title="Chrome">
-        <useragent description="Chrome 18.0 (Windows)" useragent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.12 (KHTML, like Gecko) Chrome/18.6.872.0 Safari/535.12"/>
-        <useragent description="Chrome 17.0 (Windows)" useragent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/535.11"/>
-        <useragent description="Chrome 12.0 (Windows)" useragent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.0 Safari/534.30"/>
-        <useragent description="Chrome 11.0 (Windows)" useragent="Mozilla/5.0 (Windows NT 6.1) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.50 Safari/534.24"/>
-    </useragentmenu>
-
-    <useragentmenu title="Internet Explorer">
-        <useragent description="Internet Explorer 10.0" useragent="Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1)"/>
-        <useragent description="Internet Explorer 9.0" useragent="Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)"/>
-        <useragent description="Internet Explorer 8.0" useragent="Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)"/>
-        <useragent description="Internet Explorer 7.0" useragent="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"/>
-        <useragent description="Internet Explorer 6.0" useragent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"/>
-    </useragentmenu>
-
-    <useragentmenu title="Opera">
-        <useragent description="Opera 12.0 (Linux)" useragent="Opera/9.80 (X11; Linux x86_64; U) Presto/2.9.181 Version/12.00"/>
-        <useragent description="Opera 12.0 (Mac)" useragent="Opera/9.80 (Macintosh; Intel Mac OS X 10.6.7; U) Presto/2.9.181 Version/12.00"/>
-        <useragent description="Opera 12.0 (Windows)" useragent="Opera/9.80 (Windows NT 6.1; U) Presto/2.9.181 Version/12.00"/>
-        <useragent description="Opera 11.1 (Linux)" useragent="Opera/9.80 (X11; Linux x86_64; U; en) Presto/2.8.131 Version/11.10"/>
-        <useragent description="Opera 11.1 (Mac)" useragent="Opera/9.80 (Macintosh; Intel Mac OS X 10.6.7; U; en) Presto/2.8.131 Version/11.10"/>
-        <useragent description="Opera 11.1 (Windows)" useragent="Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.10"/>
-        <useragent description="Opera 10.0 (Linux)" useragent="Opera/9.80 (X11; Linux x86_64; U; de) Presto/2.2.15 Version/10.00"/>
-        <useragent description="Opera 10.0 (Mac)" useragent="Opera/9.80 (Macintosh; Intel Mac OS X; U; en) Presto/2.2.15 Version/10.00"/>
-        <useragent description="Opera 10.0 (Windows)" useragent="Opera/9.80 (Windows NT 6.0; U; en) Presto/2.2.15 Version/10.00"/>
-    </useragentmenu>
-
-    <useragentmenu title="Safari">
-        <useragent description="Safari 5.0.5 (Mac)" useragent="Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_7_2; en-us) AppleWebKit/535.12 (KHTML, like Gecko) Version/5.0.5 Safari/535.12"/>
-        <useragent description="Safari 5.0.4 (Mac)" useragent="Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27"/>
-        <useragent description="Safari 4.0.4 (Mac)" useragent="Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_1; en-us) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10"/>
-        <separator/>
-        <useragent description="Mobile Safari 4.3.2 (iPad)" useragent="Mozilla/5.0 (iPad; U; CPU OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5"/>
-        <useragent description="Mobile Safari 4.3.2 (iPhone)" useragent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5"/>
-        <useragent description="Mobile Safari 4.3.2 (iPod touch)" useragent="Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5"/>
-        <useragent description="Mobile Safari 3.1.2 (iPhone)" useragent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7D11 Safari/528.16"/>
-        <useragent description="Mobile Safari 3.1.2 (iPod touch)" useragent="Mozilla/5.0 (iPod; U; CPU iPhone OS 3_1_2 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7D11 Safari/528.16"/>
-    </useragentmenu>
-
-    <useragentmenu title="v_a_r_i_o_u_s">
-        <useragent description="Googlebot 2.1" useragent="Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"/>
-        <useragent description="Msnbot 1.1" useragent="msnbot/1.1 (+http://search.msn.com/msnbot.htm)" appcodename="" appname="" appversion="" platform="" vendor="" vendorsub=""/>
-        <useragent description="Yahoo Slurp" useragent="Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" appcodename="" appname="" appversion="" platform="" vendor="" vendorsub=""/>
-    </useragentmenu>
-
-</useragentswitcher>
--- a/eric6/Helpviewer/UserAgent/UserAgentDefaults_rc.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Resource object code
-#
-# Created by: The Resource Compiler for PyQt5 (Qt v5.12.1)
-#
-# WARNING! All changes made in this file will be lost!
-
-from PyQt5 import QtCore
-
-qt_resource_data = b"\
-\x00\x00\x03\xd6\
-\x00\
-\x00\x15\xe1\x78\x9c\xd5\x58\xdb\x6e\xdb\x38\x10\x7d\xef\x57\xcc\
-\xfa\x29\xc6\xee\x52\xa2\xee\xae\xd3\x02\x45\xef\x68\xbd\x0d\xe0\
-\x66\xdb\x3e\x09\xb2\xcd\x44\x42\x65\x51\xa0\xe4\x38\xdd\xaf\xdf\
-\x21\xe5\x8b\x6c\xc7\x0a\x65\xab\x05\x1a\xe4\x41\x24\x67\x74\xce\
-\x99\x19\x72\x28\x5f\x2e\x0a\x26\xa2\x5b\x96\x95\xc5\x32\x29\xa7\
-\x31\x13\xcf\x9f\x00\xfe\x5d\x6e\xe6\xe7\x2c\x5b\x40\x99\x94\x29\
-\x7b\xd6\x7b\x93\x08\x76\xc3\xef\x7b\x95\xcd\xae\x1d\xcc\x58\x31\
-\x15\x49\x5e\x26\x3c\xdb\x58\xc2\x80\x98\x84\xc2\xc5\x97\x24\x9b\
-\xf1\x65\xd1\xef\xc1\xc6\xfe\x59\x6f\xc4\xff\x4b\xd2\x34\x32\x5c\
-\x62\x6e\x2c\x86\x70\x3d\x84\xd5\x33\xfc\xf3\x19\x3c\x62\x0d\x41\
-\xdc\x3d\x55\xef\xe9\xc3\x5b\x36\xfd\xce\x0d\xcb\xa4\x26\xfe\x53\
-\x58\xa1\x18\x6a\xb5\x67\xe8\xd3\x72\xce\xa6\x45\x87\xc0\xb2\xbf\
-\xaf\xc7\x8a\x9d\xd5\xc8\xce\x69\xcb\xce\x26\x2e\xb1\xbb\x63\x47\
-\xc9\x80\x50\x62\x6f\xf9\x99\x03\x33\xb0\x9c\x0d\x3f\x05\xb7\xe6\
-\x77\x69\xec\x64\xfe\xf9\x93\x86\x72\x78\x19\x0b\x3e\x67\x1a\xd5\
-\x50\x19\x02\x0d\x6a\xa4\x1f\x97\xb5\x92\xd2\x87\x17\x79\x9e\xb2\
-\x2f\x6c\xf2\x21\x29\x0d\xd7\x76\x09\xb5\xe0\xe2\xc3\xbb\xcf\xa3\
-\x8f\x7f\x41\x9a\x7c\x67\x95\xae\x3e\x54\x28\x06\xa2\x78\x24\xf0\
-\x31\x27\x30\x8e\x6e\x22\x91\xac\x7c\x74\x32\xb0\x26\xea\x77\x44\
-\x94\x36\x12\x45\x14\x32\xf0\x6c\xa9\xa7\xce\x54\xab\x56\xd6\x4c\
-\xad\x2e\x98\x3a\xc4\x36\x1b\x99\xca\x02\xf7\x9d\x9d\x90\x4a\x9f\
-\x36\x44\x69\x37\x44\xb1\x6e\x9b\x88\x22\x0a\xf1\x06\x1e\x71\x77\
-\x98\x5a\xce\x29\xe5\xfd\x3e\x2b\x99\xc8\x58\x09\xaf\xef\xf3\x94\
-\x0b\x26\x34\x2a\xfd\xc0\x07\xa8\x49\xcc\xe3\x72\xa7\x7c\x9e\x47\
-\x65\x32\x49\xd9\x10\x46\xe3\xf7\xaf\x95\xf9\xfe\x66\xee\xeb\xc4\
-\xf9\x10\x79\x70\x04\xd8\x79\x10\x78\xd0\x19\x6e\xd0\x0a\x37\xe8\
-\x0c\xd7\x6f\x85\xeb\x1f\xe0\x9a\x27\xe2\x7a\xad\x70\xbd\x3d\x5c\
-\xb7\xa6\xb7\x4d\x75\x7e\xca\x71\x52\xa3\x22\x95\xdd\xea\x9c\xf8\
-\x98\x64\x8b\xfb\xdd\xcd\xa7\x96\xb1\x81\x06\xb8\xfc\x95\x62\xdf\
-\x50\x36\x70\x1f\x78\xa1\xe7\x60\x63\xe9\xc3\x95\x60\x45\x89\x6d\
-\x43\x76\x91\x80\xc2\xbf\x4c\x14\xf8\x62\x75\x26\x68\x1d\x00\x75\
-\x02\xa3\x68\x7a\x1c\x1e\x17\x93\xac\xe4\x45\x3c\x04\x19\xe4\x14\
-\x70\x02\x3e\x8d\xe1\xab\xdc\x14\x1e\xf1\x3b\x67\xf3\xe0\x69\x54\
-\x67\xb4\xdf\x53\xbb\xc3\xa7\xf2\xfa\x71\x42\x3a\x64\x5f\xaf\x91\
-\x08\x08\xb5\x6b\x24\xf0\xad\xad\x49\x9c\x9b\x92\xee\x19\xb5\x4f\
-\x4b\xa7\x1c\xcc\x13\x77\xca\x10\xdf\x56\x23\x61\x11\xea\x6e\x39\
-\x98\xed\xca\xc3\x3c\x7d\xb3\x1c\x86\xe3\x7c\x26\xed\x32\x62\xb6\
-\xa1\xd0\xe6\xc8\xab\x3a\xba\xc6\x99\x57\x19\xe2\xd1\x6a\x12\xf7\
-\x81\x38\xee\x74\xe0\x5a\x20\xaf\x1f\xa8\xf2\xd0\x0f\x2d\x75\x99\
-\x5e\x14\xda\x17\xd1\xb5\xd0\x0a\xbf\xf5\x25\xb4\xc6\xde\x39\x97\
-\xbd\x17\xfa\x47\xd8\xdb\xc4\x32\x89\xe5\x3e\x2a\xc0\xd9\x0a\xa8\
-\x5c\xfc\x16\x1a\x9c\x6e\x34\xd0\x23\x1a\x28\xb1\x28\x09\x1a\x25\
-\x38\xbb\x12\x94\xc7\xde\x71\x50\xb0\x3c\x12\x51\xc9\x85\x86\xae\
-\x11\x9f\x24\x29\x83\x8d\x3c\x0c\x09\x5c\x24\x57\xd1\xac\x41\x9f\
-\x5c\x56\xd2\x5e\x5e\x5d\x4b\x51\x4e\x68\x87\x56\x45\x76\xbb\x69\
-\x8f\xe4\x08\xbf\x11\x06\x8f\xa6\xc8\x82\x8a\x96\x11\xbc\xf3\xd7\
-\x52\x3d\xe5\x1d\x10\x57\x27\x5b\x47\x54\xc5\x3c\x63\x8d\xba\xa4\
-\xc1\x46\x59\x35\xfc\xad\x04\xf2\x19\x94\x7c\x31\x8d\x1b\x45\xf2\
-\xd9\x6f\x28\x11\xfd\xce\xcb\xa1\x1d\x52\x3d\x81\x16\x76\xdb\x47\
-\xb7\xe0\x5a\x9c\xff\x0a\x3f\x89\xd7\x9b\x51\x7a\x7a\x67\x48\x3b\
-\x3d\x7b\xbf\x5a\x5c\x9b\x26\x77\x17\x46\xa1\x08\x93\x90\x87\x8b\
-\xb0\xd0\xe8\x75\x6f\x39\xbf\x4d\xd9\x84\x97\x80\x4d\x56\xef\x43\
-\x73\xe3\x82\x9d\x19\x8f\xd6\x3f\xe3\xb2\xcc\x9f\x1a\xc6\x72\xb9\
-\x24\xb7\x6a\x89\xa0\xb5\x81\xeb\x24\x2e\xe7\xa9\xd6\x57\xd1\xa8\
-\xc8\x24\x05\xba\x47\x61\xae\xa6\x0d\x75\xad\x5b\xc3\x14\x2c\x12\
-\xd3\x98\xe0\x92\x82\xa9\x4c\x24\x12\xe6\x31\xca\xf3\x29\x9f\xb1\
-\x2c\x9a\x63\x24\xd4\xb0\xf6\x78\x57\x85\x5c\x8e\xf2\x34\x2a\x6f\
-\xb8\x98\xcb\xe7\x3b\x86\x77\x0f\xb1\x7d\x2a\x16\x13\x1c\x68\x70\
-\xfe\x16\xc5\x9c\xc3\x38\x5d\x88\x5c\x2f\x6e\xca\xe1\x8f\xca\x63\
-\x08\x2b\x39\x31\x4b\x73\xf2\x43\xae\x28\x39\x72\x88\xd9\x36\x7e\
-\x54\x32\x8d\x42\x1a\xff\x0c\x65\x87\x35\x55\x9b\xd9\xfe\x98\xfb\
-\x3f\x25\x8f\xae\x3e\
-"
-
-qt_resource_name = b"\
-\x00\x15\
-\x03\x80\x5a\x3c\
-\x00\x55\
-\x00\x73\x00\x65\x00\x72\x00\x41\x00\x67\x00\x65\x00\x6e\x00\x74\x00\x44\x00\x65\x00\x66\x00\x61\x00\x75\x00\x6c\x00\x74\x00\x73\
-\x00\x2e\x00\x78\x00\x6d\x00\x6c\
-"
-
-qt_resource_struct_v1 = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
-"
-
-qt_resource_struct_v2 = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\x6a\x36\x3b\x4f\x88\
-"
-
-qt_version = [int(v) for v in QtCore.qVersion().split('.')]
-if qt_version < [5, 8, 0]:
-    rcc_version = 1
-    qt_resource_struct = qt_resource_struct_v1
-else:
-    rcc_version = 2
-    qt_resource_struct = qt_resource_struct_v2
-
-def qInitResources():
-    QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-def qCleanupResources():
-    QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-qInitResources()
--- a/eric6/Helpviewer/UserAgent/UserAgentManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,237 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a user agent manager.
-"""
-
-from __future__ import unicode_literals
-
-import os
-
-from PyQt5.QtCore import pyqtSignal, QObject, QXmlStreamReader
-
-from E5Gui import E5MessageBox
-
-from Utilities.AutoSaver import AutoSaver
-import Utilities
-
-
-class UserAgentManager(QObject):
-    """
-    Class implementing a user agent manager.
-    
-    @signal changed() emitted to indicate a change
-    @signal userAgentSettingsSaved() emitted after the user agent settings
-        were saved
-    """
-    changed = pyqtSignal()
-    userAgentSettingsSaved = pyqtSignal()
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(UserAgentManager, self).__init__(parent)
-        
-        self.__agents = {}
-        # dictionary with agent strings indexed by host name
-        self.__loaded = False
-        self.__saveTimer = AutoSaver(self, self.save)
-        
-        self.changed.connect(self.__saveTimer.changeOccurred)
-    
-    def getFileName(self):
-        """
-        Public method to get the file name of the user agents file.
-        
-        @return name of the user agents file (string)
-        """
-        return os.path.join(
-            Utilities.getConfigDir(), "browser", "userAgentSettings.xml")
-    
-    def save(self):
-        """
-        Public slot to save the user agent entries to disk.
-        """
-        if not self.__loaded:
-            return
-        
-        from .UserAgentWriter import UserAgentWriter
-        agentFile = self.getFileName()
-        writer = UserAgentWriter()
-        if not writer.write(agentFile, self.__agents):
-            E5MessageBox.critical(
-                None,
-                self.tr("Saving user agent data"),
-                self.tr(
-                    """<p>User agent data could not be saved to"""
-                    """ <b>{0}</b></p>""").format(agentFile))
-        else:
-            self.userAgentSettingsSaved.emit()
-    
-    def __load(self):
-        """
-        Private method to load the saved user agent settings.
-        """
-        agentFile = self.getFileName()
-        if not os.path.exists(agentFile):
-            self.__loadNonXml(os.path.splitext(agentFile)[0])
-        else:
-            from .UserAgentReader import UserAgentReader
-            reader = UserAgentReader()
-            self.__agents = reader.read(agentFile)
-            if reader.error() != QXmlStreamReader.NoError:
-                E5MessageBox.warning(
-                    None,
-                    self.tr("Loading user agent data"),
-                    self.tr("""Error when loading user agent data on"""
-                            """ line {0}, column {1}:\n{2}""")
-                    .format(reader.lineNumber(),
-                            reader.columnNumber(),
-                            reader.errorString()))
-        
-        self.__loaded = True
-    
-    def __loadNonXml(self, agentFile):
-        """
-        Private method to load non-XML user agent files.
-        
-        This method is to convert from the old, non-XML format to the new
-        XML based format.
-        
-        @param agentFile name of the non-XML user agent file (string)
-        """
-        if os.path.exists(agentFile):
-            try:
-                f = open(agentFile, "r", encoding="utf-8")
-                lines = f.read()
-                f.close()
-            except IOError as err:
-                E5MessageBox.critical(
-                    None,
-                    self.tr("Loading user agent data"),
-                    self.tr("""<p>User agent data could not be loaded """
-                            """from <b>{0}</b></p>"""
-                            """<p>Reason: {1}</p>""")
-                    .format(agentFile, str(err)))
-                return
-            
-            for line in lines.splitlines():
-                if not line or \
-                   line.startswith("#") or \
-                   "@@" not in line:
-                    continue
-                
-                host, agent = line.split("@@", 1)
-                self.__agents[host] = agent
-            
-            os.remove(agentFile)
-        
-        self.__loaded = True
-        
-        # this does the conversion
-        self.save()
-    
-    def reload(self):
-        """
-        Public method to reload the user agent settings.
-        """
-        if not self.__loaded:
-            return
-        
-        self.__agents = {}
-        self.__load()
-    
-    def close(self):
-        """
-        Public method to close the user agents manager.
-        """
-        self.__saveTimer.saveIfNeccessary()
-    
-    def removeUserAgent(self, host):
-        """
-        Public method to remove a user agent entry.
-        
-        @param host host name (string)
-        """
-        if host in self.__agents:
-            del self.__agents[host]
-            self.changed.emit()
-    
-    def allHostNames(self):
-        """
-        Public method to get a list of all host names we a user agent setting
-        for.
-        
-        @return sorted list of all host names (list of strings)
-        """
-        if not self.__loaded:
-            self.__load()
-        
-        return sorted(self.__agents.keys())
-    
-    def hostsCount(self):
-        """
-        Public method to get the number of available user agent settings.
-        
-        @return number of user agent settings (integer)
-        """
-        if not self.__loaded:
-            self.__load()
-        
-        return len(self.__agents)
-    
-    def userAgent(self, host):
-        """
-        Public method to get the user agent setting for a host.
-        
-        @param host host name (string)
-        @return user agent string (string)
-        """
-        if not self.__loaded:
-            self.__load()
-        
-        if host not in self.__agents:
-            return ""
-        
-        return self.__agents[host]
-    
-    def setUserAgent(self, host, agent):
-        """
-        Public method to set the user agent string for a host.
-        
-        @param host host name (string)
-        @param agent user agent string (string)
-        """
-        if host != "" and agent != "":
-            self.__agents[host] = agent
-            self.changed.emit()
-    
-    def userAgentForUrl(self, url):
-        """
-        Public method to determine the user agent for the given URL.
-        
-        @param url URL to determine user agent for (QUrl)
-        @return user agent string (string)
-        """
-        if url.isValid():
-            host = url.host()
-            return self.userAgent(host)
-        
-        return ""
-    
-    def setUserAgentForUrl(self, url, agent):
-        """
-        Public method to set the user agent string for an URL.
-        
-        @param url URL to register user agent setting for (QUrl)
-        @param agent new current user agent string (string)
-        """
-        if url.isValid():
-            host = url.host()
-            self.setUserAgent(host, agent)
--- a/eric6/Helpviewer/UserAgent/UserAgentMenu.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,192 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a menu to select the user agent string.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QXmlStreamReader, QFile, QIODevice
-from PyQt5.QtWidgets import QMenu, QAction, QActionGroup, QInputDialog, \
-    QLineEdit
-
-from E5Gui import E5MessageBox
-
-
-class UserAgentMenu(QMenu):
-    """
-    Class implementing a menu to select the user agent string.
-    """
-    def __init__(self, title, url=None, parent=None):
-        """
-        Constructor
-        
-        @param title title of the menu (string)
-        @param url URL to set user agent for (QUrl)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(UserAgentMenu, self).__init__(title, parent)
-        
-        self.__manager = None
-        self.__url = url
-        if self.__url:
-            if self.__url.isValid():
-                import Helpviewer.HelpWindow
-                self.__manager = \
-                    Helpviewer.HelpWindow.HelpWindow.userAgentsManager()
-            else:
-                self.__url = None
-        
-        self.aboutToShow.connect(self.__populateMenu)
-    
-    def __populateMenu(self):
-        """
-        Private slot to populate the menu.
-        """
-        self.aboutToShow.disconnect(self.__populateMenu)
-        
-        self.__actionGroup = QActionGroup(self)
-        
-        # add default action
-        self.__defaultUserAgent = QAction(self)
-        self.__defaultUserAgent.setText(self.tr("Default"))
-        self.__defaultUserAgent.setCheckable(True)
-        self.__defaultUserAgent.triggered.connect(
-            self.__switchToDefaultUserAgent)
-        if self.__url:
-            self.__defaultUserAgent.setChecked(
-                self.__manager.userAgentForUrl(self.__url) == "")
-        else:
-            from Helpviewer.HelpBrowserWV import HelpWebPage
-            self.__defaultUserAgent.setChecked(HelpWebPage().userAgent() == "")
-        self.addAction(self.__defaultUserAgent)
-        self.__actionGroup.addAction(self.__defaultUserAgent)
-        isChecked = self.__defaultUserAgent.isChecked()
-        
-        # add default extra user agents
-        isChecked = self.__addDefaultActions() or isChecked
-        
-        # add other action
-        self.addSeparator()
-        self.__otherUserAgent = QAction(self)
-        self.__otherUserAgent.setText(self.tr("Other..."))
-        self.__otherUserAgent.setCheckable(True)
-        self.__otherUserAgent.triggered.connect(
-            self.__switchToOtherUserAgent)
-        self.addAction(self.__otherUserAgent)
-        self.__actionGroup.addAction(self.__otherUserAgent)
-        self.__otherUserAgent.setChecked(not isChecked)
-    
-    def __switchToDefaultUserAgent(self):
-        """
-        Private slot to set the default user agent.
-        """
-        if self.__url:
-            self.__manager.removeUserAgent(self.__url.host())
-        else:
-            from Helpviewer.HelpBrowserWV import HelpWebPage
-            HelpWebPage().setUserAgent("")
-    
-    def __switchToOtherUserAgent(self):
-        """
-        Private slot to set a custom user agent string.
-        """
-        from Helpviewer.HelpBrowserWV import HelpWebPage
-        userAgent, ok = QInputDialog.getText(
-            self,
-            self.tr("Custom user agent"),
-            self.tr("User agent:"),
-            QLineEdit.Normal,
-            HelpWebPage().userAgent(resolveEmpty=True))
-        if ok:
-            if self.__url:
-                self.__manager.setUserAgentForUrl(self.__url, userAgent)
-            else:
-                HelpWebPage().setUserAgent(userAgent)
-    
-    def __changeUserAgent(self, act):
-        """
-        Private slot to change the user agent.
-        
-        @param act reference to the action that triggered
-        @type QAction
-        """
-        if self.__url:
-            self.__manager.setUserAgentForUrl(self.__url, act.data())
-        else:
-            from Helpviewer.HelpBrowserWV import HelpWebPage
-            HelpWebPage().setUserAgent(act.data())
-    
-    def __addDefaultActions(self):
-        """
-        Private slot to add the default user agent entries.
-        
-        @return flag indicating that a user agent entry is checked (boolean)
-        """
-        from . import UserAgentDefaults_rc              # __IGNORE_WARNING__
-        defaultUserAgents = QFile(":/UserAgentDefaults.xml")
-        defaultUserAgents.open(QIODevice.ReadOnly)
-        
-        menuStack = []
-        isChecked = False
-        
-        if self.__url:
-            currentUserAgentString = self.__manager.userAgentForUrl(self.__url)
-        else:
-            from Helpviewer.HelpBrowserWV import HelpWebPage
-            currentUserAgentString = HelpWebPage().userAgent()
-        xml = QXmlStreamReader(defaultUserAgents)
-        while not xml.atEnd():
-            xml.readNext()
-            if xml.isStartElement() and xml.name() == "separator":
-                if menuStack:
-                    menuStack[-1].addSeparator()
-                else:
-                    self.addSeparator()
-                continue
-            
-            if xml.isStartElement() and xml.name() == "useragent":
-                attributes = xml.attributes()
-                title = attributes.value("description")
-                userAgent = attributes.value("useragent")
-                
-                act = QAction(self)
-                act.setText(title)
-                act.setData(userAgent)
-                act.setToolTip(userAgent)
-                act.setCheckable(True)
-                act.setChecked(userAgent == currentUserAgentString)
-                act.triggered.connect(lambda: self.__changeUserAgent(act))
-                if menuStack:
-                    menuStack[-1].addAction(act)
-                else:
-                    self.addAction(act)
-                self.__actionGroup.addAction(act)
-                isChecked = isChecked or act.isChecked()
-            
-            if xml.isStartElement() and xml.name() == "useragentmenu":
-                attributes = xml.attributes()
-                title = attributes.value("title")
-                if title == "v_a_r_i_o_u_s":
-                    title = self.tr("Various")
-                
-                menu = QMenu(self)
-                menu.setTitle(title)
-                self.addMenu(menu)
-                menuStack.append(menu)
-            
-            if xml.isEndElement() and xml.name() == "useragentmenu":
-                menuStack.pop()
-        
-        if xml.hasError():
-            E5MessageBox.critical(
-                self,
-                self.tr("Parsing default user agents"),
-                self.tr(
-                    """<p>Error parsing default user agents.</p><p>{0}</p>""")
-                .format(xml.errorString()))
-        
-        return isChecked
--- a/eric6/Helpviewer/UserAgent/UserAgentModel.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a model for user agent management.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt, QModelIndex, QAbstractTableModel
-
-
-class UserAgentModel(QAbstractTableModel):
-    """
-    Class implementing a model for user agent management.
-    """
-    def __init__(self, manager, parent=None):
-        """
-        Constructor
-        
-        @param manager reference to the user agent manager (UserAgentManager)
-        @param parent reference to the parent object (QObject)
-        """
-        super(UserAgentModel, self).__init__(parent)
-        
-        self.__manager = manager
-        self.__manager.changed.connect(self.__userAgentsChanged)
-        
-        self.__headers = [
-            self.tr("Host"),
-            self.tr("User Agent String"),
-        ]
-    
-    def __userAgentsChanged(self):
-        """
-        Private slot handling a change of the registered user agent strings.
-        """
-        self.beginResetModel()
-        self.endResetModel()
-    
-    def removeRows(self, row, count, parent=None):
-        """
-        Public method to remove entries from the model.
-        
-        @param row start row (integer)
-        @param count number of rows to remove (integer)
-        @param parent parent index (QModelIndex)
-        @return flag indicating success (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return False
-        
-        if count <= 0:
-            return False
-        
-        lastRow = row + count - 1
-        
-        self.beginRemoveRows(parent, row, lastRow)
-        
-        hostsList = self.__manager.allHostNames()
-        for index in range(row, lastRow + 1):
-            self.__manager.removeUserAgent(hostsList[index])
-        
-        # removeEngine emits changed()
-        #self.endRemoveRows()
-        
-        return True
-    
-    def rowCount(self, parent=None):
-        """
-        Public method to get the number of rows of the model.
-        
-        @param parent parent index (QModelIndex)
-        @return number of rows (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return 0
-        else:
-            return self.__manager.hostsCount()
-    
-    def columnCount(self, parent=None):
-        """
-        Public method to get the number of columns of the model.
-        
-        @param parent parent index (QModelIndex) (Unused)
-        @return number of columns (integer)
-        """
-        return len(self.__headers)
-    
-    def data(self, index, role):
-        """
-        Public method to get data from the model.
-        
-        @param index index to get data for (QModelIndex)
-        @param role role of the data to retrieve (integer)
-        @return requested data
-        """
-        if index.row() >= self.__manager.hostsCount() or index.row() < 0:
-            return None
-        
-        host = self.__manager.allHostNames()[index.row()]
-        userAgent = self.__manager.userAgent(host)
-        
-        if userAgent is None:
-            return None
-        
-        if role == Qt.DisplayRole:
-            if index.column() == 0:
-                return host
-            elif index.column() == 1:
-                return userAgent
-        
-        return None
-    
-    def headerData(self, section, orientation, role=Qt.DisplayRole):
-        """
-        Public method to get the header data.
-        
-        @param section section number (integer)
-        @param orientation header orientation (Qt.Orientation)
-        @param role data role (integer)
-        @return header data
-        """
-        if orientation == Qt.Horizontal and role == Qt.DisplayRole:
-            try:
-                return self.__headers[section]
-            except IndexError:
-                pass
-        
-        return None
--- a/eric6/Helpviewer/UserAgent/UserAgentReader.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-
-"""
-Module implementing a class to read user agent data files.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QXmlStreamReader, QIODevice, QFile, QCoreApplication
-
-
-class UserAgentReader(QXmlStreamReader):
-    """
-    Class implementing a reader object for user agent data files.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(UserAgentReader, self).__init__()
-    
-    def read(self, fileNameOrDevice):
-        """
-        Public method to read a user agent file.
-        
-        @param fileNameOrDevice name of the file to read (string)
-            or reference to the device to read (QIODevice)
-        @return dictionary with user agent data (host as key, agent string as
-            value)
-        """
-        self.__agents = {}
-        
-        if isinstance(fileNameOrDevice, QIODevice):
-            self.setDevice(fileNameOrDevice)
-        else:
-            f = QFile(fileNameOrDevice)
-            if not f.exists():
-                return self.__agents
-            f.open(QFile.ReadOnly)
-            self.setDevice(f)
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isStartElement():
-                version = self.attributes().value("version")
-                if self.name() == "UserAgents" and \
-                   (not version or version == "1.0"):
-                    self.__readUserAgents()
-                else:
-                    self.raiseError(QCoreApplication.translate(
-                        "UserAgentReader",
-                        "The file is not a UserAgents version 1.0 file."))
-        
-        return self.__agents
-    
-    def __readUserAgents(self):
-        """
-        Private method to read the user agents data.
-        """
-        if not self.isStartElement() and self.name() != "UserAgents":
-            return
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isEndElement():
-                if self.name() == "UserAgent":
-                    continue
-                else:
-                    break
-            
-            if self.isStartElement():
-                if self.name() == "UserAgent":
-                    attributes = self.attributes()
-                    host = attributes.value("host")
-                    agent = attributes.value("agent")
-                    self.__agents[host] = agent
-                else:
-                    self.__skipUnknownElement()
-    
-    def __skipUnknownElement(self):
-        """
-        Private method to skip over all unknown elements.
-        """
-        if not self.isStartElement():
-            return
-        
-        while not self.atEnd():
-            self.readNext()
-            if self.isEndElement():
-                break
-            
-            if self.isStartElement():
-                self.__skipUnknownElement()
--- a/eric6/Helpviewer/UserAgent/UserAgentWriter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a class to write user agent data files.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QXmlStreamWriter, QIODevice, QFile
-
-
-class UserAgentWriter(QXmlStreamWriter):
-    """
-    Class implementing a writer object to generate user agent data files.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(UserAgentWriter, self).__init__()
-        
-        self.setAutoFormatting(True)
-    
-    def write(self, fileNameOrDevice, agents):
-        """
-        Public method to write a user agent data file.
-        
-        @param fileNameOrDevice name of the file to write (string)
-            or device to write to (QIODevice)
-        @param agents dictionary with user agent data (host as key, agent
-            string as value)
-        @return flag indicating success (boolean)
-        """
-        if isinstance(fileNameOrDevice, QIODevice):
-            f = fileNameOrDevice
-        else:
-            f = QFile(fileNameOrDevice)
-            if not f.open(QFile.WriteOnly):
-                return False
-        
-        self.setDevice(f)
-        return self.__write(agents)
-    
-    def __write(self, agents):
-        """
-        Private method to write a user agent file.
-        
-        @param agents dictionary with user agent data (host as key, agent
-            string as value)
-        @return flag indicating success (boolean)
-        """
-        self.writeStartDocument()
-        self.writeDTD("<!DOCTYPE useragents>")
-        self.writeStartElement("UserAgents")
-        self.writeAttribute("version", "1.0")
-        
-        for host, agent in agents.items():
-            self.writeEmptyElement("UserAgent")
-            self.writeAttribute("host", host)
-            self.writeAttribute("agent", agent)
-        
-        self.writeEndDocument()
-        return True
--- a/eric6/Helpviewer/UserAgent/UserAgentsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to show all saved user agent settings.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QSortFilterProxyModel
-from PyQt5.QtGui import QFont, QFontMetrics
-from PyQt5.QtWidgets import QDialog
-
-import Helpviewer.HelpWindow
-
-from .UserAgentModel import UserAgentModel
-
-from .Ui_UserAgentsDialog import Ui_UserAgentsDialog
-
-
-class UserAgentsDialog(QDialog, Ui_UserAgentsDialog):
-    """
-    Class implementing a dialog to show all saved user agent settings.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(UserAgentsDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.removeButton.clicked.connect(
-            self.userAgentsTable.removeSelected)
-        self.removeAllButton.clicked.connect(
-            self.userAgentsTable.removeAll)
-        
-        self.userAgentsTable.verticalHeader().hide()
-        self.__userAgentModel = UserAgentModel(
-            Helpviewer.HelpWindow.HelpWindow.userAgentsManager(), self)
-        self.__proxyModel = QSortFilterProxyModel(self)
-        self.__proxyModel.setSourceModel(self.__userAgentModel)
-        self.searchEdit.textChanged.connect(
-            self.__proxyModel.setFilterFixedString)
-        self.userAgentsTable.setModel(self.__proxyModel)
-        
-        fm = QFontMetrics(QFont())
-        height = fm.height() + fm.height() // 3
-        self.userAgentsTable.verticalHeader().setDefaultSectionSize(height)
-        self.userAgentsTable.verticalHeader().setMinimumSectionSize(-1)
-        
-        self.userAgentsTable.resizeColumnsToContents()
-        self.userAgentsTable.horizontalHeader().setStretchLastSection(True)
--- a/eric6/Helpviewer/UserAgent/UserAgentsDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>UserAgentsDialog</class>
- <widget class="QDialog" name="UserAgentsDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>700</width>
-    <height>400</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>User Agent Settings</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <layout class="QHBoxLayout" name="horizontalLayout">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="E5ClearableLineEdit" name="searchEdit">
-         <property name="toolTip">
-          <string>Enter search term</string>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="E5TableView" name="userAgentsTable">
-     <property name="alternatingRowColors">
-      <bool>true</bool>
-     </property>
-     <property name="selectionBehavior">
-      <enum>QAbstractItemView::SelectRows</enum>
-     </property>
-     <property name="textElideMode">
-      <enum>Qt::ElideMiddle</enum>
-     </property>
-     <property name="showGrid">
-      <bool>false</bool>
-     </property>
-     <property name="sortingEnabled">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <item>
-      <widget class="QPushButton" name="removeButton">
-       <property name="toolTip">
-        <string>Press to remove the selected entries</string>
-       </property>
-       <property name="text">
-        <string>&amp;Remove</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="removeAllButton">
-       <property name="toolTip">
-        <string>Press to remove all entries</string>
-       </property>
-       <property name="text">
-        <string>Remove &amp;All</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>208</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5TableView</class>
-   <extends>QTableView</extends>
-   <header>E5Gui/E5TableView.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>searchEdit</tabstop>
-  <tabstop>userAgentsTable</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>removeAllButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>UserAgentsDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>237</x>
-     <y>390</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>UserAgentsDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>325</x>
-     <y>390</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/UserAgent/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing a menu to select the user agent string.
-"""
--- a/eric6/Helpviewer/VirusTotal/VirusTotalApi.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,424 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2011 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the <a href="http://www.virustotal.com">VirusTotal</a>
-API class.
-"""
-
-from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
-
-import json
-
-from PyQt5.QtCore import QObject, QUrl, QByteArray, pyqtSignal
-from PyQt5.QtNetwork import QNetworkRequest, QNetworkReply
-
-from E5Gui import E5MessageBox
-
-import Preferences
-from Globals import qVersionTuple
-
-
-class VirusTotalAPI(QObject):
-    """
-    Class implementing the <a href="http://www.virustotal.com">VirusTotal</a>
-    API.
-    
-    @signal checkServiceKeyFinished(bool, str) emitted after the service key
-        check has been performed. It gives a flag indicating validity
-        (boolean) and an error message in case of a network error (string).
-    @signal submitUrlError(str) emitted with the error string, if the URL scan
-        submission returned an error.
-    @signal urlScanReport(str) emitted with the URL of the URL scan report page
-    @signal fileScanReport(str) emitted with the URL of the file scan report
-        page
-    """
-    checkServiceKeyFinished = pyqtSignal(bool, str)
-    submitUrlError = pyqtSignal(str)
-    urlScanReport = pyqtSignal(str)
-    fileScanReport = pyqtSignal(str)
-    
-    TestServiceKeyScanID = \
-        "4feed2c2e352f105f6188efd1d5a558f24aee6971bdf96d5fdb19c197d6d3fad"
-    
-    ServiceResult_ItemQueued = -2
-    ServiceResult_ItemNotPresent = 0
-    ServiceResult_ItemPresent = 1
-    
-    # HTTP Status Codes
-    ServiceCode_InvalidKey = 202
-    ServiceCode_RateLimitExceeded = 204
-    ServiceCode_InvalidPrivilege = 403
-    
-    GetFileReportPattern = "{0}://www.virustotal.com/vtapi/v2/file/report"
-    ScanUrlPattern = "{0}://www.virustotal.com/vtapi/v2/url/scan"
-    GetUrlReportPattern = "{0}://www.virustotal.com/vtapi/v2/url/report"
-    GetIpAddressReportPattern = \
-        "{0}://www.virustotal.com/vtapi/v2/ip-address/report"
-    GetDomainReportPattern = "{0}://www.virustotal.com/vtapi/v2/domain/report"
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(VirusTotalAPI, self).__init__(parent)
-        
-        self.__replies = []
-        
-        self.__loadSettings()
-        
-        self.__lastIP = ""
-        self.__lastDomain = ""
-        self.__ipReportDlg = None
-        self.__domainReportDlg = None
-    
-    def __loadSettings(self):
-        """
-        Private method to load the settings.
-        """
-        if Preferences.getHelp("VirusTotalSecure"):
-            protocol = "https"
-        else:
-            protocol = "http"
-        self.GetFileReportUrl = self.GetFileReportPattern.format(protocol)
-        self.ScanUrlUrl = self.ScanUrlPattern.format(protocol)
-        self.GetUrlReportUrl = self.GetUrlReportPattern.format(protocol)
-        self.GetIpAddressReportUrl = self.GetIpAddressReportPattern.format(
-            protocol)
-        self.GetDomainReportUrl = self.GetDomainReportPattern.format(protocol)
-        
-        self.errorMessages = {
-            204: self.tr("Request limit has been reached."),
-            0: self.tr("Requested item is not present."),
-            -2: self.tr("Requested item is still queued."),
-        }
-    
-    def preferencesChanged(self):
-        """
-        Public slot to handle a change of preferences.
-        """
-        self.__loadSettings()
-    
-    def checkServiceKeyValidity(self, key, protocol=""):
-        """
-        Public method to check the validity of the given service key.
-        
-        @param key service key (string)
-        @param protocol protocol used to access VirusTotal (string)
-        """
-        if protocol == "":
-            urlStr = self.GetFileReportUrl
-        else:
-            urlStr = self.GetFileReportPattern.format(protocol)
-        request = QNetworkRequest(QUrl(urlStr))
-        request.setHeader(QNetworkRequest.ContentTypeHeader,
-                          "application/x-www-form-urlencoded")
-        params = QByteArray("apikey={0}&resource={1}".format(
-            key, self.TestServiceKeyScanID).encode("utf-8"))
-        
-        import Helpviewer.HelpWindow
-        nam = Helpviewer.HelpWindow.HelpWindow.networkAccessManager()
-        reply = nam.post(request, params)
-        reply.finished.connect(
-            lambda: self.__checkServiceKeyValidityFinished(reply))
-        self.__replies.append(reply)
-    
-    def __checkServiceKeyValidityFinished(self, reply):
-        """
-        Private slot to determine the result of the service key validity check.
-        
-        @param reply reference to the network reply
-        @type QNetworkReply
-        """
-        res = False
-        msg = ""
-        
-        if reply.error() == QNetworkReply.NoError:
-            res = True
-        elif reply.error() == self.ServiceCode_InvalidKey:
-            res = False
-        else:
-            msg = reply.errorString()
-        self.__replies.remove(reply)
-        reply.deleteLater()
-        
-        self.checkServiceKeyFinished.emit(res, msg)
-    
-    def submitUrl(self, url):
-        """
-        Public method to submit an URL to be scanned.
-        
-        @param url url to be scanned (QUrl)
-        """
-        request = QNetworkRequest(QUrl(self.ScanUrlUrl))
-        request.setHeader(QNetworkRequest.ContentTypeHeader,
-                          "application/x-www-form-urlencoded")
-        params = QByteArray("apikey={0}&url=".format(
-            Preferences.getHelp("VirusTotalServiceKey")).encode("utf-8"))\
-            .append(QUrl.toPercentEncoding(url.toString()))
-        
-        import Helpviewer.HelpWindow
-        nam = Helpviewer.HelpWindow.HelpWindow.networkAccessManager()
-        reply = nam.post(request, params)
-        reply.finished.connect(self.__submitUrlFinished)
-        self.__replies.append(reply)
-    
-    def __submitUrlFinished(self, reply):
-        """
-        Private slot to determine the result of the URL scan submission.
-        
-        @param reply reference to the network reply
-        @type QNetworkReply
-        """
-        if reply.error() == QNetworkReply.NoError:
-            result = json.loads(str(reply.readAll(), "utf-8"))
-            if result["response_code"] == self.ServiceResult_ItemPresent:
-                self.urlScanReport.emit(result["permalink"])
-                self.__getUrlScanReportUrl(result["scan_id"])
-            else:
-                if result["response_code"] in self.errorMessages:
-                    msg = self.errorMessages[result["response_code"]]
-                else:
-                    msg = result["verbose_msg"]
-                self.submitUrlError.emit(msg)
-        elif reply.error() == self.ServiceCode_RateLimitExceeded:
-            self.submitUrlError.emit(
-                self.errorMessages[result[self.ServiceCode_RateLimitExceeded]])
-        else:
-            self.submitUrlError.emit(reply.errorString())
-        self.__replies.remove(reply)
-        reply.deleteLater()
-    
-    def __getUrlScanReportUrl(self, scanId):
-        """
-        Private method to get the report URL for a URL scan.
-        
-        @param scanId ID of the scan to get the report URL for (string)
-        """
-        request = QNetworkRequest(QUrl(self.GetUrlReportUrl))
-        request.setHeader(QNetworkRequest.ContentTypeHeader,
-                          "application/x-www-form-urlencoded")
-        params = QByteArray("apikey={0}&resource={1}".format(
-            Preferences.getHelp("VirusTotalServiceKey"), scanId)
-            .encode("utf-8"))
-        
-        import Helpviewer.HelpWindow
-        nam = Helpviewer.HelpWindow.HelpWindow.networkAccessManager()
-        reply = nam.post(request, params)
-        reply.finished.connect(self.__getUrlScanReportUrlFinished)
-        self.__replies.append(reply)
-    
-    def __getUrlScanReportUrlFinished(self, reply):
-        """
-        Private slot to determine the result of the URL scan report URL
-        request.
-        
-        @param reply reference to the network reply
-        @type QNetworkReply
-        """
-        if reply.error() == QNetworkReply.NoError:
-            result = json.loads(str(reply.readAll(), "utf-8"))
-            if "filescan_id" in result and result["filescan_id"] is not None:
-                self.__getFileScanReportUrl(result["filescan_id"])
-        self.__replies.remove(reply)
-        reply.deleteLater()
-    
-    def __getFileScanReportUrl(self, scanId):
-        """
-        Private method to get the report URL for a file scan.
-        
-        @param scanId ID of the scan to get the report URL for (string)
-        """
-        request = QNetworkRequest(QUrl(self.GetFileReportUrl))
-        request.setHeader(QNetworkRequest.ContentTypeHeader,
-                          "application/x-www-form-urlencoded")
-        params = QByteArray("apikey={0}&resource={1}".format(
-            Preferences.getHelp("VirusTotalServiceKey"), scanId)
-            .encode("utf-8"))
-        
-        import Helpviewer.HelpWindow
-        nam = Helpviewer.HelpWindow.HelpWindow.networkAccessManager()
-        reply = nam.post(request, params)
-        reply.finished.connect(self.__getFileScanReportUrlFinished)
-        self.__replies.append(reply)
-    
-    def __getFileScanReportUrlFinished(self, reply):
-        """
-        Private slot to determine the result of the file scan report URL
-        request.
-        
-        @param reply reference to the network reply
-        @type QNetworkReply
-        """
-        if reply.error() == QNetworkReply.NoError:
-            result = json.loads(str(reply.readAll(), "utf-8"))
-            self.fileScanReport.emit(result["permalink"])
-        self.__replies.remove(reply)
-        reply.deleteLater()
-    
-    def getIpAddressReport(self, ipAddress):
-        """
-        Public method to retrieve a report for an IP address.
-        
-        @param ipAddress valid IPv4 address in dotted quad notation
-        @type str
-        """
-        self.__lastIP = ipAddress
-        
-        queryItems = [
-            ("apikey", Preferences.getHelp("VirusTotalServiceKey")),
-            ("ip", ipAddress),
-        ]
-        url = QUrl(self.GetIpAddressReportUrl)
-        if qVersionTuple() >= (5, 0, 0):
-            from PyQt5.QtCore import QUrlQuery
-            query = QUrlQuery()
-            query.setQueryItems(queryItems)
-            url.setQuery(query)
-        else:
-            url.setQueryItems(queryItems)
-        request = QNetworkRequest(url)
-        
-        import Helpviewer.HelpWindow
-        nam = Helpviewer.HelpWindow.HelpWindow.networkAccessManager()
-        reply = nam.get(request)
-        reply.finished.connect(self.__getIpAddressReportFinished)
-        self.__replies.append(reply)
-    
-    def __getIpAddressReportFinished(self, reply):
-        """
-        Private slot to process the IP address report data.
-        
-        @param reply reference to the network reply
-        @type QNetworkReply
-        """
-        if reply.error() == QNetworkReply.NoError:
-            result = json.loads(str(reply.readAll(), "utf-8"))
-            if result["response_code"] == 0:
-                E5MessageBox.information(
-                    None,
-                    self.tr("VirusTotal IP Address Report"),
-                    self.tr("""VirusTotal does not have any information for"""
-                            """ the given IP address."""))
-            elif result["response_code"] == -1:
-                E5MessageBox.information(
-                    None,
-                    self.tr("VirusTotal IP Address Report"),
-                    self.tr("""The submitted IP address is invalid."""))
-            else:
-                owner = result["as_owner"]
-                resolutions = result["resolutions"]
-                try:
-                    urls = result["detected_urls"]
-                except KeyError:
-                    urls = []
-                
-                from .VirusTotalIpReportDialog import VirusTotalIpReportDialog
-                self.__ipReportDlg = VirusTotalIpReportDialog(
-                    self.__lastIP, owner, resolutions, urls)
-                self.__ipReportDlg.show()
-        self.__replies.remove(reply)
-        reply.deleteLater()
-    
-    def getDomainReport(self, domain):
-        """
-        Public method to retrieve a report for a domain.
-        
-        @param domain domain name
-        @type str
-        """
-        self.__lastDomain = domain
-        
-        queryItems = [
-            ("apikey", Preferences.getHelp("VirusTotalServiceKey")),
-            ("domain", domain),
-        ]
-        url = QUrl(self.GetDomainReportUrl)
-        if qVersionTuple() >= (5, 0, 0):
-            from PyQt5.QtCore import QUrlQuery
-            query = QUrlQuery()
-            query.setQueryItems(queryItems)
-            url.setQuery(query)
-        else:
-            url.setQueryItems(queryItems)
-        request = QNetworkRequest(url)
-        
-        import Helpviewer.HelpWindow
-        nam = Helpviewer.HelpWindow.HelpWindow.networkAccessManager()
-        reply = nam.get(request)
-        reply.finished.connect(lambda: self.__getDomainReportFinished(reply))
-        self.__replies.append(reply)
-    
-    def __getDomainReportFinished(self, reply):
-        """
-        Private slot to process the IP address report data.
-        
-        @param reply reference to the network reply
-        @type QNetworkReply
-        """
-        if reply.error() == QNetworkReply.NoError:
-            result = json.loads(str(reply.readAll(), "utf-8"))
-            if result["response_code"] == 0:
-                E5MessageBox.information(
-                    None,
-                    self.tr("VirusTotal Domain Report"),
-                    self.tr("""VirusTotal does not have any information for"""
-                            """ the given domain."""))
-            elif result["response_code"] == -1:
-                E5MessageBox.information(
-                    None,
-                    self.tr("VirusTotal Domain Report"),
-                    self.tr("""The submitted domain address is invalid."""))
-            else:
-                resolutions = result["resolutions"]
-                try:
-                    urls = result["detected_urls"]
-                except KeyError:
-                    urls = []
-                try:
-                    subdomains = result["subdomains"]
-                except KeyError:
-                    subdomains = []
-                try:
-                    bdCategory = result["BitDefender category"]
-                except KeyError:
-                    bdCategory = self.tr("not available")
-                try:
-                    tmCategory = result["TrendMicro category"]
-                except KeyError:
-                    tmCategory = self.tr("not available")
-                try:
-                    wtsCategory = result["Websense ThreatSeeker category"]
-                except KeyError:
-                    wtsCategory = self.tr("not available")
-                try:
-                    whois = result["whois"]
-                except KeyError:
-                    whois = ""
-                
-                from .VirusTotalDomainReportDialog import \
-                    VirusTotalDomainReportDialog
-                self.__domainReportDlg = VirusTotalDomainReportDialog(
-                    self.__lastDomain, resolutions, urls, subdomains,
-                    bdCategory, tmCategory, wtsCategory, whois)
-                self.__domainReportDlg.show()
-        self.__replies.remove(reply)
-        reply.deleteLater()
-    
-    def close(self):
-        """
-        Public slot to close the API.
-        """
-        for reply in self.__replies:
-            reply.abort()
-        
-        self.__ipReportDlg and self.__ipReportDlg.close()
-        self.__domainReportDlg and self.__domainReportDlg.close()
--- a/eric6/Helpviewer/VirusTotal/VirusTotalDomainReportDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to show the VirusTotal domain report.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt
-from PyQt5.QtWidgets import QDialog, QTreeWidgetItem
-
-from .Ui_VirusTotalDomainReportDialog import Ui_VirusTotalDomainReportDialog
-
-import UI.PixmapCache
-
-
-class VirusTotalDomainReportDialog(QDialog, Ui_VirusTotalDomainReportDialog):
-    """
-    Class implementing a dialog to show the VirusTotal domain report.
-    """
-    def __init__(self, domain, resolutions, urls, subdomains,
-                 bdCategory, tmCategory, wtsCategory, whois, parent=None):
-        """
-        Constructor
-        
-        @param domain domain name
-        @type str
-        @param resolutions list of resolved host names
-        @type list of dict
-        @param urls list of detected URLs
-        @type list of dict
-        @param subdomains list of subdomains
-        @type list of str
-        @param bdCategory BitDefender categorization
-        @type str
-        @param tmCategory TrendMicro categorization
-        @type str
-        @param wtsCategory Websense ThreatSeeker categorization
-        @type str
-        @param whois whois information
-        @type str
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super(VirusTotalDomainReportDialog, self).__init__(parent)
-        self.setupUi(self)
-        self.setWindowFlags(Qt.Window)
-        
-        self.headerLabel.setText(
-            self.tr("<b>Report for domain {0}</b>").format(domain))
-        self.headerPixmap.setPixmap(
-            UI.PixmapCache.getPixmap("virustotal.png"))
-        
-        for resolution in resolutions:
-            QTreeWidgetItem(
-                self.resolutionsList,
-                [resolution["ip_address"],
-                 resolution["last_resolved"].split()[0]]
-            )
-        self.resolutionsList.resizeColumnToContents(0)
-        self.resolutionsList.resizeColumnToContents(1)
-        self.resolutionsList.sortByColumn(0, Qt.AscendingOrder)
-        
-        if not urls:
-            self.detectedUrlsGroup.setVisible(False)
-        for url in urls:
-            QTreeWidgetItem(
-                self.urlsList,
-                [url["url"],
-                 self.tr("{0}/{1}", "positives / total").format(
-                    url["positives"], url["total"]),
-                 url["scan_date"].split()[0]]
-            )
-        self.urlsList.resizeColumnToContents(0)
-        self.urlsList.resizeColumnToContents(1)
-        self.urlsList.resizeColumnToContents(2)
-        self.urlsList.sortByColumn(0, Qt.AscendingOrder)
-        
-        if not subdomains:
-            self.subdomainsGroup.setVisible(False)
-        else:
-            self.subdomainsList.addItems(subdomains)
-            self.subdomainsList.sortItems()
-        
-        self.bdLabel.setText(bdCategory)
-        self.tmLabel.setText(tmCategory)
-        self.wtsLabel.setText(wtsCategory)
-        
-        self.__whois = whois
-        self.__whoisDomain = domain
-        self.whoisButton.setEnabled(bool(whois))
-    
-    @pyqtSlot()
-    def on_whoisButton_clicked(self):
-        """
-        Private slot to show the whois information.
-        """
-        from .VirusTotalWhoisDialog import VirusTotalWhoisDialog
-        dlg = VirusTotalWhoisDialog(self.__whoisDomain, self.__whois)
-        dlg.exec_()
--- a/eric6/Helpviewer/VirusTotal/VirusTotalDomainReportDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,304 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>VirusTotalDomainReportDialog</class>
- <widget class="QDialog" name="VirusTotalDomainReportDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>900</width>
-    <height>700</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Domain Report</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_4">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_4">
-     <item>
-      <widget class="QLabel" name="headerPixmap"/>
-     </item>
-     <item>
-      <widget class="QLabel" name="headerLabel">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="Line" name="line9_3">
-     <property name="frameShape">
-      <enum>QFrame::HLine</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Sunken</enum>
-     </property>
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <item>
-      <widget class="QGroupBox" name="groupBox">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="title">
-        <string>Categorizations</string>
-       </property>
-       <layout class="QHBoxLayout" name="horizontalLayout">
-        <item>
-         <layout class="QGridLayout" name="gridLayout">
-          <item row="0" column="0">
-           <widget class="QLabel" name="label">
-            <property name="text">
-             <string notr="true">BitDefender:</string>
-            </property>
-           </widget>
-          </item>
-          <item row="0" column="1">
-           <widget class="QLabel" name="bdLabel">
-            <property name="text">
-             <string/>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="0">
-           <widget class="QLabel" name="label_2">
-            <property name="text">
-             <string notr="true">TrendMicro:</string>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="1">
-           <widget class="QLabel" name="tmLabel">
-            <property name="text">
-             <string/>
-            </property>
-           </widget>
-          </item>
-          <item row="2" column="0">
-           <widget class="QLabel" name="label_3">
-            <property name="text">
-             <string notr="true">Websense ThreatSeeker:</string>
-            </property>
-           </widget>
-          </item>
-          <item row="2" column="1">
-           <widget class="QLabel" name="wtsLabel">
-            <property name="text">
-             <string/>
-            </property>
-           </widget>
-          </item>
-         </layout>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>690</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="whoisButton">
-       <property name="text">
-        <string>Whois</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <widget class="QGroupBox" name="resolutionsGroup">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>4</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="title">
-        <string>Resolutions</string>
-       </property>
-       <layout class="QVBoxLayout" name="verticalLayout_2">
-        <item>
-         <widget class="QTreeWidget" name="resolutionsList">
-          <property name="alternatingRowColors">
-           <bool>true</bool>
-          </property>
-          <property name="rootIsDecorated">
-           <bool>false</bool>
-          </property>
-          <property name="sortingEnabled">
-           <bool>true</bool>
-          </property>
-          <property name="allColumnsShowFocus">
-           <bool>true</bool>
-          </property>
-          <column>
-           <property name="text">
-            <string>IP-Address</string>
-           </property>
-          </column>
-          <column>
-           <property name="text">
-            <string>Resolved Date</string>
-           </property>
-          </column>
-         </widget>
-        </item>
-       </layout>
-      </widget>
-     </item>
-     <item>
-      <widget class="QGroupBox" name="subdomainsGroup">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>4</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="title">
-        <string>Subdomains</string>
-       </property>
-       <layout class="QVBoxLayout" name="verticalLayout">
-        <item>
-         <widget class="QListWidget" name="subdomainsList">
-          <property name="alternatingRowColors">
-           <bool>true</bool>
-          </property>
-          <property name="sortingEnabled">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="detectedUrlsGroup">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>2</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title">
-      <string>Detected URLs</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_3">
-      <item>
-       <widget class="QTreeWidget" name="urlsList">
-        <property name="alternatingRowColors">
-         <bool>true</bool>
-        </property>
-        <property name="rootIsDecorated">
-         <bool>false</bool>
-        </property>
-        <property name="sortingEnabled">
-         <bool>true</bool>
-        </property>
-        <property name="allColumnsShowFocus">
-         <bool>true</bool>
-        </property>
-        <column>
-         <property name="text">
-          <string>URL</string>
-         </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Scan Result</string>
-         </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Scan Date</string>
-         </property>
-        </column>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>whoisButton</tabstop>
-  <tabstop>resolutionsList</tabstop>
-  <tabstop>subdomainsList</tabstop>
-  <tabstop>urlsList</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>VirusTotalDomainReportDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>VirusTotalDomainReportDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/VirusTotal/VirusTotalIpReportDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to show the VirusTotal IP address report.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt
-from PyQt5.QtWidgets import QDialog, QTreeWidgetItem
-
-from .Ui_VirusTotalIpReportDialog import Ui_VirusTotalIpReportDialog
-
-import UI.PixmapCache
-
-
-class VirusTotalIpReportDialog(QDialog, Ui_VirusTotalIpReportDialog):
-    """
-    Class implementing a dialog to show the VirusTotal IP address report.
-    """
-    def __init__(self, ip, owner, resolutions, urls, parent=None):
-        """
-        Constructor
-        
-        @param ip IP address
-        @type str
-        @param owner owner of the IP address
-        @type str
-        @param resolutions list of resolved host names
-        @type list of dict
-        @param urls list of detected URLs
-        @type list of dict
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super(VirusTotalIpReportDialog, self).__init__(parent)
-        self.setupUi(self)
-        self.setWindowFlags(Qt.Window)
-        
-        self.headerLabel.setText(
-            self.tr("<b>Report for IP {0}</b>").format(ip))
-        self.headerPixmap.setPixmap(
-            UI.PixmapCache.getPixmap("virustotal.png"))
-        self.ownerLabel.setText(owner)
-        
-        for resolution in resolutions:
-            QTreeWidgetItem(
-                self.resolutionsList,
-                [resolution["hostname"],
-                 resolution["last_resolved"].split()[0]]
-            )
-        self.resolutionsList.resizeColumnToContents(0)
-        self.resolutionsList.resizeColumnToContents(1)
-        self.resolutionsList.sortByColumn(0, Qt.AscendingOrder)
-        
-        if not urls:
-            self.detectedUrlsGroup.setVisible(False)
-        for url in urls:
-            QTreeWidgetItem(
-                self.urlsList,
-                [url["url"],
-                 self.tr("{0}/{1}", "positives / total").format(
-                    url["positives"], url["total"]),
-                 url["scan_date"].split()[0]]
-            )
-        self.urlsList.resizeColumnToContents(0)
-        self.urlsList.resizeColumnToContents(1)
-        self.urlsList.resizeColumnToContents(2)
-        self.urlsList.sortByColumn(0, Qt.AscendingOrder)
--- a/eric6/Helpviewer/VirusTotal/VirusTotalIpReportDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,208 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>VirusTotalIpReportDialog</class>
- <widget class="QDialog" name="VirusTotalIpReportDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>800</width>
-    <height>600</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>IP Address Report</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_4">
-     <item>
-      <widget class="QLabel" name="headerPixmap"/>
-     </item>
-     <item>
-      <widget class="QLabel" name="headerLabel">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="Line" name="line9_3">
-     <property name="frameShape">
-      <enum>QFrame::HLine</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Sunken</enum>
-     </property>
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>Owner:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="ownerLabel">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string/>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="resolutionsGroup">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>4</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title">
-      <string>Resolutions</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_2">
-      <item>
-       <widget class="QTreeWidget" name="resolutionsList">
-        <property name="alternatingRowColors">
-         <bool>true</bool>
-        </property>
-        <property name="rootIsDecorated">
-         <bool>false</bool>
-        </property>
-        <property name="sortingEnabled">
-         <bool>true</bool>
-        </property>
-        <property name="allColumnsShowFocus">
-         <bool>true</bool>
-        </property>
-        <column>
-         <property name="text">
-          <string>Hostname</string>
-         </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Resolved Date</string>
-         </property>
-        </column>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="detectedUrlsGroup">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>2</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title">
-      <string>Detected URLs</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_3">
-      <item>
-       <widget class="QTreeWidget" name="urlsList">
-        <property name="alternatingRowColors">
-         <bool>true</bool>
-        </property>
-        <property name="rootIsDecorated">
-         <bool>false</bool>
-        </property>
-        <property name="sortingEnabled">
-         <bool>true</bool>
-        </property>
-        <property name="allColumnsShowFocus">
-         <bool>true</bool>
-        </property>
-        <column>
-         <property name="text">
-          <string>URL</string>
-         </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Scan Result</string>
-         </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Scan Date</string>
-         </property>
-        </column>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>VirusTotalIpReportDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>VirusTotalIpReportDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/VirusTotal/VirusTotalWhoisDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to show the 'whois' information.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QDialog
-
-from .Ui_VirusTotalWhoisDialog import Ui_VirusTotalWhoisDialog
-
-import UI.PixmapCache
-
-
-class VirusTotalWhoisDialog(QDialog, Ui_VirusTotalWhoisDialog):
-    """
-    Class implementing a dialog to show the 'whois' information.
-    """
-    def __init__(self, domain, whois, parent=None):
-        """
-        Constructor
-        
-        @param domain domain name
-        @type str
-        @param whois whois information
-        @type str
-        @param parent reference to the parent widget
-        @type QWidget
-        """
-        super(VirusTotalWhoisDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.headerLabel.setText(
-            self.tr("<b>Whois information for domain {0}</b>").format(domain))
-        self.headerPixmap.setPixmap(
-            UI.PixmapCache.getPixmap("virustotal.png"))
-        self.whoisEdit.setPlainText(whois)
--- a/eric6/Helpviewer/VirusTotal/VirusTotalWhoisDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>VirusTotalWhoisDialog</class>
- <widget class="QDialog" name="VirusTotalWhoisDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>400</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Whois Information</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_4">
-     <item>
-      <widget class="QLabel" name="headerPixmap"/>
-     </item>
-     <item>
-      <widget class="QLabel" name="headerLabel">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="Line" name="line9_3">
-     <property name="frameShape">
-      <enum>QFrame::HLine</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Sunken</enum>
-     </property>
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QPlainTextEdit" name="whoisEdit">
-     <property name="tabChangesFocus">
-      <bool>true</bool>
-     </property>
-     <property name="lineWrapMode">
-      <enum>QPlainTextEdit::NoWrap</enum>
-     </property>
-     <property name="readOnly">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>VirusTotalWhoisDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>248</x>
-     <y>254</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>VirusTotalWhoisDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>316</x>
-     <y>260</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/VirusTotal/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package containing the VirusTotal interface.
-"""
--- a/eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlash.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,321 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the Flash blocker.
-"""
-
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, QUrl, Qt, QByteArray, QTimer
-from PyQt5.QtGui import QCursor
-from PyQt5.QtWidgets import QWidget, QMenu, QDialog, QLabel, QFormLayout
-from PyQt5.QtNetwork import QNetworkRequest
-from PyQt5.QtWebKit import QWebElement, QWebElementCollection
-from PyQt5.QtWebKitWidgets import QWebHitTestResult, QWebView
-
-from .Ui_ClickToFlash import Ui_ClickToFlash
-
-import UI.PixmapCache
-
-
-class ClickToFlash(QWidget, Ui_ClickToFlash):
-    """
-    Class implementing the Flash blocker.
-    """
-    _acceptedUrl = QUrl()
-    _acceptedArgNames = []
-    _acceptedArgValues = []
-
-    def __init__(self, plugin, mimeType, url, argumentNames, argumentValues,
-                 parent=None):
-        """
-        Constructor
-        
-        @param plugin reference to the plug-in (ClickToFlashPlugin)
-        @param mimeType MIME type for the plug-in (string)
-        @param url requested URL (QUrl)
-        @param argumentNames list of argument names (list of strings)
-        @param argumentValues list of argument values (list of strings)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(ClickToFlash, self).__init__(parent)
-        
-        # Check AdBlock first
-        import Helpviewer.HelpWindow
-        manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
-        if manager.isEnabled():
-            urlString = bytes(url.toEncoded()).decode()
-            urlDomain = url.host()
-            for subscription in manager.subscriptions():
-                blockedRule = subscription.match(
-                    QNetworkRequest(url), urlDomain, urlString)
-                if blockedRule:
-                    QTimer.singleShot(200, self.__hideAdBlocked)
-                    return
-        
-        self.setupUi(self)
-        
-        self.__swapping = False
-        self.__element = QWebElement()
-        
-        self.__plugin = plugin
-        self.__url = QUrl(url)
-        self.__argumentNames = argumentNames[:]
-        self.__argumentValues = argumentValues[:]
-        self.__mimeType = mimeType
-        
-        self.setContextMenuPolicy(Qt.CustomContextMenu)
-        self.customContextMenuRequested.connect(self.__showContextMenu)
-        self.setToolTip(self.__url.toString())
-        
-        iconName = plugin.getIconName(mimeType)
-        if iconName:
-            self.loadFlashButton.setIcon(UI.PixmapCache.getIcon(iconName))
-        else:
-            self.loadFlashButton.setText(self.tr("Load"))
-    
-    @pyqtSlot()
-    def on_loadFlashButton_clicked(self):
-        """
-        Private slot handling the flash activation.
-        """
-        self.__load()
-    
-    def __showContextMenu(self):
-        """
-        Private slot to show the context menu.
-        """
-        menu = QMenu()
-        act = menu.addAction(self.tr("Object blocked by ClickToFlash"))
-        font = act.font()
-        font.setBold(True)
-        act.setFont(font)
-        menu.addAction(
-            self.tr("Show information about object"), self.__showInfo)
-        menu.addSeparator()
-        menu.addAction(self.tr("Load"), self.__load)
-        menu.addAction(self.tr("Delete object"), self.__hideAdBlocked)
-        menu.addSeparator()
-        host = self.__url.host()
-        add = menu.addAction(
-            self.tr("Add '{0}' to Whitelist").format(host),
-            self.__addToWhitelist)
-        remove = menu.addAction(
-            self.tr("Remove '{0}' from Whitelist").format(host),
-            self.__removeFromWhitelist)
-        onWhitelist = self.__plugin.onWhitelist(host)
-        add.setEnabled(not onWhitelist)
-        remove.setEnabled(onWhitelist)
-        menu.addSeparator()
-        menu.addAction(self.tr("Configure Whitelist"), self.__configure)
-        menu.actions()[0].setEnabled(False)
-        
-        menu.exec_(QCursor.pos())
-    
-    def swapping(self):
-        """
-        Public method to check, if the plug-in is swapping.
-        
-        @return flag indicating the swapping status (boolean)
-        """
-        return self.__swapping
-    
-    def __configure(self):
-        """
-        Private slot to configure the whitelist.
-        """
-        self.__plugin.configure()
-    
-    def __addToWhitelist(self):
-        """
-        Private slot to add the host to the whitelist.
-        """
-        self.__plugin.addToWhitelist(self.__url.host())
-    
-    def __removeFromWhitelist(self):
-        """
-        Private slot to remove the host from the whitelist.
-        """
-        self.__plugin.removeFromWhitelist(self.__url.host())
-    
-    def __load(self, allPlayers=False):
-        """
-        Private slot to load the flash content.
-        
-        @param allPlayers flag indicating to load all flash players (boolean)
-        """
-        self.__findElement()
-        if not self.__element.isNull():
-            substitute = self.__element.clone()
-            substitute.setAttribute("type", self.__mimeType)
-            self.__element.replace(substitute)
-
-            ClickToFlash._acceptedUrl = self.__url
-            ClickToFlash._acceptedArgNames = self.__argumentNames
-            ClickToFlash._acceptedArgValues = self.__argumentValues
-    
-    def __findElement(self):
-        """
-        Private method to find the element belonging to this ClickToFlash
-        instance.
-        """
-        parent = self.parentWidget()
-        view = None
-        while parent is not None:
-            if isinstance(parent, QWebView):
-                view = parent
-                break
-            parent = parent.parentWidget()
-        if view is None:
-            return
-        
-        objectPos = view.mapFromGlobal(self.loadFlashButton.mapToGlobal(
-            self.loadFlashButton.pos()))
-        objectFrame = view.page().frameAt(objectPos)
-        hitResult = QWebHitTestResult()
-        hitElement = QWebElement()
-        
-        if objectFrame is not None:
-            hitResult = objectFrame.hitTestContent(objectPos)
-            hitElement = hitResult.element()
-        
-        if not hitElement.isNull() and \
-           hitElement.tagName().lower() in ["embed", "object"]:
-            self.__element = hitElement
-            return
-        
-        # hit test failed, trying to find element by src
-        # attribute in elements of all frames on page (although less accurate
-        frames = []
-        frames.append(view.page().mainFrame())
-        while frames:
-            frame = frames.pop(0)
-            if not frame:
-                continue
-            docElement = frame.documentElement()
-            elements = QWebElementCollection()
-            elements.append(docElement.findAll("embed"))
-            elements.append(docElement.findAll("object"))
-            
-            for element in elements:
-                if not self.__checkElement(element) and \
-                   not self.__checkUrlOnElement(element, view):
-                    continue
-                self.__element = element
-                return
-            frames.extend(frame.childFrames())
-    
-    def __checkUrlOnElement(self, element, view):
-        """
-        Private slot to check the URL of an element.
-        
-        @param element reference to the element to check (QWebElement)
-        @param view reference to the view object (QWebView)
-        @return flag indicating a positive result (boolean)
-        """
-        checkString = element.attribute("src")
-        if checkString == "":
-            checkString = element.attribute("data")
-        if checkString == "":
-            checkString = element.attribute("value")
-        
-        checkString = view.url().resolved(QUrl(checkString)).toString(
-            QUrl.RemoveQuery)
-        return self.__url.toEncoded().contains(
-            QByteArray(checkString.encode("utf-8")))
-    
-    def __checkElement(self, element):
-        """
-        Private slot to check an element against the saved arguments.
-        
-        @param element reference to the element to check (QWebElement)
-        @return flag indicating a positive result (boolean)
-        """
-        if self.__argumentNames == element.attributeNames():
-            for name in self.__argumentNames:
-                if element.attribute(name) not in self.__argumentValues:
-                    return False
-            
-            return True
-        
-        return False
-    
-    def __hideAdBlocked(self):
-        """
-        Private slot to hide the object.
-        """
-        self.__findElement()
-        if not self.__element.isNull():
-            self.__element.setStyleProperty("display", "none")
-        else:
-            self.hide()
-    
-    def __showInfo(self):
-        """
-        Private slot to show information about the blocked object.
-        """
-        dlg = QDialog()
-        dlg.setWindowTitle(self.tr("Flash Object"))
-        dlg.setSizeGripEnabled(True)
-        layout = QFormLayout(dlg)
-        layout.addRow(QLabel(self.tr("<b>Attribute Name</b>")),
-                      QLabel(self.tr("<b>Value</b>")))
-        
-        index = 0
-        for name in self.__argumentNames:
-            nameLabel = QLabel(self.__elide(name, length=30))
-            value = self.__argumentValues[index]
-            valueLabel = QLabel(self.__elide(value, length=60))
-            valueLabel.setTextInteractionFlags(
-                Qt.TextSelectableByMouse | Qt.LinksAccessibleByMouse)
-            layout.addRow(nameLabel, valueLabel)
-            
-            index += 1
-        
-        if index == 0:
-            layout.addRow(QLabel(self.tr("No information available.")))
-        
-        dlg.setMaximumHeight(500)
-        dlg.setMaximumWidth(500)
-        dlg.exec_()
-    
-    def __elide(self, txt, mode=Qt.ElideMiddle, length=40):
-        """
-        Private method to elide some text.
-        
-        @param txt text to be elided (string)
-        @keyparam mode elide mode (Qt.TextElideMode)
-        @keyparam length amount of characters to be used (integer)
-        @return the elided text (string)
-        """
-        if mode == Qt.ElideNone or len(txt) < length:
-            return txt
-        elif mode == Qt.ElideLeft:
-            return "...{0}".format(txt[-length:])
-        elif mode == Qt.ElideMiddle:
-            return "{0}...{1}".format(txt[:length // 2], txt[-(length // 2):])
-        elif mode == Qt.ElideRight:
-            return "{0}...".format(txt[:length])
-        else:
-            # just in case
-            return txt
-    
-    @classmethod
-    def isAlreadyAccepted(cls, url, argumentNames, argumentValues):
-        """
-        Class method to check, if the given parameter combination is being
-        accepted.
-        
-        @param url URL to be checked for (QUrl)
-        @param argumentNames argument names to be checked for (list of strings)
-        @param argumentValues argument values to be checked for (list of
-            strings)
-        @return flag indicating that this was already accepted (boolean)
-        """
-        return url == cls._acceptedUrl and \
-            argumentNames == cls._acceptedArgNames and \
-            argumentValues == cls._acceptedArgValues
--- a/eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlash.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>ClickToFlash</class>
- <widget class="QWidget" name="ClickToFlash">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>200</width>
-    <height>200</height>
-   </rect>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <item row="0" column="1">
-    <spacer name="verticalSpacer_2">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>20</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item row="1" column="0">
-    <spacer name="horizontalSpacer">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>20</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item row="1" column="1">
-    <widget class="QToolButton" name="loadFlashButton">
-     <property name="toolTip">
-      <string>Press to activate the content; context menu for more options</string>
-     </property>
-     <property name="iconSize">
-      <size>
-       <width>128</width>
-       <height>128</height>
-      </size>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="2">
-    <spacer name="horizontalSpacer_2">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>20</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item row="2" column="1">
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>20</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlashPlugin.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the Flash blocker plug-in.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QDialog
-from PyQt5.QtWebKit import QWebPluginFactory
-
-from ..WebPluginInterface import WebPluginInterface
-
-import Preferences
-
-
-class ClickToFlashPlugin(WebPluginInterface):
-    """
-    Class implementing the flash blocker plug-in.
-    """
-    ClickToFlashData = {
-        "application/x-shockwave-flash": {
-            "extensions": ["swf"],
-            "icon": "flashBlock-flash.png"
-        },
-        "application/futuresplash": {
-            "extensions": ["spl"],
-            "icon": "flashBlock-flash.png"
-        },
-        "application/x-director": {
-            "extensions": ["dir", "dcr", "dxr"],
-            "icon": "flashBlock-director.png"
-        },
-        "application/x-authorware-map": {
-            "extensions": ["aam"],
-            "icon": "flashBlock-authorware.png"
-        },
-        "application/x-authorware-seg": {
-            "extensions": ["aas"],
-            "icon": "flashBlock-authorware.png"
-        },
-        "application/x-authorware-bin": {
-            "extensions": ["aab", "x32", "u32", "vox"],
-            "icon": "flashBlock-authorware.png"
-        },
-        "image/x-freehand": {
-            "extensions": ["fh4", "fh7", "fh5", "fhc", "fh"],
-            "icon": "flashBlock-freehand.png"
-        },
-        "application/x-silverlight-app": {
-            "extensions": ["xap"],
-            "icon": "flashBlock-silverlight.png"
-        },
-        "application/xaml+xml": {
-            "extensions": ["xaml"],
-            "icon": "flashBlock-silverlight.png"
-        },
-        "application/x-ms-xbap": {
-            "extensions": ["xbap"],
-            "icon": "flashBlock-silverlight.png"
-        },
-        "application/x-java-applet": {
-            "extensions": [],
-            "icon": "flashBlock-java.png"
-        },
-    }
-    
-    def __init__(self):
-        """
-        Constructor
-        """
-        self.__loaded = False
-        self.__whitelist = []
-    
-    def metaPlugin(self):
-        """
-        Public method to create a meta plug-in object containing plug-in info.
-        
-        @return meta plug-in object (QWebPluginFactory.Plugin)
-        """
-        plugin = QWebPluginFactory.Plugin()
-        plugin.name = "ClickToFlashPlugin"
-        mimeTypes = plugin.mimeTypes
-        for mime, value in ClickToFlashPlugin.ClickToFlashData.items():
-            mimeType = QWebPluginFactory.MimeType()
-            mimeType.name = mime
-            extensions = value["extensions"]
-            if extensions:
-                fileExtensions = mimeType.fileExtensions
-                for extension in extensions:
-                    fileExtensions.append(extension)
-                mimeType.fileExtensions = fileExtensions
-            mimeTypes.append(mimeType)
-        plugin.mimeTypes = mimeTypes
-        
-        return plugin
-    
-    def create(self, mimeType, url, argumentNames, argumentValues):
-        """
-        Public method to create a plug-in instance for the given data.
-        
-        @param mimeType MIME type for the plug-in (string)
-        @param url URL for the plug-in (QUrl)
-        @param argumentNames list of argument names (list of strings)
-        @param argumentValues list of argument values (list of strings)
-        @return reference to the created object (QWidget)
-        """
-        self.__load()
-        if not self.__enabled():
-            return None
-        
-        if self.onWhitelist(url.host()):
-            return None
-        
-        from .ClickToFlash import ClickToFlash
-        
-        if ClickToFlash.isAlreadyAccepted(url, argumentNames, argumentValues):
-            return None
-        
-        ctf = ClickToFlash(self, mimeType, url, argumentNames, argumentValues)
-        return ctf
-    
-    def configure(self):
-        """
-        Public method to configure the plug-in.
-        """
-        from .ClickToFlashWhitelistDialog import ClickToFlashWhitelistDialog
-        self.__load()
-        dlg = ClickToFlashWhitelistDialog(self.__whitelist)
-        if dlg.exec_() == QDialog.Accepted:
-            self.__whitelist = dlg.getWhitelist()
-            self.__save()
-    
-    def isAnonymous(self):
-        """
-        Public method to indicate an anonymous plug-in.
-        
-        @return flag indicating anonymous state (boolean)
-        """
-        return True
-    
-    def onWhitelist(self, host):
-        """
-        Public method to check, if a host is on the whitelist.
-        
-        @param host host to check for (string)
-        @return flag indicating presence in the whitelist (boolean)
-        """
-        return host in self.__whitelist or \
-            "www." + host in self.__whitelist or \
-            host.replace("www.", "") in self.__whitelist
-    
-    def addToWhitelist(self, host):
-        """
-        Public method to add a host to the whitelist.
-        
-        @param host host to be added (string)
-        """
-        if not self.onWhitelist(host):
-            self.__whitelist.append(host)
-            self.__save()
-    
-    def removeFromWhitelist(self, host):
-        """
-        Public method to remove a host from the whitelist.
-        
-        @param host host to be removed (string)
-        """
-        if self.onWhitelist(host):
-            if host in self.__whitelist:
-                self.__whitelist.remove(host)
-            elif "www." + host in self.__whitelist:
-                self.__whitelist.remove("www." + host)
-            elif host.replace("www.", "") in self.__whitelist:
-                self.__whitelist.remove(host.replace("www.", ""))
-            self.__save()
-    
-    def __load(self):
-        """
-        Private method to load the configuration.
-        """
-        if self.__loaded:
-            return
-        
-        self.__loaded = True
-        self.__whitelist = Preferences.getHelp("ClickToFlashWhitelist")
-    
-    def __save(self):
-        """
-        Private method to save the configuration.
-        """
-        Preferences.setHelp("ClickToFlashWhitelist", self.__whitelist)
-    
-    def __enabled(self):
-        """
-        Private method to check, if the plug-in is enabled.
-        
-        @return enabled status (boolean)
-        """
-        return Preferences.getHelp("ClickToFlashEnabled")
-    
-    @classmethod
-    def getIconName(cls, mimeType):
-        """
-        Class method to get the icon name for the mime type.
-        
-        @param mimeType mime type to get the icon for (string)
-        @return name of the icon file (string)
-        """
-        if mimeType in cls.ClickToFlashData:
-            return cls.ClickToFlashData[mimeType]["icon"]
-        
-        return ""
--- a/eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlashWhitelistDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to manage the ClickToFlash whitelist.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, Qt, QSortFilterProxyModel, QStringListModel
-from PyQt5.QtWidgets import QDialog, QInputDialog, QLineEdit
-
-from .Ui_ClickToFlashWhitelistDialog import Ui_ClickToFlashWhitelistDialog
-
-import UI.PixmapCache
-
-
-class ClickToFlashWhitelistDialog(QDialog, Ui_ClickToFlashWhitelistDialog):
-    """
-    Class implementing a dialog to manage the ClickToFlash whitelist.
-    """
-    def __init__(self, whitelist, parent=None):
-        """
-        Constructor
-        
-        @param whitelist list of whitelisted hosts (list of string)
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(ClickToFlashWhitelistDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.iconLabel.setPixmap(UI.PixmapCache.getPixmap("flashBlock48.png"))
-        
-        self.__model = QStringListModel(whitelist[:], self)
-        self.__model.sort(0)
-        self.__proxyModel = QSortFilterProxyModel(self)
-        self.__proxyModel.setFilterCaseSensitivity(Qt.CaseInsensitive)
-        self.__proxyModel.setSourceModel(self.__model)
-        self.whitelist.setModel(self.__proxyModel)
-        
-        self.searchEdit.textChanged.connect(
-            self.__proxyModel.setFilterFixedString)
-        
-        self.removeButton.clicked.connect(self.whitelist.removeSelected)
-        self.removeAllButton.clicked.connect(self.whitelist.removeAll)
-    
-    @pyqtSlot()
-    def on_addButton_clicked(self):
-        """
-        Private slot to add an entry to the whitelist.
-        """
-        host, ok = QInputDialog.getText(
-            self,
-            self.tr("ClickToFlash Whitelist"),
-            self.tr("Enter host name to add to whitelist:"),
-            QLineEdit.Normal)
-        if ok and host != "" and host not in self.__model.stringList():
-            self.__model.insertRow(self.__model.rowCount())
-            self.__model.setData(
-                self.__model.index(self.__model.rowCount() - 1), host)
-            self.__model.sort(0)
-    
-    def getWhitelist(self):
-        """
-        Public method to get the whitelisted hosts.
-        
-        @return list of whitelisted hosts (list of string)
-        """
-        return self.__model.stringList()
--- a/eric6/Helpviewer/WebPlugins/ClickToFlash/ClickToFlashWhitelistDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>ClickToFlashWhitelistDialog</class>
- <widget class="QDialog" name="ClickToFlashWhitelistDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>350</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>ClickToFlash Whitelist</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QGridLayout" name="gridLayout_2">
-     <property name="horizontalSpacing">
-      <number>0</number>
-     </property>
-     <item row="0" column="0" rowspan="2">
-      <widget class="QLabel" name="iconLabel">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string notr="true">Icon</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1" colspan="3">
-      <spacer name="horizontalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>338</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item row="1" column="1">
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item row="1" column="2">
-      <widget class="E5ClearableLineEdit" name="searchEdit">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="minimumSize">
-        <size>
-         <width>300</width>
-         <height>0</height>
-        </size>
-       </property>
-       <property name="toolTip">
-        <string>Enter search term for hosts</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="4" column="1">
-      <spacer name="verticalSpacer">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>40</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item row="0" column="1">
-      <widget class="QPushButton" name="addButton">
-       <property name="toolTip">
-        <string>Press to add site to the whitelist</string>
-       </property>
-       <property name="text">
-        <string>&amp;Add...</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="Line" name="line">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QPushButton" name="removeButton">
-       <property name="toolTip">
-        <string>Press to remove the selected entries</string>
-       </property>
-       <property name="text">
-        <string>&amp;Remove</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="1">
-      <widget class="QPushButton" name="removeAllButton">
-       <property name="toolTip">
-        <string>Press to remove all entries</string>
-       </property>
-       <property name="text">
-        <string>R&amp;emove All</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="0" rowspan="5">
-      <widget class="E5ListView" name="whitelist">
-       <property name="alternatingRowColors">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5ListView</class>
-   <extends>QListView</extends>
-   <header>E5Gui/E5ListView.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>searchEdit</tabstop>
-  <tabstop>whitelist</tabstop>
-  <tabstop>addButton</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>removeAllButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>ClickToFlashWhitelistDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>227</x>
-     <y>329</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>ClickToFlashWhitelistDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>295</x>
-     <y>335</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/WebPlugins/ClickToFlash/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing the flash blocker.
-"""
--- a/eric6/Helpviewer/WebPlugins/WebPluginFactory.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the web plug-in factory.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWebKit import QWebPluginFactory
-
-
-class WebPluginFactory(QWebPluginFactory):
-    """
-    Class implementing the web plug-in factory.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(WebPluginFactory, self).__init__(parent)
-        
-        self.__loaded = False
-    
-    def create(self, mimeType, url, argumentNames, argumentValues):
-        """
-        Public method to create a plug-in instance for the given MIME type with
-        the given data.
-        
-        @param mimeType MIME type for the plug-in (string)
-        @param url URL for the plug-in (QUrl)
-        @param argumentNames list of argument names (list of strings)
-        @param argumentValues list of argument values (list of strings)
-        @return reference to the created object (QObject)
-        """
-        if not self.__loaded:
-            self.__initialize()
-        
-        if mimeType in self.__pluginsCache:
-            return self.__pluginsCache[mimeType].create(
-                mimeType, url, argumentNames, argumentValues)
-        else:
-            return None
-    
-    def plugins(self):
-        """
-        Public method to get a list of plug-ins.
-        
-        @return list of plug-ins (list of QWebPluginFactory.Plugin)
-        """
-        if not self.__loaded:
-            self.__initialize()
-        
-        plugins = []
-        for plugin in self.__plugins.values():
-            if not plugin.isAnonymous():
-                pluginInfo = plugin.metaPlugin()
-                plugins.append(pluginInfo)
-        return plugins
-    
-    def refreshPlugins(self):
-        """
-        Public method to refresh the list of supported plug-ins.
-        """
-        self.__initialize()
-        super(WebPluginFactory, self).refreshPlugins()
-    
-    def __initialize(self):
-        """
-        Private method to initialize the factory.
-        """
-        self.__loaded = True
-        self.__plugins = {}
-        self.__pluginsCache = {}
-        
-        from .ClickToFlash.ClickToFlashPlugin import ClickToFlashPlugin
-        self.__plugins["ClickToFlash"] = ClickToFlashPlugin()
-        
-        for plugin in self.__plugins.values():
-            for pluginMimeType in plugin.metaPlugin().mimeTypes:
-                self.__pluginsCache[pluginMimeType.name] = plugin
-    
-    def plugin(self, name):
-        """
-        Public method to get a reference to the named plug-in.
-        
-        @param name name of the plug-in (string)
-        @return reference to the named plug-in
-        """
-        if not self.__loaded:
-            self.__initialize()
-        
-        if name in self.__plugins:
-            return self.__plugins[name]
-        
-        return None
--- a/eric6/Helpviewer/WebPlugins/WebPluginInterface.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the web plug-in interface.
-"""
-
-
-from __future__ import unicode_literals
-
-
-class WebPluginInterface(object):
-    """
-    Class implementing the web plug-in interface.
-    """
-    def metaPlugin(self):
-        """
-        Public method to create a meta plug-in object containing plug-in info.
-        
-        @return meta plug-in object (QWebPluginFactory.Plugin)
-        @exception NotImplementedError raised to indicate that this method
-            must be implemented by subclasses
-        """
-        raise NotImplementedError
-    
-    def create(self, mimeType, url, argumentNames, argumentValues):
-        """
-        Public method to create a plug-in instance for the given data.
-        
-        @param mimeType MIME type for the plug-in (string)
-        @param url URL for the plug-in (QUrl)
-        @param argumentNames list of argument names (list of strings)
-        @param argumentValues list of argument values (list of strings)
-        @return reference to the created object (QWidget)
-        @exception NotImplementedError raised to indicate that this method
-            must be implemented by subclasses
-        """
-        raise NotImplementedError
-    
-    def configure(self):
-        """
-        Public method to configure the plug-in.
-        
-        @exception NotImplementedError raised to indicate that this method
-            must be implemented by subclasses
-        """
-        raise NotImplementedError
-    
-    def isAnonymous(self):
-        """
-        Public method to indicate an anonymous plug-in.
-        
-        @return flag indicating anonymous state (boolean)
-        """
-        return False
--- a/eric6/Helpviewer/WebPlugins/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing web plug-ins for the eric6 web browser.
-"""
--- a/eric6/Helpviewer/ZoomManager/ZoomManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,211 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a manager for site specific zoom level settings.
-"""
-
-from __future__ import unicode_literals
-
-import json
-
-from PyQt5.QtCore import pyqtSignal, QObject
-
-from Utilities.AutoSaver import AutoSaver
-import Preferences
-
-
-class ZoomManager(QObject):
-    """
-    Class implementing a manager for site specific zoom level settings.
-    
-    @signal changed() emitted to indicate a change of the zoom level
-    """
-    changed = pyqtSignal()
-    
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent object (QObject)
-        """
-        super(ZoomManager, self).__init__(parent)
-        
-        self.__zoomDB = {}
-        
-        self.__saveTimer = AutoSaver(self, self.save)
-        
-        self.changed.connect(self.__saveTimer.changeOccurred)
-        
-        self.__loaded = False
-    
-    def close(self):
-        """
-        Public method to close the bookmark manager.
-        """
-        self.__saveTimer.saveIfNeccessary()
-    
-    def load(self):
-        """
-        Public method to load the bookmarks.
-        """
-        if self.__loaded:
-            return
-        
-        dbString = Preferences.getHelp("ZoomValuesDB")
-        if dbString:
-            try:
-                db = json.loads(dbString)
-                self.__zoomDB = db
-            except ValueError:
-                # ignore silently
-                pass
-        
-        self.__loaded = True
-    
-    def save(self):
-        """
-        Public method to save the bookmarks.
-        """
-        if not self.__loaded:
-            return
-        
-        dbString = json.dumps(self.__zoomDB)
-        Preferences.setHelp("ZoomValuesDB", dbString)
-    
-    def __keyFromUrl(self, url):
-        """
-        Private method to generate a DB key for an URL.
-        
-        @param url URL to generate a key for
-        @type QUrl
-        @return key for the given URL
-        @rtype str
-        """
-        if url.isEmpty():
-            key = ""
-        else:
-            scheme = url.scheme()
-            host = url.host()
-            if host:
-                key = host
-            elif scheme == "file":
-                path = url.path()
-                key = path.rsplit("/", 1)[0]
-            else:
-                key = ""
-        
-        return key
-    
-    def setZoomValue(self, url, zoomValue):
-        """
-        Public method to record the zoom value for the given URL.
-        
-        Note: Only zoom values not equal 100% are recorded.
-        
-        @param url URL of the page to remember the zoom value for
-        @type QUrl
-        @param zoomValue zoom value for the URL
-        @type int
-        """
-        self.load()
-        
-        key = self.__keyFromUrl(url)
-        if not key:
-            return
-        
-        if ((zoomValue == 100 and key not in self.__zoomDB) or
-                (key in self.__zoomDB and self.__zoomDB[key] == zoomValue)):
-            return
-        
-        if zoomValue == 100:
-            del self.__zoomDB[key]
-        else:
-            self.__zoomDB[key] = zoomValue
-        
-        self.changed.emit()
-    
-    def zoomValue(self, url):
-        """
-        Public method to get the zoom value for an URL.
-        
-        @param url URL of the page to get the zoom value for
-        @type QUrl
-        @return zoomValue zoom value for the URL
-        @rtype int
-        """
-        self.load()
-        
-        key = self.__keyFromUrl(url)
-        if not key:
-            zoom = 100
-        
-        if key in self.__zoomDB:
-            zoom = self.__zoomDB[key]
-        else:
-            # default zoom value (i.e. no zoom)
-            zoom = 100
-        
-        return zoom
-    
-    def clear(self):
-        """
-        Public method to clear the saved zoom values.
-        """
-        self.__zoomDB = {}
-        self.__loaded = True
-        
-        self.changed.emit()
-    
-    def removeZoomValue(self, site):
-        """
-        Public method to remove a zoom value entry.
-        
-        @param site web site name
-        @type str
-        """
-        self.load()
-        
-        if site in self.__zoomDB:
-            del self.__zoomDB[site]
-            self.changed.emit()
-    
-    def allSiteNames(self):
-        """
-        Public method to get a list of all site names.
-        
-        @return sorted list of all site names
-        @rtype list of str
-        """
-        self.load()
-        
-        return sorted(self.__zoomDB.keys())
-    
-    def sitesCount(self):
-        """
-        Public method to get the number of available sites.
-        
-        @return number of sites
-        @rtype int
-        """
-        self.load()
-        
-        return len(self.__zoomDB)
-    
-    def siteInfo(self, site):
-        """
-        Public method to get the zoom value for the site.
-        
-        @param site web site name
-        @type str
-        @return zoom value for the site
-        @rtype int
-        """
-        self.load()
-        
-        if site not in self.__zoomDB:
-            return None
-        
-        return self.__zoomDB[site]
--- a/eric6/Helpviewer/ZoomManager/ZoomValuesDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a dialog to show all saved zoom values.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QSortFilterProxyModel
-from PyQt5.QtGui import QFont, QFontMetrics
-from PyQt5.QtWidgets import QDialog
-
-from .Ui_ZoomValuesDialog import Ui_ZoomValuesDialog
-
-
-class ZoomValuesDialog(QDialog, Ui_ZoomValuesDialog):
-    """
-    Class implementing a dialog to show all saved zoom values.
-    """
-    def __init__(self, parent=None):
-        """
-        Constructor
-        
-        @param parent reference to the parent widget (QWidget)
-        """
-        super(ZoomValuesDialog, self).__init__(parent)
-        self.setupUi(self)
-        
-        self.removeButton.clicked.connect(
-            self.zoomValuesTable.removeSelected)
-        self.removeAllButton.clicked.connect(self.zoomValuesTable.removeAll)
-        
-        import Helpviewer.HelpWindow
-        from .ZoomValuesModel import ZoomValuesModel
-        
-        self.zoomValuesTable.verticalHeader().hide()
-        self.__zoomValuesModel = ZoomValuesModel(
-            Helpviewer.HelpWindow.HelpWindow.zoomManager(), self)
-        self.__proxyModel = QSortFilterProxyModel(self)
-        self.__proxyModel.setSourceModel(self.__zoomValuesModel)
-        self.searchEdit.textChanged.connect(
-            self.__proxyModel.setFilterFixedString)
-        self.zoomValuesTable.setModel(self.__proxyModel)
-        
-        fm = QFontMetrics(QFont())
-        height = fm.height() + fm.height() // 3
-        self.zoomValuesTable.verticalHeader().setDefaultSectionSize(height)
-        self.zoomValuesTable.verticalHeader().setMinimumSectionSize(-1)
-        
-        self.__calculateHeaderSizes()
-    
-    def __calculateHeaderSizes(self):
-        """
-        Private method to calculate the section sizes of the horizontal header.
-        """
-        fm = QFontMetrics(QFont())
-        for section in range(self.__zoomValuesModel.columnCount()):
-            header = self.zoomValuesTable.horizontalHeader()\
-                .sectionSizeHint(section)
-            if section == 0:
-                header = fm.width("extraveryveryverylongsitename")
-            elif section == 1:
-                header = fm.width("averagelongzoomvalue")
-            buffer = fm.width("mm")
-            header += buffer
-            self.zoomValuesTable.horizontalHeader()\
-                .resizeSection(section, header)
-        self.zoomValuesTable.horizontalHeader().setStretchLastSection(True)
--- a/eric6/Helpviewer/ZoomManager/ZoomValuesDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,191 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>ZoomValuesDialog</class>
- <widget class="QDialog" name="ZoomValuesDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>350</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Saved Zoom Values</string>
-  </property>
-  <property name="sizeGripEnabled">
-   <bool>true</bool>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <layout class="QHBoxLayout" name="horizontalLayout">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="E5ClearableLineEdit" name="searchEdit">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="minimumSize">
-          <size>
-           <width>300</width>
-           <height>0</height>
-          </size>
-         </property>
-         <property name="toolTip">
-          <string>Enter search term</string>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="E5TableView" name="zoomValuesTable">
-     <property name="alternatingRowColors">
-      <bool>true</bool>
-     </property>
-     <property name="selectionBehavior">
-      <enum>QAbstractItemView::SelectRows</enum>
-     </property>
-     <property name="textElideMode">
-      <enum>Qt::ElideMiddle</enum>
-     </property>
-     <property name="showGrid">
-      <bool>false</bool>
-     </property>
-     <property name="sortingEnabled">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <item>
-      <widget class="QPushButton" name="removeButton">
-       <property name="toolTip">
-        <string>Press to remove the selected entries</string>
-       </property>
-       <property name="text">
-        <string>&amp;Remove</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="removeAllButton">
-       <property name="toolTip">
-        <string>Press to remove all entries</string>
-       </property>
-       <property name="text">
-        <string>Remove &amp;All</string>
-       </property>
-       <property name="autoDefault">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>208</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Close</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5ClearableLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>E5Gui/E5LineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>E5TableView</class>
-   <extends>QTableView</extends>
-   <header>E5Gui/E5TableView.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>searchEdit</tabstop>
-  <tabstop>zoomValuesTable</tabstop>
-  <tabstop>removeButton</tabstop>
-  <tabstop>removeAllButton</tabstop>
-  <tabstop>buttonBox</tabstop>
- </tabstops>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>ZoomValuesDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>237</x>
-     <y>340</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>157</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>ZoomValuesDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>325</x>
-     <y>340</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>286</x>
-     <y>274</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
--- a/eric6/Helpviewer/ZoomManager/ZoomValuesModel.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a model for zoom values management.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import Qt, QModelIndex, QAbstractTableModel
-
-
-class ZoomValuesModel(QAbstractTableModel):
-    """
-    Class implementing a model for zoom values management.
-    """
-    def __init__(self, manager, parent=None):
-        """
-        Constructor
-        
-        @param manager reference to the zoom values manager (ZoomManager)
-        @param parent reference to the parent object (QObject)
-        """
-        super(ZoomValuesModel, self).__init__(parent)
-        
-        self.__manager = manager
-        manager.changed.connect(self.__zoomValuesChanged)
-        
-        self.__headers = [
-            self.tr("Website"),
-            self.tr("Zoom Value [%]"),
-        ]
-    
-    def __zoomValuesChanged(self):
-        """
-        Private slot handling a change of the registered zoom values.
-        """
-        self.beginResetModel()
-        self.endResetModel()
-    
-    def removeRows(self, row, count, parent=None):
-        """
-        Public method to remove entries from the model.
-        
-        @param row start row (integer)
-        @param count number of rows to remove (integer)
-        @param parent parent index (QModelIndex)
-        @return flag indicating success (boolean)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return False
-        
-        if count <= 0:
-            return False
-        
-        lastRow = row + count - 1
-        
-        self.beginRemoveRows(parent, row, lastRow)
-        
-        siteList = self.__manager.allSiteNames()
-        for index in range(row, lastRow + 1):
-            self.__manager.removeZoomValue(siteList[index])
-        
-        return True
-    
-    def rowCount(self, parent=None):
-        """
-        Public method to get the number of rows of the model.
-        
-        @param parent parent index (QModelIndex)
-        @return number of rows (integer)
-        """
-        if parent is None:
-            parent = QModelIndex()
-        
-        if parent.isValid():
-            return 0
-        else:
-            return self.__manager.sitesCount()
-    
-    def columnCount(self, parent=None):
-        """
-        Public method to get the number of columns of the model.
-        
-        @param parent parent index (QModelIndex) (Unused)
-        @return number of columns (integer)
-        """
-        return len(self.__headers)
-    
-    def data(self, index, role):
-        """
-        Public method to get data from the model.
-        
-        @param index index to get data for (QModelIndex)
-        @param role role of the data to retrieve (integer)
-        @return requested data
-        """
-        if index.row() >= self.__manager.sitesCount() or index.row() < 0:
-            return None
-        
-        site = self.__manager.allSiteNames()[index.row()]
-        siteInfo = self.__manager.siteInfo(site)
-        
-        if siteInfo is None:
-            return None
-        
-        if role == Qt.DisplayRole:
-            if index.column() == 0:
-                return site
-            elif index.column() == 1:
-                return siteInfo
-        
-        return None
-    
-    def headerData(self, section, orientation, role=Qt.DisplayRole):
-        """
-        Public method to get the header data.
-        
-        @param section section number (integer)
-        @param orientation header orientation (Qt.Orientation)
-        @param role data role (integer)
-        @return header data
-        """
-        if orientation == Qt.Horizontal and role == Qt.DisplayRole:
-            try:
-                return self.__headers[section]
-            except IndexError:
-                pass
-        
-        return None
--- a/eric6/Helpviewer/ZoomManager/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing a manager for site specific zoom level settings.
-"""
--- a/eric6/Helpviewer/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2002 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package implementing a little web browser.
-
-The web browser is a little HTML browser for the display of HTML
-help files like the Qt Online Documentation and for browsing the internet.
-It may be used as a standalone version as well by using the eric6_helpviewer.py
-script found in the main eric6 installation directory.
-"""
--- a/eric6/Helpviewer/data/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2012 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Package defining some data used by the web browser.
-"""
--- a/eric6/Helpviewer/data/html.qrc	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-<!DOCTYPE RCC>
-<RCC version="1.0">
-<qresource>
-  <file>html/startPage.html</file>
-  <file>html/adblockPage.html</file>
-  <file>html/notFoundPage.html</file>
-  <file>html/speeddialPage.html</file>
-</qresource>
-</RCC>
--- a/eric6/Helpviewer/data/html/adblockPage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8"> 
-<meta http-equiv="content-type" content="text/html; charset=utf-8">
-<title>@TITLE@</title>
-<link rel="icon" href="@FAVICON@" type="image/x-icon" />
-<style>
-body {
-  padding: 3em 0em;
-  background: -webkit-gradient(linear, left top, left bottom, from(#85784A), to(#FDFDFD), color-stop(0.5, #FDFDFD));
-  background-repeat: repeat-x;
-}
-#box {
-  background: white;
-  border: 1px solid #85784A;
-  max-width: 600px;
-  height: 50%;
-  padding: 40px;
-  padding-bottom: 10px;
-  margin: auto;
-  border-radius: 0.8em;
-  text-align: center;
-  vertical-align: middle;
-  margin: auto;
-}
-h1 {
-  font-size: 130%;
-  font-weight: bold;
-  border-bottom: 1px solid #85784A;
-  margin-bottom: 0px;
-}
-</style>
-</head>
-<body>
-  <div id="box">
-    <img src="@IMAGE@" width="64" height="64"/>
-    <h1>AdBlock Plus</h1>
-    <p>@MESSAGE@</p>
-  </div>
-</body>
-</html>
--- a/eric6/Helpviewer/data/html/notFoundPage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8"> 
-<meta http-equiv="content-type" content="text/html; charset=utf-8">
-<title>@TITLE@</title>
-<link rel="icon" href="data:image/png;base64,@FAVICON@" type="image/x-icon" />
-<style>
-body {
-  padding: 3em 0em;
-  background: -webkit-gradient(linear, left top, left bottom, from(#85784A), to(#FDFDFD), color-stop(0.5, #FDFDFD));
-  background-repeat: repeat-x;
-}
-img {
-  float: left;
-  opacity: .8;
-}
-#box {
-  background: white;
-  border: 1px solid #85784A;
-  width: 600px;
-  padding: 60px;
-  margin: auto;
-  border-radius: 0.8em;
-}
-h1 {
-  font-size: 130%;
-  font-weight: bold;
-  border-bottom: 1px solid #85784A;
-  margin-left: 64px;
-}
-h2 {
-  font-size: 100%;
-  font-weight: normal;
-  border-bottom: 1px solid #85784A;
-  margin-left: 64px;
-}
-ul {
-  font-size: 100%;
-  padding-left: 64px;
-  margin: 5px 0;
-}
-</style>
-</head>
-<body>
-  <div id="box">
-    <img src="data:image/png;base64,@IMAGE@" width="48" height="48"/>
-    <h1>@H1@</h1>
-    <h2>@H2@</h2>
-    <ul>
-      <li>@LI-1@</li>
-      <li>@LI-2@</li>
-      <li>@LI-3@</li>
-      <li>@LI-4@</li>
-      <input type="submit" id="reloadButton" value="@BUTTON@" onclick="window.location.reload()">
-    </ul>
-  </div>
-</body>
-</html>
--- a/eric6/Helpviewer/data/html/speeddialPage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,605 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta http-equiv="content-type" content="text/html; charset=utf-8">
-<title>@SITE-TITLE@</title>
-<link rel="icon" href="@FAVICON@" type="image/x-icon" />
-<style type="text/css" media="screen">
-body {
-    background: -webkit-gradient(linear, left top, left bottom, from(#85784A), to(#FDFDFD), color-stop(0.5, #FDFDFD));
-    background-repeat: repeat-x;
-    font: 13px/22px "Helvetica Neue", Helvetica, Arial, sans-serif;
-    color: #525c66;
-}
-body * {
-    -webkit-user-select: none;
-    font-size: 100%;
-    line-height: 1.6;
-    margin: 0px;
-}
-.add {
-    position: absolute;
-    right:10px;top:10px;
-    width: 24px;
-    height: 24px;
-    background: url(@IMG_PLUS@);
-    cursor: pointer;
-}
-
-
-#quickdial {
-    margin: auto;
-    text-align: center;
-    font-weight: bold;
-}
-#quickdial div.entry {
-    position: relative;
-    float: left;
-    border-width: 10px;
-    -webkit-border-image: url(@BOX-BORDER@) 10;
-    margin: 5px;
-}
-#quickdial img {
-    display: block;
-    margin: auto;
-}
-#quickdial a {
-    position: absolute;
-    left: 0px;
-    top: 0px;
-    width: 100%;
-    height: 87%;
-}
-
-
-div.entry:hover .edit,
-div.entry:hover .close,
-div.entry:hover .reload {
-    display: inline;
-}
-span.boxTitle {
-    width:100%;
-    max-height: 20px;
-    position: absolute;
-    top: 88%;
-    left: 0px;
-    text-align: center;
-    overflow:hidden;
-}
-span.close {
-    width: 14px;
-    height: 14px;
-    position: absolute;
-    left: 92%;
-    top: 90%;
-    background: url(@IMG_CLOSE@) no-repeat;
-    background-position: center;
-    border: 1px solid transparent;
-    display: none;
-}
-span.close:hover {
-    border-color: grey;
-    border-radius: 3px;
-}
-span.edit {
-    width: 14px;
-    height: 14px;
-    position: absolute;
-    left: 0px;
-    top: 90%;
-    background: url(@IMG_EDIT@) no-repeat;
-    background-position: center;
-    border: 1px solid transparent;
-    display: none;
-}
-span.edit:hover {
-    border-color: grey;
-    border-radius: 3px;
-}
-span.reload {
-    width: 16px;
-    height: 16px;
-    position: absolute;
-    left: 92%;
-    top: 0px;
-    background: url(@IMG_RELOAD@) no-repeat;
-    background-position: center;
-    border: 1px solid transparent;
-    display: none;
-}
-span.reload:hover {
-    border-color: grey;
-    border-radius: 4px;
-}
-
-
-#overlay-edit {
-    width: 380px;
-    max-height: 265px;
-    margin-left: auto;
-    margin-right: auto;
-    margin-top: 100px;
-    border-width: 20px;
-    -webkit-border-image: url(@BOX-BORDER@) 25;
-}
-#overlay-edit img {
-    display: block;
-    margin-left: auto;
-    margin-right: auto;
-}
-#overlay-edit .buttonbox input {
-    margin-right: 3px;
-    margin-left: 3px;
-}
-
-
-.formTable {
-    width: 350px;
-    margin-left: auto;
-    margin-right: auto;
-    margin-top: 15px;
-}
-.formTable input[type="text"] {
-    width: 100%;
-    -webkit-user-select: auto;
-}
-
-
-.sett {
-    position: absolute;
-    right:36px;
-    top:10px;
-    width: 24px;
-    height: 24px;
-    background: url(@IMG_SETTINGS@);
-    cursor: pointer;
-}
-#settingsBox {
-    position: absolute;
-    right: 58px;
-    top: 25px;
-    min-width: 250px;
-    width: auto;
-    height: auto;
-    background: #EDECE6;
-    margin: 5px;
-    border-radius: 15px;
-    padding: 8px 15px;
-    border: 1px solid transparent;
-    opacity: 1;
-    z-index: 200;
-}
-#settingsBox .content {
-    float: right;
-    margin-left: 115px;
-}
-#settingsBox p label {
-    margin: 2px;
-    padding: 1px;
-    text-align: center;
-}
-#settingsBox .togop {
-    margin-bottom: 1px;
-    padding-bottom: 2px;
-}
-#settingsBox .button {
-    margin: 2px;
-    padding: 1px;
-    text-align:center;
-    width: 98%;
-}
-#settingsBox .rowsel {
-    margin: 2px;
-    padding: 3px 0;
-    border-bottom: 1px solid #888;
-}
-#settingsBox .rowsel input {
-    text-align: center;
-    width: 80%;
-    height: 12px;
-    margin: 0px;
-    padding-bottom: 0;
-}
-#settingsBox .rowsel span {
-    font-weight: bold;
-    text-align: center;
-    margin: 2px;
-    margin-right: 7px;
-    display: inline-block;
-    width: 25px;
-}
-
-.buttonbox {
-    margin-top: 5px;
-    margin-bottom: -5px;
-    text-align: right;
-}
-</style>
-
-<script type="text/javascript" src="@JQUERY@"></script>
-<script type="text/javascript" src="@JQUERY-UI@"></script>
-<script type="text/javascript">
-    var LOADING_IMAGE = '@LOADING-IMG@';
-    var URL = '@URL@';
-    var TITLE = '@TITLE@';
-    var EDIT = '@APPLY@';
-    var NEW_PAGE = '@NEW-PAGE@';
-    var TITLE_EDIT = '@TITLE-EDIT@';
-    var TITLE_REMOVE = '@TITLE-REMOVE@';
-    var TITLE_RELOAD = '@TITLE-RELOAD@';
-    var TITLE_FETCHTITLE = '@TITLE-FETCHTITLE@';
-    var MAX_PAGES_ROW = @ROW-PAGES@;
-    var DIAL_WIDTH = @SD-SIZE@;
-
-    var editingId = -1;
-
-    function escapeTitle(title) {
-        title = title.replace(/"/g, '&quot;');
-        title = title.replace(/'/g, '&apos;');
-        return title;
-    }
-
-    function unescapeTitle(title) {
-        title = title.replace(/&quot;/g, '"');
-        title = title.replace(/&apos;/g, '\'');
-        return title;
-    }
-
-    function escapeUrl(url) {
-        url = url.replace(/"/g, '');
-        url = url.replace(/'/g, '');
-        return url;
-    }
-
-    function onRemoveClick(box) {
-        removeBox($(box).index());
-    }
-
-    function onEditKeyPress(e) {
-        if (e.keyCode == 13) {
-            boxEdited();
-            return false;
-        }
-        else if (e.keyCode == 27) {
-            $('#fadeOverlay').click();
-            return false;
-        }
-        return true;
-    }
-
-    function onFetchTitleClick(checkbox) {
-        var displayStyle;
-        checkbox.checked ? displayStyle = 'hidden' : displayStyle = 'visible';
-        $('#titleLine').css({'visibility' : displayStyle });
-    }
-
-    function hideEditBox() {
-        $('#fadeOverlay').fadeOut("slow", function() {$("#fadeOverlay").remove();});
-    }
-
-    function addSpeedDial()
-    {
-        onEditClick(addBox('', NEW_PAGE, ''));
-        alignPage();
-    }
-    
-    function onEditClick(box) {
-        editingId = $(box).index();
-        var boxUrl = $(box).children('a').first().attr('href');
-        var boxTitle = escapeTitle($(box).children('span').first().text());
-        if (boxUrl === '')
-            boxUrl = 'http://';
-
-        $('body').append('<div id="fadeOverlay" style="opacity:0.9;display:none;position:fixed;left:0;' +
-                         'top:0;width:100%;height:100%;z-index:9999;background:#85784A;">' +
-                         '<div id="overlay-edit" onkeypress="return onEditKeyPress(event)">' +
-                         '<img src="' + $(box).children('img').first().attr('src') + '"> ' +
-                         '<table class="formTable"><tr><td>' + URL + ': </td><td>' +
-                         '<input type="text" id="formUrl" value="' + boxUrl + '"></td></tr>' +
-                         '<tr id="titleLine"><td>' + TITLE + ': </td><td>' +
-                         '<input type="text" id="formTitle" value="' + boxTitle + '"></td></tr>' +
-                         '<tr><td></td><td><input type="checkbox" id="fetchTitle" onclick="onFetchTitleClick(this)">' +
-                         '<label for="fetchTitle">  ' + TITLE_FETCHTITLE + ' </label></td></tr>' +
-                         '</table><p class="buttonbox">' +
-                         '<input type="button" value=" @CLOSE@ " onClick="hideEditBox();">' +
-                         '<input type="button" value="   ' + EDIT + '   " onClick="boxEdited()"></p>' +
-                         '</div></div>');
-
-        $('#fadeOverlay').css({'filter' : 'alpha(opacity=90)'}).fadeIn();
-        $('#fadeOverlay').click(function() {hideEditBox()});
-        $('#overlay-edit').click(function(event) { event.stopPropagation(); });
-        $('#formUrl').focus();
-    }
-
-    function onReloadClick(box) {
-        var url = $(box).children('a').first().attr('href');
-        var img = $(box).children('img').first();
-
-        if (url === '')
-            return;
-
-        $(img).attr('src', LOADING_IMAGE);
-        speeddial.loadThumbnail(url);
-    }
-
-    function boxEdited() {
-        if (editingId == -1)
-            return;
-
-        var box = document.getElementById('quickdial').getElementsByTagName('div')[editingId];
-        var a = box.getElementsByTagName('a')[0];
-        var originalUrl = a.getAttribute('href');
-        setBoxUrl(editingId, speeddial.urlFromUserInput($('#formUrl').attr("value")));
-        setBoxTitle(editingId, $('#formTitle').attr("value"));
-        var changedUrl = a.getAttribute('href');
-        var fetchTitleChecked = document.getElementById('fetchTitle').checked;
-
-        if (fetchTitleChecked || (originalUrl != changedUrl && changedUrl !== '') ) {
-            var img = box.getElementsByTagName('img')[0];
-            img.setAttribute('src', LOADING_IMAGE);
-
-            $('#fadeOverlay').fadeOut("slow", function() {
-                $("#fadeOverlay").remove();
-                speeddial.loadThumbnail(a.getAttribute('href'), fetchTitleChecked);
-                speeddial.removeImageForUrl(a.getAttribute('href'));
-            });
-        } else {
-            hideEditBox();
-        }
-        speeddial.changed(allPages());
-    }
-
-    function allPages() {
-        var urls = $('a[class="boxUrl"]');
-        var titles = $('span[class="boxTitle"]');
-        var value = "";
-        $('div.entry').each(function(i) {
-            var url = $(this).children('a').first().attr('href');
-            var title = $(this).children('span[class="boxTitle"]').first().text();
-            var img = $(this).children('img').first().attr('src');
-            value += 'url:"' + escapeUrl(url) + '"|title:"' + escapeTitle(title) + '"|img:"' + escapeUrl(img) + '";';
-        });
-
-        return value;
-    }
-
-    function addBox(url, title, img_source) {
-        var div = document.createElement('div');
-        div.setAttribute('class', 'entry');
-        var img = document.createElement('img');
-        img.setAttribute('src', img_source);
-        var a = document.createElement('a');
-        a.setAttribute('href', url);
-        a.setAttribute('class', 'boxUrl');
-        var span1 = document.createElement('span');
-        span1.setAttribute('class', 'boxTitle');
-        span1.innerText = unescapeTitle(speeddial.unescapeTitle(title));
-        var span2 = document.createElement('span');
-        span2.setAttribute('class', 'edit');
-        span2.setAttribute('onClick', 'onEditClick(parentNode)');
-        span2.setAttribute('title', TITLE_EDIT);
-        var span3 = document.createElement('span');
-        span3.setAttribute('class', 'close');
-        span3.setAttribute('onClick', 'onRemoveClick(parentNode)');
-        span3.setAttribute('title', TITLE_REMOVE);
-        var span4 = document.createElement('span');
-        span4.setAttribute('class', 'reload');
-        span4.setAttribute('onClick', 'onReloadClick(parentNode)');
-        span4.setAttribute('title', TITLE_RELOAD);
-
-        div.appendChild(img);
-        div.appendChild(img);
-        div.appendChild(a);
-        div.appendChild(span1);
-        div.appendChild(span2);
-        div.appendChild(span3);
-        div.appendChild(span4);
-
-        document.getElementById("quickdial").appendChild(div);
-
-        return div;
-    }
-
-    function setBoxImage(id, img_source) {
-        var box = document.getElementById('quickdial').getElementsByTagName('div')[id];
-        if (box === undefined)
-            return;
-
-        var img = box.getElementsByTagName('img')[0];
-        img.setAttribute('src', img_source + '?' + new Date());
-    }
-
-    function setTitleToUrl(url, title) {
-        var boxes = document.getElementById('quickdial').getElementsByTagName('div');
-        for (i = 0; i < boxes.length; ++i) {
-            var box = boxes[i];
-
-            if (box === undefined)
-                continue;
-
-                    var boxUrl = box.getElementsByTagName('a')[0].getAttribute('href');
-                    console.log(boxUrl + "  >  " + url);
-                    if (url != boxUrl)
-                        continue;
-
-            var span = box.getElementsByTagName('span')[0];
-            span.innerText = speeddial.unescapeTitle(title);
-        }
-
-        speeddial.changed(allPages());
-    }
-
-    function setImageToUrl(url, img_source) {
-        var aElement = $('a[href="' + url + '"]');
-        $(aElement).each(function() {
-            var box = $(this).parent();
-            var imgElement = $(box).children("img").first();
-            if ($(imgElement).size() == 0)
-                return;
-
-            $(imgElement).attr('src', img_source + '?' + new Date());
-        });
-    }
-
-    function setBoxUrl(id, url) {
-        var box = document.getElementById('quickdial').getElementsByTagName('div')[id];
-        if (box === undefined)
-            return;
-
-        var a = box.getElementsByTagName('a')[0];
-        a.setAttribute('href', url);
-    }
-
-    function setBoxTitle(id, title) {
-        var box = document.getElementById('quickdial').getElementsByTagName('div')[id];
-        if (box === undefined)
-            return;
-
-        var span = box.getElementsByTagName('span')[0];
-        span.innerText = speeddial.unescapeTitle(title);
-    }
-
-    function removeBox(id) {
-        if (confirm("@TITLE-WARN@"))
-        var box = document.getElementById('quickdial').getElementsByTagName('div')[id];
-        if (box === undefined)
-            return;
-
-        var url = box.getElementsByTagName('a')[0].getAttribute('href');
-        document.getElementById("quickdial").removeChild(box);
-        alignPage();
-
-        speeddial.removeImageForUrl(url);
-        speeddial.changed(allPages());
-    }
-
-    function alignPage() {
-        $('head').append('<style>#quickdial img[src*=".png"]{height:auto;width:'+DIAL_WIDTH+'px}</style>');
-        $('#quickdial div.entry').css({'width' : DIAL_WIDTH + 'px',
-                                       'height' : Math.round(DIAL_WIDTH / 1.54) + 'px'});
-
-        var width = $(window).width();
-        var height = $(window).height();
-        var boxWidth = Math.floor(DIAL_WIDTH + 30);
-        var boxHeight = Math.floor(Math.round(DIAL_WIDTH / 1.54) + 40);
-
-        var maxBoxes = Math.floor(width / boxWidth);
-        if (maxBoxes > MAX_PAGES_ROW) maxBoxes = MAX_PAGES_ROW;
-        if (maxBoxes < 1) maxBoxes = 1;
-
-        var maxwidth = maxBoxes * boxWidth;
-        $("#quickdial").css('width', maxwidth + 'px');
-
-        var boxesCount = $("#quickdial").children("div").size();
-        var rows = Math.ceil(boxesCount / maxBoxes);
-        var margintop = (height - rows * boxHeight) / 2;
-
-        if (margintop < 0) margintop = 0;
-
-        $("#quickdial").css('margin-top', margintop + 'px');
-    }
-
-
-    function saveSettings() {
-        MAX_PAGES_ROW = $('#PgInRow').val();
-        DIAL_WIDTH = parseInt($('#SdSize').val());
-
-        speeddial.setPagesInRow(MAX_PAGES_ROW);
-        speeddial.setSdSize(DIAL_WIDTH);
-
-        alignPage();
-    }
-
-
-    function sdSizeToggle() {
-        var check = document.getElementById('SdSizeToggle');
-        var SdSize = document.getElementById('SdSize');
-        var SdSizeSl = document.getElementById('sliderValueSd');
-        SdSize.disabled = (check.checked ? false : true);
-        SdSize.value = (check.checked ? SdSize.value : 231);
-        SdSizeSl.innerHTML = (check.checked ? DIAL_WIDTH : 231);
-    }
-
-
-    function configureSpeedDial()
-    {
-        // Load settings
-        $('#PgInRow').val(MAX_PAGES_ROW);
-        $('#sliderValuePg').html(MAX_PAGES_ROW);
-        $('#SdSize').val(DIAL_WIDTH);
-        $('#SdSizeToggle').prop('checked', DIAL_WIDTH != 231);
-        $('#sliderValueSd').html(DIAL_WIDTH);
-        $('#SdSizeToggle').is(':checked') ? $('#SdSize').removeAttr('disabled') : $('#SdSize').attr('disabled', 'disabled');
-
-        // Show dialog
-        $('#fadeOverlay2').css({'filter' : 'alpha(opacity=100)'}).fadeIn();
-        $('#fadeOverlay2').click(function() { $(this).fadeOut('slow'); });
-        $('#settingsBox').click(function(event) { event.stopPropagation(); });
-    }
-
-
-    function reloadAll() {
-        if (confirm("@TITLE-WARN-REL@"))
-            $('div.entry').each(function(i) {
-                onReloadClick($(this));
-            });
-    }
-
-
-    $(document).ready(function () {
-      var sdSize = 'DIAL_WIDTH';
-      sdSize == '231' ? $('#SdSizeToggle').prop('checked', false) : $('#SdSizeToggle').prop('checked', true)
-      $('#SdSizeToggle').is(':checked') ? $('#SdSize').removeAttr('disabled') : $('#SdSize').attr('disabled', 'disabled');
-    });
-
-</script>
-</head>
-
-<body>
-    <div id="quickdial"></div>
-    <a onClick="configureSpeedDial();" title="@SETTINGS-TITLE@" class="sett"></a>
-    <a onClick="addSpeedDial();" title="@ADD-TITLE@" class="add"></a>
-
-    <script type="text/javascript">
-        @INITIAL-SCRIPT@
-
-        alignPage();
-        $(window).resize(function() { alignPage(); });
-        $("div").disableSelection();
-        $("#quickdial").sortable({
-            revert: true,
-            cursor: 'move',
-            containment: 'document',
-            opacity: 0.8,
-            distance: 40,
-            update: function(event, ui) {
-                speeddial.changed(allPages());
-            }
-        });
-    </script>
-    <div id="fadeOverlay2" style="opacity:0.9;display:none;position:fixed;left:0;top:0;width:100%;height:100%;z-index:100;background:#85784A;">
-      <div id="settingsBox">
-        <div class="togop">
-          <label for="PgInRow">@TXT_NRROWS@</label>
-        </div>
-        <div class="rowsel">
-          <span id="sliderValuePg">@ROW-PAGES@</span>
-          <input id="PgInRow" type="range" min="2" max="8" value="@ROW-PAGES@" step="1" onchange="$('#sliderValuePg').html(this.value);" />
-        </div>
-        <div class="togop">
-          <input type="checkbox" name="sdsizet" id="SdSizeToggle" onchange="sdSizeToggle()" />&nbsp;<label for="SdSizeToggle">@TXT_SDSIZE@</label>
-        </div>
-        <div class="rowsel">
-          <span id="sliderValueSd">@SD-SIZE@</span>
-          <input id="SdSize" type="range" min="145" max="360" value="@SD-SIZE@" step="1" onchange="$('#sliderValueSd').html(this.value);" />
-        </div>
-        <div class="content">
-          <p class="buttonbox">
-            <input type="button" value=" @CLOSE@ " onClick="$('#fadeOverlay2').fadeOut('slow');" />
-            <input type="button" value="   @APPLY@   " onClick="saveSettings();$('#fadeOverlay2').fadeOut('slow');"/>
-          </p>
-        </div>
-      </div>
-    </div>
-</body>
-</html>
--- a/eric6/Helpviewer/data/html/startPage.html	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8"> 
-<meta http-equiv="content-type" content="text/html; charset=utf-8">
-<title></title>
-<link rel="icon" href="@FAVICON@" type="image/x-icon" />
-<style>
-* {
-    margin: 0;
-    padding: 0;
-    font-family: "DejaVu Sans";
-}
-
-body {
-    background: -webkit-gradient(linear, left top, left bottom, from(#85784A), to(#FDFDFD), color-stop(0.5, #FDFDFD));
-    background-repeat: repeat-x;
-    margin-top: 200px;
-}
-
-#header, #search, #footer {
-    width: 600px;
-    margin: 10px auto;
-}
-
-#header, #search {
-    border-radius: 0.8em;
-    padding: 25px;
-}
-
-#header {
-    background: -webkit-gradient(linear, left top, left bottom, from(#D57E3E), to(#D57E3E), color-stop(0.5, #FFBA89));
-    height: 25px;
-}
-
-#header h1 {
-    display: inline;
-    font-size: 1.7em;
-    font-weight: bold;
-}
-
-#header img {
-    display: inline;
-    float: right;
-    margin-top: -5px;
-}
-
-#search {
-    background: -webkit-gradient(linear, left top, right top, from(#85784A), to(#85784A), color-stop(0.5, #C8C2AE));
-    height: 50px;
-    color: #000;
-    text-align: center;
-    padding-top: 40px !important;
-}
-
-#search fieldset {
-    border: 0;
-}
-
-#search input[type=text] {
-    width: 65%;
-}
-
-#search input[type=submit] {
-    width: 25%;
-}
-
-#footer {
-    text-align: center;
-    color: #999;
-}
-
-#footer a {
-    color: #555;
-    text-decoration: none;
-}
-
-#footer a:hover {
-    text-decoration: underline;
-}
-    </style>
-    <script type="text/javascript">
-        function update()
-        {
-            document.title = window.eric.translate('Welcome to eric6 Web Browser!');
-            document.getElementById('headerTitle').innerHTML = window.eric.translate('eric6 Web Browser');
-            document.getElementById('searchButton').value = window.eric.translate('Search!');
-            document.getElementById('footer').innerHTML = window.eric.providerString()
-                                                          + ' | ' + '<a href="https://eric-ide.python-projects.org/">'
-                                                          + window.eric.translate('About eric6') + '</a>';
-            document.getElementById('lineEdit').placeholder = window.eric.providerString();
-
-            // Try to change the direction of the page:
-
-            var newDir = window.eric.translate('QT_LAYOUT_DIRECTION');
-            newDir = newDir.toLowerCase();
-            if ((newDir != 'ltr') && (newDir != 'rtl'))
-                newDir = 'ltr';
-            document.getElementsByTagName('body')[0].setAttribute('dir', newDir);
-        }
-
-        function formSubmitted()
-        {
-            var string = lineEdit.value;
-
-            if (string.length == 0)
-                return;
-
-            var url = window.eric.searchUrl(string);
-            window.location.href = url;
-        }
-    </script>
-</head>
-<body onload="document.forms[0].lineEdit.select(); update();">
-    <div id="header">
-        <h1 id="headerTitle"></h1>
-        <img src="@IMAGE@" width="32" height="32"/>
-    </div>
-    <div id="search">
-        <form action="javascript:formSubmitted();">
-            <fieldset>
-                <input id="lineEdit" name="lineEdit" type="text" />
-                <input id="searchButton" type="submit" />
-            </fieldset>
-        </form>
-    </div>
-    <div id="footer"></div>
-</body>
-</html>
--- a/eric6/Helpviewer/data/html_rc.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,712 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Resource object code
-#
-# Created by: The Resource Compiler for PyQt5 (Qt v5.12.1)
-#
-# WARNING! All changes made in this file will be lost!
-
-from PyQt5 import QtCore
-
-qt_resource_data = b"\
-\x00\x00\x04\xcf\
-\x3c\
-\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x68\x74\x6d\x6c\x3e\x0a\x3c\
-\x68\x74\x6d\x6c\x3e\x0a\x3c\x68\x65\x61\x64\x3e\x0a\x3c\x6d\x65\
-\x74\x61\x20\x63\x68\x61\x72\x73\x65\x74\x3d\x22\x75\x74\x66\x2d\
-\x38\x22\x3e\x20\x0a\x3c\x6d\x65\x74\x61\x20\x68\x74\x74\x70\x2d\
-\x65\x71\x75\x69\x76\x3d\x22\x63\x6f\x6e\x74\x65\x6e\x74\x2d\x74\
-\x79\x70\x65\x22\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3d\x22\x74\x65\
-\x78\x74\x2f\x68\x74\x6d\x6c\x3b\x20\x63\x68\x61\x72\x73\x65\x74\
-\x3d\x75\x74\x66\x2d\x38\x22\x3e\x0a\x3c\x74\x69\x74\x6c\x65\x3e\
-\x40\x54\x49\x54\x4c\x45\x40\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x0a\
-\x3c\x6c\x69\x6e\x6b\x20\x72\x65\x6c\x3d\x22\x69\x63\x6f\x6e\x22\
-\x20\x68\x72\x65\x66\x3d\x22\x64\x61\x74\x61\x3a\x69\x6d\x61\x67\
-\x65\x2f\x70\x6e\x67\x3b\x62\x61\x73\x65\x36\x34\x2c\x40\x46\x41\
-\x56\x49\x43\x4f\x4e\x40\x22\x20\x74\x79\x70\x65\x3d\x22\x69\x6d\
-\x61\x67\x65\x2f\x78\x2d\x69\x63\x6f\x6e\x22\x20\x2f\x3e\x0a\x3c\
-\x73\x74\x79\x6c\x65\x3e\x0a\x62\x6f\x64\x79\x20\x7b\x0a\x20\x20\
-\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x33\x65\x6d\x20\x30\x65\x6d\
-\x3b\x0a\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\
-\x2d\x77\x65\x62\x6b\x69\x74\x2d\x67\x72\x61\x64\x69\x65\x6e\x74\
-\x28\x6c\x69\x6e\x65\x61\x72\x2c\x20\x6c\x65\x66\x74\x20\x74\x6f\
-\x70\x2c\x20\x6c\x65\x66\x74\x20\x62\x6f\x74\x74\x6f\x6d\x2c\x20\
-\x66\x72\x6f\x6d\x28\x23\x38\x35\x37\x38\x34\x41\x29\x2c\x20\x74\
-\x6f\x28\x23\x46\x44\x46\x44\x46\x44\x29\x2c\x20\x63\x6f\x6c\x6f\
-\x72\x2d\x73\x74\x6f\x70\x28\x30\x2e\x35\x2c\x20\x23\x46\x44\x46\
-\x44\x46\x44\x29\x29\x3b\x0a\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\
-\x75\x6e\x64\x2d\x72\x65\x70\x65\x61\x74\x3a\x20\x72\x65\x70\x65\
-\x61\x74\x2d\x78\x3b\x0a\x7d\x0a\x69\x6d\x67\x20\x7b\x0a\x20\x20\
-\x66\x6c\x6f\x61\x74\x3a\x20\x6c\x65\x66\x74\x3b\x0a\x20\x20\x6f\
-\x70\x61\x63\x69\x74\x79\x3a\x20\x2e\x38\x3b\x0a\x7d\x0a\x23\x62\
-\x6f\x78\x20\x7b\x0a\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\
-\x64\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\x62\x6f\x72\x64\
-\x65\x72\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x38\
-\x35\x37\x38\x34\x41\x3b\x0a\x20\x20\x77\x69\x64\x74\x68\x3a\x20\
-\x36\x30\x30\x70\x78\x3b\x0a\x20\x20\x70\x61\x64\x64\x69\x6e\x67\
-\x3a\x20\x36\x30\x70\x78\x3b\x0a\x20\x20\x6d\x61\x72\x67\x69\x6e\
-\x3a\x20\x61\x75\x74\x6f\x3b\x0a\x20\x20\x62\x6f\x72\x64\x65\x72\
-\x2d\x72\x61\x64\x69\x75\x73\x3a\x20\x30\x2e\x38\x65\x6d\x3b\x0a\
-\x7d\x0a\x68\x31\x20\x7b\x0a\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\
-\x7a\x65\x3a\x20\x31\x33\x30\x25\x3b\x0a\x20\x20\x66\x6f\x6e\x74\
-\x2d\x77\x65\x69\x67\x68\x74\x3a\x20\x62\x6f\x6c\x64\x3b\x0a\x20\
-\x20\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x20\
-\x31\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x38\x35\x37\x38\x34\
-\x41\x3b\x0a\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x6c\x65\x66\x74\
-\x3a\x20\x36\x34\x70\x78\x3b\x0a\x7d\x0a\x68\x32\x20\x7b\x0a\x20\
-\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x30\x30\x25\
-\x3b\x0a\x20\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\x74\x3a\
-\x20\x6e\x6f\x72\x6d\x61\x6c\x3b\x0a\x20\x20\x62\x6f\x72\x64\x65\
-\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x31\x70\x78\x20\x73\x6f\
-\x6c\x69\x64\x20\x23\x38\x35\x37\x38\x34\x41\x3b\x0a\x20\x20\x6d\
-\x61\x72\x67\x69\x6e\x2d\x6c\x65\x66\x74\x3a\x20\x36\x34\x70\x78\
-\x3b\x0a\x7d\x0a\x75\x6c\x20\x7b\x0a\x20\x20\x66\x6f\x6e\x74\x2d\
-\x73\x69\x7a\x65\x3a\x20\x31\x30\x30\x25\x3b\x0a\x20\x20\x70\x61\
-\x64\x64\x69\x6e\x67\x2d\x6c\x65\x66\x74\x3a\x20\x36\x34\x70\x78\
-\x3b\x0a\x20\x20\x6d\x61\x72\x67\x69\x6e\x3a\x20\x35\x70\x78\x20\
-\x30\x3b\x0a\x7d\x0a\x3c\x2f\x73\x74\x79\x6c\x65\x3e\x0a\x3c\x2f\
-\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\x0a\x20\x20\x3c\
-\x64\x69\x76\x20\x69\x64\x3d\x22\x62\x6f\x78\x22\x3e\x0a\x20\x20\
-\x20\x20\x3c\x69\x6d\x67\x20\x73\x72\x63\x3d\x22\x64\x61\x74\x61\
-\x3a\x69\x6d\x61\x67\x65\x2f\x70\x6e\x67\x3b\x62\x61\x73\x65\x36\
-\x34\x2c\x40\x49\x4d\x41\x47\x45\x40\x22\x20\x77\x69\x64\x74\x68\
-\x3d\x22\x34\x38\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x34\x38\
-\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x68\x31\x3e\x40\x48\x31\x40\
-\x3c\x2f\x68\x31\x3e\x0a\x20\x20\x20\x20\x3c\x68\x32\x3e\x40\x48\
-\x32\x40\x3c\x2f\x68\x32\x3e\x0a\x20\x20\x20\x20\x3c\x75\x6c\x3e\
-\x0a\x20\x20\x20\x20\x20\x20\x3c\x6c\x69\x3e\x40\x4c\x49\x2d\x31\
-\x40\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x6c\x69\
-\x3e\x40\x4c\x49\x2d\x32\x40\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x20\
-\x20\x20\x20\x3c\x6c\x69\x3e\x40\x4c\x49\x2d\x33\x40\x3c\x2f\x6c\
-\x69\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\x6c\x69\x3e\x40\x4c\x49\
-\x2d\x34\x40\x3c\x2f\x6c\x69\x3e\x0a\x20\x20\x20\x20\x20\x20\x3c\
-\x69\x6e\x70\x75\x74\x20\x74\x79\x70\x65\x3d\x22\x73\x75\x62\x6d\
-\x69\x74\x22\x20\x69\x64\x3d\x22\x72\x65\x6c\x6f\x61\x64\x42\x75\
-\x74\x74\x6f\x6e\x22\x20\x76\x61\x6c\x75\x65\x3d\x22\x40\x42\x55\
-\x54\x54\x4f\x4e\x40\x22\x20\x6f\x6e\x63\x6c\x69\x63\x6b\x3d\x22\
-\x77\x69\x6e\x64\x6f\x77\x2e\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x2e\
-\x72\x65\x6c\x6f\x61\x64\x28\x29\x22\x3e\x0a\x20\x20\x20\x20\x3c\
-\x2f\x75\x6c\x3e\x0a\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x3c\x2f\
-\x62\x6f\x64\x79\x3e\x0a\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\
-\x00\x00\x0c\xff\
-\x3c\
-\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x68\x74\x6d\x6c\x3e\x0a\x3c\
-\x68\x74\x6d\x6c\x3e\x0a\x3c\x68\x65\x61\x64\x3e\x0a\x3c\x6d\x65\
-\x74\x61\x20\x63\x68\x61\x72\x73\x65\x74\x3d\x22\x75\x74\x66\x2d\
-\x38\x22\x3e\x20\x0a\x3c\x6d\x65\x74\x61\x20\x68\x74\x74\x70\x2d\
-\x65\x71\x75\x69\x76\x3d\x22\x63\x6f\x6e\x74\x65\x6e\x74\x2d\x74\
-\x79\x70\x65\x22\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3d\x22\x74\x65\
-\x78\x74\x2f\x68\x74\x6d\x6c\x3b\x20\x63\x68\x61\x72\x73\x65\x74\
-\x3d\x75\x74\x66\x2d\x38\x22\x3e\x0a\x3c\x74\x69\x74\x6c\x65\x3e\
-\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x0a\x3c\x6c\x69\x6e\x6b\x20\x72\
-\x65\x6c\x3d\x22\x69\x63\x6f\x6e\x22\x20\x68\x72\x65\x66\x3d\x22\
-\x40\x46\x41\x56\x49\x43\x4f\x4e\x40\x22\x20\x74\x79\x70\x65\x3d\
-\x22\x69\x6d\x61\x67\x65\x2f\x78\x2d\x69\x63\x6f\x6e\x22\x20\x2f\
-\x3e\x0a\x3c\x73\x74\x79\x6c\x65\x3e\x0a\x2a\x20\x7b\x0a\x20\x20\
-\x20\x20\x6d\x61\x72\x67\x69\x6e\x3a\x20\x30\x3b\x0a\x20\x20\x20\
-\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x30\x3b\x0a\x20\x20\x20\
-\x20\x66\x6f\x6e\x74\x2d\x66\x61\x6d\x69\x6c\x79\x3a\x20\x22\x44\
-\x65\x6a\x61\x56\x75\x20\x53\x61\x6e\x73\x22\x3b\x0a\x7d\x0a\x0a\
-\x62\x6f\x64\x79\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\
-\x72\x6f\x75\x6e\x64\x3a\x20\x2d\x77\x65\x62\x6b\x69\x74\x2d\x67\
-\x72\x61\x64\x69\x65\x6e\x74\x28\x6c\x69\x6e\x65\x61\x72\x2c\x20\
-\x6c\x65\x66\x74\x20\x74\x6f\x70\x2c\x20\x6c\x65\x66\x74\x20\x62\
-\x6f\x74\x74\x6f\x6d\x2c\x20\x66\x72\x6f\x6d\x28\x23\x38\x35\x37\
-\x38\x34\x41\x29\x2c\x20\x74\x6f\x28\x23\x46\x44\x46\x44\x46\x44\
-\x29\x2c\x20\x63\x6f\x6c\x6f\x72\x2d\x73\x74\x6f\x70\x28\x30\x2e\
-\x35\x2c\x20\x23\x46\x44\x46\x44\x46\x44\x29\x29\x3b\x0a\x20\x20\
-\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x72\x65\x70\
-\x65\x61\x74\x3a\x20\x72\x65\x70\x65\x61\x74\x2d\x78\x3b\x0a\x20\
-\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x20\x32\
-\x30\x30\x70\x78\x3b\x0a\x7d\x0a\x0a\x23\x68\x65\x61\x64\x65\x72\
-\x2c\x20\x23\x73\x65\x61\x72\x63\x68\x2c\x20\x23\x66\x6f\x6f\x74\
-\x65\x72\x20\x7b\x0a\x20\x20\x20\x20\x77\x69\x64\x74\x68\x3a\x20\
-\x36\x30\x30\x70\x78\x3b\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\
-\x6e\x3a\x20\x31\x30\x70\x78\x20\x61\x75\x74\x6f\x3b\x0a\x7d\x0a\
-\x0a\x23\x68\x65\x61\x64\x65\x72\x2c\x20\x23\x73\x65\x61\x72\x63\
-\x68\x20\x7b\x0a\x20\x20\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\x72\
-\x61\x64\x69\x75\x73\x3a\x20\x30\x2e\x38\x65\x6d\x3b\x0a\x20\x20\
-\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x32\x35\x70\x78\x3b\
-\x0a\x7d\x0a\x0a\x23\x68\x65\x61\x64\x65\x72\x20\x7b\x0a\x20\x20\
-\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x2d\x77\
-\x65\x62\x6b\x69\x74\x2d\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x6c\
-\x69\x6e\x65\x61\x72\x2c\x20\x6c\x65\x66\x74\x20\x74\x6f\x70\x2c\
-\x20\x6c\x65\x66\x74\x20\x62\x6f\x74\x74\x6f\x6d\x2c\x20\x66\x72\
-\x6f\x6d\x28\x23\x44\x35\x37\x45\x33\x45\x29\x2c\x20\x74\x6f\x28\
-\x23\x44\x35\x37\x45\x33\x45\x29\x2c\x20\x63\x6f\x6c\x6f\x72\x2d\
-\x73\x74\x6f\x70\x28\x30\x2e\x35\x2c\x20\x23\x46\x46\x42\x41\x38\
-\x39\x29\x29\x3b\x0a\x20\x20\x20\x20\x68\x65\x69\x67\x68\x74\x3a\
-\x20\x32\x35\x70\x78\x3b\x0a\x7d\x0a\x0a\x23\x68\x65\x61\x64\x65\
-\x72\x20\x68\x31\x20\x7b\x0a\x20\x20\x20\x20\x64\x69\x73\x70\x6c\
-\x61\x79\x3a\x20\x69\x6e\x6c\x69\x6e\x65\x3b\x0a\x20\x20\x20\x20\
-\x66\x6f\x6e\x74\x2d\x73\x69\x7a\x65\x3a\x20\x31\x2e\x37\x65\x6d\
-\x3b\x0a\x20\x20\x20\x20\x66\x6f\x6e\x74\x2d\x77\x65\x69\x67\x68\
-\x74\x3a\x20\x62\x6f\x6c\x64\x3b\x0a\x7d\x0a\x0a\x23\x68\x65\x61\
-\x64\x65\x72\x20\x69\x6d\x67\x20\x7b\x0a\x20\x20\x20\x20\x64\x69\
-\x73\x70\x6c\x61\x79\x3a\x20\x69\x6e\x6c\x69\x6e\x65\x3b\x0a\x20\
-\x20\x20\x20\x66\x6c\x6f\x61\x74\x3a\x20\x72\x69\x67\x68\x74\x3b\
-\x0a\x20\x20\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x74\x6f\x70\x3a\
-\x20\x2d\x35\x70\x78\x3b\x0a\x7d\x0a\x0a\x23\x73\x65\x61\x72\x63\
-\x68\x20\x7b\x0a\x20\x20\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\
-\x6e\x64\x3a\x20\x2d\x77\x65\x62\x6b\x69\x74\x2d\x67\x72\x61\x64\
-\x69\x65\x6e\x74\x28\x6c\x69\x6e\x65\x61\x72\x2c\x20\x6c\x65\x66\
-\x74\x20\x74\x6f\x70\x2c\x20\x72\x69\x67\x68\x74\x20\x74\x6f\x70\
-\x2c\x20\x66\x72\x6f\x6d\x28\x23\x38\x35\x37\x38\x34\x41\x29\x2c\
-\x20\x74\x6f\x28\x23\x38\x35\x37\x38\x34\x41\x29\x2c\x20\x63\x6f\
-\x6c\x6f\x72\x2d\x73\x74\x6f\x70\x28\x30\x2e\x35\x2c\x20\x23\x43\
-\x38\x43\x32\x41\x45\x29\x29\x3b\x0a\x20\x20\x20\x20\x68\x65\x69\
-\x67\x68\x74\x3a\x20\x35\x30\x70\x78\x3b\x0a\x20\x20\x20\x20\x63\
-\x6f\x6c\x6f\x72\x3a\x20\x23\x30\x30\x30\x3b\x0a\x20\x20\x20\x20\
-\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\x20\x63\x65\x6e\x74\
-\x65\x72\x3b\x0a\x20\x20\x20\x20\x70\x61\x64\x64\x69\x6e\x67\x2d\
-\x74\x6f\x70\x3a\x20\x34\x30\x70\x78\x20\x21\x69\x6d\x70\x6f\x72\
-\x74\x61\x6e\x74\x3b\x0a\x7d\x0a\x0a\x23\x73\x65\x61\x72\x63\x68\
-\x20\x66\x69\x65\x6c\x64\x73\x65\x74\x20\x7b\x0a\x20\x20\x20\x20\
-\x62\x6f\x72\x64\x65\x72\x3a\x20\x30\x3b\x0a\x7d\x0a\x0a\x23\x73\
-\x65\x61\x72\x63\x68\x20\x69\x6e\x70\x75\x74\x5b\x74\x79\x70\x65\
-\x3d\x74\x65\x78\x74\x5d\x20\x7b\x0a\x20\x20\x20\x20\x77\x69\x64\
-\x74\x68\x3a\x20\x36\x35\x25\x3b\x0a\x7d\x0a\x0a\x23\x73\x65\x61\
-\x72\x63\x68\x20\x69\x6e\x70\x75\x74\x5b\x74\x79\x70\x65\x3d\x73\
-\x75\x62\x6d\x69\x74\x5d\x20\x7b\x0a\x20\x20\x20\x20\x77\x69\x64\
-\x74\x68\x3a\x20\x32\x35\x25\x3b\x0a\x7d\x0a\x0a\x23\x66\x6f\x6f\
-\x74\x65\x72\x20\x7b\x0a\x20\x20\x20\x20\x74\x65\x78\x74\x2d\x61\
-\x6c\x69\x67\x6e\x3a\x20\x63\x65\x6e\x74\x65\x72\x3b\x0a\x20\x20\
-\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x39\x39\x39\x3b\x0a\x7d\
-\x0a\x0a\x23\x66\x6f\x6f\x74\x65\x72\x20\x61\x20\x7b\x0a\x20\x20\
-\x20\x20\x63\x6f\x6c\x6f\x72\x3a\x20\x23\x35\x35\x35\x3b\x0a\x20\
-\x20\x20\x20\x74\x65\x78\x74\x2d\x64\x65\x63\x6f\x72\x61\x74\x69\
-\x6f\x6e\x3a\x20\x6e\x6f\x6e\x65\x3b\x0a\x7d\x0a\x0a\x23\x66\x6f\
-\x6f\x74\x65\x72\x20\x61\x3a\x68\x6f\x76\x65\x72\x20\x7b\x0a\x20\
-\x20\x20\x20\x74\x65\x78\x74\x2d\x64\x65\x63\x6f\x72\x61\x74\x69\
-\x6f\x6e\x3a\x20\x75\x6e\x64\x65\x72\x6c\x69\x6e\x65\x3b\x0a\x7d\
-\x0a\x20\x20\x20\x20\x3c\x2f\x73\x74\x79\x6c\x65\x3e\x0a\x20\x20\
-\x20\x20\x3c\x73\x63\x72\x69\x70\x74\x20\x74\x79\x70\x65\x3d\x22\
-\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\
-\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x20\x75\x70\x64\x61\x74\x65\x28\x29\x0a\x20\x20\x20\x20\
-\x20\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x74\x69\x74\x6c\x65\
-\x20\x3d\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x72\x69\x63\x2e\x74\
-\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\x27\x57\x65\x6c\x63\x6f\x6d\
-\x65\x20\x74\x6f\x20\x65\x72\x69\x63\x36\x20\x57\x65\x62\x20\x42\
-\x72\x6f\x77\x73\x65\x72\x21\x27\x29\x3b\x0a\x20\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\
-\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x28\x27\
-\x68\x65\x61\x64\x65\x72\x54\x69\x74\x6c\x65\x27\x29\x2e\x69\x6e\
-\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x77\x69\x6e\x64\x6f\x77\
-\x2e\x65\x72\x69\x63\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\x65\x28\
-\x27\x65\x72\x69\x63\x36\x20\x57\x65\x62\x20\x42\x72\x6f\x77\x73\
-\x65\x72\x27\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x20\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x67\x65\x74\x45\x6c\
-\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x28\x27\x73\x65\x61\x72\x63\
-\x68\x42\x75\x74\x74\x6f\x6e\x27\x29\x2e\x76\x61\x6c\x75\x65\x20\
-\x3d\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x72\x69\x63\x2e\x74\x72\
-\x61\x6e\x73\x6c\x61\x74\x65\x28\x27\x53\x65\x61\x72\x63\x68\x21\
-\x27\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x67\x65\x74\x45\x6c\x65\x6d\
-\x65\x6e\x74\x42\x79\x49\x64\x28\x27\x66\x6f\x6f\x74\x65\x72\x27\
-\x29\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x20\x3d\x20\x77\x69\
-\x6e\x64\x6f\x77\x2e\x65\x72\x69\x63\x2e\x70\x72\x6f\x76\x69\x64\
-\x65\x72\x53\x74\x72\x69\x6e\x67\x28\x29\x0a\x20\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x2b\x20\x27\x20\x7c\x20\x27\x20\x2b\x20\x27\
-\x3c\x61\x20\x68\x72\x65\x66\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\
-\x2f\x65\x72\x69\x63\x2d\x69\x64\x65\x2e\x70\x79\x74\x68\x6f\x6e\
-\x2d\x70\x72\x6f\x6a\x65\x63\x74\x73\x2e\x6f\x72\x67\x2f\x22\x3e\
-\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2b\x20\x77\x69\
-\x6e\x64\x6f\x77\x2e\x65\x72\x69\x63\x2e\x74\x72\x61\x6e\x73\x6c\
-\x61\x74\x65\x28\x27\x41\x62\x6f\x75\x74\x20\x65\x72\x69\x63\x36\
-\x27\x29\x20\x2b\x20\x27\x3c\x2f\x61\x3e\x27\x3b\x0a\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x75\x6d\x65\x6e\
-\x74\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\
-\x28\x27\x6c\x69\x6e\x65\x45\x64\x69\x74\x27\x29\x2e\x70\x6c\x61\
-\x63\x65\x68\x6f\x6c\x64\x65\x72\x20\x3d\x20\x77\x69\x6e\x64\x6f\
-\x77\x2e\x65\x72\x69\x63\x2e\x70\x72\x6f\x76\x69\x64\x65\x72\x53\
-\x74\x72\x69\x6e\x67\x28\x29\x3b\x0a\x0a\x20\x20\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x2f\x2f\x20\x54\x72\x79\x20\x74\x6f\x20\
-\x63\x68\x61\x6e\x67\x65\x20\x74\x68\x65\x20\x64\x69\x72\x65\x63\
-\x74\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x70\x61\x67\x65\
-\x3a\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\
-\x61\x72\x20\x6e\x65\x77\x44\x69\x72\x20\x3d\x20\x77\x69\x6e\x64\
-\x6f\x77\x2e\x65\x72\x69\x63\x2e\x74\x72\x61\x6e\x73\x6c\x61\x74\
-\x65\x28\x27\x51\x54\x5f\x4c\x41\x59\x4f\x55\x54\x5f\x44\x49\x52\
-\x45\x43\x54\x49\x4f\x4e\x27\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x6e\x65\x77\x44\x69\x72\x20\x3d\x20\x6e\
-\x65\x77\x44\x69\x72\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\
-\x65\x28\x29\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x69\x66\x20\x28\x28\x6e\x65\x77\x44\x69\x72\x20\x21\x3d\x20\
-\x27\x6c\x74\x72\x27\x29\x20\x26\x26\x20\x28\x6e\x65\x77\x44\x69\
-\x72\x20\x21\x3d\x20\x27\x72\x74\x6c\x27\x29\x29\x0a\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6e\x65\x77\
-\x44\x69\x72\x20\x3d\x20\x27\x6c\x74\x72\x27\x3b\x0a\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6f\x63\x75\x6d\x65\x6e\
-\x74\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\
-\x61\x67\x4e\x61\x6d\x65\x28\x27\x62\x6f\x64\x79\x27\x29\x5b\x30\
-\x5d\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x27\
-\x64\x69\x72\x27\x2c\x20\x6e\x65\x77\x44\x69\x72\x29\x3b\x0a\x20\
-\x20\x20\x20\x20\x20\x20\x20\x7d\x0a\x0a\x20\x20\x20\x20\x20\x20\
-\x20\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x66\x6f\x72\x6d\x53\
-\x75\x62\x6d\x69\x74\x74\x65\x64\x28\x29\x0a\x20\x20\x20\x20\x20\
-\x20\x20\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x76\x61\x72\x20\x73\x74\x72\x69\x6e\x67\x20\x3d\x20\x6c\x69\
-\x6e\x65\x45\x64\x69\x74\x2e\x76\x61\x6c\x75\x65\x3b\x0a\x0a\x20\
-\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x73\
-\x74\x72\x69\x6e\x67\x2e\x6c\x65\x6e\x67\x74\x68\x20\x3d\x3d\x20\
-\x30\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x0a\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x72\x20\x75\x72\x6c\x20\
-\x3d\x20\x77\x69\x6e\x64\x6f\x77\x2e\x65\x72\x69\x63\x2e\x73\x65\
-\x61\x72\x63\x68\x55\x72\x6c\x28\x73\x74\x72\x69\x6e\x67\x29\x3b\
-\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6e\
-\x64\x6f\x77\x2e\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x2e\x68\x72\x65\
-\x66\x20\x3d\x20\x75\x72\x6c\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\
-\x20\x7d\x0a\x20\x20\x20\x20\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e\
-\x0a\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x20\x6f\
-\x6e\x6c\x6f\x61\x64\x3d\x22\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\
-\x66\x6f\x72\x6d\x73\x5b\x30\x5d\x2e\x6c\x69\x6e\x65\x45\x64\x69\
-\x74\x2e\x73\x65\x6c\x65\x63\x74\x28\x29\x3b\x20\x75\x70\x64\x61\
-\x74\x65\x28\x29\x3b\x22\x3e\x0a\x20\x20\x20\x20\x3c\x64\x69\x76\
-\x20\x69\x64\x3d\x22\x68\x65\x61\x64\x65\x72\x22\x3e\x0a\x20\x20\
-\x20\x20\x20\x20\x20\x20\x3c\x68\x31\x20\x69\x64\x3d\x22\x68\x65\
-\x61\x64\x65\x72\x54\x69\x74\x6c\x65\x22\x3e\x3c\x2f\x68\x31\x3e\
-\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x6d\x67\x20\x73\x72\
-\x63\x3d\x22\x40\x49\x4d\x41\x47\x45\x40\x22\x20\x77\x69\x64\x74\
-\x68\x3d\x22\x33\x32\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x33\
-\x32\x22\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\
-\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x69\x64\x3d\x22\x73\x65\x61\
-\x72\x63\x68\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x66\
-\x6f\x72\x6d\x20\x61\x63\x74\x69\x6f\x6e\x3d\x22\x6a\x61\x76\x61\
-\x73\x63\x72\x69\x70\x74\x3a\x66\x6f\x72\x6d\x53\x75\x62\x6d\x69\
-\x74\x74\x65\x64\x28\x29\x3b\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x20\x3c\x66\x69\x65\x6c\x64\x73\x65\x74\x3e\
-\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x3c\x69\x6e\x70\x75\x74\x20\x69\x64\x3d\x22\x6c\x69\x6e\x65\
-\x45\x64\x69\x74\x22\x20\x6e\x61\x6d\x65\x3d\x22\x6c\x69\x6e\x65\
-\x45\x64\x69\x74\x22\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\
-\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
-\x20\x20\x20\x20\x20\x3c\x69\x6e\x70\x75\x74\x20\x69\x64\x3d\x22\
-\x73\x65\x61\x72\x63\x68\x42\x75\x74\x74\x6f\x6e\x22\x20\x74\x79\
-\x70\x65\x3d\x22\x73\x75\x62\x6d\x69\x74\x22\x20\x2f\x3e\x0a\x20\
-\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x66\x69\x65\
-\x6c\x64\x73\x65\x74\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\
-\x2f\x66\x6f\x72\x6d\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\
-\x3e\x0a\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x69\x64\x3d\x22\x66\
-\x6f\x6f\x74\x65\x72\x22\x3e\x3c\x2f\x64\x69\x76\x3e\x0a\x3c\x2f\
-\x62\x6f\x64\x79\x3e\x0a\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\
-\x00\x00\x03\x7c\
-\x3c\
-\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x68\x74\x6d\x6c\x3e\x0a\x3c\
-\x68\x74\x6d\x6c\x3e\x0a\x3c\x68\x65\x61\x64\x3e\x0a\x3c\x6d\x65\
-\x74\x61\x20\x63\x68\x61\x72\x73\x65\x74\x3d\x22\x75\x74\x66\x2d\
-\x38\x22\x3e\x20\x0a\x3c\x6d\x65\x74\x61\x20\x68\x74\x74\x70\x2d\
-\x65\x71\x75\x69\x76\x3d\x22\x63\x6f\x6e\x74\x65\x6e\x74\x2d\x74\
-\x79\x70\x65\x22\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3d\x22\x74\x65\
-\x78\x74\x2f\x68\x74\x6d\x6c\x3b\x20\x63\x68\x61\x72\x73\x65\x74\
-\x3d\x75\x74\x66\x2d\x38\x22\x3e\x0a\x3c\x74\x69\x74\x6c\x65\x3e\
-\x40\x54\x49\x54\x4c\x45\x40\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x0a\
-\x3c\x6c\x69\x6e\x6b\x20\x72\x65\x6c\x3d\x22\x69\x63\x6f\x6e\x22\
-\x20\x68\x72\x65\x66\x3d\x22\x40\x46\x41\x56\x49\x43\x4f\x4e\x40\
-\x22\x20\x74\x79\x70\x65\x3d\x22\x69\x6d\x61\x67\x65\x2f\x78\x2d\
-\x69\x63\x6f\x6e\x22\x20\x2f\x3e\x0a\x3c\x73\x74\x79\x6c\x65\x3e\
-\x0a\x62\x6f\x64\x79\x20\x7b\x0a\x20\x20\x70\x61\x64\x64\x69\x6e\
-\x67\x3a\x20\x33\x65\x6d\x20\x30\x65\x6d\x3b\x0a\x20\x20\x62\x61\
-\x63\x6b\x67\x72\x6f\x75\x6e\x64\x3a\x20\x2d\x77\x65\x62\x6b\x69\
-\x74\x2d\x67\x72\x61\x64\x69\x65\x6e\x74\x28\x6c\x69\x6e\x65\x61\
-\x72\x2c\x20\x6c\x65\x66\x74\x20\x74\x6f\x70\x2c\x20\x6c\x65\x66\
-\x74\x20\x62\x6f\x74\x74\x6f\x6d\x2c\x20\x66\x72\x6f\x6d\x28\x23\
-\x38\x35\x37\x38\x34\x41\x29\x2c\x20\x74\x6f\x28\x23\x46\x44\x46\
-\x44\x46\x44\x29\x2c\x20\x63\x6f\x6c\x6f\x72\x2d\x73\x74\x6f\x70\
-\x28\x30\x2e\x35\x2c\x20\x23\x46\x44\x46\x44\x46\x44\x29\x29\x3b\
-\x0a\x20\x20\x62\x61\x63\x6b\x67\x72\x6f\x75\x6e\x64\x2d\x72\x65\
-\x70\x65\x61\x74\x3a\x20\x72\x65\x70\x65\x61\x74\x2d\x78\x3b\x0a\
-\x7d\x0a\x23\x62\x6f\x78\x20\x7b\x0a\x20\x20\x62\x61\x63\x6b\x67\
-\x72\x6f\x75\x6e\x64\x3a\x20\x77\x68\x69\x74\x65\x3b\x0a\x20\x20\
-\x62\x6f\x72\x64\x65\x72\x3a\x20\x31\x70\x78\x20\x73\x6f\x6c\x69\
-\x64\x20\x23\x38\x35\x37\x38\x34\x41\x3b\x0a\x20\x20\x6d\x61\x78\
-\x2d\x77\x69\x64\x74\x68\x3a\x20\x36\x30\x30\x70\x78\x3b\x0a\x20\
-\x20\x68\x65\x69\x67\x68\x74\x3a\x20\x35\x30\x25\x3b\x0a\x20\x20\
-\x70\x61\x64\x64\x69\x6e\x67\x3a\x20\x34\x30\x70\x78\x3b\x0a\x20\
-\x20\x70\x61\x64\x64\x69\x6e\x67\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\
-\x20\x31\x30\x70\x78\x3b\x0a\x20\x20\x6d\x61\x72\x67\x69\x6e\x3a\
-\x20\x61\x75\x74\x6f\x3b\x0a\x20\x20\x62\x6f\x72\x64\x65\x72\x2d\
-\x72\x61\x64\x69\x75\x73\x3a\x20\x30\x2e\x38\x65\x6d\x3b\x0a\x20\
-\x20\x74\x65\x78\x74\x2d\x61\x6c\x69\x67\x6e\x3a\x20\x63\x65\x6e\
-\x74\x65\x72\x3b\x0a\x20\x20\x76\x65\x72\x74\x69\x63\x61\x6c\x2d\
-\x61\x6c\x69\x67\x6e\x3a\x20\x6d\x69\x64\x64\x6c\x65\x3b\x0a\x20\
-\x20\x6d\x61\x72\x67\x69\x6e\x3a\x20\x61\x75\x74\x6f\x3b\x0a\x7d\
-\x0a\x68\x31\x20\x7b\x0a\x20\x20\x66\x6f\x6e\x74\x2d\x73\x69\x7a\
-\x65\x3a\x20\x31\x33\x30\x25\x3b\x0a\x20\x20\x66\x6f\x6e\x74\x2d\
-\x77\x65\x69\x67\x68\x74\x3a\x20\x62\x6f\x6c\x64\x3b\x0a\x20\x20\
-\x62\x6f\x72\x64\x65\x72\x2d\x62\x6f\x74\x74\x6f\x6d\x3a\x20\x31\
-\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x38\x35\x37\x38\x34\x41\
-\x3b\x0a\x20\x20\x6d\x61\x72\x67\x69\x6e\x2d\x62\x6f\x74\x74\x6f\
-\x6d\x3a\x20\x30\x70\x78\x3b\x0a\x7d\x0a\x3c\x2f\x73\x74\x79\x6c\
-\x65\x3e\x0a\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\
-\x3e\x0a\x20\x20\x3c\x64\x69\x76\x20\x69\x64\x3d\x22\x62\x6f\x78\
-\x22\x3e\x0a\x20\x20\x20\x20\x3c\x69\x6d\x67\x20\x73\x72\x63\x3d\
-\x22\x40\x49\x4d\x41\x47\x45\x40\x22\x20\x77\x69\x64\x74\x68\x3d\
-\x22\x36\x34\x22\x20\x68\x65\x69\x67\x68\x74\x3d\x22\x36\x34\x22\
-\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x68\x31\x3e\x41\x64\x42\x6c\x6f\
-\x63\x6b\x20\x50\x6c\x75\x73\x3c\x2f\x68\x31\x3e\x0a\x20\x20\x20\
-\x20\x3c\x70\x3e\x40\x4d\x45\x53\x53\x41\x47\x45\x40\x3c\x2f\x70\
-\x3e\x0a\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x3c\x2f\x62\x6f\x64\
-\x79\x3e\x0a\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\
-\x00\x00\x11\xde\
-\x00\
-\x00\x47\xaf\x78\x9c\xcd\x3c\x6b\x77\xdb\xc6\xb1\xdf\xf5\x2b\x36\
-\xb0\x1d\x80\x31\xdf\xb2\x1c\x59\x14\x55\xca\x12\x1d\xb3\x95\x25\
-\x55\xa4\xe3\xa4\xae\x8f\x0f\x44\xac\x48\xd4\x20\x80\x02\xa0\x1e\
-\x75\xf4\xdf\x3b\xb3\xbb\x00\x76\x17\x00\x49\xc9\xbe\xbd\x61\x4e\
-\x2d\x12\x3b\x33\x3b\xef\x99\x7d\xa0\xfb\x3f\x1c\x9f\x1d\x4d\x7e\
-\x3f\x1f\x92\x79\xb2\xf0\x0e\xb6\xf6\xd3\x3f\xd4\x76\xe0\xcf\x82\
-\x26\x36\x8c\x24\x61\x83\xfe\x7b\xe9\x5e\xf7\x8d\x69\xe0\x27\xd4\
-\x4f\x1a\xc9\x5d\x48\x0d\x22\x7e\xf5\x8d\x84\xde\x26\x2d\x44\xed\
-\x91\xe9\xdc\x8e\x62\x9a\xf4\x97\xc9\x55\x63\xd7\x00\x1a\x89\x9b\
-\x78\xf4\x60\x30\x1e\x4d\x86\x8d\xc9\x68\x72\x32\x1c\xec\xb7\xf8\
-\xb3\xad\x7d\xcf\xf5\xbf\x90\x88\x7a\x7d\xc3\x05\x5a\x06\x99\x47\
-\xf4\xaa\x6f\x0c\xde\x1c\xfe\x3a\x3a\x3a\x3b\x1d\x18\x04\xe7\x81\
-\xc1\x85\x3d\xa3\xad\xdb\x06\x07\x6a\x01\x62\x9c\xdc\x79\x54\x8c\
-\xb2\xc9\xa7\x71\x6c\x90\x05\x75\x5c\xbb\x6f\xc4\xd3\x88\x52\x1f\
-\xe6\xbe\x0c\x9c\x3b\xf2\x75\x8b\xc0\xe7\xd2\x9e\x7e\x99\x45\xc1\
-\xd2\x77\xf6\x48\xe3\x86\x5e\x7e\x71\x93\xc6\x2c\xb2\x1d\x17\xf8\
-\xb7\x80\x0d\x6a\x47\x75\xe2\xd1\xab\x84\x24\x41\x28\xbe\x5d\x06\
-\x49\x12\x2c\xea\xe4\x2a\x0a\x16\xd6\x93\xdd\x9d\x9f\x77\x5f\x1c\
-\xd6\xea\x00\x60\x3d\x79\x73\x8c\xff\xc1\x8f\x69\xe0\x05\x51\x23\
-\x06\x24\xab\xdd\xdc\xa9\x93\x74\xa4\xd6\xd3\xa6\x6d\x44\x34\xa4\
-\x76\xb2\x47\xf8\xdf\xc6\x2d\x07\xb8\x02\x15\xee\x91\xce\x76\x78\
-\xdb\xea\x76\xc3\x5b\x62\xbc\xa5\xde\x35\x4d\xdc\xa9\x4d\x4e\xe9\
-\x92\x1a\x75\x92\x3d\xa8\x93\xc3\xc8\xb5\xbd\x3a\x89\x6d\x3f\x6e\
-\xc4\x34\x72\xaf\x38\x0d\xc6\xc3\x1e\x79\xb2\xd3\xdd\x99\xbe\x7c\
-\xd9\xdb\xba\xe7\x82\xff\x24\x44\x4f\xc5\x5d\x02\x0a\xa0\x79\x74\
-\x0a\x33\xfa\x81\x4f\x73\x0e\x1a\xb1\xfb\x1f\x0a\x6c\xb4\xdb\xcf\
-\xf8\x43\xd4\x48\x63\x4e\xdd\xd9\x1c\xb9\x6b\xbe\xe4\x4f\x17\x76\
-\x34\x73\xfd\x3d\xd2\x0e\x6f\x71\x96\xa6\xed\x38\x62\x8e\x30\x88\
-\xdd\xc4\x0d\x60\xcc\xbe\x8c\x03\x6f\x99\x08\xe2\x11\xa3\xd0\x41\
-\x04\x50\x11\xff\xc2\x06\x6e\x5c\x27\x99\xef\x91\xee\x8b\xf4\x41\
-\x3a\x59\xfe\x44\x36\xd9\x32\xf2\xac\xc1\xe8\xdd\x2f\x9f\xcf\x4f\
-\xde\x8f\x07\x42\xb9\xd3\x65\x14\xa3\xe0\x61\xe0\x82\x1f\x46\xc8\
-\xd2\xd6\xd6\x13\x70\xd4\xe9\x17\xf0\x03\x4f\xb0\x96\x32\x6d\x2f\
-\x93\x80\xe3\xa1\xc3\x34\x6c\xcf\x9d\xc1\xd3\x29\xe5\xa8\x99\x26\
-\x6e\x04\x1f\x97\x81\xe7\x20\x45\x89\x9e\xe3\x5e\x37\x01\x3c\xba\
-\x2b\x08\x0d\x2e\x6c\x27\xee\x75\xaa\x51\x2f\x40\x43\xa3\x0f\x09\
-\x49\x82\xc8\x01\xdd\x0b\x99\x73\x25\xa4\x96\x11\xe3\xcc\xcd\x85\
-\xac\xaf\xcf\x7e\x6b\xbc\x3e\xbb\x38\x1e\x5e\x0c\x6a\x80\xa1\xea\
-\x7f\x87\xeb\x5f\x62\xcd\x5d\xcc\x04\x53\x8e\x1b\x87\x9e\x7d\x07\
-\x02\x78\xc1\xf4\x4b\xaf\x44\x05\x0a\xa2\xbd\xc6\x80\x28\x84\x30\
-\x38\x53\x1d\x18\x91\xe8\x46\xcc\xdd\x26\x35\xe2\xee\xcf\xcf\xb8\
-\x35\x32\x95\xed\xcd\x83\x6b\x1a\x91\x26\x44\x68\x52\x2f\x3e\x9e\
-\x7a\x41\x4c\x4b\x9e\x83\x62\x03\xdb\xd1\x45\x73\x7d\xf4\x4f\x9c\
-\x21\x0e\x6d\xbf\x79\x19\xdc\x4e\x30\xa1\x08\x30\xce\x55\xce\xd4\
-\xc2\xbe\xcd\x5c\xb9\x9b\xf1\x5e\x25\x30\x93\x70\x77\xf7\x59\xb9\
-\xf8\x15\x9e\x83\xcc\x82\xd5\x6f\xf6\xe6\xae\xe3\x50\x3f\xe3\x8c\
-\x89\xa5\xb0\x45\x3a\x05\x8f\xcf\x9f\xac\x36\xc2\xab\xee\x33\x89\
-\xc5\x57\xa9\x78\xa5\x61\x72\x74\x72\x36\x1e\x82\xe7\xf8\x81\xc8\
-\x3b\x85\x74\x94\xcf\x25\x0b\xc2\x3d\x11\x78\x82\x54\x04\x1c\xb8\
-\x0e\x49\x22\xc8\x36\xa1\x1d\x01\x50\x4f\xb5\x02\x4f\x21\xb2\xa4\
-\xc2\x6a\x5f\x65\xa7\x17\xc9\x69\x16\xd1\x3b\x25\x18\x30\xf7\x2e\
-\xe3\x3d\xb2\xcd\x7d\x99\x11\x41\xe7\xf8\x5e\xda\x52\x5d\x76\xb5\
-\xb6\x86\xc7\xa3\xc9\xff\x52\x59\x28\xe7\xb7\xea\x4a\x89\x8c\x54\
-\x5b\x2f\x0b\xda\x7a\xf9\x18\xdf\x6a\xaf\x4c\xc1\x17\xc3\x93\xb3\
-\xc3\xe3\xff\xa5\xbe\xb8\xac\x8f\xd1\xd8\x0b\xae\x31\x28\x0b\x88\
-\x0b\x94\x1b\x45\x1f\xdb\xde\xcd\xe4\x55\x52\xc5\xcb\x9d\xfc\x31\
-\xe6\xcf\x06\x57\x55\x5e\x47\xc4\x63\x5e\xe3\x8a\xcf\x99\x2a\x21\
-\x0d\x65\xca\x54\xaa\x40\xf7\xc1\x55\xa0\xbb\xc3\x72\xb7\x22\xc8\
-\x26\x79\x7f\x23\xbe\x75\xc2\xcd\xcb\x25\x34\x3f\x3e\xa4\x56\xc8\
-\xb6\xe1\x32\x51\x8a\x69\x8a\xba\x5d\xaa\xa0\xed\x54\xe7\xcd\xab\
-\x20\x5a\x4c\xec\x4b\x2d\x33\x93\xed\x9d\xf6\xf7\xd0\xac\xa8\x82\
-\xd2\x2c\x8c\xd3\x8f\x79\x57\x68\x7c\xd2\xe2\x23\xab\x09\xa5\x3d\
-\x51\xaa\x09\xe0\x1c\x3a\xd8\x64\xa3\xd6\x66\xfb\xa5\x9c\x67\xbe\
-\xbd\xbf\x19\x0f\x27\x93\xd1\xe9\x2f\xab\x7a\x9c\x27\xc8\x9c\xeb\
-\xcf\xe2\xd7\x60\x9c\x4d\x78\x24\x3b\xbb\x4a\x32\xec\xe6\x8e\x0d\
-\xca\x4c\x39\xdd\xd1\x79\xcf\xd5\x9e\xf2\x9e\x3f\x91\x79\x7f\x32\
-\x3c\x1e\x1e\x0d\xb5\x16\x71\x47\xf3\xfa\x34\x20\x3b\xd9\x40\x08\
-\xdd\x23\x48\x01\xc5\x16\xd2\x41\x47\x83\x5f\x99\x24\x82\xd0\x9e\
-\xba\x09\xb8\x7a\x87\xff\xfe\x4f\xc3\xf5\x1d\x7a\x8b\x31\xd5\x2e\
-\x28\xa8\x29\x16\x29\x42\x53\xa2\x37\x63\x8a\x29\x71\xc1\x4e\xea\
-\x55\x0a\x8d\x90\x78\xf6\x25\xd5\x1b\xca\x6e\x41\x92\xce\xaa\x3e\
-\x41\xe7\x2b\x09\x66\x41\xa8\x86\x15\x5f\x70\x48\x74\x04\xe5\x6c\
-\xa0\x5b\xc2\x9c\x88\xd4\x47\x31\x27\x67\x67\x61\xf5\x57\xbb\xcf\
-\x8a\x53\x44\xc1\x4d\xbc\x81\xfc\x10\xf9\xa4\xad\x98\x5d\x92\x48\
-\x58\xf3\xc9\xee\xee\x6e\xe5\x04\x72\xaa\xa9\xea\xb5\x04\x9f\xbb\
-\x7a\xcf\xd9\xe9\xaa\x49\x45\x2a\x63\xba\x1a\x4b\xbc\x44\x30\x80\
-\xe5\x26\xf5\x94\xe2\x6a\x60\x15\x5b\x05\xad\xa8\x39\xec\xe7\xf4\
-\xb1\xd6\xc4\x36\xa4\x74\x9d\x45\xa2\x48\xa0\x52\x0e\x56\xdc\x84\
-\x05\xb1\x5e\x9c\x52\xd9\x1a\x3b\x65\x4e\x28\xfc\xfd\x7e\x6b\xbf\
-\xc5\x96\xce\x07\x5b\xb0\x86\x9e\x46\x6e\x98\xc8\x8b\xe8\x7f\xd9\
-\xd7\x36\x7f\x6a\x90\x38\x9a\xc2\x4a\xfc\xaf\x7f\x7f\x3f\xbc\xf8\
-\x7d\x60\x1c\x00\x1e\x1b\x38\x78\x08\x5e\xe3\xfd\xe8\x01\xa8\x07\
-\x8c\xeb\x6b\x3b\x22\xd8\x5f\x40\x12\xfc\x3c\x7a\x77\xf8\xcb\x90\
-\xf4\x89\x39\x10\x4f\x1a\x90\x22\x07\x66\x2f\x03\x7c\x7f\x71\xc2\
-\x86\xe1\xaf\xfc\x98\x6d\x33\xb0\x01\xbe\xe1\x20\x0d\x61\xab\xc7\
-\x46\x0e\xcf\xcf\x4f\x7e\x97\x47\x4e\x87\x1f\x3e\x9f\xa7\xf3\xc1\
-\x8f\x06\xfe\x28\x50\xfd\x9c\x11\x60\x3f\x1b\xac\x75\x2c\x00\x5d\
-\x0c\xdf\x9d\xfd\x2a\x71\xd0\xe0\x0f\xca\x00\x51\x32\x05\x90\x35\
-\x57\x05\xc0\x37\xc3\xc9\xd1\x5b\x4d\xae\x46\xfe\x50\x46\x78\x77\
-\xf8\x1b\x13\x64\xfc\xf9\xe2\xec\x03\x40\x0f\xe0\x0f\x13\x66\x3c\
-\xc8\x81\x8e\x47\x87\x27\x9f\x3f\x8c\x8e\x27\x6f\x11\x62\x7c\xdc\
-\x18\x8f\xfe\x31\x84\xf1\x0c\x00\xbb\x00\x88\x8e\x91\x03\xe3\x8d\
-\x8e\x18\xb8\x5a\xfa\x53\xac\x33\x84\xc6\x53\x3b\xa4\x6c\xd5\x65\
-\xb1\xcd\x9c\x9a\x70\x51\xe6\x78\x6c\x31\xd6\xe7\x7f\xa1\x79\x03\
-\x7f\x9f\x52\xab\x65\xb4\x66\x75\x62\xfe\xf8\xef\x65\x90\xf4\x4c\
-\x51\xde\x56\x80\x9b\x1c\xdc\x86\xda\xa6\x80\x47\x34\x59\x46\x3e\
-\x87\xe6\x4f\xef\x35\xe6\x96\xfe\x63\xd8\xe3\x8c\xb1\x49\x8d\x0d\
-\xd8\xe3\x8c\x31\xf0\x7f\x9a\x0f\xe3\x8f\x73\xf7\x1e\x4a\x3e\x94\
-\x7d\x99\x33\xf8\x09\x13\xc1\xbf\xba\xd2\x64\xfa\x25\x40\x66\x01\
-\x48\x30\x01\x50\xe5\x2c\x04\xfe\x05\x5d\x40\xc3\x77\xe4\xb9\xd3\
-\x2f\x16\x64\x18\x99\x8d\x88\x0d\x41\x5a\xb4\x9e\xb2\xa1\x26\x2b\
-\xaf\x56\xba\xa7\x55\xa4\x35\x04\x5f\xf9\x1b\xbd\x3b\x8f\x68\x1c\
-\x5b\x8a\xae\xdd\x2b\x62\xd1\xe6\x17\x7a\x77\x14\x38\xa0\xc4\x3e\
-\xe9\x6c\xcb\xc3\xf8\x81\x19\x10\x9f\x3a\x96\xc4\xbf\x24\xc3\x95\
-\xed\xc5\x34\x1f\xb9\xcf\xbe\x51\x78\x5e\x9c\xa0\xfb\xb3\x3e\xc1\
-\x53\xcb\x7c\x72\x65\x3b\xf4\x8c\xf7\xb7\x66\x0d\x16\xab\x28\xf5\
-\x03\xa7\x4b\xed\x1a\x2d\x2b\xcc\x1a\xf8\x6f\x68\x32\x9d\x33\xaf\
-\xe3\x7a\x9d\xce\xe9\xf4\x8b\xa6\x5c\x8c\x2d\x51\x03\xc6\x98\x89\
-\xf3\xa9\x52\xe8\x26\xfb\x42\x1d\xf2\x17\x05\x10\xe3\x9e\x6f\x2f\
-\x98\x64\xaf\x30\x72\xed\xc6\x2e\xb4\xc0\x66\x4e\x0e\xc5\x66\x4e\
-\x78\x02\x65\x06\x85\x06\xdb\x7c\xe5\x70\xae\x07\xed\x53\x81\xca\
-\x7d\x85\x7d\x61\x52\x8a\x16\x42\x87\x90\x25\x29\xea\x95\xfd\x5a\
-\x26\x96\x11\x7b\xc1\x8d\x51\xcf\x48\x20\xda\x53\xcb\x90\xa1\x8d\
-\x5a\x93\xbb\x19\x98\xa1\x6a\x62\xa8\xda\xe3\x90\x52\xe7\xd8\xb5\
-\x3d\xab\xc6\xc6\xf2\xd9\xb9\xd7\x71\x3d\x03\x20\x32\x67\x9a\xf5\
-\x2c\x8b\xb3\x78\x90\x2c\xcc\xea\xe0\x39\xac\xac\xac\x6c\x32\xfc\
-\xb7\xcc\x93\x4b\x63\x42\x4e\x87\x6a\x54\xf4\x14\xd3\xc2\xc8\x7b\
-\x16\xa0\x02\x68\x3a\x77\x3d\x07\x5a\x57\xcb\xb4\x51\x41\x6e\x14\
-\x27\x56\xad\x69\x27\x49\x64\x99\xb8\xdb\x6d\x16\xf1\x27\x22\xe1\
-\xc8\x49\xac\x40\x0d\x1b\x15\x89\x20\xd6\x52\x4b\x96\x17\xe3\x22\
-\xe5\x05\xa2\x02\x94\xa1\x07\x1d\x67\xd3\xc4\xdd\xfd\xbd\x56\xcb\
-\x14\x19\x5e\x18\x16\x37\x90\x81\xbc\x1d\x86\xd4\x77\x2c\x73\xdf\
-\x71\xaf\x89\xeb\xf4\x0d\xd9\x82\x84\x75\x12\x7d\x23\x6d\xc7\xdb\
-\xcd\x57\xbd\xb4\xbb\x61\xcb\xf7\x6c\x55\x72\xe5\xde\x52\xa7\xc7\
-\x3a\xec\x76\xcf\x24\xcf\x15\x56\x94\x8f\x89\xbd\x4d\xbb\x27\x6d\
-\xe1\x89\xf6\x8e\x7d\x4f\x1b\xfd\x57\xf0\xe9\x49\x4b\x10\xb1\x37\
-\xdf\x33\x0e\x56\x13\xcf\xc4\x90\x97\xba\x06\x98\x1d\xf2\x47\x88\
-\xc9\xab\x6f\x88\x28\xd7\x73\xda\x35\x74\x7a\xb5\xb5\xe4\x71\x35\
-\xce\xfa\x1f\x80\x2b\x3a\x00\x8c\x16\x5c\x00\xa0\xcd\x1a\x00\x9b\
-\xc6\x01\x59\x43\x3c\x61\x4b\xdc\xa9\x67\x23\x9b\xd9\x9a\x17\xda\
-\xab\x24\x82\xff\x39\xc8\x1b\xeb\x87\x80\xd8\x1e\xd9\x6f\xc1\x13\
-\xf1\x74\x25\xc7\xac\xe1\x96\x56\xcc\xdc\xca\x40\x1d\xdc\xc3\x00\
-\x8f\xf4\x96\x94\x8b\x23\x3c\x86\xb1\xca\xa9\xb7\x60\xe2\x75\x3c\
-\x47\x8c\x5e\x96\x86\x8c\x8c\x53\xde\xca\x7c\x27\x5e\x59\x8c\xe8\
-\xdc\xf2\x30\x7a\x28\xbf\x8c\x91\x8c\x23\x65\xce\x34\x3f\x8b\x79\
-\xb3\x5c\x8f\x0e\xc4\x2a\x0a\xf8\x55\xa1\x04\x24\x73\x37\x5e\xef\
-\x38\x7c\x79\x09\xa2\x28\x74\x0f\x08\xc9\x54\x25\x37\x80\x20\x13\
-\x28\x8d\xe1\x6c\x2e\x5a\x8b\xf9\xcf\xc1\x7e\x98\xba\x50\xb6\xb8\
-\x58\xef\xd6\x92\x12\x38\x56\xa6\x6b\x32\xe0\x3b\xcd\x04\x95\x70\
-\xc4\x95\xa0\xd4\x8b\xf5\x31\xb9\x8a\x3a\x57\x00\x6b\xb9\x51\x68\
-\x22\x4f\x23\xf5\x0d\x68\xe1\x70\xad\x02\x20\xf8\x0f\xf8\xbf\x98\
-\x74\x57\x94\x31\x5e\x29\xaf\x5c\x0f\x16\x77\x58\x25\x4d\xdb\x0b\
-\xe7\xb6\x25\xf2\x5c\xff\x55\xbb\x66\xde\xf3\x62\x37\xf2\xe5\xfc\
-\x5f\xd5\x68\xc8\x65\x50\x51\xce\xbd\x86\x2c\xa7\xa5\x22\x36\x4f\
-\x42\xe4\x2b\x61\x5f\x9a\x78\xe6\x78\x1e\x01\x53\x33\x9b\x13\xef\
-\x11\x9d\x9e\x88\x63\xcc\x3a\xc1\x74\x19\x5b\x95\x0d\xdc\x05\xdb\
-\x60\x2d\x2d\x7c\x58\x94\x96\xdf\x52\xd1\x30\x29\x96\x20\x2b\xd9\
-\x50\x32\x07\x16\xae\x65\x45\xd5\xe2\xc9\x59\xb1\x1d\x90\x91\x73\
-\x69\x5d\x5d\x3b\x4a\xac\xc4\xd8\x49\xe0\x91\x57\x13\x45\x9d\xcc\
-\x97\x8b\x4b\xdf\x76\x79\x0b\x5e\xae\x16\xc9\xc1\xf4\x8e\x36\x6f\
-\x06\x70\x71\xb4\x86\x49\x51\xd6\x41\x09\x0e\x58\x61\x81\xb6\x9b\
-\xd1\x64\xe8\x51\xfc\xfa\xfa\x6e\x04\xf5\x35\x3b\x8f\x03\x95\xe4\
-\x63\xf1\xeb\xbb\x89\x3d\x3b\xb5\x17\xd4\x32\xc1\x6d\xcd\xda\xc7\
-\x6c\xe2\x4f\xaa\x8e\x6d\x20\x8e\x9d\x63\x39\x2e\xd8\xe9\x63\x5b\
-\xc3\x08\x22\x77\xe6\xfa\xb6\xc7\xbb\x00\x1b\x31\x0f\x41\x8b\x2e\
-\x44\x20\x2d\xda\x31\xa6\xe8\xb0\xb8\x62\xc9\x38\xa8\x4b\x1a\x05\
-\x1d\xbe\x89\x82\xc5\xfb\x98\x46\x23\x8c\x66\x4b\x75\x3e\x66\x1e\
-\x83\xc5\xb4\x51\xab\x15\xc8\xf2\x0e\x47\x22\x9c\x62\xb3\x81\x02\
-\xbe\x2a\xc7\x74\x6e\xfb\x33\xea\x6c\x26\x06\x22\xe4\xf9\xf5\x48\
-\xb4\xd9\x2b\xec\x92\x03\x63\x38\x72\x78\xcd\x57\x8b\xf4\xfe\xf8\
-\x83\x58\xb2\x7a\x7f\xe8\xcb\x5c\xfe\xf8\xa3\xfc\xeb\x07\xee\xe5\
-\x44\x5f\xb3\xe4\x81\x53\x6d\x56\x16\x41\x8a\x61\x19\x4f\x8b\x19\
-\xee\x5e\x4b\x5a\x28\x8f\x8b\x35\x4b\xa4\x55\xad\x7c\x21\xcb\xae\
-\xe8\xed\x0b\xb0\x55\x71\x58\x6e\xbb\x7a\xd1\x5e\x2b\x69\xf2\x79\
-\x47\x78\x84\xf2\x26\x88\xd0\x61\xcb\xe9\x6a\x44\xe4\xc4\x79\xcf\
-\x17\x96\xaa\x94\x6a\x4d\x2b\x59\x1d\xe6\x2c\x08\xeb\x5a\xb6\xe7\
-\xe1\x7a\x23\xae\x5c\x37\xe7\x00\xc5\x74\x1b\xb3\x94\x69\xda\x1f\
-\xd3\x62\xcd\xa2\xcf\xf8\xa4\x7b\x33\xeb\xac\x04\x30\x2e\x09\x24\
-\x78\xde\x43\x14\x30\x58\x18\x01\x82\x61\x28\xb5\x22\x3b\x79\x07\
-\xdb\x53\x7b\x3a\xcf\xcb\x8e\x5b\xe6\x9b\x69\x45\x60\xed\xcd\x83\
-\x4a\x82\xc2\x79\x29\x8d\x2a\x39\xb4\xc5\x4e\x91\x64\x5a\x69\x74\
-\x82\x95\x8d\xb7\x4e\x02\x35\xf3\x1c\x02\x12\xa4\xdb\x63\x6d\xa4\
-\xb6\x53\x83\xcd\xe4\x1f\x8c\x71\x79\x58\xd9\x66\x62\x20\x30\xa1\
-\x8e\x8f\x75\x8a\x0d\xf6\xa4\x25\xfa\xbd\x1c\x87\x62\xe5\xc1\xb8\
-\xa8\x5c\x0f\xa3\xff\x01\x2b\x75\xae\xbe\x3a\x8a\xfc\x39\x0e\x96\
-\xd1\x94\x16\xf7\x18\xae\xe5\xcc\x36\x8d\xa8\x9d\x50\x91\x45\x44\
-\x39\xc9\x19\x41\xeb\xab\x49\x83\xe9\x1f\xd2\x86\x29\x9c\xa2\xac\
-\xa6\x57\x11\x67\xfa\x96\x96\xa2\x15\x19\x49\xe2\xbd\x58\xcd\xaa\
-\x68\xdb\x32\x65\x5b\xa3\xcb\x7c\xad\x4e\xf2\x92\x5e\x06\x94\x49\
-\xc6\x63\x4a\x17\x0d\xbd\xaf\xb3\x82\x01\xbe\xf0\x96\xfb\x0a\x80\
-\x5f\x31\x85\xa8\x1e\x3a\x82\xeb\xfb\x34\x9a\x80\x23\xe3\x5e\x9e\
-\xb2\x5f\x29\x95\xd5\x92\x7d\xcc\x12\x6e\xbb\x0f\xe4\xb6\x5b\x69\
-\x6a\xd6\x76\xae\x06\x16\xed\x37\x82\xcb\xbb\x25\xfc\x78\xee\x34\
-\x70\x68\x6d\x1d\x05\x26\x07\xe0\xe7\xdb\xe9\x25\x32\x6d\x3f\x50\
-\xa6\xed\x2a\x99\xd8\xbd\x94\x75\xd0\x8a\x50\xf2\xc6\xe8\x0a\xb1\
-\x74\x1a\xaa\x58\x7c\xbf\xbf\x44\xb0\x17\x0f\x14\xec\x45\x95\x60\
-\xfc\x4e\xc4\x3a\x70\x4d\xb2\xbc\xcb\x5f\x21\x99\x4e\x43\x97\x0c\
-\x3b\x09\x39\x71\x61\xf2\xe0\x1b\x45\x47\x98\x72\x59\xaa\xeb\x3d\
-\x72\xd4\x5e\x31\xc6\x02\x67\xcd\x78\x77\xcd\xf8\xf6\x9a\xf1\x17\
-\x8a\x60\x15\x6d\xa1\x91\xb5\xeb\x46\x4d\xa1\x00\x14\x4b\x32\x3a\
-\x3c\x2d\xcf\xe7\xbc\xfd\x65\xcd\x8a\xe5\x3a\xab\x92\xf9\x77\x5a\
-\x3e\xb8\xf2\xba\x41\xec\x10\xb2\x85\xd6\xd2\x77\xe8\x95\xeb\x43\
-\x73\xb5\x7e\x29\xf3\xf0\xb6\x74\x7d\x01\xc0\xca\xf8\x17\x2c\x98\
-\x3e\xbd\x21\xc7\x10\x13\x95\x4d\x13\xd0\x61\xe9\x70\x12\x88\xaa\
-\x2c\x4a\x61\x89\xc6\x58\x5f\xf4\xad\x3a\xcb\xa5\x80\x15\x09\xb1\
-\x5c\x20\xd9\xee\x11\x97\xec\xf3\x19\x9a\x1e\xf5\x67\xc9\xbc\x47\
-\x9e\x3f\x2f\xed\x93\xb8\xe1\x18\xe8\x47\xf7\x93\xd6\x75\x6f\x60\
-\x01\xfc\xe0\x05\x06\xd7\xc7\xa6\xa0\x74\x7b\x43\xd9\x75\x5e\xb7\
-\x08\x5c\xb3\x40\xd2\xa6\x8d\x03\x8f\x42\x9b\x3e\x4b\x77\x92\x9f\
-\x13\x83\x90\x03\xdc\x85\x79\xae\x15\x59\x5d\xac\x25\x5f\xf7\x70\
-\xbc\xa2\x48\x6b\x44\x4b\x93\xe5\x4a\x81\x78\xb6\x2c\xac\x7f\xd8\
-\x85\x31\xb9\xba\xae\xae\xa7\x72\x2f\xff\x2d\xcd\x3c\xf8\x25\x0b\
-\x64\xc9\x2f\xab\xc3\xd9\x16\xe2\xa4\x4d\x3e\xbf\xf6\x6e\x72\xad\
-\xb2\x2e\x51\x69\xdb\x9f\x5a\x29\x82\xde\x9b\x57\xbb\x5c\xda\x05\
-\xf3\x3c\x5f\xd1\x2d\xcb\x6c\xa8\xdb\x33\x06\x8c\x1a\xd2\xf6\x8c\
-\x6e\x5f\xb6\xf1\x92\x31\x85\xb7\xc7\x81\x17\x70\xe3\x76\xd1\xd6\
-\x85\x24\xc2\x45\x92\xf1\xe5\xfd\x9b\x4d\x92\x02\x33\x40\xb5\x21\
-\xc4\x56\x05\xa6\x54\xed\x80\xf5\xcf\x96\x4b\x1f\xb6\x6f\xb3\xb6\
-\xdd\x2d\xd7\x05\x77\x77\xd4\x46\x55\xa6\xfc\xd3\xe8\xe3\x31\x41\
-\xff\xa8\x80\xd7\x35\x95\x1f\x79\xbb\x8e\xbe\xdb\x07\x49\x0a\xe2\
-\x60\x61\x19\xe2\xd6\xc5\x87\xc3\x8b\xd3\x81\x51\xab\xfd\x69\xb5\
-\xb8\xfc\x1e\xa5\x60\xa3\xe6\x87\xab\x8d\x37\x3f\x98\x40\x2a\xce\
-\x5b\x4b\x12\x6b\x71\xa3\x46\x2d\x28\x8f\xda\x4f\xc9\xa6\x54\x4f\
-\xa9\xf1\x65\x26\xf9\x30\x93\xdf\x80\x52\xdf\x9e\xf8\x08\xd9\xe7\
-\xa7\xbe\xd1\x0c\xfd\x99\xf1\xe9\xab\x38\x74\x64\xf7\x1d\xf9\x59\
-\xa4\xf9\x3c\xbf\x31\xf3\xdc\x0c\x6f\xef\xd3\x8b\x54\x6a\xa2\x36\
-\xcb\x5e\x17\xc9\x8e\x14\x18\x29\x3c\x51\x90\x6e\xdf\x40\x92\x0b\
-\x6f\xcd\x7a\x65\x89\xd4\x3e\x26\x67\x0d\x89\xbc\xb3\x93\x79\x93\
-\x1d\x80\x5a\x12\xbd\x16\xe9\x34\x77\x5e\xd4\x04\x5d\x65\x87\x01\
-\x7d\x83\xb1\xc0\x12\xfe\x8d\xeb\x3b\xc1\x4d\xad\xc9\x9e\xe8\xc7\
-\xd8\x7c\x16\x05\x8e\x3f\x2a\x39\xef\xfe\x20\x48\x32\x7e\xae\xbc\
-\x20\x88\x2c\x45\xbe\xed\x76\x11\xe7\x6d\x4a\x5f\x42\x5a\x27\xcf\
-\x8b\xb6\x2e\xcc\xc2\xbe\x7d\x2d\xfa\x3c\x89\x0e\x17\xb1\x95\xb1\
-\xa6\x9d\x8a\x67\x48\x07\xea\x4d\xa9\x9a\x42\x4e\x1e\xa9\xc0\xdf\
-\x27\x1d\x05\xa7\x53\xe4\x2e\xd5\x76\x06\xf5\x53\xc6\x95\xec\x35\
-\xc6\x13\x39\xa8\xd0\x57\x84\xab\xd4\x73\x22\xdc\x9e\xba\x06\x58\
-\x67\x79\x04\x3a\xe3\xb6\xd2\x08\x65\xd5\x1c\x5c\xd1\x48\xcb\xb4\
-\x6a\x0b\xbc\xf7\x98\xaa\x6f\x4a\x5d\xcf\x92\x28\xb6\x32\xbe\x35\
-\x24\x7e\xe5\x30\x09\x42\xc0\xb4\x84\xab\x34\x38\xa9\x9f\x72\xeb\
-\xd6\x80\x40\x57\xdb\x2d\xcf\x31\xf7\xa1\x57\x50\x08\xb5\x95\x73\
-\x9d\x12\x95\xe4\xb7\x1f\x99\x5e\x52\xcc\x4c\x31\x88\x88\x97\xb7\
-\xf1\x6f\x5e\x02\xed\x6b\x3a\x16\x17\x3d\x95\xbc\xa0\xdf\x92\xc3\
-\xd8\x3d\x9f\x8d\xfc\x8b\xe0\x06\xe2\xf5\x1a\x6f\x9c\xe4\x42\x2b\
-\xb7\xe5\x42\x7c\xc1\x71\xe4\xf3\x53\x8e\xb1\x33\x06\xad\xa6\x18\
-\xe5\xb9\x0e\xca\x30\xcb\x5c\x8c\xb8\xa5\x3a\x5d\x59\xc6\x03\x78\
-\x4e\x56\x8a\x03\x99\x72\xc9\x5d\x16\x5d\x6a\x86\x3e\x09\x66\x33\
-\x8f\x16\xb6\x97\xd9\x39\xc6\xaa\x62\x35\x96\xb0\xf5\xed\x31\x3e\
-\xb6\x1e\xbb\x1c\x6f\xec\xad\xc2\x8c\x3d\xd7\xa1\xd1\xaf\xb8\x01\
-\x3a\x56\x76\x36\x38\x72\xd3\x71\x63\x3c\xc3\xc6\x13\x1b\x7e\xb5\
-\x4a\xba\x29\xc5\xae\x6d\x41\x52\xc4\xeb\x59\x45\xcc\x74\xd3\xbb\
-\x80\xa6\x8c\xef\x91\xee\x76\xa7\x80\x3c\xf6\x78\x77\xf1\x76\xf2\
-\xee\xa4\x8c\x84\xe4\x1b\x32\x81\x82\x4d\x58\x1b\x31\x5b\x46\xb4\
-\xfa\x4e\x53\xab\x45\x4e\xf0\xa5\x9e\xf4\x66\xb2\x52\x58\x54\xe7\
-\xac\xf2\x22\x84\x94\xf4\x78\x8e\x3b\xdf\xf8\x62\xee\x4a\x04\xc5\
-\x89\x15\x9f\x2b\x42\xa5\x6e\xd1\x0c\xa3\x20\xb4\x4c\xa1\x07\x88\
-\x48\x49\x0f\xb0\xf2\x53\x35\xa9\x71\x85\xd6\xe5\x5c\x6d\x3a\x99\
-\x0b\xf1\xbf\x97\xce\x55\x03\xad\x2b\x6c\xf3\x66\xe2\x90\xad\x22\
-\x52\x27\x01\xa8\x3d\x15\xca\x56\xc7\xeb\x44\x82\x95\xa2\x0b\x8c\
-\x30\x9e\x07\x37\x04\x43\x31\x98\x29\x4c\x49\x67\x5c\xdd\xf5\xf7\
-\x04\x3a\xed\x0d\x2f\x0a\x74\x4b\x6f\x0a\x64\x4b\xb8\xf4\x28\xce\
-\xc4\xa3\x38\xb3\xe4\x98\x5f\xba\xc8\xfe\x2d\xb7\x06\x0a\x1e\xcb\
-\xb7\x18\x0f\x3d\xaf\x70\x00\x5e\xd6\x12\xe3\xd5\x65\xa5\x2d\x16\
-\xec\x3d\xe0\x64\x09\x3f\xea\x36\xa5\xd0\x41\xc5\x71\x5d\xca\xf1\
-\x53\x2b\xcd\x29\xe8\x0b\xb6\x73\x97\xcd\x41\x24\xd6\xd9\x02\x23\
-\x4d\x5f\x66\xee\x79\xd9\x81\x4c\x3a\x08\xa3\xe0\xbe\xa6\xe2\x65\
-\x95\x6e\xcf\x12\x8f\xea\x6b\x95\xb0\x2c\x39\x6d\xfd\x3f\x3a\x79\
-\xaa\xbc\x2d\xe9\x4e\x7e\x8b\xbf\xeb\xbf\xb5\x8f\x77\xfe\xf8\x1d\
-\xfc\xec\x9e\x5c\x5e\x83\xc5\xcd\x19\x3e\x6c\xe7\xb7\x70\xca\xb2\
-\x5a\xcf\xe0\x2b\xcd\xbe\x31\x48\x5f\x67\x12\x6f\xfe\x1b\xe9\xe5\
-\x23\x74\x59\xa4\x69\x17\x29\xaa\xb7\x3e\x25\x5a\x87\xc7\xc7\x3a\
-\x19\x80\x15\x54\x38\x99\x0d\xde\x2f\xc0\xcf\x60\x74\x3a\x9a\x80\
-\xfd\x1b\xe3\xa3\x8b\xd1\xf9\x64\xb0\xa2\xb4\x72\x53\xa5\x3d\x70\
-\x44\x59\x0f\xa5\x84\xa9\x8c\xa2\x85\xa6\xe8\xbb\x84\x05\xc6\xec\
-\x35\x33\x1e\x74\x95\x9d\x4e\x1c\x44\xec\xa2\x96\xa5\x46\x46\x04\
-\xd1\x1b\x25\xbc\xbc\xa9\x6b\x85\xf4\x05\x31\x13\xbd\x43\x5b\x47\
-\xe0\xf6\x9a\xed\xfa\x18\x18\x00\x90\xc6\x88\x06\x94\xbd\x4d\xd5\
-\x6e\xee\xaa\x23\xc0\x77\x62\xfb\x53\xba\x07\xad\xb7\x3a\xb2\x0c\
-\x1d\x3b\x81\xe7\x6a\x96\xa9\x93\x65\x69\x48\x6f\xb0\x96\x4b\x3f\
-\xf9\x81\x7a\xaa\xc9\xdc\x53\xd9\xaf\x92\x8b\xa8\xdd\xc7\xde\x44\
-\xdd\xe8\xae\x29\xfc\x28\xbf\x6a\x2a\x38\xcd\x38\x92\xb2\xb0\xe4\
-\x6a\x6c\x58\x78\x2b\x7b\xe3\x4b\x1a\x83\x51\xe9\xe2\x9f\xa8\xef\
-\xc6\xc1\x60\xf2\xdb\xe4\xf3\xe9\x05\x94\xe9\xf1\x20\xbd\xe6\x97\
-\xd3\xcb\xc3\x50\x27\xcf\x5f\x61\x52\xe9\xb3\x0d\x15\xc6\x9d\xdc\
-\x13\xc0\x1c\xf9\x3b\x21\xa0\x60\x00\x52\xb0\xf8\x95\x3c\x44\x4b\
-\x99\x12\x21\x15\xa1\xf9\x0c\x7c\x6d\xb0\x6f\x80\xda\x61\x79\xd0\
-\x37\x76\xb3\xeb\x7a\x12\x51\x34\x09\x0d\xfb\x46\x87\x5d\x8e\x64\
-\x56\xef\x1b\x95\xbd\x09\xe6\x78\xde\x83\x61\xbc\xb7\x36\x92\xb6\
-\x44\x99\xe5\x97\x35\x7d\x7b\x01\xbf\x63\x07\x23\x57\xdc\x19\x95\
-\xf3\xae\xcc\xa0\xda\x36\x23\x27\x3f\xfa\x97\x71\xd8\x93\xcd\xa4\
-\xe0\x72\x5b\x8d\x8f\xd9\xcb\x33\xff\x17\xb6\x1a\x43\x7e\xcb\xde\
-\xce\x59\x69\x29\xce\x57\x99\xa1\x3a\x2f\x76\x84\xa9\xb6\x5f\xb6\
-\x73\x63\xa5\x54\x37\x31\x55\xde\xb0\x3d\xc6\x54\xe2\x0d\x4c\x55\
-\xda\xb2\x7b\xa8\x4a\x2a\x78\xe8\xb5\xd3\x92\xa6\x4a\xef\x9c\x14\
-\x86\xd7\xce\x01\x75\x82\xbf\x24\x46\x94\x7b\xa7\xea\x8a\xb2\xb7\
-\xc9\xb4\xca\xac\x78\x55\xb5\x5c\x6b\x72\x89\xe5\x5f\xf7\x5b\xbc\
-\x28\xef\xb7\xf8\xff\x2f\xcf\x7f\x01\xf9\x62\xc8\xf7\
-"
-
-qt_resource_name = b"\
-\x00\x04\
-\x00\x06\xfb\x3c\
-\x00\x68\
-\x00\x74\x00\x6d\x00\x6c\
-\x00\x11\
-\x01\xd8\x74\x9c\
-\x00\x6e\
-\x00\x6f\x00\x74\x00\x46\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x50\x00\x61\x00\x67\x00\x65\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
-\
-\x00\x0e\
-\x08\x97\xc9\x7c\
-\x00\x73\
-\x00\x74\x00\x61\x00\x72\x00\x74\x00\x50\x00\x61\x00\x67\x00\x65\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
-\x00\x10\
-\x0b\xe9\x1d\x9c\
-\x00\x61\
-\x00\x64\x00\x62\x00\x6c\x00\x6f\x00\x63\x00\x6b\x00\x50\x00\x61\x00\x67\x00\x65\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\
-\x00\x12\
-\x06\x3e\x39\x5c\
-\x00\x73\
-\x00\x70\x00\x65\x00\x65\x00\x64\x00\x64\x00\x69\x00\x61\x00\x6c\x00\x50\x00\x61\x00\x67\x00\x65\x00\x2e\x00\x68\x00\x74\x00\x6d\
-\x00\x6c\
-"
-
-qt_resource_struct_v1 = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\
-\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x00\x7e\x00\x01\x00\x00\x00\x01\x00\x00\x15\x56\
-\x00\x00\x00\x36\x00\x00\x00\x00\x00\x01\x00\x00\x04\xd3\
-\x00\x00\x00\x58\x00\x00\x00\x00\x00\x01\x00\x00\x11\xd6\
-"
-
-qt_resource_struct_v2 = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x02\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\x6a\x36\x3b\x50\xa2\
-\x00\x00\x00\x7e\x00\x01\x00\x00\x00\x01\x00\x00\x15\x56\
-\x00\x00\x01\x6a\x36\x3b\x50\x1f\
-\x00\x00\x00\x36\x00\x00\x00\x00\x00\x01\x00\x00\x04\xd3\
-\x00\x00\x01\x6a\x36\x3b\x4f\xa0\
-\x00\x00\x00\x58\x00\x00\x00\x00\x00\x01\x00\x00\x11\xd6\
-\x00\x00\x01\x6a\x36\x3b\x4f\xf1\
-"
-
-qt_version = [int(v) for v in QtCore.qVersion().split('.')]
-if qt_version < [5, 8, 0]:
-    rcc_version = 1
-    qt_resource_struct = qt_resource_struct_v1
-else:
-    rcc_version = 2
-    qt_resource_struct = qt_resource_struct_v2
-
-def qInitResources():
-    QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-def qCleanupResources():
-    QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-qInitResources()
--- a/eric6/Helpviewer/data/icons.qrc	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-<!DOCTYPE RCC>
-<RCC version="1.0">
-<qresource>
-  <file>icons/ericWeb16.png</file>
-  <file>icons/ericWeb32.png</file>
-  <file>icons/adBlockPlus16.png</file>
-  <file>icons/adBlockPlus64.png</file>
-  <file>icons/close.png</file>
-  <file>icons/edit.png</file>
-  <file>icons/loading.gif</file>
-  <file>icons/plus.png</file>
-  <file>icons/reload.png</file>
-  <file>icons/setting.png</file>
-  <file>icons/brokenPage.png</file>
-  <file>icons/box-border-small.png</file>
-</qresource>
-</RCC>
Binary file eric6/Helpviewer/data/icons/adBlockPlus16.png has changed
Binary file eric6/Helpviewer/data/icons/adBlockPlus64.png has changed
Binary file eric6/Helpviewer/data/icons/box-border-small.png has changed
Binary file eric6/Helpviewer/data/icons/brokenPage.png has changed
Binary file eric6/Helpviewer/data/icons/close.png has changed
Binary file eric6/Helpviewer/data/icons/edit.png has changed
Binary file eric6/Helpviewer/data/icons/ericWeb16.png has changed
Binary file eric6/Helpviewer/data/icons/ericWeb32.png has changed
Binary file eric6/Helpviewer/data/icons/loading.gif has changed
Binary file eric6/Helpviewer/data/icons/plus.png has changed
Binary file eric6/Helpviewer/data/icons/reload.png has changed
Binary file eric6/Helpviewer/data/icons/setting.png has changed
--- a/eric6/Helpviewer/data/icons_rc.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2073 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Resource object code
-#
-# Created by: The Resource Compiler for PyQt5 (Qt v5.12.1)
-#
-# WARNING! All changes made in this file will be lost!
-
-from PyQt5 import QtCore
-
-qt_resource_data = b"\
-\x00\x00\x03\x30\
-\x89\
-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
-\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
-\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
-\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0e\x4d\x00\x00\x0e\x9c\
-\x01\xde\xf6\x9c\x57\x00\x00\x02\xd2\x49\x44\x41\x54\x38\x8d\x6d\
-\x93\x4d\x68\x5c\x55\x14\x80\xbf\x73\xdf\x9b\xe9\xc4\x21\xcc\x4c\
-\x4c\xc6\x2a\x22\xb6\xa9\x93\x44\x0c\xa3\x62\xc1\x2c\x14\x9d\xd2\
-\x12\x35\x85\x52\x5a\x11\x6c\xa5\x1b\x71\x57\xe8\xce\xc5\x74\x37\
-\x82\x2e\xa5\x4b\x05\xcb\x20\xc6\x45\xdd\x48\x4a\xf0\x27\xf1\x07\
-\x69\xa4\x86\xc2\x98\xd0\xc4\x50\x14\x1a\x4d\x9b\x57\xf3\x63\xe0\
-\xbd\xe4\xdd\xf7\xee\xbd\x2e\x06\xa7\xb1\x7a\x56\xe7\x1c\x38\x1f\
-\x87\xc3\x77\x84\x7b\x62\x69\x69\xc9\x69\xad\xef\x6d\x03\x90\xcd\
-\x66\xa9\x54\x2a\xb2\xbb\xe7\xef\x2e\x5a\xad\x96\xdb\xba\xd0\xc0\
-\x9f\xbe\x8c\x12\xc1\xcb\x08\xce\x82\xb5\x0e\xa7\x1c\x5b\xcf\x8f\
-\xd1\x6a\xb5\x5c\xb5\x5a\xed\x40\x3a\xc9\xcc\xcc\x8c\x53\xcd\x0b\
-\xdc\xf7\xed\x57\x78\x22\x74\xed\xf5\x31\xeb\x16\x44\xf0\xef\x57\
-\x6c\xdf\x4a\x30\xc6\x12\xd5\x0e\x63\x4e\x9f\x65\x64\x64\x44\x3a\
-\x80\xe9\xe9\x69\xe7\x35\x3f\xa0\x77\x76\x8a\x6c\xc6\xc3\xf7\x05\
-\x3f\xeb\xa1\x3c\x01\x0b\x56\x1c\x26\xb5\x24\x3b\x16\x9d\x1a\xd6\
-\x0e\x1e\x22\x3d\xf5\x26\xb5\x5a\x4d\x64\x62\x62\xc2\x75\x7d\xfa\
-\x11\xe5\xab\xdf\xb3\x99\x11\x36\x8d\x63\xef\x9e\x0c\x7b\xba\x3d\
-\x82\x6d\x8b\x00\xbd\x5d\x42\x12\x59\x56\xa2\x04\x8b\xa3\x94\x3a\
-\xf4\xb3\x2f\x12\xbf\x76\x06\x15\x04\x01\x3d\x3f\x7c\x83\x38\x21\
-\x1e\x3d\xc6\xd8\x42\xc0\xce\xcb\x27\x59\x13\xc7\xa1\xd9\xdf\x79\
-\xe1\xc7\xdf\x28\xbc\x7b\x91\x2b\x5b\x09\x47\x17\x02\x8e\xce\xdf\
-\x22\x7f\xfe\x3d\xf4\x77\x5f\xb3\xba\xba\x8a\x0a\xc3\x10\x25\xa0\
-\xb2\x42\xe1\xf1\xa7\xd8\xd9\xdc\xa0\xfb\x89\x2a\x6e\xbb\x7d\x9e\
-\xcf\xde\x38\xc6\xc3\x07\x9f\x23\xdf\xdf\x0f\xc0\xf8\xe9\x93\x3c\
-\xfd\xfa\x19\x36\x4a\xbd\x84\x61\xd8\x06\x58\x0b\x6b\x91\xa1\x6f\
-\xb8\x4a\xeb\xd2\x38\xbd\x83\xc3\xfc\xa9\x0c\x69\x9a\xf2\xcc\x5b\
-\xe7\xb8\x73\x63\x91\x70\xf9\x0f\xd2\x34\x25\xd7\x53\x20\x35\x06\
-\x67\xcc\x5d\x80\x01\xee\x28\x45\x71\x7f\x85\x6b\x1f\x5f\xa4\x7b\
-\x5f\x3f\xb7\xb7\x1c\x71\x1c\xb3\x7c\x6d\x96\x5c\xdf\x83\xa8\x62\
-\x81\x38\x8e\x39\xf2\xce\xfb\xfc\xd4\xfc\x90\xe2\xe6\x3a\x51\x14\
-\xe1\x87\x61\x48\x92\x18\xa2\x47\x2b\x58\xa5\x38\xde\xbc\x84\x01\
-\x72\xfb\x0f\xa0\xb5\xe6\xe7\x4f\x9a\x0c\xbe\x7a\x0a\x3f\x5f\x44\
-\x6b\xcd\xf8\x93\xfb\x18\x44\xe8\x43\xda\x1b\x44\x51\x84\x4e\x0c\
-\xde\xc0\x10\x2b\x73\x2d\xa6\xce\xbf\xcd\xed\xeb\xf3\x94\x2a\x43\
-\x68\xad\x39\xf1\xf9\x14\x37\xaf\x5e\x61\xe3\xfa\x3c\x5a\x6b\x4a\
-\x0a\xf2\x16\x92\x24\x25\x8a\x22\xa4\x5e\xaf\xbb\x07\xa6\x26\xc9\
-\x2d\x2d\xe0\x7b\x8a\x03\x39\x9f\x65\xe7\x40\x14\x4a\xb5\x45\xe9\
-\x51\x0a\x27\x8e\x20\x4a\x29\x88\xa3\xa8\x60\xee\x91\x01\x56\x6a\
-\xa3\x6d\x91\xea\xf5\xba\x2b\x7f\x39\x49\x75\xe5\x17\x24\x01\x25\
-\x42\xae\xe0\x63\x22\x07\x80\x97\x17\xe2\xbf\x0c\xd6\x39\x5c\xc6\
-\xd1\x7a\x68\x80\xd5\xc3\x2f\xd1\x68\x34\xa4\xa3\x72\xbd\x5e\x77\
-\xe5\x2f\x2e\x33\xf8\xeb\x02\x9e\x08\xa2\xa4\x6d\xa2\x03\xac\xc3\
-\xe2\x48\x8d\x63\xb1\x7f\x88\xe0\xc8\x2b\x34\x1a\x8d\xbb\x2a\xef\
-\x86\x94\x26\x27\x78\x6c\x71\x0e\x2f\xeb\xe1\x2c\xe0\x40\x7c\x30\
-\xb1\xe1\xc6\xd0\x30\xeb\xa3\x63\x9d\xe1\xff\x00\xfe\x81\x04\x41\
-\xf0\xbf\xef\x5c\x2e\x97\xff\x35\x0c\xf0\x37\x5c\xfc\x53\xd5\x3a\
-\x96\xb0\xec\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
-\x00\x00\x04\x2c\
-\x89\
-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
-\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
-\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\
-\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\x00\
-\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x00\x07\x74\x49\x4d\x45\x07\
-\xde\x03\x0c\x12\x06\x08\xae\xb5\x4a\x3d\x00\x00\x03\xb9\x49\x44\
-\x41\x54\x38\xcb\x5d\xcb\x5b\x4c\x5b\x75\x00\x07\xe0\xdf\xff\x9c\
-\xd3\x9e\x76\x6d\x69\xc1\x52\x84\xca\x40\x2e\x16\xc7\x9d\x31\x67\
-\x9c\x66\x03\x27\x73\x2f\x8a\x71\x2c\x12\x12\x12\x1f\xa6\x89\x2c\
-\x73\xc9\x36\x37\x13\x6f\x0f\x5e\xa2\xcc\x88\x0f\xb8\x87\x3d\x78\
-\x99\x09\x09\x4b\x34\xd1\x38\x86\x3a\xb9\x3a\x04\x06\x1d\x84\x6b\
-\xa1\x2d\xd0\x0b\xa5\xed\xa1\x17\x7a\x4a\xdb\x73\xf3\xc9\x17\xbf\
-\xf7\x8f\xe0\x7f\xea\x00\xac\xf6\x78\xb0\x7f\xb1\x10\x00\xd0\x07\
-\x50\xbf\x9d\x69\x36\x15\x55\xd5\x3f\x22\xe6\xab\xcd\xac\xbc\x64\
-\xcd\x65\x33\x82\x73\x79\x67\xa2\xa7\x7b\x36\xc8\xfc\x17\xaf\xff\
-\x74\x15\xee\x73\x9f\xe3\xd9\xf0\x3e\xd5\x4e\xb4\xf2\xbb\x57\x3a\
-\xcb\xac\x95\xcd\xaf\x2f\x14\x72\xf5\xad\x79\xe5\x15\xe1\x4c\xf2\
-\xf1\xd8\xf4\x10\x76\x84\x2d\x18\x92\x31\xec\x39\x82\xc3\x25\x96\
-\x83\x2d\x04\x00\x2e\x5f\xac\xc7\xf5\x1e\x3b\x00\xe0\x30\xa0\x39\
-\xd6\xf5\xd2\x25\x5e\x6f\x7c\x7f\x6e\x88\x66\x6d\x2f\x04\x51\x7b\
-\x54\xc0\xae\x5f\x40\x69\x41\x03\xbc\x53\x03\xd8\x18\xf7\x80\x4f\
-\x88\x23\xb6\x23\xc5\x2d\x14\x00\x68\xee\xd8\x71\xfe\xe7\x5e\xb4\
-\xb5\xe1\xc0\xe9\xdb\xbd\xb7\x72\x5a\xda\x3f\x76\xb8\xfd\x78\x30\
-\xf5\x9d\x1c\xe7\xb6\x51\x7a\x92\x81\x62\x52\x63\xda\x31\x89\xb9\
-\xbf\xfd\xf0\x2b\x40\xda\xc4\xc4\x3e\xb9\xb1\x92\xa1\x15\x1f\x8f\
-\xc1\x6c\x99\x4a\xda\x1a\xe9\x12\x53\xd5\x37\x74\x9e\xa5\xa3\xb1\
-\x22\x28\x91\x1c\x95\x8a\x11\x52\xe4\xe9\x4e\x03\x16\x07\x78\x84\
-\x97\x05\x78\xe7\x37\x40\xcb\xe9\x8c\x56\x94\x69\xa3\x4a\xee\x9e\
-\x73\x8a\x76\x82\xa1\x2f\x80\xa6\x77\xf0\xf5\xc4\xa7\x6f\xe9\x8a\
-\x6d\xbd\xae\xe1\x11\x29\x15\x72\xd0\xc9\x1d\x0e\x12\x05\x04\xdc\
-\x5e\x48\xfb\x09\xe8\xf2\x53\x70\xfc\xa9\xc8\x8f\xb2\x22\x65\xc8\
-\xa2\x6f\x5c\x7b\xbe\xbc\xab\xf1\xa3\x15\x85\x00\xc0\xbc\x32\x9a\
-\xfd\xfd\xef\x77\xdc\x81\x99\x87\x9a\x02\x36\xc2\xae\x8e\xfa\x90\
-\x65\x12\x11\xe6\x62\x30\x9b\x4f\x23\xbb\xf0\x14\x84\x3d\x23\x7c\
-\xbe\x10\x88\xb2\xb5\xb5\xe6\x2e\x6b\x5d\x9e\x79\xd3\xde\xda\x71\
-\x93\xd0\x00\xf0\x58\x53\xcb\xb5\x8d\x91\x6f\x4f\x1d\x88\x6d\x52\
-\xf6\xb1\x20\xd1\x54\x18\x91\x10\xd3\x38\x56\xdd\x83\x27\x6a\xda\
-\x50\x5d\x57\x8b\xd1\x87\x01\x94\x54\x14\x2b\x12\x2c\xc6\xd2\x43\
-\xe6\x8e\xe8\x5e\xcd\xf4\xc4\x1f\x17\x5c\x74\xdf\xe2\x6d\x53\x44\
-\xc5\xf6\x4c\xf5\xf5\x9b\xa3\x7e\x9e\x98\x73\x68\x44\x96\x7d\x28\
-\x50\xbf\x08\xe4\x34\xe1\xe5\xd6\x2a\xdc\x9b\x74\x81\x97\x15\x4c\
-\xce\x7b\xc9\x92\x33\x44\x68\x8d\x5a\xa5\xa5\x94\x13\x14\x9e\xfa\
-\x81\xa2\x8c\xf9\x15\x54\xc2\x63\x63\x58\x0d\x38\x5f\x1a\x9b\x0b\
-\x31\x68\x24\x82\x38\x7d\x1c\x95\x35\x79\x90\x28\x1a\x87\x8f\x94\
-\x40\x9d\x63\xc4\x1e\xab\x86\xd6\x92\x85\xcd\x9d\x38\x61\xb2\xb3\
-\x8a\xac\xe5\xb9\x8d\x54\x38\xb0\x5e\xe4\x78\x30\x02\x29\x1e\x05\
-\x51\x53\x90\x64\x05\xb1\x3d\x3d\x26\x96\x44\xc5\xbe\x16\x86\x27\
-\x18\xc7\x36\xc7\x43\xaf\x67\x90\x7b\xd0\x0c\xc5\xa8\x03\xa3\xd3\
-\x92\x86\xa3\x25\xe0\x79\xb1\x99\xe1\x9c\xc1\x48\x68\x66\x05\x11\
-\x2f\x0f\x0d\x14\x68\x55\x04\x1a\x35\x03\x5a\x21\xc4\xee\xe4\x94\
-\x8c\xd1\x43\x12\x94\x0a\x9b\xbc\x80\x24\xcb\x82\xe8\xb5\x60\x29\
-\x82\xd5\xb5\x20\x64\x31\x93\x62\xaa\xa4\xe8\xfd\x1d\x83\xe5\x33\
-\x29\x8f\xb7\xa6\x12\x9c\x64\xd0\xe8\x32\x3a\x2d\x1f\xdd\xd8\x4d\
-\xbc\x1d\x88\xa4\x35\x26\x5e\x42\x43\xa5\x05\x87\x74\x5a\x0c\xaf\
-\x85\x11\x57\x13\x45\xf0\xa4\xc9\xd2\xec\x3a\xb4\xa9\xf4\x10\x01\
-\x80\xfb\xeb\x23\x54\x55\x7e\x21\x9d\xda\xf5\xca\xf7\x06\x26\xa9\
-\xd7\x7e\xb9\x22\x9c\x4c\x5c\xfd\xd1\xa9\xb7\x75\xe8\x9f\xb4\x2a\
-\x6f\x9c\xad\x23\x65\x16\x13\xb8\xfd\x0c\xee\x8e\xaf\x63\x6c\x70\
-\x11\x8c\x2f\x3c\x4b\x85\x62\xc7\x19\xcf\xea\x2d\x7c\xf9\xd5\x7b\
-\x68\xef\x1f\x93\x18\x0a\xd0\xab\x21\xb5\x7b\x40\x14\xe5\xf2\x85\
-\x13\x67\x7e\x4d\x46\xf7\xd3\xe7\xc6\x1d\x1c\x5e\x6d\xb0\x60\x76\
-\x4b\xc4\x6e\x28\x01\x46\x10\x97\x52\xf1\x54\xa7\x7f\xed\xc3\x04\
-\x01\x00\x87\xeb\x2e\xb8\x40\x1c\xdb\xae\x05\xc4\xc2\x22\x3c\x3e\
-\x2b\x3e\xe8\xee\x02\x00\x3c\xf7\xca\xcd\x4a\xc5\x64\x38\x5b\x5d\
-\x5b\x58\xe0\xf2\x44\x64\xce\xbf\xfb\x17\xef\x0e\x0d\x2e\xff\x73\
-\x29\xfa\xcc\xf9\x7e\xfc\x0b\x0b\xb9\xbe\x45\x31\x2c\x8e\xcb\x00\
-\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
-\x00\x00\x07\x84\
-\x47\
-\x49\x46\x38\x39\x61\x36\x00\x37\x00\xf3\x00\x00\xff\xff\xff\x00\
-\x00\x00\x78\x78\x78\x1c\x1c\x1c\x0e\x0e\x0e\xd8\xd8\xd8\x54\x54\
-\x54\xdc\xdc\xdc\xc4\xc4\xc4\x48\x48\x48\x8a\x8a\x8a\x00\x00\x00\
-\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\xff\x0b\x4e\
-\x45\x54\x53\x43\x41\x50\x45\x32\x2e\x30\x03\x01\x00\x00\x00\x21\
-\xfe\x1a\x43\x72\x65\x61\x74\x65\x64\x20\x77\x69\x74\x68\x20\x61\
-\x6a\x61\x78\x6c\x6f\x61\x64\x2e\x69\x6e\x66\x6f\x00\x21\xf9\x04\
-\x09\x0a\x00\x00\x00\x2c\x00\x00\x00\x00\x36\x00\x37\x00\x00\x04\
-\xcc\x10\xc8\x49\xab\xbd\x38\xeb\xcd\xbb\xff\x60\x28\x8e\x64\x69\
-\x9e\x25\x92\x10\x44\x82\xa0\xa7\xc2\xce\x84\x02\x93\x08\x4d\xbf\
-\x77\xb8\xea\xac\x44\x2f\x04\xa4\x0d\x41\xc5\xd9\xf1\xf3\x03\x0a\
-\x97\x9d\x5c\x91\x77\x2c\x18\x58\x86\x02\x46\xa6\xb3\x2d\x0b\x03\
-\xda\x40\x7b\x51\x05\xa9\x16\xc1\x60\x20\x18\x5d\x75\x06\x93\x80\
-\xd6\x26\x16\x4d\xe1\xd9\x40\x94\xc4\x8b\x45\x6f\x34\x71\x25\x73\
-\x33\x75\x20\x07\x79\x2c\x03\x07\x27\x6a\x6c\x24\x07\x6f\x06\x8d\
-\x50\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x1c\x8f\x87\x96\xa1\x1a\
-\x85\x2c\xa2\x47\xa6\x04\xa8\x14\x8a\x04\x7b\x96\xae\xb0\x17\xb2\
-\x97\xb5\x18\xaa\xac\x3d\xb9\xa5\x6b\xba\x43\xa4\x9f\xc2\xc3\xc4\
-\xc5\xc6\xc7\xc8\x9b\xc1\x8e\xbe\x24\xbc\x72\x74\x23\xb7\x25\xd3\
-\x20\xd5\xd2\x7f\x22\xcf\x84\xd1\x23\xcb\x72\xcd\xc9\x9e\xdf\xc5\
-\xdb\xc5\xd7\xc3\xe8\xc2\xe6\xe5\xe1\xe2\xef\x3d\x11\x00\x21\xf9\
-\x04\x09\x0a\x00\x00\x00\x2c\x00\x00\x00\x00\x36\x00\x37\x00\x00\
-\x04\xce\x10\xc8\x49\xab\xbd\x38\xeb\xcd\xbb\xff\x60\x28\x8e\x64\
-\x69\x9e\x68\xaa\x16\x06\x41\x18\x85\x5a\x16\x83\xeb\x0e\xb1\x2c\
-\xb6\xb6\x6b\xe8\xa2\x5e\x0f\x18\x12\xda\x88\x20\x5e\xef\x87\xf4\
-\x1c\x6a\xb6\xc1\xe1\x82\x48\xb8\x12\x88\xa6\xe4\xc0\x33\x4c\x2d\
-\x0a\xa3\x62\x24\x18\x0c\x04\x26\x84\xd1\x95\x05\x09\x7a\x68\x92\
-\x75\x9d\x08\x41\x6f\xa5\xf5\x11\x74\x27\x0c\xf2\x7a\x04\x21\x6f\
-\x36\x71\x23\x73\x46\x75\x83\x66\x86\x23\x6a\x6b\x6d\x5a\x1a\x61\
-\x42\x63\x92\x1c\x55\x57\x91\x97\x9c\x9d\x9e\x9f\xa0\xa1\x6e\x8c\
-\x97\x65\x67\x1a\x84\x2e\x8d\x40\xa9\x04\xab\x14\x7d\x7f\x4d\xb1\
-\x19\xb4\xb3\x3d\xb2\x17\xad\xaf\x32\xbb\xa8\xa4\x92\xa6\xbc\xa2\
-\xc4\xc5\xc6\xc7\xc8\xc9\xca\x27\xc2\x29\xcd\x64\x70\xcc\xd1\x22\
-\xb6\x25\xd5\x7c\xb8\x27\xd7\x1f\xbe\x26\xdd\x22\xcf\xcc\xc0\xcb\
-\x9e\xe1\xc7\xdf\xc6\xdb\xc4\xea\xa2\xe8\xc6\xe6\xe4\xf1\x27\x11\
-\x00\x21\xf9\x04\x09\x0a\x00\x00\x00\x2c\x00\x00\x00\x00\x36\x00\
-\x37\x00\x00\x04\xce\x10\xc8\x49\xab\xbd\x38\xeb\xcd\xbb\xff\x60\
-\x28\x8e\x64\x69\x9e\x68\xaa\xae\xac\x30\x0c\x02\x5b\x0a\x44\x4d\
-\xc4\xb2\x38\xd8\xc4\x90\xeb\x3c\xdf\x0f\x44\xb3\xe1\x86\x1f\x17\
-\x0c\x99\x2b\x18\x6a\x86\x02\x49\x79\x24\x15\x76\xb6\x81\x34\x54\
-\xac\x55\x45\x4f\x1e\xc1\x00\xcc\x9a\xc4\xb6\x72\x4d\x48\x42\xd7\
-\x44\xdd\x9b\x29\xcc\x23\xc3\x5f\x5f\xd1\x01\xbb\x3e\x30\x3b\x07\
-\x61\x06\x7e\x7f\x85\x86\x87\x88\x89\x8a\x12\x08\x09\x35\x09\x08\
-\x8b\x15\x0a\x68\x0a\x19\x54\x43\x08\x6e\x04\x91\x16\x71\x79\x29\
-\x8e\x6e\x09\x17\x7c\x3d\x3f\x9b\x6f\x16\xa6\x6c\x2c\xa9\x04\x17\
-\x9f\x3f\xa2\x68\xa4\xb1\x78\x99\x9b\x9d\x92\x94\x62\x96\x92\x13\
-\x8d\x8f\xbb\xc0\xc5\xc6\xc7\xc8\xc9\x13\x98\x28\xcc\x70\x3c\xa0\
-\x44\xd0\x23\xac\x27\xd5\x6a\xa7\x26\xd7\x5c\xd3\x26\xb2\x23\xce\
-\xde\xb8\xca\x88\xe1\xc5\xdf\xc6\xdb\xc5\xea\xc0\xe8\xc6\xe6\xe4\
-\xf1\x26\x11\x00\x21\xf9\x04\x09\x0a\x00\x00\x00\x2c\x00\x00\x00\
-\x00\x36\x00\x37\x00\x00\x04\xcd\x10\xc8\x49\xab\xbd\x38\xeb\xcd\
-\xbb\xff\x60\x28\x8e\x64\x69\x9e\x68\xaa\xae\xac\x30\x0c\x02\x5b\
-\x0a\x44\x4d\xc4\xb2\x38\xd8\xc4\x90\xeb\x3c\xdf\x0f\x44\xb3\xe1\
-\x86\x1f\x17\x0c\xc9\x34\x29\x8f\xce\x17\x94\xc8\x9b\x8a\x8a\x35\
-\x6b\x67\x67\x13\x96\xb8\x35\x2f\x08\xdc\x3b\x91\xc5\xc9\xea\x09\
-\x7b\x23\x3d\x53\xef\xa6\x7c\x4e\xaf\xdb\xef\xf8\xbc\xaa\x60\xa8\
-\x19\x0a\x1a\x71\x3f\x05\x67\x80\x17\x6c\x5a\x29\x7d\x3c\x04\x06\
-\x18\x67\x43\x8c\x36\x8f\x41\x91\x92\x04\x18\x88\x43\x8b\x3c\x8e\
-\x99\x52\x48\x07\x67\x07\x7a\x13\x07\x8b\x06\xa4\xa5\xab\xac\xad\
-\xae\x27\x08\x09\x35\x09\x08\xac\x0a\x92\x0a\x23\x82\x23\x08\x97\
-\x04\xb5\x54\x46\x25\xb2\x97\x09\x21\x90\x24\xbe\x35\xc7\x95\xc9\
-\xca\x21\x9a\x24\xc4\x92\xc6\xd0\xa0\x25\xbd\x97\xc0\x79\xb7\x8c\
-\xb9\x48\xbb\x15\xb1\xb3\xdb\x3f\xd1\xab\xc8\xe8\xcd\xab\xe7\xec\
-\xd7\xaf\xf0\x2b\x11\x00\x21\xf9\x04\x09\x0a\x00\x00\x00\x2c\x00\
-\x00\x00\x00\x36\x00\x37\x00\x00\x04\xcb\x10\xc8\x49\xab\xbd\x38\
-\xeb\xcd\xbb\xff\x60\x28\x8e\x64\x69\x9e\x68\xaa\xae\xac\x30\x0c\
-\x02\x5b\x0a\x44\x4d\xc4\xb2\x38\xd8\xc4\x90\xeb\x3c\xdf\x0f\x44\
-\xb3\xe1\x86\x1f\x17\x0c\xc9\x34\x29\x8f\xce\x17\x94\xc8\x9b\x8a\
-\x8a\x35\x6b\x67\x67\x13\x96\xb8\x35\x2f\x08\xdc\x3b\x91\xc5\xc9\
-\xea\x09\x7b\x23\x3d\x53\xef\xa6\x7c\x4e\xaf\xdb\xef\xf8\x3c\x3e\
-\x8e\xe4\x5f\xd8\x5a\x2a\x80\x19\x67\x48\x85\x18\x87\x3f\x89\x16\
-\x83\x43\x8d\x18\x7e\x3f\x91\x7a\x94\x95\x96\x97\x98\x99\x4c\x05\
-\x06\x35\x06\x05\x6e\x52\x27\x05\x67\xa0\x21\x8f\x23\x9d\x3c\x04\
-\x06\x40\x5d\x26\xab\x36\xae\x61\xb0\xb1\x04\x57\x6a\x25\xaa\x3c\
-\xad\x57\xa2\x19\x08\x09\x35\x09\x08\x17\x07\x67\x07\x43\x0a\xb1\
-\x0a\xc6\xaa\x06\xc9\x3f\x08\xb6\x04\xc5\x79\xc2\xb6\x09\x7a\xd4\
-\x35\xdb\xdc\x7a\xd8\xb1\xda\x79\xd3\xb6\xd6\x79\xcb\xab\xcd\x95\
-\xc1\xc3\xe7\x22\x11\x00\x21\xf9\x04\x09\x0a\x00\x00\x00\x2c\x00\
-\x00\x00\x00\x36\x00\x37\x00\x00\x04\xcc\x10\xc8\x49\xab\xbd\x38\
-\xeb\xcd\xbb\xff\x60\x28\x8e\x64\x69\x9e\x68\xaa\xae\xac\x30\x0c\
-\x02\x5b\x0a\x44\x4d\xc4\xb2\x38\xd8\xc4\x90\xeb\x3c\xdf\x0f\x44\
-\xb3\xe1\x86\x1f\x17\x0c\xc9\x34\x29\x8f\xce\x17\x94\xc8\x9b\x8a\
-\x8a\x35\x6b\x67\x67\x13\x96\xb8\x35\x2f\x08\xdc\x3b\x91\xc5\xc9\
-\xea\x09\x7b\x23\x3d\x53\xef\xa6\x7c\x4e\xaf\xdb\xef\xf8\x3c\x3e\
-\x8e\xe4\x5f\xd8\x5a\x2a\x80\x19\x67\x48\x85\x18\x87\x3f\x89\x16\
-\x83\x43\x8d\x18\x7e\x3f\x91\x7a\x94\x95\x96\x97\x98\x00\x08\x09\
-\x35\x09\x08\x96\x0a\x3c\x35\x0a\x94\x08\xa2\x36\x9f\x33\x52\x22\
-\x9c\xa7\x04\x09\x33\x6a\x20\xae\x36\x5f\x41\x21\xb4\x35\xb6\x5d\
-\x21\xad\xa7\xb0\x6e\xb2\x1f\xa6\xae\xa9\x6e\xab\x22\xa1\xa2\xa4\
-\x17\x05\x06\x35\x06\x05\x48\x9b\x9d\xc6\x15\x05\x67\xd2\x94\xcf\
-\xa2\x06\x95\xb4\xdf\xae\x95\xdc\x3c\xde\x94\x07\x67\x07\x96\x07\
-\xdc\x06\xea\x99\x28\x11\x00\x21\xf9\x04\x09\x0a\x00\x00\x00\x2c\
-\x00\x00\x00\x00\x36\x00\x37\x00\x00\x04\xcc\x10\xc8\x49\xab\xbd\
-\x38\xeb\xcd\xbb\xff\x60\x28\x8e\x64\x69\x9e\x68\xaa\xae\xac\x30\
-\x0c\x02\x5b\x0a\x44\x4d\xc4\xb2\x38\xd8\xc4\x90\xeb\x3c\xdf\x0f\
-\x44\xb3\xe1\x86\x1f\x17\x0c\xc9\x34\x29\x8f\xce\x17\x94\xc8\x9b\
-\x8a\x8a\x35\x6b\x67\x67\x13\x96\xb8\x35\x2f\x08\xdc\x3b\x91\xc5\
-\xc9\xea\x09\x7b\x23\x3d\x53\xef\xa6\x7c\x4e\xaf\xdb\xef\x22\x44\
-\xa2\x96\x40\xe0\x2b\x0a\x3c\x35\x0a\x7f\x12\x08\x82\x36\x7e\x3f\
-\x71\x16\x7b\x88\x04\x09\x8b\x6a\x16\x8f\x36\x3f\x67\x17\x95\x35\
-\x97\x41\x17\x8e\x88\x91\x39\x6c\x5a\x87\x8f\x8a\xa2\x52\x19\x81\
-\x82\x84\x85\x86\x8e\x7d\xae\xb2\xb3\xb4\xb5\x4c\x05\x06\x35\x06\
-\x05\xb3\x05\x67\xbc\x51\x4b\x22\xb9\x82\x06\x4e\x93\x20\x95\x26\
-\x98\x21\xca\x5f\x9d\x21\xc4\x3c\xc6\x33\xc8\x1f\x07\x67\x07\x6b\
-\xa9\x23\x07\xc4\x06\xda\xb6\x1d\x8c\xb2\xa3\xb4\xcc\xb2\xe8\xae\
-\xe6\xb4\xe4\xe2\xef\x27\x11\x00\x21\xf9\x04\x09\x0a\x00\x00\x00\
-\x2c\x00\x00\x00\x00\x36\x00\x37\x00\x00\x04\xcc\x10\xc8\x49\xab\
-\xbd\x38\xeb\xcd\xbb\xff\x60\x28\x8e\x64\x69\x9e\x68\xaa\xae\xac\
-\x30\x0c\x02\x5b\x0a\x44\x4d\xc4\xb2\x38\xd8\xc4\x90\xeb\x3c\xdf\
-\x0f\x44\xb3\xe1\x7e\x88\x44\x2d\x81\xd0\xb8\x60\x43\x80\x82\x57\
-\x53\x44\x39\x08\xaa\xad\x39\x7b\x1d\x3f\x4a\x2d\x21\x31\xe3\x7d\
-\x3b\x62\x5b\x69\x67\x13\x7e\xd2\xb5\x75\x30\x14\xd6\x92\x49\xc5\
-\xda\x19\x9b\xe6\xe2\xbd\x23\x53\x54\x56\x57\x58\x61\x4c\x85\x89\
-\x8a\x8b\x8c\x8d\x57\x05\x06\x35\x06\x05\x8e\x16\x05\x6c\x35\x03\
-\x94\x43\x4f\x7b\x13\x91\x54\x06\x9c\x66\x18\x69\x43\x98\x3d\xa5\
-\x62\xa7\x73\x17\xa0\x3c\xa2\x3f\x79\x37\x18\x07\xa8\x03\x07\x51\
-\x9d\x1a\x07\xa0\x06\xb9\x95\xc1\xc2\xc3\xc4\xc5\xc6\xc7\x1d\xbb\
-\x28\xca\x22\xb3\x9e\x44\xa4\x40\x6d\x27\xb7\x23\xd5\x26\xd7\x21\
-\xce\x27\xdb\x23\xcc\x26\xdf\xc8\x89\xe1\xc2\xdd\xc4\xd9\xc3\xe8\
-\xe5\xd1\xc5\xe4\xe2\xef\x25\x11\x00\x3b\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\
-\x00\x00\x03\xb1\
-\x89\
-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
-\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\
-\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
-\x09\x70\x48\x59\x73\x00\x00\x1b\xaf\x00\x00\x1b\xaf\x01\x5e\x1a\
-\x91\x1c\x00\x00\x03\x56\x49\x44\x41\x54\x48\xc7\xdd\x95\x4d\x68\
-\x5c\x55\x14\xc7\x7f\xf7\xe3\xbd\x97\xe9\x34\x69\x5a\x93\x60\xdb\
-\x80\x60\xc1\x12\x9a\x20\x0d\x49\x88\x50\xca\x43\xbb\x70\x93\x85\
-\x62\x41\x2b\xea\x42\xb0\xb8\xb2\x20\x08\x6e\x64\xd0\x55\x4b\x2d\
-\x48\x37\x22\x48\x10\x8c\x20\xba\x09\x45\xa4\x12\xe2\x98\x8a\x29\
-\x1a\xa4\x92\x6a\x6d\x4a\x9b\xb4\x19\x9d\x98\xc4\xb1\xd3\x99\x79\
-\xf3\xde\x9b\xf7\xee\x75\x51\x2c\xe4\x63\x31\xc1\x6e\xf4\xec\xee\
-\xc7\x39\xbf\x7b\xee\xb9\xff\x73\xe1\xbf\x6e\xa2\x99\x4d\xfd\x9f\
-\x3e\xd4\xff\xdc\x23\x2f\x7d\x38\xbe\xf0\xc9\xa3\x8e\x94\xc1\xc1\
-\xae\xc1\xc9\xa1\xae\x43\x6f\x3c\xbb\xef\xd5\x5f\xb7\x04\xc8\xe7\
-\xf3\x76\xb3\x4d\x1f\x94\x4f\xf3\xee\x91\xf7\x99\x2d\xcd\x90\xda\
-\x98\x30\x89\x28\xdd\x5e\x65\xdf\x9d\x83\x9b\x06\xf5\x7d\xff\x5e\
-\x5c\xbd\x7e\x31\x9f\xcf\x6f\x70\xb8\xb6\x67\x8e\x6f\x0a\x13\x74\
-\x74\x08\x04\x29\x5e\xb5\x8d\xc9\xf9\x2f\x58\x9c\x2d\x6f\x16\x7c\
-\xcd\x58\x6f\x76\x82\x5c\x2e\xb7\x26\xb3\x87\x3f\xda\xf5\x43\x6c\
-\xa2\x81\xdf\x6a\xab\x08\x04\xd9\x44\x33\x2f\xaf\xce\x8c\xe5\x26\
-\x06\xd7\xf9\x6d\xb8\x01\xdd\x4c\x0d\x52\x63\x48\xad\x21\x6c\xc4\
-\x08\xa0\xc5\x1a\x8c\x69\xae\xc8\x4d\x01\x4c\x6a\x30\x58\x6a\x71\
-\x08\x08\xda\x74\x4a\x6a\xec\xfd\x03\x24\xc6\x24\xc6\x1a\xea\xc9\
-\xdd\x0c\x8c\x34\x24\xa9\x49\xb6\x04\x38\x3b\x73\xb6\xb7\x20\x0b\
-\x9c\xeb\x3c\x07\xa7\xf9\xde\xd3\x5a\x68\x29\xd1\x52\x26\x89\xb1\
-\x7d\x49\x9a\x12\x36\x42\xa4\x10\xc4\x6e\x8c\xc5\xf6\x0d\x7e\xde\
-\x3d\xed\x69\xad\x1d\xad\xd0\x12\xbb\xcc\x4f\xd4\xf6\xec\x67\xa2\
-\xf8\x59\xcf\x91\xdd\x47\xaf\xac\x01\xcc\xfd\x39\xf7\xde\xa9\xc7\
-\x4f\x51\x11\x65\x8e\xc6\x4f\x0f\x4a\x29\x11\xc2\x82\x00\x29\x04\
-\x59\x37\x63\x83\x30\x10\x00\x9e\xf2\xec\xf1\xde\xd7\xb3\x4a\xa8\
-\x61\x29\x24\x5a\x2a\xb6\x39\x59\xb6\xeb\xed\x34\x08\xf8\xea\xd6\
-\xd8\x3b\xc0\x33\x6b\x00\xa3\x97\x46\x87\x0f\x74\xf4\x70\xa3\x72\
-\x85\x62\x58\x44\x6a\x85\x52\xa0\x94\x44\x0b\xc9\x5c\x60\x44\xc3\
-\x84\x48\x01\xd3\x2b\x93\x42\x0b\x05\x48\x5a\x9d\x76\x8c\x51\xfc\
-\xb2\x74\x8d\x1b\xc5\x45\x5e\x1c\x1a\x61\x29\x28\x3c\xb9\xe1\x8a\
-\x82\x28\xb0\x97\x57\x7e\x26\x30\x65\x6a\x69\x1d\x65\x25\xca\x48\
-\x1c\xa3\x70\xd4\xdd\x6c\x94\x54\x78\xca\xa3\x45\xb5\xa0\x71\xa9\
-\xc4\x55\xbe\xfb\xe3\x22\xf3\xa5\x5b\x54\xc2\x90\xac\x69\xa7\xd6\
-\xa8\xd2\x30\xe9\xc6\x1a\x58\x63\xc7\xa7\x16\x2e\x1c\xeb\xe9\xec\
-\xc1\x53\x6d\x68\xa9\xf0\x94\x8b\x87\x8b\x46\xd1\xea\x64\xec\xc5\
-\xe5\xf3\xc2\xca\x98\xa1\xce\x27\x6c\x10\xd7\x85\x12\x9a\xbe\x07\
-\x0e\xd0\xb7\xab\x17\x8b\xc5\x95\x8a\x42\x78\x95\xc4\xa4\xe3\x9b\
-\x01\x4e\x64\xa2\xcc\xb1\xa9\xcb\x53\x14\xdd\xe2\x0c\x02\x90\x20\
-\x24\x89\xab\x54\xdf\x53\xfb\x47\xb2\x5a\x5b\x32\x6e\x96\xdb\xf5\
-\xbf\xc4\x97\x0b\xe7\x6b\x9e\x23\x67\x5d\xa5\xb4\xab\x14\xae\xd6\
-\xec\x8c\x3a\x06\xba\xdb\xbb\x89\x68\x9c\xd8\xf8\x4c\xdf\x66\xe5\
-\x64\xfe\x24\xf9\x7c\x9e\xdc\x9b\xb9\x7b\x0a\xb5\x80\x39\x63\xa7\
-\x83\x24\x18\xd6\x8e\xc4\xd3\x92\xba\x09\x48\x4c\x32\x7b\xf3\x85\
-\xca\x63\x6b\x95\xfc\xb2\xf5\x7d\x1f\xdf\xf7\x57\xfe\x99\x93\x4d\
-\x29\xd9\xa2\xab\x71\x15\x8b\x45\x29\x41\x64\x42\x52\xd3\x9c\x86\
-\x9a\x53\xb2\x35\x54\xa2\x0a\xa9\x13\x92\x71\x15\x51\x5c\x25\x69\
-\xb2\x57\x34\x05\xc0\xc0\x6a\xbd\x8c\x67\x22\xea\x8d\x06\x36\x89\
-\x48\xed\xbf\x00\xac\xef\x8a\x1f\xcb\x51\x5c\x62\x16\x4b\x15\x56\
-\x74\x8d\xbd\xdb\xba\xd9\x5b\xef\x1e\x78\x2d\xf7\xbc\xdd\x32\x60\
-\x7d\x3f\x07\x98\x5b\xfe\x1a\xe9\x2d\xb2\x50\x2d\x61\x52\x4d\x97\
-\xde\x8d\xd3\xea\xe0\xf7\xfb\xf7\xe7\xcb\x1c\x19\x7b\xf0\xd0\x1d\
-\xd4\x99\x0b\x4b\xbf\x0f\xb4\x7b\x3b\xea\x87\x77\x1e\xfe\xf6\xd2\
-\xf5\x1f\x5f\x59\x78\xab\x70\x93\xff\xbd\xfd\x0d\xf6\xbd\x75\x1d\
-\x3b\xea\x7e\x89\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
-\
-\x00\x00\x03\x16\
-\x89\
-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
-\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
-\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
-\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
-\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
-\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
-\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x93\x49\x44\
-\x41\x54\x38\x8d\x95\x91\xbd\x4f\x1b\x41\x10\xc5\x67\xe1\x96\xbb\
-\xf3\x25\xd8\x46\xe1\x82\x20\x91\x2c\x45\x38\x42\x51\x94\x02\x19\
-\x21\x04\x1d\xa2\xa3\x80\xa3\x30\x05\x25\x12\x15\x32\x14\x44\x48\
-\xfc\x05\x54\x96\x28\x29\x4c\x45\x0f\xae\xa0\xc0\x20\x0a\x7a\xa0\
-\x20\x46\x48\x24\x0e\x8e\xb1\x8d\xe3\x23\xb7\xc7\xde\xde\xee\x5e\
-\x8a\xc4\x16\x1f\x49\xc1\x2b\x67\xde\xfc\xf4\x66\x06\x65\xb3\xd9\
-\x81\x20\x08\x52\x08\xa1\x38\x3c\x43\x41\x10\xe4\x11\x42\x69\xc5\
-\xf7\xfd\x85\x91\x91\x91\x01\xc3\x30\xd4\xe7\x00\x08\x21\xd1\xc3\
-\xc3\xc3\x05\x45\x4a\x19\x07\x80\x6a\xbd\x5e\x77\x9f\x03\xc0\x18\
-\x87\xa4\x94\x71\x85\x52\x0a\x94\xd2\x27\xc3\xb9\x5c\x2e\xba\xb7\
-\xb7\xf7\x2a\x16\x8b\xb9\xc9\x64\xb2\x64\x18\x86\xb8\xdf\x17\x42\
-\xb8\x94\xd2\x76\x85\x73\x8e\x82\x20\x68\x36\x6a\xb5\x9a\x92\x4a\
-\xa5\x3e\x5e\x5c\x5c\x84\x55\x55\x85\x83\x83\x03\xd8\xd8\xd8\x78\
-\x37\x3f\x3f\xff\x65\x6a\x6a\xea\xfa\x3e\x84\x73\x8e\x14\xc6\x18\
-\xe2\x9c\x37\x8b\x2b\x2b\x2b\x1f\x6e\x6f\x6f\xdb\x97\x96\x96\x2a\
-\x63\x63\x63\x2e\x00\xc0\xc9\xc9\x49\x5b\x22\x91\x70\xe6\xe6\xe6\
-\x3e\x25\x93\xc9\x6f\xc3\xc3\xc3\x3f\x01\x00\x18\x63\xa8\x85\x73\
-\x8e\xa4\x94\x20\xa5\x84\xb3\xb3\x33\xa3\x5c\x2e\x47\xa7\xa7\xa7\
-\x6b\x96\x65\x5d\xa9\xaa\x5a\x50\x55\xf5\x6a\x68\x68\xe8\x47\x26\
-\x93\xe9\xa8\x56\xab\xd1\xf5\xf5\xf5\xf7\x9e\xe7\x21\x29\x25\x70\
-\xce\x51\x0b\x63\x0c\x49\x29\x61\x7b\x7b\xbb\x6b\x6b\x6b\xeb\xad\
-\x69\x9a\x80\x31\xf6\x8e\x8e\x8e\x24\x63\x8c\x33\xc6\xd8\xf1\xf1\
-\x31\xdf\xdd\xdd\x8d\x99\xa6\x09\x9a\xa6\x69\xe9\x74\x3a\x2e\xa5\
-\x6c\x26\x00\x29\x25\x10\x42\xc2\xf9\x7c\xbe\x4b\xd7\x75\xd8\xd9\
-\xd9\x31\x4d\xd3\x0c\x1a\xc9\x84\x10\x6d\xcb\xcb\xcb\x15\x5d\xd7\
-\x61\x76\x76\xf6\x7a\x7c\x7c\xdc\xfd\x9b\x00\x94\xc6\x0a\x33\x33\
-\x33\x25\x00\x78\x71\x7e\x7e\xfe\x72\x71\x71\xb1\x18\x8d\x46\x5d\
-\x29\x25\x00\x00\xf4\xf6\xf6\x3a\x99\x4c\x46\xd5\x75\x1d\xfa\xfa\
-\xfa\xca\xba\xae\x13\xc6\xd8\x9f\x23\x36\x00\xae\xeb\xda\x96\x65\
-\x95\x4e\x4f\x4f\xef\x22\x91\x48\x79\x6d\x6d\x2d\xde\xdf\xdf\x5f\
-\xc1\x18\xcb\x5c\x2e\xf7\xc6\x71\x9c\xc8\xc4\xc4\x44\x05\x63\x5c\
-\xa7\x94\x8a\xe6\x17\xee\x1f\x11\x63\x5c\x1e\x1c\x1c\xbc\xcb\x66\
-\xb3\x86\x6d\xdb\x1d\x9b\x9b\x9b\xaf\x01\x00\x4c\xd3\x04\xcb\xb2\
-\x2a\x89\x44\xa2\xe4\x38\x8e\x78\xf0\x46\xdf\xf7\x51\x23\xaa\xe7\
-\x79\xbe\xe7\x79\xb5\xd1\xd1\x51\x6d\x72\x72\xf2\xeb\xcd\xcd\x0d\
-\xb6\x6d\x5b\xe9\xe9\xe9\xf1\x11\x42\xbf\x6c\xdb\xae\x35\xbc\x00\
-\x00\xbe\xef\x3f\x04\x34\x44\x08\xa1\x84\x90\xef\x9a\xa6\x69\x9d\
-\x9d\x9d\xd8\xb6\xed\x3b\x21\x04\x87\x47\xf2\x7d\x1f\x29\x00\x70\
-\x59\x28\x14\xc2\xdd\xdd\xdd\xec\xb1\x81\x10\x42\x01\x80\x3e\xae\
-\x03\x00\x14\x8b\xc5\x36\x00\xb8\x54\x42\xa1\xd0\xea\xfe\xfe\xfe\
-\x67\x21\x44\xec\x5f\xc6\xff\xa9\xb5\xb5\xf5\x32\x1c\x0e\xaf\xfe\
-\x06\x47\x78\x84\x8a\xac\x27\x36\x0e\x00\x00\x00\x00\x49\x45\x4e\
-\x44\xae\x42\x60\x82\
-\x00\x00\x0c\x69\
-\x89\
-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
-\x00\x00\x20\x00\x00\x00\x20\x08\x06\x00\x00\x00\x73\x7a\x7a\xf4\
-\x00\x00\x00\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\
-\xa7\x93\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x2e\x23\x00\x00\
-\x2e\x23\x01\x78\xa5\x3f\x76\x00\x00\x00\x07\x74\x49\x4d\x45\x07\
-\xde\x03\x0c\x12\x05\x12\x78\xfa\xe0\x84\x00\x00\x0b\xf6\x49\x44\
-\x41\x54\x58\xc3\x9d\xd7\x69\x90\x5c\xd5\x75\xc0\xf1\xff\x7d\xef\
-\x75\xbf\x5e\xa6\x7b\xf6\xa5\x47\xcc\x22\x89\x19\x49\xa3\x05\x09\
-\x89\x45\x80\x89\x01\xe1\x24\x88\xb0\x83\x65\x4a\x04\x41\x22\x30\
-\xd8\xae\x80\x29\x8c\x01\x83\x08\x81\xc4\xd8\x89\x31\x01\x1b\x03\
-\xe5\x38\x18\x0a\x01\x02\x04\x48\x48\x02\x8d\x24\x04\x48\x62\x98\
-\xd1\x3e\x1b\x33\x9a\x9e\x7d\xed\xe9\x6d\xe6\x75\xbf\x5e\xde\x7b\
-\x37\x1f\x08\x95\x38\x89\xcb\x84\xfb\xf5\xde\x3a\xe7\x57\xe7\xd4\
-\xbd\x75\x8f\xe0\x6b\xac\x4d\x0f\x2d\xa5\x76\xe1\x49\x4e\x1c\xbc\
-\x91\xfa\xc6\x1a\x7a\x3a\x5b\xc5\xb3\xcf\xed\x95\xff\xf3\x9c\x94\
-\x52\x00\xee\x9e\xfd\x5b\xf4\x4f\xc3\x9f\xb8\xae\x1b\x7a\x2a\xee\
-\x7f\x44\x38\x5f\xee\x9f\xd3\xd8\x84\xf8\x3a\x80\xf6\xc9\x66\xf6\
-\x6e\x69\x51\x57\x5e\x7e\x15\xe7\xd7\x2f\xb6\xbf\x4c\xf6\xdb\xb7\
-\x1e\xac\xde\xd5\xbc\xf7\xbc\xb1\xd1\xd8\x19\x65\x41\xf3\x74\x33\
-\x6f\x56\xba\x82\x35\xa5\x8d\x73\x8b\x0a\xaa\xfc\x51\xaf\xab\x24\
-\x7b\x2a\x40\xf5\xd6\x8d\x45\xb7\x3e\xb5\x69\xe7\xeb\xf2\xd1\x5f\
-\x6f\x73\xbe\x12\xa0\xf5\xf0\x0b\x9c\xb5\x72\x23\xef\x3e\x7b\x37\
-\x57\xdc\xf1\x24\x00\xef\x6f\x7b\x3c\x60\xc8\x9a\x79\x71\xd3\x5c\
-\x39\x15\x99\xf8\x96\xdb\x23\x56\xf9\x5c\x95\xf5\xc5\xa5\x73\xd4\
-\xda\xe5\x75\x0c\x4d\x4d\x49\xd5\x6b\x39\x5d\xc7\x5f\x45\xe4\xdf\
-\x91\x65\xe2\x5c\x8c\xa1\x3c\xed\xc7\x5a\xb5\xd8\xa8\xff\x27\xdb\
-\x0f\x8c\x3e\xfe\x97\x97\x56\x09\xed\x4f\x25\x7f\xf5\x99\xbb\x39\
-\x6b\xe5\x46\x9e\x7e\x78\xbd\x72\xc5\x1d\x4f\x3a\x72\xf8\x2d\xdf\
-\x0b\xfb\x0f\xdf\xd3\xdc\x62\xdc\x92\x2f\x1a\xac\x4e\xd6\x09\xbd\
-\x62\xd1\x14\x8b\xab\xeb\xa8\x58\x70\x36\x1d\xf1\x23\x52\xcc\xa6\
-\xf9\xf0\x95\x87\xc5\xca\x9a\x90\x9a\xf1\x16\x51\x10\xf5\xd0\x4e\
-\x07\x8d\x91\x69\x2a\x64\x9a\xa4\x66\x5f\x01\x3c\x9e\x68\x9f\x40\
-\xfd\x63\x89\xff\xe5\x67\xff\x8a\x35\xfe\x09\x75\x73\x42\xec\xf8\
-\xb8\x9d\x1d\x1f\x1e\xc7\x8e\x1c\x5c\xbf\xb3\xa3\x7f\xf3\x9e\x7d\
-\x9d\xd7\x9d\x79\xc6\x77\x02\x3b\xb7\xec\xd1\x56\xcc\xd1\x88\xe7\
-\xc6\x45\x7e\xdc\xcf\xf0\x47\xbf\x67\xb2\x3b\x2c\x3c\x89\x29\xd1\
-\xd9\x6b\xf0\xad\x6f\xfc\x15\x71\xb3\x0f\x23\x61\x20\x47\x92\x4c\
-\x77\x65\x49\xc4\x35\xbc\xba\xda\x7e\x2c\x9c\x7b\xb9\x61\x39\xe2\
-\x8f\x02\x8a\x6b\x06\xd9\xfe\xfe\x28\x3b\x3e\x6e\x67\x72\xf8\xb5\
-\xd0\x3d\xb7\xdf\xf6\xa2\xd3\xd4\xf4\x80\x6b\xce\x92\xd2\xd6\x3d\
-\xcd\xb2\xad\xb5\x4d\x1d\x1d\xee\x16\xc7\x3e\x3b\x22\x2e\xb8\xfa\
-\x9b\x68\x5a\x8a\x0b\xaf\x6a\x61\x66\x50\xa7\xf8\xea\x12\x1a\x8b\
-\x1b\xb1\x74\x49\xb4\xf5\x1d\x06\x0e\xc6\xf1\x44\x6d\x3e\xea\xd3\
-\x30\x4c\x89\xcb\xe7\xdb\xda\x35\x98\xde\x7d\xf1\x92\xda\xff\xbb\
-\x05\x5b\x76\x3d\x44\x77\xcf\x29\xf1\x1a\x9d\xf2\x8e\xf5\x2b\xe6\
-\xdd\x79\xff\xb3\x3b\x1a\x2e\xf8\xf6\x02\xcb\x56\x9d\x89\xc9\x76\
-\xc5\x8c\x27\x44\x2a\x9d\xc0\x4a\x5b\xb8\x8a\x21\x54\x73\x08\x99\
-\xf7\xa3\x16\xf9\xc8\x27\xf2\xec\xde\x32\x4c\x49\xbc\x8b\x89\xee\
-\x18\x75\x39\x95\xfe\xa1\x2c\xd2\xed\x62\xd1\x0a\x0d\x99\x53\x29\
-\x2f\x0e\x66\x21\xc2\x9c\x79\xa5\xfc\x2f\xc0\xfb\xfb\x7e\xc1\x9f\
-\x5f\xf4\x43\x00\xf9\xc8\x73\x1b\xe6\xa5\x44\xd9\xae\x0b\x37\xfc\
-\xa0\x21\x26\x5d\xb2\xe7\xcd\x37\x15\x4e\x66\x09\xce\xab\x66\xea\
-\x40\x17\x59\xd3\xe1\xcc\x4b\x16\xd1\x7b\xdc\x43\x6f\x74\x12\xff\
-\xaa\x85\xb8\x16\x98\xa4\xdf\x8d\xd2\xb4\xa0\x92\xc8\x64\x94\x53\
-\x8e\x8f\xb2\x15\x3a\xb9\xe4\x14\xa6\x61\x4b\x69\xe7\x05\x41\x33\
-\x0c\xe0\xd5\x90\x7f\x00\xd8\x75\xe8\x31\x56\x2e\x0c\x01\x88\xad\
-\xbf\xba\xad\xb8\xdd\xa3\xbe\xa1\x2e\xbd\x78\x7e\xf3\x6f\x9a\xb1\
-\xdb\x77\x8b\x3b\xef\xbb\x9a\x77\xd2\x0b\x29\x58\xae\xe0\xf7\x29\
-\x14\x04\x73\x2c\x38\xdf\xc3\xd2\xe5\x59\xa2\xaf\x64\xe9\x7b\x77\
-\x12\xe1\xd5\x29\xcd\xcc\xf2\xf6\xef\xc3\x84\x96\x95\x60\x99\x51\
-\x88\x66\xf1\xe6\x05\x16\xc2\xd1\x85\x6b\x36\x6d\xa6\x9b\xd7\x9f\
-\x13\xd4\x56\xaf\xff\xae\xa5\xfc\x77\xc0\x87\x67\x64\x28\x2b\xfe\
-\x0e\x52\x1e\xf1\x0c\xcf\x69\x7a\x31\xd6\x5f\xb5\x22\xb1\xe5\x03\
-\x71\xd3\xba\x6a\x6e\x7e\x6e\x35\x29\xdf\x11\x26\xe3\x2d\x5c\x74\
-\xd9\x02\x54\xe9\x27\xd2\x6f\x90\xf5\x14\x32\x10\x49\x11\x3a\xdd\
-\x47\xdb\xd6\x51\xa6\xf7\x45\x39\x70\x60\x94\xb3\x6e\x29\xc5\x65\
-\x0c\x91\xed\xcd\x92\x8d\x48\x84\x25\x65\x36\x9d\x57\x35\x32\xcf\
-\xff\x76\x6b\x62\xf8\xd2\x1b\xd6\xda\xdf\x5c\x79\x1b\x7f\x00\x58\
-\xd9\x69\x08\x80\xef\x3d\xfd\xf4\x63\xa9\x33\x4b\x2e\xff\x9b\x4d\
-\x77\x48\xad\x41\x13\x2d\xf4\x71\x64\xcf\x00\xff\xfe\x8b\x66\x0a\
-\xbd\x69\xe2\x6d\xc7\x29\xaf\x4e\xb2\x6a\xcd\x62\xd4\xe1\x71\xd2\
-\xfd\x0e\xda\xac\x45\xa4\x67\x96\xf0\x64\x84\x92\x46\x1f\x7d\xcd\
-\xc3\xe4\xc6\x4d\x8a\x55\x0b\xb7\x96\x93\x66\xca\x11\x5e\xd5\xf9\
-\x20\xe4\x3d\xed\x51\x80\x9b\xef\xd9\x2c\x85\x10\xff\x05\x78\xf3\
-\xf9\xb5\x44\x56\x3e\x29\xde\x69\x7e\xf0\xa2\x40\x49\xc1\x0f\x2a\
-\x6b\xca\x9d\x18\x1d\xa2\xf3\xbd\x4f\x68\x7f\xe2\x55\xc6\xfb\x7a\
-\xc8\xcf\x58\xc8\x78\x86\xf0\xbe\x23\x0c\x75\x24\x09\x06\x26\x69\
-\xdb\x3e\xcd\xe8\x87\x49\x4e\x1c\x1c\x46\x0b\xa4\x69\x5a\x39\x4b\
-\x4d\x60\x9a\xd6\x0f\x0c\xcc\x8c\x64\x26\x2d\xe4\xac\xe5\x16\xaa\
-\x87\xed\x4d\x73\x8a\xd6\xfd\x6c\xdb\x40\xea\x87\x57\x96\xb1\xeb\
-\xb5\xfb\x91\x52\x7e\xf1\x14\x4b\x29\x69\xfc\xe9\x06\x7a\xef\x7f\
-\x91\x47\xde\xbb\x6f\xef\x8c\x2c\xbe\x68\xf2\x78\x0b\x7a\x75\x00\
-\x7d\x7a\x14\x19\x8b\x12\x19\x48\x90\x30\x24\x73\x1a\x5d\xd4\x94\
-\x2b\x7c\xb2\x3b\x42\x55\xa9\x1b\x05\x87\x7d\x9f\x65\xb9\xe1\xde\
-\x4b\x18\x3f\xba\x8c\xf2\x82\x2a\x7c\x7e\xc1\x74\x24\x4b\x6f\x77\
-\x1f\x9a\xd9\x42\xb1\x7f\x78\xf7\xa6\x0d\x63\x57\xae\xd8\x80\x09\
-\xf0\xc2\x83\x6b\xd8\xf8\x78\x33\x00\x62\xac\xeb\x7a\xaa\x9f\xd9\
-\x02\xbf\x82\x17\xdb\x36\xad\x0d\x5b\xfe\xed\xd1\xf1\x01\x99\xee\
-\x3e\x24\x12\x1d\xe0\xf8\x6c\x96\xaf\xae\xc0\xb6\x0c\x5a\xde\x1b\
-\x64\x51\x7d\x31\x66\x7c\x94\x63\x47\x25\x45\x67\x78\xa8\x2c\xbc\
-\x86\x50\xf1\x25\x2c\x6a\x6a\xa0\xbf\x3f\xca\x74\xcc\x60\x74\x34\
-\x81\x23\x05\x1e\xbf\x8e\xe3\x38\xa0\x68\x13\xdd\xed\x43\x6f\x77\
-\xb4\xdc\xf3\xfd\xda\x85\xbf\x53\x86\xba\x6f\xc9\xc3\x8d\xc0\x2b\
-\x5f\x54\xa0\x79\xbc\x47\xb9\xa4\xaa\x41\xfe\xe3\x89\x3d\x3b\x7a\
-\x0f\xff\xf3\xa5\x25\x89\xa8\x9a\xb4\x7d\x2c\xac\x9d\xe0\xd8\xdb\
-\x06\x99\x1c\x14\xf8\x54\x06\x07\xe2\xd8\x45\x6e\x16\x5f\xb2\x84\
-\x91\x6d\x93\x2c\x3b\xff\x61\x6a\x6a\xeb\x59\x75\xde\x3c\x0e\x1f\
-\x1d\xe5\x54\x7f\x94\x83\x9f\x0d\x53\x3d\xb7\x9c\xb2\xd2\x02\xc6\
-\xc2\x63\xb8\x55\x55\x56\xd5\x97\x4b\x3b\x6f\x29\x47\x0e\xf5\x9d\
-\x6a\xdb\xb3\xfd\x1c\xdb\xd9\x19\xfb\xb2\xf5\xaa\x74\x76\xf3\x8d\
-\xc7\x3e\x57\xd6\x2c\x34\x2e\x38\xd0\x71\xfc\x1f\x26\x3e\xfd\x50\
-\x58\x33\x51\x31\x71\x62\x9c\xc8\x60\x1c\x43\xd1\x39\xd4\x92\xa4\
-\xf0\xdc\x6a\xea\xce\xaa\x62\x3c\x61\x12\x8a\x4b\xa4\xeb\x7b\x2c\
-\x5b\xb5\x84\xf1\x69\x83\xb9\xa7\x57\x22\x5c\x6e\x4c\x07\xbc\x01\
-\x0f\xe1\xfe\x08\xab\xcf\x9b\x8f\x2a\x1c\xdc\xba\x5b\x0c\x8d\xc4\
-\x44\xd6\xb4\xe4\x92\x15\xb5\xa5\xf1\x19\xcf\x35\x33\xd1\xba\x57\
-\x42\x8d\xeb\x72\x33\x91\xdd\x52\x8d\x35\xcd\x13\x7b\xee\xfe\x3b\
-\x67\xf9\xc6\xeb\x9f\xb7\x0b\xaa\x4e\x0f\xef\x7f\x4f\x24\xa6\x66\
-\x28\x52\xb3\x8c\x25\xdd\x04\xfd\x82\xb9\xc5\x92\x44\x77\x8c\xf1\
-\xce\x29\x42\xc2\x21\x6b\xaf\x63\xcd\xda\x8b\xe9\x0a\x4f\xb3\x78\
-\x49\x2d\xe5\x15\x41\x3c\xba\xc6\x6b\xdb\x4e\x32\x93\xb5\xc9\xda\
-\x0e\x86\x99\xe7\xed\x0f\x7a\x88\xc4\xd3\x8c\x4d\x18\x08\x4d\x15\
-\x81\x42\x9f\x2c\x2c\xf6\x95\xa6\x66\xad\x86\xc1\x8e\xfb\x5f\xfd\
-\xfe\x4f\x76\xa2\x7e\xf6\xc6\x7e\xa4\x94\x0b\xba\xc6\x4e\x3e\xd9\
-\xde\xb2\x9f\x74\x64\x90\xe8\xe7\x11\x66\x92\x50\xe6\x36\xc9\xc4\
-\xb2\x18\x69\x1b\x49\x1e\xb7\x22\x49\xc7\xbd\xcc\x5b\x72\x33\x8a\
-\xee\x45\x75\xeb\x5c\x75\xf9\x62\xa6\x12\x19\x62\x86\xc5\xe4\x6c\
-\x8e\xba\xfa\x72\x4c\x4b\x22\x2d\x8b\xa8\x61\xb1\xb4\xb1\x8c\xb1\
-\x98\x41\xda\xcc\x63\x66\x2c\x71\xe4\xd0\x29\x67\x6e\x7d\x59\x93\
-\xaa\x9d\xbd\xff\x83\xb7\xfe\x76\x40\x01\xd8\x4b\xeb\xb5\x9d\x13\
-\x27\xa8\x3a\xa3\x51\xca\x60\x29\x96\x57\xc5\xe5\x86\xf1\x88\x20\
-\x9d\x92\x90\xb3\xd0\x73\x92\x12\x04\x85\x15\x6b\x31\x6d\x1f\x6e\
-\x8f\xce\x95\x97\x35\x31\x38\x6e\xa0\x6a\x2a\x52\x53\x58\xb6\xb8\
-\x9a\x92\x12\x3f\x2e\xbf\x4e\x6b\x7f\x9c\xe2\x32\x1f\x6d\x7d\x71\
-\x54\x8f\x8e\xd4\x54\x14\xdd\x45\xc3\x8a\x79\x8a\xbb\xbc\xc8\x2a\
-\x2e\x2b\xb8\x17\x40\x91\xb2\x4b\x3b\x78\x60\xe8\xda\x79\xf3\x57\
-\xdb\x89\xf0\x5e\x11\xd2\x62\xa0\x7a\x30\xd2\x12\x2b\xab\x60\xa3\
-\x60\xce\x4a\x62\xb3\x79\xf4\xc2\x4a\xfa\x23\x73\x51\x5d\x2a\xbd\
-\xc3\x09\xa2\x33\x59\x84\xaa\x90\xb6\x24\x8e\x94\xd4\xcd\x09\x72\
-\x6a\x24\x4e\x5b\x6f\x04\x4f\xc0\x4b\x4a\x0a\xdc\x01\x1d\xe1\x71\
-\x63\xab\x0a\x86\x69\x51\x16\x2a\x22\x58\x12\x74\xf4\x02\xef\x0a\
-\x9f\xff\xf6\xa0\x02\xb5\xee\x50\xb9\xed\x3b\xb1\xef\x0d\xc2\xc7\
-\xc7\xe8\x09\x27\xf0\x3a\x79\x3c\x1e\x70\x34\x87\x78\x22\x47\x36\
-\xe3\x60\x49\x08\x0f\xfb\x51\x5d\x5e\x3e\x6a\x1b\xe2\x70\x77\x84\
-\xb8\x91\xc3\xe5\x52\xc1\x91\x54\x96\xfa\xe8\x1c\x88\xe2\xd6\x15\
-\x2e\x5a\x75\x1a\x81\x22\x1f\x8e\xc7\x85\xe2\x75\xa3\x78\x34\x54\
-\x8f\x0b\x97\x57\x23\x14\x0a\x52\x56\xec\xd3\x3c\x01\x6f\x95\xcb\
-\x5b\x58\xa3\xdd\xfb\xd2\xbd\x7a\x64\x4a\x0f\x56\x35\x14\xc8\x92\
-\xae\x31\x26\x27\xa2\x08\xc7\x21\xe3\x08\x90\x0e\x45\x3e\x15\x1c\
-\x07\x97\x90\xa4\x33\x2e\xf4\x72\x1f\xb1\x94\x85\x91\xc8\x10\x9b\
-\xcd\x62\x0c\xc6\x69\xeb\x9d\xa4\xaa\xa2\x10\x29\x25\x15\xa5\x05\
-\x58\x52\xd2\x3e\x99\xc6\x23\x21\x9f\xcd\x83\x10\x38\x36\x28\xba\
-\x1b\xd5\xe5\x22\x3e\x6d\x08\x45\x75\x09\x29\x9d\x02\xe5\xd1\x9b\
-\x1e\xcb\x5f\xb6\xfe\xaf\x33\x9f\x6f\x7b\x97\x70\x67\x04\x47\x75\
-\x23\x4d\x9b\x60\x26\x87\xae\x0b\xbc\xaa\x83\xb0\x41\x45\x52\x5a\
-\xee\x23\x1a\x37\x51\x5d\x0a\x1e\x8f\x8b\xcd\xbb\x7b\xf0\xfb\x5d\
-\x2c\x6f\xac\xc2\x01\x3a\x22\x26\x6f\x75\x44\x18\x4d\xe5\x99\xb6\
-\x00\xaf\x0b\x45\x77\x23\x3c\x6e\xd0\x14\x14\x45\x92\xfb\xcf\x1b\
-\x12\xf0\x29\xd8\x12\x5b\xf1\x89\x12\xe3\xe0\x4b\xef\x1e\x4d\x4e\
-\x98\x4e\x62\x22\x67\x9b\xa3\xb3\xd2\x98\x91\x8e\x21\x1d\x47\x98\
-\x8e\x4c\x1b\xc2\xd1\x14\xe1\x48\x5c\x96\x65\xcf\xd8\x39\x33\x4d\
-\x26\xeb\x90\x73\x1c\xea\x43\x01\xee\x7a\xae\x85\x68\x2a\xc3\xe1\
-\x51\x83\x13\xd3\x26\x8e\xdb\xcd\xa7\x63\x69\xbc\x01\x0f\x8a\x47\
-\x47\x78\x34\x50\x24\x9a\x47\xc5\xb6\x6c\x8e\x1e\x1b\x64\x2c\x3c\
-\xe1\xc4\xa6\xe2\x59\x4d\x53\x93\x2a\xc0\x8f\x36\xde\xd0\x57\xa0\
-\x67\xce\x12\x96\x93\xd3\x35\x8f\xad\x8b\x6c\x4e\x08\xd5\x0c\xea\
-\x5a\x3a\x18\xd0\x92\x5e\xaf\x16\x2b\x0a\x16\x0e\x4b\xd2\x71\x83\
-\xe5\xe5\x9a\x37\x88\xab\xc0\xc3\xe1\x91\x59\x36\xac\x5d\xc8\x96\
-\xa3\x11\x4e\xab\x2e\xe0\xd2\xa5\xd5\x14\x06\x74\x72\x8a\x4a\x56\
-\x7e\x51\x35\xc7\x01\xcb\x16\x14\x79\x34\x1c\x33\xcf\xd4\x68\x0c\
-\x3b\x95\xb2\x72\xc9\xcc\xc4\x48\x4f\xf3\xa3\xda\x1d\xdf\xbd\x8e\
-\x6b\x6f\xb8\xf3\xf0\xe6\xcd\x3f\xbe\xcb\x91\xc1\x15\xf9\xac\xed\
-\xc9\x18\x49\x19\x9d\x1c\x15\xaa\xc4\x2a\xf0\xea\xf9\xbc\x9d\x9b\
-\x01\x91\x12\xb6\x11\x48\x84\xc7\x7e\xda\x9f\x2a\xa9\x2a\x2a\xf6\
-\x71\x7a\x28\x40\xef\xb8\x41\x59\xb1\x07\xa1\x69\x7c\xa3\xa1\x94\
-\x78\xd6\xe1\xbc\xac\xc3\xa9\x58\x9a\xf7\x8e\x8f\x93\xcf\xda\x54\
-\x97\xf8\x10\xb3\xb3\x84\x13\x29\xb0\x1d\x7c\x2e\xb7\x2b\x93\x4c\
-\xed\x82\x4f\x2c\xed\xd9\xdf\xbc\x41\x5f\xdf\x47\x62\xfe\xfc\x0b\
-\x0f\x00\x07\xfe\xd4\x37\xfd\xc6\x35\x0b\x9a\xa6\x66\x72\x3f\x32\
-\x53\x59\x99\x4d\x98\x22\x35\x92\x64\xe9\xd2\x10\x4d\xa1\x20\x42\
-\x51\x40\x48\x6c\x45\x50\x51\xa8\xb3\x61\x75\x0d\x89\x64\x86\x13\
-\x5d\xa3\xb4\x9e\x4a\xa3\x3a\xe0\x38\x8e\xc4\xc9\x8b\xb1\xd1\xe8\
-\xcf\x01\xb4\xd7\x5f\xdf\xc4\xfc\xf9\x17\xca\x97\x5f\x7e\x80\xc1\
-\xa1\x09\x91\x33\x2d\xf2\x66\x86\xf8\xf4\x08\xd2\xb2\x28\xf0\xea\
-\xe4\x6d\x0b\x97\x92\x93\xc6\x4c\xa3\xd6\x54\x35\xf5\xb4\xd9\x97\
-\x58\xd7\x66\x14\x86\x74\x45\x6a\x32\x97\x17\x9d\x43\x49\xdc\x85\
-\x7e\x16\xa5\x73\x94\x78\xdd\x08\x55\xa5\x48\x57\x48\x9b\x79\x66\
-\x67\x14\x8e\x9c\x8a\xe1\xb1\x2c\xf2\x8e\xb4\x15\x29\xd5\x89\xa1\
-\xd8\xc3\xe9\xe8\x2f\xfb\xe6\x2e\xfd\x27\xf1\x95\x47\xb3\x7b\xbf\
-\xfd\x67\xfc\xfc\xb5\xfd\x00\x1c\xde\xff\xf6\x4d\xcf\x6f\x9e\xfc\
-\xfb\x8f\xa3\x05\x73\xa9\x08\x3a\xd2\xef\x51\x28\xf2\x71\xf5\xb9\
-\xb5\x5c\xbf\xac\x0a\x97\x22\xc8\x58\x36\x3d\xe3\x06\xad\xdd\x13\
-\xec\xf8\x38\x8c\x9a\xb3\x9d\xfc\x54\x54\x31\x7a\xc7\x5e\x71\x3a\
-\x1e\xba\x29\x5b\x79\x1f\x89\xc9\x27\x1c\xf5\xab\x02\x0e\x76\x0c\
-\xf2\xe0\xad\xeb\x90\x43\x23\xd4\x3d\xfa\xbb\x93\x37\xcf\x4f\xfd\
-\xdb\xce\x9d\xfd\xae\xa0\xdf\x73\x7e\x7d\x43\xa5\x55\x5d\x1e\xb0\
-\x6b\x4b\xbd\xca\xa2\x32\x1f\x39\xdb\x11\x03\xb1\x0c\x53\xf1\x94\
-\x9c\x49\xe7\xad\xf0\xb8\x61\x8b\xc9\x98\x66\x86\x27\x9e\x1a\x39\
-\xf9\xe0\xed\x29\x90\x99\xd4\x01\x59\x39\xff\x99\xaf\x37\x9c\x26\
-\x22\x9d\x62\xfb\xb6\x21\x65\xfd\xad\x7f\x61\x9f\xd6\xf8\xe3\xb3\
-\x5d\xe5\x55\x4f\xba\x6a\x2a\x16\xaf\x3a\xbb\xae\xf0\xbc\xa5\x21\
-\xe2\x19\x8b\xf8\x4c\x86\x74\x32\x43\xb8\x77\x22\x3d\xde\x3d\x72\
-\x58\xc4\x13\xf7\x9f\xf8\xf4\x81\x03\x25\xa1\x47\xd4\xd8\xf8\x23\
-\xf6\x97\xb1\xfe\xdf\x00\x29\x25\x42\x5c\x03\x6c\xe5\x97\x2f\x49\
-\xee\xba\xe9\x8b\x10\x85\x95\x77\xd7\xaa\xe5\xe5\xf5\x45\x35\x15\
-\x42\x78\x74\xcc\xd9\x2c\xd9\xa9\x29\x29\x63\xc9\xa1\xd8\xc8\x13\
-\x03\x00\x6b\xee\x3c\x46\xf3\xaf\x97\xb3\xf4\xd2\x13\x9c\xdc\xbd\
-\x0c\x80\xff\x00\x1c\x7c\x06\xd9\x9b\xd6\x5b\xe7\x00\x00\x00\x00\
-\x49\x45\x4e\x44\xae\x42\x60\x82\
-\x00\x00\x04\x7f\
-\x89\
-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
-\x00\x00\x18\x00\x00\x00\x18\x08\x06\x00\x00\x00\xe0\x77\x3d\xf8\
-\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
-\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
-\x00\x00\x09\x70\x48\x59\x73\x00\x00\x1b\xaf\x00\x00\x1b\xaf\x01\
-\x5e\x1a\x91\x1c\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x01\x0a\
-\x17\x02\x30\xf6\x73\x58\xfb\x00\x00\x03\xff\x49\x44\x41\x54\x48\
-\xc7\xbd\x95\x6b\x4c\x9b\x75\x14\xc6\x9f\xb7\xd7\xc1\xe8\xe8\xca\
-\x66\x3b\x4a\xc9\x80\x7a\x03\x5a\xca\x8c\x81\x99\x60\x5e\x37\x2e\
-\x92\x2c\xd9\x07\x2c\x4a\xe4\x36\x32\x34\xc6\x84\x0c\xe2\x40\x12\
-\x63\x5f\xb2\xa8\x89\x41\xe2\x52\xd6\x80\x51\xc1\x38\xa5\xc8\x75\
-\x1b\x42\x3b\x88\x62\x59\x02\x6c\x0c\x07\x04\x4a\xe2\x56\x20\x8b\
-\x5c\x02\x65\xa9\xb6\x89\xbc\x57\xbf\xa0\x21\x0a\x8c\x6e\xd1\xf3\
-\xf9\x7f\xce\xef\xfc\x9f\x73\x9e\x1c\xe0\x3f\x0e\xe2\x51\xf3\x2a\
-\x2a\x2a\x4c\x99\x99\x99\x65\xa1\xa1\xa1\xa9\x1c\xcf\xc9\xfc\x7e\
-\xdf\xdd\x55\xef\x5a\x6b\x6d\x4f\xdd\xe5\x99\xb6\x19\xfa\xb1\x9a\
-\xb2\x58\xde\x2b\x59\x5c\x5a\xa4\x39\x8e\x15\x7c\x3e\x9f\x30\x37\
-\x3f\x27\xdc\x1e\x1f\x13\x3a\x3a\xdb\xf8\x8a\x77\xce\x59\x01\x48\
-\xfe\x7a\x2c\xd9\x9a\x39\x38\x38\x28\x3c\xac\x7a\x4d\x4d\x8d\x3e\
-\xf5\xf8\x0b\xf5\x52\xa9\x54\xca\x32\x1c\xc4\x12\x31\x5a\xed\x76\
-\xbe\xa3\xa3\xc3\x73\xe7\xce\x44\x0f\xc3\x30\x76\x00\xc2\xb6\x80\
-\x4d\xc8\xae\x00\x85\x62\xff\xe9\xf0\x70\x45\x08\xc7\x71\x60\x58\
-\x1a\x04\x41\xa0\xb7\xcf\xf1\xf5\xad\x5b\x63\xd5\x14\x45\x2d\x92\
-\x24\x79\x8e\x24\x49\x62\x47\x00\x00\x50\x14\xb5\xd3\x6c\xc4\x45\
-\x45\xf9\x76\x8f\x67\x1e\x31\x31\x7a\x30\x0c\x03\x91\x58\x8c\x23\
-\x1a\x8d\x1b\xc0\xf2\x76\x09\xa2\x20\xf5\x0f\x79\x36\x3e\xe1\x79\
-\xb7\x7b\x06\x2c\xcb\x80\x65\x59\xb0\x0c\x8b\xc2\xc2\x82\xf4\xf8\
-\xf8\x78\xe9\xd6\xc6\xaa\xaa\xaa\xc2\x83\x06\xa4\xa5\xa5\x3d\xa5\
-\xd7\xc7\x45\x4b\xa5\x32\xb8\x67\xdc\x20\x08\x02\x2c\xcb\x20\x56\
-\x1f\x97\x5e\x5c\x5c\xd0\x5b\x56\x56\x16\xbd\xbc\x7c\xff\xb9\xeb\
-\xd7\x9d\x5f\x28\x0e\x84\x8d\x05\x0b\x20\x48\xf2\xc5\x53\x5a\xad\
-\x96\xd0\x6a\xb5\xe8\xec\xea\xc6\x47\x1f\xd7\x82\x65\x59\xec\x93\
-\xcb\x11\xa5\x8b\x3e\x19\xba\x3f\x64\x56\x1f\xf7\xcc\x58\x64\x64\
-\x64\xc9\x90\x6b\xe8\x41\xb0\x00\x79\xa2\xc1\x98\x73\xf7\xde\x1c\
-\x3a\xbb\x7b\x60\x3a\x76\x0c\x3d\x0e\x07\x26\xa7\xa6\x00\x01\xd0\
-\xe9\x74\x08\x0b\x0b\x0b\x91\xed\x93\x11\x23\xa3\xa3\x6c\x7f\xff\
-\x40\x4b\x30\x00\x82\xa2\xde\x37\x27\x9b\x4c\x46\x43\x42\x02\x7e\
-\x5d\x5a\x82\x58\x24\x42\x6c\x4c\x0c\x5a\xdb\xdb\xc1\xf3\x3c\x94\
-\x4a\x25\x08\x82\xc0\xac\x7b\x56\xa8\xae\xac\x76\xf2\x3c\xdf\xb2\
-\xe3\x16\xfd\xb3\xb8\xcd\x66\xcd\x4b\x49\x39\xde\xb8\xb2\xb2\x02\
-\x83\xc1\x80\xec\xac\x0c\xf4\x3a\x1c\x38\x1a\xa5\x85\x29\xc9\x08\
-\x99\x5c\x86\xd5\xd5\x15\xac\x7b\xd7\x99\xd7\x2d\xf9\xdf\x33\x0c\
-\x53\x0d\x60\x05\xdb\x78\x40\xa0\x28\xea\x6f\x93\x98\xcd\x66\x71\
-\x73\xf3\x97\x96\xcb\xdf\x7e\xc3\x65\x65\x65\x09\x29\xa9\x29\x82\
-\xcb\xe5\x12\x3c\x9e\x7b\xc2\x8f\x83\x3f\x70\x79\x79\xaf\xfd\xf6\
-\x12\x49\xce\x91\x24\xe9\x12\x8b\xc5\x56\x00\x85\x9b\x66\xdd\xdd\
-\x07\x00\x50\x52\x52\xa2\x38\x91\x71\xa2\x69\x7a\x6a\x3a\xc7\xe9\
-\x74\x22\x42\x15\x01\x9d\x2e\x1a\x6a\x8d\x9a\xbf\x74\xc9\x76\xd3\
-\x6a\xb5\x5e\xa3\x69\xfa\x36\x80\x39\x00\x6b\x00\xfc\x14\x45\x6d\
-\x6c\xa6\x0b\xbb\x02\xca\xcb\xcb\xf5\xa6\x64\x43\x47\x5b\xeb\x77\
-\xc6\xf1\xf1\x9f\xa1\x52\xa9\xc0\xb2\x2c\xce\x14\x17\x09\x36\x9b\
-\xad\xeb\xe2\xa7\x17\x2b\x01\x2c\x00\xe0\x1e\xa6\xef\xbf\x00\x7e\
-\xbf\x2f\xfb\xc9\xa7\xe3\x46\x6c\xb6\x86\x88\xf9\xf9\x05\x48\xa4\
-\x12\xd0\x34\x8d\x97\xb3\xb3\x30\x39\x39\xe5\xda\x2c\xee\xd9\xeb\
-\xea\x6d\x05\x48\xaf\x5e\xed\xae\x3e\xac\x3e\x7c\xad\xa1\xe1\x33\
-\xc9\xda\xaa\x17\x22\x91\x08\x1c\xcb\x21\x29\x39\x09\xaa\x83\xaa\
-\x5f\x4a\x4b\xdf\x38\xbf\x29\x09\x82\x02\xe8\xf5\x7a\x79\xd1\x99\
-\xfc\x7a\xb5\x5a\x73\x76\x7a\x7a\x1a\x07\x14\x0a\xd0\x1b\x34\x02\
-\x81\x00\xa2\xa2\xa2\x90\x71\x32\xdd\x5b\x79\xbe\xaa\x12\xc0\xf8\
-\x56\x7d\xf7\x12\x22\x00\x78\xf3\xad\xd2\x2a\x8e\xe3\x72\x9b\x9a\
-\xbf\x7a\xd7\xbb\xfe\xe0\x15\xf3\xab\xe6\xfb\x4a\xa5\x12\x5a\xad\
-\x16\xc5\xc5\x85\x1b\x9f\xd4\xd6\x7d\xe0\xf5\x7a\xfb\xf6\xa2\xf9\
-\xb6\x3f\x38\x14\x71\xc8\x7c\xa5\xeb\xca\xcd\xe1\x1b\xc3\x8d\xc3\
-\x37\x86\x7d\x26\x43\x82\xc6\x68\x34\xd4\x27\x1a\x12\x79\x7b\x8b\
-\xfd\xf3\xdc\xdc\xdc\x3a\x00\x75\x8f\x72\x9d\x24\x00\x20\x97\xcb\
-\x7e\x57\x1f\xd1\xa8\x01\xa8\x01\xf8\xff\x60\x99\x27\x92\x93\x93\
-\x04\x47\x9f\xa3\xdb\x62\xa9\x79\xfb\xb1\x6f\x72\x63\xa3\xad\x20\
-\xfc\x60\x78\xd3\xe8\xc8\xe8\x08\x41\x10\x0b\x31\xb1\x47\x73\x7e\
-\x1a\x1c\xea\x6f\x6f\xeb\x2c\x0b\x76\xa8\x3b\x1d\x7d\xd1\x85\x0f\
-\x2f\x14\x31\x0c\x7d\x36\x10\x08\x10\x13\x13\x93\x3d\x03\xce\x81\
-\x66\x00\x4b\xc1\x0e\xf5\x7f\x8f\x3f\x01\x2e\x51\xa3\xa9\xc7\xde\
-\x69\x7b\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
-\x00\x00\x02\x4a\
-\x89\
-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
-\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
-\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
-\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
-\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
-\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
-\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x01\xc7\x49\x44\
-\x41\x54\x38\x8d\xa5\x93\xcd\x6a\x1a\x61\x14\x86\x1f\x33\x0e\x05\
-\x4d\x47\xda\x88\x64\x53\x14\x83\x43\x76\xc6\x95\x4c\x5d\xb9\x33\
-\x05\x17\xdd\x64\x99\x45\x2e\x20\xbd\x82\x76\x51\x7a\x03\xbd\x82\
-\x76\x93\x95\x0c\x82\x8b\xe2\x76\x32\xe8\x6a\x04\x85\x04\xa2\xd0\
-\xa2\x14\x84\x80\xc5\x9f\x5a\xb5\xf0\xa5\xa7\x1b\x2d\x93\xa1\x29\
-\x14\x0f\x9c\xcd\x39\xe7\x79\x39\x3f\xdf\x17\x12\x11\xb6\xb1\x9d\
-\xad\xe8\x07\x04\x12\x40\x1a\x88\xfa\x62\x51\xe0\x60\x9d\xfb\xa7\
-\xc0\x7e\x3e\x9f\x3f\xd6\x75\xfd\xa3\x6d\xdb\xe6\x1a\x8c\xda\xb6\
-\x6d\xea\xba\xfe\x21\x9f\xcf\x1f\x03\xfb\xf7\x08\x11\xd9\x78\xc2\
-\xb2\xac\x53\xa0\x0b\x5c\x69\x9a\x76\x59\xad\x56\x8f\xaa\xd5\xea\
-\x91\xa6\x69\x97\xc0\x15\xd0\xb5\x2c\xeb\x54\x44\x12\x1b\x2e\xe4\
-\x5b\x62\x3a\x95\x4a\xbd\x1f\x0c\x06\x4f\x00\x01\x1e\x85\xc3\xe1\
-\x39\x80\x52\x6a\x17\xf8\x09\x84\x92\xc9\xe4\xb8\xdf\xef\xbf\x02\
-\xbe\x04\x47\xb8\xf5\x3c\xef\x22\x93\xc9\x5c\x03\x0b\x60\xac\x94\
-\xd2\x94\x52\x1a\x30\x06\x16\x99\x4c\xe6\xda\xf3\xbc\x0b\xe0\x76\
-\x03\x85\x02\x67\x34\x46\xa3\xd1\x8b\x42\xa1\xf0\xbc\xd7\xeb\x3d\
-\xf3\x27\x4c\xd3\xfc\xda\x68\x34\x9a\xf1\x78\xfc\x13\x30\x7b\x68\
-\x89\x77\xad\x56\xab\xb7\x5c\x2e\xf7\xd6\x5d\xfc\xf1\xd5\x6a\xf5\
-\xb4\xdd\x6e\x77\x81\x3b\x3f\xe0\xef\x20\x5a\xaf\xd7\x0f\xca\xe5\
-\xf2\x6b\xa5\x94\x02\xe6\x01\xf1\x5d\x5d\xd7\xb5\x5a\xad\xf6\xae\
-\x54\x2a\x7d\x06\x7e\x04\x05\xd2\xb1\x58\xec\xcd\x6c\x36\xfb\x05\
-\x7c\x07\xc8\x66\xb3\xdf\x00\x3a\x9d\xce\xde\xba\xe6\xb1\x61\x18\
-\x3b\xd3\xe9\xf4\xed\xdf\x96\x38\xaf\x54\x2a\xcd\x48\x24\x32\x04\
-\x16\xb9\x5c\x6e\xe8\x38\xce\x8d\xe3\x38\x37\xb9\x5c\x6e\x08\x2c\
-\x22\x91\xc8\xb0\x52\xa9\x34\xef\x75\xe7\x7b\x07\x88\xc8\xa1\xeb\
-\xba\x67\xc5\x62\xf1\x7c\x32\x99\x9c\x88\x88\x21\x22\xc6\x64\x32\
-\x39\x29\x16\x8b\xe7\xae\xeb\x9e\x89\xc8\xa1\x9f\x09\x0a\x20\x22\
-\xa6\x88\xbc\x5c\xc3\x9b\x98\xb1\x8e\x99\xc1\xfa\xe0\x19\xff\xdb\
-\xb6\xfe\x8d\xbf\x01\x7c\x52\x08\x38\x8e\xd7\x1d\xc8\x00\x00\x00\
-\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
-\x00\x00\x02\x73\
-\x89\
-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
-\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
-\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
-\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0d\xd7\x00\x00\x0d\xd7\
-\x01\x42\x28\x9b\x78\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
-\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
-\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x01\xf0\x49\x44\
-\x41\x54\x38\x8d\xa5\x92\x4f\x6b\x1a\x61\x10\xc6\x7f\xae\x8a\x55\
-\x8a\xed\xcd\x20\x14\xb2\x87\x88\x87\x42\x4d\x3c\x49\x3d\xec\x25\
-\x64\x03\x7b\xc9\xc1\xdc\x3c\xf5\xb0\xb7\xc6\x9b\x5f\x20\x1f\x40\
-\xea\xb9\x9f\xc0\xe0\xa9\x37\x21\x14\x12\x59\x58\xd8\x84\x42\xa1\
-\xe0\x69\x89\x60\x4c\x2f\x49\xb5\xa8\xc4\x3f\xd3\x43\xde\xb5\x26\
-\x48\x28\x74\xe0\x85\x79\x67\x9e\x79\x98\x99\x67\x42\x22\xc2\xff\
-\x58\xe4\x99\x5c\x1a\x78\xa9\xfc\xdf\x40\x6f\x2d\x4a\x44\x56\xdf\
-\x2b\x11\xd1\x45\x24\x6d\x59\xd6\x01\x70\x03\xdc\x58\x96\x75\x20\
-\x22\x69\x11\xd9\x54\x98\x65\xcd\xa3\x62\xdb\xb6\x77\x43\xa1\x90\
-\x97\x4a\xa5\x8e\x63\xb1\xd8\x09\x70\x09\x5c\xc6\x62\xb1\x93\x54\
-\x2a\x75\x1c\x0e\x87\x1d\xdb\xb6\x77\x57\x49\x42\x2b\x3b\xd8\x8c\
-\x46\xa3\x9f\x67\xb3\x59\x52\xb5\x3e\x01\xc6\x2a\x17\x07\x5e\x00\
-\xa3\x48\x24\x72\x37\x9d\x4e\x3f\x00\x3e\x80\xb6\x32\xcd\x7d\xb9\
-\x5c\xfe\x02\x0c\x81\x6b\xe0\x56\x91\x4c\x94\x7f\x0d\xfc\x52\x98\
-\xfb\xa7\x4b\x4c\x97\x4a\xa5\x9d\x56\xab\xb5\xa5\x0a\x48\x26\x93\
-\x77\x95\x4a\xe5\x1b\x40\xad\x56\x7b\x37\x18\x0c\x5e\x03\x34\x9b\
-\xcd\xad\xe1\x70\xb8\xd3\x68\x34\x00\x7a\xc1\xfc\x19\xe0\x02\x68\
-\x01\x4d\xa0\x59\xad\x56\x8f\x44\x64\x5b\x44\xb6\xab\xd5\xea\x51\
-\x10\x57\x98\x0b\x11\xc9\x88\xc8\x5f\x19\x35\x4d\xfb\xb1\x58\x2c\
-\x42\xc1\xbf\xdd\x6e\x0f\x80\xfe\x8a\x3f\x51\xa9\x89\xa6\x69\x3f\
-\x97\x75\x81\xce\xae\xeb\x9e\x19\x86\xd1\x09\xe6\x76\x1c\x67\x5f\
-\xd7\xf5\x43\x5d\xd7\x0f\x1d\xc7\xd9\x0f\xe2\x86\x61\x74\x5c\xd7\
-\x3d\x53\xb7\xb1\x24\xe8\xe5\xf3\xf9\xd3\x6c\x36\x7b\x15\x00\xe7\
-\xf3\xf9\xc0\xf7\xfd\x3d\xdf\xf7\xf7\xe6\xf3\x79\xd0\xc1\x24\x9b\
-\xcd\x5e\xe5\xf3\xf9\x53\xd4\x61\x3d\x92\x31\x91\x48\x7c\x1c\x8f\
-\x03\xe5\xd6\x5b\x3c\x1e\x67\x34\x1a\x7d\x62\x8d\x8c\xb7\x9e\xe7\
-\xb9\xb9\x5c\xae\x5f\xaf\xd7\x3b\xa6\x69\x76\x79\xb8\x83\xb1\x69\
-\x9a\xdd\x7a\xbd\xde\xc9\xe5\x72\x7d\xcf\xf3\x5c\x1e\x64\xe5\x69\
-\x07\x00\x1b\xc0\x7b\xa0\xeb\x38\x4e\xba\x58\x2c\xbe\x05\x38\x3f\
-\x3f\xff\x5e\x28\x14\x7a\xc0\x1b\xa0\x1d\x2c\x77\x1d\xc1\xaa\x65\
-\x00\x43\xf9\x5f\x81\xce\x3a\xd0\x73\x04\xff\x64\x7f\x00\x19\x1e\
-\x09\x5d\x0e\xd9\xff\x6d\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\
-\x60\x82\
-\x00\x00\x0b\x2d\
-\x89\
-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
-\x00\x00\xb0\x00\x00\x00\x7f\x08\x06\x00\x00\x00\x4f\x09\x48\x3f\
-\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
-\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
-\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\
-\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x02\x18\
-\x13\x26\x10\x86\x4c\xd4\x8d\x00\x00\x0a\xad\x49\x44\x41\x54\x78\
-\xda\xed\x9d\x7d\x8c\x1d\x55\x19\xc6\x9f\xf7\x9d\x33\xf7\x63\xb7\
-\x1f\x6e\xb7\xdd\xb5\x95\xc6\xd6\xc0\xd6\xd6\x6a\xa2\x25\x01\x12\
-\x04\x34\x90\x28\x84\x10\x44\x4c\xd0\x04\x63\x24\x8a\x46\x08\x06\
-\x48\x34\x86\xc6\xe0\x3f\xc6\x36\x01\xb5\x2a\xa8\x21\x36\x18\x35\
-\x40\x88\x04\x0d\x92\x6a\x88\x46\x0b\x28\x51\x12\x15\x0a\xc5\x02\
-\x02\x02\x05\x04\xba\xed\xde\xbd\xf3\x71\x5e\xff\x98\x99\x7b\xe7\
-\xde\xdd\x6d\x31\xa1\xdd\x1e\xf2\xfc\x9a\xec\xbd\xf7\xcc\x99\x33\
-\x67\xde\xf3\xce\xdb\xe7\x9c\x39\x73\x46\xb0\xf9\x62\x4c\x24\xfb\
-\x44\x44\x60\x66\x80\x88\x08\x00\x03\x04\x66\x02\xa0\x9f\x56\xfd\
-\x06\xaa\x4f\xcc\xf7\xbb\xc8\x8d\xaa\x3c\xc0\xac\x97\x6e\xc5\x06\
-\xf4\x8e\x37\x1f\xe5\xfe\xa8\xf6\xaf\xbe\xd7\xb7\xcf\x53\xe6\x82\
-\xcc\x57\xc6\x82\x79\x01\x41\x59\x66\x45\x59\x0f\xe9\xfd\xb4\x81\
-\x73\xb5\x21\x23\xf4\xce\x1b\xd6\x2b\x4b\x16\x38\x9c\x1d\xa1\xfc\
-\x61\x9b\x0e\xec\x53\x1d\x7f\xc8\xce\xc3\x75\x9b\xb7\xdc\x5a\x79\
-\x83\xb6\x34\xc0\x8e\xd0\x1e\xc3\xed\x32\x4f\x59\x73\xea\x5c\xb5\
-\xf9\xe0\xf1\xac\x57\xa7\xa2\x5c\xab\x9f\xe2\xc0\xa7\x88\x95\x7e\
-\x69\xb5\xa6\x32\x37\x99\x3e\x29\x28\x8c\x20\x65\x21\x52\x5a\x45\
-\x00\x20\x95\x86\x66\x22\x6a\x88\xd4\x8b\xa8\x87\x8a\x8a\x89\xb7\
-\x5a\xed\x04\x52\x54\x4a\x6a\xc7\x95\xfe\x4f\xe9\xa7\x19\x0c\xfd\
-\x4b\x44\x06\x2f\x01\xab\xf6\x2e\x1a\xbe\xdf\xea\x65\xde\x5a\x9e\
-\x7e\x99\xd5\xc9\xd7\x8e\x5b\x6b\xea\x7e\x8a\x00\x62\xb5\xbc\xf5\
-\x63\x1e\xce\xc5\x16\xb8\x5c\x87\xeb\x62\xf3\xe7\x9f\x73\x2e\x75\
-\x3b\x49\xbf\x61\x07\x6c\x66\x47\xb0\x47\xb9\x7d\x4e\xba\x2c\x74\
-\x89\xc8\x3c\xdb\x0f\x93\xae\x35\x1b\x0d\xe5\x33\x18\x44\x8b\x8b\
-\xa6\x7e\xec\xb9\x6d\x36\x84\xce\x3d\xaf\xd2\x1d\xca\xcd\x66\x5e\
-\xc4\x14\xde\x14\xe6\x15\xde\x47\xe6\x7d\x6c\x89\x97\xca\xd3\x45\
-\xac\x76\xb1\x9b\x99\x89\x2b\x9d\x5e\xfa\xad\x5c\x34\x73\x2a\x0d\
-\x4d\xc5\xb9\x04\x91\xfb\xed\xce\x6f\xbf\xf3\xd1\xdd\x3f\xba\xb6\
-\x3d\x32\x3a\xd2\x6c\xb6\xdb\x52\xbf\xb4\x08\x79\x93\x30\x33\x9b\
-\xed\x76\x3a\x67\x9d\xf7\xe5\x1f\x3e\xfd\x9f\xfd\xcf\x9f\x7d\xe9\
-\x95\x4f\xc7\x12\x65\xb1\xcf\xb2\x06\x52\x6f\x43\xf1\x1c\x22\x26\
-\x13\x53\x5b\xb4\x8c\xb8\x10\x11\x4d\x10\x6b\x57\xe2\x28\x83\xc6\
-\x3b\xbe\xf0\xbe\xef\x2d\x5b\x36\xb6\x42\x55\xe9\xb0\xe4\x98\xe3\
-\xbd\xb7\x0f\x9e\x7b\xe5\x8e\xf5\x67\x7e\xfc\x4f\x0e\x79\xda\xb4\
-\x34\x8f\x91\x7a\x00\xbe\x94\xb4\xa5\x03\x03\x02\x11\x4d\xcc\x69\
-\xa6\xb1\xdb\x76\xdd\xd5\x93\xa3\x87\x1e\xdc\xde\x6a\xb6\xda\x34\
-\x23\x59\x6c\x66\xbb\xb3\x9d\x99\xd1\x53\xae\xb9\xfa\x1b\xdb\x5f\
-\x8c\x2d\xcb\x1a\x56\x38\x31\x44\x4c\xa5\x40\x53\xc4\x9a\x69\xec\
-\xb6\x6f\xbd\x66\xf5\xb2\xce\x43\x37\xd2\x79\xc9\xf1\x42\xab\xd9\
-\x6a\x2f\xed\x3c\x74\xe3\xf6\xad\xd7\xae\xce\x24\x76\xa9\x34\xb4\
-\x54\xd5\xe2\x00\x88\x99\x49\xaa\xce\x75\xd0\x6c\x8d\x4c\xdf\xbf\
-\x2d\x6e\xb5\xe3\x81\x50\x6e\xd2\x98\x9e\x7e\x6d\xb2\xd9\x1e\xcb\
-\x0c\x12\x19\x8c\x92\x82\xbc\xe9\x08\xc4\x04\x96\x9f\xb0\x6e\xf3\
-\xe3\xfb\x9f\xfd\xfb\xb8\x8a\x25\xd5\xb6\x38\x8e\xe3\xd1\xe9\xfb\
-\xb7\x75\xa4\x79\x19\x80\xd9\x18\x69\x2a\x80\x38\x03\x24\x97\x58\
-\x33\x44\xf1\xf7\x2f\xdf\xf4\x9d\x56\xab\xdd\xaa\xf7\x47\x73\x2f\
-\x23\x99\xd7\xb1\xa5\xcb\x27\x56\x9f\x73\xee\xa5\x2b\x68\x66\x72\
-\xb4\xd9\xfb\xc4\x63\xcb\x93\x5c\x0f\x39\xf5\xaf\x46\x6a\x33\x02\
-\x78\x00\x68\xb5\xda\xad\x7f\xed\xba\xf5\xb4\x77\x9f\x7d\xc9\x1f\
-\x33\x8b\x72\x27\x99\x39\x98\x49\xa2\xce\x25\x1a\x37\x96\x2f\x1f\
-\x1b\xab\x17\x94\x7b\x19\x49\x32\xff\x8e\xf3\x2f\xbc\x6c\x3d\xcd\
-\x4a\x8e\x15\x27\x9d\xb8\x61\xdd\x49\x27\x6e\xc0\x63\xfb\x9e\xb9\
-\xef\xa9\x7f\xde\x3b\xe2\xd4\x0e\x56\xdb\x1e\xd8\x75\xd3\x17\x13\
-\x8d\xff\xdc\x40\x96\xc5\x96\x7b\xcd\x24\x8e\x52\x38\x77\xfb\x0d\
-\x5b\xd7\xd5\x47\x1b\xbc\x49\x23\xf3\x3a\x76\xfe\x85\x9f\xa3\xf3\
-\x92\x45\x61\xc3\xbb\xd6\x7e\x68\x6c\xf5\xe6\xd4\x9b\x34\xaa\x34\
-\x55\x95\xdb\x6f\xd8\xba\x2e\x81\x73\xa9\x45\x91\xe6\xa2\x9a\x8b\
-\xc6\xfb\x1f\xb9\xed\xaa\x01\xe1\xbc\x64\x22\x1b\x1d\x5d\x3a\x49\
-\x33\x92\x45\x1d\x81\x38\xf0\xdc\xe6\x89\x13\xde\xfb\x4a\x3d\x6d\
-\x6a\xfd\xda\xc9\x1c\x1a\xe7\x1a\xa9\x7a\x88\x66\x88\xa2\xa9\x4d\
-\xa7\xed\xab\x67\x3a\xf0\xda\x4b\x93\x67\x9d\x7d\xf1\x4a\x9a\x90\
-\x2c\x26\x67\x7c\xf8\xa2\x55\xcf\x3e\xf5\x8f\xa9\x7a\xda\xfe\x27\
-\x77\x9f\x92\x69\x14\x79\xa8\xaa\x41\x15\xb0\xe8\xe5\x17\xf6\x6e\
-\xa9\x67\x32\x20\xa2\xf9\xc8\xf1\x80\x41\x06\x7c\xf1\xe5\x17\xf6\
-\x6e\x11\x20\x32\x88\x2a\x20\x0a\x68\x24\x73\x76\x02\x87\xca\xc8\
-\x71\xe2\xc0\x83\xc3\xb6\xe5\x34\xa9\xc8\x00\xd5\xb2\xcb\xa6\x34\
-\x13\x09\xcc\xad\x15\x10\xa8\x07\x94\x93\x73\x48\x88\xba\xc2\x60\
-\x45\x04\x7e\x23\xd3\x64\x09\x39\x9e\x28\x42\xae\x40\x21\xe5\x3f\
-\x42\x42\x0a\xc0\x56\x4c\xfd\x55\x30\xfa\x92\x80\xd1\xaa\x57\x47\
-\x48\xb0\x0e\x4c\x48\xd0\x0e\xcc\x4e\x1c\x09\xaf\x17\x57\x8f\xc0\
-\xd4\x10\x24\xb8\x5e\x5c\xf1\x47\x8b\x47\xbf\x09\x09\x56\x42\x08\
-\x07\x22\x48\x78\x0a\xa2\x37\x0e\x4c\x05\x41\x42\x54\x10\xbd\xf5\
-\x24\x84\x9d\x38\x12\xb2\x84\x30\xce\x3b\x23\x81\x6b\x60\x42\x02\
-\x14\x11\x00\x00\x57\xfb\x4e\x48\x68\xbd\xb8\xea\x4e\x1c\x3d\x98\
-\x04\x18\x80\xcd\x2a\x07\xa6\x8c\x20\x21\x06\x60\xe1\x5c\x08\x12\
-\x68\x00\xee\x0d\xa3\x31\x00\x93\x80\x61\x04\x26\x41\x0b\x61\x65\
-\x1f\x8e\x04\xae\x81\xe9\xbd\x24\xc4\xd8\xdb\x93\x10\x14\xc0\x24\
-\xc0\x08\xdc\x77\x60\xa3\x86\x20\x21\x6b\x60\x01\x97\x85\x20\xa1\
-\xc6\x61\x3e\x52\x44\xc2\x8c\xbd\xe5\x2b\xbb\x78\x2b\x99\x84\x19\
-\x7b\xcb\xf7\xcd\x15\x13\xda\x29\x21\x48\x88\x11\x18\x06\x35\x18\
-\x25\x04\x09\x57\x03\x73\x55\x29\x12\xa8\xef\x02\x00\x6f\x64\x90\
-\xb0\xd1\xe2\x95\xb3\x34\x04\x09\x52\x04\x83\x8b\xfb\x91\xa0\x35\
-\x84\x82\x9d\x38\x12\xa8\xff\x5a\xff\x4e\x1c\xed\x41\x42\x93\x10\
-\x80\x54\xb3\xd1\x18\x81\x09\x3b\x71\x84\x1c\x4b\x05\x51\x5f\x9d\
-\x92\x01\x98\x04\xa7\x20\x7a\xcf\xc4\x71\x36\x25\x09\xb4\x13\xd7\
-\x7f\xa4\x88\x1e\x4c\x02\xec\xc4\xf5\x1f\xab\xa7\x08\x26\x61\x7a\
-\x30\x97\x57\x25\x41\x6b\x08\x4e\x68\x27\x61\x47\x61\x2e\x6c\x42\
-\xc2\x8c\xbf\x52\x88\x08\xbe\x23\x83\x04\x2d\x22\xf8\x58\x3d\x09\
-\x53\x3c\xf4\xd7\x46\xa3\x00\x26\x61\x4a\x88\x72\x18\x8d\x11\x98\
-\x84\xd8\x7d\x63\x04\x26\x6f\x01\x0f\xe6\x30\x1a\x09\xb6\x07\xd7\
-\x9b\x0f\x4c\x48\x88\x11\x58\x7a\x2f\x3a\xa4\x0f\x93\x00\x23\x30\
-\x80\x62\x5d\x08\x42\x82\xd6\xc0\x84\x84\x0a\x3b\x71\x24\x6c\x09\
-\xc1\x95\x79\x08\x25\x04\x21\xc7\x3a\x00\x0b\x1d\x98\xbc\x15\x34\
-\x30\x47\x21\x48\xb8\x2a\xc2\x4a\x0d\x4c\x19\x4c\x82\xec\xc7\x09\
-\x1f\x29\x22\x81\x46\x5f\xeb\xdd\x4a\xe6\xca\x3c\x24\xcc\x4e\x1c\
-\x27\xb4\x93\xe0\x45\x04\x47\x21\x48\xd0\xf0\xa1\x4e\x12\xac\x06\
-\xee\x3b\x30\x35\x30\x09\x50\x03\x17\x8f\xd5\x0b\x23\x30\x09\x35\
-\x02\x0b\x1c\xa3\x2f\x09\x5c\x03\xd3\x83\x49\xb0\x71\x98\xc3\x68\
-\x24\x54\x11\x5c\xfc\xe1\x30\x1a\x09\x35\xf8\xa2\xb6\x3e\x30\x21\
-\x21\x47\x60\xaa\x08\x12\x5c\x04\xae\xad\x0f\xcc\x7e\x1c\x09\x2e\
-\x00\x4b\x6d\x7d\x60\x42\xc2\x0c\xc0\x5c\x1f\x98\x04\x2e\x84\x29\
-\x21\x48\xc0\x9d\x38\x4a\x08\x12\xac\x86\xe8\x4d\x68\x27\x24\xcc\
-\x08\xcc\xb5\xd1\x48\xe8\x0a\x82\xaf\x9a\x25\x81\x2a\x88\xfa\x33\
-\x71\xf4\x60\x12\x66\x14\xe6\x2b\x06\x48\xd0\x1a\x82\x9d\x38\x12\
-\xac\x86\x28\xbc\x98\x0e\x4c\x42\xf6\x60\x3a\x30\x09\x55\x42\xf4\
-\xe6\x42\x18\x87\xd1\x48\x80\x01\xb8\x17\x81\x85\x2b\xf3\x90\x00\
-\x03\x30\x67\xa3\x91\xf0\x03\x30\x1d\x98\x04\x2d\x81\xe9\xc0\x24\
-\xe8\x38\x4c\x07\x26\x01\x4b\x08\xe9\x8d\x03\xb3\x17\x47\x42\xd3\
-\x10\x85\x17\x6b\xff\x17\x21\x61\xf9\x6f\x79\x27\x8e\xd1\x97\x04\
-\x2a\x21\x00\xa8\x51\x42\x90\x10\x23\xf0\xe0\x8b\x0e\x29\x21\x48\
-\x60\x11\xb8\xfc\xe4\x13\x19\x24\x60\x0d\x61\xd4\xc0\x24\x94\x0e\
-\xdb\xdc\x54\x2b\x23\xb0\x61\xfe\xf7\x7d\xd3\xb3\xc9\xf1\xa6\x18\
-\x00\x00\xde\x7b\x03\x60\x6a\xe6\x55\x01\x33\x83\x9d\x71\xde\x15\
-\x77\xd4\x33\x29\x90\xd3\x6e\xe4\x38\x89\xc0\x03\xbe\x38\xdb\xed\
-\xa6\x22\x30\x11\x81\x0a\xcc\x2b\x2c\xbf\x73\xe7\xd6\x73\x06\x1c\
-\x58\x6d\xf6\x77\xbf\xf9\xe9\x4b\x34\x1f\x59\x4c\xee\xfc\xf9\xb6\
-\xe9\x83\xaf\x3f\xbf\xa4\x9e\xb6\xf1\xd4\x4f\xef\x14\xb3\x5c\x60\
-\x5e\x15\xde\x04\x96\x47\x6b\x3e\x72\x73\x3d\x93\x53\x1c\x9a\xed\
-\x26\xfb\x69\x42\xb2\x98\x34\x47\xc6\xff\xbd\x62\xfc\xed\x4f\xd7\
-\xd3\xfe\xf6\xe8\x13\xaf\xc2\x7c\xae\x30\x53\x35\xf3\x6a\x3e\xbf\
-\xfc\xfa\xef\x3e\x57\x6a\x8b\x22\x02\x8b\x25\x1b\x37\x9f\xfe\xc0\
-\x3d\x77\xef\xdc\x4b\x33\x92\xc5\xe0\x9e\xbb\x77\xee\xcd\xbb\x07\
-\xba\x2a\x96\xd4\xf5\xef\xe5\xd7\xef\x78\x2e\x82\xe5\xe2\x73\xef\
-\x14\xde\x3b\xe4\x59\x26\x3e\x7d\xe5\xd5\xff\x4e\xaf\x1a\x5f\xb9\
-\xac\xca\xbc\x6f\xcf\xef\xd7\x6e\xd8\x74\xe6\x1f\x7e\x7d\xd7\x2d\
-\x49\xd6\x3d\xb0\xf6\x82\x4f\x5c\xb5\x8c\x66\x25\x47\x9b\xbb\x6e\
-\xbb\xf1\x80\x6b\x2e\x7b\x26\xef\x1e\xe8\x8e\x8c\x8e\xbe\x5c\xdf\
-\xb6\xfe\x03\x97\xdc\x22\xb2\x3b\x75\x96\x67\x11\xbc\x97\x89\xa9\
-\x2d\xed\xae\xb6\x1a\x33\x68\x8e\xa4\x1a\xbf\xed\x27\x57\xbe\xff\
-\x9b\x23\xed\x76\x63\xa0\xd7\x67\xd2\xc8\x3c\x46\xbd\x97\x96\x07\
-\x22\xf0\xce\x07\x39\x4a\xa3\x0d\x2a\xc8\x55\x6c\xd6\x29\x0e\xd5\
-\x23\x2f\x00\x9c\x7e\xee\x15\x77\xac\x39\xe3\x92\xdd\xb1\xa5\xaf\
-\x8d\xa0\x3b\xd3\xb4\x6e\xe2\x44\xc4\x9c\x4f\x33\xa7\x9a\x64\x16\
-\x75\xee\xdb\xb7\xe2\x5b\xe7\x4c\xbd\xfe\x95\x46\xdc\x70\x75\x39\
-\xd1\x88\x90\x20\xe2\xc8\x1a\x59\x1c\x92\x24\xc9\xbe\xba\xed\xc7\
-\x7b\x04\x79\x27\x46\x9a\xc4\x96\x65\x02\x58\xb4\x64\xe5\x1a\x15\
-\x31\x81\xa8\x18\x14\x7f\x7d\xfc\xa9\x74\x74\x7c\xe3\xc3\x6b\x97\
-\x4e\x9f\x1a\xc7\x71\x44\xd3\x91\xc5\xe6\xf4\x8f\x7e\xe9\x8e\x9b\
-\x7f\xf5\xc8\x2f\x6f\xbd\x7b\xd7\x8b\xb1\xe5\x87\x9a\xc8\x92\x18\
-\x69\x06\x33\x2f\x13\x53\x5b\x62\x00\x9a\x8b\x73\x99\x38\xd7\x41\
-\xa3\x9d\xaa\x5b\x62\x88\x96\xec\xf8\xec\x49\x5f\x5b\x39\x3e\xbe\
-\x44\x79\xaf\x99\x2c\x02\xde\x0c\xab\x37\x5e\xb4\xf3\xcc\xcf\x5c\
-\xbb\x47\x2c\x3f\x18\x23\x3f\xd8\xb6\x6e\x27\xb6\x2c\x53\xcb\x32\
-\x00\x5e\x26\x36\x9c\xec\x60\xa6\x00\xd4\x8b\x8b\x52\x89\xe2\x0e\
-\x1a\xcd\x5c\xdc\x48\x2e\x51\x1b\x86\xf6\x75\x9f\xff\xe4\xaa\x55\
-\xe9\x5f\x2e\xbb\xe0\x53\xd7\xdd\xfb\xe0\xae\x9b\x3e\x46\xd3\x92\
-\xa3\xc5\xc1\x99\x99\x64\xcd\x7b\x2e\xfe\xc5\x03\x0f\x3f\xf2\xfa\
-\xd7\x7f\xf0\xb3\x17\x21\xd6\x89\x7c\xd6\x89\xe0\x67\xda\x98\xed\
-\x3a\x9f\xa7\x91\xf8\x1c\x66\x1e\x80\x97\xc9\x0d\x27\x47\x06\xa8\
-\x00\x62\x66\xa5\x13\x3b\x97\x41\x1a\x99\xc4\x8d\x0c\x51\xd3\x8b\
-\x34\x0c\xda\x80\x21\x86\x48\x04\xb3\xa8\x5c\xa0\x15\x80\xf5\x9f\
-\xcb\xaf\x22\x75\xf1\xbc\x47\x99\x86\xe2\x46\x60\xf5\x09\xab\xe5\
-\x1b\xfa\xdd\x4b\xab\xa5\x57\x65\x49\x6d\x5b\xbd\xcc\xfa\x7e\xc3\
-\xff\x51\xfc\xbf\xf9\x31\x5c\xd7\xc3\xec\x3b\x8c\x2c\x50\xce\x61\
-\xbb\x2c\xf3\x94\x61\x43\xe5\xd9\x50\x61\x87\xab\x33\xde\xe0\x36\
-\x1b\xb6\x79\xcd\xc6\x0b\xb5\xc3\x7c\x75\x96\x5a\x59\xc3\x65\x1e\
-\xa9\x9c\x5e\xdd\xc4\x6a\x75\xcc\x61\x96\x43\x90\x8a\xe5\x89\x02\
-\x49\x64\x79\xb7\x81\x2c\x89\xe0\x13\xe7\xd3\x2c\x42\x9e\x8b\x88\
-\x07\x60\x66\xe6\x9d\x01\x26\x80\xb7\x62\x5e\x84\x57\xe4\x68\x5a\
-\x6e\x0e\xea\x33\xf8\x34\x83\x26\x99\x45\xce\x24\x72\x06\x44\x30\
-\x89\x00\xa8\x59\xb5\xa0\x44\x61\x75\x11\x81\xf9\xbe\x1f\xf7\x26\
-\x57\xd8\xe0\xb9\x0e\x7e\x2f\xf6\x17\xab\xce\x65\xc8\xa6\x65\x9e\
-\xaa\xec\x5e\xb9\x95\x2d\x7c\xbf\x71\xcc\xaa\x72\x6d\xc0\xeb\x44\
-\x00\xf3\x55\x19\xe5\x67\xb5\xbf\xd5\x8e\x35\xec\x37\x56\x6b\x9f\
-\x5a\xb9\xc5\x6e\x83\xe7\x8d\xb2\x4e\x3d\xdf\xab\x39\x5f\x6f\xbf\
-\x7a\xda\xbc\xde\x55\xb4\x44\x71\x8e\x06\x29\xcd\x2b\x43\x4e\x5b\
-\xd9\x01\x03\x36\x2c\x6b\x36\x5f\x1d\x50\x3f\xcf\xfe\xd5\x31\xc7\
-\xf7\x06\xfc\x7b\xb0\xce\x03\xb6\xaf\xd5\xb9\xb7\x4f\xd9\x0e\x73\
-\xeb\x76\xb8\x7a\x94\xf6\xab\xea\x6d\x30\x11\x78\x33\x9f\xab\x21\
-\x57\x58\xe6\x90\x67\x11\xf2\xd4\xf9\x2c\x77\xe2\x73\x08\xbc\x41\
-\xbc\x15\x05\x78\x11\xb1\xff\x01\xed\xeb\x89\x21\x3a\xe3\x55\x01\
-\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
-\x00\x00\x20\x26\
-\x89\
-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
-\x00\x00\x40\x00\x00\x00\x40\x08\x06\x00\x00\x00\xaa\x69\x71\xde\
-\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
-\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
-\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\x01\
-\x00\x9a\x9c\x18\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x02\x15\
-\x0e\x23\x2f\xab\xc9\xe5\x0b\x00\x00\x00\x1d\x69\x54\x58\x74\x43\
-\x6f\x6d\x6d\x65\x6e\x74\x00\x00\x00\x00\x00\x43\x72\x65\x61\x74\
-\x65\x64\x20\x77\x69\x74\x68\x20\x47\x49\x4d\x50\x64\x2e\x65\x07\
-\x00\x00\x1f\x7d\x49\x44\x41\x54\x78\xda\xcd\x9b\x69\x90\x5d\xd7\
-\x71\xdf\x7f\x7d\xee\xfa\x96\xd9\x07\xc4\x00\x33\x18\x02\x03\xae\
-\x22\x45\x53\x0b\x25\xd2\x91\x44\x53\x8a\x2d\x89\x91\x17\xad\xa4\
-\x2c\x5b\x52\x12\xc9\xf1\x56\x72\xca\xa9\xe4\x4b\x2a\x1f\x52\x89\
-\xbf\x38\x49\x39\x72\xe2\x4d\x92\x63\x4b\xb1\x55\x12\x4d\x49\xb4\
-\xc5\x45\x24\x41\x10\xa0\x44\x09\x80\x28\x42\x22\x41\x12\xfb\x3a\
-\x33\x00\x66\x06\xb3\xbf\xed\xde\x7b\x4e\xe7\xc3\xb9\x6f\x30\x00\
-\x41\xed\x76\xe5\x56\xdd\x79\x6f\xee\xf6\x4e\xf7\xe9\xfe\x77\xf7\
-\xff\xf4\x85\x1f\x73\x7b\xf1\xc5\x17\xf9\xff\x65\xfb\x49\xc6\x12\
-\xfe\x34\x06\x70\xe0\xc0\x81\xde\x9e\x9e\x9e\x9f\x37\xc6\xbc\x4e\
-\x44\x7a\x01\xfb\x8f\x24\x6b\xa0\xaa\xcb\xce\xb9\xef\xac\xac\xac\
-\x3c\x7e\xf3\xcd\x37\x2f\xff\xa4\x0f\x94\x1f\xe7\xa6\x3d\x7b\xf6\
-\x70\xfb\xed\xb7\x03\xf0\xf5\xaf\x7f\xbd\x32\x3a\x3a\x7a\x6f\xad\
-\x56\xfb\x70\x14\x45\x37\x1b\x63\x22\x40\x45\x04\x91\x2b\x3f\xfe\
-\xf2\xe3\xaa\xfa\x8a\xbf\xa5\xaa\xeb\xcf\x8b\x73\x2e\xcf\xf3\xfc\
-\x40\xa3\xd1\xf8\xdc\xd4\xd4\xd4\x17\xde\xfc\xe6\x37\xb7\x2e\x1f\
-\xd3\x3f\xea\xf6\xe0\x83\x0f\xae\x7d\x7f\xe0\x81\x07\x92\xe3\xc7\
-\x8f\x7f\xe8\xdc\xb9\x73\xdf\x5c\x5c\x5c\x6c\xaf\x36\x1a\xda\x6c\
-\xb5\xb4\xd5\x6e\x6b\xbb\xd3\xd1\x4e\xb9\x67\x59\xe6\xf7\x3c\xd7\
-\x2c\xcf\x35\xcf\x73\x2d\x8a\x42\xf3\xa2\xf0\x9f\xeb\x8e\x67\x79\
-\xbe\x76\x7d\xa7\xd3\xd1\x76\xbb\xad\xad\x56\x4b\x5b\xad\x96\x36\
-\x5b\x2d\x5d\x5d\x5d\xd5\x85\x85\x85\xf6\xb9\x73\xe7\xbe\x79\xfc\
-\xf8\xf1\x0f\x3d\xf0\xc0\x03\xc9\x95\xc6\xf6\x8f\xb2\xed\xd9\xb3\
-\x67\xed\xfb\xfd\xf7\xdf\x9f\x1e\x3e\x7c\xf8\xdd\xd3\xd3\xd3\x7b\
-\x16\x16\x16\x8a\x46\xa3\xa1\xed\x2c\xd3\x8e\xb5\x2e\x73\x4e\x73\
-\xa7\x5a\xa8\xdf\x6d\xb9\xbb\x72\xbf\xd2\xe6\xd6\xed\xdd\xeb\x0b\
-\x55\xcd\x55\x35\x73\x4e\x33\xe7\xb4\x63\xad\x6b\x67\x99\x36\x1a\
-\x0d\x5d\x58\x58\x28\xa6\xa7\xa7\xf7\x1c\x3e\x7c\xf8\xdd\xf7\xdf\
-\x7f\x7f\x7a\xa5\x31\xfe\x54\x5d\x60\xff\xfe\xfd\xbc\xe6\x35\xaf\
-\x01\x60\xe7\xce\x9d\xb5\xcd\x9b\x37\xbf\xa5\x5e\xaf\xff\xa7\x4a\
-\xb5\x7a\x47\x9a\x24\x88\x88\xae\x9c\x3c\xc1\xe2\xb1\xe3\x92\x35\
-\x56\x41\x04\xb8\xd4\x0d\x8c\xc8\xda\x2f\x0a\x82\x5e\xb4\x73\x7f\
-\x5c\x41\xfd\x1f\x7f\x4e\xb5\xbc\x46\x41\x95\xb8\x56\xa3\x6f\xfb\
-\x76\xed\xdd\xba\x0d\x55\x95\x76\xa7\x43\xab\xd9\xfc\xd6\xea\xea\
-\xea\x7f\x39\x7b\xf6\xec\x53\x77\xdd\x75\x57\xe3\xf2\xb1\xfe\x54\
-\x14\xf0\xdd\xef\x7e\x97\x5b\x6f\xbd\xb5\xeb\xf3\xf5\x91\x91\x91\
-\xb7\x56\xab\xd5\xff\x90\x56\x2a\xff\x2c\x89\x63\x44\x55\x57\xcf\
-\x9c\x91\x43\x9f\xfe\x33\x0e\xff\xcd\xe7\x58\x99\x5d\xea\xca\xb3\
-\xf6\xd9\xfd\x31\x53\xfe\xaf\x57\x18\x88\x00\xee\xb2\xeb\xd7\x3f\
-\xa3\x77\x43\x1f\xd7\xfe\xda\x87\xb9\xfe\xe3\xbf\x45\x6d\xcb\x16\
-\x45\x44\xda\xed\x36\xed\x76\xfb\xe9\x56\xab\xf5\x87\xe7\xcf\x9f\
-\xdf\xf9\xa6\x37\xbd\x69\xf5\xf2\x31\xff\xd8\x0a\x78\xee\xb9\xe7\
-\x00\xb8\xe5\x96\x5b\xba\xc2\xf7\x8c\x8c\x8c\xdc\x5d\xad\x56\x7f\
-\x2f\x4d\xd3\x3b\x92\x24\x51\x50\x56\x4f\x9d\x92\x83\x9f\xfe\x14\
-\x8b\x0f\xfd\x3d\x3d\x4b\x33\xf4\xd7\x13\x50\xc1\xb5\x1d\x61\xcd\
-\x80\x03\x2d\x20\x88\x04\x13\x09\xae\x50\x34\x57\x4c\xc5\x5b\x84\
-\x6d\x28\x26\x11\x24\x14\x5c\xee\x70\x05\x98\x00\x54\xa0\x58\x75\
-\x04\x55\x03\xa2\x2c\xae\x76\x58\xe9\xbb\x8a\xfe\xbb\x7f\x89\xeb\
-\x3f\xf6\x1b\xd4\xc7\xb7\xaa\x0a\x74\x3a\x1d\xe9\x74\x3a\xdf\x6a\
-\x36\x9b\x9f\x3c\x77\xee\xdc\xc3\x6f\x7e\xf3\x9b\x57\xae\x34\xfe\
-\x9f\x28\x0c\x3e\xf9\xe4\x93\x7d\x23\x23\x23\xbf\x52\xad\x56\xff\
-\x4d\x9a\xa6\x77\xc4\x71\x8c\x3a\xc7\xea\x99\xd3\x1c\xfa\xf4\x9f\
-\xb3\xf2\xe8\x57\xe9\x59\x9c\xa5\x1e\x45\x68\x0e\xa2\x10\x24\x01\
-\x61\x2a\xa0\x82\x6d\x39\xd4\x2a\xd6\x2a\x88\x60\x52\x83\xa9\x88\
-\x9f\xdd\x4c\xd1\x42\xa1\xf0\xf3\x6d\x22\x21\x48\x05\x54\x71\x99\
-\x57\x1e\x02\xf5\x20\x86\xc5\x39\x56\x1e\xff\x2a\x07\x51\xae\xff\
-\xd8\x6f\x52\x1f\x1f\x27\x8e\x63\x44\xe4\x0e\x11\x61\x64\x64\x24\
-\x7d\xf2\xc9\x27\x1f\xb8\xeb\xae\xbb\x96\x7e\x22\x17\x58\x6f\x42\
-\x4f\x3d\xf5\x54\xff\xe8\xe8\xe8\xfb\x2a\x95\xca\x47\x93\x24\xb9\
-\x2d\x8a\xe3\x58\x40\x9b\x53\x53\xf2\xe2\xff\xfa\x24\xab\x3b\x1e\
-\xa6\x67\x71\x81\x6a\x28\x84\x89\xc1\x84\x02\x4e\xd0\x8e\x12\xd6\
-\x0d\x58\x50\xab\x98\x48\x30\xa1\x17\xc8\x15\x8a\x49\xbd\xe1\xdb\
-\xa6\xc3\x24\x06\x13\x94\x16\x60\x15\x29\xa7\xa6\x68\x94\x96\x62\
-\x14\x97\x2b\x79\xe6\x68\x5a\x65\xa5\x67\x80\xfa\xdb\xee\xe6\x55\
-\x9f\xf8\x04\xd5\xd1\x31\x75\xaa\x92\x67\x59\x96\x65\xd9\xb7\x5b\
-\xad\xd6\x5f\x4f\x4d\x4d\xdd\xff\x96\xb7\xbc\x65\xf1\x07\xb9\x83\
-\xb9\xd2\xc1\xbd\x7b\xf7\xae\xdd\xb0\x7b\xf7\xee\xbe\x4d\x9b\x36\
-\xbd\x2f\x49\x92\x8f\xc4\x71\xfc\xda\x30\x0c\x63\x13\x04\xb4\x67\
-\xce\xf1\xfc\x27\xff\x88\x95\x47\x1e\xa2\x6f\x79\x81\x9a\x11\xa2\
-\xc0\x10\xc6\x86\xb0\x12\x78\x45\x58\x10\x27\x88\x13\x0c\x42\x18\
-\x1b\xa2\x6a\xf7\x9c\xc1\x38\x83\x71\x10\x60\x88\x12\x43\x54\xf3\
-\x0a\x0c\xf0\xe7\xc5\x09\xc6\xf9\xfb\xc2\x34\xf0\xf7\x07\x86\x2a\
-\x42\xef\xca\x02\x2b\x8f\x3e\xc4\x81\x4f\xfe\x11\xed\xf3\xe7\x08\
-\xc2\x80\x28\x8a\xe2\x38\x8e\x5f\x9b\x24\xc9\x47\x36\x6d\xda\xf4\
-\xbe\xdd\xbb\x77\xf7\x01\xdc\x7a\xeb\xad\xec\xdd\xbb\xf7\x87\xb3\
-\x80\xf5\x09\xc5\x13\x4f\x3c\xd1\x3b\x36\x36\xf6\x9e\x5a\xad\xf6\
-\xb1\x24\x49\x5e\x1b\x45\x51\x25\xae\x56\x59\x3a\x76\x4c\x5f\xf8\
-\xe3\xff\x29\xab\x0f\xfd\x03\xfd\xed\x15\xfa\x7a\x22\x0c\x7e\xd6\
-\x25\x10\x82\x48\xbc\xdf\xe7\x4a\x54\x37\xa8\x13\xef\xf3\x81\xf7\
-\x73\xb5\x0a\x0e\x4c\xd5\xc3\x9b\x6d\x80\x09\x81\x40\xd0\x42\x51\
-\xa7\x48\xe4\xcf\x15\x2b\x8a\x24\xa0\x06\x5c\xae\xa8\x55\x34\x00\
-\xe7\x1c\xcb\xab\x39\x8b\x69\x2f\xb5\x77\xfe\x22\x37\xfd\xde\xbf\
-\xd5\xde\xed\xdb\x25\x6b\x36\x29\xf2\xbc\xd5\xe9\x74\x9e\x6d\x34\
-\x1a\x9f\x99\x9c\x9c\xfc\xf2\xdb\xde\xf6\xb6\xe5\x57\x4a\x96\xcc\
-\xe5\x49\x4e\xf7\x82\xa7\x9f\x7e\xba\x3e\x3a\x3a\x7a\x77\xb5\x5a\
-\xfd\x8d\x24\x49\x6e\x8b\xa2\xa8\x12\x55\xab\xcc\x1f\x3c\xa8\x2f\
-\xfd\xe9\x9f\xc8\xfc\xfd\x5f\x64\xa0\xb9\x44\x5f\x35\x22\x4c\x02\
-\x82\xc4\x60\x8c\x60\x1c\x48\xe1\xf7\x30\x31\x84\xa9\x21\xaa\x08\
-\x41\x28\x88\x03\x32\x10\x2b\x04\x89\x10\x56\x84\x30\xed\x9e\x13\
-\x24\x53\xc4\x79\xb0\x8c\xaa\x42\x58\x09\x30\xdd\x73\x16\xc4\x82\
-\x09\x84\xa8\x62\x88\xd2\x80\xde\x34\x62\xa0\xb9\xc4\xfc\x97\xbf\
-\xc0\x4b\x7f\xf6\x27\x32\x7f\xf0\xa0\x46\x95\x0a\x61\x14\x55\x92\
-\x24\xb9\xad\x5a\xad\xfe\xc6\xe8\xe8\xe8\xdd\x4f\x3f\xfd\x74\x1d\
-\xe0\xf6\xdb\x6f\x7f\x59\xb2\xb4\xa6\x80\x1d\x3b\x76\xf0\xae\x77\
-\xbd\xab\x3b\xf3\xb5\xc1\xc1\xc1\xb7\x56\x2a\x95\x4f\x24\x49\x72\
-\x47\x18\x86\xb1\x09\x43\x96\x8e\x1e\xd5\x43\x9f\xfe\x94\x9c\xfb\
-\xec\xa7\xd9\x12\x5b\xfa\x7b\x52\x0c\x5e\x30\xb1\x42\x60\x84\x20\
-\x36\x04\xa9\x21\x48\x0c\x62\x05\xca\x3d\x10\xf1\xca\xa8\x1b\xc2\
-\x54\x10\xdb\xdd\x0d\x81\x7a\xd3\x8f\xea\x86\x30\x11\x8c\x0a\xe4\
-\xfe\xb9\xc6\x79\x25\x45\x15\xe3\x5d\x47\x04\x0a\x4a\xb7\x32\xf4\
-\xf7\x24\x6c\x49\x95\x73\x9f\xfd\x34\x47\x3e\xfd\x29\x59\x3a\x76\
-\x4c\x4d\x10\x10\x86\x61\x9c\x24\xc9\x1d\x95\x4a\xe5\x13\x83\x83\
-\x83\x6f\x7d\xe2\x89\x27\x6a\x00\xef\x7a\xd7\xbb\xd8\xb1\x63\xc7\
-\x45\x17\xd8\xbd\x7b\x37\x00\x77\xde\x79\x27\x00\xf7\xdd\x77\x5f\
-\x7a\xe3\x8d\x37\xbe\xb5\x56\xab\xfd\xc7\x4a\xa5\xf2\xb3\x69\x9a\
-\x02\x68\x7b\x76\x96\xe7\xff\xfb\xff\x90\xa5\xaf\x7c\x81\x2d\xa9\
-\xa3\xb7\x9e\xe0\x1c\xb8\x86\x62\x62\x81\x42\x08\x13\x21\xac\x1b\
-\x4c\x22\x60\xa1\x98\x71\x04\x35\x0f\x82\x12\x42\xd8\x13\x10\x54\
-\x05\xd7\x56\x8a\x79\x87\x24\x94\xb1\x4e\x09\x07\x0c\x92\x0a\xb6\
-\xa9\x14\xcb\x16\xb5\x20\x06\x6c\x1b\x82\x61\x41\x02\xc5\x76\x94\
-\x62\xc5\x61\x33\x07\x81\x0f\xa7\xa6\x06\xc6\x08\x4b\xab\x1d\xce\
-\xb4\x84\xbe\x77\xdf\xc3\xab\x7f\xff\xdf\x69\xb2\x61\x18\x10\xe9\
-\x74\x3a\xb4\x5a\xad\x6f\x36\x1a\x8d\x3f\x78\xe9\xa5\x97\x76\x7e\
-\xe0\x03\x1f\x68\x97\xd8\xc6\x9d\x77\xde\x79\x29\x06\x7c\xe6\x33\
-\x9f\x49\xde\xf0\x86\x37\xdc\x5d\xab\xd5\xfe\x7d\xa5\x52\xf1\x71\
-\x5e\x95\xd6\xb9\x73\xf2\xd2\xff\xfe\x24\xcd\x47\x1e\x62\xb0\xb9\
-\x44\x5f\x6f\xea\xfd\x59\x3d\xa2\x87\x35\x3f\xdb\x02\x98\xd8\x5b\
-\x01\x16\xdc\xaa\x12\x0d\x1a\xb0\x3e\x22\x98\x54\xbc\x72\x3a\x8a\
-\x6b\x83\xe9\xf3\x3f\x6f\x97\x1c\xa6\x66\x90\x08\x5c\x47\xd1\xcc\
-\x63\x80\x33\x4a\x7e\xc1\x11\xf4\x79\x7c\xb0\x6d\x87\xcb\x14\x35\
-\x8a\x0a\xd8\x86\x2b\xf1\x41\xb0\x99\x63\x69\xb9\xcd\x7c\xb5\x8f\
-\xea\x3b\xfe\x05\x37\xfc\xee\x27\xa8\x6c\x1c\x51\x44\xe8\x74\x3a\
-\xd2\x6e\xb7\xbf\xd5\x68\x34\xfe\xdb\xbe\x7d\xfb\x1e\xfe\xd8\xc7\
-\x3e\xd6\xe9\x82\x7d\xd0\x15\xfe\xf3\x9f\xff\x7c\xed\x96\x5b\x6e\
-\x79\x6f\xad\x56\xfb\xfd\x34\x4d\x6f\x4f\xd2\x04\x51\xa5\x71\xe6\
-\x0c\x87\xff\xe2\x4f\xa5\xfd\xe4\xa3\x0c\x76\x96\xa9\x47\x31\x64\
-\x52\x9a\xbe\x10\x24\x86\xb0\x62\x08\x22\x83\x58\xaf\x10\x29\x40\
-\x72\x21\xac\x05\x04\x35\xe3\x7d\xdc\xfa\xe3\x74\x4a\x77\xa9\x1b\
-\x82\x9a\xf8\x90\x59\x78\xa5\xd0\xf1\x85\xb4\x89\xbb\xe7\xfc\x73\
-\x34\xf7\x80\xaa\x39\x98\x50\x08\x6a\x06\x91\x12\x4c\x73\x0f\x9c\
-\xb6\x05\x49\x12\x12\x49\x87\xd5\xe9\x29\x96\x66\xe7\xe9\xb9\xe6\
-\x5a\xe2\xde\x5e\x82\x20\x10\x60\x0b\xb0\x75\x78\x78\xb8\x71\xe7\
-\x9d\x77\x1e\xfb\xd2\x97\xbe\x94\x7f\xfc\xe3\x1f\xf7\x0a\xd8\xb5\
-\x6b\x57\xff\xf8\xf8\xf8\xfb\x6b\xb5\xda\x6f\x56\x2a\x95\x37\x24\
-\x69\x2a\xa2\xaa\xab\xa7\x4f\xc9\xd1\xbf\xfc\x8c\x34\x1f\x7f\x84\
-\xbe\xd5\x45\x6a\x12\x10\x88\x4f\x52\xc2\xd4\x20\x81\xf7\xd3\xc0\
-\x78\x7f\x36\xf8\xe3\x41\x45\x08\x02\x41\xb2\xae\x80\xa5\xcf\xa6\
-\x86\xb0\xba\xee\x98\xc1\x03\x63\x2e\x84\x55\x7f\x9f\x98\x12\x2c\
-\xd5\x2b\xcd\xb5\x14\x53\xf7\x96\x23\x94\xd1\xc5\x51\x46\x19\x90\
-\x58\x30\xb1\xf7\x24\x51\x21\x44\x30\xad\x16\xab\xa7\x27\x59\x5e\
-\x5e\x91\xda\xb6\x09\x89\xfb\xfb\x35\x8c\x22\x11\x91\xcd\xc6\x98\
-\xd1\x81\x81\x81\xce\xbd\xf7\xde\x7b\xe2\x4d\x6f\x7a\x53\xdb\x00\
-\xd4\x6a\xb5\xb7\xa7\x69\xfa\x91\x24\x49\x5e\x1b\xc5\xb1\x41\x55\
-\x57\x4f\x9f\x96\x63\x7f\xf5\x97\x34\xbf\xf6\x10\x3d\x0b\xf3\xd4\
-\xc4\xc7\x64\x29\xe3\x79\x10\x1b\x82\xa8\x1c\xac\x05\x32\x45\x80\
-\x20\x16\x6f\x11\x15\x03\xb9\x9f\x6d\x29\x04\x03\x84\xa9\x10\xf6\
-\xfa\x88\x21\x19\x98\x42\x90\x5c\x30\x85\x10\xa4\xa6\x3c\xb7\x2e\
-\x22\x14\x3e\xaa\x84\x69\x69\x65\xa9\xf1\x4a\xe8\x00\x85\x07\xc8\
-\xa0\x74\xb9\x30\xf1\x2e\x69\x0a\xf1\x79\xc2\xd2\x02\xad\xc7\x1e\
-\xe6\xf8\x67\xff\x92\xc6\xe9\xd3\x82\x53\x8d\xe2\xd8\x24\x49\xf2\
-\xda\x34\x4d\x3f\x52\xab\xd5\xde\xde\x4d\x85\x0d\xf0\xfa\x28\x8a\
-\x6e\x8a\xa2\x28\x0e\xc2\x90\xe5\x63\xc7\x38\xfe\x57\xff\x87\xd5\
-\x47\x1e\xa4\x6f\x71\x9e\x5a\x1a\x12\xc6\x81\x0f\x71\x5a\x9a\x24\
-\x3e\xdd\x35\x81\x1f\x84\x84\x7e\x76\xc8\x40\xb5\x74\x8f\x14\x82\
-\xe4\xe2\x71\xc9\xbc\xcf\x4b\xee\x05\x36\x55\x01\x2d\x5d\xa6\x34\
-\x7f\x29\x84\x20\x02\x62\x5f\x2d\x9a\x96\x81\x36\xa8\x51\xc8\x7c\
-\x2e\x61\x22\xc1\xa1\x60\x9d\x77\x0d\x29\x9f\x6f\xf0\x96\x47\x40\
-\xcd\x29\x6e\xfe\x02\xcb\x0f\x3d\xc8\x51\x07\x13\x1f\xfd\x57\xf4\
-\x4c\x6c\x27\x8a\xa2\xb8\x28\x8a\x9b\x80\xd7\x03\x7f\x17\x02\x71\
-\x51\x14\x7d\x22\x12\x19\x63\x40\x44\xdb\x27\x4f\xca\xfc\xdf\x7d\
-\x91\xe1\xa2\x45\x3d\x8e\x09\x23\x1f\x8f\x8d\x08\xb4\x0a\x74\x39\
-\x43\xe3\xd2\x4c\x43\x90\x24\xc2\x44\x31\x14\xa1\x9f\x71\x01\x71\
-\xbe\xc0\x09\x2a\x5e\x68\x2d\x1c\x34\xdb\xd0\x74\x5e\x71\xc9\xc5\
-\xf2\x58\x0a\x41\x0b\x01\xe3\x43\x1b\x49\x80\xd4\x0c\x8a\xa2\x2b\
-\xde\xc7\xc5\x78\x1c\x30\x36\x83\xb8\x40\x2d\x68\xcb\xa2\x4e\x71\
-\x01\xd8\x86\x85\x48\x90\x54\x10\x15\x02\x31\xd4\xa3\x00\x5d\x9c\
-\xe3\xc2\xdf\x7d\x91\xd6\xcf\xdd\x25\x3d\xd7\x5c\xa3\xc6\x18\x11\
-\x91\xa8\x28\x8a\x3e\x20\x0e\x81\x38\xcb\x32\x51\xf5\xc4\x93\x82\
-\x84\xed\x26\xfd\x0b\xf3\xf4\x8e\x0c\x60\xd4\x9b\x96\xcf\xe7\x0b\
-\xc2\xc1\x61\xd2\x89\x09\xa2\x81\x3a\xb8\xb2\xc4\x35\x19\x6e\x7a\
-\x1a\x37\x77\x01\x43\x41\x90\x78\xd3\x27\x2f\x77\xeb\x08\x7a\x87\
-\x08\xb6\x6c\xc1\x0c\xf4\x41\xe1\x6f\x34\xf5\xb2\x34\x9e\x2f\x50\
-\xcd\x20\x6b\xe1\x66\xe7\x71\xf3\x0b\x68\x2b\x47\x82\x32\x1d\xae\
-\x7b\x73\x93\xb4\x8a\x6c\xbc\x0e\x33\xba\x09\x57\x14\xc4\xab\x0e\
-\x35\x40\x00\x45\xcb\xe2\x6c\x81\xda\x36\xf9\xe2\x22\x3a\x3d\x8b\
-\x2e\x2e\xd0\x5b\x8d\x29\xce\xcf\x13\xb6\x5b\x94\x46\x8b\xaa\x6a\
-\x96\x65\x02\x44\x21\x10\xe4\x79\x1e\x38\xe7\xa4\xcb\xbf\xc5\x81\
-\xa1\xaf\x16\x78\x40\x52\xef\x6f\xea\x14\xbb\xda\xa6\xfe\xd6\xdb\
-\xd9\xf4\x5f\xff\x80\x78\xf3\x96\xb5\xba\xbd\x38\x7f\x96\xe5\x4f\
-\xfd\x39\xd9\xce\xbf\xc7\xb4\x67\x30\x95\x08\xb1\x06\xb7\x02\x18\
-\x41\xdb\x16\xee\xb8\x85\xe4\x77\x7e\x9f\xf8\x96\x9f\x59\x47\x84\
-\xf8\x64\x5c\x5b\x0d\x74\xf9\x02\x6e\x6e\x0a\xfb\xec\x33\xe4\x4f\
-\xee\xc2\x1e\x3e\x88\x5b\x6d\xf9\x7a\x22\x35\x38\x2d\x30\x9b\x46\
-\xa8\x7e\xe8\xb7\xa9\xbd\xf3\xfd\x5c\x89\x45\xb4\xab\xab\xe4\x67\
-\xa7\x69\xbf\x74\x80\x95\xa7\x76\xb1\xfa\xf4\x4e\xb2\xb9\x19\xfa\
-\xeb\x01\x49\x68\xd6\xf8\x45\xe7\x9c\xe4\x79\x1e\x00\x61\x57\x01\
-\x62\xad\x5d\x77\x81\xa2\x0e\xcf\xd9\xa8\xf7\xb9\x30\x16\x6c\x54\
-\x25\xdc\xb6\x95\x78\xf3\x96\x4b\x0a\x09\x73\xd5\x46\x82\x6d\x5b\
-\xa1\xa7\x17\x6d\xcc\xf8\x4a\xb0\x4c\x5b\x83\x41\xa1\xdd\x50\x5a\
-\x81\x12\xa9\x12\x5f\x46\x92\xa0\x20\x95\x1a\xa6\x52\x23\xd8\x38\
-\x4e\x78\xd3\x1d\x84\x3f\x77\x37\xd9\xfd\x7f\x41\xbe\xeb\x61\xf4\
-\x78\x03\x71\xe0\x54\xc8\x33\x25\x2a\xf4\x15\xcb\xd8\xb0\x5e\x27\
-\xbc\xf6\x3a\x2a\xd7\x5e\x47\xcf\x5b\x7f\x81\xe5\x1d\x0f\x73\xfe\
-\xcf\xff\x98\x7c\xe1\x19\x9c\x73\x6b\xf2\x59\x6b\xc9\xf3\x5c\x80\
-\xc0\x5c\x89\x95\x55\xa7\x68\x07\x5c\xc7\x97\xad\x18\x50\x57\x10\
-\x5d\x37\x41\x72\xc3\x75\x2f\xe7\xaa\xc5\x10\x6d\x1b\xc7\x0c\x6f\
-\xc4\xb5\x42\xdc\xac\x43\x97\x94\xa0\xcf\x63\x84\x8b\xa1\x48\x15\
-\x17\xac\x11\x5c\xa8\xb5\x74\x1a\xab\x74\x9a\xab\x14\xad\x16\xea\
-\xdc\x9a\x60\xc1\xe6\xad\x84\xef\xb8\x07\x19\xdb\x82\xe9\x0d\xb0\
-\xf3\x8a\x9d\x71\xe4\x8b\x0e\xdb\xd1\x4b\x18\x63\xe7\x1c\xce\x59\
-\x5c\x79\xff\x7a\x65\xf4\xbd\xfd\x5d\xf4\xbe\xfd\x97\x09\x7a\x36\
-\x78\x17\x5e\xc7\x30\x77\x3f\xc3\x4b\x14\x50\x5e\x20\x02\x12\x81\
-\x89\x7d\xfc\x56\x0b\x2e\xcb\x49\xb6\x6c\x27\xdc\x76\xed\x95\xcb\
-\xca\x8d\x63\x98\xf1\xab\xe1\xe4\x0b\x04\xd9\xaa\x0f\x57\x6d\xa0\
-\xe2\x93\x1f\xb2\x92\xef\x2a\x85\x6c\x2e\x2d\x70\xe0\xef\xef\xc7\
-\x39\x4b\xda\x3b\xc0\xc6\x57\xdd\xcc\xf0\xc4\x35\xc4\x95\x2a\x12\
-\x04\x04\x9b\xae\xc6\x8d\xbf\x0a\xf7\x9d\x93\x04\xbd\x0e\x75\x86\
-\xa2\x66\x20\x94\xf5\x9c\x39\xf3\xa7\x4f\x32\x7f\xfa\x14\xce\x39\
-\xea\xc3\x1b\xe8\xdf\x3c\x4a\xb5\x7f\x00\x63\x0c\x26\xad\x30\xf0\
-\xcb\xef\x66\xe1\xe1\x87\x20\x0a\xd7\x94\xbc\x5e\x11\x21\x50\x6a\
-\xd1\xa1\x5a\x2a\xc3\xf8\x8c\x4b\x82\x92\xd4\xb4\x8a\xd3\x80\x78\
-\x6c\x2b\xe9\xd8\x38\x00\xce\x5a\xb2\x56\x8b\xb8\x52\xc1\x04\x01\
-\xe1\xc6\x51\xc2\xf1\x71\x8a\x81\x3a\x2c\xad\x22\x2a\xb0\x02\xb4\
-\x15\x6d\xe3\x51\x7e\x9d\xa1\xe5\x8b\x0b\x5c\xf8\xca\xe7\x20\xcf\
-\x28\xf2\x80\xe5\xdb\x6f\xc3\xdc\xf3\x51\x46\x5e\xfd\x7a\x7f\x41\
-\x94\x90\x0f\x6e\x01\x35\x44\x69\xc9\x2b\x24\xc6\x87\xdb\x35\x4b\
-\x75\x4c\x7f\xeb\x29\x0e\x7f\xf9\xf3\x34\xe6\xe6\x49\x37\x6f\x63\
-\xeb\x3f\x7f\x07\xd7\xbf\xf3\x9d\xf4\x8f\x6c\x46\x44\xa8\x4c\x5c\
-\x43\xb4\x6d\x2b\x54\x52\xaf\x00\xbd\x68\x39\x6b\x0a\x58\xf3\xff\
-\x2e\x07\x6b\x3d\x45\xe5\x72\xc5\x00\x06\x87\xd9\x34\x42\xb2\x75\
-\x1b\x51\x5f\x3f\x00\x59\xb3\xc9\xd9\x03\xcf\x33\x34\x31\x41\x7d\
-\xc3\x55\x44\x3d\x75\xc2\x4d\xe3\x14\xb5\x21\xf4\xdc\x39\x1c\xea\
-\x79\x81\x58\x7c\x9c\x0f\x29\x99\x62\xaf\x87\x48\x0b\xb6\x15\x33\
-\x24\x45\x46\x73\x36\x23\x7b\x21\xc6\x4e\x4f\x52\xdc\xf4\x3a\x42\
-\xe3\x73\x80\x4e\x1c\x11\x05\xa0\x2d\x87\x16\x0e\xd7\xe3\xc0\xae\
-\x77\x57\x25\x9a\x9b\xa3\xff\xe8\x11\xa2\xc9\xb3\x74\x4e\x9c\xe2\
-\x82\x38\xe6\xc6\xc7\xe8\x1f\xd9\xbc\xce\xa5\xc6\xd0\xb4\xba\x26\
-\x63\x17\x07\x5e\xa6\x80\xf5\x2c\xb5\xb3\x0a\xae\x54\x88\x58\xc2\
-\xed\xdb\x09\xb7\x8c\x23\x71\xe4\x15\xb0\xba\xc2\xe4\x53\x4f\x42\
-\x91\x53\xe9\xeb\x27\x4a\x53\xcc\xc6\x51\x18\x1e\xc3\x1d\x3a\x84\
-\xb1\x0e\x8d\xd5\xc7\x65\x2b\x10\xc0\x3a\x92\x9b\x00\x65\xb4\x2a\
-\xd4\x9c\x21\x6f\xa5\xac\xf6\x0e\x10\x26\xd5\x35\x23\x51\x55\x5a\
-\x8b\xe7\x09\x70\xb8\x0e\x3e\xee\x77\x4a\xee\xb0\x0b\xa2\x0a\x3d\
-\x61\xc4\xd5\xd5\x1a\x59\xb5\xce\xaa\x16\x64\xe7\x4f\x53\x4c\x9d\
-\x59\x7b\x86\x88\xe0\x7a\xfa\x21\x8a\xbc\x60\xe5\xf1\x4b\x14\xd0\
-\x45\xc8\xf5\x3c\x91\x04\xa5\x0b\x38\xc1\x59\x88\xc6\x27\x08\x47\
-\x46\x51\x13\xe0\x54\xc9\x97\x16\x59\xd9\xfb\x14\x0b\x3d\x3d\x8c\
-\xdc\xf2\x33\x84\x69\x8a\x8c\x8c\x22\xdb\x26\xd0\xef\x7d\x1d\x69\
-\xb4\xd0\x1c\x5c\x53\x71\x6d\xc5\x15\x0e\x67\x1d\x0a\x38\x55\x88\
-\x12\x64\xe2\x67\xb0\x6a\x91\xb1\x0a\xb5\x5b\xdf\x88\xd9\x3a\x81\
-\x31\x82\x05\x5a\x17\xe6\x68\x1f\x3c\x44\x3d\x2b\x90\x44\x20\x14\
-\x24\x16\x54\xbc\x1a\x7d\xa4\x72\x88\x58\xc2\xc8\x4b\xd2\x53\x80\
-\x86\x29\xf5\x4a\xa5\xbc\xc6\x21\x41\x40\x3b\xeb\x90\xd8\xe2\xe2\
-\x04\x5c\xee\x02\x97\xad\xbf\x79\x0c\x08\x40\x4a\x53\xd4\xb0\x4a\
-\x3c\xba\x95\x70\x70\x08\x44\xc8\xda\x6d\x9a\x67\x27\x89\x8e\xbd\
-\x48\x3e\x36\x81\x6d\xb6\x70\x7d\xfd\x04\x57\x6d\x24\xd8\xba\x15\
-\xdb\x57\x41\x8a\x16\x7a\x41\xb1\x40\xd1\xf6\x4a\x50\xa7\x9e\xf7\
-\xb7\x05\x66\xe8\x2a\xa2\x8f\xfd\x67\x54\x14\x89\xab\x04\xbd\x7d\
-\x48\xad\x8e\x5a\xcb\xca\xec\x0c\xd3\x5f\xdf\x05\x07\x8f\x20\xb9\
-\x85\xbe\xb2\x68\x4a\x14\x0d\xfd\x33\x9c\x3a\x54\x1d\x84\x01\x54\
-\x62\x4c\x5f\x42\xa0\x75\xa2\x89\x9b\xa8\x4e\x5c\x8b\x2d\x31\xc2\
-\x04\x01\xad\xf3\xd3\x04\xad\x66\xb9\x18\xa3\x2f\x07\xc1\xae\x39\
-\xac\x73\x2d\x9c\x53\x9c\x2a\x62\x95\x60\xeb\x16\xc2\xb1\x51\x24\
-\x4d\x51\xa0\x39\x7f\x81\xd9\xfd\xcf\x30\x94\x77\x60\xf2\x0c\x8d\
-\xd9\xf3\x04\x83\x83\x04\x49\x42\xb0\x61\x33\xb2\x61\x0b\x6e\x66\
-\x1e\x50\x82\x01\xc1\x34\x58\xe3\xf1\x1c\xe0\xac\x83\x30\x46\xae\
-\xbe\xc6\x27\x42\xea\xf1\x41\x8c\xa1\xbd\xba\xca\xf4\xb3\x7b\x39\
-\xf5\xe0\xff\xe5\x3a\xbd\x80\x29\x7c\x14\xc2\xe9\x1a\x9b\xec\x95\
-\xe8\xad\x36\x1c\xd9\x0c\x37\xdd\x8a\x1b\x6f\x52\x7f\xcd\xcf\x52\
-\xb9\xeb\xe7\x89\xb7\x4d\xe0\xb2\x0c\x55\xa5\x68\xb7\x29\x26\x27\
-\xa1\xd9\xf2\x18\x54\x0a\x7e\x65\x17\xd0\x8b\x20\x68\xdb\x8a\x69\
-\x3b\x50\x25\xda\xba\x0d\xd9\xb4\x19\x17\x45\x38\xa0\x7d\xe1\x02\
-\x17\xf6\x7c\x9b\xcd\x0d\xa1\x68\x2e\xb0\x78\xe2\x08\xc9\xe8\x18\
-\x95\x38\xc1\xf6\x5f\x45\x67\xf8\x7a\xcc\xdc\xb3\xa4\x83\xa1\x1f\
-\xac\x51\x48\x1c\x4e\x1c\xb6\x34\xdd\x35\xb0\x59\xf3\x39\x1f\x59\
-\x82\xb4\xc2\xf8\xeb\xdf\xc8\x55\xed\x0f\x23\x5f\xf8\x33\x68\xcf\
-\x52\xcc\x5a\xb2\x8e\x23\x37\x8e\xb8\x65\x4b\x25\xfa\xc5\x82\x9e\
-\x9f\x7b\x27\xbc\xe5\x17\x3c\x28\x18\x03\x81\x41\xad\xc3\x8a\xa0\
-\x45\xc1\x91\x5d\x4f\xd2\x38\x72\x9c\x81\xac\xc0\x18\xb3\x86\x77\
-\x97\xb8\xc0\xe5\x18\x20\xe2\xab\x3b\x89\x05\xd4\x10\x8f\x6d\x25\
-\xda\x30\x82\x44\x31\xce\x29\xc5\xfc\x2c\xee\xe0\x77\x08\x22\x47\
-\xfb\xdc\x0c\xed\x63\x47\xb0\xaf\xb9\x0d\xed\x1b\x20\xd8\xb8\x91\
-\xe8\xd5\x37\x52\x3c\xea\x17\x43\x24\x16\x6c\xc7\x2b\xd4\x59\xb7\
-\x06\x60\x9d\x95\x65\x26\x9f\xfd\x36\xea\x2c\x51\xa5\x4e\xff\xf8\
-\x38\xd5\xa1\x61\xc2\x38\x26\xe8\x1d\xa0\xf2\xc6\xb7\xd2\x39\x7d\
-\x92\xe2\xc4\x17\xa0\xa7\x8d\xa9\x0b\x52\xf7\x96\xa4\xeb\x73\x97\
-\x20\x44\xa2\xe8\xb2\xfc\x52\xb1\x79\xce\xd2\xd4\x24\xa7\xbf\xfa\
-\x65\xc2\xe9\xd3\x04\x5d\x8e\xed\x95\x30\xe0\x12\x96\x5c\x00\xe3\
-\x57\x70\x64\x68\x98\x68\xcb\x38\xa6\x56\x03\x11\x3a\x8d\x06\xf9\
-\xf2\x12\x7d\x7d\xbd\x44\x1b\x37\x12\x65\x06\x1a\x6d\x5c\x27\xc3\
-\xda\x02\x53\xeb\x21\xbe\x7a\x2b\xf9\x55\x43\xd8\xe3\x17\x10\xe3\
-\x28\x5a\xea\xa9\x2c\xab\xde\x77\x81\xe6\xcc\x0c\x2f\x7c\xf2\x0f\
-\x21\xcf\x50\x0c\xf5\x1b\xaf\x63\xfc\x17\xee\x66\xec\xb6\x37\x51\
-\x19\x18\x42\xeb\xfd\xd8\x57\xbd\x91\x9c\xfb\x89\xa2\x32\x22\x45\
-\x0a\x81\x4f\xd5\xbb\x02\xd8\xa2\x83\x2d\x0a\xbf\x8a\x64\x1d\x45\
-\x96\xd1\x59\x5d\xe1\xc2\xb1\x63\x9c\x7a\xf4\x61\xec\xd3\xbb\xa9\
-\xb5\x57\x09\x4c\x77\x61\x56\x5e\x9e\x09\x5e\xb4\x80\x75\x28\x59\
-\x28\xce\x7a\x1f\x0b\xb6\x6c\x81\x24\xc6\x15\x05\x36\xcf\x48\xc7\
-\xc6\xd9\xfc\xaf\x7f\x97\x38\x8a\x89\x73\x07\xa3\x63\x98\x4a\x15\
-\x9b\xe7\xbe\x2c\xee\x1f\xc6\x4e\xdc\x84\x9c\xd8\x45\x18\x19\x5f\
-\x4c\x19\x8f\x29\xea\xbc\x1b\x98\xbc\xcd\xe8\x85\x63\xc4\x79\x46\
-\xb6\x6c\x69\xce\x4f\xb3\xda\xd3\x4b\x63\x6c\x82\xb4\x7f\x08\x15\
-\x41\xae\x9e\xc0\xd6\x6b\x48\x63\x99\x22\xf7\x69\xb0\x2b\xdc\xda\
-\x78\x9d\x73\x9c\x3f\x74\x88\xb9\x43\x07\xc9\x5b\x2d\x6c\x9e\x93\
-\xaf\x2c\xd1\x3a\x7f\x8e\xd6\x91\xa3\xd8\x17\x0f\xb0\xa1\xb5\x42\
-\x54\xb8\x4b\x00\xee\xfb\x24\x42\xeb\xf2\x80\x02\xac\x1a\xe2\x91\
-\x51\xc2\xcd\xa3\x10\x46\xd8\xa2\xc0\x88\x50\xdd\xb2\x15\x19\xbb\
-\x1a\x05\x12\xca\x04\x27\x08\x70\x85\xf7\x4b\x57\xef\x87\x9b\x6e\
-\xc3\xee\x7c\x82\x30\x0d\xc1\x81\x0b\x40\x71\x6b\xb3\x17\x18\xd8\
-\x36\x54\xa7\x52\x74\xc8\x8d\x63\x31\xcb\xe9\xcc\xce\xe2\x96\x97\
-\x70\x28\x2a\x42\xd0\xdf\x4f\xde\xd7\x0f\x0b\xe7\xb0\x1d\x87\x6d\
-\x2b\x36\x2f\x05\x50\xc5\x15\x05\x8b\xcf\x7d\x97\xe9\x7f\xf8\x32\
-\xed\xb9\x79\x04\x07\x59\x0b\x5d\x5a\x22\x5e\x5c\x66\xd0\x2a\xf5\
-\x28\xf4\x39\x84\xbb\x58\x80\xfe\xc0\x3c\x40\x7d\x11\x08\x95\x0a\
-\xd1\x96\x71\xc2\x81\x41\xd4\x18\x70\x0e\x09\x43\x4c\x9c\xbc\xac\
-\x1c\x53\xeb\x50\x67\xb1\x45\x8e\xd4\xea\x44\x37\xdc\x4c\x3b\x48\
-\x08\xda\x4a\xd1\x76\xe5\xcc\x95\xc5\x8b\xfa\xff\xf3\x95\x8c\xb0\
-\xc8\x71\x6d\x4b\xb5\x56\x23\x19\x1e\x24\xa9\x56\xb1\x85\x2d\x81\
-\x52\x68\x4b\x40\x50\xae\xab\xab\x28\xaa\xae\x4c\xdd\xbd\x35\x85\
-\xf3\xb3\xf4\x9f\x3c\x44\x7e\x76\x06\x11\x43\x10\x08\x91\x18\xe2\
-\x20\xc0\x04\x1e\x17\xf2\x2b\xb4\xdd\x7c\xff\x3c\x40\x14\x8d\x04\
-\x19\x1e\x24\x9a\x98\x40\x92\xc4\x87\x94\x4e\x87\x4e\xa3\x41\xd1\
-\x69\xaf\xa5\xb5\xdd\x94\x2c\x8c\x63\xa2\x6a\x95\x30\x4e\x90\x28\
-\x26\xda\xb8\x89\xc6\xa6\xab\x29\xa6\x8f\x53\x34\x2c\xb6\xe3\x13\
-\x21\xd7\x15\x40\x05\x1b\x0d\x92\x4b\x86\xf4\x0b\xe6\xc6\xed\x04\
-\xaf\x7d\x1d\x66\xc3\x46\x5c\x91\xfb\x59\x6a\xb7\x69\xcd\x5c\xa0\
-\x12\x58\xbf\x86\x10\x2b\x1a\x5c\x54\xa2\xaa\xa3\x16\x1b\x92\x9e\
-\x14\xd7\xaa\x50\xb4\xf0\x8a\x2e\x93\x2d\x4f\x9f\xfb\xda\x06\xb9\
-\x72\xdf\xd1\x95\xf3\x00\xa7\x38\x0c\x3a\x38\x4c\xb0\x6d\x3b\x1a\
-\x04\x88\x31\xcc\x1d\x3f\xc6\x81\xaf\x7c\x89\x33\xdf\xde\x43\x10\
-\x45\x65\xd7\x12\x60\x2c\xc3\x37\xdc\xc4\x0d\xef\xf8\x45\x46\x6f\
-\x7d\x0d\x61\x10\xe2\x92\x94\xe2\xf5\xb7\x11\xee\x38\xe9\x31\x40\
-\xf4\x62\xd1\x55\x14\x04\x83\x43\xa4\xbf\xf5\x7b\x04\xce\x41\x5a\
-\xc7\x8c\x8f\x23\xc3\x1b\x21\xad\xe0\xac\xc5\xda\x82\xe5\xa9\xd3\
-\x98\x95\x65\x30\x0e\xeb\xc0\xe6\x65\x1e\xe0\x1c\xea\x9c\x27\x69\
-\x0a\xbf\xe4\x6e\x33\xc5\xa9\x40\xd0\x5d\x49\x2e\x6b\x1a\x51\xac\
-\x5b\x17\x71\xbb\xe4\xc9\xf7\x77\x01\xc5\x3a\x43\x30\xb8\x91\x74\
-\xfc\x6a\x08\x02\xd4\x18\x96\x8f\x1d\x41\x9f\xfe\x06\x63\x07\x5e\
-\x24\x4a\x22\x44\xfc\xb2\x95\x09\x1c\x79\x7b\x85\xec\xba\xeb\xc9\
-\xae\xbb\x1e\x93\xa6\x90\x26\xc4\x6f\xbc\x03\xbb\xf3\x7e\x9c\x71\
-\x68\x54\x9a\xb0\x75\xa8\x75\x50\xad\x11\xfe\xec\x5d\x17\xa3\x4f\
-\x18\xfa\x38\x0e\x20\x86\xce\xf2\x32\x87\xbe\xf4\x79\x36\x6b\x93\
-\xce\xbc\xc5\x15\x96\x3c\xb5\xd8\xce\xc5\x38\xae\xce\xe1\xda\x8e\
-\x7c\xd9\xe1\x56\x1d\x92\x1a\x24\x2e\x59\x6a\x05\x9b\xf9\x88\x63\
-\xf3\x2e\xea\xcb\x95\x5d\xe0\x65\xc5\x90\x31\xc8\x60\x1f\xf1\xab\
-\x6e\x24\xac\x54\x10\x63\xc8\x0b\x8b\x9e\x3a\x4d\xcf\xd9\x29\x7a\
-\x13\x25\xaa\x94\xa1\xa9\x80\x30\x14\x16\xcf\x4e\xc1\xd4\x24\xb6\
-\xd5\xf2\x1d\x40\x71\x42\xe5\xda\xeb\x59\xee\x1d\xc0\x2e\x2c\x63\
-\x33\x8b\x77\xeb\x92\x08\x15\x83\x24\xe9\x25\x21\x49\xfd\x09\x16\
-\xcf\x4e\x73\x7a\xc7\x43\x98\x3d\xbb\x30\x2b\x6d\xcf\x1d\x5a\x45\
-\x52\xf5\x33\x2c\xdd\xe7\x08\x9a\x80\x54\xbc\x7b\x38\xa7\x90\x7b\
-\xf3\x77\xae\x24\x72\xe4\xe5\xed\x38\x3f\x44\x31\x24\xb8\x34\xa5\
-\x55\xad\x32\x73\xf2\x24\x26\x8c\x68\x2c\xcc\xb3\x7a\xf0\x30\x49\
-\xab\x45\x1c\x19\x8c\x94\x99\x65\x01\xd2\x86\xb8\xdd\x24\x3f\x7a\
-\x8c\xb9\x17\x0f\xb0\xda\x69\x21\x4e\x61\x65\x85\x4e\xcf\x26\x8a\
-\xce\x24\xed\xc5\x06\x8b\xd3\x53\xe4\x27\x8e\xe1\xda\xed\x75\xf8\
-\xe1\xf3\xfa\xac\xb9\x42\x67\x71\x81\xa5\x93\x27\x59\xdc\xbf\x1f\
-\x79\xe1\x79\xc6\x16\xe6\x30\x56\x3d\x00\x2b\x58\x2d\x58\x99\x9f\
-\xc5\x1e\x3d\x8a\xeb\xb4\x21\x2f\xe8\x2c\x2c\x80\x2d\x20\x04\xd7\
-\x71\xd8\xac\xeb\x6e\xde\xfc\xdd\xba\xe8\xe6\x09\xce\x2b\x58\x00\
-\x5d\x98\x28\x19\x91\x70\x60\x40\x64\xe3\x26\x8e\x7c\xf9\x4b\xb4\
-\x1f\x7f\x1c\x4c\x80\x74\x9a\x0c\x9c\x99\x64\x28\x2f\x70\xa1\xff\
-\x91\xf2\x79\x88\x40\x12\x05\x2c\xbc\xf0\x1c\x53\x4b\x0b\x74\x7a\
-\x7b\x11\x20\xca\x2d\xa3\x33\xa7\x49\x43\xa1\x79\xfa\x04\x67\xff\
-\xf6\xaf\x29\x1e\xec\x87\x52\xfb\xdd\x2e\x10\xcd\x14\x8a\x0e\xd2\
-\x69\x22\xf3\xf3\xc4\x73\xb3\x0c\xda\x0e\x3d\x71\x0c\x45\xd7\x94\
-\x85\xf6\xec\x3c\xb3\x0f\xfd\x03\x2b\xcf\x7c\x1b\xb5\x16\x93\x2b\
-\x23\x33\x53\xf4\x2c\x37\x90\x42\x71\xca\x25\xd5\xa2\x07\x42\xa8\
-\xde\x7c\x23\xe1\xe0\x20\x65\x25\x24\xeb\xfa\xb5\xbc\x02\xf2\x3c\
-\x6f\x34\x9b\xcd\x22\xcb\x32\xc2\x38\x96\x74\xeb\x36\xbd\xea\x97\
-\x7e\x59\x2e\x7c\xee\xaf\x59\x7d\x7a\x0f\x0a\x54\x42\x88\xd2\x18\
-\x09\x23\x0a\x27\x18\xd5\x72\x61\x04\x34\x12\x82\x28\x20\xba\x30\
-\x43\x38\x79\x86\x5c\x9d\x27\x22\x82\x80\x70\xb8\x4a\x14\x85\x54\
-\x96\x2e\xd0\x3a\x3b\x8d\x5a\xbb\x56\x6e\xfb\x16\x19\xd0\xa6\x12\
-\x8a\xef\x30\xa9\x06\x21\xbd\x69\x48\xad\xc7\x87\xda\xa2\xed\x28\
-\xda\xe5\xd2\x57\xd6\x24\x98\x79\x1e\xf3\xbd\x67\xfc\xac\xb6\x15\
-\x4d\x13\x5c\x12\x43\xee\x85\x27\xf4\x5c\x86\x53\x87\x4a\x40\x65\
-\xfb\x35\x6c\xb8\xe7\x5e\xd2\x6d\x13\x8a\x73\x92\x65\x19\xcd\x66\
-\xb3\xc8\xf3\xbc\xd1\x55\x80\xce\xcc\xcc\xbc\x34\x39\x39\x79\x32\
-\x4d\xd3\x9e\x8d\x41\x10\x56\x47\x46\xd8\xf4\xde\xf7\x91\x0a\xcc\
-\xdd\x77\x1f\xed\x93\xc7\x11\x57\x78\x9a\x1c\xc5\xaa\x2f\x35\x05\
-\xf1\x09\x46\xee\x4d\xa1\x1e\x84\xf4\xf4\x44\x7e\xcd\x4f\x7d\x4d\
-\x61\xc4\x40\xa6\xf4\x07\x01\x83\x3d\x35\x24\xe8\x22\xb2\x10\x94\
-\x3d\x9e\x36\x2a\x01\xca\x74\x13\x16\xf5\xb3\x2e\x42\xd1\x2d\xd2\
-\x14\x12\x23\x6c\xae\xa4\x8c\x06\x09\xaa\x50\xc4\xd6\x27\x6d\x65\
-\x5f\xa1\xba\x6e\x06\xeb\xd0\x20\x22\xdd\x3a\xc1\xf0\xfb\x3e\x40\
-\xff\xaf\xbc\x07\xed\x1f\xa0\xd9\x6a\x32\x3b\x3b\x5b\x4c\x4e\x4e\
-\x9e\x9c\x99\x99\x79\x09\x9f\x9f\x91\x2c\x2d\x2d\x35\x92\x24\x89\
-\xa3\x28\xda\x98\x26\xc9\x50\xa5\x52\x91\xa0\x56\xd3\xca\xb6\x09\
-\x31\x81\xa1\x3d\x39\x45\xb1\xb4\x84\x2b\xac\xaf\x0f\x42\x5f\x57\
-\x28\xfe\x07\xd5\xe1\x5b\x5b\x04\x24\x12\x4c\x59\x9b\x14\x6d\x8f\
-\xc2\x9a\x79\xbe\x91\x08\x24\x36\x28\x50\xb4\x7c\x32\x53\xe4\x3e\
-\xbb\x33\x69\x49\x78\xa8\xc3\xe5\x8a\xcd\x1d\xd6\x2a\x2e\x73\xbe\
-\x49\x2a\x2a\xc1\xab\xbc\xde\x5a\x1f\x02\x25\x04\x82\x2e\xcd\xa5\
-\xd8\xc2\x41\x10\x92\x5e\xbd\x9d\x0d\xf7\xdc\x43\xff\x7b\xde\x83\
-\xeb\xeb\xd3\x4e\xa7\x23\x67\xcf\x9e\xd5\x43\x87\x0e\x1d\x79\xe6\
-\x99\x67\x1e\x7c\xec\xb1\xc7\x1e\x9b\x9d\x9d\x9d\x0f\x80\x60\x76\
-\x76\x36\x3f\x72\xe4\xc8\x5c\xa5\x52\x21\x8a\xa2\x91\x38\x8e\x07\
-\x7b\x7a\x7b\xc5\x54\x2a\x5a\x9d\xb8\x06\x11\x95\xec\xec\x34\xf9\
-\xc2\x22\x58\x77\x91\xdb\x2b\x57\x6a\x25\x10\x14\xf1\x40\xda\xf5\
-\x41\xeb\x97\xb3\x25\x64\xcd\x27\x11\x0f\x33\x2e\x2f\x41\x28\xea\
-\xc6\x64\x5d\x2b\xd5\xbb\x35\x88\x1a\x01\x51\x6c\xc1\x9a\x65\xd8\
-\xdc\xb7\xda\x69\xd9\x57\xe1\x4d\x1d\xd4\x09\xb6\xcc\x0f\x30\x01\
-\x95\x6d\x13\x0c\xbf\xff\xfd\x0c\xbe\xf7\xfd\xea\x7a\xfb\xc8\xad\
-\x95\xd3\xa7\x4e\x71\xe0\xc0\x81\x63\xdf\xfc\xe6\x37\x1f\xb8\xef\
-\xbe\xfb\x1e\x3a\x7d\xfa\xf4\x19\xa0\x15\x74\xd7\x67\x5a\xad\x56\
-\x7e\xf4\xe8\xd1\xf3\x49\x92\xb4\xe2\x38\xde\x14\xc7\xf1\x50\x5f\
-\x7f\x3f\x52\x49\xa9\xdd\x70\xa3\x18\x55\x3a\x93\xa7\xc9\xe6\x2e\
-\xac\x09\xae\x56\x3d\x6d\x66\xc0\x18\xf5\x1d\x23\xb9\x4f\x42\x5c\
-\xee\xdb\xe2\x24\x34\xe0\xb3\x68\x5c\xae\x14\x1d\x3f\x53\x12\x97\
-\x4d\x51\x52\x0a\x97\x95\x25\x73\xb9\x0e\x21\x21\x68\xd9\x03\x50\
-\x74\x1c\x45\xae\xb8\x52\x19\x84\x5d\xc1\xfd\x33\xbb\x33\xef\xd4\
-\x51\xd9\x3e\xc1\x86\x0f\x7c\x90\xc1\x0f\x7e\x08\x5b\xaf\x53\x58\
-\xcb\x89\xe3\xc7\xe5\xb9\xe7\x9e\x3b\xf2\x8d\x6f\x7c\xe3\x8b\x5f\
-\xf9\xca\x57\xbe\xb6\xb4\xb4\x34\x89\xe7\xac\x9b\xdd\x06\x09\x07\
-\xd8\x2c\xcb\xf2\x53\xa7\x4e\xcd\x85\x61\xb8\x9c\xa6\xe9\x58\x1c\
-\xc7\x43\xbd\xfd\xfd\x22\x49\xa2\x3d\x37\xbf\x1a\x51\xa4\x79\xf4\
-\x18\xf9\xfc\x05\x4c\x14\x96\x83\xd7\xb5\x19\x52\xe7\x85\x92\xd0\
-\xcf\x9e\x2b\xd4\x77\x7f\xba\x8b\x33\x29\x51\x49\x4b\x59\x20\xf4\
-\x94\x9b\xed\xf8\xf5\x3d\xc2\x12\xa8\x9d\xef\x1d\x76\x40\xd1\xb4\
-\xde\x52\x02\x59\x8b\xef\x5d\x58\x28\x0a\x8f\xf2\x2a\x8a\xed\x74\
-\x48\xc7\xaf\x66\xe4\xd7\x3f\xca\xf0\xaf\xff\xba\x16\x69\x4a\x6e\
-\xad\x74\x85\x7f\xea\xa9\xa7\xfe\xe6\x91\x47\x1e\xd9\xb9\xb2\xb2\
-\x32\x09\x2c\x02\x2d\xc0\x76\x2d\xc0\x89\x88\x05\x6c\xa7\xd3\xc9\
-\xce\x9f\x3f\xbf\x14\xc7\xf1\x6a\x9a\xa6\x9b\x2a\x69\x3a\x54\xad\
-\xd5\x24\xa8\x56\xa5\x76\xdd\x75\x1a\x55\x2a\xd2\x38\x74\x90\x6c\
-\x61\xbe\x64\x5f\x14\xe7\x04\x6b\x3d\xe5\x2c\xeb\x92\x0f\x97\x97\
-\xa0\x54\xb6\xbe\x11\x78\x41\xbd\x39\x7b\x8e\xc0\xe6\x1e\xb4\x24\
-\xf4\x1c\x84\x73\x4a\x51\x5c\xea\xeb\x5d\xc5\x38\xf5\xee\x51\xe4\
-\xba\x66\xf2\x8a\x62\xdb\x1d\xe2\xd1\x51\xc6\x7e\xf3\xb7\x19\xba\
-\xf7\x83\x6a\x6b\x35\x69\xb7\x5a\x32\x79\xe6\x0c\xcf\x3f\xff\xfc\
-\xe1\xa7\x9f\x7e\xfa\x0b\x3b\x76\xec\xd8\xbd\xb8\xb8\x78\x1a\x58\
-\x14\x91\x06\x90\xe3\xf9\x95\x8b\x15\x40\xa9\x04\xd7\x6a\xb5\x3a\
-\x33\x33\x33\x0b\x95\x4a\x25\x8b\xa2\x68\x43\x25\x4d\xfb\xd2\x38\
-\x0e\xe2\xa1\x21\xa9\x6c\xbd\x5a\xa3\x9e\x1e\x69\x1e\x3d\x4a\xbe\
-\xb0\xe0\x99\xf3\xb2\x5f\x68\xad\xde\xee\x22\xb2\x2b\xc1\xf2\x22\
-\xc3\xee\xf9\x46\xeb\xcf\xa9\x78\xcc\x70\x76\x5d\xfc\xb6\x25\x06\
-\x94\x4f\xb2\xa5\x85\x75\x85\x2f\xd7\x36\x7c\xc1\xe3\x7c\x5a\x9d\
-\x8e\x5f\xcd\x96\xdf\xfa\x1d\x06\xde\xfb\x5e\x65\x68\x48\x56\x17\
-\x17\x99\x9a\x9a\xca\x9f\x7f\xfe\xf9\x23\x7b\xf7\xee\xfd\xf2\xe3\
-\x8f\x3f\xfe\xc4\xdc\xdc\xdc\xa9\xae\xf0\xaa\x9a\x77\xd3\xb0\xe0\
-\xb2\x2c\x71\x4d\x09\x8d\x46\x23\x9b\x99\x99\xb9\x50\xa9\x54\x5c\
-\x1c\xc7\x43\x95\x4a\xa5\x2f\x0a\x82\x20\x1d\x1a\x96\xea\xf6\x6b\
-\x34\x88\x22\x69\x9d\x3e\x43\xbe\xbc\xe4\xeb\x70\xfc\xb4\xbb\x6e\
-\x58\x2a\x0f\xad\x37\x79\xe7\x74\x4d\x40\xa4\x34\x79\xf1\xdc\x83\
-\xb3\x9e\x2c\xed\x0a\x4f\xe8\xc3\xa2\x2d\x13\x1c\x57\x86\x38\xd5\
-\x12\x14\x71\x38\x0c\x95\xad\xdb\xd9\xfc\xd1\x7f\xc9\xd0\x3d\x1f\
-\x54\x06\x87\x64\xf9\xc2\x1c\x67\xcf\x9e\xcd\x0e\x1c\x38\x70\x74\
-\xdf\xbe\x7d\x0f\x3e\xf6\xd8\x63\x8f\x9e\x3f\x7f\xfe\xf4\x95\x84\
-\xbf\x92\x02\xba\x4a\x70\x7e\xb5\x79\xb5\x33\x37\x37\x37\x97\x24\
-\x89\x89\xe3\x78\x30\x4d\xd3\xbe\x24\x0c\x83\xa8\xb7\x57\x7a\x6e\
-\x7c\x95\xaa\x75\xd2\x99\x9e\x26\x5f\x5a\x42\x0b\xeb\x05\x2f\x53\
-\x4f\x5f\x72\x7a\x25\x38\x57\xe6\xfb\xee\x22\x25\xdd\x6d\x8b\x77\
-\x0e\x4f\x94\x96\xd7\xbb\x2e\x75\x8e\x77\x07\x6b\x75\xcd\x9a\xdc\
-\xc5\xe5\x6d\x34\x88\xa8\x6c\x9b\x60\xe4\xde\x0f\xb2\xf1\xc3\x1f\
-\x51\x5b\xab\xc9\xca\xc2\x02\x53\x53\x53\xd9\x0b\x2f\xbc\x70\x74\
-\xef\xde\xbd\x5f\xdb\xb1\x63\xc7\x23\xd3\xd3\xd3\xa7\x80\x05\x11\
-\x69\x5e\x2e\xfc\x2b\x29\xa0\x9b\xa5\x5b\xc0\x2e\x2f\x2f\xb7\x66\
-\x66\x66\xe6\xa2\x28\x92\x28\x8a\x86\xd2\x34\x1d\xa8\x56\xab\xc6\
-\x24\x09\xf5\x1b\x6f\x14\xa3\x8e\xf6\xe4\x14\xd9\xe2\x92\x6f\x50\
-\x30\xbe\x27\x00\x29\x73\x83\x12\xb8\x5c\xb9\xe6\xe8\x43\xa6\x9f\
-\x59\xd5\x75\x16\x51\xce\xb8\x67\x7a\xdc\xda\x71\x67\x3d\x76\x78\
-\x32\x44\xb1\xd6\xc7\xf9\xca\xc4\x04\x9b\xee\xb9\x97\x0d\xbf\xf6\
-\x6b\xd8\x34\xa5\xd5\x6c\xca\x99\x33\x67\x8a\x03\x07\x0e\x1c\xd9\
-\xb3\x67\xcf\x23\x3b\x76\xec\x78\x78\x6a\x6a\xea\x78\x09\x78\x0d\
-\xdf\xe5\xf0\xf2\xb6\x82\xef\xa7\x00\xd7\x7d\x7f\x61\x65\x65\xa5\
-\x31\x37\x37\x37\x17\x86\xa1\x0b\x82\x60\x43\x9a\xa6\xc3\x7d\x7d\
-\x7d\x62\x92\x44\xeb\xd7\x5e\x87\xc1\x48\x6b\x72\x92\xce\xc2\xfc\
-\x1a\xf3\xeb\x5c\x59\xfa\xae\x95\x18\xac\x2d\xbe\x6a\xd7\x15\xd6\
-\x7a\x11\xbc\xc7\x3b\x55\x6c\xd7\x55\xba\xee\xd4\xcd\xe9\x9d\x17\
-\x5e\x4d\x40\x75\xfb\xb5\x6c\xbe\xf7\x57\xd9\x70\xcf\x3d\xea\x6a\
-\x35\xf2\xa2\x90\x13\x27\x4e\xf0\xbd\xef\x7d\xef\xf0\xde\xbd\x7b\
-\xbf\xba\x73\xe7\xce\x47\xa6\xa7\xa7\x8f\x77\x43\x5d\x17\xf0\xae\
-\xf8\x1a\xda\x0f\x68\xa7\xef\x2a\xc1\xae\xac\xac\xb4\x2e\x5c\xb8\
-\x30\x63\x8c\xe9\xa8\xea\xc6\x30\x0c\x87\x87\x86\x86\x90\x34\xa5\
-\xb6\x7d\xbb\x04\x41\x40\x7b\x6a\x8a\xf6\xcc\x9c\x4f\x56\xba\xb4\
-\x9a\xf1\x4d\x53\x97\x08\xee\xca\xc6\xa6\xf2\xb5\x99\xae\x95\x58\
-\xab\x17\x5d\x48\x64\xcd\x0d\x9c\xfa\x64\xc9\x39\xa8\x5f\x77\x3d\
-\xa3\xbf\xfa\x21\x36\xbc\xef\x7d\x68\x6f\x2f\x85\xb5\x1c\x3c\x78\
-\x50\x9e\x7d\xf6\xd9\x43\xfb\xf6\xed\xbb\x7f\xf7\xee\xdd\x5f\x9b\
-\x9e\x9e\x3e\x09\x2c\x95\xc2\x67\xaf\x24\xfc\x0f\xa3\x80\xcb\x95\
-\xd0\x39\x7f\xfe\xfc\x9c\x31\x66\x25\x08\x82\xd1\x20\x08\x86\x07\
-\x07\x07\x25\xa8\xd5\xb4\xb6\x7d\xbb\x04\x61\x48\xeb\xc4\x71\x1a\
-\x8b\x8b\xd8\xf2\xfd\x87\xc2\x2a\x85\xf3\xbb\x75\x17\xbf\x17\xd6\
-\xef\xd6\x2a\x79\x79\x6e\xfd\xf9\xbc\x3c\x5f\xa8\x5f\x10\xb6\x40\
-\xef\xb6\xad\x6c\xf9\xc8\x47\xd9\xf0\x81\xf7\xa3\x7d\xfd\x9a\xe5\
-\xb9\xbc\xf8\xe2\x8b\xb2\x7f\xff\xfe\xc3\x7b\xf6\xec\xf9\xdb\x5d\
-\xbb\x76\x3d\xd1\x05\xbc\x32\xce\xe7\xdf\x4f\xf8\x1f\xf6\x8d\x11\
-\x05\x0a\x11\x69\xa9\x2a\x73\x73\x73\x6e\xf7\xee\xdd\x3b\xad\xb5\
-\xd6\x39\xf7\x11\xe0\xba\xeb\x6f\xb8\x41\xaa\x03\x03\x3a\xfc\x9e\
-\xf7\x30\x74\xfb\xed\xe2\x96\x97\xaf\xdc\x8f\x2f\xeb\x8f\xe8\x2b\
-\x74\xee\xeb\x25\x2f\x0d\x5d\xb2\x64\xd9\xdb\x8b\x6c\xde\xac\x32\
-\x30\x40\xab\xd9\x92\x43\x07\x0f\xf2\xec\xb3\xcf\x1e\xde\xb3\x67\
-\xcf\x67\xbf\xf1\x8d\x6f\xec\x9e\x9f\x9f\x3f\x0d\x2c\x97\x63\x2d\
-\x7e\x90\xf0\x3f\xca\x2b\x33\x4e\x55\x73\x11\xdf\x4c\x36\x3f\x3f\
-\x7f\x6a\xe7\xce\x9d\x4f\x1a\x63\x22\x11\xf9\xd5\x30\x0c\xaf\xd9\
-\xba\x6d\x9b\xe9\xdd\xb8\x91\x78\x7c\x5c\x83\x20\x90\x4b\x49\xd3\
-\xf5\x0b\x37\x3f\x68\x4c\xf2\xf2\x37\xad\x4a\xaa\xda\x5a\xab\x59\
-\xa7\x23\xcb\x8b\x8b\x9c\x3c\x71\xc2\xed\xdf\xbf\xff\xe8\xbe\x7d\
-\xfb\x3e\xbf\x73\xe7\xce\x27\x57\x57\x57\xcf\xfc\xa8\xc2\xff\xa8\
-\xaf\xce\xaa\xaa\xae\x59\xc2\xea\xea\xea\xe4\xe3\x8f\x3f\xfe\x68\
-\x10\x04\x49\x18\x86\xef\x06\xae\x19\xdb\xb2\x25\x4c\xd3\x6e\x91\
-\xaf\xfc\x54\x37\xaf\x50\x69\xb7\xdb\x4c\x9e\x39\x53\xec\xdf\xbf\
-\xff\xe8\x33\xcf\x3c\xf3\x95\xc7\x1f\x7f\xfc\xd1\x46\xa3\x31\xf5\
-\xe3\x08\xff\xe3\xbc\x3b\xac\xa5\x25\xa0\xaa\xd2\x68\x34\xd8\xb5\
-\x6b\xd7\x83\xc6\x18\x03\xbc\x73\x69\x69\x69\x6b\x4f\x4f\x4f\xa8\
-\xfa\xd3\x96\x7e\x6d\xcd\x52\x56\x56\x56\x8a\xe3\xc7\x8f\x9f\xdc\
-\xb7\x6f\xdf\x23\xbb\x76\xed\x7a\xf0\x32\xe1\xf3\x7f\x92\x77\x87\
-\xcb\x2d\x06\x52\xa0\x77\x6c\x6c\x6c\xeb\xeb\x5e\xf7\xba\x3b\xfb\
-\xfb\xfb\x5f\x15\x04\x41\xdd\x39\xa7\x3f\xe1\xb3\xaf\xa8\x7c\x63\
-\x8c\x58\x6b\x57\x17\x17\x17\x5f\xfc\xce\x77\xbe\xb3\x7b\x72\x72\
-\xf2\x24\xb0\x8c\x6f\xc7\xca\xfe\xc9\x5e\x9e\x5e\x77\x6f\x58\xf6\
-\x81\xd5\x81\x1e\xa0\x56\x2a\x26\x58\xf7\x2e\xe4\x4f\x45\xf8\x75\
-\xc9\x59\x56\x26\x36\x2b\xc0\x6a\x89\xf6\x3f\x92\xd9\xaf\xdf\xfe\
-\x1f\xba\xc9\xa0\xf1\xd3\x43\x85\x2f\x00\x00\x00\x00\x49\x45\x4e\
-\x44\xae\x42\x60\x82\
-\x00\x00\x20\xb1\
-\x89\
-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
-\x00\x00\xe7\x00\x00\x00\x82\x08\x06\x00\x00\x00\xbd\xcd\xdf\xc9\
-\x00\x00\x00\x01\x73\x52\x47\x42\x00\xae\xce\x1c\xe9\x00\x00\x00\
-\x06\x62\x4b\x47\x44\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\
-\x00\x00\x09\x70\x48\x59\x73\x00\x00\xdd\x75\x00\x00\xdd\x75\x01\
-\xac\x87\xc3\x83\x00\x00\x00\x07\x74\x49\x4d\x45\x07\xdc\x02\x18\
-\x12\x22\x32\x36\x82\x3a\x5a\x00\x00\x20\x00\x49\x44\x41\x54\x78\
-\xda\xed\x5d\x69\x73\xdb\xd8\xb1\x3d\x20\x01\x02\x04\xc1\x55\x8b\
-\x25\x79\xec\xf1\x54\x3e\xa4\xf2\xff\x7f\x4a\xaa\x52\xa9\x54\xc5\
-\x9b\x6c\xd9\x96\x44\x71\x01\xb1\x72\x7b\x1f\x26\xe7\xa6\x79\x05\
-\x90\xd4\x1b\xcf\x8c\x63\x77\x57\xb9\xb4\x70\x15\x8d\x73\xbb\xfb\
-\xf4\xe9\x6e\x67\xbb\xdd\x6e\xa1\xa6\xa6\xf6\xcd\x59\x43\x3f\x02\
-\x35\x35\x05\xa7\x9a\x9a\x9a\x82\x53\x4d\x4d\xc1\xa9\xa6\xa6\xa6\
-\xe0\x54\x53\x53\x70\xaa\xa9\xa9\x29\x38\xd5\xd4\xd4\x14\x9c\x6a\
-\x6a\x0a\x4e\x35\x35\x35\x05\xa7\x9a\x9a\x82\x53\x4d\x4d\x4d\xc1\
-\xa9\xa6\xa6\xa6\xe0\x54\x53\x53\x70\xaa\xa9\xa9\x29\x38\xd5\xd4\
-\x14\x9c\x6a\x6a\x6a\x0a\x4e\x35\xb5\x1f\xd1\x5c\xfd\x08\xbe\x5d\
-\xdb\x6e\xb7\xd8\x6e\xb7\x58\xaf\xd7\x58\xaf\xd7\x28\xcb\x12\x49\
-\x92\x60\xbb\xdd\x62\x38\x1c\xa2\xdd\x6e\x1f\xfd\x5c\x59\x96\xe1\
-\xe1\xe1\x01\xeb\xf5\x1a\xbe\xef\xc3\xf3\x3c\xb4\x5a\x2d\xb4\x5a\
-\x2d\x34\x9b\x4d\x38\x8e\x03\xc7\x71\x00\xc0\x7c\x55\x53\x70\xaa\
-\x09\x30\x6e\x36\x1b\xac\xd7\x6b\x14\x45\x81\x2c\xcb\xcc\xbf\xa2\
-\x28\xcc\x6d\x41\x10\xa0\xd3\xe9\x3c\x09\x9c\xab\xd5\x0a\xf3\xf9\
-\x1c\x59\x96\xa1\xd1\x68\xc0\x71\x1c\x34\x1a\x0d\xb4\x5a\x2d\xf8\
-\xbe\x8f\x20\x08\xd0\x6e\xb7\xd1\x6a\xb5\xe0\x79\x9e\x01\xac\x9a\
-\x82\xf3\x87\x07\xe5\x7a\xbd\x46\x96\x65\x58\x2c\x16\x48\xd3\x14\
-\x79\x9e\x63\xb5\x5a\xc1\x71\x1c\xb8\xae\x8b\x76\xbb\x8d\x46\xe3\
-\xd7\x2c\xa4\xd9\x6c\x9a\xef\x8f\xce\x5f\x1a\x0d\xb4\xdb\x6d\xb8\
-\xae\x8b\xcd\x66\x63\x0e\x82\x34\x4d\x71\x7f\x7f\x8f\xe5\x72\x89\
-\x66\xb3\x89\x30\x0c\xd1\xeb\xf5\x10\x45\x11\xa2\x28\x42\x18\x86\
-\x68\x36\x9b\xfa\x9f\xf4\x27\x98\xa3\x03\xbe\xfe\x5c\x2b\x8a\x02\
-\x0f\x0f\x0f\xb8\xbf\xbf\x47\x9e\xe7\x70\x1c\x07\xbe\xef\x23\x0c\
-\x43\xb4\x5a\x2d\x03\xc2\xcd\x66\x83\xd5\x6a\x85\xd5\x6a\x85\xcd\
-\x66\x83\xf3\xf3\x73\x0c\x87\xc3\xa3\x5f\x67\x3a\x9d\xe2\xf3\xe7\
-\xcf\xd8\x6e\xb7\x68\x34\x1a\x3b\x00\xdf\x6e\xb7\x58\x2e\x97\x28\
-\xcb\x12\x45\x51\x18\x2f\xcd\x43\x61\x34\x1a\xe1\xf4\xf4\x14\x61\
-\x18\xaa\x37\x55\xcf\xf9\xfd\x5b\x9e\xe7\xb8\xb9\xb9\xc1\x97\x2f\
-\x5f\xd0\x68\x34\x10\x86\x21\x4e\x4f\x4f\xd1\xe9\x74\xcc\xed\x59\
-\x96\xa1\x2c\x4b\xac\xd7\x6b\xe3\xbd\xca\xb2\xc4\x6a\xb5\x42\xbf\
-\xdf\x7f\xf2\x21\x10\xc7\x31\x5c\xd7\x85\xe3\x38\x28\x8a\x02\x65\
-\x59\x62\xbb\xdd\xc2\x71\x1c\x13\xc6\x36\x1a\x0d\x74\xbb\x5d\x00\
-\xc0\x72\xb9\xc4\x6a\xb5\xc2\x87\x0f\x1f\xf0\xf1\xe3\x47\x8c\x46\
-\x23\x5c\x5d\x5d\x21\x8a\xa2\x27\x7b\x6e\x35\x05\xe7\x37\x1f\xbe\
-\x16\x45\x81\xbb\xbb\x3b\x7c\xfe\xfc\x19\x8e\xe3\x60\x34\x1a\xed\
-\xe4\x8f\x79\x9e\x63\x36\x9b\x61\xb9\x5c\x62\xb3\xd9\x60\xb3\xd9\
-\x98\xc7\x93\x14\xa2\xf7\x7c\x8a\xf1\xb9\x56\xab\x15\xca\xb2\xc4\
-\x72\xb9\x7c\x14\x56\x3b\x8e\x83\xed\x76\x8b\x3c\xcf\xe1\x79\x9e\
-\x01\x6d\x10\x04\x28\x8a\x02\x5f\xbe\x7c\xc1\x74\x3a\xc5\xd9\xd9\
-\x19\x9e\x3d\x7b\x86\x30\x0c\x15\xa4\x0a\xce\xef\x23\x7c\x9d\x4c\
-\x26\x18\x8f\xc7\xc8\xf3\x1c\x41\x10\xc0\x75\x5d\xc3\x98\x12\x34\
-\x79\x9e\xef\x00\x8f\x80\x59\x2e\x97\x58\xaf\xd7\x60\x16\xf2\xd4\
-\x6c\x64\xbb\xdd\xa2\x2c\x4b\x38\x8e\x83\xf5\x7a\x8d\x46\xa3\x61\
-\xd8\x60\x19\xde\x92\xb5\x2d\xcb\x12\x00\x0c\x39\xd4\xe9\x74\xb0\
-\x5c\x2e\xb1\x58\x2c\xf0\xf6\xed\x5b\xcc\xe7\x73\x3c\x7b\xf6\x0c\
-\xc3\xe1\x10\xbe\xef\x2b\x48\x15\x9c\xff\x7b\xb6\xd9\x6c\x30\x9b\
-\xcd\x70\x77\x77\x87\x24\x49\xe0\x38\x8e\x21\x66\x58\x22\x99\xcf\
-\xe7\x28\x8a\xc2\x00\x6e\xbd\x5e\x1b\xd2\x46\x32\xb8\x04\x4f\x51\
-\x14\xc8\xf3\xfc\x49\xef\x63\xb9\x5c\x62\xb9\x5c\x1a\x8f\x28\x89\
-\xa2\x2a\xb0\x37\x1a\x0d\xe3\x69\xd3\x34\x35\xac\xee\x70\x38\x44\
-\x9e\xe7\x78\x78\x78\xc0\x74\x3a\xc5\xf9\xf9\x39\x2e\x2f\x2f\xd1\
-\xef\xf7\x95\x38\x52\x70\xfe\xef\x84\xb0\xeb\xf5\x1a\xe3\xf1\x18\
-\x9f\x3f\x7f\x46\x59\x96\x08\xc3\x10\x9e\xe7\x19\x00\x7a\x9e\x87\
-\xcd\x66\x63\x88\x9f\x2c\xcb\x4c\x38\x4b\x50\x12\xa0\x12\x64\x49\
-\x92\x3c\x19\x9c\x69\x9a\x22\x4d\x53\xf4\xfb\x7d\xe3\x8d\xe5\x57\
-\x59\xe7\xb4\xbd\xf6\x7a\xbd\x46\x9e\xe7\xa6\x8c\xe3\xfb\x3e\x5c\
-\xd7\x45\x51\x14\xf8\xf4\xe9\x13\xee\xef\xef\xf1\xea\xd5\x2b\x3c\
-\x7f\xfe\x5c\x4b\x30\x0a\xce\x6f\xdf\x96\xcb\x25\x6e\x6f\x6f\x71\
-\x7d\x7d\x8d\x56\xab\x85\xd1\x68\x64\x2e\xf4\x66\xb3\x89\x66\xb3\
-\x69\xbc\x91\xeb\xba\x3b\x80\x23\x28\x09\x72\x29\x46\xe0\x7d\x9a\
-\xcd\x26\x36\x9b\xcd\x51\xe1\xe4\x76\xbb\x35\xc2\x03\x86\xd4\xbe\
-\xef\x63\xbb\xdd\x62\xb5\x5a\x3d\x7a\x2d\x09\x56\x19\xfa\x36\x1a\
-\x8d\x1d\x0f\x1e\x04\x01\x5a\xad\x16\x92\x24\xc1\x3f\xfe\xf1\x0f\
-\x4c\xa7\x53\xfc\xf5\xaf\x7f\x85\xef\xfb\x0a\x50\x05\xe7\xb7\xe9\
-\x31\xc9\xc4\xde\xde\xde\x22\x8a\x22\x74\x3a\x1d\x73\x51\xb7\xdb\
-\xed\x9d\x9a\xa5\xcc\x29\xcb\xb2\xc4\x66\xb3\xd9\x01\x85\xe3\x38\
-\x06\xac\x0c\x77\xa3\x28\x32\xe0\x3a\xc6\x48\xf6\xf8\xbe\x8f\x66\
-\xb3\x69\xc2\x6a\xe6\x96\x0c\xa9\x99\x87\x12\x58\xcc\x7d\x9b\xcd\
-\xa6\x01\x37\x19\x5c\xcf\xf3\xcc\x7d\xa3\x28\x82\xeb\xba\xb8\xb9\
-\xb9\x41\x1c\xc7\xf8\xdb\xdf\xfe\x86\xd1\x68\xa4\x00\xfd\x8d\xa6\
-\x59\xfc\x57\xb6\x34\x4d\xf1\xf6\xed\x5b\xdc\xdf\xdf\x63\x30\x18\
-\x20\x0c\x43\x03\xb8\x76\xbb\x6d\x88\x20\xe9\xf1\xd6\xeb\xb5\x21\
-\x7c\x28\xaf\x0b\x82\xc0\x28\x79\x9a\xcd\x26\xd6\xeb\x35\x92\x24\
-\x41\xb3\xd9\x84\xeb\xba\xc8\xf3\x7c\x87\x71\xdd\x67\xab\xd5\x0a\
-\x45\x51\x20\x08\x02\xf4\xfb\x7d\x03\xac\xed\x76\x6b\x08\x1f\x82\
-\x8e\xaf\x49\xb0\x4a\x2f\xca\xfa\x28\x81\x4d\xf0\x6d\xb7\x5b\x04\
-\x41\x80\xd1\x68\x84\x3c\xcf\xf1\xf7\xbf\xff\x1d\x37\x37\x37\xd0\
-\x12\xba\x82\xf3\x9b\xb1\xd9\x6c\x86\x7f\xff\xfb\xdf\x48\xd3\x14\
-\xa3\xd1\xc8\xb0\xb0\xeb\xf5\xda\x80\x90\x3f\x4b\xaf\xe8\x38\x0e\
-\xba\xdd\x2e\x3a\x9d\x8e\xd1\xbc\xd2\xbb\xd1\x83\x6d\x36\x1b\x03\
-\x2a\x2a\x88\xf8\xbc\xc7\x90\x52\x7c\x1d\x3b\x9f\x24\x40\xb7\xdb\
-\x2d\xe2\x38\x36\x61\xb3\xf4\xa2\x9b\xcd\xc6\x94\x70\xaa\x08\x24\
-\x3e\x97\xeb\xba\xe8\x76\xbb\xd8\x6c\x36\xf8\xe7\x3f\xff\x89\x37\
-\x6f\xde\x3c\xb9\xe4\xa3\xa6\xe0\xfc\xea\x36\x99\x4c\xf0\xee\xdd\
-\x3b\x6c\xb7\x5b\x0c\x06\x03\x34\x1a\x0d\x93\xcf\xb1\x8c\x41\x56\
-\x56\x7a\x27\xfe\x6b\xb5\x5a\x88\xa2\x68\x87\x24\xf2\x7d\x7f\x87\
-\xa9\x6d\xb5\x5a\x46\x7e\x47\x4f\x7b\x6c\xa8\xcd\xd7\x5f\x2c\x16\
-\x06\x7c\xf4\x7e\xae\xeb\xa2\xd3\xe9\x18\x8f\xcc\x30\x98\xef\x91\
-\x00\x97\x64\x95\xfc\xdb\xf8\x7c\x00\xe0\xba\x2e\xa2\x28\x82\xe3\
-\x38\x78\xfd\xfa\x35\xde\xbc\x79\x73\xf4\xfb\x54\xd3\x9c\xf3\xab\
-\xdb\x74\x3a\xc5\xbb\x77\xef\xb0\x5e\xaf\xd1\xeb\xf5\x4c\x7e\x28\
-\x3d\x0c\xc9\x1b\x7a\x24\xde\x26\x43\x43\xc7\x71\x8c\x17\x93\x1e\
-\x16\x80\xf1\xa8\x0c\x89\xa9\xf0\x39\x96\x9c\x4a\xd3\x14\x49\x92\
-\x18\x35\x92\x04\x1e\x43\x58\x2a\x83\xe4\x7b\x94\x9e\x52\x8a\x1f\
-\xf8\xf7\xf1\x3d\xf3\x7d\x33\x47\x8d\xa2\x08\x71\x1c\xe3\xfd\xfb\
-\xf7\x68\xb5\x5a\xb8\xba\xba\xd2\x52\x8b\x82\xf3\x8f\xb5\xf9\x7c\
-\x8e\xb7\x6f\xdf\x62\xb5\x5a\x61\x30\x18\xec\x5c\xb8\xf4\x7a\xfc\
-\xde\xd6\xb3\xda\xde\xd3\x75\x5d\x84\x61\x88\x38\x8e\xf1\xf0\xf0\
-\x60\x84\xef\x00\x76\x44\x01\xfd\x7e\x7f\x87\xd1\x3d\x26\xe7\xa4\
-\xf0\x20\xcf\x73\x53\x52\x91\x22\x78\xd7\x75\x4d\x79\xa4\xea\x60\
-\xa1\xa7\xa4\xe6\xd6\x75\x5d\xf3\x3b\x7a\x5f\x59\x9a\xa1\x70\x61\
-\xb1\x58\xe0\xf5\xeb\xd7\x68\x34\x1a\xb8\xbc\xbc\x54\xb1\x82\x82\
-\xf3\x8f\xb1\x2c\xcb\x70\x73\x73\x83\xb2\x2c\xd1\xeb\xf5\xd0\x6c\
-\x36\xb1\x5a\xad\x0c\x40\x79\xe1\xcb\x3e\x49\xd6\x01\x25\x28\x65\
-\xf8\xe9\xba\x2e\x86\xc3\x21\xc2\x30\x44\x9a\xa6\x86\x4d\x65\x98\
-\x9c\x24\x09\xba\xdd\x2e\x7a\xbd\x1e\x82\x20\x38\xea\x7d\xb2\xec\
-\x61\x83\xba\xd5\x6a\xed\x90\x3d\x0c\x5d\xed\x5c\x95\x2d\x6c\x14\
-\x3f\xac\x56\x2b\x43\x0c\x51\xd9\xd4\x6c\x36\x2b\x05\x0e\x61\x18\
-\x22\x49\x12\xbc\x7e\xfd\x1a\x9e\xe7\xe1\xec\xec\x4c\x59\x5c\x05\
-\xe7\xef\x6b\xab\xd5\x0a\xb7\xb7\xb7\x98\x4c\x26\xe8\x76\xbb\xf0\
-\x7d\xdf\x84\x7d\x36\x30\xf9\xbd\xef\xfb\x06\x10\xb6\x0c\x4f\xaa\
-\x81\xb6\xdb\xad\x09\x0d\x09\x8c\xb2\x2c\x77\x44\x0a\x4f\xc9\x39\
-\xe9\xe9\xf8\x18\xcf\xf3\x0c\xfb\xcb\xf7\xca\x3a\x2b\xe5\x84\x41\
-\x10\x60\xb3\xd9\x20\x8e\x63\x03\x54\x09\x3a\x5b\xf3\x9b\x65\x99\
-\xa9\xdf\xf2\x36\x82\x3e\x08\x02\xc3\x62\xb7\xdb\x6d\x13\x3e\xab\
-\x29\x38\xbf\xba\x6d\x36\x1b\x3c\x3c\x3c\xe0\xe6\xe6\xc6\x5c\xc8\
-\x04\x9c\x24\x4a\x08\xcc\xf5\x7a\x6d\x42\x56\x19\x4a\xd6\x85\xa5\
-\x92\x21\x65\xfb\x56\x92\x24\x28\xcb\x12\xdd\x6e\x17\x41\x10\xa0\
-\x2c\xcb\xa3\x73\xce\x34\x4d\xf1\xf0\xf0\x60\x42\x56\xe6\x87\x0c\
-\x31\xd3\x34\xc5\x62\xb1\x30\x87\x03\x35\xb4\xfc\x7b\x64\xa8\xee\
-\x79\x1e\x5c\xd7\x7d\x54\x6a\xa1\x40\x5e\x8a\xf5\x29\xf4\xa7\xe7\
-\x9e\x4c\x26\xb8\xbe\xbe\xc6\x5f\xfe\xf2\x17\xf8\xbe\xaf\x17\x92\
-\x82\xf3\xeb\x5b\x9a\xa6\x78\xff\xfe\x3d\x1c\xc7\x31\xcd\xc8\xac\
-\x13\x4a\xd0\x49\x2f\x4a\x50\xc9\xdb\xa5\x07\x95\x79\xa8\xe3\x38\
-\x58\xad\x56\x46\x93\x2b\x0f\x85\xb2\x2c\x4d\x17\xcb\xb1\xe1\x21\
-\x4b\x38\x9e\xe7\xa1\xdb\xed\x1a\xd0\x50\x1c\x21\xdb\xd2\x78\x5f\
-\x19\x66\x4b\xf1\x01\xa3\x03\xfe\x6d\x9c\xa6\xe0\x79\x1e\x92\x24\
-\x41\x14\x45\xa6\x8b\x25\x4d\x53\x2c\x97\x4b\x14\x45\x81\x5e\xaf\
-\x07\xcf\xf3\xf0\xf1\xe3\x47\x74\xbb\x5d\x3c\x7f\xfe\x5c\xf3\xcf\
-\x03\xa6\x9f\xce\x13\x6d\xb9\x5c\xe2\xe6\xe6\xc6\x5c\xdc\x64\x36\
-\x29\x20\x90\x0a\x1f\xfe\x4c\xaf\xc9\x90\xcf\x0e\x69\xe5\xc8\x90\
-\x20\x08\x90\xe7\x39\xfe\xf5\xaf\x7f\xe1\xcd\x9b\x37\x26\xcf\x5b\
-\x2e\x97\x26\xd7\x2c\x8a\x02\x37\x37\x37\xa6\x2c\x72\x4c\x08\x4e\
-\xf5\x11\x5f\x87\x5e\xd2\x66\x67\x65\x7e\x2c\xa3\x02\x19\xc6\xb2\
-\x09\x5b\x32\xcb\x3c\x38\x66\xb3\x19\x92\x24\x81\xeb\xba\xe8\xf5\
-\x7a\xf0\x7d\xdf\xc8\x0e\x59\xf7\x7d\xf3\xe6\x8d\xf1\xcc\x6a\x0a\
-\xce\xaf\x62\xdb\xed\x16\xf3\xf9\x1c\xb7\xb7\xb7\x46\x57\x4a\x00\
-\x4a\xcf\x47\xa0\xd2\x4b\xb2\x86\x28\x73\x44\x82\x98\x0a\x1d\xea\
-\x56\x39\x19\xa1\x2c\x4b\xa3\xbb\x75\x5d\x17\x41\x10\xa0\xdb\xed\
-\x9a\xfe\x4f\x32\xa8\x4f\xfa\xcf\xfe\x4f\x29\x87\xa4\x54\x51\x14\
-\x26\x0f\x95\xa2\x03\x82\xaf\xdf\xef\x1b\x41\xbe\x24\xb6\x78\xff\
-\x20\x08\x8c\x92\x49\x7e\x06\x04\x6a\x59\x96\x08\x82\xc0\x4c\x6c\
-\xa0\x90\x62\x36\x9b\xe1\xcd\x9b\x37\x47\x2b\x9c\x14\x9c\x6a\x07\
-\xad\x2c\x4b\x5c\x5f\x5f\x9b\x0b\x53\x12\x38\x04\x9b\x14\x0d\x10\
-\x8c\x24\x81\x24\xf1\xc3\x9a\x25\xa5\x7b\x0c\x1b\x99\xbf\x11\xb0\
-\x0c\x73\x49\x26\x91\x01\x3d\x3b\x3b\x43\x18\x86\x47\xbd\xef\x30\
-\x0c\x4d\x37\x8a\x04\x27\x23\x01\xa9\xbb\xa5\xd7\x24\x69\x94\x65\
-\x99\x51\xfe\x30\x4f\x94\xe1\x38\xb5\xc2\x54\x0f\xc9\x88\x81\xe1\
-\x32\xfb\x56\xe5\x81\xf4\xe9\xd3\x27\x8c\xc7\x63\xf5\x9e\x0a\xce\
-\xaf\xe3\x35\xd9\xc3\x48\x90\xf0\x82\x24\x31\x23\x81\x29\x45\xe3\
-\xb2\xb6\xc9\x6e\x14\xd9\x40\x2d\x43\xc6\xe5\x72\x89\xd3\xd3\x53\
-\x5c\x5d\x5d\x99\x03\x40\x76\x8e\xf0\x62\xef\xf5\x7a\xe6\x79\x0e\
-\x19\x5f\x93\xe1\xad\xec\x32\xe1\x24\x3f\xe6\x9b\xb4\x3c\xcf\x91\
-\xe7\x39\xc2\x30\x34\x79\x2a\x95\x43\x92\x8d\x8d\xe3\x78\x27\x64\
-\x96\xde\x33\x49\x12\xdc\xdd\xdd\x21\x8e\xe3\x47\xe4\xd0\x76\xbb\
-\xc5\xfb\xf7\xef\x51\x14\x85\x5e\x5c\x0a\xce\xdf\x66\x45\x51\xe0\
-\xc3\x87\x0f\xf0\x3c\x6f\x87\x95\x94\xa1\xac\xac\x5d\x52\x82\x77\
-\x76\x76\x66\x66\xee\x10\xa8\x12\xc4\x36\x19\x44\x90\x0f\x87\x43\
-\x5c\x5d\x5d\x21\x0c\x43\x23\x84\x97\x9e\x4d\xd6\x4b\x0f\x31\xcb\
-\xf4\x9e\xbe\xef\x9b\xfc\x95\xa0\xa7\x28\x9e\xb5\x4b\xe9\xa9\xe9\
-\x2d\xa9\x30\x92\xa3\x4c\x38\xb2\x93\x7f\x0b\xa3\x03\xcf\xf3\xcc\
-\x81\x25\x6b\xa1\x2c\xd5\x70\x34\x27\xd9\xdb\xbb\xbb\x3b\xf5\x9e\
-\x0a\xce\xdf\xe6\x35\xef\xef\xef\x91\xa6\xa9\x01\x89\x04\x98\x0c\
-\xe5\x64\x3e\x49\x31\xbb\x94\xad\xc9\x7c\xd4\x26\x85\x64\xe8\xcb\
-\x51\x96\x14\xc1\x77\xbb\x5d\x23\x84\x97\xcf\x75\x48\x58\x4e\x10\
-\xb2\x55\xcc\x71\x1c\x23\xe5\xe3\x57\x29\xa2\x67\xbe\xc9\x99\x46\
-\x59\x96\x21\x4d\xd3\x1d\x26\x99\xe1\xb6\x7c\x6d\x86\xb1\xcc\x85\
-\x93\x24\xc1\x6c\x36\x33\xef\x81\x07\x42\x9e\xe7\x88\xe3\xd8\x8c\
-\x36\xb9\xbe\xbe\x3e\xba\x24\xf4\xa3\x99\x96\x52\x8e\xb0\x3c\xcf\
-\xf1\xf9\xf3\x67\xa3\x6f\xb5\x07\x6c\xd1\x8b\x4a\x52\x64\x34\x1a\
-\x61\x34\x1a\x19\x21\x3b\xc1\x54\xe5\x25\xe8\x09\x49\xda\xc8\xd0\
-\xb8\x6e\x1a\x7b\x95\xf7\xad\xf3\x9c\x64\x8c\x7b\xbd\x1e\x80\x5f\
-\xbb\x67\x38\x86\xd3\xee\x54\xf1\x7d\xdf\x10\x4e\x9c\x9e\x50\x35\
-\x35\x41\xb2\xbc\x14\x34\x78\x9e\x87\x30\x0c\x0d\x08\xe5\xdf\x21\
-\x3b\x70\x28\xa8\x68\xb7\xdb\x88\xe3\x18\x37\x37\x37\xf8\xe5\x97\
-\x5f\xf4\x42\x53\x70\x3e\xdd\xc6\xe3\x31\xca\xb2\x34\xa1\x9b\x0c\
-\x69\x19\xea\x11\x94\x65\x59\x62\x30\x18\x98\x96\x31\x59\x13\xb4\
-\xc3\x58\xe6\x83\xf2\xf1\xbc\x2f\x19\xd1\xe1\x70\x68\x84\x03\xd2\
-\xc3\xca\x36\x2e\xde\x56\x65\x92\x70\xa2\xba\x88\xb9\x21\x1f\x27\
-\x5b\xca\x08\x2c\xca\xf5\xaa\x6a\xa9\xf6\xc4\x04\x7b\x6d\x04\x19\
-\x68\x5b\x90\x21\x5b\xcb\xf8\xfb\x66\xb3\x89\xf1\x78\x6c\xa6\xf9\
-\xa9\x29\x38\x8f\xb6\xe5\x72\x89\xe9\x74\x6a\x88\x18\x3b\x94\x24\
-\x88\x80\x5f\xeb\x89\x6c\xbf\xe2\xa4\x02\x09\x4a\x29\xe5\x93\xe1\
-\x21\x2f\xd4\xd5\x6a\x65\xc2\x3f\xe6\xa6\x1c\xf9\xc1\xe7\x61\x3e\
-\x37\x9f\xcf\xe1\xfb\x3e\x46\xa3\xd1\xde\xb5\x0c\x14\x33\x8c\xc7\
-\x63\xa3\xee\x61\x1e\xc9\x32\x8d\x24\x7a\x28\x1e\xa8\x9a\x29\x24\
-\x73\x63\x7b\x5a\x03\x6b\xa2\x2c\x2f\xc9\x83\x8b\x1e\x96\x07\x03\
-\xef\xc7\xcf\x22\x4d\x53\xcc\x66\x33\x05\xa7\x82\xf3\x69\x96\x24\
-\x89\x21\x31\xe8\x65\x24\x73\xca\x8b\x8f\x17\x64\xa7\xd3\x31\xd3\
-\x0f\xe4\x7d\x6d\x3d\x2a\x81\x49\xd0\xda\x22\x00\xf9\x7b\x1b\xdc\
-\x00\x0c\x29\x75\xa8\x56\x58\x96\x25\xe2\x38\x36\x93\x10\x28\x9c\
-\x60\x68\x2b\x47\x64\x4a\xb0\xc9\xf7\x60\x13\x56\x55\xef\x93\x4a\
-\x22\x19\xf2\xb2\x24\x44\xdd\x71\x9e\xe7\x8f\xfe\x1e\x86\xb9\x8b\
-\xc5\xc2\x4c\x07\x54\x53\x70\x1e\x45\x04\x71\x77\x89\x14\xac\xdb\
-\x3d\x9a\xf4\x9e\xdd\x6e\x77\xc7\x23\x54\x99\x3d\x3c\xcb\x26\x77\
-\xea\xc0\x20\x5f\x97\x61\xa3\x1c\xa7\x79\x88\xad\x6d\x34\x1a\x46\
-\x9f\x6b\xdf\x6e\x77\x92\x54\x81\x54\xbe\x77\x5b\x7e\xc8\x70\x9e\
-\x25\xa6\x46\xa3\x61\xc0\x4a\x52\x8b\xf5\x54\x3b\xff\x64\x9b\x1a\
-\x0f\x10\x05\xa7\x82\xf3\xe8\x90\x76\xb1\x58\xec\x80\x50\x5e\xd4\
-\x0c\xdd\x48\x84\x64\x59\x86\x24\x49\x8c\xb2\xa6\xae\x6b\x84\x17\
-\xb5\x14\x30\xd8\xed\x65\x36\xf9\x23\xe7\xfa\xb0\xb4\x41\xcf\x74\
-\xc8\xa4\xe0\xa0\x2c\xcb\x47\x5e\x5b\x02\xb3\xea\x71\xf6\xfb\x96\
-\xdf\xcb\xbf\xc5\xce\x7f\xa9\xb9\x6d\x34\x1a\x26\xa4\xb6\x0f\x20\
-\x3e\x36\x8e\x63\x24\x49\x82\x4e\xa7\xa3\x2d\x65\x0a\xce\xe3\x58\
-\xda\xd9\x6c\x56\x3b\x99\x8e\xbf\x6f\xb5\x5a\x28\x8a\x02\x8b\xc5\
-\xa2\x76\x2c\xa4\xad\xa9\xb5\xc3\x5e\x09\x06\xa9\x0e\xe2\x01\x40\
-\xc1\x03\x27\xc7\x13\x9c\x27\x27\x27\x7b\x17\x1a\xb1\x96\x29\x01\
-\x59\xf5\x9a\x87\xc0\x68\x13\x41\x55\x51\x86\x0c\x93\x57\xab\xd5\
-\xce\x24\x78\x99\xc3\x32\xd2\x90\x51\x04\xeb\xa6\x75\xcf\xff\x23\
-\x9a\xd6\x39\xf7\x84\xb4\x24\x47\xd8\x60\x6c\x83\x8a\x53\xe7\x36\
-\x9b\x8d\x59\xa3\xb0\x5c\x2e\x1f\xad\x54\xa8\x63\x3b\xe9\xad\x6c\
-\xe0\xd0\xbb\x30\x9f\xe5\x18\x10\xb2\x9c\x52\x08\x70\x28\xe7\xa4\
-\xc8\xc0\x5e\xf1\x50\xf5\x4f\x1e\x16\xd2\xb3\xca\xef\xab\x56\x37\
-\xc8\x03\x2b\x8e\x63\x64\x59\x86\x4e\xa7\xf3\xa8\x77\xd5\xce\xb7\
-\x59\x42\xf2\x3c\xcf\xec\x0f\x55\xbd\xad\x82\xf3\xa0\xb1\xce\xc7\
-\x10\x72\x36\x9b\x99\xbc\x90\xe4\x4f\x14\x45\x3b\x3d\x97\xc7\xd4\
-\x1e\xed\x3e\x4e\xc9\xda\x56\x79\x2f\xbe\x17\x86\xd8\xcc\xed\x8e\
-\x95\xef\xc9\xfa\xab\x3c\x54\xec\x49\x0c\x12\x78\x75\x1e\xb6\xee\
-\xbe\x76\x6e\x2c\x95\x42\x55\x73\x92\x6c\x80\x93\xe1\x1d\x8f\xc7\
-\x0a\x4e\x05\xe7\x61\xa3\xe8\x9b\x5a\xd4\x24\x49\x90\x24\x89\x99\
-\xc7\xc3\x56\x28\x76\x76\xc8\x30\xd4\xf6\x40\xc7\x90\x43\x12\x9c\
-\x9c\xc7\x23\x81\x49\xa5\x0e\x43\xd4\x56\xab\x65\x46\x69\x1e\x0b\
-\xce\xaa\x39\xb4\x76\xfe\x67\x7b\x4c\x09\xa8\xaa\xb1\x98\xf6\xdf\
-\x49\x4f\xbf\xef\xb0\xb1\xc5\x0c\x14\xc6\xb3\x3d\x4e\xe5\x7c\x0a\
-\xce\xa3\x3c\x27\xdb\xb2\x9a\xcd\x26\xe6\xf3\x39\xa6\xd3\xa9\xb9\
-\xa8\xb3\x2c\x33\xa1\x23\x2f\x44\x2e\x2e\x4a\xd3\x74\x2f\x41\x23\
-\x01\xc2\xb2\x03\xc3\x57\xa9\x0a\xda\x6c\x36\xe6\x90\x90\x35\x43\
-\xb2\xb6\x87\x1a\x96\x7d\xdf\x37\xf3\x8d\x6c\x60\xd9\xef\xa9\x6e\
-\xa9\x91\x0d\xc4\xba\xbf\xc7\x0e\x5b\x6d\xe2\xa8\xaa\x74\xc4\xe7\
-\x25\xa3\x4b\xc9\x9f\x9a\x12\x42\x7b\x73\x35\xb9\x5c\x56\xf6\x69\
-\xb2\x57\x91\x6a\x97\xd5\x6a\xb5\x33\x11\x81\x42\xf2\x63\x58\x54\
-\x79\xf1\x4a\xe5\x8c\xdc\x40\x2d\xa7\x0e\x48\x80\x1e\x22\x4e\x78\
-\x1f\x4e\x4e\x60\x08\x5e\xa5\x65\xb5\x01\x54\x57\x4a\xa9\xf2\x86\
-\xb6\xf7\x94\xf9\xad\x24\xc1\xc8\x2e\xcb\x75\x86\x72\x76\xee\x7a\
-\xbd\x36\x4d\xd8\x4a\x0a\xa9\xe7\xdc\xcb\xd4\x12\x60\x32\xbf\xea\
-\x74\x3a\xc8\xb2\x0c\xd3\xe9\xd4\xf4\x60\xb2\x6f\x11\xf8\x6f\xf9\
-\xe0\x18\x0f\x53\xf7\x7b\x09\x5a\xe6\xb3\x92\xc1\xb5\xef\x53\x47\
-\x3e\x49\x72\x89\xe5\x1e\x12\x35\x75\x5e\x53\x7a\xbf\x3a\x16\xd7\
-\x06\xb4\x0c\x97\x1f\x5d\x60\x22\x1c\xe6\xca\x06\xf9\x38\xbe\x3f\
-\x1e\x38\x59\x96\xe9\x10\x6a\xf5\x9c\xfb\x8d\xde\x4f\x86\x97\x9c\
-\x86\xc7\xee\x0b\x82\x52\xce\x75\xe5\x3e\x4b\xca\xf0\x6c\x6f\xc4\
-\x10\xd9\x06\x83\x9d\xa7\xf2\x79\x78\xb1\xd6\x01\x84\x39\x65\x55\
-\x78\x2b\x6b\xa7\x92\xa8\xa9\x12\xef\x1f\x6a\x3f\xb3\x3d\xaa\xfd\
-\xd5\x5c\x50\x96\x52\x48\x7a\x4d\x8e\xf3\xb4\x85\x0f\xf2\x73\xe1\
-\x61\xa7\x62\x04\xf5\x9c\x7b\x3d\x8e\xbc\xb8\x39\x2f\x87\xc0\x64\
-\xb8\x49\x80\x3e\x3c\x3c\x98\x1c\xcf\x6e\xb3\xb2\x2f\xf2\x38\x8e\
-\x71\x77\x77\x67\x40\xcc\x92\x08\xc3\x3b\xea\x79\x29\x80\xa8\x1a\
-\xa5\x29\x3d\x4f\x9d\xe7\xdc\x77\xdb\x21\x6f\x7e\x6c\x1e\x6a\x1b\
-\x35\xb6\xb2\x36\xdc\x68\x34\x10\x45\x91\x61\xb7\xed\xd7\x90\xde\
-\x9d\xe0\x54\x53\xcf\xb9\x97\xad\x95\xa2\x76\x8e\xed\x90\xe4\x8f\
-\xbc\xa8\x09\x52\xde\x7f\xb1\x58\x20\x49\x12\xf4\x7a\xbd\x9d\xf0\
-\x6d\x3e\x9f\xe3\xd3\xa7\x4f\x46\x53\x2a\x45\xed\x1c\xfc\x4c\xe1\
-\x80\xcd\x82\x56\x85\x98\x87\xc0\x69\x33\xb0\x72\xf6\x90\x54\x17\
-\xd9\x7a\x57\xbb\x9b\xa4\xca\x6b\x56\xb1\xd3\x8c\x0a\x6c\x51\x3c\
-\x95\x3f\x9c\x7c\x20\xef\x43\xcf\x4f\xcf\xa9\x61\xad\x7a\xce\x83\
-\x9e\x93\xe1\x24\x65\x67\x72\xfd\x00\xef\x67\x13\x46\x7c\x1c\x97\
-\x06\xd9\x17\x32\x37\x79\x35\x9b\xcd\x9d\x39\x43\x64\x7f\xf9\x18\
-\x59\x4e\x39\xc4\x2a\x1f\xca\x39\x25\xc8\xed\x1d\x2c\x75\xa1\x6b\
-\x9d\x17\xb5\xc1\xba\x6f\xa2\x3d\xc3\x5c\x4e\x61\xa0\x7c\xf0\x98\
-\x83\x51\x4d\xc1\x59\x7b\xc1\xd3\xd8\x29\x41\xcf\x59\x15\xaa\xd2\
-\xb3\x31\x4c\xed\x74\x3a\xa6\x55\x4b\x12\x1e\x65\x59\x1a\xd9\x9d\
-\x9d\x97\xc9\x0b\x9b\xad\x5c\xf2\xf7\x24\x56\xec\x7f\xc7\x12\x42\
-\xf4\xbc\xb2\xf5\xcc\x2e\x7f\xc8\x7d\xa0\x92\xc8\xa9\x02\xac\xed\
-\x55\x6d\xf2\xc7\x06\x3b\xbb\x52\x18\xbe\x57\x1d\x0a\x76\x08\xaf\
-\x61\xad\x5a\x6d\xbe\x45\x0f\xc6\xb0\xd5\x5e\xc3\x2e\x2f\x22\x0a\
-\xdd\xd7\xeb\xb5\x19\x07\x42\xa6\x55\x7a\x2d\xb9\xb6\xc0\x96\xca\
-\x51\x06\xc8\x70\x53\x86\x88\xd2\x53\xc9\x10\x77\x5f\x07\x8c\x0d\
-\x44\x99\xcf\xd5\xb1\xb1\x55\xed\x63\xc7\x10\x45\xb2\x66\x6b\x77\
-\xdb\x70\xed\x03\x87\xa2\xd9\x1e\x5a\x86\xc7\x36\xc0\x15\x9c\x6a\
-\xb5\x17\x1e\xbd\x19\x2f\x6a\x39\x64\xab\x4a\x33\x4a\x00\xf8\xbe\
-\xbf\x33\x4a\x52\x5e\xf8\xf2\xf1\x36\xc1\x43\x35\x92\x6c\x4b\xa3\
-\x4a\x88\xd2\x36\x5b\x73\x7b\xc8\xd3\xc8\xc9\x09\x75\x13\x19\x6c\
-\xb0\xd4\x79\x4c\xfb\xf0\xb2\xef\x6b\x87\xd1\x7c\xed\x34\x4d\x77\
-\x08\x22\x02\x51\xfe\x9d\x55\xde\x58\xc1\xa9\x56\x09\x4a\x7a\x37\
-\x0a\xd9\xa5\xaa\xc7\xf6\x1a\xf2\xf4\xe7\xcc\x1e\x0e\xb9\xe2\xe0\
-\x65\x0e\x89\x96\x1d\x2d\x14\x1e\xc8\xd5\x7a\xcc\x6f\x79\xa1\x53\
-\x80\x2f\xf3\x53\xbe\x8f\x3c\xcf\xd1\xef\xf7\xcd\x7c\x20\x69\x45\
-\x51\x98\xd9\x3e\x75\x35\xd2\x43\x2c\x6e\xd5\x4e\x17\xbb\x94\x22\
-\x0f\x80\xe5\x72\xb9\x33\xa7\x57\x7e\x2e\x1c\x93\x52\xf5\xfa\xb2\
-\x24\xa4\x7b\x3c\x35\xe7\xac\xff\x50\x44\xff\xa1\xbd\x42\x41\x6e\
-\x7d\xae\x0a\xbf\xe4\x60\xae\xf5\x7a\x8d\x77\xef\xde\xe1\xf6\xf6\
-\xd6\x6c\x19\xeb\xf5\x7a\xa6\x86\x19\x86\x21\x4e\x4f\x4f\xcd\x26\
-\x68\x76\x90\xb0\x71\x9b\x3b\x4a\xe4\x38\x4b\xf9\x1a\x14\xe5\xd7\
-\x89\xc5\x39\xce\x84\xe4\x14\x43\x73\x1b\x80\xf6\x41\x73\xac\x4c\
-\xaf\x2a\x57\x97\xb5\x61\xa9\x37\xb6\x9f\x43\xe6\xb8\x72\x9a\x44\
-\xdd\xe7\xaa\x9e\x53\xcd\x18\x67\xae\xca\x69\x03\x76\x2f\xa7\x94\
-\x9d\x49\x4f\x52\x14\x85\x99\x00\x90\xa6\x29\xde\xbd\x7b\x07\x00\
-\x38\x39\x39\xc1\xb3\x67\xcf\xd0\xe9\x74\x00\xc0\x8c\xbb\xb4\x77\
-\x9e\x70\xbe\xab\xef\xfb\xa6\x18\xcf\x0b\xd9\xbe\x80\x0f\xb1\xb5\
-\x55\xeb\x22\x6c\x8f\x58\xb5\x2b\xa5\xaa\xf1\xbb\xaa\x4b\x65\x1f\
-\x58\x29\xd5\xab\x7a\x2d\x46\x27\x24\x88\xe8\x79\x25\x19\xa6\xe0\
-\x54\xab\xbd\xb0\x82\x20\x30\xa5\x0d\x9b\x40\x91\x13\xe7\x18\x86\
-\x71\x17\x88\x5c\x28\xdb\x6c\x36\x91\xa6\x29\xae\xaf\xaf\xb1\x5a\
-\xad\xd0\xe9\x74\x30\x18\x0c\x76\xf6\x95\xc8\x89\xe9\x72\xda\xc1\
-\xfd\xfd\xbd\x21\x85\xd8\x26\x06\xfc\x3a\xda\x92\x13\x0d\xf6\xe5\
-\x85\x36\xa9\x53\x05\xbc\xaa\x3c\xb8\xee\x7e\x55\xb3\x8e\xe4\x6b\
-\x48\xed\xaf\x24\xa4\x24\x28\x6d\xed\x30\x41\xca\x43\x84\xc2\x7f\
-\x35\x05\x67\x6d\xf8\xc6\x29\x75\xfb\x42\x2c\x79\x61\xcb\xfd\x26\
-\xae\xeb\x62\x36\x9b\xe1\xea\xea\x0a\xc0\x7f\x05\x09\xd7\xd7\xd7\
-\x68\xb5\x5a\x18\x0c\x06\xb8\xb8\xb8\x80\xef\xfb\x28\xcb\x72\x27\
-\x64\x95\x21\x1e\xd9\x5d\xe6\xab\x72\xd4\x24\x4b\x31\xfb\x06\x4b\
-\xdb\x0d\xd1\x55\xb9\x63\x1d\xe0\xf6\x09\xe0\xab\x9e\xc7\xfe\x4c\
-\xe4\x40\x33\xf9\x19\x92\xbd\xdd\x6c\x36\xe8\xf7\xfb\xe6\xf9\x79\
-\xd8\xa8\xe7\x54\x70\x1e\x34\x9e\xe0\x14\x03\xc8\x39\xab\xf6\x54\
-\x3d\x39\x15\x8f\x3f\x33\xa4\x0d\x82\xc0\x14\xdf\x39\xfa\x92\xcc\
-\xef\xe5\xe5\x25\x3a\x9d\x8e\xa9\x8b\xce\xe7\x73\xb3\xe0\x96\x80\
-\xa5\x17\x61\xaf\x63\xd5\x04\x83\x7d\xa5\x94\xaa\x7c\x51\x1e\x2a\
-\x75\xa1\xaa\x0d\xd0\x7d\x26\x0f\x01\xb6\xb8\x71\x75\xa0\x0d\x70\
-\xd6\x7a\xdb\xed\xf6\x0e\xf3\x9d\xe7\xf9\x51\x07\xa2\x82\x53\xcd\
-\x90\x41\x04\x29\x49\x17\x7a\x84\x7d\xf9\x16\xf3\xc0\xf9\x7c\x8e\
-\x28\x8a\x0c\xf8\xe8\x61\xb7\xdb\xad\x59\xf0\x73\x7a\x7a\x8a\xd1\
-\x68\x84\x30\x0c\x91\xe7\x39\xc6\xe3\xb1\x01\x68\xd5\x54\xbc\x2a\
-\x52\xa6\x4a\xfc\x7e\xcc\x04\xc0\x7d\xb7\x57\x81\xb2\xae\xf6\x69\
-\xd7\x7f\xd9\x36\xc7\xcd\x66\x00\x4c\x14\x90\x24\x89\x99\x2c\x4f\
-\x63\x03\x39\xc1\xa9\x61\xad\x82\xf3\x60\xce\xc9\x0b\x85\x2b\x15\
-\xaa\x64\x6f\x12\x14\xb2\x4c\xc2\xf0\x74\x32\x99\x20\x8a\x22\xd3\
-\x4f\x29\x81\x96\xa6\x29\x3e\x7d\xfa\x84\xf5\x7a\x8d\x8b\x8b\x0b\
-\x2c\x16\x0b\x43\x0e\x55\xcd\xe7\xb1\x43\x48\xfe\x6c\xeb\x80\x79\
-\xff\xaa\x6e\x96\xba\x69\x07\xfb\x88\x9f\x3a\x32\xc9\x06\x31\x47\
-\x63\xb2\xa6\x39\x9f\xcf\xcd\xc0\xeb\x24\x49\x4c\xfe\xce\x92\x12\
-\x07\x82\xc9\x7c\x7d\xdf\x80\x6c\x05\xa7\x9a\x01\x50\xbb\xdd\xc6\
-\x72\xb9\x34\x40\xa5\x68\xfb\x18\x89\x99\x9c\xce\xce\x31\x26\xb6\
-\x16\x97\x75\x4a\x0e\xae\xf6\x3c\x0f\xfd\x7e\xdf\x34\x73\x4b\x70\
-\x32\x4c\x94\xb5\x42\xdb\x73\xda\x21\xad\xac\x29\xda\x25\x93\x7d\
-\x93\xf4\x6c\x95\x4f\x15\x70\xed\xc7\xb1\x96\xca\xcf\x88\x6a\x27\
-\xe6\xc9\x5c\xed\xc0\xee\x93\xcd\x66\x83\xc5\x62\x61\x36\x64\xaf\
-\x56\x2b\x74\xbb\x5d\x05\xa7\x82\xf3\x38\x52\x88\xdb\xa4\x3f\x7c\
-\xf8\x60\x18\x53\x7a\xa4\xa7\x18\x37\x3c\x7b\x9e\xf7\x68\x97\xa5\
-\xe7\x79\x98\x4c\x26\x68\x36\x9b\x18\x0e\x87\x08\x82\xc0\xac\x75\
-\xa0\x07\x67\x93\x34\x3d\x24\x73\x50\x02\x95\x42\x06\xdb\xa3\xd7\
-\x0d\xd4\xaa\x0a\x5d\xed\x7c\xf3\x18\xe9\x9e\x14\xb7\x53\x1d\x25\
-\xe5\x8a\x5c\xef\x60\x13\x67\x6c\x8b\xe3\xf6\x33\x3e\x2e\x0c\x43\
-\x05\xa7\x82\xf3\x38\xf3\x7d\x1f\x61\x18\x1a\x72\x87\x1e\xac\xae\
-\xe7\xd0\xd6\xbd\xca\x61\xce\xad\x56\x0b\xbe\xef\x3f\xda\x46\xc6\
-\x52\xc2\x64\x32\x41\x51\x14\x88\xa2\x08\x61\x18\x1a\xe0\x85\x61\
-\x88\xe1\x70\x08\xcf\xf3\xcc\xf0\x2b\xd9\xd1\xb2\xd9\x6c\xd0\x6e\
-\xb7\x1f\x91\x28\x5c\xf9\xc7\x03\xc1\xee\x16\xb1\x81\x78\x88\xf8\
-\xa9\x23\x89\x98\x2b\xf2\xe0\xa8\x63\x85\xa5\x57\x66\x64\xc0\x03\
-\xa8\x28\x0a\xb3\x3d\x5b\x9b\xac\x15\x9c\x47\x33\xb6\x51\x14\xc1\
-\xf7\x7d\xa4\x69\x6a\xd4\x3b\x94\xa7\xc9\x12\x88\xcd\x82\xda\x39\
-\x21\x57\x0d\x74\x3a\x9d\x1d\x21\xb8\xbc\x78\x19\x06\x52\x3d\x33\
-\x1a\x8d\x0c\xa9\xc2\x7a\x6a\x55\x79\xa4\xce\xc3\xb5\xdb\x6d\x9c\
-\x9d\x9d\xed\x0c\x1c\x3b\x04\x9e\xaa\x9f\xab\x48\x21\xb9\xa5\x9b\
-\xec\xf2\x21\x52\x89\xe1\xad\xdc\x3f\x4a\xa5\x53\x18\x86\x66\x52\
-\xbe\xda\x7f\x0e\x32\xfd\x08\xf6\x93\x42\xec\xe0\x67\x49\x45\xe6\
-\x83\x14\xb7\xdb\x82\x6f\x7a\x08\x12\x24\xcd\x66\x73\xa7\x5d\x8c\
-\xcb\x84\x64\x4e\x28\x73\x45\xb2\x9d\x9c\x84\x20\x77\x77\xca\x95\
-\x81\xfb\x0e\x05\x86\xb5\xbe\xef\x63\x30\x18\x20\x0c\xc3\x47\xa3\
-\x2e\xab\xc0\x58\x37\xe3\xc8\x06\x1c\xc9\x1b\x19\xba\x1e\x03\x68\
-\xe9\x41\xe5\x5e\x99\x7e\xbf\x8f\x28\x8a\xf4\xa2\x53\x70\x1e\x9f\
-\x77\xb6\xdb\xed\x47\x03\x9c\xe5\xbc\x5a\x00\x66\xe5\x9f\x2c\x5f\
-\x50\x47\xcb\x90\x93\x3a\xd9\xf9\x7c\x6e\x4a\x06\x87\xba\x2f\xec\
-\xe5\x46\xf6\x7b\x93\xb5\x45\x9b\x10\x92\x60\xa0\xf0\x81\xab\x1b\
-\x38\x29\xb0\x4e\x5b\xbb\x4f\x43\x4b\x60\x92\x20\x23\x01\xb4\x0f\
-\x90\x55\x53\xe4\xc3\x30\x34\x8c\xad\xe3\x38\x18\x8d\x46\x08\x82\
-\x40\x2f\x3a\x0d\x6b\x9f\xf0\x01\xb9\x2e\xfa\xfd\x3e\x3a\x9d\x8e\
-\x99\x0b\x24\x3d\x13\x73\xad\x56\xab\xb5\x13\xe2\x51\x90\x4e\x19\
-\xa0\xec\xdf\xe4\xfd\x39\x95\xa0\xaa\xb4\xc1\x3d\x96\xd2\xc3\xda\
-\xb9\xe2\x3e\xcf\x69\xe7\x92\x7c\x7f\x24\xb4\xd2\x34\x45\x1c\xc7\
-\x3b\xd3\x1d\xea\xba\x50\xe4\x73\x72\x80\xd7\xbe\x89\x0a\x55\xef\
-\xc9\x16\x72\xb4\xdb\x6d\x33\x8e\x65\x30\x18\xa0\xdf\xef\x6b\x7d\
-\x53\x3d\xe7\xd3\xc1\xd9\xed\x76\xd1\xef\xf7\x77\x4e\x76\xe9\x59\
-\xd8\xe5\xcf\x46\x69\x8a\xde\xd9\x43\xc9\xae\x12\xd7\x75\x4d\x28\
-\x48\x6f\x6a\xb3\xa8\x04\xe6\x60\x30\xc0\xf9\xf9\xb9\x79\x9e\x3a\
-\xb6\x75\x5f\x8e\x58\xd5\xcc\x2c\xc1\x51\xe7\xa9\xea\xf6\x73\xba\
-\xae\x6b\x86\x77\x91\x75\xae\x6b\xd4\xb6\x3d\xbc\xfc\x5d\xab\xd5\
-\xda\xf1\x9a\x67\x67\x67\xa6\x19\x40\x4d\x3d\xe7\x93\x8c\xf3\x56\
-\xa9\xde\xb1\x1b\x85\xe5\x44\x02\x59\x0b\xa5\xc7\x64\xa3\x34\xd7\
-\x05\xb2\x47\x74\x38\x1c\xc2\x71\x1c\x24\x49\xb2\xa3\x27\x6d\xb7\
-\xdb\x66\x6d\xfd\xbe\xb1\x98\x76\x97\xcc\x3e\x60\x56\x49\xf7\xe4\
-\xd0\xea\x43\x53\xde\xc9\x36\xf3\xb0\xa9\x62\x7b\x0f\x79\x50\x7e\
-\x6e\x61\x18\x9a\xb6\xb9\x6e\xb7\x8b\x93\x93\x13\x65\x69\xd5\x73\
-\xfe\xb6\xd0\x76\x30\x18\x98\xdc\x52\xd6\x0e\xeb\x26\x02\xa4\x69\
-\x8a\xc5\x62\xf1\x08\xa8\x04\xf3\x62\xb1\x40\xb7\xdb\x35\x35\x4c\
-\xbb\xbe\x58\x95\xab\x55\xe5\x87\xc7\x84\x95\xf6\x74\x3d\x86\xb3\
-\xac\xa1\x52\xd3\x5a\x35\x05\x81\x39\x26\x81\x59\xf5\x9c\x75\xa0\
-\xb6\x6f\x0f\x82\x00\xbe\xef\x1b\x25\xd4\xd9\xd9\x19\xba\xdd\xae\
-\xb2\xb4\xea\x39\xff\xff\xc6\xc6\xe8\x87\x87\x87\xbd\x13\xe4\xec\
-\x3a\x22\x19\xde\xa2\x28\x4c\x01\x9e\x4c\x30\x19\x5c\xf6\x75\xda\
-\x13\xe6\xab\x40\x6f\x7f\x3d\x54\xa3\xac\xfa\x3d\x73\x50\x92\x42\
-\x14\x02\x50\x18\xc0\xbc\x54\x8e\x45\x61\x68\x2e\x95\x4e\xf6\xf3\
-\xef\x7b\x2f\x32\x9c\xe6\xc6\xb4\x7e\xbf\x8f\xb3\xb3\xb3\x47\x13\
-\xe8\xd5\x14\x9c\x4f\xf6\x9e\xc3\xe1\x10\xc3\xe1\x10\x59\x96\x3d\
-\xea\xde\x97\xfd\x89\x55\xbb\x42\xe4\x18\x0f\xe9\x1d\x29\x04\x27\
-\x58\x39\x20\x4c\x8e\x2c\xa9\x2a\xd3\xc8\xe7\xae\x62\x74\xf9\x9c\
-\xd2\x93\xdb\x9b\xa8\x65\x1f\x2a\x65\x75\x72\xfb\x34\xff\x3e\xf6\
-\x8f\xd2\x0e\x85\xc1\xf6\xe1\xc1\x43\x8a\xb9\xe6\x7c\x3e\x37\xb9\
-\xe6\x70\x38\x54\xaf\xa9\x61\xed\x6f\xb7\x4e\xa7\x83\x8b\x8b\x0b\
-\x93\x33\xd9\x53\xf4\xea\x58\xd3\x2a\x72\x45\xee\xca\x64\xe8\xcb\
-\xa9\x7d\xd3\xe9\x14\xb7\xb7\xb7\xc8\xb2\x6c\xe7\x7e\x76\xd8\x2c\
-\x67\x16\xd5\x6d\xce\xb6\xcb\x2c\x55\xbd\x9b\xf6\x6d\x52\xf4\xbf\
-\xef\xef\xd9\xc7\x16\xdb\xb7\xcb\x3d\x9c\x69\x9a\x62\x30\x18\xe0\
-\xea\xea\x4a\xbd\xa6\x82\xf3\x2b\x7d\x58\xff\x51\xed\x9c\x9d\x9d\
-\x19\x85\x50\x95\x30\xc0\xbe\xf0\xab\x58\x4c\xfb\xe2\x9d\xcf\xe7\
-\x66\x76\x90\xeb\xba\x98\x4c\x26\x98\x4c\x26\xe6\x75\x8f\x25\x5f\
-\xf6\xe5\xc1\x55\x87\x88\x5d\xa2\xe1\x2e\x15\xee\x84\x61\x1f\x69\
-\x1d\x19\x55\xb7\x8c\xd7\x36\x2e\x78\x8a\xe3\x18\xbe\xef\xe3\xf9\
-\xf3\xe7\x18\x0c\x06\x3a\x69\x4f\xc1\xf9\x75\x99\xdb\xab\xab\x2b\
-\x9c\x9c\x9c\x18\x62\x85\xde\x46\x0a\xd0\xeb\x72\xc5\xaa\xdb\xe5\
-\x5e\x4f\x00\x66\x9f\xe6\x64\x32\xc1\x74\x3a\xad\x95\xec\x49\x82\
-\x67\x9f\x47\xab\x6a\xd0\xae\x3a\x78\x48\x0a\xb1\x31\x3c\xcb\x32\
-\x13\xd2\x56\x1d\x38\xb2\xc4\x53\xe7\x85\xf9\xdc\x2c\x9d\x94\x65\
-\x89\xf3\xf3\x73\x5c\x5d\x5d\xe9\xc4\x03\xcd\x39\xbf\xae\x39\x8e\
-\x83\xc1\x60\x80\x17\x2f\x5e\x98\xe9\x76\x52\x0f\x4b\x90\xda\x8b\
-\x90\x0e\x8d\xfe\xa0\xcd\xe7\x73\x74\x3a\x1d\x44\x51\x84\x34\x4d\
-\x31\x99\x4c\x4c\xad\xd5\x26\x9a\x78\x71\x4b\x31\x3c\x7f\x96\x1a\
-\x60\x8a\x25\x6c\x01\x85\xdd\x29\x22\x77\x92\x66\x59\x86\x38\x8e\
-\x4d\xae\x59\xe7\x79\xab\x84\xf4\x04\xa4\x3c\x88\xd8\x40\x3e\x1c\
-\x0e\xf1\xf2\xe5\x4b\xad\x6b\x2a\x38\x7f\x3f\x72\xe8\xfc\xfc\x1c\
-\x59\x96\x99\x7a\x9d\xcc\xeb\xe8\x29\xaa\xda\xcb\xe4\x8a\x84\xaa\
-\x1c\x90\x63\x3e\x38\xbe\x24\xcf\x73\xb3\xc1\x8c\xb2\x3b\x5b\x30\
-\x5f\x35\x43\xc8\x9e\xaf\x6b\xf7\x7f\xd2\x5b\xf3\x3e\xec\x3b\x65\
-\xb8\x4e\x85\x53\x95\x57\xb6\x3d\x64\x5d\xfb\x19\x8d\x65\x9b\x4e\
-\xa7\x83\x17\x2f\x5e\x60\x34\x1a\x69\x38\xab\x61\xed\xef\x1b\xde\
-\x5e\x5e\x5e\xe2\xf2\xf2\xd2\x10\x39\x72\x22\x1f\x4b\x12\x72\xf0\
-\xd7\xa1\x95\x7a\x04\x8d\xdc\xf0\x1c\x45\x11\x36\x9b\x0d\xee\xef\
-\xef\x31\x9b\xcd\x76\x46\x63\xd6\xf5\x66\x56\x2d\x18\x92\x60\xa0\
-\xa4\x90\x60\xa7\x4e\x58\x7a\xd9\xaa\xc9\xf0\x75\xde\xd3\x0e\x8f\
-\xe5\x4a\x05\x1e\x46\xad\x56\x0b\x97\x97\x97\x78\xf6\xec\x99\x0a\
-\x0e\xd4\x73\xfe\xfe\x16\x45\x11\x2e\x2f\x2f\xb1\x5c\x2e\x71\x77\
-\x77\x67\xd8\x55\x5e\xa4\x1c\xf9\x48\x40\xd8\xeb\xf3\xaa\x84\x0c\
-\x72\x0f\x4b\x1c\xc7\x08\x82\x00\xed\x76\x7b\x67\x31\xef\x7a\xbd\
-\x36\x6c\x6a\x9d\x00\xc0\x5e\x8b\x60\x77\xa3\x48\x26\x57\x82\x89\
-\x9e\x9b\xe1\xed\xbe\xd5\x0c\x55\x23\x4c\x6c\xb6\x98\xaa\xa8\x8b\
-\x8b\x0b\xbc\x78\xf1\x42\xc3\x59\x05\xe7\x1f\xc7\xde\xf6\xfb\x7d\
-\x3c\x7f\xfe\x1c\x9b\xcd\x06\xe3\xf1\xd8\x00\x54\x5e\xf4\x76\x28\
-\x6b\x7b\x22\x39\xfd\x5c\x82\x80\xe4\x4c\xa3\xd1\xc0\x70\x38\x34\
-\xe3\x31\xd9\xa8\x6c\xef\xd7\xac\x1b\x91\x29\x27\xab\xcb\x55\x0f\
-\x12\x50\x3c\x48\x38\xc6\x53\x4e\x34\xd8\x37\xd8\x4b\x7e\x6f\xb3\
-\xb6\x8c\x1c\x2e\x2e\x2e\xf0\xea\xd5\x2b\x93\x37\xab\x29\x38\xff\
-\x10\xe3\x78\x11\x5e\x90\xd3\xe9\xd4\xe4\xa2\xcc\x4f\xab\x98\xd6\
-\xaa\x19\x40\x72\x4d\x81\x2c\xcc\x73\x4d\x03\xf5\xad\xfb\xf2\x3d\
-\xf9\x7b\x12\x46\xb2\x83\xc6\x16\x34\xb0\xfe\xc8\x81\x63\x0c\x41\
-\xa9\x05\xae\x0a\x93\x09\xf8\x7d\xa0\x64\x33\xf9\xc5\xc5\x05\x7e\
-\xfe\xf9\x67\x6d\xa4\x56\x70\xfe\x39\xec\xad\xeb\xba\x38\x39\x39\
-\x31\x60\x9d\x4c\x26\xc8\xb2\xcc\x5c\xdc\x12\x6c\x75\xc3\xb6\xaa\
-\x04\x0a\xd2\xdb\x25\x49\x82\xa2\x28\x10\x04\xc1\x8e\x16\xd6\x9e\
-\x97\x6b\xb3\xaf\x92\x99\xb5\x5f\x87\x92\x3d\x39\xd1\xa1\xd7\xeb\
-\x21\xcf\x73\xcc\x66\xb3\x47\xcb\x82\xf7\xd5\x72\xe5\x7b\x27\x7b\
-\x7d\x71\x71\x81\x5f\x7e\xf9\x05\xa3\xd1\x48\xdb\xc1\x14\x9c\x7f\
-\x1e\x40\x9b\xcd\xa6\x61\x21\x1d\xc7\xd9\x19\x0d\x42\xaf\x65\x87\
-\xaf\xb6\x07\xab\x1b\x21\xc2\x16\xad\x3c\xcf\x91\xa6\x29\x56\xab\
-\x95\x11\x90\x57\xf5\x61\xca\x19\x47\x75\xf5\x4f\x2e\x48\xaa\xea\
-\x15\xad\xda\xa2\xb6\x4f\xd8\x20\xbd\x32\x95\x53\x57\x57\x57\xf8\
-\xf9\xe7\x9f\x31\x1c\x0e\x15\x98\x0a\xce\x6f\xc7\x83\xba\xae\x8b\
-\x0f\x1f\x3e\x00\x80\x59\xa7\x20\xc3\x57\x7a\xb7\x2a\x50\xca\xfc\
-\xd0\x66\x48\xc9\xb2\x72\x5a\xba\x24\x8f\xe4\xce\x16\x3b\xbc\xb5\
-\xf5\xbd\x6c\x72\xae\xcb\x1b\xe5\x50\xeb\x2a\xd1\x83\x2d\x40\xa0\
-\x77\x5e\xad\x56\x68\xb5\x5a\xf8\xe9\xa7\x9f\xf0\xe2\xc5\x0b\x23\
-\xa6\x50\x53\x70\x7e\x33\x1e\x74\x30\x18\x98\x89\x01\x77\x77\x77\
-\xa6\x09\x5b\xb2\xab\xf4\x34\x54\x15\x55\x85\xb8\x64\x7c\x59\x8a\
-\xe1\x98\x4c\xe6\x9d\x12\x20\xbc\x9f\x0d\x38\x49\xec\xb0\xc4\xc3\
-\x7c\xb2\xca\x5b\xf3\x76\x3b\x37\xb5\x45\xf3\xb6\x7e\x97\x4b\x9a\
-\x5e\xbe\x7c\x89\xab\xab\x2b\x33\x27\x49\x4d\xc1\xf9\xcd\xb1\xb8\
-\xdd\x6e\x17\xaf\x5e\xbd\x82\xef\xfb\xf8\xf4\xe9\x93\x99\x82\xce\
-\xdb\xb9\xde\x8f\xa4\x8d\xf4\x66\x54\xf7\xb0\xad\x4b\x82\xcf\xde\
-\xd6\x25\x41\xc5\xe9\xf4\x24\xa2\x38\x89\x81\x0d\xe2\x04\x68\x1d\
-\x39\x25\x01\x5c\xb7\xbc\xc8\x16\xd4\x13\xc4\x27\x27\x27\x78\xf1\
-\xe2\x05\xce\xce\xce\x4c\xdd\x57\x4d\xc1\xf9\xcd\x7a\xd1\x20\x08\
-\xf0\xf2\xe5\x4b\x74\xbb\x5d\x5c\x5f\x5f\xe3\xe1\xe1\xc1\x4c\x3e\
-\xa7\xb0\x1c\xf8\xaf\x28\x9c\x6b\x0a\xa8\xd9\x9d\xcf\xe7\x28\xcb\
-\xd2\x4c\x82\x67\x8e\x59\x35\xfb\x96\xc0\x02\x60\xfa\x25\x65\x19\
-\xa7\xaa\xbb\xc5\x06\x1e\x1f\xcb\x43\xc2\x16\x1c\xd8\x1d\x30\xec\
-\x0b\x7d\xf6\xec\x19\x7e\xfa\xe9\x27\xf4\x7a\x3d\xf3\xfe\xd5\x14\
-\x9c\xff\x33\x79\x68\x18\x86\xb8\xbb\xbb\xc3\xed\xed\xad\x21\x8b\
-\x64\xc9\x43\xea\x60\xe9\xcd\xe8\x2d\x5b\xad\xd6\x4e\x9e\xc9\x71\
-\x94\x9e\xe7\xc1\xf3\x3c\xac\xd7\x6b\x43\xee\x70\x2a\x1e\x73\x5d\
-\x12\x3c\x72\xbd\xbd\x5c\xf6\x2b\xf3\x48\xae\x86\xb0\xf3\x49\x09\
-\x48\xd9\xfb\x19\x04\x01\x9e\x3f\x7f\x6e\xd6\x19\xda\x64\x97\xda\
-\x6f\xbc\x7e\xb6\x87\x96\x7e\xa8\x7d\x15\x23\x61\x12\xc7\x31\xc6\
-\xe3\x31\xc6\xe3\xb1\x91\xe3\xc9\xc9\xef\x12\x50\xb2\x34\x42\xad\
-\x2d\x67\xe1\xf2\xf7\x9c\x01\xb4\x5c\x2e\x11\x45\x11\xfa\xfd\x3e\
-\xe2\x38\x46\x1c\xc7\x3b\x84\x93\x7c\x4e\x09\x50\x02\x8e\xe5\x13\
-\xb6\x87\xd9\x4d\xde\xbc\x1f\x87\x7c\x0d\x87\x43\x5c\x5c\x5c\xa8\
-\xb7\x54\x70\x7e\x5f\x20\x2d\xcb\x12\x71\x1c\x63\x3a\x9d\x62\x3c\
-\x1e\x63\x32\x99\x98\xfd\x28\x52\x90\x6e\x0b\x12\x38\x31\xbe\xd3\
-\xe9\x98\xe5\xb9\x92\xf8\x89\xa2\x08\xdd\x6e\x17\x8b\xc5\xc2\x80\
-\x53\x0a\x1c\xa4\xa7\x26\x39\xc5\x59\xba\x9c\x42\x2f\x15\x4b\x04\
-\x3d\x47\x7c\x72\x2a\xfb\xe9\xe9\x29\x06\x83\x81\xf1\xf6\x6a\x0a\
-\xce\xef\xca\x48\xd6\x24\x49\x82\xd9\x6c\x86\xf1\x78\x8c\xe9\x74\
-\x6a\x88\x1d\x99\x4f\x4a\xaf\xc7\x29\x05\xdc\x1b\xca\x11\x9b\x5c\
-\x1d\x11\x45\x11\x66\xb3\x19\xbe\x7c\xf9\x62\xbc\xa0\xad\x48\xa2\
-\x17\x67\xce\x2b\x57\xbd\xf3\x7d\xf1\x36\xee\x8b\x19\x0c\x06\x18\
-\x8d\x46\x66\xc0\xb6\x32\xb1\x0a\xce\xef\xd6\x7b\x12\x08\x72\x08\
-\x75\x92\x24\x98\xcf\xe7\x88\xe3\xd8\xd4\x1a\x65\x4d\x51\xd6\x40\
-\xe5\x73\x31\x07\x3c\x3f\x3f\xc7\xc9\xc9\x09\x1e\x1e\x1e\xf0\xf1\
-\xe3\xc7\x47\x3b\x3b\xeb\x86\x47\x4b\x21\x01\xc1\x1a\x04\x81\x09\
-\x93\x39\x54\x5b\x41\xa9\x84\xd0\x0f\x05\x4c\x86\x9c\xec\x32\x69\
-\xb7\xdb\x18\x0c\x06\xc8\xb2\xcc\xfc\x2b\x8a\x62\x67\x2a\x5e\xd5\
-\x58\x90\x24\x49\xcc\xf3\x4f\x26\x13\x24\x49\xf2\x48\x91\x44\x0f\
-\x5c\x35\xf8\xb9\xd5\x6a\x99\x36\xb2\x76\xbb\x6d\xbe\x72\x75\xa1\
-\xdd\x55\xa3\xa6\xe0\xfc\x6e\x01\x6a\x97\x27\x24\x29\xc4\x92\x0a\
-\xc7\x48\x32\xcc\x64\xfe\xc7\x55\x08\x12\xac\xac\x4d\xf2\x76\x32\
-\xb4\xf4\xb8\xfc\x2a\xc3\x63\xce\x0b\xe2\x42\x26\xd6\x56\x29\xa0\
-\x90\x80\x94\xde\x5b\x4d\xc1\xf9\xfd\xe7\x14\xc2\x93\xf1\xab\xad\
-\x6d\x25\x88\x82\x20\xd8\x01\x24\xbf\x97\x8a\x1d\xdf\xf7\xcd\xf0\
-\xea\x4e\xa7\x53\xd9\x3f\x4a\x86\x97\xa4\x10\x47\x70\x32\x7f\xad\
-\xdb\x64\x66\x1f\x2e\xea\x3d\x15\x9c\xdf\x25\x20\x25\x30\xe5\xef\
-\x25\x58\xab\xca\x1d\xf2\xab\xed\x81\x01\x18\x90\xf9\xbe\xbf\x33\
-\xc9\xa0\x6a\xc0\x97\xf4\xa2\xf2\xeb\xa1\x7f\x0a\x4a\x05\xe7\x77\
-\x6f\xb6\xa7\xb4\x5b\xbb\x6c\x45\x4f\x55\xd3\xb3\x3d\x7f\xc8\x1e\
-\x0d\x52\xa5\xd9\xad\x92\xee\x55\xd5\x42\x25\xf9\xa4\xa0\x54\x70\
-\xfe\x50\xde\x53\x76\xa1\x48\xb0\xd6\xad\x5c\xa8\x6b\xdb\xb2\x43\
-\xcd\x2a\x26\xb6\x8a\xdd\xad\xdb\xbf\x62\x7b\x75\xbb\xab\x45\xed\
-\x0f\xbc\x4e\xb4\x94\xf2\x6d\x91\x44\x75\x5b\xab\xeb\x06\x44\x57\
-\x79\xc2\x7d\x80\xde\xf7\xb8\x3a\xb0\xab\x29\x38\xd5\x9e\x00\xe4\
-\x63\x40\x54\x05\xcc\x7d\x80\x54\x53\x70\xaa\xa9\xa9\x1d\xc3\x4b\
-\xe8\x47\xa0\xa6\xa6\xe0\x54\x53\x53\x53\x70\xaa\xa9\x29\x38\xd5\
-\xd4\xd4\x14\x9c\x6a\x6a\x0a\x4e\x35\x35\x35\x05\xa7\x9a\x9a\x9a\
-\x82\x53\x4d\x4d\xc1\xa9\xa6\xa6\xa6\xe0\x54\x53\x53\x70\xaa\xf2\
-\xa6\xcf\x7c\x00\x00\x00\x25\x49\x44\x41\x54\xa9\xa9\x29\x38\xd5\
-\xd4\xd4\x14\x9c\x6a\x6a\x0a\x4e\x35\x35\x35\x05\xa7\x9a\x9a\x82\
-\x53\x4d\x4d\x4d\xc1\xa9\xa6\xf6\x23\xda\xff\x01\xb7\xbe\xbf\x34\
-\x7c\xc5\x7a\x2d\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
-\
-"
-
-qt_resource_name = b"\
-\x00\x05\
-\x00\x6f\xa6\x53\
-\x00\x69\
-\x00\x63\x00\x6f\x00\x6e\x00\x73\
-\x00\x11\
-\x0c\x97\x94\x07\
-\x00\x61\
-\x00\x64\x00\x42\x00\x6c\x00\x6f\x00\x63\x00\x6b\x00\x50\x00\x6c\x00\x75\x00\x73\x00\x31\x00\x36\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\
-\x00\x0d\
-\x0c\x56\x4d\x87\
-\x00\x65\
-\x00\x72\x00\x69\x00\x63\x00\x57\x00\x65\x00\x62\x00\x31\x00\x36\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\x00\x0b\
-\x00\xb0\xe2\x96\
-\x00\x6c\
-\x00\x6f\x00\x61\x00\x64\x00\x69\x00\x6e\x00\x67\x00\x2e\x00\x67\x00\x69\x00\x66\
-\x00\x08\
-\x03\xc6\x59\xa7\
-\x00\x70\
-\x00\x6c\x00\x75\x00\x73\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\x00\x0a\
-\x05\x78\x4f\x27\
-\x00\x72\
-\x00\x65\x00\x6c\x00\x6f\x00\x61\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\x00\x0d\
-\x0c\x7a\x4d\x87\
-\x00\x65\
-\x00\x72\x00\x69\x00\x63\x00\x57\x00\x65\x00\x62\x00\x33\x00\x32\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\x00\x0b\
-\x00\xbd\xc0\x27\
-\x00\x73\
-\x00\x65\x00\x74\x00\x74\x00\x69\x00\x6e\x00\x67\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\x00\x09\
-\x06\x98\x83\x27\
-\x00\x63\
-\x00\x6c\x00\x6f\x00\x73\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\x00\x08\
-\x0b\x07\x5a\x27\
-\x00\x65\
-\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\x00\x14\
-\x0b\x6a\x55\xa7\
-\x00\x62\
-\x00\x6f\x00\x78\x00\x2d\x00\x62\x00\x6f\x00\x72\x00\x64\x00\x65\x00\x72\x00\x2d\x00\x73\x00\x6d\x00\x61\x00\x6c\x00\x6c\x00\x2e\
-\x00\x70\x00\x6e\x00\x67\
-\x00\x11\
-\x0c\x49\x94\x07\
-\x00\x61\
-\x00\x64\x00\x42\x00\x6c\x00\x6f\x00\x63\x00\x6b\x00\x50\x00\x6c\x00\x75\x00\x73\x00\x36\x00\x34\x00\x2e\x00\x70\x00\x6e\x00\x67\
-\
-\x00\x0e\
-\x05\x17\xcb\xe7\
-\x00\x62\
-\x00\x72\x00\x6f\x00\x6b\x00\x65\x00\x6e\x00\x50\x00\x61\x00\x67\x00\x65\x00\x2e\x00\x70\x00\x6e\x00\x67\
-"
-
-qt_resource_struct_v1 = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x02\
-\x00\x00\x00\x58\x00\x00\x00\x00\x00\x01\x00\x00\x07\x64\
-\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x00\x22\x28\
-\x00\x00\x00\x74\x00\x00\x00\x00\x00\x01\x00\x00\x0e\xec\
-\x00\x00\x01\x64\x00\x00\x00\x00\x00\x01\x00\x00\x56\xcb\
-\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x12\xa1\
-\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x01\x00\x00\x26\xab\
-\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00\x28\xf9\
-\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x70\
-\x00\x00\x01\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x36\xa1\
-\x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x03\x34\
-\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x01\x00\x00\x15\xbb\
-\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-"
-
-qt_resource_struct_v2 = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x0c\x00\x00\x00\x02\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x58\x00\x00\x00\x00\x00\x01\x00\x00\x07\x64\
-\x00\x00\x01\x6a\x36\x3b\x4f\xda\
-\x00\x00\x00\xc4\x00\x00\x00\x00\x00\x01\x00\x00\x22\x28\
-\x00\x00\x01\x6a\x36\x3b\x50\xa6\
-\x00\x00\x00\x74\x00\x00\x00\x00\x00\x01\x00\x00\x0e\xec\
-\x00\x00\x01\x6a\x36\x3b\x4f\xd1\
-\x00\x00\x01\x64\x00\x00\x00\x00\x00\x01\x00\x00\x56\xcb\
-\x00\x00\x01\x6a\x36\x3b\x50\xa4\
-\x00\x00\x00\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x12\xa1\
-\x00\x00\x01\x6a\x36\x3b\x4f\xf4\
-\x00\x00\x00\xe0\x00\x00\x00\x00\x00\x01\x00\x00\x26\xab\
-\x00\x00\x01\x6a\x36\x3b\x50\x21\
-\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x01\x00\x00\x28\xf9\
-\x00\x00\x01\x6a\x36\x3b\x4f\xa3\
-\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x2b\x70\
-\x00\x00\x01\x6a\x36\x3b\x4f\xf2\
-\x00\x00\x01\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x36\xa1\
-\x00\x00\x01\x6a\x36\x3b\x4f\xcf\
-\x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x03\x34\
-\x00\x00\x01\x6a\x36\x3b\x4f\xf7\
-\x00\x00\x00\xa4\x00\x00\x00\x00\x00\x01\x00\x00\x15\xbb\
-\x00\x00\x01\x6a\x36\x3b\x4f\x94\
-\x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\x6a\x36\x3b\x4f\xd8\
-"
-
-qt_version = [int(v) for v in QtCore.qVersion().split('.')]
-if qt_version < [5, 8, 0]:
-    rcc_version = 1
-    qt_resource_struct = qt_resource_struct_v1
-else:
-    rcc_version = 2
-    qt_resource_struct = qt_resource_struct_v2
-
-def qInitResources():
-    QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-def qCleanupResources():
-    QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-qInitResources()
--- a/eric6/Helpviewer/data/javascript.qrc	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-<!DOCTYPE RCC>
-<RCC version="1.0">
-<qresource>
-  <file>javascript/jquery-ui.js</file>
-  <file>javascript/jquery.js</file>
-</qresource>
-</RCC>
--- a/eric6/Helpviewer/data/javascript/jquery-ui.js	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*!
- * jQuery UI 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.16",
-keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=
-this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,
-"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":
-"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,
-outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a,
-"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&
-a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&
-c.ui.isOverAxis(b,e,i)}})}})(jQuery);
-;/*!
- * jQuery UI Widget 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)try{b(d).triggerHandler("remove")}catch(e){}k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(d){}});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=
-function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):
-d;if(e&&d.charAt(0)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=
-b.extend(true,{},this.options,this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+
-"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",
-c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
-;/*!
- * jQuery UI Mouse 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- *	jquery.ui.widget.js
- */
-(function(b){var d=false;b(document).mouseup(function(){d=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+
-this.widgetName)},_mouseDown:function(a){if(!d){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,f=a.which==1,g=typeof this.options.cancel=="string"&&a.target.nodeName?b(a.target).closest(this.options.cancel).length:false;if(!f||g||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
-this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(e){return c._mouseMove(e)};this._mouseUpDelegate=function(e){return c._mouseUp(e)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return d=true}},_mouseMove:function(a){if(b.browser.msie&&
-!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=
-false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
-;/*
- * jQuery UI Sortable 1.8.16
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Sortables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var a=this.options;this.containerCache={};this.element.addClass("ui-sortable");
-this.refresh();this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a===
-"disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&
-!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,
-left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};
-this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=
-document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);
-return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<
-b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-
-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,
-a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],
-e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();
-c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):
-this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,
-dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},
-toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||
-this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?j:g<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();
-var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?c&&c=="right"||a=="down"?2:1:a&&(a=="down"?2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},
-_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();
-if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),
-this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),
-this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&
-this.helper)this.offset.parent=this._getParentOffset();for(var b=this.items.length-1;b>=0;b--){var c=this.items[b];if(!(c.instance!=this.currentContainer&&this.currentContainer&&c.item[0]!=this.currentItem[0])){var e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=
-this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=
-d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||
-0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",
-a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-
-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=
-this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==
-""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=
-this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a=
-{top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),
-10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?
-document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),
-10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=
-this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&
-this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();
-var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-
-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-
-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],
-this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]=
-"";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",
-f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,
-this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",
-a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},
-_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});d.extend(d.ui.sortable,{version:"1.8.16"})})(jQuery);
-;
\ No newline at end of file
--- a/eric6/Helpviewer/data/javascript/jquery.js	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-/*! jQuery v1.7.1 jquery.com | jquery.org/license */
-(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
-f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
-{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
\ No newline at end of file
--- a/eric6/Helpviewer/data/javascript_rc.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6512 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Resource object code
-#
-# Created by: The Resource Compiler for PyQt5 (Qt v5.12.1)
-#
-# WARNING! All changes made in this file will be lost!
-
-from PyQt5 import QtCore
-
-qt_resource_data = b"\
-\x00\x00\x24\x34\
-\x00\
-\x00\x86\x68\x78\x9c\xd5\x7d\xfb\x73\xdb\x38\xd2\xe0\xcf\xa7\xbf\
-\x42\xe6\x5d\xb9\xc4\x88\x92\xa5\x64\x76\x76\x86\x0a\xa3\xf2\xd8\
-\x9e\x8d\xeb\xcb\xeb\x62\x67\x67\xe7\x54\xba\x14\x1f\x90\xc4\x44\
-\x16\xf5\x89\x54\x12\xaf\xa4\xff\xfd\xba\xd1\x00\x08\x90\xa0\x1f\
-\xd9\xec\x55\x6d\xd5\xd4\x44\xc4\xb3\xd1\x68\xf4\x0b\xdd\xf0\xc9\
-\x93\xa3\x56\xfb\x49\xfb\xd3\xff\xde\xb2\xcd\x6d\xfb\xc3\x65\x7b\
-\xd8\xff\xa5\x3f\xfc\x19\xca\xb0\xf8\x2c\x5b\xdf\x6e\xd2\xf9\xa2\
-\x68\x3f\x1d\x0c\x87\x5e\xfb\xf4\xc3\xf5\xcb\xb7\xef\xaf\xfa\xc5\
-\xb7\xa2\xdd\x59\x14\xc5\xda\x3f\x39\xf9\xf4\xdf\xd8\x75\x9b\xf6\
-\xe3\xec\xe6\x24\x8c\xb2\x6d\xe1\x62\xd7\xf3\x6d\xb8\x6c\x2f\xd3\
-\x98\xad\x72\x96\xb4\xb7\xab\x84\x6d\xda\xc5\x82\xb5\x5f\x5f\x5e\
-\xb7\xb3\x4d\xfb\x6f\xef\x5e\xb5\xff\xce\x36\x79\x9a\xad\xda\x4f\
-\x65\xbb\xbc\x8f\x3d\x8d\x71\xfb\xd9\x66\x7e\x22\xaa\x05\x50\xa2\
-\x3e\xc9\xe2\xbc\x2f\x1a\xe1\xd4\x1f\x2e\xa1\xf2\xa4\xd5\x99\x6d\
-\x57\x71\x01\xc3\x76\x62\xef\x93\xbb\x93\x5f\xed\xcf\x9d\xd0\x8b\
-\xdc\xdd\x97\x70\xd3\x4e\x82\xb0\xbf\xca\x12\xf6\x26\xbc\x61\xfd\
-\x22\x7b\x95\x7d\x65\x9b\xb3\x30\x67\x1d\x77\x94\xce\x3a\x4e\xb8\
-\x61\xa1\x13\x04\x41\xe2\xee\x22\x68\xb9\x86\xef\x55\xf1\x06\xda\
-\x8f\x92\x20\xea\xaf\xa0\x13\x36\x3b\x0a\xfb\x8b\x0d\x9b\xed\xf7\
-\x47\xc9\x7e\x1f\x35\x8c\x77\x14\x04\xce\x4d\xb8\x76\xdc\x0d\x2b\
-\xb6\x9b\x55\x7b\x16\x2e\x73\x36\x0a\x83\xb8\xe3\xa4\x37\xf3\xc9\
-\x36\x67\x50\x1b\xfc\x4f\xa7\x9b\x74\x9d\xa9\xe3\x4e\x06\xd3\x11\
-\xb5\x3c\x3a\x0a\x8f\x8f\x97\x9d\xd0\x3d\xd0\x77\xe7\x24\x5d\xad\
-\xb7\xc5\x3e\x67\x4b\x16\x17\xfb\x82\x7d\x2b\x10\xcc\x7d\xb4\x2d\
-\x8a\x6c\xb5\xcf\xa2\x4f\x50\x7c\xd2\x2f\x58\x5e\x74\x12\x77\x0c\
-\xc0\x25\x69\x1e\x46\x4b\x96\xf8\x0e\x2e\x26\x19\x4b\x70\x23\x3f\
-\x72\xc5\xd0\x0a\x37\xf8\xb5\x13\x13\xc7\xf0\x5b\xac\x39\xef\xb8\
-\xfd\x70\x95\x5c\xb1\xe5\x0c\x7e\xcd\xd2\x65\xc1\x36\x25\x7a\x65\
-\x8f\x76\xdc\x8f\xb7\x9b\xb3\xab\xab\x4e\xb1\x48\x73\xcf\xf9\x92\
-\xe6\x69\x94\x2e\xd3\xe2\xd6\x71\x01\x8b\xce\x22\x4d\x12\xb6\x72\
-\xf6\xfb\xb8\xcf\xbe\xad\x37\x62\x9c\xbc\x4f\xe5\xbc\x93\x7b\x70\
-\xfb\x4b\xb6\x9a\x17\x8b\x43\xdc\xdf\xa6\x01\xfe\x6f\xbf\xdf\x1d\
-\x38\x9e\xf1\xa3\xff\x85\x48\xc5\xdd\xe1\x20\x05\x5b\x25\x1d\x2c\
-\xf6\x76\xa2\xdc\x77\x88\x6c\x1d\xaf\xf5\x99\xdd\x9e\xc1\x5e\xf8\
-\xbb\xd3\x57\xd7\xfe\xf0\x17\xef\xb7\xd3\xb3\xff\xba\x7a\x77\x7a\
-\x76\xe1\xff\xe2\x9d\x9d\xbe\xbb\xfa\xf8\xea\xed\xd9\x7f\xf9\x4f\
-\x07\xde\xd9\xdb\xd7\xaf\x4f\xa1\xc5\x2f\xf4\xeb\xcd\xb9\xff\xeb\
-\x50\xfe\xfc\xf8\xea\xe2\xf7\x6b\xfd\xfb\xfd\xe5\xdf\x5e\x42\xc1\
-\x33\x28\x78\x73\xfd\xfe\xed\x2b\x7f\xf8\x57\xef\xfc\xe2\xd5\xc5\
-\xf5\x85\xff\xd3\xcf\xde\xf9\xdb\x3f\xde\xf8\x3f\x0d\xbc\x0b\x18\
-\xe4\xd9\x5f\xe0\x9f\xeb\x8b\xf7\xfe\xf0\x99\x77\x71\x05\x33\x5e\
-\xf8\x4f\xff\xea\xbd\x7c\xfb\xfa\xc2\x7f\xf6\xb3\x77\xf9\xe6\xea\
-\xe2\xfd\xb5\xff\xd3\x5f\x3c\x3e\xc3\xb3\xbf\x7a\xaf\x2f\xde\x7c\
-\xc0\x81\xdf\x7c\x78\xfd\xee\xf4\xfc\xe3\xe9\xf9\xb9\x3f\x1c\xfc\
-\x55\x7e\x9e\x5f\x9c\x5d\xbe\x3e\x85\xe9\x86\x03\x55\x74\xf9\xf7\
-\xcb\xf3\x0b\x28\x19\xca\x12\x31\xdf\xe0\x17\x59\xf0\xfa\xc3\xab\
-\xeb\xcb\x77\xaf\xfe\x84\xb2\x9f\x65\xd9\xd5\x87\xdf\xae\xdf\x9f\
-\x9e\x01\x4e\x06\xbf\x7a\xef\x4e\xff\x76\xf1\x91\x43\xfd\xec\x27\
-\xfa\xf8\xf0\xce\x7f\xf6\xcc\x7b\x77\xf1\xfe\xf2\x2d\x00\xf0\xeb\
-\xc0\xa3\x15\x3f\xfb\xd5\xbb\x7a\x79\x09\x90\x0e\x7f\xf6\x08\x8b\
-\xcf\x9e\x7a\xd7\xa7\xbf\xf9\xbf\x7a\xd8\xe3\x17\xef\x8f\xcb\x37\
-\x30\xce\x15\xe0\xea\x70\x70\x47\x71\x7f\xb6\x92\x1b\xb4\x5b\x6f\
-\xb2\xf5\x69\x51\x6c\x7c\x5e\x8a\x5f\x48\x03\xf0\x33\x84\x42\xef\
-\xe3\x2c\x8b\xb7\x39\xd5\xf1\x9f\x1e\x15\x28\xfa\xe2\xc7\x55\x90\
-\x58\x71\xbb\x66\xd9\xac\x1d\x22\x3d\xad\xb6\x37\x11\xdb\x38\x63\
-\x24\x9c\x3e\x0b\xe3\x85\x4e\x92\x74\xbc\x5b\x58\x37\xca\x59\x71\
-\x9d\xde\x30\x60\x48\x7a\x8b\x18\xce\x07\x4d\x08\xc7\x3d\x3a\x3e\
-\x8e\xfa\x71\xb8\x5c\x42\xe1\xc1\x83\x23\xe1\xfa\x7c\x58\x02\xae\
-\x1f\xae\xd7\xcb\x5b\x22\xeb\x70\x33\xdf\xde\xe0\x99\x80\x76\x79\
-\xbc\xc9\x96\xcb\x77\xfc\x8c\xf8\x95\xc9\x43\x3c\xdd\xfd\x68\x93\
-\x7d\xcd\xd9\xa6\x7f\x93\xa7\xec\xf8\xf8\xa4\x93\x17\x61\x91\xc6\
-\xfb\x0d\x5b\xc2\xbf\x5f\x98\x2b\x4e\x2a\x9f\x2b\xce\xf3\x8e\xb3\
-\xce\xf2\x14\x47\x71\x5c\x77\xbf\x07\x2e\x9a\x67\xcb\x6d\xc1\xee\
-\x6a\x46\xeb\x2f\x0f\x6a\xd3\xf1\x3c\xe9\xc8\x59\xf7\x72\xd8\xfd\
-\x2c\xfd\xc6\x12\x09\x44\xe5\xf8\xaa\x29\xbc\xa1\xeb\x22\xec\xe1\
-\xb6\xc8\xf6\xb4\xe4\x86\x2e\x19\x9c\xc2\xd9\x32\xfb\x8a\x5d\xba\
-\x0d\x75\xbd\xdb\x3b\x6b\xbf\xf1\xe9\x80\x0d\xb0\xff\xee\x0c\xc4\
-\x26\x3c\x64\x6d\xf7\x02\xd7\xfa\xf1\xd0\x09\x16\x7d\xc2\xb1\x78\
-\xf7\x4e\x02\x1f\x26\xbe\x36\x06\xb2\x03\x92\x42\x0a\x72\xfd\xf0\
-\xe0\xfd\xf3\x12\x04\xe2\x37\x8d\xd8\xdd\x1d\xf0\xba\x10\xe4\xc5\
-\x27\x29\x2b\xca\x21\xa9\xb1\x03\xf4\x89\x0c\x91\x97\xd3\xa8\xee\
-\x0e\x45\x09\x16\x80\xe4\x70\x47\xb3\x6c\xd3\x41\x1a\x8c\x46\x72\
-\xda\xe3\xe3\x10\x6a\x60\x54\x39\xf9\x88\x64\x5a\x05\x52\x1c\x36\
-\xc2\xb3\x25\x29\x04\xb8\x35\xff\x96\xa4\x23\xbf\xf9\x92\x1d\x1c\
-\x03\x36\x27\x67\x97\xab\xa2\x13\x1a\x30\xba\xde\x70\xc0\x87\x3b\
-\x4a\xf3\x37\xe1\x9b\x0e\xca\x9a\x08\xe6\x1f\xc8\x55\x45\x87\x50\
-\xc9\xd4\x8e\x7b\x10\xe2\xad\x3d\x38\x78\x42\x60\x5d\x71\x09\x87\
-\x3c\xbd\x2e\x69\xf8\xd2\xa3\x14\x98\x0b\xec\x72\xbe\x5d\xaf\xb3\
-\x4d\xd1\x27\x91\x08\x27\x6c\x53\x8c\x1d\xed\xc3\xf1\x5b\xce\x4d\
-\x06\x22\x36\xc9\xbe\xc2\x1a\xbb\x0e\x08\x8c\x5e\x75\x12\xc7\xd3\
-\xb7\x00\x00\xdb\xb0\x2f\x00\xd9\x39\x9b\x85\xdb\x25\x02\x08\xc7\
-\x9d\xad\x1e\x04\xd7\x76\xc5\x21\xb3\x4f\xe3\x12\x77\xe4\xec\x6a\
-\xe2\xfc\x91\x26\xc5\xc2\xf1\x9c\x97\x0c\x75\x2b\x67\xea\x99\x4c\
-\x4f\xc9\xe5\xa4\x33\xf3\xe6\xde\x8d\x47\x72\x0f\xfb\x32\x4f\x9b\
-\x7d\xde\xa3\x6d\xf8\x7d\x99\x85\x1a\xdd\xcf\xe0\x10\x87\x49\x92\
-\xae\xe6\x4e\x97\x13\x72\xb1\xd9\x32\xa4\xc6\x01\x6e\xcc\x8d\xdb\
-\xdc\x2d\xca\x36\xa0\xa6\x51\xaf\xae\x84\xd2\xe8\xbd\xba\xa3\xf7\
-\x0d\xf0\xc8\x74\x55\x9d\xf3\x20\xcf\x4b\x7b\x7e\x40\xe2\x64\x01\
-\xa7\x24\x1a\x7c\x3c\x71\x5e\xb1\x59\x01\xa8\x78\x4f\x98\xf0\x27\
-\xce\x75\xb6\x86\xef\xdf\x32\x50\x6c\x6e\x00\x35\x0b\xd0\xb9\x0c\
-\x9d\xca\x4b\x83\x5d\xba\x5a\xb1\x0d\x1f\x82\x04\x48\xf9\xed\xf1\
-\x9f\x84\x58\xad\x8e\x0a\xbc\x16\x08\x03\xa3\x63\xf9\xed\xf1\x9f\
-\x7a\x47\xad\xe0\xc0\x25\xdb\xc4\xe1\x63\x39\xdd\x68\x1a\xa8\x6d\
-\x98\xf1\x93\x3b\x0b\xb4\x93\x9b\x6a\x0d\x49\xba\x70\x25\x67\xa4\
-\x53\x4b\x55\x70\xd1\x31\x76\xf9\x61\x5a\x78\x09\x71\xa0\x19\x50\
-\xed\x1a\x0e\x15\x50\xa1\x00\x80\xc3\x54\x01\xc0\x9b\x73\x10\x84\
-\x8c\x9c\x1d\x95\x32\x52\x03\x48\x75\x2c\x01\x82\xe1\xbf\x03\x24\
-\xbe\xb3\x30\xa5\x82\x8c\x08\x5b\x2a\x65\xa8\xe2\x4d\x1c\x1f\x36\
-\x6e\x97\x84\x45\x68\x88\x73\x2f\x51\x5a\x26\x68\x75\x58\x0d\xa5\
-\xc9\xe4\xd9\x14\x0e\x19\x17\xb8\x78\x66\x0c\x9e\x28\xc0\x43\xdd\
-\x5d\x30\x94\x98\x6b\x0f\xf0\xed\x14\x21\x9e\x37\xe4\x39\xc0\x9a\
-\x3d\xf8\x8a\x6a\xdd\x39\x33\x0c\x54\x97\x96\xd6\xc7\x4b\x02\xc9\
-\xa1\x04\x12\x3a\xa8\xc7\xbf\x00\x4e\x75\x7c\xcc\xe7\x4b\x68\x69\
-\x55\xed\x22\x54\xbc\xb4\x1f\x65\xc9\xad\x87\xec\x14\xf4\x04\x58\
-\xfd\xd9\x22\x5d\x26\xc0\x47\x55\x7d\x0c\x1a\x7a\xc1\x2e\x96\x0c\
-\xbf\x3a\x4e\x92\x7e\x01\x58\x4b\x64\x45\xfd\xbc\xb8\x5d\x32\x6f\
-\x77\x93\xae\x04\xdd\x39\xc3\xc1\x00\xd0\xea\x2d\xc4\x27\x8a\x37\
-\xc7\x13\xa7\xd9\x1f\x78\x74\x40\x89\x7e\x07\x1c\xf1\x92\x0b\xaa\
-\x31\xe0\xb8\x64\xb3\x19\xe8\x3e\xe2\x33\x08\x60\xcc\x91\x95\x5d\
-\x06\x4e\xb6\xd2\x19\x66\xba\xe2\xa2\x63\xc3\x6e\x40\xf2\x89\xd5\
-\xb8\x04\x24\x9a\x13\xeb\x65\x78\x0b\xa4\x95\xad\x98\x63\xee\x39\
-\x2a\xe2\xeb\xe5\x16\x0e\xbf\xbf\x03\x50\x6b\x7b\x1e\x72\x85\x7e\
-\x12\x4e\x51\x09\x2c\x32\x24\x54\x25\xab\x58\x1b\x66\x4d\x38\xeb\
-\xe5\x23\xe4\x13\x36\x0d\xf4\x8f\xfd\x7e\x32\x1d\xe9\x05\xfd\xf5\
-\x36\x07\x26\x0a\x23\xc3\x07\x90\xce\xc1\x43\x8a\xae\x4d\x0a\x27\
-\xa2\x13\x69\x23\x45\x53\xd8\xd8\x56\xd8\x67\xb4\x1d\x20\x16\x35\
-\xcb\xce\x55\xe0\x04\x83\x11\x7b\x1e\x09\xf1\x39\x62\xdd\xae\x1b\
-\xf6\xb3\x35\x0e\x0c\x43\xc0\x84\xd0\x6f\x0a\x22\x0d\x7f\x0d\xa7\
-\x42\x41\x54\x83\x7a\x09\x07\x27\x5b\x15\x21\x4c\x69\x57\x65\x4b\
-\xea\xc8\x6e\x10\x80\x73\xf1\xfd\x4e\x48\x63\x30\xd4\x1a\x6a\x50\
-\x98\x0e\x7f\xf6\x51\x49\x00\xbd\x15\x9b\xd1\x3c\x50\x7e\xf0\x16\
-\x61\x7e\xc5\xd5\xa0\xca\xac\x80\x06\x6e\xd1\x71\x21\xad\x54\x21\
-\xdd\x30\x33\x6d\xd3\x08\xc7\xe6\x1c\x7a\x89\x8c\x19\x24\x2a\x1f\
-\x95\x73\x69\x5f\x7c\x20\x87\x1e\x91\xa6\x4d\x9d\x50\x75\x01\x04\
-\xbf\x50\x52\x1e\x79\xc4\x08\x8b\x82\x21\x18\xcd\x54\x47\xdf\x03\
-\xc9\x72\x92\x83\x97\xe6\x6f\x01\xa0\xd3\x6f\x69\xde\xc0\x26\xda\
-\xe1\x0b\x5c\xe9\xf3\xa8\xab\x5a\x57\x5a\x7a\xcc\x03\x96\xaf\x99\
-\xa2\x60\x2b\x96\xc3\x22\x7b\xf1\x16\xb8\xef\xd5\x8a\x08\x3a\xa6\
-\x78\xc0\xe1\xbf\x0e\x39\x3f\xdc\x51\x6b\x74\x52\xf5\x86\xc0\x51\
-\x9b\xb3\xe2\x3f\xd9\x29\x72\x42\x4b\xa8\xf8\x46\x22\xf4\x8d\xa0\
-\xd6\xd7\x8f\x97\x2c\x5c\x9d\x03\x2f\x26\xf6\xf6\x39\xd0\x8a\x46\
-\xda\xef\x40\x67\xac\xf2\xb8\xc4\xc1\xc0\x4b\x46\x1d\xdc\xe2\x78\
-\xea\x1e\x05\xab\xed\x72\x39\x8a\xe1\xd0\x14\x9b\xdb\x5d\x84\x96\
-\x56\x01\x98\x9a\x83\x18\x0d\x57\xc9\x12\x54\x78\x87\x98\x0b\x08\
-\x8e\x38\x2c\x50\x9f\x71\x77\x87\xcf\xe8\x8b\x38\x30\x20\x24\x0e\
-\xc1\x12\x20\x00\xe9\x4b\x0d\x47\xda\x6f\x0d\x02\x2f\x36\x75\xaf\
-\xaa\xe8\xe2\x7e\x03\x97\x7b\x69\xd0\x39\x23\xec\x87\xd0\x9b\x60\
-\xeb\xa9\x74\x36\xb8\x51\xc7\x79\x02\x0a\x0e\x97\x72\xc0\xb8\x3a\
-\xb2\xba\x3a\x1c\xad\x86\xda\xdd\xb3\x20\xa0\xdd\x43\xa9\xf2\x2c\
-\x49\xda\x8a\xbe\x1e\xc2\x8d\x24\x17\xf5\xbf\xf2\x4d\x31\x56\x84\
-\x64\x4f\x2c\x28\xec\x03\xaf\x4d\x41\x62\xf4\xb9\x4b\xc8\x9b\x8d\
-\x42\xb3\x6c\x38\x1d\xcd\x02\xd6\x75\x7a\x4e\x37\xe4\xca\x36\x74\
-\x4d\x82\x78\x14\x03\xea\x68\xbb\x61\x0a\x25\x89\x27\xb3\x69\xd0\
-\x52\x33\x2d\x4a\x19\x1c\x91\x0c\x5e\xa0\xe1\x3b\x42\x96\x16\x44\
-\x9c\xe1\xee\xe8\x0b\x18\x76\x09\xe0\x02\xb5\x0c\x65\x04\x2b\xf3\
-\x82\xac\x65\x12\x74\x34\x33\x6f\x09\xea\x4a\xb0\x62\x5f\xdb\x00\
-\x92\xe4\x9e\x41\x24\x05\x06\x57\x20\x76\xc0\x27\x65\x95\x2b\xa7\
-\x2b\xe5\x43\xa5\x75\xec\xed\xd0\xef\x96\xaf\xc3\x98\xf9\xcc\x23\
-\xec\xa1\xbb\xcd\x0f\xc5\xc7\x05\xaa\xed\xef\x36\x0c\x2c\x14\xbf\
-\x36\x5a\xbf\xd6\x66\xbf\x97\x1d\x7f\x03\xa5\xf2\x6c\x19\xe6\xc0\
-\x83\xc0\x06\x01\x50\x44\x63\xb0\xe1\xf1\x5f\x64\x33\x34\x1c\xe2\
-\xc8\xac\xab\x10\x24\x92\xaa\x81\x33\xb5\xa1\x42\x35\x4b\x90\xad\
-\xe6\x40\x40\xa0\x99\x7b\xb3\xe0\x74\xb3\x09\x6f\x35\x20\x73\x3c\
-\xd1\x44\x30\x0a\xd1\x60\x77\x82\x06\xcc\xdd\x19\x49\x70\xc4\x8e\
-\x8f\x67\xd2\xa0\x94\x08\x12\x32\x08\x4f\x1e\x90\x37\x22\x2b\x99\
-\xa2\x68\x00\x72\x04\xdd\xd4\xf5\x5b\x09\x52\x08\xf4\x4c\xfa\xf1\
-\x22\xdc\x9c\x16\x60\xc1\x22\x1c\x1f\x15\xe3\x07\x31\xd7\xec\x4c\
-\x99\x07\x82\x4a\xc8\x0b\x82\xda\xf7\x1c\x9d\x26\x69\xfe\xbb\x6c\
-\x38\x9f\x24\x53\x77\x8c\xff\x17\xb0\xcc\x41\xb3\xf4\xe7\x38\x6d\
-\x0a\xb2\x0a\x9a\xa7\xdc\xae\xdd\x2d\x82\x74\xa4\x0b\x9b\x83\x74\
-\xb7\x3c\x64\xe2\xd1\x7c\x3c\x17\x04\x83\x9a\xda\x0e\xac\xf1\x8f\
-\xe9\x0a\x4e\x84\xeb\x1b\x0d\x3d\x4e\x77\x9d\x84\x8e\xb5\x5b\x9e\
-\xc5\xc5\x01\x37\xf0\x8f\xfa\xc1\x7b\x20\x5d\xf3\xc3\xab\x46\xd0\
-\x48\x75\xa7\x91\xa3\x43\xbf\x1d\x0b\x55\x3a\x8e\x27\xe8\xdd\xdf\
-\x29\xe7\x2c\xe1\xc1\x33\x66\xf2\xab\x64\xc5\x57\x17\xf3\x05\xf5\
-\xcb\xb9\x68\x81\x23\x42\x20\xe9\x1f\x41\xd4\x89\x45\x89\x3c\x75\
-\xad\xda\xb1\xd3\xab\xe9\xe3\x23\x8c\x78\xc6\x01\x78\x4b\xc5\x60\
-\x64\x01\xc2\x49\xc2\x73\xda\xd3\x27\x21\x03\x5c\xf0\xbd\x3e\x99\
-\x7b\x3a\x58\xda\x3e\x26\xfd\x84\x01\xbd\x67\xb7\x68\x48\x8f\x74\
-\x9c\x76\xe4\xa7\x60\xa7\x1d\x87\xca\x1d\x59\x4e\x5b\x0b\x98\xa9\
-\xc2\x66\x31\xbf\xa3\xfe\x0d\x2b\x42\xc4\x12\x52\xa6\xfc\xdd\xc7\
-\x4d\xd3\x01\x47\x1f\xc9\xa4\x02\xed\x54\xe1\x5e\x1f\x17\x0a\x71\
-\x7e\xb3\x48\x2c\x45\x2f\x34\xd0\xa2\xec\xff\x1a\x4a\x5c\x21\xc0\
-\xce\x25\x95\xea\x75\x23\xad\xa0\xe3\x3e\x60\x14\x74\xa9\xe2\x25\
-\x45\x1a\x4a\x37\x43\xe2\xc8\x3a\xce\xc8\xf4\x29\x14\x77\xeb\xb6\
-\x1c\xd5\xbc\xbd\x4d\x7b\xe8\x91\x64\xda\x00\x07\x41\xb1\x4d\xde\
-\x0d\xb1\xca\x83\xa0\xe1\x0a\x8d\x8a\x5b\x15\xae\x08\x56\xce\x52\
-\xa0\x3b\x7f\x94\x6f\xd8\x24\x43\xf2\x6b\x69\x3e\x5e\xc1\x24\x49\
-\x7d\x0d\xaa\x4e\x31\xa9\x8f\x87\x53\x60\x8a\x20\xac\x12\xe4\xba\
-\xf1\x81\x08\x07\x2c\x1f\x49\xc5\x89\x61\xdf\xc2\xa6\x96\x75\x35\
-\x33\x31\x26\x42\x8f\x88\x17\x85\x25\x15\x83\x8a\x89\xde\x97\xb2\
-\x2f\x2f\x39\x34\x0e\x5d\xc1\x4c\x05\x60\x10\xd2\x88\x23\x5c\x63\
-\x89\x7b\x83\x02\x26\xf1\xd8\x01\x5d\x84\x6f\x1a\x48\x6f\x6d\x5f\
-\x9d\xa9\x7d\x67\xef\xde\x58\x32\x7e\x2b\xf4\xe2\xb5\xe2\xca\x02\
-\xc8\xc9\xd5\xb4\xfb\xda\xea\x4b\xb8\x3d\xce\xbc\x5c\xe5\xb9\x7b\
-\x5c\x67\xee\x20\x02\xc4\x09\x06\xe0\xdb\x55\xa1\xea\x7e\xa3\x86\
-\xc3\x99\x2a\x32\xba\xb8\xcf\xf9\x2f\x47\xa7\x86\x19\x8d\xe9\x8e\
-\x43\xdf\x5e\xd1\x05\x93\xc8\xbc\xf9\x4b\x82\x44\x5e\x39\x81\x62\
-\x02\x40\xa5\xab\x70\xc9\x7b\xa0\x01\x0b\x74\x81\x3f\xf9\x2d\x86\
-\xa4\x6c\x65\xc3\x82\x7e\x36\x02\x9d\xd8\x6c\x34\xe9\xf5\x10\x5e\
-\x54\xbe\x2a\xe3\x41\xd1\xe1\x60\xb0\x0e\xc9\x04\x71\xe1\xf2\x02\
-\xb0\x63\xc8\x58\x06\x46\x0c\x2b\x5d\x37\x1a\x4b\xe3\xd8\x02\x04\
-\xf0\xcd\xc0\x0b\x96\x34\x17\xde\xcb\x77\xe4\xcb\x64\x49\x07\xc4\
-\xe0\x3d\x76\xce\x6b\x74\x94\xfe\x47\x9b\x39\x7c\x05\xa2\xd5\x39\
-\x43\x7f\x4c\xee\xc3\xef\xff\x21\x5a\x01\x8c\x42\x77\xfb\x94\x57\
-\x6d\x21\xc9\xbf\x84\x05\x5c\x7a\xea\xfb\xdc\x7f\xbc\x5d\xeb\xba\
-\x89\x68\x76\x28\x35\xc5\x8e\x03\x83\xf3\x96\x8e\xb7\x53\x22\x3e\
-\x0e\x57\x31\x5b\xfa\x8e\xcf\x2f\x6e\x05\xdb\x74\xf0\xac\x14\x58\
-\xe3\x0f\x41\xa0\x2c\xc3\x5b\x7f\x00\x67\x80\x77\xbe\xac\x48\x1c\
-\x72\x36\x35\x89\x5f\xe5\xd9\xbe\x4b\x02\x97\x56\x52\xd8\xa7\x49\
-\xce\xa1\x47\x07\x8d\x10\x31\x4c\x0c\xe8\xfd\x7c\xcf\x10\xc8\x9b\
-\xe1\xb0\x02\x8d\x49\x55\xa4\x5f\x00\x97\x67\x85\x17\x6a\x5d\xba\
-\x8e\x74\x9e\x9f\xe1\x98\x9c\xd2\x1d\x17\xd5\x17\x4d\xf8\x3d\xa2\
-\x27\xba\xac\x8a\x6c\x7d\x79\x73\xc3\x92\x14\x58\xda\x3b\x38\x54\
-\xe1\x3c\x24\xe4\x54\xd5\x48\xc2\x10\xf7\x62\x31\xb9\x41\x02\xad\
-\xe7\x0f\x17\xdb\xad\xaa\xc4\x55\x63\x00\xd6\xaa\x77\x35\x68\x73\
-\x11\x7b\xe3\x4d\xae\x68\x6e\xa9\x39\xf2\xb2\x0f\x6b\x68\x3b\xd2\
-\x0a\x70\x1c\xbe\x3c\x10\x95\xa5\xd0\x01\x53\x00\xd0\xb1\x48\x63\
-\x90\x95\x43\x6f\x2e\xad\x05\x9d\xf5\xf5\x89\x9a\x4a\xc9\x88\xfe\
-\x1f\x42\xa5\x8a\x3c\x18\x47\x1d\x59\xe6\x82\xd9\x9e\xe5\xea\x5e\
-\xca\x1c\x44\x5a\xbf\xbe\xf2\xdd\x1c\xcd\xf6\xfb\xf9\x7e\x7f\xa4\
-\x41\x7a\x16\xae\x01\xc1\x60\xfd\xb8\x86\x4b\x87\xb7\x10\x68\x05\
-\xe2\x7d\x0d\x9a\xf4\x91\x31\x05\xa7\x69\x3e\x66\xbd\xa9\xab\x63\
-\x02\xcb\xf0\x76\x76\x13\x34\x5c\xd3\x56\xa6\xc1\xe9\x4d\xa5\x81\
-\xe6\x2a\xaf\xc4\xc4\xc0\xe2\x7c\xbd\x46\x8d\xdd\x35\xb6\x43\x8e\
-\x85\x8b\xb2\x6c\x1d\xdd\x1a\xeb\x65\xd0\xf0\x28\x28\x5d\x5c\x47\
-\xf5\x3e\xb6\x2b\xa3\x91\x86\x30\xe0\xf3\xc6\xc9\x91\x1b\x54\xd5\
-\xe5\xed\x47\x00\xb5\x59\xed\xf0\x3c\xae\xb3\x4e\x77\xaf\x71\x08\
-\x20\x78\x38\x3e\x9a\xd1\xca\x34\xb7\x59\xd9\x0e\x8a\x0f\x23\x83\
-\x88\x1f\xd2\x13\x48\x1d\xfb\xe9\xbc\x53\xe3\x53\x0d\x96\x42\x03\
-\x84\x46\xd7\xed\xfa\xee\x8e\x25\x78\xee\xa8\x79\x2f\x12\xa2\x1f\
-\x79\x9e\x71\xb6\xea\x79\x8e\x2a\x97\xf6\xad\x23\xb5\x96\xbe\xfc\
-\xf1\x1a\x8e\xda\x8b\xe0\x57\xd8\x98\xa3\xb0\x4f\xa1\x37\x86\x62\
-\xaa\x1f\x7b\x93\x2c\x15\xbd\xe8\xf4\xb8\x09\xe7\xd8\x52\xb1\xe8\
-\xda\xe5\xe3\x77\x91\xb6\x65\xda\xa0\x46\xd9\x36\xa6\xe4\x95\xe4\
-\x2e\xa2\x0b\x0c\x38\xfd\xda\x12\x85\xa6\x52\x9f\x4f\xe2\xf9\xc3\
-\xda\xc0\xb2\x4e\x1d\x92\xed\x7e\x17\x7d\x18\x9d\x1f\x43\x21\xf7\
-\x6f\x8a\x62\x06\x22\x54\x4b\x9c\xb9\x20\xb0\x61\x4c\x54\xe2\x39\
-\x7d\xfc\xf1\x26\x0d\x78\x64\xcc\x9d\xad\xcb\x90\xaf\xb6\x29\xc6\
-\xca\xcd\xb7\xdd\x90\xbd\x0e\x8b\x45\xff\x26\xfc\xd6\xe1\x3f\xc2\
-\x28\xb7\xee\x70\x1f\x24\x28\xfb\x47\x2f\xa4\x7f\x5d\xef\xfe\xc6\
-\x7f\x8a\xc6\x7f\xba\xee\x0b\x43\x19\xef\x4b\x45\xa6\x94\xb3\x44\
-\x82\x4d\x56\x80\xd1\x48\x76\xe2\xd8\xae\x58\xde\x8a\xe6\x6c\xe5\
-\x88\x22\x5b\xb9\x90\x57\xb6\xc9\xf9\xc1\x77\x2b\xea\xaf\xa9\xfd\
-\x5e\x65\x9b\x02\xcd\x92\xff\x68\x05\x58\x2e\x22\xbf\x53\x09\x8e\
-\xb3\x0d\x23\x15\x58\x2b\xe4\x28\xac\x95\x36\xe9\xcb\xe8\x6c\xd6\
-\x55\xdf\x5c\x4c\x0c\xca\xad\x1a\xcc\xdb\x59\x1c\x60\xd8\x50\x73\
-\x82\xd1\xad\xe9\x75\xe6\x3b\x74\x11\xe7\x78\x21\xbf\x0a\x42\xb2\
-\xc7\x4b\xb4\x15\x8b\x8b\x3f\x52\xa9\xa8\xc8\x6b\xb5\x1b\x1e\x74\
-\x45\x25\xdb\x0d\x0c\x29\x6f\x49\xe9\xeb\x54\x56\x26\xa0\x2f\xbe\
-\x5d\x5d\xdc\xac\x8b\x5b\x9f\xbb\xbe\xc0\x5a\x8b\xd9\xbb\x65\x18\
-\xb3\x45\xb6\x84\x0d\xb9\x4a\xff\xc9\x44\x5b\x5e\xf5\x92\x2d\xd7\
-\x46\xe9\x7c\x93\x0a\x07\x9d\xb7\xe0\xde\x7e\xf9\xc1\x1b\xfa\x8e\
-\x34\xea\x1c\x2f\x2d\xd8\x4d\xee\x3b\x2f\xda\x4f\x70\x79\x61\x9c\
-\xc2\x9c\xd4\x76\x5d\xce\x27\x4a\x90\x0f\x6c\x24\x90\x74\x9f\x46\
-\xf0\xd1\xef\x2b\xd8\xeb\xb4\x48\xbf\xe0\x10\x4f\x07\xb2\x70\xcd\
-\x58\x42\x9f\xd9\x9a\xf9\x4e\x42\x12\x02\x58\x48\xb6\x64\x1b\x6e\
-\x4e\x38\xe9\x0a\xa3\x2a\x01\x65\x8e\x0c\x2e\x1a\x5e\x3c\xb3\x7a\
-\xb7\x4a\xc3\x42\x1e\x66\x62\x42\x02\xc1\x68\x11\xc7\x0b\x86\x8e\
-\x15\x43\x51\x96\x4e\x09\xdc\xf3\x9e\xda\x73\x38\x4e\xbc\x15\x6c\
-\xf1\x86\xe5\x0b\xe9\xd7\x9b\x61\x74\x08\x28\xaa\x34\x0d\xc7\x8f\
-\x74\x5c\x87\x7d\xdc\x66\xf4\x80\x7c\x73\xf6\xfb\x13\xbc\x66\xdc\
-\xf3\x63\xa6\x87\x52\xf1\x1e\x78\x47\x8b\x3f\xe8\xf2\x92\x0f\x49\
-\xf1\x71\xe9\x6a\x09\x70\xee\x39\x04\x3d\x50\x69\x97\xf7\x74\x15\
-\x97\xd7\xd0\x59\x28\xbd\xb4\x78\x7e\x4d\x1e\x18\x8b\xa4\xb2\x8e\
-\xc1\x96\x2f\x85\x2b\xf2\x3e\x07\xa0\xee\x82\xd3\x71\xd4\xd6\x7e\
-\xd7\x5d\x76\x5c\xb5\x73\x4a\x7c\x96\x06\x89\x86\x63\x43\xd4\x0b\
-\x8f\xaa\x72\x3f\x84\x75\x24\xf7\x86\xa3\xf0\x45\x30\x18\x85\xbd\
-\x9e\xab\x21\x25\x14\x48\xb1\xcd\xdc\xc3\x1a\xe7\x41\x6e\x2d\xba\
-\x56\x46\xaf\x4b\x4b\xf3\x62\xd5\x5c\x5d\x91\xe9\xda\x9c\x44\x77\
-\x38\xb6\x1c\x3b\x8e\xf8\xad\x60\x3b\xa9\xf9\xdc\x35\x9f\x52\x53\
-\x90\x66\x83\x5c\x90\xd0\x0b\xa2\xc5\xb3\x08\x64\x6a\xde\x81\xcb\
-\x6a\x4d\xd4\x71\x78\xf6\x7b\xa3\x98\x3b\x9f\xd0\x22\xc3\xd8\xce\
-\xca\x35\x3a\x6d\x98\x38\x14\x97\x88\xfc\x8e\xf0\xa8\xc7\xfc\x92\
-\xd4\x63\xe2\x52\x47\xb3\xd9\xca\x78\x47\xcb\x75\x66\xa2\xdd\x71\
-\x54\xf7\x2c\x08\xd0\x45\x19\x24\x66\x98\x91\xb2\x8d\xcb\xde\x4a\
-\x3f\xb1\x8d\x80\x03\x28\x60\x28\xf2\xfa\x6e\xb4\x10\x53\x44\x4d\
-\x59\x78\x50\x66\xc2\x56\x4a\x6c\xed\xbc\x18\xe3\x38\x91\xb0\x9f\
-\x38\x7a\x58\xb9\x65\xad\xd8\x3b\x08\x14\x2c\x33\x52\xde\x09\xa6\
-\x99\x01\x13\xb9\xd1\x80\xf3\x23\xe6\x10\xcd\x41\xac\x50\xcf\xc9\
-\x8b\x6a\xf2\xdf\x37\xd9\x0d\xed\x82\x69\x9e\xd9\xd5\x10\x8c\x2c\
-\xc0\x8b\x17\x93\x47\x96\x0e\xc9\x91\x3e\xeb\x99\xe4\x9a\x5a\x95\
-\xd8\x77\x19\xb8\x91\x4b\x7e\x42\x92\x23\xd0\x2f\x42\x48\xea\x94\
-\x7e\x82\x18\x79\x2f\x15\xa2\xc7\x03\xb6\x49\x1f\x80\xaa\x5f\xf3\
-\x40\x3b\x55\xa8\x87\x23\x07\xda\x3c\x46\x85\x6c\xac\x33\x3d\x0d\
-\x6f\x15\xc6\x27\x5a\xed\x50\xdb\xd2\x0a\xfa\xf0\xdd\x23\x6d\x8e\
-\x40\xc0\x02\xaf\x85\x2c\xdc\x68\x86\x05\x66\x3b\x2c\x39\xe8\x48\
-\xa8\x84\xa0\x7a\x65\xe8\xa9\x00\x01\xea\x25\xfe\x82\xe6\x7e\xee\
-\x28\x51\xf7\x5b\x25\x00\xde\x8e\xfb\xb5\xfc\x1d\x87\x4c\xa8\xbb\
-\xbd\x2a\x84\x1e\xae\x4e\xa8\xb7\xbd\xca\x2a\x0f\x1e\x9d\x46\x61\
-\xf4\x00\x19\x12\x1a\xdf\x0a\x34\x79\x32\x32\xb6\x6c\xf0\x5e\x94\
-\xc8\x26\xd2\x2b\x25\xd5\x04\x73\x35\xd0\x03\x68\x06\xfd\x5a\x32\
-\xba\x27\xac\xb6\x47\xa0\x03\x01\x7c\xbd\xea\x4f\x51\xf5\x27\x06\
-\x69\x08\xd5\x47\xda\x84\x61\xf2\x69\x9b\x0b\x58\x91\xf4\x05\x91\
-\x95\x0d\xc5\x54\x49\x76\xa3\xa0\xda\xa1\x85\xe2\xd7\xe8\x02\x4b\
-\x3b\x3c\x0a\x41\x47\x88\xd1\x42\xd0\x17\xb4\x39\x08\x65\x80\xb6\
-\x8a\x47\x1e\x57\x9b\x43\xa1\x80\x52\x1f\x63\x91\x26\xe5\x95\x20\
-\x1d\x0c\x4d\x53\xc3\x40\xfd\xbe\xa6\xfe\xc9\x65\xc2\xea\xce\xca\
-\x52\xca\xde\x91\x6b\x24\xa6\xd9\x71\x30\x46\xcf\x11\xe1\x4f\x54\
-\x03\x5a\x80\xe8\x5e\x80\x2e\x9c\x9c\xf1\xc2\xa0\xa1\xe9\xc8\x5e\
-\xee\xa9\x69\x0e\x7c\x4e\xa1\xf4\x95\x92\x45\x27\x56\x51\x59\x99\
-\xf7\x2d\x95\xd6\x69\x5b\x35\xaf\x1f\x17\x59\xe5\x95\x33\xd2\xfc\
-\xa4\xf1\xd9\xa7\x97\x91\xd9\xc6\xec\xff\x87\x17\xd6\x27\x97\x8d\
-\xeb\x73\xcb\x20\x74\x35\x99\xf2\x4e\xe8\x6c\x86\xef\x79\x4b\x9a\
-\xf9\x62\xa3\x2a\x0d\x80\xaf\xcf\xd1\x2a\x3e\x0a\x9c\x97\xd7\xaf\
-\x5f\x89\xfb\x2f\x19\x9b\xf6\x56\x63\x50\x7a\xc7\xaa\x6a\xa6\x2e\
-\x8e\x29\x76\xd1\x0b\x85\xcd\xbf\x4d\x5f\x86\xa8\x87\xca\x76\x40\
-\xc0\x39\xdb\x7c\xa9\xf3\x54\x21\xcd\x9b\x39\x2e\x89\x40\xd4\xb2\
-\xe2\xc0\x54\x90\x35\x35\x2b\x46\x35\x2b\x96\x6a\x56\xd9\x62\x12\
-\x4f\x35\x18\x43\x10\x2c\x5f\xf0\x7a\x1b\xc0\x64\x0a\x46\x2e\xae\
-\x85\x7c\x06\xc3\x29\x49\x6e\xc2\x15\x9c\xe8\x8d\x6b\x7e\xca\x93\
-\x22\x34\x06\xa3\xee\xf8\x18\xa3\x78\x00\xec\xdf\xd8\x22\xfc\x92\
-\x66\xdb\x0d\x06\x7a\x18\xbd\x01\x01\x78\x44\x09\xaf\xb9\x0a\xa7\
-\x20\x06\x00\x66\xf6\x9c\xab\xe9\xca\xbb\x2b\xf6\xdc\xaa\xed\xf7\
-\xa8\xb2\xa2\x90\x0a\x37\x56\xcb\x22\x58\x4d\x33\x3e\x14\x3a\xe2\
-\xfa\x81\x9c\x50\xb6\x3b\x8d\x72\x29\x33\xb3\x15\x6a\x6c\xb2\xe5\
-\x75\xd6\xd1\xe5\x86\xf2\xd1\x02\xe0\xaa\x0d\x74\x76\x6d\x85\x41\
-\x75\x8a\x9a\x7e\x23\xd2\x4a\x44\x14\xb1\x5e\xe5\xc5\x81\xa9\x12\
-\xd5\x8e\xc0\x23\x4f\x80\x3a\xb8\xe6\x29\x40\x49\xd4\xb5\x0e\xa0\
-\x87\xf8\x4a\x17\xcd\xf3\xa8\x5f\xb3\x21\x5d\x6b\x6f\x15\xc6\x19\
-\xc4\xf5\x83\x66\x34\xe8\xaa\x31\xd1\x04\x1d\x71\x75\x1c\x75\x7f\
-\x43\x6a\xd6\x60\x7e\xde\xfa\x37\x80\xd2\x33\x41\x69\xc0\x18\x0a\
-\xf6\xbb\x50\xc6\x63\xa7\xa5\x07\xec\xb1\x18\xc3\x28\xd8\xbb\xe1\
-\xc4\x16\x77\xe2\xec\x1f\x56\x9c\x21\xd4\xff\x1e\x60\x4c\xac\x51\
-\x94\xa5\xb6\x81\x89\xe6\x92\x55\x98\xee\xb8\x56\x58\xd0\x40\xb0\
-\xb5\x6e\x18\xa3\xd7\x32\xa6\x76\x15\x22\x92\xce\x57\xb0\x03\xb2\
-\xaf\x6e\x9f\xc2\xdc\xa1\xe9\x7d\xf0\xfc\x10\x80\xba\x15\x78\xb4\
-\x3d\xa9\xf7\x40\xdc\x3d\x02\x0f\xbc\x79\xd3\x28\xbd\x7b\x11\xf1\
-\x15\xa9\xb2\xc4\x43\x33\x40\x3f\x08\xa2\x0a\x2a\x0e\xb1\x74\xfc\
-\x57\xa5\xc7\x77\xca\x97\x56\xe8\x1e\xfe\x35\x16\x2e\x99\x30\xfa\
-\x8a\x2a\x76\x37\x16\x01\xe7\xbc\x15\x8a\x83\x52\x36\x45\xa6\x02\
-\x9e\x25\x93\xb9\x13\x53\xc0\x7c\x95\xc7\x8c\xff\xad\x61\x7c\xe0\
-\x6f\x95\xe1\x91\x4b\xf3\xd1\x51\x57\x88\xac\xde\x18\x4c\x2c\x19\
-\x45\xa0\x26\xec\x62\xad\x7e\x12\x4d\x85\x59\x19\xf3\x02\x1e\xec\
-\x2b\xf0\xa4\xfc\x79\x39\xfa\x40\xdf\x65\xfc\x1b\xa3\x5e\x30\xdb\
-\x08\x43\x9b\xd9\x5d\xca\xb5\xe6\x77\x9c\xcc\x82\x60\x38\x76\x56\
-\x60\x26\x39\xbe\x83\xfa\xbc\x33\xe5\xda\xfa\x51\x00\xdb\x7d\x94\
-\x90\x57\x58\xa4\x12\xd4\x3a\x03\x44\x18\x7b\x62\x4a\x46\xe9\xf9\
-\x60\x37\x69\x2f\xb9\x5d\x85\x37\x69\xec\x8c\x6d\x23\x69\x61\x2a\
-\x2d\xe6\xfa\x94\x14\x46\x4a\x40\x92\x6e\x28\x37\x2e\x20\xf8\x78\
-\x96\x9e\xef\x6c\xd7\x4e\x4d\x10\x2b\x2f\x27\xcc\xb9\x26\x44\x38\
-\x52\x7b\x33\xd1\x74\x05\x76\x44\x0e\x48\x72\xa5\x13\x20\xdc\x40\
-\x47\x1e\xc5\x1b\x8b\x73\x17\x41\xe1\xe7\x5a\xf0\xe1\x02\x5b\xd9\
-\x94\x48\xde\x5c\x84\xeb\x7c\xe4\x8b\x8b\x4b\x93\x9f\x3b\x75\xaa\
-\x07\xa6\x72\x3c\x50\xc5\x32\x95\x2e\x4d\x75\xcd\xee\xd0\x5c\xef\
-\xd5\x57\x6c\xd7\x44\xe6\xfd\x88\x72\xd5\xa1\xc7\xbe\x72\xac\x0d\
-\x0c\xdf\x7d\xc2\xb1\x56\x2d\xa1\xba\x39\xe4\x43\x33\x83\xe8\x80\
-\x9c\x35\x1a\x2a\x35\xf7\x56\x5c\xba\xdc\x48\xe5\x4c\x74\x7b\x05\
-\xdd\x42\xe9\x0d\x46\x87\x92\xe1\x1e\x69\x8e\x04\x61\x9a\x93\xb1\
-\x49\xe5\xb1\xe1\x5d\xe8\xea\x0e\x00\x25\x09\x03\x33\x5b\x6b\x3c\
-\xf0\x6d\xad\x34\xde\xe8\x72\xaf\x40\x54\x7a\x3a\xcc\x89\xb1\x38\
-\xd6\xbd\x1f\x3f\x60\x5a\x10\x4e\x2e\xf7\x37\x50\x42\xad\x05\xbb\
-\x98\x54\xbb\xdf\xff\x65\x30\xf0\x8c\x08\x89\x8f\x98\x9c\x81\xbe\
-\xa3\x83\x70\x94\x0a\x2a\xa5\x52\x2f\xaa\xba\x02\x3d\x11\x93\x64\
-\x0f\x32\x92\x1b\x2b\x6d\x02\xe3\x5a\xf4\xc3\xba\xb3\x23\x77\x9c\
-\x8f\xee\xcb\x83\x19\x65\x2c\x1d\x5b\x41\x79\x27\x32\xae\xd9\xf8\
-\xb1\x8c\x4c\x95\x86\xf7\xd5\x95\xdb\xe8\x33\x57\x96\x86\xdf\xaa\
-\x0d\x94\x2f\xb2\xaf\x9a\xfb\x3b\x6a\x36\xce\x4a\xae\x5b\xb5\xce\
-\x22\xdd\x3a\x4b\x58\x69\x9f\x71\xe7\x6c\x68\x31\xd1\x2c\x23\x98\
-\x17\x26\x5c\xa7\xbb\x67\xa6\x6c\x5b\x34\x4d\xf1\xb0\xf1\x83\xc1\
-\xe1\xa0\x0c\x6f\xed\x8c\x49\xcb\xca\xe0\xdc\x5a\x82\x9b\x45\x2c\
-\x18\xf5\x46\xd2\x9f\xa5\xa9\x75\xbf\x8f\xb4\xfd\x16\x13\x50\x85\
-\xf1\x61\x05\x44\x58\x99\x34\x6b\xa7\xe2\xc5\xf3\x76\xe2\x8a\x8d\
-\x63\xaa\x25\x09\xd2\xb8\x40\x2b\xbf\x3f\xae\xb2\xdf\x11\x04\xbc\
-\xff\x34\x88\x53\xf3\x6e\x71\x37\xd6\x58\xac\xac\x5a\x0e\x6c\x67\
-\x86\xb2\xb5\x4a\x68\xae\x6f\xeb\xc0\x57\xe2\x72\xad\x47\x79\x1d\
-\xf5\x4e\x07\xe3\x02\x25\x67\x9b\x34\x5c\xf2\x3b\xc5\x5a\x5e\xaa\
-\xb4\x7e\x79\xbf\xfc\x34\xa7\xfb\xe8\x4e\x28\x72\xfb\xf0\xfa\x13\
-\x74\x33\xb0\x35\x31\x01\x32\x08\x79\x74\x2a\xcf\xc8\xb4\xa5\x4b\
-\xb0\xa0\x83\xee\x7b\xd4\x22\x48\x34\x8a\xc0\xdf\x90\xff\x93\x46\
-\xf8\xec\xc3\xde\x49\x13\x07\x18\x89\xe3\xb8\xc0\xc2\x30\x5b\x29\
-\xe4\x59\x42\x2c\xc7\x9b\xe8\xfd\xfe\xa4\xd3\xef\xba\x93\x5e\xf0\
-\x71\x8a\x3f\x4e\x38\xd9\x33\x37\xa6\x84\x4b\x68\xfb\x99\xdd\xee\
-\xf7\x6c\x32\x9c\x76\x9d\xc9\x14\x33\xea\x03\xa7\x4b\xc5\x08\x72\
-\x39\xd2\x18\xdb\xf8\x6c\xf2\x74\xca\xf3\x2f\x8e\xe2\xf2\x35\x02\
-\x6a\x2c\x86\xe4\x5f\x38\x8a\x62\x54\x71\xff\x13\xc8\xf7\x8e\x73\
-\x8c\x01\xe9\xad\x22\xe3\x29\x32\x3f\x08\x75\x51\x3d\xc1\x99\xc0\
-\x78\x0c\xde\xca\xb8\xef\x98\x27\x09\xe8\xca\x47\x13\x9c\x9a\xcc\
-\x26\xbf\x73\x1c\x44\x5d\xed\x14\x68\x5e\x27\x32\x04\xc4\xe5\x90\
-\xd1\x11\x1d\xed\x98\xf3\xd5\xd0\x8f\x2c\x29\x6f\x1e\x84\x34\xc5\
-\x22\x98\x77\x43\x31\x5a\x8a\x57\x29\xd0\xfd\x73\x90\x42\x99\x68\
-\xf9\x29\xd0\xa5\x1b\x85\x81\x62\xa3\xa5\xa5\x1c\x47\x1c\x7d\x82\
-\xc9\x3f\xbd\x48\x8f\x8f\xe1\x9f\xe7\x9f\x8f\x8f\xa3\xee\xf2\xc5\
-\x9c\xff\xf3\x7c\x61\xa4\x91\x3f\x40\x6b\x93\x4d\xe8\x4a\x9e\xea\
-\x7e\xcf\x36\xa5\x5e\xb5\xdf\xb7\xec\x63\x1d\x95\x63\x19\x9c\x44\
-\xc3\x05\xa5\x78\xc8\x0b\xe8\xb1\xc3\x91\x00\x9a\xe5\x42\x3c\xb6\
-\xf0\x22\xbc\xaf\xc5\xf8\x93\x3f\x7f\x7e\xf7\x16\x9d\x3c\x05\x2a\
-\xee\xdd\xdd\xe2\x39\x10\x7c\xfa\xfc\x9e\x2d\xc3\x81\x66\x4d\x03\
-\xc9\x26\xcf\x3f\xd7\x88\x4d\x60\xcd\x42\x73\x49\x25\xd5\xd5\x46\
-\x4a\x5d\xfb\xe6\x87\xe2\xff\x34\xaf\x0b\x47\xe7\xde\xc1\x4a\x7f\
-\x4b\x8d\x64\xbc\x50\xfe\xc3\x11\xe2\x52\x6e\x31\x3e\x90\xa3\x8e\
-\x2f\xfa\x07\xff\x8e\xdc\x3c\x0e\x97\xe7\xd2\x20\x40\x45\xb1\xd4\
-\x26\x55\xbb\x97\x20\x6b\xfe\x89\x14\x62\xb4\x44\x83\x2e\x32\xef\
-\x29\x75\x62\x54\x9b\x1c\xc3\x7e\xe1\x83\x26\x7c\x87\xf7\xfb\x10\
-\x13\x30\xd0\xe2\x18\x3f\xf5\x87\x3e\xf0\x8d\x8e\x51\xe2\xd6\xf0\
-\xcd\x2d\x8b\x7f\x03\xb6\xd5\x89\x3c\x79\xfa\xa3\x11\x2f\x19\x00\
-\x1f\x59\x6c\x81\x05\xaf\x16\xfc\x4b\x06\x74\x37\xea\x6d\x78\x06\
-\xf6\x30\x66\x0a\xcf\xb0\xdb\x20\x30\x64\x2e\x39\x46\x4d\xfa\xb0\
-\x0f\x98\xd1\x43\xa8\x06\xf6\xb1\xdf\xe3\x17\x58\x7d\xe8\x69\x40\
-\xa6\xdf\x08\x56\x43\x08\x4b\x05\xd7\x3d\x9b\xed\x84\x15\x2a\xcc\
-\xf2\x28\x18\xe0\x76\xbf\x18\xe8\x36\xa7\xc8\x34\x6b\x58\xec\x03\
-\xa6\x2e\x2d\x95\xea\xdc\x9c\x7b\x5a\x26\x27\x14\xf9\x84\x1b\x98\
-\x5f\x5c\x1a\xd7\xdd\xe5\xb5\x30\x02\x5e\x6a\xb9\x63\x36\x43\x37\
-\x8c\x08\xaa\x3b\xa3\x7f\x54\x00\xaa\xd6\x05\x7f\xe7\x60\xa2\xc5\
-\xa0\xab\x07\xc1\x15\x8f\x3a\x1f\x4f\x8c\x26\x53\xdf\xf8\x24\x0c\
-\x1a\x02\xd9\x72\x5e\x26\x53\x2e\x95\x15\x85\x69\x03\xe0\xb9\xa7\
-\x54\xd5\x90\xdf\xba\x84\x01\xb3\x84\xb3\xa8\xa4\x9b\x20\xe9\x30\
-\x4c\xcb\x05\xa1\x37\x2b\xdb\xcd\xb1\xdd\x1c\x55\x7e\x6c\xb4\x08\
-\x44\xe4\xc3\x6c\x32\x9f\x7a\x5a\x94\x0d\xf2\x0d\x60\xcf\x0b\xf2\
-\xa1\x00\xed\x2d\x6a\xd1\x1e\x52\xf1\x99\x24\x7a\x22\x4e\xd9\x8e\
-\x7b\x70\xdc\x71\xa5\x80\x72\x74\x16\xd2\xf3\x81\x3a\x64\xa5\x85\
-\x57\x56\xf6\x57\x59\x41\x0f\x06\xd5\xec\x1e\x4b\x95\xa6\x91\x3b\
-\xae\xb7\x98\xba\x07\x2b\x84\x86\xe0\x14\x40\xd6\xcb\xea\xb9\x44\
-\x64\x97\xa8\x04\x16\xbd\x0b\x0f\x70\xab\xdd\xfc\x1e\x94\x82\x6c\
-\xae\x4f\x1f\xf4\x5f\x5a\x22\xd7\x01\xc4\xbb\x56\xf8\x86\x48\x9d\
-\x18\x62\x20\x00\xb4\x2f\xaa\x9a\x5d\x44\x88\xe1\xfa\x5c\xa9\xb2\
-\x25\xfc\xa5\x8c\xa6\xd0\x10\xfd\x90\x54\x42\xab\x74\xeb\x93\x62\
-\x58\x7c\x4e\x55\x46\x14\x8d\x0b\x10\x47\x68\x6f\x3e\xaf\x39\x00\
-\x47\x51\xb7\xeb\x6a\x6f\x26\x8c\xe2\xe7\xf2\x85\x2e\xfe\x5a\x02\
-\xbe\x9e\x10\x98\x7e\x41\xe9\x0f\x14\x5a\x0e\x8d\x86\x4f\x00\xc4\
-\xac\x13\x79\x43\x5a\x47\xc9\x16\xea\x5c\x83\xf7\x40\xfd\xb7\x62\
-\x58\x06\xf4\xc8\xc1\x48\x53\x50\x69\xdb\xe0\x58\xfe\x18\x42\x42\
-\x6f\x5f\xe8\xed\xbe\x9f\x66\xc4\xc6\x37\x31\x09\x6e\x95\x94\x6c\
-\x40\x63\x12\x33\xa4\x8b\x99\xc6\x24\xe6\x9c\x49\xcc\xa6\x98\x44\
-\x3f\x2f\xdb\x2d\xb0\xdd\x42\x32\x89\x54\x32\x89\xf9\x64\x51\x63\
-\x12\x29\xcf\x5e\x17\x4c\x22\xad\x33\x89\x9d\xf5\x0c\xa6\x55\xbc\
-\xa5\x36\xa4\xa5\x0f\xc6\x58\xa5\xbb\x97\x96\xb8\x4a\xa7\x35\xdf\
-\x01\x41\x84\xcf\x9b\x20\x1e\x66\xfa\xc9\x51\x18\xc2\x47\x79\x00\
-\x31\xf8\x94\x04\xa3\x5f\x83\xe9\x68\x81\x95\xd0\x65\xae\x90\x3a\
-\x5a\x3c\x9f\x8f\x16\x40\xa2\xbb\x94\xa3\x12\xb8\xce\x28\x25\x6c\
-\x55\x62\xc8\xd0\x37\x28\x8e\x1d\x2d\x24\xf5\xd2\x95\xc8\x75\xe3\
-\x6f\x2d\xe0\x93\x45\xf2\x61\xa3\x81\xc7\x1d\x7c\x03\xee\x6c\x1b\
-\xe0\x93\x18\x4a\xfe\x29\x81\x56\x4d\xd0\xa8\x79\xd0\x8e\x8f\xf5\
-\x68\x13\xb7\xee\xad\x2b\x95\x18\x33\x78\xa7\xea\x3a\x6a\xf4\xd5\
-\x6b\xda\x92\xf2\xd7\xa3\xc2\xd9\x89\xfb\x72\x6d\xa6\x13\x5e\x59\
-\x30\x66\x8c\x8b\x56\xac\x1c\xfd\x56\xef\xbd\x6b\xcb\x7b\x2d\xad\
-\x1f\xf1\x94\xd4\x38\x69\xf0\x8f\x8b\x7a\x8f\x26\x71\x7d\xfa\x97\
-\x5e\xab\x45\x4a\xe5\xbb\x00\x7b\x5b\xbe\x7a\xd6\xc1\x3c\x3b\xda\
-\x14\x59\xfe\x52\x5c\xca\x1d\x18\x96\x48\x94\xc5\x74\xaf\x42\xd7\
-\x2b\x98\x79\x9b\xad\x03\x7e\x17\x52\xba\xa3\x54\x9a\xd9\x36\x2f\
-\xb2\x1b\x81\x01\xb3\x50\x6a\x2d\xa5\xa5\xe7\x3e\xa8\x95\xfe\x8a\
-\x1a\xf7\x74\xd2\x4d\x4b\xeb\x01\x9e\x3f\x56\x75\x0f\x22\x73\xb5\
-\x87\xfb\xde\xe9\x7d\xd3\x97\x7f\x7f\x6b\x85\x9e\x07\xb4\xa5\x5d\
-\xb9\x0b\x4a\x7d\xbb\xee\x1f\x4f\x6c\xe7\x7d\x03\xaa\x7d\xae\xa8\
-\x8d\xd5\xe8\x2b\x8b\x12\x17\x92\x1d\x8f\x8e\x0c\xa5\x44\xd2\x53\
-\xbd\x9a\x00\xc7\x5c\x64\xfd\x16\xc0\xa2\x50\x4a\x6a\x37\x1a\x8e\
-\x8c\xaf\x60\x27\x80\xae\xea\xb0\xb3\xa0\x55\xde\x6e\x56\x9e\x5a\
-\x8b\x2a\xc7\x4a\xe5\x48\xba\x6e\x19\xd8\xc2\xf0\x65\xa0\x4a\xbb\
-\x18\x6b\x28\x63\xa7\xdd\xa8\x97\xdc\xef\xb4\x46\x5e\x8a\xf8\x00\
-\x31\x25\x2e\x0d\xcb\x47\x91\xd5\xbb\x5b\xca\x39\x7f\xf0\xb6\xeb\
-\xc4\x88\xd1\x97\x4f\xfa\x1d\xa1\x32\x0c\x58\xb5\xa5\x2e\x00\xab\
-\x98\xab\x0b\xf4\xfd\x5e\xfd\x36\xd6\xa4\x3f\x7e\xd8\x71\x7b\xea\
-\x8e\x21\xaa\x79\xe6\xe5\x93\x91\xf8\xb6\x17\x3e\xdb\x88\x57\x0e\
-\x0f\x69\x2f\xde\x69\x94\x5d\xdc\xd1\x5c\x5e\x66\x23\x4c\xf4\xd3\
-\x02\x92\xa0\xe6\x87\xcc\xc0\x9f\x1e\x7b\x0c\x48\xf4\x94\x24\xf4\
-\x68\x11\x48\x20\x5c\x0e\x91\x41\x53\xf8\x68\x9d\x4e\x9a\xf2\x5c\
-\xd0\x63\x4d\x4a\x21\x36\xa6\x70\xdd\x91\x39\x25\x39\x8d\x8d\x81\
-\x5d\x93\x76\xfb\xb4\xaf\xa0\xaf\x99\xad\xc8\x38\x33\x6f\x12\x8d\
-\x53\x56\xca\x27\xae\x93\x1b\x21\xe3\x56\x76\xc7\x90\xdd\x31\x60\
-\x77\x3c\x31\xb9\x7e\x0f\x6b\x92\xb9\x57\x65\x0d\x6c\xaa\xbf\x91\
-\xe2\xaa\x2c\x39\xd3\x05\x52\xbb\x02\x61\x55\xd6\xe3\x0a\xaa\x8d\
-\xc4\x15\x62\x05\x88\x86\x09\xbd\xc8\x98\x5d\x05\x5e\x1b\xed\x47\
-\x71\xc0\xe8\x91\xb0\xb6\xe5\x32\xa6\x06\x49\xc3\x65\x0c\xab\x5d\
-\xc6\xb4\x2a\xb7\xaf\x0d\xb7\x31\xf6\x09\x82\x01\x0f\xbf\x74\xeb\
-\x10\x95\x8f\x9f\x0c\xeb\x50\x18\xa1\x81\x38\x4e\xed\x0e\xb8\x01\
-\x8a\xd8\x0e\xc5\xb0\x82\x97\x8a\xd2\x71\x54\x43\x67\x3c\x45\x24\
-\x0f\x2f\x7e\x02\xdd\x8f\x3f\xd9\x56\x6a\xd3\x55\xc7\xc6\xc4\x02\
-\x43\xe9\x39\x5d\xd2\xb3\x80\x20\xe7\x9c\xa9\x67\x49\xf6\xd1\x0d\
-\x72\x19\xe6\xd8\x48\x14\xb1\x41\x14\x9a\xd6\x35\x57\xd6\x90\x2b\
-\xcd\x7a\xa3\xf6\xe1\x30\x22\x57\x56\x49\x8f\x8b\x5e\x6b\xe6\x3e\
-\x8f\x10\x15\x5a\xd9\x0c\x34\x0c\x73\x78\xae\xe1\xb0\x8a\xeb\x5a\
-\x4b\x2f\x93\x1b\x6c\xcb\x07\x30\xa1\x92\x0f\x6d\x19\x81\x09\x8c\
-\x0c\x6f\x1e\x1b\xe1\xd7\xab\xa9\xb2\x11\x55\x46\x16\xe9\x03\xe2\
-\x19\xee\xa4\xc5\x86\x6e\x3a\x35\xca\xf5\x5b\xd8\x9c\x15\x0b\x34\
-\x92\xc1\x23\xff\xfd\xc7\xe1\xa0\xf4\x18\x8a\xeb\xb5\xa8\x30\xc6\
-\xfd\x02\xf7\xb7\x6a\xe6\x5b\x24\x6d\x8a\x71\xa2\x7e\x6b\x79\x46\
-\x3a\x99\x4e\x04\xa8\x1a\x87\x05\x2a\xf5\xa3\xf2\x4a\x3c\x5e\xe2\
-\x8b\xa9\x96\xfb\x70\x2c\xef\xb8\x35\x83\x6f\x14\xaa\x4c\x20\x19\
-\x7a\x4e\x87\x69\xbf\x47\x68\x64\xd6\x24\xde\x84\x50\xda\xe4\xb8\
-\x2c\xac\x0d\x56\x79\xe6\x14\x3f\xf5\xc7\x6a\x43\x7e\xb5\xcb\x9f\
-\xef\x1c\x48\x0f\x44\xc5\x22\xa1\x8d\x50\x57\xf6\xfc\xb5\x33\x30\
-\xe5\x6c\x13\x91\xaa\x43\x97\x4e\xc2\xd0\x6b\x6e\x26\xee\xa1\x24\
-\xab\xa9\xe7\x15\x54\x12\x3d\x3c\x95\x8b\x52\x6b\x84\x47\xdb\xf5\
-\xca\x2c\x94\x5a\x03\xe1\x62\x95\x0b\xd5\x01\xc5\x1c\x36\x87\xbf\
-\x11\x69\xe6\x80\xba\xc2\x65\x5e\x93\x9f\x52\xbd\x71\x2b\xa3\x09\
-\xad\x3b\x68\x1a\x4d\xa8\x67\xb5\xe1\xa4\x0a\x57\xbe\x03\x00\xc4\
-\x6b\x4f\xe0\xa8\x59\xc4\xea\xc5\x2c\xf5\x60\x96\xf6\x50\x64\xdb\
-\x11\xa1\xe5\x69\xce\xaf\x51\xf1\x6d\x80\x30\xa0\xc8\x9a\x6e\xc8\
-\x59\x2c\x60\x14\x7e\x0d\xa7\xf8\x4c\x37\xff\xd3\x27\x1c\x51\x29\
-\xc0\x60\x58\xd3\xe5\xcd\x82\xb8\x5e\xa4\x7b\x07\x3d\xfa\x86\xf7\
-\x26\x8f\xf6\x5d\xdd\x35\x7b\xbd\x76\x61\xd6\x0b\xfb\x7c\x80\x86\
-\xc1\x71\x93\x1b\x86\x46\x63\x2b\x2c\x2f\x5a\xb4\xe8\x1c\xde\x33\
-\x22\x15\xf5\x8e\xce\xad\x06\xb8\x16\x32\xbe\x9a\x86\xa8\x0d\x4f\
-\x2e\x6f\xdd\xb9\x50\x4b\x0e\xd5\x1d\x16\x46\xba\x85\x5e\xd1\xa1\
-\x8b\x19\xe9\x96\xd7\x6a\x4a\x0b\x55\x49\x77\x2d\x2f\x4a\x7b\xb0\
-\xdf\x1e\x68\xae\x07\xa2\x5b\x84\x6f\xa5\xb5\x57\x9b\x9e\x44\xae\
-\xd8\x74\x4b\x4e\x86\x1e\x53\x3a\xa2\x2d\x68\x6c\xc5\x63\x70\x0f\
-\x36\x47\x4e\x3d\x60\x4a\x0a\xdb\x4a\xbc\x94\x08\x9b\x97\xae\x05\
-\x7b\xad\xf9\xae\x17\xbe\x73\x5c\xdc\x60\x7c\x4a\x62\x3c\xf0\x01\
-\x47\xa1\xc5\xd3\xdb\xa4\x2b\xea\x20\xce\xdf\x8e\xb2\xc2\x78\x68\
-\x57\x25\x26\x4b\xdf\x17\xce\x57\xe8\x39\x6e\x58\x18\xbd\x66\xef\
-\x52\x9c\xd6\x40\xf0\x22\x81\xb6\x07\x8e\x82\x48\xac\x0c\x73\x20\
-\xfa\x32\x13\xcb\x74\x0a\xb3\xd3\x84\xfa\xa3\x0d\xc6\x65\x8f\x91\
-\xb2\x25\x33\x2d\xdc\xda\xa2\x7b\x15\x70\xf5\x14\x20\xe2\xb3\x02\
-\xb8\x7a\x90\xbd\xbe\xcf\x3a\x06\xee\x1a\x92\x38\xf3\xbd\x63\x12\
-\x85\x09\xfd\x5f\x03\x59\x6d\x1e\x0a\x7c\x2d\x35\xb2\x76\x0c\xc5\
-\xa1\x15\xec\xcf\x84\xa7\x26\x2e\xa8\x31\xd9\x9d\x5e\x8b\x60\xe3\
-\xcc\xf2\x41\xfd\xae\x35\x2c\x29\xb8\x6a\xf9\x45\x35\x08\x6b\xdc\
-\xc7\x90\xb4\x92\x69\x68\x9e\x20\x43\xc4\xea\xf5\xca\xb1\x43\xf9\
-\xdb\x5a\x8a\xdc\x3d\xf7\x80\x3c\x20\x5e\xcb\xb3\x0b\x94\x8a\xe1\
-\x9a\xe5\xda\x94\xa6\x82\x61\x1b\x42\x1e\x6c\xbc\x75\xaf\x54\x51\
-\xf8\xbb\x63\xe4\x4e\xf1\xaa\xc9\xc0\x08\xbe\x94\x14\x7d\x67\x3c\
-\xa8\xd7\xd0\xa7\x39\x92\xd3\x4b\x9a\x81\x1d\xab\x24\x36\xbf\x1a\
-\xa4\x7f\xa7\x10\xab\x09\x2f\xaf\x73\xd7\x2c\xb5\x49\x4a\x8f\x8e\
-\xc1\x10\xf5\x50\x3d\x3a\x12\xb4\xcb\x8d\xd0\x08\xd1\x55\x95\x58\
-\xe4\x97\x3a\xf9\xbf\xca\x73\xb6\xa7\x89\xf7\x22\xae\xed\x7f\x89\
-\x97\x14\x0c\x88\x5d\x15\xec\x50\x29\x47\x3f\x57\x58\x2b\x2d\x65\
-\x16\xf9\xcf\x79\xcc\x5a\xe5\xfd\xf9\xa3\xd2\x0d\x56\xdf\xfc\x1a\
-\xe3\x2c\x47\x68\xe4\x95\xd6\xd6\x86\x07\x49\xb6\xb4\x6c\x51\x95\
-\xdd\x57\xe7\xd3\x38\x7c\xeb\x01\xf3\xe9\x1c\xc0\xad\xe7\x4b\xcb\
-\xe5\xc5\x63\xf5\x6a\x8f\x4c\xc7\xa0\xbf\x44\x22\xff\x82\x03\xff\
-\x42\x5b\x42\xff\xec\x3d\x0a\x2d\xd6\xd6\xa6\x9f\xcc\x04\xf4\xe1\
-\x74\x2d\x90\x66\x59\x85\xf8\x63\x2b\xe6\x1f\xa2\x28\xd7\x21\x29\
-\xf7\x41\xf8\x7e\xc0\x3a\xa4\x0b\xf2\xbe\x85\x34\x1d\x89\x03\xf9\
-\xe3\xcc\xac\x94\x7a\x10\xfd\x51\xe4\x4a\xb3\x51\xca\x4f\x8c\x2d\
-\xd4\x95\xb0\xf1\xd0\xef\x0d\xf5\x18\x9b\x46\x65\xed\xe8\xde\xbc\
-\xc1\xef\x56\xd7\xc6\xb5\x62\xbf\xd6\xdb\x63\xc1\x49\x07\xf5\xa2\
-\x3d\x32\x17\xf7\x24\x15\x7f\x3a\x4b\x53\xa3\x0c\xd5\x20\xaa\x85\
-\x31\xe9\xec\xf5\x49\xd8\xb5\x33\xd8\x27\x61\xaf\x53\xaa\x5d\x79\
-\x38\x0b\x37\xa9\xbc\x19\x33\x30\x43\x7f\x57\x6a\x3c\xf0\x6d\xfa\
-\x8c\xa8\xec\xdd\xa9\x70\xf8\x0c\x7a\xc7\x46\xce\xd8\x93\x50\xa8\
-\x21\x51\x3d\x58\xca\x90\x28\x76\xf8\xa9\xc6\xb6\x80\xd6\x8f\x5e\
-\x01\xa9\x37\xc6\x12\x44\xba\xd7\x93\x50\x68\x81\x66\x8a\x6c\x53\
-\xa8\x69\x99\x9f\xfa\x9f\x4f\x7e\xf7\x28\xb7\x0f\x59\x84\xbd\xde\
-\x0e\xb7\x8d\x3a\xca\x0b\xe4\xea\xe3\x0e\x14\xa1\x38\x93\xcf\x33\
-\xf0\xc0\x5b\x7a\x8d\x41\x19\x38\x95\x67\x1f\x34\x6d\x5d\x93\x95\
-\x65\x2e\xa6\xf9\x3e\x45\x69\x33\x3f\xaf\xf6\x41\x68\x67\x81\xa5\
-\xb4\x21\x1a\xb0\xcc\x73\xfc\xd3\x32\x05\x66\xeb\xd6\xc6\x1a\x4e\
-\xdd\x79\x7d\x86\xa1\x6d\x06\x61\x64\xdf\xbd\x86\x17\xb5\xb1\x9e\
-\x5a\xd7\xf0\xf4\xbb\xd7\x50\x9f\xe1\x99\x75\x0d\xcf\x1a\xd6\x40\
-\xcf\x28\xe0\x8b\x5f\xee\x4e\x74\x33\x1e\xdb\xe8\x72\x21\xb7\xc9\
-\xb6\xf8\xb7\xe7\xe6\xbd\x56\xbd\x85\x7b\x42\xfd\x11\x79\x4f\xd4\
-\xcf\x51\x1d\x86\xf1\x11\x0c\xf0\xe0\x8d\xd8\xef\x1b\x1a\x5b\x57\
-\x3c\x9e\xfb\x8f\x1a\x1d\x3a\xf4\x14\xac\xfe\xbc\xab\xfd\x1e\xcd\
-\xea\x68\xf8\x87\x81\x06\x11\xb6\x6c\x34\x50\x58\x18\x94\x58\x18\
-\x4c\x47\xf5\xbd\x06\x2c\xcc\x1e\x41\xf1\xfb\x7d\x53\x6b\x2b\x6d\
-\x8d\x67\xfe\xe3\xc6\x87\x1e\x3d\x05\xae\x3f\xeb\x6a\xbf\xe5\xdf\
-\x28\xe4\x82\x50\x6d\x7d\x05\xb9\x8f\x35\x3d\xba\x8f\x94\x8b\x3f\
-\x50\x2c\x92\x4c\x6c\x42\xce\xe3\xed\xae\xff\x0f\x4b\x69\x96\x8f\
-\x07\x1e\x07\x27\x6e\x4b\x2a\x2f\x38\xf1\x87\xfb\xc7\x71\xd5\xe7\
-\x4d\x1a\x9c\x99\xdd\x04\x2a\x42\x5a\xf3\x96\x63\x8c\x0f\xe8\x84\
-\xbf\xb1\x59\xb6\x61\xd6\xcc\x58\xa2\x85\x32\x93\x55\x46\x90\xab\
-\xd1\xb4\x71\x31\xff\xf6\x2a\x8d\x96\x18\xf6\x20\x6d\x9e\x2d\xde\
-\xaf\x06\xfa\xc7\xb8\xdb\xd5\x3f\x7d\xd2\x26\xe9\xf8\x78\x73\xa3\
-\xe9\x88\x2c\xb7\xbe\xfd\xfd\xe4\x79\x10\xcc\x64\x4b\xfc\xab\x31\
-\xb5\x70\xe1\x23\x7c\xde\x7a\xc0\xef\xa2\x31\x5f\xb0\xa2\xef\xf2\
-\x89\xca\x5c\x4d\x0a\xac\x27\xc5\x76\x32\x1d\x89\x27\x5f\xb5\xc4\
-\x2b\xcb\x9b\x3e\xf2\x5d\x20\xf3\x6f\xaa\xe8\xf7\x46\x91\x86\x59\
-\xfd\xa6\x7d\x54\x1b\x9e\x6e\x29\xcd\xd7\x6d\x1a\x6f\x2c\x76\xc6\
-\xdf\x96\xa3\xb1\xca\x94\x43\x75\xb9\xad\x8a\xf0\x0f\x1f\x05\xf4\
-\x88\xa4\xcc\x2a\xae\xd4\xc9\x27\xde\x2c\x95\x2d\x47\x5a\xb0\xff\
-\x72\xaa\xa3\x96\xc3\x69\x49\x77\xe4\xe5\xb3\x4d\x76\xf3\x76\x5b\
-\xe4\x29\x26\xd2\x1d\x45\x2a\x93\x4a\xff\x6b\x94\x34\xb1\xba\x50\
-\x03\xda\x64\xa8\x2f\xe1\x5f\x6e\xe4\x35\xda\x9d\x9a\x3e\x1e\x4f\
-\xd5\xc2\x3f\x9a\x57\xad\x10\x38\xa9\x66\xcd\xd5\xe3\xd7\xc4\x5b\
-\x51\x77\x44\xfc\x72\x46\x5e\x1f\x8d\x13\x8a\x6d\xbc\xf2\x65\x29\
-\x97\xa7\x07\xdc\xbf\x5a\xba\x8a\xac\x2d\x56\x2e\xee\x9e\x1c\x75\
-\x1b\x35\xb9\xbb\x88\x47\x32\xdd\x8b\x66\xfe\x67\xc0\xbc\x96\x6d\
-\x66\x24\xc8\x07\x46\x6f\x3c\x26\x6e\xc2\x06\x2e\xc7\xd3\xce\x02\
-\xaf\x8c\x36\x52\x7f\xb5\x09\xce\x89\x8d\x4c\xe6\xb6\xab\xd7\xc3\
-\x41\xfb\xb3\xa1\x75\xa0\xf8\x5f\xb5\x7c\xec\x8c\x72\xab\xbe\x6f\
-\x42\x8a\x6d\x7d\x08\x52\x1b\xf6\xef\x1e\xe8\xf4\x9c\xe0\xfb\x21\
-\xac\x06\x22\x12\x4e\x1e\x11\xa8\xf2\x78\x00\x79\xf4\xca\x77\x6e\
-\xd6\xc3\xa0\xc2\x5c\x63\x83\x8b\xf1\x17\xcf\xc0\x34\xb4\x3f\x89\
-\x56\x6f\x2a\x19\xb9\xf1\xe0\x99\x99\x00\x6c\x3e\x6b\x66\x69\xae\
-\xbd\xd9\xad\xbf\x5c\xe6\xd6\x06\x91\xef\x93\xd5\xdb\x4a\xe6\x3e\
-\x76\x1c\xdf\x32\x52\xe5\x25\x2c\xf3\x61\x27\xca\x98\x27\xef\xfd\
-\x7b\x3c\xe2\xe1\x52\x3a\x83\xaa\x1c\x80\xa4\x19\x3e\xc0\x50\x8f\
-\x2a\x72\x25\x0f\xc0\xbf\x2e\x2a\xc3\xb1\xf9\x5f\x17\x8d\x39\xf2\
-\xd5\x76\x59\xde\x88\xe0\x03\xd6\xc6\x33\x1f\x09\x8f\xa4\xe0\xb2\
-\x42\xd3\x10\x05\xf2\xaf\x26\x83\x3f\xe8\x95\xbf\x6a\xa2\xb7\x56\
-\xa8\x84\x3a\x22\xf3\x47\xa3\xa7\x2a\xc5\x02\x33\x37\x90\xde\x28\
-\xab\xfd\xed\x21\x7c\x27\xa3\xfe\xd6\xac\x68\x66\x7f\x69\x36\x50\
-\x2f\xe7\x68\x04\xd3\xe1\x99\x6c\x04\x4d\x73\xfc\xac\xf4\xb0\x89\
-\x6c\x77\x19\x33\x62\x3c\x1a\x1d\x99\x21\xb5\x49\x67\x32\x75\xcb\
-\xa0\x89\x48\xb9\x22\xbd\xaa\xbf\x01\xdd\xad\x95\x22\x8f\x94\x77\
-\xad\xd7\x69\x24\x72\x7b\x8c\xd0\x46\x2f\x67\xf8\x62\xb9\x1f\x8e\
-\xd5\x5f\xb6\xa5\xc4\x7a\x7c\x4d\x56\x65\xea\x73\x49\x25\x45\xbc\
-\xb7\xfb\x42\xef\x99\xfb\x0e\xbd\xa1\xee\x54\x9e\x5c\xff\x7f\x2f\
-\x2e\x80\x20\
-\x00\x01\x6e\xac\
-\x2f\
-\x2a\x21\x20\x6a\x51\x75\x65\x72\x79\x20\x76\x31\x2e\x37\x2e\x31\
-\x20\x6a\x71\x75\x65\x72\x79\x2e\x63\x6f\x6d\x20\x7c\x20\x6a\x71\
-\x75\x65\x72\x79\x2e\x6f\x72\x67\x2f\x6c\x69\x63\x65\x6e\x73\x65\
-\x20\x2a\x2f\x0a\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\
-\x62\x29\x7b\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x79\x28\x61\
-\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x69\x73\x57\x69\x6e\
-\x64\x6f\x77\x28\x61\x29\x3f\x61\x3a\x61\x2e\x6e\x6f\x64\x65\x54\
-\x79\x70\x65\x3d\x3d\x3d\x39\x3f\x61\x2e\x64\x65\x66\x61\x75\x6c\
-\x74\x56\x69\x65\x77\x7c\x7c\x61\x2e\x70\x61\x72\x65\x6e\x74\x57\
-\x69\x6e\x64\x6f\x77\x3a\x21\x31\x7d\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x20\x63\x76\x28\x61\x29\x7b\x69\x66\x28\x21\x63\x6b\x5b\x61\
-\x5d\x29\x7b\x76\x61\x72\x20\x62\x3d\x63\x2e\x62\x6f\x64\x79\x2c\
-\x64\x3d\x66\x28\x22\x3c\x22\x2b\x61\x2b\x22\x3e\x22\x29\x2e\x61\
-\x70\x70\x65\x6e\x64\x54\x6f\x28\x62\x29\x2c\x65\x3d\x64\x2e\x63\
-\x73\x73\x28\x22\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x3b\x64\x2e\
-\x72\x65\x6d\x6f\x76\x65\x28\x29\x3b\x69\x66\x28\x65\x3d\x3d\x3d\
-\x22\x6e\x6f\x6e\x65\x22\x7c\x7c\x65\x3d\x3d\x3d\x22\x22\x29\x7b\
-\x63\x6c\x7c\x7c\x28\x63\x6c\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\
-\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x69\x66\x72\x61\x6d\x65\x22\
-\x29\x2c\x63\x6c\x2e\x66\x72\x61\x6d\x65\x42\x6f\x72\x64\x65\x72\
-\x3d\x63\x6c\x2e\x77\x69\x64\x74\x68\x3d\x63\x6c\x2e\x68\x65\x69\
-\x67\x68\x74\x3d\x30\x29\x2c\x62\x2e\x61\x70\x70\x65\x6e\x64\x43\
-\x68\x69\x6c\x64\x28\x63\x6c\x29\x3b\x69\x66\x28\x21\x63\x6d\x7c\
-\x7c\x21\x63\x6c\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\
-\x6e\x74\x29\x63\x6d\x3d\x28\x63\x6c\x2e\x63\x6f\x6e\x74\x65\x6e\
-\x74\x57\x69\x6e\x64\x6f\x77\x7c\x7c\x63\x6c\x2e\x63\x6f\x6e\x74\
-\x65\x6e\x74\x44\x6f\x63\x75\x6d\x65\x6e\x74\x29\x2e\x64\x6f\x63\
-\x75\x6d\x65\x6e\x74\x2c\x63\x6d\x2e\x77\x72\x69\x74\x65\x28\x28\
-\x63\x2e\x63\x6f\x6d\x70\x61\x74\x4d\x6f\x64\x65\x3d\x3d\x3d\x22\
-\x43\x53\x53\x31\x43\x6f\x6d\x70\x61\x74\x22\x3f\x22\x3c\x21\x64\
-\x6f\x63\x74\x79\x70\x65\x20\x68\x74\x6d\x6c\x3e\x22\x3a\x22\x22\
-\x29\x2b\x22\x3c\x68\x74\x6d\x6c\x3e\x3c\x62\x6f\x64\x79\x3e\x22\
-\x29\x2c\x63\x6d\x2e\x63\x6c\x6f\x73\x65\x28\x29\x3b\x64\x3d\x63\
-\x6d\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\
-\x61\x29\x2c\x63\x6d\x2e\x62\x6f\x64\x79\x2e\x61\x70\x70\x65\x6e\
-\x64\x43\x68\x69\x6c\x64\x28\x64\x29\x2c\x65\x3d\x66\x2e\x63\x73\
-\x73\x28\x64\x2c\x22\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x2c\x62\
-\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x63\x6c\x29\
-\x7d\x63\x6b\x5b\x61\x5d\x3d\x65\x7d\x72\x65\x74\x75\x72\x6e\x20\
-\x63\x6b\x5b\x61\x5d\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\
-\x75\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x7b\x7d\x3b\
-\x66\x2e\x65\x61\x63\x68\x28\x63\x71\x2e\x63\x6f\x6e\x63\x61\x74\
-\x2e\x61\x70\x70\x6c\x79\x28\x5b\x5d\x2c\x63\x71\x2e\x73\x6c\x69\
-\x63\x65\x28\x30\x2c\x62\x29\x29\x2c\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x29\x7b\x63\x5b\x74\x68\x69\x73\x5d\x3d\x61\x7d\x29\x3b\
-\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x20\x63\x74\x28\x29\x7b\x63\x72\x3d\x62\x7d\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x20\x63\x73\x28\x29\x7b\x73\x65\x74\x54\x69\x6d\
-\x65\x6f\x75\x74\x28\x63\x74\x2c\x30\x29\x3b\x72\x65\x74\x75\x72\
-\x6e\x20\x63\x72\x3d\x66\x2e\x6e\x6f\x77\x28\x29\x7d\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x20\x63\x6a\x28\x29\x7b\x74\x72\x79\x7b\x72\
-\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x2e\x41\x63\x74\x69\
-\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x4d\x69\x63\x72\x6f\
-\x73\x6f\x66\x74\x2e\x58\x4d\x4c\x48\x54\x54\x50\x22\x29\x7d\x63\
-\x61\x74\x63\x68\x28\x62\x29\x7b\x7d\x7d\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x20\x63\x69\x28\x29\x7b\x74\x72\x79\x7b\x72\x65\x74\x75\
-\x72\x6e\x20\x6e\x65\x77\x20\x61\x2e\x58\x4d\x4c\x48\x74\x74\x70\
-\x52\x65\x71\x75\x65\x73\x74\x7d\x63\x61\x74\x63\x68\x28\x62\x29\
-\x7b\x7d\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x63\x28\x61\
-\x2c\x63\x29\x7b\x61\x2e\x64\x61\x74\x61\x46\x69\x6c\x74\x65\x72\
-\x26\x26\x28\x63\x3d\x61\x2e\x64\x61\x74\x61\x46\x69\x6c\x74\x65\
-\x72\x28\x63\x2c\x61\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x29\x29\
-\x3b\x76\x61\x72\x20\x64\x3d\x61\x2e\x64\x61\x74\x61\x54\x79\x70\
-\x65\x73\x2c\x65\x3d\x7b\x7d\x2c\x67\x2c\x68\x2c\x69\x3d\x64\x2e\
-\x6c\x65\x6e\x67\x74\x68\x2c\x6a\x2c\x6b\x3d\x64\x5b\x30\x5d\x2c\
-\x6c\x2c\x6d\x2c\x6e\x2c\x6f\x2c\x70\x3b\x66\x6f\x72\x28\x67\x3d\
-\x31\x3b\x67\x3c\x69\x3b\x67\x2b\x2b\x29\x7b\x69\x66\x28\x67\x3d\
-\x3d\x3d\x31\x29\x66\x6f\x72\x28\x68\x20\x69\x6e\x20\x61\x2e\x63\
-\x6f\x6e\x76\x65\x72\x74\x65\x72\x73\x29\x74\x79\x70\x65\x6f\x66\
-\x20\x68\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x65\
-\x5b\x68\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\
-\x5d\x3d\x61\x2e\x63\x6f\x6e\x76\x65\x72\x74\x65\x72\x73\x5b\x68\
-\x5d\x29\x3b\x6c\x3d\x6b\x2c\x6b\x3d\x64\x5b\x67\x5d\x3b\x69\x66\
-\x28\x6b\x3d\x3d\x3d\x22\x2a\x22\x29\x6b\x3d\x6c\x3b\x65\x6c\x73\
-\x65\x20\x69\x66\x28\x6c\x21\x3d\x3d\x22\x2a\x22\x26\x26\x6c\x21\
-\x3d\x3d\x6b\x29\x7b\x6d\x3d\x6c\x2b\x22\x20\x22\x2b\x6b\x2c\x6e\
-\x3d\x65\x5b\x6d\x5d\x7c\x7c\x65\x5b\x22\x2a\x20\x22\x2b\x6b\x5d\
-\x3b\x69\x66\x28\x21\x6e\x29\x7b\x70\x3d\x62\x3b\x66\x6f\x72\x28\
-\x6f\x20\x69\x6e\x20\x65\x29\x7b\x6a\x3d\x6f\x2e\x73\x70\x6c\x69\
-\x74\x28\x22\x20\x22\x29\x3b\x69\x66\x28\x6a\x5b\x30\x5d\x3d\x3d\
-\x3d\x6c\x7c\x7c\x6a\x5b\x30\x5d\x3d\x3d\x3d\x22\x2a\x22\x29\x7b\
-\x70\x3d\x65\x5b\x6a\x5b\x31\x5d\x2b\x22\x20\x22\x2b\x6b\x5d\x3b\
-\x69\x66\x28\x70\x29\x7b\x6f\x3d\x65\x5b\x6f\x5d\x2c\x6f\x3d\x3d\
-\x3d\x21\x30\x3f\x6e\x3d\x70\x3a\x70\x3d\x3d\x3d\x21\x30\x26\x26\
-\x28\x6e\x3d\x6f\x29\x3b\x62\x72\x65\x61\x6b\x7d\x7d\x7d\x7d\x21\
-\x6e\x26\x26\x21\x70\x26\x26\x66\x2e\x65\x72\x72\x6f\x72\x28\x22\
-\x4e\x6f\x20\x63\x6f\x6e\x76\x65\x72\x73\x69\x6f\x6e\x20\x66\x72\
-\x6f\x6d\x20\x22\x2b\x6d\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x22\
-\x20\x22\x2c\x22\x20\x74\x6f\x20\x22\x29\x29\x2c\x6e\x21\x3d\x3d\
-\x21\x30\x26\x26\x28\x63\x3d\x6e\x3f\x6e\x28\x63\x29\x3a\x70\x28\
-\x6f\x28\x63\x29\x29\x29\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x63\
-\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x63\x62\x28\x61\x2c\x63\
-\x2c\x64\x29\x7b\x76\x61\x72\x20\x65\x3d\x61\x2e\x63\x6f\x6e\x74\
-\x65\x6e\x74\x73\x2c\x66\x3d\x61\x2e\x64\x61\x74\x61\x54\x79\x70\
-\x65\x73\x2c\x67\x3d\x61\x2e\x72\x65\x73\x70\x6f\x6e\x73\x65\x46\
-\x69\x65\x6c\x64\x73\x2c\x68\x2c\x69\x2c\x6a\x2c\x6b\x3b\x66\x6f\
-\x72\x28\x69\x20\x69\x6e\x20\x67\x29\x69\x20\x69\x6e\x20\x64\x26\
-\x26\x28\x63\x5b\x67\x5b\x69\x5d\x5d\x3d\x64\x5b\x69\x5d\x29\x3b\
-\x77\x68\x69\x6c\x65\x28\x66\x5b\x30\x5d\x3d\x3d\x3d\x22\x2a\x22\
-\x29\x66\x2e\x73\x68\x69\x66\x74\x28\x29\x2c\x68\x3d\x3d\x3d\x62\
-\x26\x26\x28\x68\x3d\x61\x2e\x6d\x69\x6d\x65\x54\x79\x70\x65\x7c\
-\x7c\x63\x2e\x67\x65\x74\x52\x65\x73\x70\x6f\x6e\x73\x65\x48\x65\
-\x61\x64\x65\x72\x28\x22\x63\x6f\x6e\x74\x65\x6e\x74\x2d\x74\x79\
-\x70\x65\x22\x29\x29\x3b\x69\x66\x28\x68\x29\x66\x6f\x72\x28\x69\
-\x20\x69\x6e\x20\x65\x29\x69\x66\x28\x65\x5b\x69\x5d\x26\x26\x65\
-\x5b\x69\x5d\x2e\x74\x65\x73\x74\x28\x68\x29\x29\x7b\x66\x2e\x75\
-\x6e\x73\x68\x69\x66\x74\x28\x69\x29\x3b\x62\x72\x65\x61\x6b\x7d\
-\x69\x66\x28\x66\x5b\x30\x5d\x69\x6e\x20\x64\x29\x6a\x3d\x66\x5b\
-\x30\x5d\x3b\x65\x6c\x73\x65\x7b\x66\x6f\x72\x28\x69\x20\x69\x6e\
-\x20\x64\x29\x7b\x69\x66\x28\x21\x66\x5b\x30\x5d\x7c\x7c\x61\x2e\
-\x63\x6f\x6e\x76\x65\x72\x74\x65\x72\x73\x5b\x69\x2b\x22\x20\x22\
-\x2b\x66\x5b\x30\x5d\x5d\x29\x7b\x6a\x3d\x69\x3b\x62\x72\x65\x61\
-\x6b\x7d\x6b\x7c\x7c\x28\x6b\x3d\x69\x29\x7d\x6a\x3d\x6a\x7c\x7c\
-\x6b\x7d\x69\x66\x28\x6a\x29\x7b\x6a\x21\x3d\x3d\x66\x5b\x30\x5d\
-\x26\x26\x66\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x6a\x29\x3b\x72\
-\x65\x74\x75\x72\x6e\x20\x64\x5b\x6a\x5d\x7d\x7d\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x20\x63\x61\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\
-\x7b\x69\x66\x28\x66\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x62\x29\
-\x29\x66\x2e\x65\x61\x63\x68\x28\x62\x2c\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x62\x2c\x65\x29\x7b\x63\x7c\x7c\x62\x45\x2e\x74\x65\
-\x73\x74\x28\x61\x29\x3f\x64\x28\x61\x2c\x65\x29\x3a\x63\x61\x28\
-\x61\x2b\x22\x5b\x22\x2b\x28\x74\x79\x70\x65\x6f\x66\x20\x65\x3d\
-\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x7c\x7c\x66\x2e\x69\x73\x41\
-\x72\x72\x61\x79\x28\x65\x29\x3f\x62\x3a\x22\x22\x29\x2b\x22\x5d\
-\x22\x2c\x65\x2c\x63\x2c\x64\x29\x7d\x29\x3b\x65\x6c\x73\x65\x20\
-\x69\x66\x28\x21\x63\x26\x26\x62\x21\x3d\x6e\x75\x6c\x6c\x26\x26\
-\x74\x79\x70\x65\x6f\x66\x20\x62\x3d\x3d\x22\x6f\x62\x6a\x65\x63\
-\x74\x22\x29\x66\x6f\x72\x28\x76\x61\x72\x20\x65\x20\x69\x6e\x20\
-\x62\x29\x63\x61\x28\x61\x2b\x22\x5b\x22\x2b\x65\x2b\x22\x5d\x22\
-\x2c\x62\x5b\x65\x5d\x2c\x63\x2c\x64\x29\x3b\x65\x6c\x73\x65\x20\
-\x64\x28\x61\x2c\x62\x29\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\
-\x62\x5f\x28\x61\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x2c\x65\x2c\
-\x67\x3d\x66\x2e\x61\x6a\x61\x78\x53\x65\x74\x74\x69\x6e\x67\x73\
-\x2e\x66\x6c\x61\x74\x4f\x70\x74\x69\x6f\x6e\x73\x7c\x7c\x7b\x7d\
-\x3b\x66\x6f\x72\x28\x64\x20\x69\x6e\x20\x63\x29\x63\x5b\x64\x5d\
-\x21\x3d\x3d\x62\x26\x26\x28\x28\x67\x5b\x64\x5d\x3f\x61\x3a\x65\
-\x7c\x7c\x28\x65\x3d\x7b\x7d\x29\x29\x5b\x64\x5d\x3d\x63\x5b\x64\
-\x5d\x29\x3b\x65\x26\x26\x66\x2e\x65\x78\x74\x65\x6e\x64\x28\x21\
-\x30\x2c\x61\x2c\x65\x29\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\
-\x62\x24\x28\x61\x2c\x63\x2c\x64\x2c\x65\x2c\x66\x2c\x67\x29\x7b\
-\x66\x3d\x66\x7c\x7c\x63\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\
-\x5b\x30\x5d\x2c\x67\x3d\x67\x7c\x7c\x7b\x7d\x2c\x67\x5b\x66\x5d\
-\x3d\x21\x30\x3b\x76\x61\x72\x20\x68\x3d\x61\x5b\x66\x5d\x2c\x69\
-\x3d\x30\x2c\x6a\x3d\x68\x3f\x68\x2e\x6c\x65\x6e\x67\x74\x68\x3a\
-\x30\x2c\x6b\x3d\x61\x3d\x3d\x3d\x62\x54\x2c\x6c\x3b\x66\x6f\x72\
-\x28\x3b\x69\x3c\x6a\x26\x26\x28\x6b\x7c\x7c\x21\x6c\x29\x3b\x69\
-\x2b\x2b\x29\x6c\x3d\x68\x5b\x69\x5d\x28\x63\x2c\x64\x2c\x65\x29\
-\x2c\x74\x79\x70\x65\x6f\x66\x20\x6c\x3d\x3d\x22\x73\x74\x72\x69\
-\x6e\x67\x22\x26\x26\x28\x21\x6b\x7c\x7c\x67\x5b\x6c\x5d\x3f\x6c\
-\x3d\x62\x3a\x28\x63\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\x2e\
-\x75\x6e\x73\x68\x69\x66\x74\x28\x6c\x29\x2c\x6c\x3d\x62\x24\x28\
-\x61\x2c\x63\x2c\x64\x2c\x65\x2c\x6c\x2c\x67\x29\x29\x29\x3b\x28\
-\x6b\x7c\x7c\x21\x6c\x29\x26\x26\x21\x67\x5b\x22\x2a\x22\x5d\x26\
-\x26\x28\x6c\x3d\x62\x24\x28\x61\x2c\x63\x2c\x64\x2c\x65\x2c\x22\
-\x2a\x22\x2c\x67\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x6c\x7d\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x5a\x28\x61\x29\x7b\x72\
-\x65\x74\x75\x72\x6e\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\
-\x2c\x63\x29\x7b\x74\x79\x70\x65\x6f\x66\x20\x62\x21\x3d\x22\x73\
-\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x63\x3d\x62\x2c\x62\x3d\x22\
-\x2a\x22\x29\x3b\x69\x66\x28\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x63\x29\x29\x7b\x76\x61\x72\x20\x64\x3d\x62\x2e\
-\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2e\x73\x70\
-\x6c\x69\x74\x28\x62\x50\x29\x2c\x65\x3d\x30\x2c\x67\x3d\x64\x2e\
-\x6c\x65\x6e\x67\x74\x68\x2c\x68\x2c\x69\x2c\x6a\x3b\x66\x6f\x72\
-\x28\x3b\x65\x3c\x67\x3b\x65\x2b\x2b\x29\x68\x3d\x64\x5b\x65\x5d\
-\x2c\x6a\x3d\x2f\x5e\x5c\x2b\x2f\x2e\x74\x65\x73\x74\x28\x68\x29\
-\x2c\x6a\x26\x26\x28\x68\x3d\x68\x2e\x73\x75\x62\x73\x74\x72\x28\
-\x31\x29\x7c\x7c\x22\x2a\x22\x29\x2c\x69\x3d\x61\x5b\x68\x5d\x3d\
-\x61\x5b\x68\x5d\x7c\x7c\x5b\x5d\x2c\x69\x5b\x6a\x3f\x22\x75\x6e\
-\x73\x68\x69\x66\x74\x22\x3a\x22\x70\x75\x73\x68\x22\x5d\x28\x63\
-\x29\x7d\x7d\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x43\x28\
-\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x62\x3d\x3d\
-\x3d\x22\x77\x69\x64\x74\x68\x22\x3f\x61\x2e\x6f\x66\x66\x73\x65\
-\x74\x57\x69\x64\x74\x68\x3a\x61\x2e\x6f\x66\x66\x73\x65\x74\x48\
-\x65\x69\x67\x68\x74\x2c\x65\x3d\x62\x3d\x3d\x3d\x22\x77\x69\x64\
-\x74\x68\x22\x3f\x62\x78\x3a\x62\x79\x2c\x67\x3d\x30\x2c\x68\x3d\
-\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x69\x66\x28\x64\x3e\x30\x29\
-\x7b\x69\x66\x28\x63\x21\x3d\x3d\x22\x62\x6f\x72\x64\x65\x72\x22\
-\x29\x66\x6f\x72\x28\x3b\x67\x3c\x68\x3b\x67\x2b\x2b\x29\x63\x7c\
-\x7c\x28\x64\x2d\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\
-\x66\x2e\x63\x73\x73\x28\x61\x2c\x22\x70\x61\x64\x64\x69\x6e\x67\
-\x22\x2b\x65\x5b\x67\x5d\x29\x29\x7c\x7c\x30\x29\x2c\x63\x3d\x3d\
-\x3d\x22\x6d\x61\x72\x67\x69\x6e\x22\x3f\x64\x2b\x3d\x70\x61\x72\
-\x73\x65\x46\x6c\x6f\x61\x74\x28\x66\x2e\x63\x73\x73\x28\x61\x2c\
-\x63\x2b\x65\x5b\x67\x5d\x29\x29\x7c\x7c\x30\x3a\x64\x2d\x3d\x70\
-\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x66\x2e\x63\x73\x73\x28\
-\x61\x2c\x22\x62\x6f\x72\x64\x65\x72\x22\x2b\x65\x5b\x67\x5d\x2b\
-\x22\x57\x69\x64\x74\x68\x22\x29\x29\x7c\x7c\x30\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x64\x2b\x22\x70\x78\x22\x7d\x64\x3d\x62\x7a\x28\
-\x61\x2c\x62\x2c\x62\x29\x3b\x69\x66\x28\x64\x3c\x30\x7c\x7c\x64\
-\x3d\x3d\x6e\x75\x6c\x6c\x29\x64\x3d\x61\x2e\x73\x74\x79\x6c\x65\
-\x5b\x62\x5d\x7c\x7c\x30\x3b\x64\x3d\x70\x61\x72\x73\x65\x46\x6c\
-\x6f\x61\x74\x28\x64\x29\x7c\x7c\x30\x3b\x69\x66\x28\x63\x29\x66\
-\x6f\x72\x28\x3b\x67\x3c\x68\x3b\x67\x2b\x2b\x29\x64\x2b\x3d\x70\
-\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x66\x2e\x63\x73\x73\x28\
-\x61\x2c\x22\x70\x61\x64\x64\x69\x6e\x67\x22\x2b\x65\x5b\x67\x5d\
-\x29\x29\x7c\x7c\x30\x2c\x63\x21\x3d\x3d\x22\x70\x61\x64\x64\x69\
-\x6e\x67\x22\x26\x26\x28\x64\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\
-\x6f\x61\x74\x28\x66\x2e\x63\x73\x73\x28\x61\x2c\x22\x62\x6f\x72\
-\x64\x65\x72\x22\x2b\x65\x5b\x67\x5d\x2b\x22\x57\x69\x64\x74\x68\
-\x22\x29\x29\x7c\x7c\x30\x29\x2c\x63\x3d\x3d\x3d\x22\x6d\x61\x72\
-\x67\x69\x6e\x22\x26\x26\x28\x64\x2b\x3d\x70\x61\x72\x73\x65\x46\
-\x6c\x6f\x61\x74\x28\x66\x2e\x63\x73\x73\x28\x61\x2c\x63\x2b\x65\
-\x5b\x67\x5d\x29\x29\x7c\x7c\x30\x29\x3b\x72\x65\x74\x75\x72\x6e\
-\x20\x64\x2b\x22\x70\x78\x22\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x20\x62\x70\x28\x61\x2c\x62\x29\x7b\x62\x2e\x73\x72\x63\x3f\x66\
-\x2e\x61\x6a\x61\x78\x28\x7b\x75\x72\x6c\x3a\x62\x2e\x73\x72\x63\
-\x2c\x61\x73\x79\x6e\x63\x3a\x21\x31\x2c\x64\x61\x74\x61\x54\x79\
-\x70\x65\x3a\x22\x73\x63\x72\x69\x70\x74\x22\x7d\x29\x3a\x66\x2e\
-\x67\x6c\x6f\x62\x61\x6c\x45\x76\x61\x6c\x28\x28\x62\x2e\x74\x65\
-\x78\x74\x7c\x7c\x62\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\
-\x74\x7c\x7c\x62\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x7c\x7c\
-\x22\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x66\x2c\x22\
-\x2f\x2a\x24\x30\x2a\x2f\x22\x29\x29\x2c\x62\x2e\x70\x61\x72\x65\
-\x6e\x74\x4e\x6f\x64\x65\x26\x26\x62\x2e\x70\x61\x72\x65\x6e\x74\
-\x4e\x6f\x64\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\
-\x28\x62\x29\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x6f\x28\
-\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x63\x2e\x63\x72\x65\x61\x74\
-\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x3b\
-\x62\x68\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x62\
-\x29\x2c\x62\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x61\x2e\
-\x6f\x75\x74\x65\x72\x48\x54\x4d\x4c\x3b\x72\x65\x74\x75\x72\x6e\
-\x20\x62\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x7d\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x20\x62\x6e\x28\x61\x29\x7b\x76\x61\x72\
-\x20\x62\x3d\x28\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x7c\x7c\
-\x22\x22\x29\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\
-\x29\x3b\x62\x3d\x3d\x3d\x22\x69\x6e\x70\x75\x74\x22\x3f\x62\x6d\
-\x28\x61\x29\x3a\x62\x21\x3d\x3d\x22\x73\x63\x72\x69\x70\x74\x22\
-\x26\x26\x74\x79\x70\x65\x6f\x66\x20\x61\x2e\x67\x65\x74\x45\x6c\
-\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x21\
-\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x26\x26\x66\x2e\
-\x67\x72\x65\x70\x28\x61\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\
-\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x69\x6e\x70\
-\x75\x74\x22\x29\x2c\x62\x6d\x29\x7d\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x20\x62\x6d\x28\x61\x29\x7b\x69\x66\x28\x61\x2e\x74\x79\x70\
-\x65\x3d\x3d\x3d\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x22\x7c\x7c\
-\x61\x2e\x74\x79\x70\x65\x3d\x3d\x3d\x22\x72\x61\x64\x69\x6f\x22\
-\x29\x61\x2e\x64\x65\x66\x61\x75\x6c\x74\x43\x68\x65\x63\x6b\x65\
-\x64\x3d\x61\x2e\x63\x68\x65\x63\x6b\x65\x64\x7d\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x20\x62\x6c\x28\x61\x29\x7b\x72\x65\x74\x75\x72\
-\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x61\x2e\x67\x65\x74\x45\x6c\
-\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x21\
-\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x3f\x61\x2e\x67\
-\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\
-\x61\x6d\x65\x28\x22\x2a\x22\x29\x3a\x74\x79\x70\x65\x6f\x66\x20\
-\x61\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\
-\x6c\x6c\x21\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x3f\
-\x61\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\
-\x6c\x6c\x28\x22\x2a\x22\x29\x3a\x5b\x5d\x7d\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x20\x62\x6b\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\
-\x63\x3b\x69\x66\x28\x62\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\
-\x3d\x3d\x31\x29\x7b\x62\x2e\x63\x6c\x65\x61\x72\x41\x74\x74\x72\
-\x69\x62\x75\x74\x65\x73\x26\x26\x62\x2e\x63\x6c\x65\x61\x72\x41\
-\x74\x74\x72\x69\x62\x75\x74\x65\x73\x28\x29\x2c\x62\x2e\x6d\x65\
-\x72\x67\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73\x26\x26\x62\
-\x2e\x6d\x65\x72\x67\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73\
-\x28\x61\x29\x2c\x63\x3d\x62\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\
-\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3b\x69\
-\x66\x28\x63\x3d\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x62\
-\x2e\x6f\x75\x74\x65\x72\x48\x54\x4d\x4c\x3d\x61\x2e\x6f\x75\x74\
-\x65\x72\x48\x54\x4d\x4c\x3b\x65\x6c\x73\x65\x20\x69\x66\x28\x63\
-\x21\x3d\x3d\x22\x69\x6e\x70\x75\x74\x22\x7c\x7c\x61\x2e\x74\x79\
-\x70\x65\x21\x3d\x3d\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x22\x26\
-\x26\x61\x2e\x74\x79\x70\x65\x21\x3d\x3d\x22\x72\x61\x64\x69\x6f\
-\x22\x29\x7b\x69\x66\x28\x63\x3d\x3d\x3d\x22\x6f\x70\x74\x69\x6f\
-\x6e\x22\x29\x62\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x3d\x61\x2e\
-\x64\x65\x66\x61\x75\x6c\x74\x53\x65\x6c\x65\x63\x74\x65\x64\x3b\
-\x65\x6c\x73\x65\x20\x69\x66\x28\x63\x3d\x3d\x3d\x22\x69\x6e\x70\
-\x75\x74\x22\x7c\x7c\x63\x3d\x3d\x3d\x22\x74\x65\x78\x74\x61\x72\
-\x65\x61\x22\x29\x62\x2e\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\
-\x75\x65\x3d\x61\x2e\x64\x65\x66\x61\x75\x6c\x74\x56\x61\x6c\x75\
-\x65\x7d\x65\x6c\x73\x65\x20\x61\x2e\x63\x68\x65\x63\x6b\x65\x64\
-\x26\x26\x28\x62\x2e\x64\x65\x66\x61\x75\x6c\x74\x43\x68\x65\x63\
-\x6b\x65\x64\x3d\x62\x2e\x63\x68\x65\x63\x6b\x65\x64\x3d\x61\x2e\
-\x63\x68\x65\x63\x6b\x65\x64\x29\x2c\x62\x2e\x76\x61\x6c\x75\x65\
-\x21\x3d\x3d\x61\x2e\x76\x61\x6c\x75\x65\x26\x26\x28\x62\x2e\x76\
-\x61\x6c\x75\x65\x3d\x61\x2e\x76\x61\x6c\x75\x65\x29\x3b\x62\x2e\
-\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\
-\x66\x2e\x65\x78\x70\x61\x6e\x64\x6f\x29\x7d\x7d\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x20\x62\x6a\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\
-\x62\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\
-\x21\x21\x66\x2e\x68\x61\x73\x44\x61\x74\x61\x28\x61\x29\x29\x7b\
-\x76\x61\x72\x20\x63\x2c\x64\x2c\x65\x2c\x67\x3d\x66\x2e\x5f\x64\
-\x61\x74\x61\x28\x61\x29\x2c\x68\x3d\x66\x2e\x5f\x64\x61\x74\x61\
-\x28\x62\x2c\x67\x29\x2c\x69\x3d\x67\x2e\x65\x76\x65\x6e\x74\x73\
-\x3b\x69\x66\x28\x69\x29\x7b\x64\x65\x6c\x65\x74\x65\x20\x68\x2e\
-\x68\x61\x6e\x64\x6c\x65\x2c\x68\x2e\x65\x76\x65\x6e\x74\x73\x3d\
-\x7b\x7d\x3b\x66\x6f\x72\x28\x63\x20\x69\x6e\x20\x69\x29\x66\x6f\
-\x72\x28\x64\x3d\x30\x2c\x65\x3d\x69\x5b\x63\x5d\x2e\x6c\x65\x6e\
-\x67\x74\x68\x3b\x64\x3c\x65\x3b\x64\x2b\x2b\x29\x66\x2e\x65\x76\
-\x65\x6e\x74\x2e\x61\x64\x64\x28\x62\x2c\x63\x2b\x28\x69\x5b\x63\
-\x5d\x5b\x64\x5d\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x3f\x22\
-\x2e\x22\x3a\x22\x22\x29\x2b\x69\x5b\x63\x5d\x5b\x64\x5d\x2e\x6e\
-\x61\x6d\x65\x73\x70\x61\x63\x65\x2c\x69\x5b\x63\x5d\x5b\x64\x5d\
-\x2c\x69\x5b\x63\x5d\x5b\x64\x5d\x2e\x64\x61\x74\x61\x29\x7d\x68\
-\x2e\x64\x61\x74\x61\x26\x26\x28\x68\x2e\x64\x61\x74\x61\x3d\x66\
-\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x68\x2e\x64\x61\x74\
-\x61\x29\x29\x7d\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x62\x69\
-\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x6e\
-\x6f\x64\x65\x4e\x61\x6d\x65\x28\x61\x2c\x22\x74\x61\x62\x6c\x65\
-\x22\x29\x3f\x61\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\
-\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x74\x62\x6f\x64\x79\
-\x22\x29\x5b\x30\x5d\x7c\x7c\x61\x2e\x61\x70\x70\x65\x6e\x64\x43\
-\x68\x69\x6c\x64\x28\x61\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\
-\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\
-\x6e\x74\x28\x22\x74\x62\x6f\x64\x79\x22\x29\x29\x3a\x61\x7d\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x20\x55\x28\x61\x29\x7b\x76\x61\x72\
-\x20\x62\x3d\x56\x2e\x73\x70\x6c\x69\x74\x28\x22\x7c\x22\x29\x2c\
-\x63\x3d\x61\x2e\x63\x72\x65\x61\x74\x65\x44\x6f\x63\x75\x6d\x65\
-\x6e\x74\x46\x72\x61\x67\x6d\x65\x6e\x74\x28\x29\x3b\x69\x66\x28\
-\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x29\
-\x77\x68\x69\x6c\x65\x28\x62\x2e\x6c\x65\x6e\x67\x74\x68\x29\x63\
-\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x62\
-\x2e\x70\x6f\x70\x28\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\
-\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x54\x28\x61\x2c\x62\x2c\
-\x63\x29\x7b\x62\x3d\x62\x7c\x7c\x30\x3b\x69\x66\x28\x66\x2e\x69\
-\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x29\x72\x65\x74\
-\x75\x72\x6e\x20\x66\x2e\x67\x72\x65\x70\x28\x61\x2c\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x2c\x64\x29\x7b\x76\x61\x72\x20\x65\
-\x3d\x21\x21\x62\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x64\x2c\x61\x29\
-\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x3d\x3d\x3d\x63\x7d\x29\x3b\
-\x69\x66\x28\x62\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x29\x72\x65\
-\x74\x75\x72\x6e\x20\x66\x2e\x67\x72\x65\x70\x28\x61\x2c\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x64\x29\x7b\x72\x65\x74\x75\
-\x72\x6e\x20\x61\x3d\x3d\x3d\x62\x3d\x3d\x3d\x63\x7d\x29\x3b\x69\
-\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x62\x3d\x3d\x22\x73\x74\x72\
-\x69\x6e\x67\x22\x29\x7b\x76\x61\x72\x20\x64\x3d\x66\x2e\x67\x72\
-\x65\x70\x28\x61\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\
-\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x6e\x6f\x64\x65\x54\x79\
-\x70\x65\x3d\x3d\x3d\x31\x7d\x29\x3b\x69\x66\x28\x4f\x2e\x74\x65\
-\x73\x74\x28\x62\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x66\
-\x69\x6c\x74\x65\x72\x28\x62\x2c\x64\x2c\x21\x63\x29\x3b\x62\x3d\
-\x66\x2e\x66\x69\x6c\x74\x65\x72\x28\x62\x2c\x64\x29\x7d\x72\x65\
-\x74\x75\x72\x6e\x20\x66\x2e\x67\x72\x65\x70\x28\x61\x2c\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x64\x29\x7b\x72\x65\x74\x75\
-\x72\x6e\x20\x66\x2e\x69\x6e\x41\x72\x72\x61\x79\x28\x61\x2c\x62\
-\x29\x3e\x3d\x30\x3d\x3d\x3d\x63\x7d\x29\x7d\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x20\x53\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\
-\x61\x7c\x7c\x21\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\
-\x7c\x7c\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x6e\
-\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x31\x7d\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x20\x4b\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\
-\x21\x30\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x4a\x28\x29\x7b\
-\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x20\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\
-\x3d\x62\x2b\x22\x64\x65\x66\x65\x72\x22\x2c\x65\x3d\x62\x2b\x22\
-\x71\x75\x65\x75\x65\x22\x2c\x67\x3d\x62\x2b\x22\x6d\x61\x72\x6b\
-\x22\x2c\x68\x3d\x66\x2e\x5f\x64\x61\x74\x61\x28\x61\x2c\x64\x29\
-\x3b\x68\x26\x26\x28\x63\x3d\x3d\x3d\x22\x71\x75\x65\x75\x65\x22\
-\x7c\x7c\x21\x66\x2e\x5f\x64\x61\x74\x61\x28\x61\x2c\x65\x29\x29\
-\x26\x26\x28\x63\x3d\x3d\x3d\x22\x6d\x61\x72\x6b\x22\x7c\x7c\x21\
-\x66\x2e\x5f\x64\x61\x74\x61\x28\x61\x2c\x67\x29\x29\x26\x26\x73\
-\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x29\x7b\x21\x66\x2e\x5f\x64\x61\x74\x61\x28\x61\x2c\
-\x65\x29\x26\x26\x21\x66\x2e\x5f\x64\x61\x74\x61\x28\x61\x2c\x67\
-\x29\x26\x26\x28\x66\x2e\x72\x65\x6d\x6f\x76\x65\x44\x61\x74\x61\
-\x28\x61\x2c\x64\x2c\x21\x30\x29\x2c\x68\x2e\x66\x69\x72\x65\x28\
-\x29\x29\x7d\x2c\x30\x29\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\
-\x6d\x28\x61\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x62\x20\x69\
-\x6e\x20\x61\x29\x7b\x69\x66\x28\x62\x3d\x3d\x3d\x22\x64\x61\x74\
-\x61\x22\x26\x26\x66\x2e\x69\x73\x45\x6d\x70\x74\x79\x4f\x62\x6a\
-\x65\x63\x74\x28\x61\x5b\x62\x5d\x29\x29\x63\x6f\x6e\x74\x69\x6e\
-\x75\x65\x3b\x69\x66\x28\x62\x21\x3d\x3d\x22\x74\x6f\x4a\x53\x4f\
-\x4e\x22\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\x72\x65\x74\x75\
-\x72\x6e\x21\x30\x7d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x6c\x28\
-\x61\x2c\x63\x2c\x64\x29\x7b\x69\x66\x28\x64\x3d\x3d\x3d\x62\x26\
-\x26\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\
-\x7b\x76\x61\x72\x20\x65\x3d\x22\x64\x61\x74\x61\x2d\x22\x2b\x63\
-\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6b\x2c\x22\x2d\x24\x31\x22\
-\x29\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3b\
-\x64\x3d\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\
-\x28\x65\x29\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x64\x3d\
-\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x7b\x74\x72\x79\x7b\x64\
-\x3d\x64\x3d\x3d\x3d\x22\x74\x72\x75\x65\x22\x3f\x21\x30\x3a\x64\
-\x3d\x3d\x3d\x22\x66\x61\x6c\x73\x65\x22\x3f\x21\x31\x3a\x64\x3d\
-\x3d\x3d\x22\x6e\x75\x6c\x6c\x22\x3f\x6e\x75\x6c\x6c\x3a\x66\x2e\
-\x69\x73\x4e\x75\x6d\x65\x72\x69\x63\x28\x64\x29\x3f\x70\x61\x72\
-\x73\x65\x46\x6c\x6f\x61\x74\x28\x64\x29\x3a\x6a\x2e\x74\x65\x73\
-\x74\x28\x64\x29\x3f\x66\x2e\x70\x61\x72\x73\x65\x4a\x53\x4f\x4e\
-\x28\x64\x29\x3a\x64\x7d\x63\x61\x74\x63\x68\x28\x67\x29\x7b\x7d\
-\x66\x2e\x64\x61\x74\x61\x28\x61\x2c\x63\x2c\x64\x29\x7d\x65\x6c\
-\x73\x65\x20\x64\x3d\x62\x7d\x72\x65\x74\x75\x72\x6e\x20\x64\x7d\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x68\x28\x61\x29\x7b\x76\x61\
-\x72\x20\x62\x3d\x67\x5b\x61\x5d\x3d\x7b\x7d\x2c\x63\x2c\x64\x3b\
-\x61\x3d\x61\x2e\x73\x70\x6c\x69\x74\x28\x2f\x5c\x73\x2b\x2f\x29\
-\x3b\x66\x6f\x72\x28\x63\x3d\x30\x2c\x64\x3d\x61\x2e\x6c\x65\x6e\
-\x67\x74\x68\x3b\x63\x3c\x64\x3b\x63\x2b\x2b\x29\x62\x5b\x61\x5b\
-\x63\x5d\x5d\x3d\x21\x30\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x7d\
-\x76\x61\x72\x20\x63\x3d\x61\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\
-\x2c\x64\x3d\x61\x2e\x6e\x61\x76\x69\x67\x61\x74\x6f\x72\x2c\x65\
-\x3d\x61\x2e\x6c\x6f\x63\x61\x74\x69\x6f\x6e\x2c\x66\x3d\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x20\x4a\x28\x29\x7b\x69\x66\x28\x21\x65\x2e\x69\x73\x52\x65\
-\x61\x64\x79\x29\x7b\x74\x72\x79\x7b\x63\x2e\x64\x6f\x63\x75\x6d\
-\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x64\x6f\x53\x63\x72\
-\x6f\x6c\x6c\x28\x22\x6c\x65\x66\x74\x22\x29\x7d\x63\x61\x74\x63\
-\x68\x28\x61\x29\x7b\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\
-\x4a\x2c\x31\x29\x3b\x72\x65\x74\x75\x72\x6e\x7d\x65\x2e\x72\x65\
-\x61\x64\x79\x28\x29\x7d\x7d\x76\x61\x72\x20\x65\x3d\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\
-\x6e\x20\x6e\x65\x77\x20\x65\x2e\x66\x6e\x2e\x69\x6e\x69\x74\x28\
-\x61\x2c\x62\x2c\x68\x29\x7d\x2c\x66\x3d\x61\x2e\x6a\x51\x75\x65\
-\x72\x79\x2c\x67\x3d\x61\x2e\x24\x2c\x68\x2c\x69\x3d\x2f\x5e\x28\
-\x3f\x3a\x5b\x5e\x23\x3c\x5d\x2a\x28\x3c\x5b\x5c\x77\x5c\x57\x5d\
-\x2b\x3e\x29\x5b\x5e\x3e\x5d\x2a\x24\x7c\x23\x28\x5b\x5c\x77\x5c\
-\x2d\x5d\x2a\x29\x24\x29\x2f\x2c\x6a\x3d\x2f\x5c\x53\x2f\x2c\x6b\
-\x3d\x2f\x5e\x5c\x73\x2b\x2f\x2c\x6c\x3d\x2f\x5c\x73\x2b\x24\x2f\
-\x2c\x6d\x3d\x2f\x5e\x3c\x28\x5c\x77\x2b\x29\x5c\x73\x2a\x5c\x2f\
-\x3f\x3e\x28\x3f\x3a\x3c\x5c\x2f\x5c\x31\x3e\x29\x3f\x24\x2f\x2c\
-\x6e\x3d\x2f\x5e\x5b\x5c\x5d\x2c\x3a\x7b\x7d\x5c\x73\x5d\x2a\x24\
-\x2f\x2c\x6f\x3d\x2f\x5c\x5c\x28\x3f\x3a\x5b\x22\x5c\x5c\x5c\x2f\
-\x62\x66\x6e\x72\x74\x5d\x7c\x75\x5b\x30\x2d\x39\x61\x2d\x66\x41\
-\x2d\x46\x5d\x7b\x34\x7d\x29\x2f\x67\x2c\x70\x3d\x2f\x22\x5b\x5e\
-\x22\x5c\x5c\x5c\x6e\x5c\x72\x5d\x2a\x22\x7c\x74\x72\x75\x65\x7c\
-\x66\x61\x6c\x73\x65\x7c\x6e\x75\x6c\x6c\x7c\x2d\x3f\x5c\x64\x2b\
-\x28\x3f\x3a\x5c\x2e\x5c\x64\x2a\x29\x3f\x28\x3f\x3a\x5b\x65\x45\
-\x5d\x5b\x2b\x5c\x2d\x5d\x3f\x5c\x64\x2b\x29\x3f\x2f\x67\x2c\x71\
-\x3d\x2f\x28\x3f\x3a\x5e\x7c\x3a\x7c\x2c\x29\x28\x3f\x3a\x5c\x73\
-\x2a\x5c\x5b\x29\x2b\x2f\x67\x2c\x72\x3d\x2f\x28\x77\x65\x62\x6b\
-\x69\x74\x29\x5b\x20\x5c\x2f\x5d\x28\x5b\x5c\x77\x2e\x5d\x2b\x29\
-\x2f\x2c\x73\x3d\x2f\x28\x6f\x70\x65\x72\x61\x29\x28\x3f\x3a\x2e\
-\x2a\x76\x65\x72\x73\x69\x6f\x6e\x29\x3f\x5b\x20\x5c\x2f\x5d\x28\
-\x5b\x5c\x77\x2e\x5d\x2b\x29\x2f\x2c\x74\x3d\x2f\x28\x6d\x73\x69\
-\x65\x29\x20\x28\x5b\x5c\x77\x2e\x5d\x2b\x29\x2f\x2c\x75\x3d\x2f\
-\x28\x6d\x6f\x7a\x69\x6c\x6c\x61\x29\x28\x3f\x3a\x2e\x2a\x3f\x20\
-\x72\x76\x3a\x28\x5b\x5c\x77\x2e\x5d\x2b\x29\x29\x3f\x2f\x2c\x76\
-\x3d\x2f\x2d\x28\x5b\x61\x2d\x7a\x5d\x7c\x5b\x30\x2d\x39\x5d\x29\
-\x2f\x69\x67\x2c\x77\x3d\x2f\x5e\x2d\x6d\x73\x2d\x2f\x2c\x78\x3d\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\
-\x74\x75\x72\x6e\x28\x62\x2b\x22\x22\x29\x2e\x74\x6f\x55\x70\x70\
-\x65\x72\x43\x61\x73\x65\x28\x29\x7d\x2c\x79\x3d\x64\x2e\x75\x73\
-\x65\x72\x41\x67\x65\x6e\x74\x2c\x7a\x2c\x41\x2c\x42\x2c\x43\x3d\
-\x4f\x62\x6a\x65\x63\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\
-\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\x2c\x44\x3d\x4f\x62\x6a\x65\
-\x63\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x68\x61\x73\
-\x4f\x77\x6e\x50\x72\x6f\x70\x65\x72\x74\x79\x2c\x45\x3d\x41\x72\
-\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x70\x75\
-\x73\x68\x2c\x46\x3d\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\
-\x74\x79\x70\x65\x2e\x73\x6c\x69\x63\x65\x2c\x47\x3d\x53\x74\x72\
-\x69\x6e\x67\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x74\x72\
-\x69\x6d\x2c\x48\x3d\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\
-\x74\x79\x70\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x2c\x49\x3d\x7b\
-\x7d\x3b\x65\x2e\x66\x6e\x3d\x65\x2e\x70\x72\x6f\x74\x6f\x74\x79\
-\x70\x65\x3d\x7b\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x3a\
-\x65\x2c\x69\x6e\x69\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x2c\x64\x2c\x66\x29\x7b\x76\x61\x72\x20\x67\x2c\x68\x2c\x6a\
-\x2c\x6b\x3b\x69\x66\x28\x21\x61\x29\x72\x65\x74\x75\x72\x6e\x20\
-\x74\x68\x69\x73\x3b\x69\x66\x28\x61\x2e\x6e\x6f\x64\x65\x54\x79\
-\x70\x65\x29\x7b\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x78\x74\
-\x3d\x74\x68\x69\x73\x5b\x30\x5d\x3d\x61\x2c\x74\x68\x69\x73\x2e\
-\x6c\x65\x6e\x67\x74\x68\x3d\x31\x3b\x72\x65\x74\x75\x72\x6e\x20\
-\x74\x68\x69\x73\x7d\x69\x66\x28\x61\x3d\x3d\x3d\x22\x62\x6f\x64\
-\x79\x22\x26\x26\x21\x64\x26\x26\x63\x2e\x62\x6f\x64\x79\x29\x7b\
-\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x78\x74\x3d\x63\x2c\x74\
-\x68\x69\x73\x5b\x30\x5d\x3d\x63\x2e\x62\x6f\x64\x79\x2c\x74\x68\
-\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x3d\x61\x2c\x74\x68\
-\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x31\x3b\x72\x65\x74\x75\
-\x72\x6e\x20\x74\x68\x69\x73\x7d\x69\x66\x28\x74\x79\x70\x65\x6f\
-\x66\x20\x61\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x7b\x61\
-\x2e\x63\x68\x61\x72\x41\x74\x28\x30\x29\x21\x3d\x3d\x22\x3c\x22\
-\x7c\x7c\x61\x2e\x63\x68\x61\x72\x41\x74\x28\x61\x2e\x6c\x65\x6e\
-\x67\x74\x68\x2d\x31\x29\x21\x3d\x3d\x22\x3e\x22\x7c\x7c\x61\x2e\
-\x6c\x65\x6e\x67\x74\x68\x3c\x33\x3f\x67\x3d\x69\x2e\x65\x78\x65\
-\x63\x28\x61\x29\x3a\x67\x3d\x5b\x6e\x75\x6c\x6c\x2c\x61\x2c\x6e\
-\x75\x6c\x6c\x5d\x3b\x69\x66\x28\x67\x26\x26\x28\x67\x5b\x31\x5d\
-\x7c\x7c\x21\x64\x29\x29\x7b\x69\x66\x28\x67\x5b\x31\x5d\x29\x7b\
-\x64\x3d\x64\x20\x69\x6e\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x65\
-\x3f\x64\x5b\x30\x5d\x3a\x64\x2c\x6b\x3d\x64\x3f\x64\x2e\x6f\x77\
-\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x64\x3a\x63\
-\x2c\x6a\x3d\x6d\x2e\x65\x78\x65\x63\x28\x61\x29\x2c\x6a\x3f\x65\
-\x2e\x69\x73\x50\x6c\x61\x69\x6e\x4f\x62\x6a\x65\x63\x74\x28\x64\
-\x29\x3f\x28\x61\x3d\x5b\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\
-\x65\x6d\x65\x6e\x74\x28\x6a\x5b\x31\x5d\x29\x5d\x2c\x65\x2e\x66\
-\x6e\x2e\x61\x74\x74\x72\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x64\x2c\
-\x21\x30\x29\x29\x3a\x61\x3d\x5b\x6b\x2e\x63\x72\x65\x61\x74\x65\
-\x45\x6c\x65\x6d\x65\x6e\x74\x28\x6a\x5b\x31\x5d\x29\x5d\x3a\x28\
-\x6a\x3d\x65\x2e\x62\x75\x69\x6c\x64\x46\x72\x61\x67\x6d\x65\x6e\
-\x74\x28\x5b\x67\x5b\x31\x5d\x5d\x2c\x5b\x6b\x5d\x29\x2c\x61\x3d\
-\x28\x6a\x2e\x63\x61\x63\x68\x65\x61\x62\x6c\x65\x3f\x65\x2e\x63\
-\x6c\x6f\x6e\x65\x28\x6a\x2e\x66\x72\x61\x67\x6d\x65\x6e\x74\x29\
-\x3a\x6a\x2e\x66\x72\x61\x67\x6d\x65\x6e\x74\x29\x2e\x63\x68\x69\
-\x6c\x64\x4e\x6f\x64\x65\x73\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\
-\x65\x2e\x6d\x65\x72\x67\x65\x28\x74\x68\x69\x73\x2c\x61\x29\x7d\
-\x68\x3d\x63\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\
-\x49\x64\x28\x67\x5b\x32\x5d\x29\x3b\x69\x66\x28\x68\x26\x26\x68\
-\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x7b\x69\x66\x28\
-\x68\x2e\x69\x64\x21\x3d\x3d\x67\x5b\x32\x5d\x29\x72\x65\x74\x75\
-\x72\x6e\x20\x66\x2e\x66\x69\x6e\x64\x28\x61\x29\x3b\x74\x68\x69\
-\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x31\x2c\x74\x68\x69\x73\x5b\
-\x30\x5d\x3d\x68\x7d\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x78\
-\x74\x3d\x63\x2c\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\
-\x72\x3d\x61\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\
-\x72\x65\x74\x75\x72\x6e\x21\x64\x7c\x7c\x64\x2e\x6a\x71\x75\x65\
-\x72\x79\x3f\x28\x64\x7c\x7c\x66\x29\x2e\x66\x69\x6e\x64\x28\x61\
-\x29\x3a\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\
-\x6f\x72\x28\x64\x29\x2e\x66\x69\x6e\x64\x28\x61\x29\x7d\x69\x66\
-\x28\x65\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\
-\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x72\x65\x61\x64\x79\x28\
-\x61\x29\x3b\x61\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x21\x3d\x3d\
-\x62\x26\x26\x28\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\
-\x72\x3d\x61\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x2c\x74\x68\x69\
-\x73\x2e\x63\x6f\x6e\x74\x65\x78\x74\x3d\x61\x2e\x63\x6f\x6e\x74\
-\x65\x78\x74\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x2e\x6d\x61\
-\x6b\x65\x41\x72\x72\x61\x79\x28\x61\x2c\x74\x68\x69\x73\x29\x7d\
-\x2c\x73\x65\x6c\x65\x63\x74\x6f\x72\x3a\x22\x22\x2c\x6a\x71\x75\
-\x65\x72\x79\x3a\x22\x31\x2e\x37\x2e\x31\x22\x2c\x6c\x65\x6e\x67\
-\x74\x68\x3a\x30\x2c\x73\x69\x7a\x65\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\
-\x2e\x6c\x65\x6e\x67\x74\x68\x7d\x2c\x74\x6f\x41\x72\x72\x61\x79\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\
-\x72\x6e\x20\x46\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x30\
-\x29\x7d\x2c\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x3d\x3d\x6e\x75\x6c\
-\x6c\x3f\x74\x68\x69\x73\x2e\x74\x6f\x41\x72\x72\x61\x79\x28\x29\
-\x3a\x61\x3c\x30\x3f\x74\x68\x69\x73\x5b\x74\x68\x69\x73\x2e\x6c\
-\x65\x6e\x67\x74\x68\x2b\x61\x5d\x3a\x74\x68\x69\x73\x5b\x61\x5d\
-\x7d\x2c\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\
-\x64\x3d\x74\x68\x69\x73\x2e\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\
-\x6f\x72\x28\x29\x3b\x65\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x61\
-\x29\x3f\x45\x2e\x61\x70\x70\x6c\x79\x28\x64\x2c\x61\x29\x3a\x65\
-\x2e\x6d\x65\x72\x67\x65\x28\x64\x2c\x61\x29\x2c\x64\x2e\x70\x72\
-\x65\x76\x4f\x62\x6a\x65\x63\x74\x3d\x74\x68\x69\x73\x2c\x64\x2e\
-\x63\x6f\x6e\x74\x65\x78\x74\x3d\x74\x68\x69\x73\x2e\x63\x6f\x6e\
-\x74\x65\x78\x74\x2c\x62\x3d\x3d\x3d\x22\x66\x69\x6e\x64\x22\x3f\
-\x64\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x3d\x74\x68\x69\x73\x2e\
-\x73\x65\x6c\x65\x63\x74\x6f\x72\x2b\x28\x74\x68\x69\x73\x2e\x73\
-\x65\x6c\x65\x63\x74\x6f\x72\x3f\x22\x20\x22\x3a\x22\x22\x29\x2b\
-\x63\x3a\x62\x26\x26\x28\x64\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\
-\x3d\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x2b\x22\
-\x2e\x22\x2b\x62\x2b\x22\x28\x22\x2b\x63\x2b\x22\x29\x22\x29\x3b\
-\x72\x65\x74\x75\x72\x6e\x20\x64\x7d\x2c\x65\x61\x63\x68\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\
-\x75\x72\x6e\x20\x65\x2e\x65\x61\x63\x68\x28\x74\x68\x69\x73\x2c\
-\x61\x2c\x62\x29\x7d\x2c\x72\x65\x61\x64\x79\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x29\x7b\x65\x2e\x62\x69\x6e\x64\x52\x65\
-\x61\x64\x79\x28\x29\x2c\x41\x2e\x61\x64\x64\x28\x61\x29\x3b\x72\
-\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x65\x71\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x61\x3d\x2b\x61\x3b\
-\x72\x65\x74\x75\x72\x6e\x20\x61\x3d\x3d\x3d\x2d\x31\x3f\x74\x68\
-\x69\x73\x2e\x73\x6c\x69\x63\x65\x28\x61\x29\x3a\x74\x68\x69\x73\
-\x2e\x73\x6c\x69\x63\x65\x28\x61\x2c\x61\x2b\x31\x29\x7d\x2c\x66\
-\x69\x72\x73\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\
-\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x71\x28\x30\
-\x29\x7d\x2c\x6c\x61\x73\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\
-\x71\x28\x2d\x31\x29\x7d\x2c\x73\x6c\x69\x63\x65\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\
-\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x46\x2e\
-\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\
-\x65\x6e\x74\x73\x29\x2c\x22\x73\x6c\x69\x63\x65\x22\x2c\x46\x2e\
-\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x2e\
-\x6a\x6f\x69\x6e\x28\x22\x2c\x22\x29\x29\x7d\x2c\x6d\x61\x70\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\
-\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\
-\x6b\x28\x65\x2e\x6d\x61\x70\x28\x74\x68\x69\x73\x2c\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\
-\x6e\x20\x61\x2e\x63\x61\x6c\x6c\x28\x62\x2c\x63\x2c\x62\x29\x7d\
-\x29\x29\x7d\x2c\x65\x6e\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\
-\x72\x65\x76\x4f\x62\x6a\x65\x63\x74\x7c\x7c\x74\x68\x69\x73\x2e\
-\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x6e\x75\x6c\x6c\
-\x29\x7d\x2c\x70\x75\x73\x68\x3a\x45\x2c\x73\x6f\x72\x74\x3a\x5b\
-\x5d\x2e\x73\x6f\x72\x74\x2c\x73\x70\x6c\x69\x63\x65\x3a\x5b\x5d\
-\x2e\x73\x70\x6c\x69\x63\x65\x7d\x2c\x65\x2e\x66\x6e\x2e\x69\x6e\
-\x69\x74\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x3d\x65\x2e\x66\
-\x6e\x2c\x65\x2e\x65\x78\x74\x65\x6e\x64\x3d\x65\x2e\x66\x6e\x2e\
-\x65\x78\x74\x65\x6e\x64\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x29\x7b\x76\x61\x72\x20\x61\x2c\x63\x2c\x64\x2c\x66\x2c\x67\x2c\
-\x68\x2c\x69\x3d\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x5b\x30\x5d\
-\x7c\x7c\x7b\x7d\x2c\x6a\x3d\x31\x2c\x6b\x3d\x61\x72\x67\x75\x6d\
-\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x6c\x3d\x21\x31\
-\x3b\x74\x79\x70\x65\x6f\x66\x20\x69\x3d\x3d\x22\x62\x6f\x6f\x6c\
-\x65\x61\x6e\x22\x26\x26\x28\x6c\x3d\x69\x2c\x69\x3d\x61\x72\x67\
-\x75\x6d\x65\x6e\x74\x73\x5b\x31\x5d\x7c\x7c\x7b\x7d\x2c\x6a\x3d\
-\x32\x29\x2c\x74\x79\x70\x65\x6f\x66\x20\x69\x21\x3d\x22\x6f\x62\
-\x6a\x65\x63\x74\x22\x26\x26\x21\x65\x2e\x69\x73\x46\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x69\x29\x26\x26\x28\x69\x3d\x7b\x7d\x29\x2c\
-\x6b\x3d\x3d\x3d\x6a\x26\x26\x28\x69\x3d\x74\x68\x69\x73\x2c\x2d\
-\x2d\x6a\x29\x3b\x66\x6f\x72\x28\x3b\x6a\x3c\x6b\x3b\x6a\x2b\x2b\
-\x29\x69\x66\x28\x28\x61\x3d\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\
-\x5b\x6a\x5d\x29\x21\x3d\x6e\x75\x6c\x6c\x29\x66\x6f\x72\x28\x63\
-\x20\x69\x6e\x20\x61\x29\x7b\x64\x3d\x69\x5b\x63\x5d\x2c\x66\x3d\
-\x61\x5b\x63\x5d\x3b\x69\x66\x28\x69\x3d\x3d\x3d\x66\x29\x63\x6f\
-\x6e\x74\x69\x6e\x75\x65\x3b\x6c\x26\x26\x66\x26\x26\x28\x65\x2e\
-\x69\x73\x50\x6c\x61\x69\x6e\x4f\x62\x6a\x65\x63\x74\x28\x66\x29\
-\x7c\x7c\x28\x67\x3d\x65\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x66\
-\x29\x29\x29\x3f\x28\x67\x3f\x28\x67\x3d\x21\x31\x2c\x68\x3d\x64\
-\x26\x26\x65\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x64\x29\x3f\x64\
-\x3a\x5b\x5d\x29\x3a\x68\x3d\x64\x26\x26\x65\x2e\x69\x73\x50\x6c\
-\x61\x69\x6e\x4f\x62\x6a\x65\x63\x74\x28\x64\x29\x3f\x64\x3a\x7b\
-\x7d\x2c\x69\x5b\x63\x5d\x3d\x65\x2e\x65\x78\x74\x65\x6e\x64\x28\
-\x6c\x2c\x68\x2c\x66\x29\x29\x3a\x66\x21\x3d\x3d\x62\x26\x26\x28\
-\x69\x5b\x63\x5d\x3d\x66\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x69\
-\x7d\x2c\x65\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x6e\x6f\x43\x6f\
-\x6e\x66\x6c\x69\x63\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x62\x29\x7b\x61\x2e\x24\x3d\x3d\x3d\x65\x26\x26\x28\x61\x2e\x24\
-\x3d\x67\x29\x2c\x62\x26\x26\x61\x2e\x6a\x51\x75\x65\x72\x79\x3d\
-\x3d\x3d\x65\x26\x26\x28\x61\x2e\x6a\x51\x75\x65\x72\x79\x3d\x66\
-\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x7d\x2c\x69\x73\x52\x65\
-\x61\x64\x79\x3a\x21\x31\x2c\x72\x65\x61\x64\x79\x57\x61\x69\x74\
-\x3a\x31\x2c\x68\x6f\x6c\x64\x52\x65\x61\x64\x79\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x61\x3f\x65\x2e\x72\x65\x61\
-\x64\x79\x57\x61\x69\x74\x2b\x2b\x3a\x65\x2e\x72\x65\x61\x64\x79\
-\x28\x21\x30\x29\x7d\x2c\x72\x65\x61\x64\x79\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x61\x3d\x3d\x3d\x21\
-\x30\x26\x26\x21\x2d\x2d\x65\x2e\x72\x65\x61\x64\x79\x57\x61\x69\
-\x74\x7c\x7c\x61\x21\x3d\x3d\x21\x30\x26\x26\x21\x65\x2e\x69\x73\
-\x52\x65\x61\x64\x79\x29\x7b\x69\x66\x28\x21\x63\x2e\x62\x6f\x64\
-\x79\x29\x72\x65\x74\x75\x72\x6e\x20\x73\x65\x74\x54\x69\x6d\x65\
-\x6f\x75\x74\x28\x65\x2e\x72\x65\x61\x64\x79\x2c\x31\x29\x3b\x65\
-\x2e\x69\x73\x52\x65\x61\x64\x79\x3d\x21\x30\x3b\x69\x66\x28\x61\
-\x21\x3d\x3d\x21\x30\x26\x26\x2d\x2d\x65\x2e\x72\x65\x61\x64\x79\
-\x57\x61\x69\x74\x3e\x30\x29\x72\x65\x74\x75\x72\x6e\x3b\x41\x2e\
-\x66\x69\x72\x65\x57\x69\x74\x68\x28\x63\x2c\x5b\x65\x5d\x29\x2c\
-\x65\x2e\x66\x6e\x2e\x74\x72\x69\x67\x67\x65\x72\x26\x26\x65\x28\
-\x63\x29\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x22\x72\x65\x61\x64\
-\x79\x22\x29\x2e\x6f\x66\x66\x28\x22\x72\x65\x61\x64\x79\x22\x29\
-\x7d\x7d\x2c\x62\x69\x6e\x64\x52\x65\x61\x64\x79\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x21\x41\x29\x7b\x41\
-\x3d\x65\x2e\x43\x61\x6c\x6c\x62\x61\x63\x6b\x73\x28\x22\x6f\x6e\
-\x63\x65\x20\x6d\x65\x6d\x6f\x72\x79\x22\x29\x3b\x69\x66\x28\x63\
-\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x3d\x3d\x3d\x22\x63\
-\x6f\x6d\x70\x6c\x65\x74\x65\x22\x29\x72\x65\x74\x75\x72\x6e\x20\
-\x73\x65\x74\x54\x69\x6d\x65\x6f\x75\x74\x28\x65\x2e\x72\x65\x61\
-\x64\x79\x2c\x31\x29\x3b\x69\x66\x28\x63\x2e\x61\x64\x64\x45\x76\
-\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x29\x63\x2e\x61\x64\
-\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\
-\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\x4c\x6f\x61\x64\x65\x64\
-\x22\x2c\x42\x2c\x21\x31\x29\x2c\x61\x2e\x61\x64\x64\x45\x76\x65\
-\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x22\x6c\x6f\x61\x64\
-\x22\x2c\x65\x2e\x72\x65\x61\x64\x79\x2c\x21\x31\x29\x3b\x65\x6c\
-\x73\x65\x20\x69\x66\x28\x63\x2e\x61\x74\x74\x61\x63\x68\x45\x76\
-\x65\x6e\x74\x29\x7b\x63\x2e\x61\x74\x74\x61\x63\x68\x45\x76\x65\
-\x6e\x74\x28\x22\x6f\x6e\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\
-\x63\x68\x61\x6e\x67\x65\x22\x2c\x42\x29\x2c\x61\x2e\x61\x74\x74\
-\x61\x63\x68\x45\x76\x65\x6e\x74\x28\x22\x6f\x6e\x6c\x6f\x61\x64\
-\x22\x2c\x65\x2e\x72\x65\x61\x64\x79\x29\x3b\x76\x61\x72\x20\x62\
-\x3d\x21\x31\x3b\x74\x72\x79\x7b\x62\x3d\x61\x2e\x66\x72\x61\x6d\
-\x65\x45\x6c\x65\x6d\x65\x6e\x74\x3d\x3d\x6e\x75\x6c\x6c\x7d\x63\
-\x61\x74\x63\x68\x28\x64\x29\x7b\x7d\x63\x2e\x64\x6f\x63\x75\x6d\
-\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x64\x6f\x53\x63\x72\
-\x6f\x6c\x6c\x26\x26\x62\x26\x26\x4a\x28\x29\x7d\x7d\x7d\x2c\x69\
-\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x65\x2e\x74\
-\x79\x70\x65\x28\x61\x29\x3d\x3d\x3d\x22\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x22\x7d\x2c\x69\x73\x41\x72\x72\x61\x79\x3a\x41\x72\x72\
-\x61\x79\x2e\x69\x73\x41\x72\x72\x61\x79\x7c\x7c\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x65\
-\x2e\x74\x79\x70\x65\x28\x61\x29\x3d\x3d\x3d\x22\x61\x72\x72\x61\
-\x79\x22\x7d\x2c\x69\x73\x57\x69\x6e\x64\x6f\x77\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\
-\x61\x26\x26\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x22\x6f\x62\
-\x6a\x65\x63\x74\x22\x26\x26\x22\x73\x65\x74\x49\x6e\x74\x65\x72\
-\x76\x61\x6c\x22\x69\x6e\x20\x61\x7d\x2c\x69\x73\x4e\x75\x6d\x65\
-\x72\x69\x63\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\
-\x72\x65\x74\x75\x72\x6e\x21\x69\x73\x4e\x61\x4e\x28\x70\x61\x72\
-\x73\x65\x46\x6c\x6f\x61\x74\x28\x61\x29\x29\x26\x26\x69\x73\x46\
-\x69\x6e\x69\x74\x65\x28\x61\x29\x7d\x2c\x74\x79\x70\x65\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\
-\x6e\x20\x61\x3d\x3d\x6e\x75\x6c\x6c\x3f\x53\x74\x72\x69\x6e\x67\
-\x28\x61\x29\x3a\x49\x5b\x43\x2e\x63\x61\x6c\x6c\x28\x61\x29\x5d\
-\x7c\x7c\x22\x6f\x62\x6a\x65\x63\x74\x22\x7d\x2c\x69\x73\x50\x6c\
-\x61\x69\x6e\x4f\x62\x6a\x65\x63\x74\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x21\x61\x7c\x7c\x65\x2e\x74\
-\x79\x70\x65\x28\x61\x29\x21\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\
-\x22\x7c\x7c\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x7c\x7c\x65\
-\x2e\x69\x73\x57\x69\x6e\x64\x6f\x77\x28\x61\x29\x29\x72\x65\x74\
-\x75\x72\x6e\x21\x31\x3b\x74\x72\x79\x7b\x69\x66\x28\x61\x2e\x63\
-\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x26\x26\x21\x44\x2e\x63\
-\x61\x6c\x6c\x28\x61\x2c\x22\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\
-\x6f\x72\x22\x29\x26\x26\x21\x44\x2e\x63\x61\x6c\x6c\x28\x61\x2e\
-\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x70\x72\x6f\x74\
-\x6f\x74\x79\x70\x65\x2c\x22\x69\x73\x50\x72\x6f\x74\x6f\x74\x79\
-\x70\x65\x4f\x66\x22\x29\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\
-\x63\x61\x74\x63\x68\x28\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\
-\x31\x7d\x76\x61\x72\x20\x64\x3b\x66\x6f\x72\x28\x64\x20\x69\x6e\
-\x20\x61\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x3d\x3d\x3d\x62\
-\x7c\x7c\x44\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x64\x29\x7d\x2c\x69\
-\x73\x45\x6d\x70\x74\x79\x4f\x62\x6a\x65\x63\x74\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\
-\x20\x62\x20\x69\x6e\x20\x61\x29\x72\x65\x74\x75\x72\x6e\x21\x31\
-\x3b\x72\x65\x74\x75\x72\x6e\x21\x30\x7d\x2c\x65\x72\x72\x6f\x72\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x74\x68\x72\
-\x6f\x77\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x61\x29\x7d\
-\x2c\x70\x61\x72\x73\x65\x4a\x53\x4f\x4e\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x62\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\
-\x20\x62\x21\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x7c\x7c\x21\x62\
-\x29\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x62\x3d\x65\
-\x2e\x74\x72\x69\x6d\x28\x62\x29\x3b\x69\x66\x28\x61\x2e\x4a\x53\
-\x4f\x4e\x26\x26\x61\x2e\x4a\x53\x4f\x4e\x2e\x70\x61\x72\x73\x65\
-\x29\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x4a\x53\x4f\x4e\x2e\x70\
-\x61\x72\x73\x65\x28\x62\x29\x3b\x69\x66\x28\x6e\x2e\x74\x65\x73\
-\x74\x28\x62\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6f\x2c\x22\x40\
-\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x70\x2c\x22\x5d\x22\
-\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x71\x2c\x22\x22\x29\x29\
-\x29\x72\x65\x74\x75\x72\x6e\x28\x6e\x65\x77\x20\x46\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x22\x72\x65\x74\x75\x72\x6e\x20\x22\x2b\x62\
-\x29\x29\x28\x29\x3b\x65\x2e\x65\x72\x72\x6f\x72\x28\x22\x49\x6e\
-\x76\x61\x6c\x69\x64\x20\x4a\x53\x4f\x4e\x3a\x20\x22\x2b\x62\x29\
-\x7d\x2c\x70\x61\x72\x73\x65\x58\x4d\x4c\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x63\x29\x7b\x76\x61\x72\x20\x64\x2c\x66\x3b\x74\
-\x72\x79\x7b\x61\x2e\x44\x4f\x4d\x50\x61\x72\x73\x65\x72\x3f\x28\
-\x66\x3d\x6e\x65\x77\x20\x44\x4f\x4d\x50\x61\x72\x73\x65\x72\x2c\
-\x64\x3d\x66\x2e\x70\x61\x72\x73\x65\x46\x72\x6f\x6d\x53\x74\x72\
-\x69\x6e\x67\x28\x63\x2c\x22\x74\x65\x78\x74\x2f\x78\x6d\x6c\x22\
-\x29\x29\x3a\x28\x64\x3d\x6e\x65\x77\x20\x41\x63\x74\x69\x76\x65\
-\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x4d\x69\x63\x72\x6f\x73\x6f\
-\x66\x74\x2e\x58\x4d\x4c\x44\x4f\x4d\x22\x29\x2c\x64\x2e\x61\x73\
-\x79\x6e\x63\x3d\x22\x66\x61\x6c\x73\x65\x22\x2c\x64\x2e\x6c\x6f\
-\x61\x64\x58\x4d\x4c\x28\x63\x29\x29\x7d\x63\x61\x74\x63\x68\x28\
-\x67\x29\x7b\x64\x3d\x62\x7d\x28\x21\x64\x7c\x7c\x21\x64\x2e\x64\
-\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x7c\x7c\
-\x64\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\
-\x61\x67\x4e\x61\x6d\x65\x28\x22\x70\x61\x72\x73\x65\x72\x65\x72\
-\x72\x6f\x72\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x29\x26\x26\x65\
-\x2e\x65\x72\x72\x6f\x72\x28\x22\x49\x6e\x76\x61\x6c\x69\x64\x20\
-\x58\x4d\x4c\x3a\x20\x22\x2b\x63\x29\x3b\x72\x65\x74\x75\x72\x6e\
-\x20\x64\x7d\x2c\x6e\x6f\x6f\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x29\x7b\x7d\x2c\x67\x6c\x6f\x62\x61\x6c\x45\x76\x61\x6c\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x62\x26\x26\
-\x6a\x2e\x74\x65\x73\x74\x28\x62\x29\x26\x26\x28\x61\x2e\x65\x78\
-\x65\x63\x53\x63\x72\x69\x70\x74\x7c\x7c\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x62\x29\x7b\x61\x2e\x65\x76\x61\x6c\x2e\x63\x61\x6c\
-\x6c\x28\x61\x2c\x62\x29\x7d\x29\x28\x62\x29\x7d\x2c\x63\x61\x6d\
-\x65\x6c\x43\x61\x73\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x72\x65\x70\x6c\
-\x61\x63\x65\x28\x77\x2c\x22\x6d\x73\x2d\x22\x29\x2e\x72\x65\x70\
-\x6c\x61\x63\x65\x28\x76\x2c\x78\x29\x7d\x2c\x6e\x6f\x64\x65\x4e\
-\x61\x6d\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\
-\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x6e\x6f\x64\x65\x4e\
-\x61\x6d\x65\x26\x26\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\
-\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\
-\x62\x2e\x74\x6f\x55\x70\x70\x65\x72\x43\x61\x73\x65\x28\x29\x7d\
-\x2c\x65\x61\x63\x68\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x63\x2c\x64\x29\x7b\x76\x61\x72\x20\x66\x2c\x67\x3d\x30\x2c\
-\x68\x3d\x61\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x69\x3d\x68\x3d\x3d\
-\x3d\x62\x7c\x7c\x65\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x29\x3b\x69\x66\x28\x64\x29\x7b\x69\x66\x28\x69\x29\x7b\
-\x66\x6f\x72\x28\x66\x20\x69\x6e\x20\x61\x29\x69\x66\x28\x63\x2e\
-\x61\x70\x70\x6c\x79\x28\x61\x5b\x66\x5d\x2c\x64\x29\x3d\x3d\x3d\
-\x21\x31\x29\x62\x72\x65\x61\x6b\x7d\x65\x6c\x73\x65\x20\x66\x6f\
-\x72\x28\x3b\x67\x3c\x68\x3b\x29\x69\x66\x28\x63\x2e\x61\x70\x70\
-\x6c\x79\x28\x61\x5b\x67\x2b\x2b\x5d\x2c\x64\x29\x3d\x3d\x3d\x21\
-\x31\x29\x62\x72\x65\x61\x6b\x7d\x65\x6c\x73\x65\x20\x69\x66\x28\
-\x69\x29\x7b\x66\x6f\x72\x28\x66\x20\x69\x6e\x20\x61\x29\x69\x66\
-\x28\x63\x2e\x63\x61\x6c\x6c\x28\x61\x5b\x66\x5d\x2c\x66\x2c\x61\
-\x5b\x66\x5d\x29\x3d\x3d\x3d\x21\x31\x29\x62\x72\x65\x61\x6b\x7d\
-\x65\x6c\x73\x65\x20\x66\x6f\x72\x28\x3b\x67\x3c\x68\x3b\x29\x69\
-\x66\x28\x63\x2e\x63\x61\x6c\x6c\x28\x61\x5b\x67\x5d\x2c\x67\x2c\
-\x61\x5b\x67\x2b\x2b\x5d\x29\x3d\x3d\x3d\x21\x31\x29\x62\x72\x65\
-\x61\x6b\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x2c\x74\x72\x69\
-\x6d\x3a\x47\x3f\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\
-\x72\x65\x74\x75\x72\x6e\x20\x61\x3d\x3d\x6e\x75\x6c\x6c\x3f\x22\
-\x22\x3a\x47\x2e\x63\x61\x6c\x6c\x28\x61\x29\x7d\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\
-\x61\x3d\x3d\x6e\x75\x6c\x6c\x3f\x22\x22\x3a\x28\x61\x2b\x22\x22\
-\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6b\x2c\x22\x22\x29\x2e\
-\x72\x65\x70\x6c\x61\x63\x65\x28\x6c\x2c\x22\x22\x29\x7d\x2c\x6d\
-\x61\x6b\x65\x41\x72\x72\x61\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x62\x7c\x7c\
-\x5b\x5d\x3b\x69\x66\x28\x61\x21\x3d\x6e\x75\x6c\x6c\x29\x7b\x76\
-\x61\x72\x20\x64\x3d\x65\x2e\x74\x79\x70\x65\x28\x61\x29\x3b\x61\
-\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x6e\x75\x6c\x6c\x7c\x7c\x64\
-\x3d\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x7c\x7c\x64\x3d\x3d\
-\x3d\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x7c\x7c\x64\x3d\x3d\
-\x3d\x22\x72\x65\x67\x65\x78\x70\x22\x7c\x7c\x65\x2e\x69\x73\x57\
-\x69\x6e\x64\x6f\x77\x28\x61\x29\x3f\x45\x2e\x63\x61\x6c\x6c\x28\
-\x63\x2c\x61\x29\x3a\x65\x2e\x6d\x65\x72\x67\x65\x28\x63\x2c\x61\
-\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x2c\x69\x6e\x41\x72\
-\x72\x61\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\
-\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3b\x69\x66\x28\x62\x29\x7b\
-\x69\x66\x28\x48\x29\x72\x65\x74\x75\x72\x6e\x20\x48\x2e\x63\x61\
-\x6c\x6c\x28\x62\x2c\x61\x2c\x63\x29\x3b\x64\x3d\x62\x2e\x6c\x65\
-\x6e\x67\x74\x68\x2c\x63\x3d\x63\x3f\x63\x3c\x30\x3f\x4d\x61\x74\
-\x68\x2e\x6d\x61\x78\x28\x30\x2c\x64\x2b\x63\x29\x3a\x63\x3a\x30\
-\x3b\x66\x6f\x72\x28\x3b\x63\x3c\x64\x3b\x63\x2b\x2b\x29\x69\x66\
-\x28\x63\x20\x69\x6e\x20\x62\x26\x26\x62\x5b\x63\x5d\x3d\x3d\x3d\
-\x61\x29\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x72\x65\x74\x75\x72\
-\x6e\x2d\x31\x7d\x2c\x6d\x65\x72\x67\x65\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x61\
-\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x65\x3d\x30\x3b\x69\x66\x28\x74\
-\x79\x70\x65\x6f\x66\x20\x63\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\
-\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x66\x6f\x72\x28\x76\x61\x72\
-\x20\x66\x3d\x63\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x65\x3c\x66\x3b\
-\x65\x2b\x2b\x29\x61\x5b\x64\x2b\x2b\x5d\x3d\x63\x5b\x65\x5d\x3b\
-\x65\x6c\x73\x65\x20\x77\x68\x69\x6c\x65\x28\x63\x5b\x65\x5d\x21\
-\x3d\x3d\x62\x29\x61\x5b\x64\x2b\x2b\x5d\x3d\x63\x5b\x65\x2b\x2b\
-\x5d\x3b\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x64\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x61\x7d\x2c\x67\x72\x65\x70\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\
-\x64\x3d\x5b\x5d\x2c\x65\x3b\x63\x3d\x21\x21\x63\x3b\x66\x6f\x72\
-\x28\x76\x61\x72\x20\x66\x3d\x30\x2c\x67\x3d\x61\x2e\x6c\x65\x6e\
-\x67\x74\x68\x3b\x66\x3c\x67\x3b\x66\x2b\x2b\x29\x65\x3d\x21\x21\
-\x62\x28\x61\x5b\x66\x5d\x2c\x66\x29\x2c\x63\x21\x3d\x3d\x65\x26\
-\x26\x64\x2e\x70\x75\x73\x68\x28\x61\x5b\x66\x5d\x29\x3b\x72\x65\
-\x74\x75\x72\x6e\x20\x64\x7d\x2c\x6d\x61\x70\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x64\x29\x7b\x76\x61\x72\x20\
-\x66\x2c\x67\x2c\x68\x3d\x5b\x5d\x2c\x69\x3d\x30\x2c\x6a\x3d\x61\
-\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x6b\x3d\x61\x20\x69\x6e\x73\x74\
-\x61\x6e\x63\x65\x6f\x66\x20\x65\x7c\x7c\x6a\x21\x3d\x3d\x62\x26\
-\x26\x74\x79\x70\x65\x6f\x66\x20\x6a\x3d\x3d\x22\x6e\x75\x6d\x62\
-\x65\x72\x22\x26\x26\x28\x6a\x3e\x30\x26\x26\x61\x5b\x30\x5d\x26\
-\x26\x61\x5b\x6a\x2d\x31\x5d\x7c\x7c\x6a\x3d\x3d\x3d\x30\x7c\x7c\
-\x65\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x61\x29\x29\x3b\x69\x66\
-\x28\x6b\x29\x66\x6f\x72\x28\x3b\x69\x3c\x6a\x3b\x69\x2b\x2b\x29\
-\x66\x3d\x63\x28\x61\x5b\x69\x5d\x2c\x69\x2c\x64\x29\x2c\x66\x21\
-\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x68\x5b\x68\x2e\x6c\x65\x6e\x67\
-\x74\x68\x5d\x3d\x66\x29\x3b\x65\x6c\x73\x65\x20\x66\x6f\x72\x28\
-\x67\x20\x69\x6e\x20\x61\x29\x66\x3d\x63\x28\x61\x5b\x67\x5d\x2c\
-\x67\x2c\x64\x29\x2c\x66\x21\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x68\
-\x5b\x68\x2e\x6c\x65\x6e\x67\x74\x68\x5d\x3d\x66\x29\x3b\x72\x65\
-\x74\x75\x72\x6e\x20\x68\x2e\x63\x6f\x6e\x63\x61\x74\x2e\x61\x70\
-\x70\x6c\x79\x28\x5b\x5d\x2c\x68\x29\x7d\x2c\x67\x75\x69\x64\x3a\
-\x31\x2c\x70\x72\x6f\x78\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x2c\x63\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\
-\x63\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x7b\x76\x61\x72\
-\x20\x64\x3d\x61\x5b\x63\x5d\x3b\x63\x3d\x61\x2c\x61\x3d\x64\x7d\
-\x69\x66\x28\x21\x65\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x3b\x76\x61\x72\
-\x20\x66\x3d\x46\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\
-\x6e\x74\x73\x2c\x32\x29\x2c\x67\x3d\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x61\x70\x70\
-\x6c\x79\x28\x63\x2c\x66\x2e\x63\x6f\x6e\x63\x61\x74\x28\x46\x2e\
-\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x29\
-\x29\x7d\x3b\x67\x2e\x67\x75\x69\x64\x3d\x61\x2e\x67\x75\x69\x64\
-\x3d\x61\x2e\x67\x75\x69\x64\x7c\x7c\x67\x2e\x67\x75\x69\x64\x7c\
-\x7c\x65\x2e\x67\x75\x69\x64\x2b\x2b\x3b\x72\x65\x74\x75\x72\x6e\
-\x20\x67\x7d\x2c\x61\x63\x63\x65\x73\x73\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x64\x2c\x66\x2c\x67\x2c\x68\x29\
-\x7b\x76\x61\x72\x20\x69\x3d\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\
-\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x63\x3d\x3d\x22\x6f\x62\
-\x6a\x65\x63\x74\x22\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x6a\
-\x20\x69\x6e\x20\x63\x29\x65\x2e\x61\x63\x63\x65\x73\x73\x28\x61\
-\x2c\x6a\x2c\x63\x5b\x6a\x5d\x2c\x66\x2c\x67\x2c\x64\x29\x3b\x72\
-\x65\x74\x75\x72\x6e\x20\x61\x7d\x69\x66\x28\x64\x21\x3d\x3d\x62\
-\x29\x7b\x66\x3d\x21\x68\x26\x26\x66\x26\x26\x65\x2e\x69\x73\x46\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x64\x29\x3b\x66\x6f\x72\x28\x76\
-\x61\x72\x20\x6b\x3d\x30\x3b\x6b\x3c\x69\x3b\x6b\x2b\x2b\x29\x67\
-\x28\x61\x5b\x6b\x5d\x2c\x63\x2c\x66\x3f\x64\x2e\x63\x61\x6c\x6c\
-\x28\x61\x5b\x6b\x5d\x2c\x6b\x2c\x67\x28\x61\x5b\x6b\x5d\x2c\x63\
-\x29\x29\x3a\x64\x2c\x68\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\
-\x7d\x72\x65\x74\x75\x72\x6e\x20\x69\x3f\x67\x28\x61\x5b\x30\x5d\
-\x2c\x63\x29\x3a\x62\x7d\x2c\x6e\x6f\x77\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x28\x6e\x65\x77\
-\x20\x44\x61\x74\x65\x29\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\
-\x7d\x2c\x75\x61\x4d\x61\x74\x63\x68\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x29\x7b\x61\x3d\x61\x2e\x74\x6f\x4c\x6f\x77\x65\
-\x72\x43\x61\x73\x65\x28\x29\x3b\x76\x61\x72\x20\x62\x3d\x72\x2e\
-\x65\x78\x65\x63\x28\x61\x29\x7c\x7c\x73\x2e\x65\x78\x65\x63\x28\
-\x61\x29\x7c\x7c\x74\x2e\x65\x78\x65\x63\x28\x61\x29\x7c\x7c\x61\
-\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x63\x6f\x6d\x70\x61\x74\
-\x69\x62\x6c\x65\x22\x29\x3c\x30\x26\x26\x75\x2e\x65\x78\x65\x63\
-\x28\x61\x29\x7c\x7c\x5b\x5d\x3b\x72\x65\x74\x75\x72\x6e\x7b\x62\
-\x72\x6f\x77\x73\x65\x72\x3a\x62\x5b\x31\x5d\x7c\x7c\x22\x22\x2c\
-\x76\x65\x72\x73\x69\x6f\x6e\x3a\x62\x5b\x32\x5d\x7c\x7c\x22\x30\
-\x22\x7d\x7d\x2c\x73\x75\x62\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x29\x7b\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x28\x62\x2c\
-\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x61\x2e\
-\x66\x6e\x2e\x69\x6e\x69\x74\x28\x62\x2c\x63\x29\x7d\x65\x2e\x65\
-\x78\x74\x65\x6e\x64\x28\x21\x30\x2c\x61\x2c\x74\x68\x69\x73\x29\
-\x2c\x61\x2e\x73\x75\x70\x65\x72\x63\x6c\x61\x73\x73\x3d\x74\x68\
-\x69\x73\x2c\x61\x2e\x66\x6e\x3d\x61\x2e\x70\x72\x6f\x74\x6f\x74\
-\x79\x70\x65\x3d\x74\x68\x69\x73\x28\x29\x2c\x61\x2e\x66\x6e\x2e\
-\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x3d\x61\x2c\x61\x2e\
-\x73\x75\x62\x3d\x74\x68\x69\x73\x2e\x73\x75\x62\x2c\x61\x2e\x66\
-\x6e\x2e\x69\x6e\x69\x74\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x64\x2c\x66\x29\x7b\x66\x26\x26\x66\x20\x69\x6e\x73\x74\x61\x6e\
-\x63\x65\x6f\x66\x20\x65\x26\x26\x21\x28\x66\x20\x69\x6e\x73\x74\
-\x61\x6e\x63\x65\x6f\x66\x20\x61\x29\x26\x26\x28\x66\x3d\x61\x28\
-\x66\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x2e\x66\x6e\x2e\
-\x69\x6e\x69\x74\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x64\
-\x2c\x66\x2c\x62\x29\x7d\x2c\x61\x2e\x66\x6e\x2e\x69\x6e\x69\x74\
-\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x3d\x61\x2e\x66\x6e\x3b\
-\x76\x61\x72\x20\x62\x3d\x61\x28\x63\x29\x3b\x72\x65\x74\x75\x72\
-\x6e\x20\x61\x7d\x2c\x62\x72\x6f\x77\x73\x65\x72\x3a\x7b\x7d\x7d\
-\x29\x2c\x65\x2e\x65\x61\x63\x68\x28\x22\x42\x6f\x6f\x6c\x65\x61\
-\x6e\x20\x4e\x75\x6d\x62\x65\x72\x20\x53\x74\x72\x69\x6e\x67\x20\
-\x46\x75\x6e\x63\x74\x69\x6f\x6e\x20\x41\x72\x72\x61\x79\x20\x44\
-\x61\x74\x65\x20\x52\x65\x67\x45\x78\x70\x20\x4f\x62\x6a\x65\x63\
-\x74\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x2c\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x49\x5b\x22\x5b\
-\x6f\x62\x6a\x65\x63\x74\x20\x22\x2b\x62\x2b\x22\x5d\x22\x5d\x3d\
-\x62\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x7d\
-\x29\x2c\x7a\x3d\x65\x2e\x75\x61\x4d\x61\x74\x63\x68\x28\x79\x29\
-\x2c\x7a\x2e\x62\x72\x6f\x77\x73\x65\x72\x26\x26\x28\x65\x2e\x62\
-\x72\x6f\x77\x73\x65\x72\x5b\x7a\x2e\x62\x72\x6f\x77\x73\x65\x72\
-\x5d\x3d\x21\x30\x2c\x65\x2e\x62\x72\x6f\x77\x73\x65\x72\x2e\x76\
-\x65\x72\x73\x69\x6f\x6e\x3d\x7a\x2e\x76\x65\x72\x73\x69\x6f\x6e\
-\x29\x2c\x65\x2e\x62\x72\x6f\x77\x73\x65\x72\x2e\x77\x65\x62\x6b\
-\x69\x74\x26\x26\x28\x65\x2e\x62\x72\x6f\x77\x73\x65\x72\x2e\x73\
-\x61\x66\x61\x72\x69\x3d\x21\x30\x29\x2c\x6a\x2e\x74\x65\x73\x74\
-\x28\x22\xc2\xa0\x22\x29\x26\x26\x28\x6b\x3d\x2f\x5e\x5b\x5c\x73\
-\x5c\x78\x41\x30\x5d\x2b\x2f\x2c\x6c\x3d\x2f\x5b\x5c\x73\x5c\x78\
-\x41\x30\x5d\x2b\x24\x2f\x29\x2c\x68\x3d\x65\x28\x63\x29\x2c\x63\
-\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\
-\x72\x3f\x42\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x63\
-\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\
-\x65\x6e\x65\x72\x28\x22\x44\x4f\x4d\x43\x6f\x6e\x74\x65\x6e\x74\
-\x4c\x6f\x61\x64\x65\x64\x22\x2c\x42\x2c\x21\x31\x29\x2c\x65\x2e\
-\x72\x65\x61\x64\x79\x28\x29\x7d\x3a\x63\x2e\x61\x74\x74\x61\x63\
-\x68\x45\x76\x65\x6e\x74\x26\x26\x28\x42\x3d\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x29\x7b\x63\x2e\x72\x65\x61\x64\x79\x53\x74\x61\
-\x74\x65\x3d\x3d\x3d\x22\x63\x6f\x6d\x70\x6c\x65\x74\x65\x22\x26\
-\x26\x28\x63\x2e\x64\x65\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x28\
-\x22\x6f\x6e\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\
-\x6e\x67\x65\x22\x2c\x42\x29\x2c\x65\x2e\x72\x65\x61\x64\x79\x28\
-\x29\x29\x7d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x7d\x28\x29\
-\x2c\x67\x3d\x7b\x7d\x3b\x66\x2e\x43\x61\x6c\x6c\x62\x61\x63\x6b\
-\x73\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x61\x3d\
-\x61\x3f\x67\x5b\x61\x5d\x7c\x7c\x68\x28\x61\x29\x3a\x7b\x7d\x3b\
-\x76\x61\x72\x20\x63\x3d\x5b\x5d\x2c\x64\x3d\x5b\x5d\x2c\x65\x2c\
-\x69\x2c\x6a\x2c\x6b\x2c\x6c\x2c\x6d\x3d\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x62\x29\x7b\x76\x61\x72\x20\x64\x2c\x65\x2c\x67\x2c\
-\x68\x2c\x69\x3b\x66\x6f\x72\x28\x64\x3d\x30\x2c\x65\x3d\x62\x2e\
-\x6c\x65\x6e\x67\x74\x68\x3b\x64\x3c\x65\x3b\x64\x2b\x2b\x29\x67\
-\x3d\x62\x5b\x64\x5d\x2c\x68\x3d\x66\x2e\x74\x79\x70\x65\x28\x67\
-\x29\x2c\x68\x3d\x3d\x3d\x22\x61\x72\x72\x61\x79\x22\x3f\x6d\x28\
-\x67\x29\x3a\x68\x3d\x3d\x3d\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x22\x26\x26\x28\x21\x61\x2e\x75\x6e\x69\x71\x75\x65\x7c\x7c\x21\
-\x6f\x2e\x68\x61\x73\x28\x67\x29\x29\x26\x26\x63\x2e\x70\x75\x73\
-\x68\x28\x67\x29\x7d\x2c\x6e\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x62\x2c\x66\x29\x7b\x66\x3d\x66\x7c\x7c\x5b\x5d\x2c\x65\x3d\
-\x21\x61\x2e\x6d\x65\x6d\x6f\x72\x79\x7c\x7c\x5b\x62\x2c\x66\x5d\
-\x2c\x69\x3d\x21\x30\x2c\x6c\x3d\x6a\x7c\x7c\x30\x2c\x6a\x3d\x30\
-\x2c\x6b\x3d\x63\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x66\x6f\x72\x28\
-\x3b\x63\x26\x26\x6c\x3c\x6b\x3b\x6c\x2b\x2b\x29\x69\x66\x28\x63\
-\x5b\x6c\x5d\x2e\x61\x70\x70\x6c\x79\x28\x62\x2c\x66\x29\x3d\x3d\
-\x3d\x21\x31\x26\x26\x61\x2e\x73\x74\x6f\x70\x4f\x6e\x46\x61\x6c\
-\x73\x65\x29\x7b\x65\x3d\x21\x30\x3b\x62\x72\x65\x61\x6b\x7d\x69\
-\x3d\x21\x31\x2c\x63\x26\x26\x28\x61\x2e\x6f\x6e\x63\x65\x3f\x65\
-\x3d\x3d\x3d\x21\x30\x3f\x6f\x2e\x64\x69\x73\x61\x62\x6c\x65\x28\
-\x29\x3a\x63\x3d\x5b\x5d\x3a\x64\x26\x26\x64\x2e\x6c\x65\x6e\x67\
-\x74\x68\x26\x26\x28\x65\x3d\x64\x2e\x73\x68\x69\x66\x74\x28\x29\
-\x2c\x6f\x2e\x66\x69\x72\x65\x57\x69\x74\x68\x28\x65\x5b\x30\x5d\
-\x2c\x65\x5b\x31\x5d\x29\x29\x29\x7d\x2c\x6f\x3d\x7b\x61\x64\x64\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x63\
-\x29\x7b\x76\x61\x72\x20\x61\x3d\x63\x2e\x6c\x65\x6e\x67\x74\x68\
-\x3b\x6d\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x2c\x69\x3f\
-\x6b\x3d\x63\x2e\x6c\x65\x6e\x67\x74\x68\x3a\x65\x26\x26\x65\x21\
-\x3d\x3d\x21\x30\x26\x26\x28\x6a\x3d\x61\x2c\x6e\x28\x65\x5b\x30\
-\x5d\x2c\x65\x5b\x31\x5d\x29\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\
-\x74\x68\x69\x73\x7d\x2c\x72\x65\x6d\x6f\x76\x65\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x63\x29\x7b\x76\x61\
-\x72\x20\x62\x3d\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x64\x3d\
-\x30\x2c\x65\x3d\x62\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x66\x6f\x72\
-\x28\x3b\x64\x3c\x65\x3b\x64\x2b\x2b\x29\x66\x6f\x72\x28\x76\x61\
-\x72\x20\x66\x3d\x30\x3b\x66\x3c\x63\x2e\x6c\x65\x6e\x67\x74\x68\
-\x3b\x66\x2b\x2b\x29\x69\x66\x28\x62\x5b\x64\x5d\x3d\x3d\x3d\x63\
-\x5b\x66\x5d\x29\x7b\x69\x26\x26\x66\x3c\x3d\x6b\x26\x26\x28\x6b\
-\x2d\x2d\x2c\x66\x3c\x3d\x6c\x26\x26\x6c\x2d\x2d\x29\x2c\x63\x2e\
-\x73\x70\x6c\x69\x63\x65\x28\x66\x2d\x2d\x2c\x31\x29\x3b\x69\x66\
-\x28\x61\x2e\x75\x6e\x69\x71\x75\x65\x29\x62\x72\x65\x61\x6b\x7d\
-\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x68\x61\
-\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\
-\x28\x63\x29\x7b\x76\x61\x72\x20\x62\x3d\x30\x2c\x64\x3d\x63\x2e\
-\x6c\x65\x6e\x67\x74\x68\x3b\x66\x6f\x72\x28\x3b\x62\x3c\x64\x3b\
-\x62\x2b\x2b\x29\x69\x66\x28\x61\x3d\x3d\x3d\x63\x5b\x62\x5d\x29\
-\x72\x65\x74\x75\x72\x6e\x21\x30\x7d\x72\x65\x74\x75\x72\x6e\x21\
-\x31\x7d\x2c\x65\x6d\x70\x74\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x29\x7b\x63\x3d\x5b\x5d\x3b\x72\x65\x74\x75\x72\x6e\x20\
-\x74\x68\x69\x73\x7d\x2c\x64\x69\x73\x61\x62\x6c\x65\x3a\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x63\x3d\x64\x3d\x65\x3d\x62\
-\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x64\x69\
-\x73\x61\x62\x6c\x65\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x63\x7d\x2c\x6c\x6f\x63\x6b\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x64\x3d\x62\x2c\
-\x28\x21\x65\x7c\x7c\x65\x3d\x3d\x3d\x21\x30\x29\x26\x26\x6f\x2e\
-\x64\x69\x73\x61\x62\x6c\x65\x28\x29\x3b\x72\x65\x74\x75\x72\x6e\
-\x20\x74\x68\x69\x73\x7d\x2c\x6c\x6f\x63\x6b\x65\x64\x3a\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\
-\x64\x7d\x2c\x66\x69\x72\x65\x57\x69\x74\x68\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x62\x2c\x63\x29\x7b\x64\x26\x26\x28\x69\x3f\
-\x61\x2e\x6f\x6e\x63\x65\x7c\x7c\x64\x2e\x70\x75\x73\x68\x28\x5b\
-\x62\x2c\x63\x5d\x29\x3a\x28\x21\x61\x2e\x6f\x6e\x63\x65\x7c\x7c\
-\x21\x65\x29\x26\x26\x6e\x28\x62\x2c\x63\x29\x29\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x66\x69\x72\x65\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x6f\x2e\x66\x69\x72\x65\
-\x57\x69\x74\x68\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\
-\x6e\x74\x73\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\
-\x7d\x2c\x66\x69\x72\x65\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x21\x65\x7d\x7d\x3b\x72\
-\x65\x74\x75\x72\x6e\x20\x6f\x7d\x3b\x76\x61\x72\x20\x69\x3d\x5b\
-\x5d\x2e\x73\x6c\x69\x63\x65\x3b\x66\x2e\x65\x78\x74\x65\x6e\x64\
-\x28\x7b\x44\x65\x66\x65\x72\x72\x65\x64\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x66\x2e\x43\
-\x61\x6c\x6c\x62\x61\x63\x6b\x73\x28\x22\x6f\x6e\x63\x65\x20\x6d\
-\x65\x6d\x6f\x72\x79\x22\x29\x2c\x63\x3d\x66\x2e\x43\x61\x6c\x6c\
-\x62\x61\x63\x6b\x73\x28\x22\x6f\x6e\x63\x65\x20\x6d\x65\x6d\x6f\
-\x72\x79\x22\x29\x2c\x64\x3d\x66\x2e\x43\x61\x6c\x6c\x62\x61\x63\
-\x6b\x73\x28\x22\x6d\x65\x6d\x6f\x72\x79\x22\x29\x2c\x65\x3d\x22\
-\x70\x65\x6e\x64\x69\x6e\x67\x22\x2c\x67\x3d\x7b\x72\x65\x73\x6f\
-\x6c\x76\x65\x3a\x62\x2c\x72\x65\x6a\x65\x63\x74\x3a\x63\x2c\x6e\
-\x6f\x74\x69\x66\x79\x3a\x64\x7d\x2c\x68\x3d\x7b\x64\x6f\x6e\x65\
-\x3a\x62\x2e\x61\x64\x64\x2c\x66\x61\x69\x6c\x3a\x63\x2e\x61\x64\
-\x64\x2c\x70\x72\x6f\x67\x72\x65\x73\x73\x3a\x64\x2e\x61\x64\x64\
-\x2c\x73\x74\x61\x74\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x65\x7d\x2c\x69\x73\x52\x65\
-\x73\x6f\x6c\x76\x65\x64\x3a\x62\x2e\x66\x69\x72\x65\x64\x2c\x69\
-\x73\x52\x65\x6a\x65\x63\x74\x65\x64\x3a\x63\x2e\x66\x69\x72\x65\
-\x64\x2c\x74\x68\x65\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x2c\x62\x2c\x63\x29\x7b\x69\x2e\x64\x6f\x6e\x65\x28\x61\x29\
-\x2e\x66\x61\x69\x6c\x28\x62\x29\x2e\x70\x72\x6f\x67\x72\x65\x73\
-\x73\x28\x63\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\
-\x7d\x2c\x61\x6c\x77\x61\x79\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x29\x7b\x69\x2e\x64\x6f\x6e\x65\x2e\x61\x70\x70\x6c\x79\
-\x28\x69\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x2e\x66\x61\
-\x69\x6c\x2e\x61\x70\x70\x6c\x79\x28\x69\x2c\x61\x72\x67\x75\x6d\
-\x65\x6e\x74\x73\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\
-\x73\x7d\x2c\x70\x69\x70\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\
-\x2e\x44\x65\x66\x65\x72\x72\x65\x64\x28\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x64\x29\x7b\x66\x2e\x65\x61\x63\x68\x28\x7b\x64\x6f\
-\x6e\x65\x3a\x5b\x61\x2c\x22\x72\x65\x73\x6f\x6c\x76\x65\x22\x5d\
-\x2c\x66\x61\x69\x6c\x3a\x5b\x62\x2c\x22\x72\x65\x6a\x65\x63\x74\
-\x22\x5d\x2c\x70\x72\x6f\x67\x72\x65\x73\x73\x3a\x5b\x63\x2c\x22\
-\x6e\x6f\x74\x69\x66\x79\x22\x5d\x7d\x2c\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x62\x5b\
-\x30\x5d\x2c\x65\x3d\x62\x5b\x31\x5d\x2c\x67\x3b\x66\x2e\x69\x73\
-\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x29\x3f\x69\x5b\x61\x5d\
-\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x67\x3d\x63\x2e\
-\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\
-\x65\x6e\x74\x73\x29\x2c\x67\x26\x26\x66\x2e\x69\x73\x46\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x67\x2e\x70\x72\x6f\x6d\x69\x73\x65\x29\
-\x3f\x67\x2e\x70\x72\x6f\x6d\x69\x73\x65\x28\x29\x2e\x74\x68\x65\
-\x6e\x28\x64\x2e\x72\x65\x73\x6f\x6c\x76\x65\x2c\x64\x2e\x72\x65\
-\x6a\x65\x63\x74\x2c\x64\x2e\x6e\x6f\x74\x69\x66\x79\x29\x3a\x64\
-\x5b\x65\x2b\x22\x57\x69\x74\x68\x22\x5d\x28\x74\x68\x69\x73\x3d\
-\x3d\x3d\x69\x3f\x64\x3a\x74\x68\x69\x73\x2c\x5b\x67\x5d\x29\x7d\
-\x29\x3a\x69\x5b\x61\x5d\x28\x64\x5b\x65\x5d\x29\x7d\x29\x7d\x29\
-\x2e\x70\x72\x6f\x6d\x69\x73\x65\x28\x29\x7d\x2c\x70\x72\x6f\x6d\
-\x69\x73\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\
-\x69\x66\x28\x61\x3d\x3d\x6e\x75\x6c\x6c\x29\x61\x3d\x68\x3b\x65\
-\x6c\x73\x65\x20\x66\x6f\x72\x28\x76\x61\x72\x20\x62\x20\x69\x6e\
-\x20\x68\x29\x61\x5b\x62\x5d\x3d\x68\x5b\x62\x5d\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x61\x7d\x7d\x2c\x69\x3d\x68\x2e\x70\x72\x6f\x6d\
-\x69\x73\x65\x28\x7b\x7d\x29\x2c\x6a\x3b\x66\x6f\x72\x28\x6a\x20\
-\x69\x6e\x20\x67\x29\x69\x5b\x6a\x5d\x3d\x67\x5b\x6a\x5d\x2e\x66\
-\x69\x72\x65\x2c\x69\x5b\x6a\x2b\x22\x57\x69\x74\x68\x22\x5d\x3d\
-\x67\x5b\x6a\x5d\x2e\x66\x69\x72\x65\x57\x69\x74\x68\x3b\x69\x2e\
-\x64\x6f\x6e\x65\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\
-\x65\x3d\x22\x72\x65\x73\x6f\x6c\x76\x65\x64\x22\x7d\x2c\x63\x2e\
-\x64\x69\x73\x61\x62\x6c\x65\x2c\x64\x2e\x6c\x6f\x63\x6b\x29\x2e\
-\x66\x61\x69\x6c\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\
-\x65\x3d\x22\x72\x65\x6a\x65\x63\x74\x65\x64\x22\x7d\x2c\x62\x2e\
-\x64\x69\x73\x61\x62\x6c\x65\x2c\x64\x2e\x6c\x6f\x63\x6b\x29\x2c\
-\x61\x26\x26\x61\x2e\x63\x61\x6c\x6c\x28\x69\x2c\x69\x29\x3b\x72\
-\x65\x74\x75\x72\x6e\x20\x69\x7d\x2c\x77\x68\x65\x6e\x3a\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x20\x6d\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x65\x5b\x61\x5d\x3d\
-\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\
-\x3e\x31\x3f\x69\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\
-\x6e\x74\x73\x2c\x30\x29\x3a\x62\x2c\x6a\x2e\x6e\x6f\x74\x69\x66\
-\x79\x57\x69\x74\x68\x28\x6b\x2c\x65\x29\x7d\x7d\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x20\x6c\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\
-\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x29\x7b\x62\x5b\x61\
-\x5d\x3d\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\
-\x74\x68\x3e\x31\x3f\x69\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\
-\x6d\x65\x6e\x74\x73\x2c\x30\x29\x3a\x63\x2c\x2d\x2d\x67\x7c\x7c\
-\x6a\x2e\x72\x65\x73\x6f\x6c\x76\x65\x57\x69\x74\x68\x28\x6a\x2c\
-\x62\x29\x7d\x7d\x76\x61\x72\x20\x62\x3d\x69\x2e\x63\x61\x6c\x6c\
-\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x30\x29\x2c\x63\x3d\
-\x30\x2c\x64\x3d\x62\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x65\x3d\x41\
-\x72\x72\x61\x79\x28\x64\x29\x2c\x67\x3d\x64\x2c\x68\x3d\x64\x2c\
-\x6a\x3d\x64\x3c\x3d\x31\x26\x26\x61\x26\x26\x66\x2e\x69\x73\x46\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2e\x70\x72\x6f\x6d\x69\x73\
-\x65\x29\x3f\x61\x3a\x66\x2e\x44\x65\x66\x65\x72\x72\x65\x64\x28\
-\x29\x2c\x6b\x3d\x6a\x2e\x70\x72\x6f\x6d\x69\x73\x65\x28\x29\x3b\
-\x69\x66\x28\x64\x3e\x31\x29\x7b\x66\x6f\x72\x28\x3b\x63\x3c\x64\
-\x3b\x63\x2b\x2b\x29\x62\x5b\x63\x5d\x26\x26\x62\x5b\x63\x5d\x2e\
-\x70\x72\x6f\x6d\x69\x73\x65\x26\x26\x66\x2e\x69\x73\x46\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x62\x5b\x63\x5d\x2e\x70\x72\x6f\x6d\x69\
-\x73\x65\x29\x3f\x62\x5b\x63\x5d\x2e\x70\x72\x6f\x6d\x69\x73\x65\
-\x28\x29\x2e\x74\x68\x65\x6e\x28\x6c\x28\x63\x29\x2c\x6a\x2e\x72\
-\x65\x6a\x65\x63\x74\x2c\x6d\x28\x63\x29\x29\x3a\x2d\x2d\x67\x3b\
-\x67\x7c\x7c\x6a\x2e\x72\x65\x73\x6f\x6c\x76\x65\x57\x69\x74\x68\
-\x28\x6a\x2c\x62\x29\x7d\x65\x6c\x73\x65\x20\x6a\x21\x3d\x3d\x61\
-\x26\x26\x6a\x2e\x72\x65\x73\x6f\x6c\x76\x65\x57\x69\x74\x68\x28\
-\x6a\x2c\x64\x3f\x5b\x61\x5d\x3a\x5b\x5d\x29\x3b\x72\x65\x74\x75\
-\x72\x6e\x20\x6b\x7d\x7d\x29\x2c\x66\x2e\x73\x75\x70\x70\x6f\x72\
-\x74\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\
-\x20\x62\x2c\x64\x2c\x65\x2c\x67\x2c\x68\x2c\x69\x2c\x6a\x2c\x6b\
-\x2c\x6c\x2c\x6d\x2c\x6e\x2c\x6f\x2c\x70\x2c\x71\x3d\x63\x2e\x63\
-\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\
-\x76\x22\x29\x2c\x72\x3d\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\
-\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x71\x2e\x73\x65\x74\x41\x74\x74\
-\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6c\x61\x73\x73\x4e\x61\x6d\
-\x65\x22\x2c\x22\x74\x22\x29\x2c\x71\x2e\x69\x6e\x6e\x65\x72\x48\
-\x54\x4d\x4c\x3d\x22\x20\x20\x20\x3c\x6c\x69\x6e\x6b\x2f\x3e\x3c\
-\x74\x61\x62\x6c\x65\x3e\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x3c\x61\
-\x20\x68\x72\x65\x66\x3d\x27\x2f\x61\x27\x20\x73\x74\x79\x6c\x65\
-\x3d\x27\x74\x6f\x70\x3a\x31\x70\x78\x3b\x66\x6c\x6f\x61\x74\x3a\
-\x6c\x65\x66\x74\x3b\x6f\x70\x61\x63\x69\x74\x79\x3a\x2e\x35\x35\
-\x3b\x27\x3e\x61\x3c\x2f\x61\x3e\x3c\x69\x6e\x70\x75\x74\x20\x74\
-\x79\x70\x65\x3d\x27\x63\x68\x65\x63\x6b\x62\x6f\x78\x27\x2f\x3e\
-\x22\x2c\x64\x3d\x71\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\
-\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x2a\x22\x29\x2c\
-\x65\x3d\x71\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\
-\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x61\x22\x29\x5b\x30\x5d\
-\x3b\x69\x66\x28\x21\x64\x7c\x7c\x21\x64\x2e\x6c\x65\x6e\x67\x74\
-\x68\x7c\x7c\x21\x65\x29\x72\x65\x74\x75\x72\x6e\x7b\x7d\x3b\x67\
-\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\
-\x28\x22\x73\x65\x6c\x65\x63\x74\x22\x29\x2c\x68\x3d\x67\x2e\x61\
-\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\x63\x2e\x63\x72\x65\
-\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x6f\x70\x74\x69\
-\x6f\x6e\x22\x29\x29\x2c\x69\x3d\x71\x2e\x67\x65\x74\x45\x6c\x65\
-\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\
-\x69\x6e\x70\x75\x74\x22\x29\x5b\x30\x5d\x2c\x62\x3d\x7b\x6c\x65\
-\x61\x64\x69\x6e\x67\x57\x68\x69\x74\x65\x73\x70\x61\x63\x65\x3a\
-\x71\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2e\x6e\x6f\x64\
-\x65\x54\x79\x70\x65\x3d\x3d\x3d\x33\x2c\x74\x62\x6f\x64\x79\x3a\
-\x21\x71\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\
-\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x74\x62\x6f\x64\x79\x22\x29\
-\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x68\x74\x6d\x6c\x53\x65\x72\x69\
-\x61\x6c\x69\x7a\x65\x3a\x21\x21\x71\x2e\x67\x65\x74\x45\x6c\x65\
-\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\
-\x6c\x69\x6e\x6b\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x73\x74\
-\x79\x6c\x65\x3a\x2f\x74\x6f\x70\x2f\x2e\x74\x65\x73\x74\x28\x65\
-\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x73\
-\x74\x79\x6c\x65\x22\x29\x29\x2c\x68\x72\x65\x66\x4e\x6f\x72\x6d\
-\x61\x6c\x69\x7a\x65\x64\x3a\x65\x2e\x67\x65\x74\x41\x74\x74\x72\
-\x69\x62\x75\x74\x65\x28\x22\x68\x72\x65\x66\x22\x29\x3d\x3d\x3d\
-\x22\x2f\x61\x22\x2c\x6f\x70\x61\x63\x69\x74\x79\x3a\x2f\x5e\x30\
-\x2e\x35\x35\x2f\x2e\x74\x65\x73\x74\x28\x65\x2e\x73\x74\x79\x6c\
-\x65\x2e\x6f\x70\x61\x63\x69\x74\x79\x29\x2c\x63\x73\x73\x46\x6c\
-\x6f\x61\x74\x3a\x21\x21\x65\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\
-\x73\x46\x6c\x6f\x61\x74\x2c\x63\x68\x65\x63\x6b\x4f\x6e\x3a\x69\
-\x2e\x76\x61\x6c\x75\x65\x3d\x3d\x3d\x22\x6f\x6e\x22\x2c\x6f\x70\
-\x74\x53\x65\x6c\x65\x63\x74\x65\x64\x3a\x68\x2e\x73\x65\x6c\x65\
-\x63\x74\x65\x64\x2c\x67\x65\x74\x53\x65\x74\x41\x74\x74\x72\x69\
-\x62\x75\x74\x65\x3a\x71\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\
-\x21\x3d\x3d\x22\x74\x22\x2c\x65\x6e\x63\x74\x79\x70\x65\x3a\x21\
-\x21\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\
-\x28\x22\x66\x6f\x72\x6d\x22\x29\x2e\x65\x6e\x63\x74\x79\x70\x65\
-\x2c\x68\x74\x6d\x6c\x35\x43\x6c\x6f\x6e\x65\x3a\x63\x2e\x63\x72\
-\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x6e\x61\x76\
-\x22\x29\x2e\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x21\x30\x29\
-\x2e\x6f\x75\x74\x65\x72\x48\x54\x4d\x4c\x21\x3d\x3d\x22\x3c\x3a\
-\x6e\x61\x76\x3e\x3c\x2f\x3a\x6e\x61\x76\x3e\x22\x2c\x73\x75\x62\
-\x6d\x69\x74\x42\x75\x62\x62\x6c\x65\x73\x3a\x21\x30\x2c\x63\x68\
-\x61\x6e\x67\x65\x42\x75\x62\x62\x6c\x65\x73\x3a\x21\x30\x2c\x66\
-\x6f\x63\x75\x73\x69\x6e\x42\x75\x62\x62\x6c\x65\x73\x3a\x21\x31\
-\x2c\x64\x65\x6c\x65\x74\x65\x45\x78\x70\x61\x6e\x64\x6f\x3a\x21\
-\x30\x2c\x6e\x6f\x43\x6c\x6f\x6e\x65\x45\x76\x65\x6e\x74\x3a\x21\
-\x30\x2c\x69\x6e\x6c\x69\x6e\x65\x42\x6c\x6f\x63\x6b\x4e\x65\x65\
-\x64\x73\x4c\x61\x79\x6f\x75\x74\x3a\x21\x31\x2c\x73\x68\x72\x69\
-\x6e\x6b\x57\x72\x61\x70\x42\x6c\x6f\x63\x6b\x73\x3a\x21\x31\x2c\
-\x72\x65\x6c\x69\x61\x62\x6c\x65\x4d\x61\x72\x67\x69\x6e\x52\x69\
-\x67\x68\x74\x3a\x21\x30\x7d\x2c\x69\x2e\x63\x68\x65\x63\x6b\x65\
-\x64\x3d\x21\x30\x2c\x62\x2e\x6e\x6f\x43\x6c\x6f\x6e\x65\x43\x68\
-\x65\x63\x6b\x65\x64\x3d\x69\x2e\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\
-\x65\x28\x21\x30\x29\x2e\x63\x68\x65\x63\x6b\x65\x64\x2c\x67\x2e\
-\x64\x69\x73\x61\x62\x6c\x65\x64\x3d\x21\x30\x2c\x62\x2e\x6f\x70\
-\x74\x44\x69\x73\x61\x62\x6c\x65\x64\x3d\x21\x68\x2e\x64\x69\x73\
-\x61\x62\x6c\x65\x64\x3b\x74\x72\x79\x7b\x64\x65\x6c\x65\x74\x65\
-\x20\x71\x2e\x74\x65\x73\x74\x7d\x63\x61\x74\x63\x68\x28\x73\x29\
-\x7b\x62\x2e\x64\x65\x6c\x65\x74\x65\x45\x78\x70\x61\x6e\x64\x6f\
-\x3d\x21\x31\x7d\x21\x71\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\
-\x69\x73\x74\x65\x6e\x65\x72\x26\x26\x71\x2e\x61\x74\x74\x61\x63\
-\x68\x45\x76\x65\x6e\x74\x26\x26\x71\x2e\x66\x69\x72\x65\x45\x76\
-\x65\x6e\x74\x26\x26\x28\x71\x2e\x61\x74\x74\x61\x63\x68\x45\x76\
-\x65\x6e\x74\x28\x22\x6f\x6e\x63\x6c\x69\x63\x6b\x22\x2c\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x62\x2e\x6e\x6f\x43\x6c\x6f\
-\x6e\x65\x45\x76\x65\x6e\x74\x3d\x21\x31\x7d\x29\x2c\x71\x2e\x63\
-\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x21\x30\x29\x2e\x66\x69\x72\
-\x65\x45\x76\x65\x6e\x74\x28\x22\x6f\x6e\x63\x6c\x69\x63\x6b\x22\
-\x29\x29\x2c\x69\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\
-\x6d\x65\x6e\x74\x28\x22\x69\x6e\x70\x75\x74\x22\x29\x2c\x69\x2e\
-\x76\x61\x6c\x75\x65\x3d\x22\x74\x22\x2c\x69\x2e\x73\x65\x74\x41\
-\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x79\x70\x65\x22\x2c\
-\x22\x72\x61\x64\x69\x6f\x22\x29\x2c\x62\x2e\x72\x61\x64\x69\x6f\
-\x56\x61\x6c\x75\x65\x3d\x69\x2e\x76\x61\x6c\x75\x65\x3d\x3d\x3d\
-\x22\x74\x22\x2c\x69\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\
-\x74\x65\x28\x22\x63\x68\x65\x63\x6b\x65\x64\x22\x2c\x22\x63\x68\
-\x65\x63\x6b\x65\x64\x22\x29\x2c\x71\x2e\x61\x70\x70\x65\x6e\x64\
-\x43\x68\x69\x6c\x64\x28\x69\x29\x2c\x6b\x3d\x63\x2e\x63\x72\x65\
-\x61\x74\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x46\x72\x61\x67\x6d\
-\x65\x6e\x74\x28\x29\x2c\x6b\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\
-\x69\x6c\x64\x28\x71\x2e\x6c\x61\x73\x74\x43\x68\x69\x6c\x64\x29\
-\x2c\x62\x2e\x63\x68\x65\x63\x6b\x43\x6c\x6f\x6e\x65\x3d\x6b\x2e\
-\x63\x6c\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x21\x30\x29\x2e\x63\x6c\
-\x6f\x6e\x65\x4e\x6f\x64\x65\x28\x21\x30\x29\x2e\x6c\x61\x73\x74\
-\x43\x68\x69\x6c\x64\x2e\x63\x68\x65\x63\x6b\x65\x64\x2c\x62\x2e\
-\x61\x70\x70\x65\x6e\x64\x43\x68\x65\x63\x6b\x65\x64\x3d\x69\x2e\
-\x63\x68\x65\x63\x6b\x65\x64\x2c\x6b\x2e\x72\x65\x6d\x6f\x76\x65\
-\x43\x68\x69\x6c\x64\x28\x69\x29\x2c\x6b\x2e\x61\x70\x70\x65\x6e\
-\x64\x43\x68\x69\x6c\x64\x28\x71\x29\x2c\x71\x2e\x69\x6e\x6e\x65\
-\x72\x48\x54\x4d\x4c\x3d\x22\x22\x2c\x61\x2e\x67\x65\x74\x43\x6f\
-\x6d\x70\x75\x74\x65\x64\x53\x74\x79\x6c\x65\x26\x26\x28\x6a\x3d\
-\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\
-\x22\x64\x69\x76\x22\x29\x2c\x6a\x2e\x73\x74\x79\x6c\x65\x2e\x77\
-\x69\x64\x74\x68\x3d\x22\x30\x22\x2c\x6a\x2e\x73\x74\x79\x6c\x65\
-\x2e\x6d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x3d\x22\x30\x22\
-\x2c\x71\x2e\x73\x74\x79\x6c\x65\x2e\x77\x69\x64\x74\x68\x3d\x22\
-\x32\x70\x78\x22\x2c\x71\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\
-\x6c\x64\x28\x6a\x29\x2c\x62\x2e\x72\x65\x6c\x69\x61\x62\x6c\x65\
-\x4d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x3d\x28\x70\x61\x72\
-\x73\x65\x49\x6e\x74\x28\x28\x61\x2e\x67\x65\x74\x43\x6f\x6d\x70\
-\x75\x74\x65\x64\x53\x74\x79\x6c\x65\x28\x6a\x2c\x6e\x75\x6c\x6c\
-\x29\x7c\x7c\x7b\x6d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x3a\
-\x30\x7d\x29\x2e\x6d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x2c\
-\x31\x30\x29\x7c\x7c\x30\x29\x3d\x3d\x3d\x30\x29\x3b\x69\x66\x28\
-\x71\x2e\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x29\x66\x6f\
-\x72\x28\x6f\x20\x69\x6e\x7b\x73\x75\x62\x6d\x69\x74\x3a\x31\x2c\
-\x63\x68\x61\x6e\x67\x65\x3a\x31\x2c\x66\x6f\x63\x75\x73\x69\x6e\
-\x3a\x31\x7d\x29\x6e\x3d\x22\x6f\x6e\x22\x2b\x6f\x2c\x70\x3d\x6e\
-\x20\x69\x6e\x20\x71\x2c\x70\x7c\x7c\x28\x71\x2e\x73\x65\x74\x41\
-\x74\x74\x72\x69\x62\x75\x74\x65\x28\x6e\x2c\x22\x72\x65\x74\x75\
-\x72\x6e\x3b\x22\x29\x2c\x70\x3d\x74\x79\x70\x65\x6f\x66\x20\x71\
-\x5b\x6e\x5d\x3d\x3d\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\
-\x2c\x62\x5b\x6f\x2b\x22\x42\x75\x62\x62\x6c\x65\x73\x22\x5d\x3d\
-\x70\x3b\x6b\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\
-\x71\x29\x2c\x6b\x3d\x67\x3d\x68\x3d\x6a\x3d\x71\x3d\x69\x3d\x6e\
-\x75\x6c\x6c\x2c\x66\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\
-\x7b\x76\x61\x72\x20\x61\x2c\x64\x2c\x65\x2c\x67\x2c\x68\x2c\x69\
-\x2c\x6a\x2c\x6b\x2c\x6d\x2c\x6e\x2c\x6f\x2c\x72\x3d\x63\x2e\x67\
-\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\
-\x61\x6d\x65\x28\x22\x62\x6f\x64\x79\x22\x29\x5b\x30\x5d\x3b\x21\
-\x72\x7c\x7c\x28\x6a\x3d\x31\x2c\x6b\x3d\x22\x70\x6f\x73\x69\x74\
-\x69\x6f\x6e\x3a\x61\x62\x73\x6f\x6c\x75\x74\x65\x3b\x74\x6f\x70\
-\x3a\x30\x3b\x6c\x65\x66\x74\x3a\x30\x3b\x77\x69\x64\x74\x68\x3a\
-\x31\x70\x78\x3b\x68\x65\x69\x67\x68\x74\x3a\x31\x70\x78\x3b\x6d\
-\x61\x72\x67\x69\x6e\x3a\x30\x3b\x22\x2c\x6d\x3d\x22\x76\x69\x73\
-\x69\x62\x69\x6c\x69\x74\x79\x3a\x68\x69\x64\x64\x65\x6e\x3b\x62\
-\x6f\x72\x64\x65\x72\x3a\x30\x3b\x22\x2c\x6e\x3d\x22\x73\x74\x79\
-\x6c\x65\x3d\x27\x22\x2b\x6b\x2b\x22\x62\x6f\x72\x64\x65\x72\x3a\
-\x35\x70\x78\x20\x73\x6f\x6c\x69\x64\x20\x23\x30\x30\x30\x3b\x70\
-\x61\x64\x64\x69\x6e\x67\x3a\x30\x3b\x27\x22\x2c\x6f\x3d\x22\x3c\
-\x64\x69\x76\x20\x22\x2b\x6e\x2b\x22\x3e\x3c\x64\x69\x76\x3e\x3c\
-\x2f\x64\x69\x76\x3e\x3c\x2f\x64\x69\x76\x3e\x22\x2b\x22\x3c\x74\
-\x61\x62\x6c\x65\x20\x22\x2b\x6e\x2b\x22\x20\x63\x65\x6c\x6c\x70\
-\x61\x64\x64\x69\x6e\x67\x3d\x27\x30\x27\x20\x63\x65\x6c\x6c\x73\
-\x70\x61\x63\x69\x6e\x67\x3d\x27\x30\x27\x3e\x22\x2b\x22\x3c\x74\
-\x72\x3e\x3c\x74\x64\x3e\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\x72\x3e\
-\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x22\x2c\x61\x3d\x63\x2e\x63\x72\
-\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\
-\x22\x29\x2c\x61\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x54\x65\
-\x78\x74\x3d\x6d\x2b\x22\x77\x69\x64\x74\x68\x3a\x30\x3b\x68\x65\
-\x69\x67\x68\x74\x3a\x30\x3b\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\
-\x73\x74\x61\x74\x69\x63\x3b\x74\x6f\x70\x3a\x30\x3b\x6d\x61\x72\
-\x67\x69\x6e\x2d\x74\x6f\x70\x3a\x22\x2b\x6a\x2b\x22\x70\x78\x22\
-\x2c\x72\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\
-\x61\x2c\x72\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x2c\
-\x71\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\
-\x74\x28\x22\x64\x69\x76\x22\x29\x2c\x61\x2e\x61\x70\x70\x65\x6e\
-\x64\x43\x68\x69\x6c\x64\x28\x71\x29\x2c\x71\x2e\x69\x6e\x6e\x65\
-\x72\x48\x54\x4d\x4c\x3d\x22\x3c\x74\x61\x62\x6c\x65\x3e\x3c\x74\
-\x72\x3e\x3c\x74\x64\x20\x73\x74\x79\x6c\x65\x3d\x27\x70\x61\x64\
-\x64\x69\x6e\x67\x3a\x30\x3b\x62\x6f\x72\x64\x65\x72\x3a\x30\x3b\
-\x64\x69\x73\x70\x6c\x61\x79\x3a\x6e\x6f\x6e\x65\x27\x3e\x3c\x2f\
-\x74\x64\x3e\x3c\x74\x64\x3e\x74\x3c\x2f\x74\x64\x3e\x3c\x2f\x74\
-\x72\x3e\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x22\x2c\x6c\x3d\x71\x2e\
-\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\
-\x4e\x61\x6d\x65\x28\x22\x74\x64\x22\x29\x2c\x70\x3d\x6c\x5b\x30\
-\x5d\x2e\x6f\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x3d\x3d\
-\x3d\x30\x2c\x6c\x5b\x30\x5d\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\
-\x73\x70\x6c\x61\x79\x3d\x22\x22\x2c\x6c\x5b\x31\x5d\x2e\x73\x74\
-\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x6e\x6f\x6e\
-\x65\x22\x2c\x62\x2e\x72\x65\x6c\x69\x61\x62\x6c\x65\x48\x69\x64\
-\x64\x65\x6e\x4f\x66\x66\x73\x65\x74\x73\x3d\x70\x26\x26\x6c\x5b\
-\x30\x5d\x2e\x6f\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x3d\
-\x3d\x3d\x30\x2c\x71\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\
-\x22\x22\x2c\x71\x2e\x73\x74\x79\x6c\x65\x2e\x77\x69\x64\x74\x68\
-\x3d\x71\x2e\x73\x74\x79\x6c\x65\x2e\x70\x61\x64\x64\x69\x6e\x67\
-\x4c\x65\x66\x74\x3d\x22\x31\x70\x78\x22\x2c\x66\x2e\x62\x6f\x78\
-\x4d\x6f\x64\x65\x6c\x3d\x62\x2e\x62\x6f\x78\x4d\x6f\x64\x65\x6c\
-\x3d\x71\x2e\x6f\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68\x3d\x3d\
-\x3d\x32\x2c\x74\x79\x70\x65\x6f\x66\x20\x71\x2e\x73\x74\x79\x6c\
-\x65\x2e\x7a\x6f\x6f\x6d\x21\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\
-\x65\x64\x22\x26\x26\x28\x71\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\
-\x73\x70\x6c\x61\x79\x3d\x22\x69\x6e\x6c\x69\x6e\x65\x22\x2c\x71\
-\x2e\x73\x74\x79\x6c\x65\x2e\x7a\x6f\x6f\x6d\x3d\x31\x2c\x62\x2e\
-\x69\x6e\x6c\x69\x6e\x65\x42\x6c\x6f\x63\x6b\x4e\x65\x65\x64\x73\
-\x4c\x61\x79\x6f\x75\x74\x3d\x71\x2e\x6f\x66\x66\x73\x65\x74\x57\
-\x69\x64\x74\x68\x3d\x3d\x3d\x32\x2c\x71\x2e\x73\x74\x79\x6c\x65\
-\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x22\x2c\x71\x2e\x69\x6e\
-\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x22\x3c\x64\x69\x76\x20\x73\x74\
-\x79\x6c\x65\x3d\x27\x77\x69\x64\x74\x68\x3a\x34\x70\x78\x3b\x27\
-\x3e\x3c\x2f\x64\x69\x76\x3e\x22\x2c\x62\x2e\x73\x68\x72\x69\x6e\
-\x6b\x57\x72\x61\x70\x42\x6c\x6f\x63\x6b\x73\x3d\x71\x2e\x6f\x66\
-\x66\x73\x65\x74\x57\x69\x64\x74\x68\x21\x3d\x3d\x32\x29\x2c\x71\
-\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x54\x65\x78\x74\x3d\x6b\
-\x2b\x6d\x2c\x71\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x6f\
-\x2c\x64\x3d\x71\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2c\
-\x65\x3d\x64\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2c\x68\
-\x3d\x64\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x2e\x66\
-\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2e\x66\x69\x72\x73\x74\x43\
-\x68\x69\x6c\x64\x2c\x69\x3d\x7b\x64\x6f\x65\x73\x4e\x6f\x74\x41\
-\x64\x64\x42\x6f\x72\x64\x65\x72\x3a\x65\x2e\x6f\x66\x66\x73\x65\
-\x74\x54\x6f\x70\x21\x3d\x3d\x35\x2c\x64\x6f\x65\x73\x41\x64\x64\
-\x42\x6f\x72\x64\x65\x72\x46\x6f\x72\x54\x61\x62\x6c\x65\x41\x6e\
-\x64\x43\x65\x6c\x6c\x73\x3a\x68\x2e\x6f\x66\x66\x73\x65\x74\x54\
-\x6f\x70\x3d\x3d\x3d\x35\x7d\x2c\x65\x2e\x73\x74\x79\x6c\x65\x2e\
-\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x22\x66\x69\x78\x65\x64\x22\
-\x2c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x74\x6f\x70\x3d\x22\x32\x30\
-\x70\x78\x22\x2c\x69\x2e\x66\x69\x78\x65\x64\x50\x6f\x73\x69\x74\
-\x69\x6f\x6e\x3d\x65\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\x3d\
-\x3d\x3d\x32\x30\x7c\x7c\x65\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\
-\x70\x3d\x3d\x3d\x31\x35\x2c\x65\x2e\x73\x74\x79\x6c\x65\x2e\x70\
-\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x65\x2e\x73\x74\x79\x6c\x65\x2e\
-\x74\x6f\x70\x3d\x22\x22\x2c\x64\x2e\x73\x74\x79\x6c\x65\x2e\x6f\
-\x76\x65\x72\x66\x6c\x6f\x77\x3d\x22\x68\x69\x64\x64\x65\x6e\x22\
-\x2c\x64\x2e\x73\x74\x79\x6c\x65\x2e\x70\x6f\x73\x69\x74\x69\x6f\
-\x6e\x3d\x22\x72\x65\x6c\x61\x74\x69\x76\x65\x22\x2c\x69\x2e\x73\
-\x75\x62\x74\x72\x61\x63\x74\x73\x42\x6f\x72\x64\x65\x72\x46\x6f\
-\x72\x4f\x76\x65\x72\x66\x6c\x6f\x77\x4e\x6f\x74\x56\x69\x73\x69\
-\x62\x6c\x65\x3d\x65\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\x3d\
-\x3d\x3d\x2d\x35\x2c\x69\x2e\x64\x6f\x65\x73\x4e\x6f\x74\x49\x6e\
-\x63\x6c\x75\x64\x65\x4d\x61\x72\x67\x69\x6e\x49\x6e\x42\x6f\x64\
-\x79\x4f\x66\x66\x73\x65\x74\x3d\x72\x2e\x6f\x66\x66\x73\x65\x74\
-\x54\x6f\x70\x21\x3d\x3d\x6a\x2c\x72\x2e\x72\x65\x6d\x6f\x76\x65\
-\x43\x68\x69\x6c\x64\x28\x61\x29\x2c\x71\x3d\x61\x3d\x6e\x75\x6c\
-\x6c\x2c\x66\x2e\x65\x78\x74\x65\x6e\x64\x28\x62\x2c\x69\x29\x29\
-\x7d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x7d\x28\x29\x3b\x76\
-\x61\x72\x20\x6a\x3d\x2f\x5e\x28\x3f\x3a\x5c\x7b\x2e\x2a\x5c\x7d\
-\x7c\x5c\x5b\x2e\x2a\x5c\x5d\x29\x24\x2f\x2c\x6b\x3d\x2f\x28\x5b\
-\x41\x2d\x5a\x5d\x29\x2f\x67\x3b\x66\x2e\x65\x78\x74\x65\x6e\x64\
-\x28\x7b\x63\x61\x63\x68\x65\x3a\x7b\x7d\x2c\x75\x75\x69\x64\x3a\
-\x30\x2c\x65\x78\x70\x61\x6e\x64\x6f\x3a\x22\x6a\x51\x75\x65\x72\
-\x79\x22\x2b\x28\x66\x2e\x66\x6e\x2e\x6a\x71\x75\x65\x72\x79\x2b\
-\x4d\x61\x74\x68\x2e\x72\x61\x6e\x64\x6f\x6d\x28\x29\x29\x2e\x72\
-\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x44\x2f\x67\x2c\x22\x22\x29\
-\x2c\x6e\x6f\x44\x61\x74\x61\x3a\x7b\x65\x6d\x62\x65\x64\x3a\x21\
-\x30\x2c\x6f\x62\x6a\x65\x63\x74\x3a\x22\x63\x6c\x73\x69\x64\x3a\
-\x44\x32\x37\x43\x44\x42\x36\x45\x2d\x41\x45\x36\x44\x2d\x31\x31\
-\x63\x66\x2d\x39\x36\x42\x38\x2d\x34\x34\x34\x35\x35\x33\x35\x34\
-\x30\x30\x30\x30\x22\x2c\x61\x70\x70\x6c\x65\x74\x3a\x21\x30\x7d\
-\x2c\x68\x61\x73\x44\x61\x74\x61\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x29\x7b\x61\x3d\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\
-\x65\x3f\x66\x2e\x63\x61\x63\x68\x65\x5b\x61\x5b\x66\x2e\x65\x78\
-\x70\x61\x6e\x64\x6f\x5d\x5d\x3a\x61\x5b\x66\x2e\x65\x78\x70\x61\
-\x6e\x64\x6f\x5d\x3b\x72\x65\x74\x75\x72\x6e\x21\x21\x61\x26\x26\
-\x21\x6d\x28\x61\x29\x7d\x2c\x64\x61\x74\x61\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x64\x2c\x65\x29\x7b\x69\x66\
-\x28\x21\x21\x66\x2e\x61\x63\x63\x65\x70\x74\x44\x61\x74\x61\x28\
-\x61\x29\x29\x7b\x76\x61\x72\x20\x67\x2c\x68\x2c\x69\x2c\x6a\x3d\
-\x66\x2e\x65\x78\x70\x61\x6e\x64\x6f\x2c\x6b\x3d\x74\x79\x70\x65\
-\x6f\x66\x20\x63\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x2c\x6c\
-\x3d\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x2c\x6d\x3d\x6c\x3f\
-\x66\x2e\x63\x61\x63\x68\x65\x3a\x61\x2c\x6e\x3d\x6c\x3f\x61\x5b\
-\x6a\x5d\x3a\x61\x5b\x6a\x5d\x26\x26\x6a\x2c\x6f\x3d\x63\x3d\x3d\
-\x3d\x22\x65\x76\x65\x6e\x74\x73\x22\x3b\x69\x66\x28\x28\x21\x6e\
-\x7c\x7c\x21\x6d\x5b\x6e\x5d\x7c\x7c\x21\x6f\x26\x26\x21\x65\x26\
-\x26\x21\x6d\x5b\x6e\x5d\x2e\x64\x61\x74\x61\x29\x26\x26\x6b\x26\
-\x26\x64\x3d\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x3b\x6e\x7c\
-\x7c\x28\x6c\x3f\x61\x5b\x6a\x5d\x3d\x6e\x3d\x2b\x2b\x66\x2e\x75\
-\x75\x69\x64\x3a\x6e\x3d\x6a\x29\x2c\x6d\x5b\x6e\x5d\x7c\x7c\x28\
-\x6d\x5b\x6e\x5d\x3d\x7b\x7d\x2c\x6c\x7c\x7c\x28\x6d\x5b\x6e\x5d\
-\x2e\x74\x6f\x4a\x53\x4f\x4e\x3d\x66\x2e\x6e\x6f\x6f\x70\x29\x29\
-\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x63\x3d\x3d\x22\x6f\
-\x62\x6a\x65\x63\x74\x22\x7c\x7c\x74\x79\x70\x65\x6f\x66\x20\x63\
-\x3d\x3d\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x65\x3f\x6d\
-\x5b\x6e\x5d\x3d\x66\x2e\x65\x78\x74\x65\x6e\x64\x28\x6d\x5b\x6e\
-\x5d\x2c\x63\x29\x3a\x6d\x5b\x6e\x5d\x2e\x64\x61\x74\x61\x3d\x66\
-\x2e\x65\x78\x74\x65\x6e\x64\x28\x6d\x5b\x6e\x5d\x2e\x64\x61\x74\
-\x61\x2c\x63\x29\x3b\x67\x3d\x68\x3d\x6d\x5b\x6e\x5d\x2c\x65\x7c\
-\x7c\x28\x68\x2e\x64\x61\x74\x61\x7c\x7c\x28\x68\x2e\x64\x61\x74\
-\x61\x3d\x7b\x7d\x29\x2c\x68\x3d\x68\x2e\x64\x61\x74\x61\x29\x2c\
-\x64\x21\x3d\x3d\x62\x26\x26\x28\x68\x5b\x66\x2e\x63\x61\x6d\x65\
-\x6c\x43\x61\x73\x65\x28\x63\x29\x5d\x3d\x64\x29\x3b\x69\x66\x28\
-\x6f\x26\x26\x21\x68\x5b\x63\x5d\x29\x72\x65\x74\x75\x72\x6e\x20\
-\x67\x2e\x65\x76\x65\x6e\x74\x73\x3b\x6b\x3f\x28\x69\x3d\x68\x5b\
-\x63\x5d\x2c\x69\x3d\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x69\x3d\x68\
-\x5b\x66\x2e\x63\x61\x6d\x65\x6c\x43\x61\x73\x65\x28\x63\x29\x5d\
-\x29\x29\x3a\x69\x3d\x68\x3b\x72\x65\x74\x75\x72\x6e\x20\x69\x7d\
-\x7d\x2c\x72\x65\x6d\x6f\x76\x65\x44\x61\x74\x61\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x69\x66\x28\
-\x21\x21\x66\x2e\x61\x63\x63\x65\x70\x74\x44\x61\x74\x61\x28\x61\
-\x29\x29\x7b\x76\x61\x72\x20\x64\x2c\x65\x2c\x67\x2c\x68\x3d\x66\
-\x2e\x65\x78\x70\x61\x6e\x64\x6f\x2c\x69\x3d\x61\x2e\x6e\x6f\x64\
-\x65\x54\x79\x70\x65\x2c\x6a\x3d\x69\x3f\x66\x2e\x63\x61\x63\x68\
-\x65\x3a\x61\x2c\x6b\x3d\x69\x3f\x61\x5b\x68\x5d\x3a\x68\x3b\x69\
-\x66\x28\x21\x6a\x5b\x6b\x5d\x29\x72\x65\x74\x75\x72\x6e\x3b\x69\
-\x66\x28\x62\x29\x7b\x64\x3d\x63\x3f\x6a\x5b\x6b\x5d\x3a\x6a\x5b\
-\x6b\x5d\x2e\x64\x61\x74\x61\x3b\x69\x66\x28\x64\x29\x7b\x66\x2e\
-\x69\x73\x41\x72\x72\x61\x79\x28\x62\x29\x7c\x7c\x28\x62\x20\x69\
-\x6e\x20\x64\x3f\x62\x3d\x5b\x62\x5d\x3a\x28\x62\x3d\x66\x2e\x63\
-\x61\x6d\x65\x6c\x43\x61\x73\x65\x28\x62\x29\x2c\x62\x20\x69\x6e\
-\x20\x64\x3f\x62\x3d\x5b\x62\x5d\x3a\x62\x3d\x62\x2e\x73\x70\x6c\
-\x69\x74\x28\x22\x20\x22\x29\x29\x29\x3b\x66\x6f\x72\x28\x65\x3d\
-\x30\x2c\x67\x3d\x62\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x65\x3c\x67\
-\x3b\x65\x2b\x2b\x29\x64\x65\x6c\x65\x74\x65\x20\x64\x5b\x62\x5b\
-\x65\x5d\x5d\x3b\x69\x66\x28\x21\x28\x63\x3f\x6d\x3a\x66\x2e\x69\
-\x73\x45\x6d\x70\x74\x79\x4f\x62\x6a\x65\x63\x74\x29\x28\x64\x29\
-\x29\x72\x65\x74\x75\x72\x6e\x7d\x7d\x69\x66\x28\x21\x63\x29\x7b\
-\x64\x65\x6c\x65\x74\x65\x20\x6a\x5b\x6b\x5d\x2e\x64\x61\x74\x61\
-\x3b\x69\x66\x28\x21\x6d\x28\x6a\x5b\x6b\x5d\x29\x29\x72\x65\x74\
-\x75\x72\x6e\x7d\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x64\x65\
-\x6c\x65\x74\x65\x45\x78\x70\x61\x6e\x64\x6f\x7c\x7c\x21\x6a\x2e\
-\x73\x65\x74\x49\x6e\x74\x65\x72\x76\x61\x6c\x3f\x64\x65\x6c\x65\
-\x74\x65\x20\x6a\x5b\x6b\x5d\x3a\x6a\x5b\x6b\x5d\x3d\x6e\x75\x6c\
-\x6c\x2c\x69\x26\x26\x28\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\
-\x64\x65\x6c\x65\x74\x65\x45\x78\x70\x61\x6e\x64\x6f\x3f\x64\x65\
-\x6c\x65\x74\x65\x20\x61\x5b\x68\x5d\x3a\x61\x2e\x72\x65\x6d\x6f\
-\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x3f\x61\x2e\x72\x65\
-\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x68\x29\
-\x3a\x61\x5b\x68\x5d\x3d\x6e\x75\x6c\x6c\x29\x7d\x7d\x2c\x5f\x64\
-\x61\x74\x61\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\
-\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x64\x61\x74\
-\x61\x28\x61\x2c\x62\x2c\x63\x2c\x21\x30\x29\x7d\x2c\x61\x63\x63\
-\x65\x70\x74\x44\x61\x74\x61\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x29\x7b\x69\x66\x28\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\
-\x65\x29\x7b\x76\x61\x72\x20\x62\x3d\x66\x2e\x6e\x6f\x44\x61\x74\
-\x61\x5b\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\
-\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x3b\x69\x66\x28\x62\
-\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x21\x3d\x3d\x21\x30\x26\x26\
-\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\
-\x63\x6c\x61\x73\x73\x69\x64\x22\x29\x3d\x3d\x3d\x62\x7d\x72\x65\
-\x74\x75\x72\x6e\x21\x30\x7d\x7d\x29\x2c\x66\x2e\x66\x6e\x2e\x65\
-\x78\x74\x65\x6e\x64\x28\x7b\x64\x61\x74\x61\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x2c\
-\x65\x2c\x67\x2c\x68\x3d\x6e\x75\x6c\x6c\x3b\x69\x66\x28\x74\x79\
-\x70\x65\x6f\x66\x20\x61\x3d\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\
-\x65\x64\x22\x29\x7b\x69\x66\x28\x74\x68\x69\x73\x2e\x6c\x65\x6e\
-\x67\x74\x68\x29\x7b\x68\x3d\x66\x2e\x64\x61\x74\x61\x28\x74\x68\
-\x69\x73\x5b\x30\x5d\x29\x3b\x69\x66\x28\x74\x68\x69\x73\x5b\x30\
-\x5d\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\
-\x21\x66\x2e\x5f\x64\x61\x74\x61\x28\x74\x68\x69\x73\x5b\x30\x5d\
-\x2c\x22\x70\x61\x72\x73\x65\x64\x41\x74\x74\x72\x73\x22\x29\x29\
-\x7b\x65\x3d\x74\x68\x69\x73\x5b\x30\x5d\x2e\x61\x74\x74\x72\x69\
-\x62\x75\x74\x65\x73\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x69\x3d\
-\x30\x2c\x6a\x3d\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x69\x3c\x6a\
-\x3b\x69\x2b\x2b\x29\x67\x3d\x65\x5b\x69\x5d\x2e\x6e\x61\x6d\x65\
-\x2c\x67\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x64\x61\x74\x61\
-\x2d\x22\x29\x3d\x3d\x3d\x30\x26\x26\x28\x67\x3d\x66\x2e\x63\x61\
-\x6d\x65\x6c\x43\x61\x73\x65\x28\x67\x2e\x73\x75\x62\x73\x74\x72\
-\x69\x6e\x67\x28\x35\x29\x29\x2c\x6c\x28\x74\x68\x69\x73\x5b\x30\
-\x5d\x2c\x67\x2c\x68\x5b\x67\x5d\x29\x29\x3b\x66\x2e\x5f\x64\x61\
-\x74\x61\x28\x74\x68\x69\x73\x5b\x30\x5d\x2c\x22\x70\x61\x72\x73\
-\x65\x64\x41\x74\x74\x72\x73\x22\x2c\x21\x30\x29\x7d\x7d\x72\x65\
-\x74\x75\x72\x6e\x20\x68\x7d\x69\x66\x28\x74\x79\x70\x65\x6f\x66\
-\x20\x61\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x72\x65\x74\
-\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x2e\x64\x61\x74\x61\x28\
-\x74\x68\x69\x73\x2c\x61\x29\x7d\x29\x3b\x64\x3d\x61\x2e\x73\x70\
-\x6c\x69\x74\x28\x22\x2e\x22\x29\x2c\x64\x5b\x31\x5d\x3d\x64\x5b\
-\x31\x5d\x3f\x22\x2e\x22\x2b\x64\x5b\x31\x5d\x3a\x22\x22\x3b\x69\
-\x66\x28\x63\x3d\x3d\x3d\x62\x29\x7b\x68\x3d\x74\x68\x69\x73\x2e\
-\x74\x72\x69\x67\x67\x65\x72\x48\x61\x6e\x64\x6c\x65\x72\x28\x22\
-\x67\x65\x74\x44\x61\x74\x61\x22\x2b\x64\x5b\x31\x5d\x2b\x22\x21\
-\x22\x2c\x5b\x64\x5b\x30\x5d\x5d\x29\x2c\x68\x3d\x3d\x3d\x62\x26\
-\x26\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x26\x26\x28\x68\
-\x3d\x66\x2e\x64\x61\x74\x61\x28\x74\x68\x69\x73\x5b\x30\x5d\x2c\
-\x61\x29\x2c\x68\x3d\x6c\x28\x74\x68\x69\x73\x5b\x30\x5d\x2c\x61\
-\x2c\x68\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x68\x3d\x3d\x3d\
-\x62\x26\x26\x64\x5b\x31\x5d\x3f\x74\x68\x69\x73\x2e\x64\x61\x74\
-\x61\x28\x64\x5b\x30\x5d\x29\x3a\x68\x7d\x72\x65\x74\x75\x72\x6e\
-\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x62\x3d\x66\x28\x74\x68\
-\x69\x73\x29\x2c\x65\x3d\x5b\x64\x5b\x30\x5d\x2c\x63\x5d\x3b\x62\
-\x2e\x74\x72\x69\x67\x67\x65\x72\x48\x61\x6e\x64\x6c\x65\x72\x28\
-\x22\x73\x65\x74\x44\x61\x74\x61\x22\x2b\x64\x5b\x31\x5d\x2b\x22\
-\x21\x22\x2c\x65\x29\x2c\x66\x2e\x64\x61\x74\x61\x28\x74\x68\x69\
-\x73\x2c\x61\x2c\x63\x29\x2c\x62\x2e\x74\x72\x69\x67\x67\x65\x72\
-\x48\x61\x6e\x64\x6c\x65\x72\x28\x22\x63\x68\x61\x6e\x67\x65\x44\
-\x61\x74\x61\x22\x2b\x64\x5b\x31\x5d\x2b\x22\x21\x22\x2c\x65\x29\
-\x7d\x29\x7d\x2c\x72\x65\x6d\x6f\x76\x65\x44\x61\x74\x61\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\
-\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x29\x7b\x66\x2e\x72\x65\x6d\x6f\x76\x65\x44\
-\x61\x74\x61\x28\x74\x68\x69\x73\x2c\x61\x29\x7d\x29\x7d\x7d\x29\
-\x2c\x66\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x5f\x6d\x61\x72\x6b\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x61\
-\x26\x26\x28\x62\x3d\x28\x62\x7c\x7c\x22\x66\x78\x22\x29\x2b\x22\
-\x6d\x61\x72\x6b\x22\x2c\x66\x2e\x5f\x64\x61\x74\x61\x28\x61\x2c\
-\x62\x2c\x28\x66\x2e\x5f\x64\x61\x74\x61\x28\x61\x2c\x62\x29\x7c\
-\x7c\x30\x29\x2b\x31\x29\x29\x7d\x2c\x5f\x75\x6e\x6d\x61\x72\x6b\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\
-\x7b\x61\x21\x3d\x3d\x21\x30\x26\x26\x28\x63\x3d\x62\x2c\x62\x3d\
-\x61\x2c\x61\x3d\x21\x31\x29\x3b\x69\x66\x28\x62\x29\x7b\x63\x3d\
-\x63\x7c\x7c\x22\x66\x78\x22\x3b\x76\x61\x72\x20\x64\x3d\x63\x2b\
-\x22\x6d\x61\x72\x6b\x22\x2c\x65\x3d\x61\x3f\x30\x3a\x28\x66\x2e\
-\x5f\x64\x61\x74\x61\x28\x62\x2c\x64\x29\x7c\x7c\x31\x29\x2d\x31\
-\x3b\x65\x3f\x66\x2e\x5f\x64\x61\x74\x61\x28\x62\x2c\x64\x2c\x65\
-\x29\x3a\x28\x66\x2e\x72\x65\x6d\x6f\x76\x65\x44\x61\x74\x61\x28\
-\x62\x2c\x64\x2c\x21\x30\x29\x2c\x6e\x28\x62\x2c\x63\x2c\x22\x6d\
-\x61\x72\x6b\x22\x29\x29\x7d\x7d\x2c\x71\x75\x65\x75\x65\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\
-\x61\x72\x20\x64\x3b\x69\x66\x28\x61\x29\x7b\x62\x3d\x28\x62\x7c\
-\x7c\x22\x66\x78\x22\x29\x2b\x22\x71\x75\x65\x75\x65\x22\x2c\x64\
-\x3d\x66\x2e\x5f\x64\x61\x74\x61\x28\x61\x2c\x62\x29\x2c\x63\x26\
-\x26\x28\x21\x64\x7c\x7c\x66\x2e\x69\x73\x41\x72\x72\x61\x79\x28\
-\x63\x29\x3f\x64\x3d\x66\x2e\x5f\x64\x61\x74\x61\x28\x61\x2c\x62\
-\x2c\x66\x2e\x6d\x61\x6b\x65\x41\x72\x72\x61\x79\x28\x63\x29\x29\
-\x3a\x64\x2e\x70\x75\x73\x68\x28\x63\x29\x29\x3b\x72\x65\x74\x75\
-\x72\x6e\x20\x64\x7c\x7c\x5b\x5d\x7d\x7d\x2c\x64\x65\x71\x75\x65\
-\x75\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\
-\x7b\x62\x3d\x62\x7c\x7c\x22\x66\x78\x22\x3b\x76\x61\x72\x20\x63\
-\x3d\x66\x2e\x71\x75\x65\x75\x65\x28\x61\x2c\x62\x29\x2c\x64\x3d\
-\x63\x2e\x73\x68\x69\x66\x74\x28\x29\x2c\x65\x3d\x7b\x7d\x3b\x64\
-\x3d\x3d\x3d\x22\x69\x6e\x70\x72\x6f\x67\x72\x65\x73\x73\x22\x26\
-\x26\x28\x64\x3d\x63\x2e\x73\x68\x69\x66\x74\x28\x29\x29\x2c\x64\
-\x26\x26\x28\x62\x3d\x3d\x3d\x22\x66\x78\x22\x26\x26\x63\x2e\x75\
-\x6e\x73\x68\x69\x66\x74\x28\x22\x69\x6e\x70\x72\x6f\x67\x72\x65\
-\x73\x73\x22\x29\x2c\x66\x2e\x5f\x64\x61\x74\x61\x28\x61\x2c\x62\
-\x2b\x22\x2e\x72\x75\x6e\x22\x2c\x65\x29\x2c\x64\x2e\x63\x61\x6c\
-\x6c\x28\x61\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\
-\x2e\x64\x65\x71\x75\x65\x75\x65\x28\x61\x2c\x62\x29\x7d\x2c\x65\
-\x29\x29\x2c\x63\x2e\x6c\x65\x6e\x67\x74\x68\x7c\x7c\x28\x66\x2e\
-\x72\x65\x6d\x6f\x76\x65\x44\x61\x74\x61\x28\x61\x2c\x62\x2b\x22\
-\x71\x75\x65\x75\x65\x20\x22\x2b\x62\x2b\x22\x2e\x72\x75\x6e\x22\
-\x2c\x21\x30\x29\x2c\x6e\x28\x61\x2c\x62\x2c\x22\x71\x75\x65\x75\
-\x65\x22\x29\x29\x7d\x7d\x29\x2c\x66\x2e\x66\x6e\x2e\x65\x78\x74\
-\x65\x6e\x64\x28\x7b\x71\x75\x65\x75\x65\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x74\x79\x70\x65\x6f\x66\x20\
-\x61\x21\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x63\x3d\
-\x61\x2c\x61\x3d\x22\x66\x78\x22\x29\x3b\x69\x66\x28\x63\x3d\x3d\
-\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x71\x75\x65\x75\
-\x65\x28\x74\x68\x69\x73\x5b\x30\x5d\x2c\x61\x29\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x62\x3d\x66\
-\x2e\x71\x75\x65\x75\x65\x28\x74\x68\x69\x73\x2c\x61\x2c\x63\x29\
-\x3b\x61\x3d\x3d\x3d\x22\x66\x78\x22\x26\x26\x62\x5b\x30\x5d\x21\
-\x3d\x3d\x22\x69\x6e\x70\x72\x6f\x67\x72\x65\x73\x73\x22\x26\x26\
-\x66\x2e\x64\x65\x71\x75\x65\x75\x65\x28\x74\x68\x69\x73\x2c\x61\
-\x29\x7d\x29\x7d\x2c\x64\x65\x71\x75\x65\x75\x65\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\
-\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x29\x7b\x66\x2e\x64\x65\x71\x75\x65\x75\x65\x28\x74\
-\x68\x69\x73\x2c\x61\x29\x7d\x29\x7d\x2c\x64\x65\x6c\x61\x79\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x61\x3d\
-\x66\x2e\x66\x78\x3f\x66\x2e\x66\x78\x2e\x73\x70\x65\x65\x64\x73\
-\x5b\x61\x5d\x7c\x7c\x61\x3a\x61\x2c\x62\x3d\x62\x7c\x7c\x22\x66\
-\x78\x22\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x71\
-\x75\x65\x75\x65\x28\x62\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x73\x65\x74\x54\x69\
-\x6d\x65\x6f\x75\x74\x28\x62\x2c\x61\x29\x3b\x63\x2e\x73\x74\x6f\
-\x70\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x63\x6c\x65\
-\x61\x72\x54\x69\x6d\x65\x6f\x75\x74\x28\x64\x29\x7d\x7d\x29\x7d\
-\x2c\x63\x6c\x65\x61\x72\x51\x75\x65\x75\x65\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\
-\x68\x69\x73\x2e\x71\x75\x65\x75\x65\x28\x61\x7c\x7c\x22\x66\x78\
-\x22\x2c\x5b\x5d\x29\x7d\x2c\x70\x72\x6f\x6d\x69\x73\x65\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x20\x6d\x28\x29\x7b\x2d\x2d\x68\x7c\x7c\x64\
-\x2e\x72\x65\x73\x6f\x6c\x76\x65\x57\x69\x74\x68\x28\x65\x2c\x5b\
-\x65\x5d\x29\x7d\x74\x79\x70\x65\x6f\x66\x20\x61\x21\x3d\x22\x73\
-\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x63\x3d\x61\x2c\x61\x3d\x62\
-\x29\x2c\x61\x3d\x61\x7c\x7c\x22\x66\x78\x22\x3b\x76\x61\x72\x20\
-\x64\x3d\x66\x2e\x44\x65\x66\x65\x72\x72\x65\x64\x28\x29\x2c\x65\
-\x3d\x74\x68\x69\x73\x2c\x67\x3d\x65\x2e\x6c\x65\x6e\x67\x74\x68\
-\x2c\x68\x3d\x31\x2c\x69\x3d\x61\x2b\x22\x64\x65\x66\x65\x72\x22\
-\x2c\x6a\x3d\x61\x2b\x22\x71\x75\x65\x75\x65\x22\x2c\x6b\x3d\x61\
-\x2b\x22\x6d\x61\x72\x6b\x22\x2c\x6c\x3b\x77\x68\x69\x6c\x65\x28\
-\x67\x2d\x2d\x29\x69\x66\x28\x6c\x3d\x66\x2e\x64\x61\x74\x61\x28\
-\x65\x5b\x67\x5d\x2c\x69\x2c\x62\x2c\x21\x30\x29\x7c\x7c\x28\x66\
-\x2e\x64\x61\x74\x61\x28\x65\x5b\x67\x5d\x2c\x6a\x2c\x62\x2c\x21\
-\x30\x29\x7c\x7c\x66\x2e\x64\x61\x74\x61\x28\x65\x5b\x67\x5d\x2c\
-\x6b\x2c\x62\x2c\x21\x30\x29\x29\x26\x26\x66\x2e\x64\x61\x74\x61\
-\x28\x65\x5b\x67\x5d\x2c\x69\x2c\x66\x2e\x43\x61\x6c\x6c\x62\x61\
-\x63\x6b\x73\x28\x22\x6f\x6e\x63\x65\x20\x6d\x65\x6d\x6f\x72\x79\
-\x22\x29\x2c\x21\x30\x29\x29\x68\x2b\x2b\x2c\x6c\x2e\x61\x64\x64\
-\x28\x6d\x29\x3b\x6d\x28\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\
-\x2e\x70\x72\x6f\x6d\x69\x73\x65\x28\x29\x7d\x7d\x29\x3b\x76\x61\
-\x72\x20\x6f\x3d\x2f\x5b\x5c\x6e\x5c\x74\x5c\x72\x5d\x2f\x67\x2c\
-\x70\x3d\x2f\x5c\x73\x2b\x2f\x2c\x71\x3d\x2f\x5c\x72\x2f\x67\x2c\
-\x72\x3d\x2f\x5e\x28\x3f\x3a\x62\x75\x74\x74\x6f\x6e\x7c\x69\x6e\
-\x70\x75\x74\x29\x24\x2f\x69\x2c\x73\x3d\x2f\x5e\x28\x3f\x3a\x62\
-\x75\x74\x74\x6f\x6e\x7c\x69\x6e\x70\x75\x74\x7c\x6f\x62\x6a\x65\
-\x63\x74\x7c\x73\x65\x6c\x65\x63\x74\x7c\x74\x65\x78\x74\x61\x72\
-\x65\x61\x29\x24\x2f\x69\x2c\x74\x3d\x2f\x5e\x61\x28\x3f\x3a\x72\
-\x65\x61\x29\x3f\x24\x2f\x69\x2c\x75\x3d\x2f\x5e\x28\x3f\x3a\x61\
-\x75\x74\x6f\x66\x6f\x63\x75\x73\x7c\x61\x75\x74\x6f\x70\x6c\x61\
-\x79\x7c\x61\x73\x79\x6e\x63\x7c\x63\x68\x65\x63\x6b\x65\x64\x7c\
-\x63\x6f\x6e\x74\x72\x6f\x6c\x73\x7c\x64\x65\x66\x65\x72\x7c\x64\
-\x69\x73\x61\x62\x6c\x65\x64\x7c\x68\x69\x64\x64\x65\x6e\x7c\x6c\
-\x6f\x6f\x70\x7c\x6d\x75\x6c\x74\x69\x70\x6c\x65\x7c\x6f\x70\x65\
-\x6e\x7c\x72\x65\x61\x64\x6f\x6e\x6c\x79\x7c\x72\x65\x71\x75\x69\
-\x72\x65\x64\x7c\x73\x63\x6f\x70\x65\x64\x7c\x73\x65\x6c\x65\x63\
-\x74\x65\x64\x29\x24\x2f\x69\x2c\x76\x3d\x66\x2e\x73\x75\x70\x70\
-\x6f\x72\x74\x2e\x67\x65\x74\x53\x65\x74\x41\x74\x74\x72\x69\x62\
-\x75\x74\x65\x2c\x77\x2c\x78\x2c\x79\x3b\x66\x2e\x66\x6e\x2e\x65\
-\x78\x74\x65\x6e\x64\x28\x7b\x61\x74\x74\x72\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\
-\x20\x66\x2e\x61\x63\x63\x65\x73\x73\x28\x74\x68\x69\x73\x2c\x61\
-\x2c\x62\x2c\x21\x30\x2c\x66\x2e\x61\x74\x74\x72\x29\x7d\x2c\x72\
-\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\
-\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x29\x7b\x66\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x28\x74\
-\x68\x69\x73\x2c\x61\x29\x7d\x29\x7d\x2c\x70\x72\x6f\x70\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\
-\x75\x72\x6e\x20\x66\x2e\x61\x63\x63\x65\x73\x73\x28\x74\x68\x69\
-\x73\x2c\x61\x2c\x62\x2c\x21\x30\x2c\x66\x2e\x70\x72\x6f\x70\x29\
-\x7d\x2c\x72\x65\x6d\x6f\x76\x65\x50\x72\x6f\x70\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x61\x3d\x66\x2e\x70\x72\x6f\
-\x70\x46\x69\x78\x5b\x61\x5d\x7c\x7c\x61\x3b\x72\x65\x74\x75\x72\
-\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x29\x7b\x74\x72\x79\x7b\x74\x68\x69\x73\x5b\
-\x61\x5d\x3d\x62\x2c\x64\x65\x6c\x65\x74\x65\x20\x74\x68\x69\x73\
-\x5b\x61\x5d\x7d\x63\x61\x74\x63\x68\x28\x63\x29\x7b\x7d\x7d\x29\
-\x7d\x2c\x61\x64\x64\x43\x6c\x61\x73\x73\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x2c\x63\x2c\x64\
-\x2c\x65\x2c\x67\x2c\x68\x2c\x69\x3b\x69\x66\x28\x66\x2e\x69\x73\
-\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\x75\
-\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x66\x28\x74\x68\x69\x73\x29\
-\x2e\x61\x64\x64\x43\x6c\x61\x73\x73\x28\x61\x2e\x63\x61\x6c\x6c\
-\x28\x74\x68\x69\x73\x2c\x62\x2c\x74\x68\x69\x73\x2e\x63\x6c\x61\
-\x73\x73\x4e\x61\x6d\x65\x29\x29\x7d\x29\x3b\x69\x66\x28\x61\x26\
-\x26\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x22\x73\x74\x72\x69\
-\x6e\x67\x22\x29\x7b\x62\x3d\x61\x2e\x73\x70\x6c\x69\x74\x28\x70\
-\x29\x3b\x66\x6f\x72\x28\x63\x3d\x30\x2c\x64\x3d\x74\x68\x69\x73\
-\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x63\x3c\x64\x3b\x63\x2b\x2b\x29\
-\x7b\x65\x3d\x74\x68\x69\x73\x5b\x63\x5d\x3b\x69\x66\x28\x65\x2e\
-\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x69\x66\x28\
-\x21\x65\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x26\x26\x62\x2e\
-\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x29\x65\x2e\x63\x6c\x61\
-\x73\x73\x4e\x61\x6d\x65\x3d\x61\x3b\x65\x6c\x73\x65\x7b\x67\x3d\
-\x22\x20\x22\x2b\x65\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x2b\
-\x22\x20\x22\x3b\x66\x6f\x72\x28\x68\x3d\x30\x2c\x69\x3d\x62\x2e\
-\x6c\x65\x6e\x67\x74\x68\x3b\x68\x3c\x69\x3b\x68\x2b\x2b\x29\x7e\
-\x67\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x20\x22\x2b\x62\x5b\
-\x68\x5d\x2b\x22\x20\x22\x29\x7c\x7c\x28\x67\x2b\x3d\x62\x5b\x68\
-\x5d\x2b\x22\x20\x22\x29\x3b\x65\x2e\x63\x6c\x61\x73\x73\x4e\x61\
-\x6d\x65\x3d\x66\x2e\x74\x72\x69\x6d\x28\x67\x29\x7d\x7d\x7d\x72\
-\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x72\x65\x6d\x6f\
-\x76\x65\x43\x6c\x61\x73\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x29\x7b\x76\x61\x72\x20\x63\x2c\x64\x2c\x65\x2c\x67\x2c\
-\x68\x2c\x69\x2c\x6a\x3b\x69\x66\x28\x66\x2e\x69\x73\x46\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\
-\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x62\x29\x7b\x66\x28\x74\x68\x69\x73\x29\x2e\x72\x65\
-\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x28\x61\x2e\x63\x61\x6c\x6c\
-\x28\x74\x68\x69\x73\x2c\x62\x2c\x74\x68\x69\x73\x2e\x63\x6c\x61\
-\x73\x73\x4e\x61\x6d\x65\x29\x29\x7d\x29\x3b\x69\x66\x28\x61\x26\
-\x26\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x22\x73\x74\x72\x69\
-\x6e\x67\x22\x7c\x7c\x61\x3d\x3d\x3d\x62\x29\x7b\x63\x3d\x28\x61\
-\x7c\x7c\x22\x22\x29\x2e\x73\x70\x6c\x69\x74\x28\x70\x29\x3b\x66\
-\x6f\x72\x28\x64\x3d\x30\x2c\x65\x3d\x74\x68\x69\x73\x2e\x6c\x65\
-\x6e\x67\x74\x68\x3b\x64\x3c\x65\x3b\x64\x2b\x2b\x29\x7b\x67\x3d\
-\x74\x68\x69\x73\x5b\x64\x5d\x3b\x69\x66\x28\x67\x2e\x6e\x6f\x64\
-\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x67\x2e\x63\x6c\x61\
-\x73\x73\x4e\x61\x6d\x65\x29\x69\x66\x28\x61\x29\x7b\x68\x3d\x28\
-\x22\x20\x22\x2b\x67\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x2b\
-\x22\x20\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6f\x2c\x22\
-\x20\x22\x29\x3b\x66\x6f\x72\x28\x69\x3d\x30\x2c\x6a\x3d\x63\x2e\
-\x6c\x65\x6e\x67\x74\x68\x3b\x69\x3c\x6a\x3b\x69\x2b\x2b\x29\x68\
-\x3d\x68\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x22\x20\x22\x2b\x63\
-\x5b\x69\x5d\x2b\x22\x20\x22\x2c\x22\x20\x22\x29\x3b\x67\x2e\x63\
-\x6c\x61\x73\x73\x4e\x61\x6d\x65\x3d\x66\x2e\x74\x72\x69\x6d\x28\
-\x68\x29\x7d\x65\x6c\x73\x65\x20\x67\x2e\x63\x6c\x61\x73\x73\x4e\
-\x61\x6d\x65\x3d\x22\x22\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\
-\x68\x69\x73\x7d\x2c\x74\x6f\x67\x67\x6c\x65\x43\x6c\x61\x73\x73\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\
-\x61\x72\x20\x63\x3d\x74\x79\x70\x65\x6f\x66\x20\x61\x2c\x64\x3d\
-\x74\x79\x70\x65\x6f\x66\x20\x62\x3d\x3d\x22\x62\x6f\x6f\x6c\x65\
-\x61\x6e\x22\x3b\x69\x66\x28\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\
-\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x63\x29\x7b\x66\x28\x74\x68\x69\x73\x29\x2e\x74\x6f\x67\x67\
-\x6c\x65\x43\x6c\x61\x73\x73\x28\x61\x2e\x63\x61\x6c\x6c\x28\x74\
-\x68\x69\x73\x2c\x63\x2c\x74\x68\x69\x73\x2e\x63\x6c\x61\x73\x73\
-\x4e\x61\x6d\x65\x2c\x62\x29\x2c\x62\x29\x7d\x29\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x63\x3d\x3d\x3d\
-\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x7b\x76\x61\x72\x20\x65\x2c\
-\x67\x3d\x30\x2c\x68\x3d\x66\x28\x74\x68\x69\x73\x29\x2c\x69\x3d\
-\x62\x2c\x6a\x3d\x61\x2e\x73\x70\x6c\x69\x74\x28\x70\x29\x3b\x77\
-\x68\x69\x6c\x65\x28\x65\x3d\x6a\x5b\x67\x2b\x2b\x5d\x29\x69\x3d\
-\x64\x3f\x69\x3a\x21\x68\x2e\x68\x61\x73\x43\x6c\x61\x73\x73\x28\
-\x65\x29\x2c\x68\x5b\x69\x3f\x22\x61\x64\x64\x43\x6c\x61\x73\x73\
-\x22\x3a\x22\x72\x65\x6d\x6f\x76\x65\x43\x6c\x61\x73\x73\x22\x5d\
-\x28\x65\x29\x7d\x65\x6c\x73\x65\x20\x69\x66\x28\x63\x3d\x3d\x3d\
-\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x7c\x7c\x63\x3d\x3d\
-\x3d\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x29\x74\x68\x69\x73\x2e\
-\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x26\x26\x66\x2e\x5f\x64\x61\
-\x74\x61\x28\x74\x68\x69\x73\x2c\x22\x5f\x5f\x63\x6c\x61\x73\x73\
-\x4e\x61\x6d\x65\x5f\x5f\x22\x2c\x74\x68\x69\x73\x2e\x63\x6c\x61\
-\x73\x73\x4e\x61\x6d\x65\x29\x2c\x74\x68\x69\x73\x2e\x63\x6c\x61\
-\x73\x73\x4e\x61\x6d\x65\x3d\x74\x68\x69\x73\x2e\x63\x6c\x61\x73\
-\x73\x4e\x61\x6d\x65\x7c\x7c\x61\x3d\x3d\x3d\x21\x31\x3f\x22\x22\
-\x3a\x66\x2e\x5f\x64\x61\x74\x61\x28\x74\x68\x69\x73\x2c\x22\x5f\
-\x5f\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x5f\x5f\x22\x29\x7c\x7c\
-\x22\x22\x7d\x29\x7d\x2c\x68\x61\x73\x43\x6c\x61\x73\x73\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\
-\x3d\x22\x20\x22\x2b\x61\x2b\x22\x20\x22\x2c\x63\x3d\x30\x2c\x64\
-\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x66\x6f\x72\
-\x28\x3b\x63\x3c\x64\x3b\x63\x2b\x2b\x29\x69\x66\x28\x74\x68\x69\
-\x73\x5b\x63\x5d\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\
-\x31\x26\x26\x28\x22\x20\x22\x2b\x74\x68\x69\x73\x5b\x63\x5d\x2e\
-\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\x2b\x22\x20\x22\x29\x2e\x72\
-\x65\x70\x6c\x61\x63\x65\x28\x6f\x2c\x22\x20\x22\x29\x2e\x69\x6e\
-\x64\x65\x78\x4f\x66\x28\x62\x29\x3e\x2d\x31\x29\x72\x65\x74\x75\
-\x72\x6e\x21\x30\x3b\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\x2c\x76\
-\x61\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\
-\x61\x72\x20\x63\x2c\x64\x2c\x65\x2c\x67\x3d\x74\x68\x69\x73\x5b\
-\x30\x5d\x3b\x7b\x69\x66\x28\x21\x21\x61\x72\x67\x75\x6d\x65\x6e\
-\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\x7b\x65\x3d\x66\x2e\x69\
-\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x64\x29\x7b\x76\x61\x72\x20\x67\x3d\
-\x66\x28\x74\x68\x69\x73\x29\x2c\x68\x3b\x69\x66\x28\x74\x68\x69\
-\x73\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x7b\
-\x65\x3f\x68\x3d\x61\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\
-\x64\x2c\x67\x2e\x76\x61\x6c\x28\x29\x29\x3a\x68\x3d\x61\x2c\x68\
-\x3d\x3d\x6e\x75\x6c\x6c\x3f\x68\x3d\x22\x22\x3a\x74\x79\x70\x65\
-\x6f\x66\x20\x68\x3d\x3d\x22\x6e\x75\x6d\x62\x65\x72\x22\x3f\x68\
-\x2b\x3d\x22\x22\x3a\x66\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x68\
-\x29\x26\x26\x28\x68\x3d\x66\x2e\x6d\x61\x70\x28\x68\x2c\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\
-\x20\x61\x3d\x3d\x6e\x75\x6c\x6c\x3f\x22\x22\x3a\x61\x2b\x22\x22\
-\x7d\x29\x29\x2c\x63\x3d\x66\x2e\x76\x61\x6c\x48\x6f\x6f\x6b\x73\
-\x5b\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\
-\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x7c\x7c\x66\
-\x2e\x76\x61\x6c\x48\x6f\x6f\x6b\x73\x5b\x74\x68\x69\x73\x2e\x74\
-\x79\x70\x65\x5d\x3b\x69\x66\x28\x21\x63\x7c\x7c\x21\x28\x22\x73\
-\x65\x74\x22\x69\x6e\x20\x63\x29\x7c\x7c\x63\x2e\x73\x65\x74\x28\
-\x74\x68\x69\x73\x2c\x68\x2c\x22\x76\x61\x6c\x75\x65\x22\x29\x3d\
-\x3d\x3d\x62\x29\x74\x68\x69\x73\x2e\x76\x61\x6c\x75\x65\x3d\x68\
-\x7d\x7d\x29\x7d\x69\x66\x28\x67\x29\x7b\x63\x3d\x66\x2e\x76\x61\
-\x6c\x48\x6f\x6f\x6b\x73\x5b\x67\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\
-\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\
-\x7c\x7c\x66\x2e\x76\x61\x6c\x48\x6f\x6f\x6b\x73\x5b\x67\x2e\x74\
-\x79\x70\x65\x5d\x3b\x69\x66\x28\x63\x26\x26\x22\x67\x65\x74\x22\
-\x69\x6e\x20\x63\x26\x26\x28\x64\x3d\x63\x2e\x67\x65\x74\x28\x67\
-\x2c\x22\x76\x61\x6c\x75\x65\x22\x29\x29\x21\x3d\x3d\x62\x29\x72\
-\x65\x74\x75\x72\x6e\x20\x64\x3b\x64\x3d\x67\x2e\x76\x61\x6c\x75\
-\x65\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\
-\x64\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x3f\x64\x2e\x72\x65\
-\x70\x6c\x61\x63\x65\x28\x71\x2c\x22\x22\x29\x3a\x64\x3d\x3d\x6e\
-\x75\x6c\x6c\x3f\x22\x22\x3a\x64\x7d\x7d\x7d\x7d\x29\x2c\x66\x2e\
-\x65\x78\x74\x65\x6e\x64\x28\x7b\x76\x61\x6c\x48\x6f\x6f\x6b\x73\
-\x3a\x7b\x6f\x70\x74\x69\x6f\x6e\x3a\x7b\x67\x65\x74\x3a\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\
-\x61\x2e\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x2e\x76\x61\x6c\
-\x75\x65\x3b\x72\x65\x74\x75\x72\x6e\x21\x62\x7c\x7c\x62\x2e\x73\
-\x70\x65\x63\x69\x66\x69\x65\x64\x3f\x61\x2e\x76\x61\x6c\x75\x65\
-\x3a\x61\x2e\x74\x65\x78\x74\x7d\x7d\x2c\x73\x65\x6c\x65\x63\x74\
-\x3a\x7b\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x29\x7b\x76\x61\x72\x20\x62\x2c\x63\x2c\x64\x2c\x65\x2c\x67\x3d\
-\x61\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\x65\x78\x2c\
-\x68\x3d\x5b\x5d\x2c\x69\x3d\x61\x2e\x6f\x70\x74\x69\x6f\x6e\x73\
-\x2c\x6a\x3d\x61\x2e\x74\x79\x70\x65\x3d\x3d\x3d\x22\x73\x65\x6c\
-\x65\x63\x74\x2d\x6f\x6e\x65\x22\x3b\x69\x66\x28\x67\x3c\x30\x29\
-\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x63\x3d\x6a\x3f\
-\x67\x3a\x30\x2c\x64\x3d\x6a\x3f\x67\x2b\x31\x3a\x69\x2e\x6c\x65\
-\x6e\x67\x74\x68\x3b\x66\x6f\x72\x28\x3b\x63\x3c\x64\x3b\x63\x2b\
-\x2b\x29\x7b\x65\x3d\x69\x5b\x63\x5d\x3b\x69\x66\x28\x65\x2e\x73\
-\x65\x6c\x65\x63\x74\x65\x64\x26\x26\x28\x66\x2e\x73\x75\x70\x70\
-\x6f\x72\x74\x2e\x6f\x70\x74\x44\x69\x73\x61\x62\x6c\x65\x64\x3f\
-\x21\x65\x2e\x64\x69\x73\x61\x62\x6c\x65\x64\x3a\x65\x2e\x67\x65\
-\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x64\x69\x73\x61\
-\x62\x6c\x65\x64\x22\x29\x3d\x3d\x3d\x6e\x75\x6c\x6c\x29\x26\x26\
-\x28\x21\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x64\
-\x69\x73\x61\x62\x6c\x65\x64\x7c\x7c\x21\x66\x2e\x6e\x6f\x64\x65\
-\x4e\x61\x6d\x65\x28\x65\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\
-\x65\x2c\x22\x6f\x70\x74\x67\x72\x6f\x75\x70\x22\x29\x29\x29\x7b\
-\x62\x3d\x66\x28\x65\x29\x2e\x76\x61\x6c\x28\x29\x3b\x69\x66\x28\
-\x6a\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x3b\x68\x2e\x70\x75\x73\
-\x68\x28\x62\x29\x7d\x7d\x69\x66\x28\x6a\x26\x26\x21\x68\x2e\x6c\
-\x65\x6e\x67\x74\x68\x26\x26\x69\x2e\x6c\x65\x6e\x67\x74\x68\x29\
-\x72\x65\x74\x75\x72\x6e\x20\x66\x28\x69\x5b\x67\x5d\x29\x2e\x76\
-\x61\x6c\x28\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x68\x7d\x2c\x73\
-\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\
-\x7b\x76\x61\x72\x20\x63\x3d\x66\x2e\x6d\x61\x6b\x65\x41\x72\x72\
-\x61\x79\x28\x62\x29\x3b\x66\x28\x61\x29\x2e\x66\x69\x6e\x64\x28\
-\x22\x6f\x70\x74\x69\x6f\x6e\x22\x29\x2e\x65\x61\x63\x68\x28\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x74\x68\x69\x73\x2e\x73\
-\x65\x6c\x65\x63\x74\x65\x64\x3d\x66\x2e\x69\x6e\x41\x72\x72\x61\
-\x79\x28\x66\x28\x74\x68\x69\x73\x29\x2e\x76\x61\x6c\x28\x29\x2c\
-\x63\x29\x3e\x3d\x30\x7d\x29\x2c\x63\x2e\x6c\x65\x6e\x67\x74\x68\
-\x7c\x7c\x28\x61\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\
-\x65\x78\x3d\x2d\x31\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\
-\x7d\x7d\x2c\x61\x74\x74\x72\x46\x6e\x3a\x7b\x76\x61\x6c\x3a\x21\
-\x30\x2c\x63\x73\x73\x3a\x21\x30\x2c\x68\x74\x6d\x6c\x3a\x21\x30\
-\x2c\x74\x65\x78\x74\x3a\x21\x30\x2c\x64\x61\x74\x61\x3a\x21\x30\
-\x2c\x77\x69\x64\x74\x68\x3a\x21\x30\x2c\x68\x65\x69\x67\x68\x74\
-\x3a\x21\x30\x2c\x6f\x66\x66\x73\x65\x74\x3a\x21\x30\x7d\x2c\x61\
-\x74\x74\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\
-\x2c\x64\x2c\x65\x29\x7b\x76\x61\x72\x20\x67\x2c\x68\x2c\x69\x2c\
-\x6a\x3d\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3b\x69\x66\x28\
-\x21\x21\x61\x26\x26\x6a\x21\x3d\x3d\x33\x26\x26\x6a\x21\x3d\x3d\
-\x38\x26\x26\x6a\x21\x3d\x3d\x32\x29\x7b\x69\x66\x28\x65\x26\x26\
-\x63\x20\x69\x6e\x20\x66\x2e\x61\x74\x74\x72\x46\x6e\x29\x72\x65\
-\x74\x75\x72\x6e\x20\x66\x28\x61\x29\x5b\x63\x5d\x28\x64\x29\x3b\
-\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x2e\x67\x65\x74\x41\
-\x74\x74\x72\x69\x62\x75\x74\x65\x3d\x3d\x22\x75\x6e\x64\x65\x66\
-\x69\x6e\x65\x64\x22\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x70\
-\x72\x6f\x70\x28\x61\x2c\x63\x2c\x64\x29\x3b\x69\x3d\x6a\x21\x3d\
-\x3d\x31\x7c\x7c\x21\x66\x2e\x69\x73\x58\x4d\x4c\x44\x6f\x63\x28\
-\x61\x29\x2c\x69\x26\x26\x28\x63\x3d\x63\x2e\x74\x6f\x4c\x6f\x77\
-\x65\x72\x43\x61\x73\x65\x28\x29\x2c\x68\x3d\x66\x2e\x61\x74\x74\
-\x72\x48\x6f\x6f\x6b\x73\x5b\x63\x5d\x7c\x7c\x28\x75\x2e\x74\x65\
-\x73\x74\x28\x63\x29\x3f\x78\x3a\x77\x29\x29\x3b\x69\x66\x28\x64\
-\x21\x3d\x3d\x62\x29\x7b\x69\x66\x28\x64\x3d\x3d\x3d\x6e\x75\x6c\
-\x6c\x29\x7b\x66\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x28\
-\x61\x2c\x63\x29\x3b\x72\x65\x74\x75\x72\x6e\x7d\x69\x66\x28\x68\
-\x26\x26\x22\x73\x65\x74\x22\x69\x6e\x20\x68\x26\x26\x69\x26\x26\
-\x28\x67\x3d\x68\x2e\x73\x65\x74\x28\x61\x2c\x64\x2c\x63\x29\x29\
-\x21\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x67\x3b\x61\x2e\
-\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x63\x2c\x22\
-\x22\x2b\x64\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x7d\x69\x66\
-\x28\x68\x26\x26\x22\x67\x65\x74\x22\x69\x6e\x20\x68\x26\x26\x69\
-\x26\x26\x28\x67\x3d\x68\x2e\x67\x65\x74\x28\x61\x2c\x63\x29\x29\
-\x21\x3d\x3d\x6e\x75\x6c\x6c\x29\x72\x65\x74\x75\x72\x6e\x20\x67\
-\x3b\x67\x3d\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\
-\x65\x28\x63\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x67\x3d\x3d\x3d\
-\x6e\x75\x6c\x6c\x3f\x62\x3a\x67\x7d\x7d\x2c\x72\x65\x6d\x6f\x76\
-\x65\x41\x74\x74\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x2c\x64\x2c\x65\x2c\x67\x2c\
-\x68\x3d\x30\x3b\x69\x66\x28\x62\x26\x26\x61\x2e\x6e\x6f\x64\x65\
-\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x7b\x64\x3d\x62\x2e\x74\x6f\
-\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2e\x73\x70\x6c\x69\
-\x74\x28\x70\x29\x2c\x67\x3d\x64\x2e\x6c\x65\x6e\x67\x74\x68\x3b\
-\x66\x6f\x72\x28\x3b\x68\x3c\x67\x3b\x68\x2b\x2b\x29\x65\x3d\x64\
-\x5b\x68\x5d\x2c\x65\x26\x26\x28\x63\x3d\x66\x2e\x70\x72\x6f\x70\
-\x46\x69\x78\x5b\x65\x5d\x7c\x7c\x65\x2c\x66\x2e\x61\x74\x74\x72\
-\x28\x61\x2c\x65\x2c\x22\x22\x29\x2c\x61\x2e\x72\x65\x6d\x6f\x76\
-\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x76\x3f\x65\x3a\x63\
-\x29\x2c\x75\x2e\x74\x65\x73\x74\x28\x65\x29\x26\x26\x63\x20\x69\
-\x6e\x20\x61\x26\x26\x28\x61\x5b\x63\x5d\x3d\x21\x31\x29\x29\x7d\
-\x7d\x2c\x61\x74\x74\x72\x48\x6f\x6f\x6b\x73\x3a\x7b\x74\x79\x70\
-\x65\x3a\x7b\x73\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x2c\x62\x29\x7b\x69\x66\x28\x72\x2e\x74\x65\x73\x74\x28\x61\
-\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x26\x26\x61\x2e\x70\x61\
-\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x66\x2e\x65\x72\x72\x6f\x72\
-\x28\x22\x74\x79\x70\x65\x20\x70\x72\x6f\x70\x65\x72\x74\x79\x20\
-\x63\x61\x6e\x27\x74\x20\x62\x65\x20\x63\x68\x61\x6e\x67\x65\x64\
-\x22\x29\x3b\x65\x6c\x73\x65\x20\x69\x66\x28\x21\x66\x2e\x73\x75\
-\x70\x70\x6f\x72\x74\x2e\x72\x61\x64\x69\x6f\x56\x61\x6c\x75\x65\
-\x26\x26\x62\x3d\x3d\x3d\x22\x72\x61\x64\x69\x6f\x22\x26\x26\x66\
-\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x61\x2c\x22\x69\x6e\x70\
-\x75\x74\x22\x29\x29\x7b\x76\x61\x72\x20\x63\x3d\x61\x2e\x76\x61\
-\x6c\x75\x65\x3b\x61\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\
-\x74\x65\x28\x22\x74\x79\x70\x65\x22\x2c\x62\x29\x2c\x63\x26\x26\
-\x28\x61\x2e\x76\x61\x6c\x75\x65\x3d\x63\x29\x3b\x72\x65\x74\x75\
-\x72\x6e\x20\x62\x7d\x7d\x7d\x2c\x76\x61\x6c\x75\x65\x3a\x7b\x67\
-\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\
-\x7b\x69\x66\x28\x77\x26\x26\x66\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\
-\x65\x28\x61\x2c\x22\x62\x75\x74\x74\x6f\x6e\x22\x29\x29\x72\x65\
-\x74\x75\x72\x6e\x20\x77\x2e\x67\x65\x74\x28\x61\x2c\x62\x29\x3b\
-\x72\x65\x74\x75\x72\x6e\x20\x62\x20\x69\x6e\x20\x61\x3f\x61\x2e\
-\x76\x61\x6c\x75\x65\x3a\x6e\x75\x6c\x6c\x7d\x2c\x73\x65\x74\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\
-\x69\x66\x28\x77\x26\x26\x66\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\
-\x28\x61\x2c\x22\x62\x75\x74\x74\x6f\x6e\x22\x29\x29\x72\x65\x74\
-\x75\x72\x6e\x20\x77\x2e\x73\x65\x74\x28\x61\x2c\x62\x2c\x63\x29\
-\x3b\x61\x2e\x76\x61\x6c\x75\x65\x3d\x62\x7d\x7d\x7d\x2c\x70\x72\
-\x6f\x70\x46\x69\x78\x3a\x7b\x74\x61\x62\x69\x6e\x64\x65\x78\x3a\
-\x22\x74\x61\x62\x49\x6e\x64\x65\x78\x22\x2c\x72\x65\x61\x64\x6f\
-\x6e\x6c\x79\x3a\x22\x72\x65\x61\x64\x4f\x6e\x6c\x79\x22\x2c\x22\
-\x66\x6f\x72\x22\x3a\x22\x68\x74\x6d\x6c\x46\x6f\x72\x22\x2c\x22\
-\x63\x6c\x61\x73\x73\x22\x3a\x22\x63\x6c\x61\x73\x73\x4e\x61\x6d\
-\x65\x22\x2c\x6d\x61\x78\x6c\x65\x6e\x67\x74\x68\x3a\x22\x6d\x61\
-\x78\x4c\x65\x6e\x67\x74\x68\x22\x2c\x63\x65\x6c\x6c\x73\x70\x61\
-\x63\x69\x6e\x67\x3a\x22\x63\x65\x6c\x6c\x53\x70\x61\x63\x69\x6e\
-\x67\x22\x2c\x63\x65\x6c\x6c\x70\x61\x64\x64\x69\x6e\x67\x3a\x22\
-\x63\x65\x6c\x6c\x50\x61\x64\x64\x69\x6e\x67\x22\x2c\x72\x6f\x77\
-\x73\x70\x61\x6e\x3a\x22\x72\x6f\x77\x53\x70\x61\x6e\x22\x2c\x63\
-\x6f\x6c\x73\x70\x61\x6e\x3a\x22\x63\x6f\x6c\x53\x70\x61\x6e\x22\
-\x2c\x75\x73\x65\x6d\x61\x70\x3a\x22\x75\x73\x65\x4d\x61\x70\x22\
-\x2c\x66\x72\x61\x6d\x65\x62\x6f\x72\x64\x65\x72\x3a\x22\x66\x72\
-\x61\x6d\x65\x42\x6f\x72\x64\x65\x72\x22\x2c\x63\x6f\x6e\x74\x65\
-\x6e\x74\x65\x64\x69\x74\x61\x62\x6c\x65\x3a\x22\x63\x6f\x6e\x74\
-\x65\x6e\x74\x45\x64\x69\x74\x61\x62\x6c\x65\x22\x7d\x2c\x70\x72\
-\x6f\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\
-\x64\x29\x7b\x76\x61\x72\x20\x65\x2c\x67\x2c\x68\x2c\x69\x3d\x61\
-\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3b\x69\x66\x28\x21\x21\x61\
-\x26\x26\x69\x21\x3d\x3d\x33\x26\x26\x69\x21\x3d\x3d\x38\x26\x26\
-\x69\x21\x3d\x3d\x32\x29\x7b\x68\x3d\x69\x21\x3d\x3d\x31\x7c\x7c\
-\x21\x66\x2e\x69\x73\x58\x4d\x4c\x44\x6f\x63\x28\x61\x29\x2c\x68\
-\x26\x26\x28\x63\x3d\x66\x2e\x70\x72\x6f\x70\x46\x69\x78\x5b\x63\
-\x5d\x7c\x7c\x63\x2c\x67\x3d\x66\x2e\x70\x72\x6f\x70\x48\x6f\x6f\
-\x6b\x73\x5b\x63\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x21\
-\x3d\x3d\x62\x3f\x67\x26\x26\x22\x73\x65\x74\x22\x69\x6e\x20\x67\
-\x26\x26\x28\x65\x3d\x67\x2e\x73\x65\x74\x28\x61\x2c\x64\x2c\x63\
-\x29\x29\x21\x3d\x3d\x62\x3f\x65\x3a\x61\x5b\x63\x5d\x3d\x64\x3a\
-\x67\x26\x26\x22\x67\x65\x74\x22\x69\x6e\x20\x67\x26\x26\x28\x65\
-\x3d\x67\x2e\x67\x65\x74\x28\x61\x2c\x63\x29\x29\x21\x3d\x3d\x6e\
-\x75\x6c\x6c\x3f\x65\x3a\x61\x5b\x63\x5d\x7d\x7d\x2c\x70\x72\x6f\
-\x70\x48\x6f\x6f\x6b\x73\x3a\x7b\x74\x61\x62\x49\x6e\x64\x65\x78\
-\x3a\x7b\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x29\x7b\x76\x61\x72\x20\x63\x3d\x61\x2e\x67\x65\x74\x41\x74\x74\
-\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\x28\x22\x74\x61\x62\x69\
-\x6e\x64\x65\x78\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x26\
-\x26\x63\x2e\x73\x70\x65\x63\x69\x66\x69\x65\x64\x3f\x70\x61\x72\
-\x73\x65\x49\x6e\x74\x28\x63\x2e\x76\x61\x6c\x75\x65\x2c\x31\x30\
-\x29\x3a\x73\x2e\x74\x65\x73\x74\x28\x61\x2e\x6e\x6f\x64\x65\x4e\
-\x61\x6d\x65\x29\x7c\x7c\x74\x2e\x74\x65\x73\x74\x28\x61\x2e\x6e\
-\x6f\x64\x65\x4e\x61\x6d\x65\x29\x26\x26\x61\x2e\x68\x72\x65\x66\
-\x3f\x30\x3a\x62\x7d\x7d\x7d\x7d\x29\x2c\x66\x2e\x61\x74\x74\x72\
-\x48\x6f\x6f\x6b\x73\x2e\x74\x61\x62\x69\x6e\x64\x65\x78\x3d\x66\
-\x2e\x70\x72\x6f\x70\x48\x6f\x6f\x6b\x73\x2e\x74\x61\x62\x49\x6e\
-\x64\x65\x78\x2c\x78\x3d\x7b\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x2c\x65\
-\x3d\x66\x2e\x70\x72\x6f\x70\x28\x61\x2c\x63\x29\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x65\x3d\x3d\x3d\x21\x30\x7c\x7c\x74\x79\x70\x65\
-\x6f\x66\x20\x65\x21\x3d\x22\x62\x6f\x6f\x6c\x65\x61\x6e\x22\x26\
-\x26\x28\x64\x3d\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\
-\x74\x65\x4e\x6f\x64\x65\x28\x63\x29\x29\x26\x26\x64\x2e\x6e\x6f\
-\x64\x65\x56\x61\x6c\x75\x65\x21\x3d\x3d\x21\x31\x3f\x63\x2e\x74\
-\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3a\x62\x7d\x2c\
-\x73\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\
-\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3b\x62\x3d\x3d\x3d\x21\x31\
-\x3f\x66\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x28\x61\x2c\
-\x63\x29\x3a\x28\x64\x3d\x66\x2e\x70\x72\x6f\x70\x46\x69\x78\x5b\
-\x63\x5d\x7c\x7c\x63\x2c\x64\x20\x69\x6e\x20\x61\x26\x26\x28\x61\
-\x5b\x64\x5d\x3d\x21\x30\x29\x2c\x61\x2e\x73\x65\x74\x41\x74\x74\
-\x72\x69\x62\x75\x74\x65\x28\x63\x2c\x63\x2e\x74\x6f\x4c\x6f\x77\
-\x65\x72\x43\x61\x73\x65\x28\x29\x29\x29\x3b\x72\x65\x74\x75\x72\
-\x6e\x20\x63\x7d\x7d\x2c\x76\x7c\x7c\x28\x79\x3d\x7b\x6e\x61\x6d\
-\x65\x3a\x21\x30\x2c\x69\x64\x3a\x21\x30\x7d\x2c\x77\x3d\x66\x2e\
-\x76\x61\x6c\x48\x6f\x6f\x6b\x73\x2e\x62\x75\x74\x74\x6f\x6e\x3d\
-\x7b\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\
-\x63\x29\x7b\x76\x61\x72\x20\x64\x3b\x64\x3d\x61\x2e\x67\x65\x74\
-\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\x28\x63\x29\
-\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x26\x26\x28\x79\x5b\x63\x5d\
-\x3f\x64\x2e\x6e\x6f\x64\x65\x56\x61\x6c\x75\x65\x21\x3d\x3d\x22\
-\x22\x3a\x64\x2e\x73\x70\x65\x63\x69\x66\x69\x65\x64\x29\x3f\x64\
-\x2e\x6e\x6f\x64\x65\x56\x61\x6c\x75\x65\x3a\x62\x7d\x2c\x73\x65\
-\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x64\
-\x29\x7b\x76\x61\x72\x20\x65\x3d\x61\x2e\x67\x65\x74\x41\x74\x74\
-\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\x28\x64\x29\x3b\x65\x7c\
-\x7c\x28\x65\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\x41\x74\x74\x72\
-\x69\x62\x75\x74\x65\x28\x64\x29\x2c\x61\x2e\x73\x65\x74\x41\x74\
-\x74\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\x28\x65\x29\x29\x3b\
-\x72\x65\x74\x75\x72\x6e\x20\x65\x2e\x6e\x6f\x64\x65\x56\x61\x6c\
-\x75\x65\x3d\x62\x2b\x22\x22\x7d\x7d\x2c\x66\x2e\x61\x74\x74\x72\
-\x48\x6f\x6f\x6b\x73\x2e\x74\x61\x62\x69\x6e\x64\x65\x78\x2e\x73\
-\x65\x74\x3d\x77\x2e\x73\x65\x74\x2c\x66\x2e\x65\x61\x63\x68\x28\
-\x5b\x22\x77\x69\x64\x74\x68\x22\x2c\x22\x68\x65\x69\x67\x68\x74\
-\x22\x5d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\
-\x7b\x66\x2e\x61\x74\x74\x72\x48\x6f\x6f\x6b\x73\x5b\x62\x5d\x3d\
-\x66\x2e\x65\x78\x74\x65\x6e\x64\x28\x66\x2e\x61\x74\x74\x72\x48\
-\x6f\x6f\x6b\x73\x5b\x62\x5d\x2c\x7b\x73\x65\x74\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x69\x66\x28\x63\x3d\
-\x3d\x3d\x22\x22\x29\x7b\x61\x2e\x73\x65\x74\x41\x74\x74\x72\x69\
-\x62\x75\x74\x65\x28\x62\x2c\x22\x61\x75\x74\x6f\x22\x29\x3b\x72\
-\x65\x74\x75\x72\x6e\x20\x63\x7d\x7d\x7d\x29\x7d\x29\x2c\x66\x2e\
-\x61\x74\x74\x72\x48\x6f\x6f\x6b\x73\x2e\x63\x6f\x6e\x74\x65\x6e\
-\x74\x65\x64\x69\x74\x61\x62\x6c\x65\x3d\x7b\x67\x65\x74\x3a\x77\
-\x2e\x67\x65\x74\x2c\x73\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x62\x3d\x3d\x3d\x22\x22\x26\
-\x26\x28\x62\x3d\x22\x66\x61\x6c\x73\x65\x22\x29\x2c\x77\x2e\x73\
-\x65\x74\x28\x61\x2c\x62\x2c\x63\x29\x7d\x7d\x29\x2c\x66\x2e\x73\
-\x75\x70\x70\x6f\x72\x74\x2e\x68\x72\x65\x66\x4e\x6f\x72\x6d\x61\
-\x6c\x69\x7a\x65\x64\x7c\x7c\x66\x2e\x65\x61\x63\x68\x28\x5b\x22\
-\x68\x72\x65\x66\x22\x2c\x22\x73\x72\x63\x22\x2c\x22\x77\x69\x64\
-\x74\x68\x22\x2c\x22\x68\x65\x69\x67\x68\x74\x22\x5d\x2c\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x66\x2e\x61\x74\
-\x74\x72\x48\x6f\x6f\x6b\x73\x5b\x63\x5d\x3d\x66\x2e\x65\x78\x74\
-\x65\x6e\x64\x28\x66\x2e\x61\x74\x74\x72\x48\x6f\x6f\x6b\x73\x5b\
-\x63\x5d\x2c\x7b\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x29\x7b\x76\x61\x72\x20\x64\x3d\x61\x2e\x67\x65\x74\x41\
-\x74\x74\x72\x69\x62\x75\x74\x65\x28\x63\x2c\x32\x29\x3b\x72\x65\
-\x74\x75\x72\x6e\x20\x64\x3d\x3d\x3d\x6e\x75\x6c\x6c\x3f\x62\x3a\
-\x64\x7d\x7d\x29\x7d\x29\x2c\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\
-\x2e\x73\x74\x79\x6c\x65\x7c\x7c\x28\x66\x2e\x61\x74\x74\x72\x48\
-\x6f\x6f\x6b\x73\x2e\x73\x74\x79\x6c\x65\x3d\x7b\x67\x65\x74\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\
-\x72\x6e\x20\x61\x2e\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x54\x65\
-\x78\x74\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\
-\x7c\x7c\x62\x7d\x2c\x73\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\
-\x73\x74\x79\x6c\x65\x2e\x63\x73\x73\x54\x65\x78\x74\x3d\x22\x22\
-\x2b\x62\x7d\x7d\x29\x2c\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\
-\x6f\x70\x74\x53\x65\x6c\x65\x63\x74\x65\x64\x7c\x7c\x28\x66\x2e\
-\x70\x72\x6f\x70\x48\x6f\x6f\x6b\x73\x2e\x73\x65\x6c\x65\x63\x74\
-\x65\x64\x3d\x66\x2e\x65\x78\x74\x65\x6e\x64\x28\x66\x2e\x70\x72\
-\x6f\x70\x48\x6f\x6f\x6b\x73\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\
-\x2c\x7b\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x70\x61\x72\x65\x6e\x74\
-\x4e\x6f\x64\x65\x3b\x62\x26\x26\x28\x62\x2e\x73\x65\x6c\x65\x63\
-\x74\x65\x64\x49\x6e\x64\x65\x78\x2c\x62\x2e\x70\x61\x72\x65\x6e\
-\x74\x4e\x6f\x64\x65\x26\x26\x62\x2e\x70\x61\x72\x65\x6e\x74\x4e\
-\x6f\x64\x65\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\x65\
-\x78\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x7d\x7d\
-\x29\x29\x2c\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x65\x6e\x63\
-\x74\x79\x70\x65\x7c\x7c\x28\x66\x2e\x70\x72\x6f\x70\x46\x69\x78\
-\x2e\x65\x6e\x63\x74\x79\x70\x65\x3d\x22\x65\x6e\x63\x6f\x64\x69\
-\x6e\x67\x22\x29\x2c\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x63\
-\x68\x65\x63\x6b\x4f\x6e\x7c\x7c\x66\x2e\x65\x61\x63\x68\x28\x5b\
-\x22\x72\x61\x64\x69\x6f\x22\x2c\x22\x63\x68\x65\x63\x6b\x62\x6f\
-\x78\x22\x5d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\
-\x2e\x76\x61\x6c\x48\x6f\x6f\x6b\x73\x5b\x74\x68\x69\x73\x5d\x3d\
-\x7b\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\
-\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x67\x65\x74\x41\x74\x74\
-\x72\x69\x62\x75\x74\x65\x28\x22\x76\x61\x6c\x75\x65\x22\x29\x3d\
-\x3d\x3d\x6e\x75\x6c\x6c\x3f\x22\x6f\x6e\x22\x3a\x61\x2e\x76\x61\
-\x6c\x75\x65\x7d\x7d\x7d\x29\x2c\x66\x2e\x65\x61\x63\x68\x28\x5b\
-\x22\x72\x61\x64\x69\x6f\x22\x2c\x22\x63\x68\x65\x63\x6b\x62\x6f\
-\x78\x22\x5d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\
-\x2e\x76\x61\x6c\x48\x6f\x6f\x6b\x73\x5b\x74\x68\x69\x73\x5d\x3d\
-\x66\x2e\x65\x78\x74\x65\x6e\x64\x28\x66\x2e\x76\x61\x6c\x48\x6f\
-\x6f\x6b\x73\x5b\x74\x68\x69\x73\x5d\x2c\x7b\x73\x65\x74\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\
-\x66\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x62\x29\x29\x72\x65\x74\
-\x75\x72\x6e\x20\x61\x2e\x63\x68\x65\x63\x6b\x65\x64\x3d\x66\x2e\
-\x69\x6e\x41\x72\x72\x61\x79\x28\x66\x28\x61\x29\x2e\x76\x61\x6c\
-\x28\x29\x2c\x62\x29\x3e\x3d\x30\x7d\x7d\x29\x7d\x29\x3b\x76\x61\
-\x72\x20\x7a\x3d\x2f\x5e\x28\x3f\x3a\x74\x65\x78\x74\x61\x72\x65\
-\x61\x7c\x69\x6e\x70\x75\x74\x7c\x73\x65\x6c\x65\x63\x74\x29\x24\
-\x2f\x69\x2c\x41\x3d\x2f\x5e\x28\x5b\x5e\x5c\x2e\x5d\x2a\x29\x3f\
-\x28\x3f\x3a\x5c\x2e\x28\x2e\x2b\x29\x29\x3f\x24\x2f\x2c\x42\x3d\
-\x2f\x5c\x62\x68\x6f\x76\x65\x72\x28\x5c\x2e\x5c\x53\x2b\x29\x3f\
-\x5c\x62\x2f\x2c\x43\x3d\x2f\x5e\x6b\x65\x79\x2f\x2c\x44\x3d\x2f\
-\x5e\x28\x3f\x3a\x6d\x6f\x75\x73\x65\x7c\x63\x6f\x6e\x74\x65\x78\
-\x74\x6d\x65\x6e\x75\x29\x7c\x63\x6c\x69\x63\x6b\x2f\x2c\x45\x3d\
-\x2f\x5e\x28\x3f\x3a\x66\x6f\x63\x75\x73\x69\x6e\x66\x6f\x63\x75\
-\x73\x7c\x66\x6f\x63\x75\x73\x6f\x75\x74\x62\x6c\x75\x72\x29\x24\
-\x2f\x2c\x46\x3d\x2f\x5e\x28\x5c\x77\x2a\x29\x28\x3f\x3a\x23\x28\
-\x5b\x5c\x77\x5c\x2d\x5d\x2b\x29\x29\x3f\x28\x3f\x3a\x5c\x2e\x28\
-\x5b\x5c\x77\x5c\x2d\x5d\x2b\x29\x29\x3f\x24\x2f\x2c\x47\x3d\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\
-\x3d\x46\x2e\x65\x78\x65\x63\x28\x61\x29\x3b\x62\x26\x26\x28\x62\
-\x5b\x31\x5d\x3d\x28\x62\x5b\x31\x5d\x7c\x7c\x22\x22\x29\x2e\x74\
-\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2c\x62\x5b\x33\
-\x5d\x3d\x62\x5b\x33\x5d\x26\x26\x6e\x65\x77\x20\x52\x65\x67\x45\
-\x78\x70\x28\x22\x28\x3f\x3a\x5e\x7c\x5c\x5c\x73\x29\x22\x2b\x62\
-\x5b\x33\x5d\x2b\x22\x28\x3f\x3a\x5c\x5c\x73\x7c\x24\x29\x22\x29\
-\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x7d\x2c\x48\x3d\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\
-\x63\x3d\x61\x2e\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x7c\x7c\
-\x7b\x7d\x3b\x72\x65\x74\x75\x72\x6e\x28\x21\x62\x5b\x31\x5d\x7c\
-\x7c\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\
-\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x62\x5b\x31\x5d\
-\x29\x26\x26\x28\x21\x62\x5b\x32\x5d\x7c\x7c\x28\x63\x2e\x69\x64\
-\x7c\x7c\x7b\x7d\x29\x2e\x76\x61\x6c\x75\x65\x3d\x3d\x3d\x62\x5b\
-\x32\x5d\x29\x26\x26\x28\x21\x62\x5b\x33\x5d\x7c\x7c\x62\x5b\x33\
-\x5d\x2e\x74\x65\x73\x74\x28\x28\x63\x5b\x22\x63\x6c\x61\x73\x73\
-\x22\x5d\x7c\x7c\x7b\x7d\x29\x2e\x76\x61\x6c\x75\x65\x29\x29\x7d\
-\x2c\x49\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\
-\x65\x74\x75\x72\x6e\x20\x66\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\
-\x65\x63\x69\x61\x6c\x2e\x68\x6f\x76\x65\x72\x3f\x61\x3a\x61\x2e\
-\x72\x65\x70\x6c\x61\x63\x65\x28\x42\x2c\x22\x6d\x6f\x75\x73\x65\
-\x65\x6e\x74\x65\x72\x24\x31\x20\x6d\x6f\x75\x73\x65\x6c\x65\x61\
-\x76\x65\x24\x31\x22\x29\x7d\x3b\x0a\x66\x2e\x65\x76\x65\x6e\x74\
-\x3d\x7b\x61\x64\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x63\x2c\x64\x2c\x65\x2c\x67\x29\x7b\x76\x61\x72\x20\x68\x2c\
-\x69\x2c\x6a\x2c\x6b\x2c\x6c\x2c\x6d\x2c\x6e\x2c\x6f\x2c\x70\x2c\
-\x71\x2c\x72\x2c\x73\x3b\x69\x66\x28\x21\x28\x61\x2e\x6e\x6f\x64\
-\x65\x54\x79\x70\x65\x3d\x3d\x3d\x33\x7c\x7c\x61\x2e\x6e\x6f\x64\
-\x65\x54\x79\x70\x65\x3d\x3d\x3d\x38\x7c\x7c\x21\x63\x7c\x7c\x21\
-\x64\x7c\x7c\x21\x28\x68\x3d\x66\x2e\x5f\x64\x61\x74\x61\x28\x61\
-\x29\x29\x29\x29\x7b\x64\x2e\x68\x61\x6e\x64\x6c\x65\x72\x26\x26\
-\x28\x70\x3d\x64\x2c\x64\x3d\x70\x2e\x68\x61\x6e\x64\x6c\x65\x72\
-\x29\x2c\x64\x2e\x67\x75\x69\x64\x7c\x7c\x28\x64\x2e\x67\x75\x69\
-\x64\x3d\x66\x2e\x67\x75\x69\x64\x2b\x2b\x29\x2c\x6a\x3d\x68\x2e\
-\x65\x76\x65\x6e\x74\x73\x2c\x6a\x7c\x7c\x28\x68\x2e\x65\x76\x65\
-\x6e\x74\x73\x3d\x6a\x3d\x7b\x7d\x29\x2c\x69\x3d\x68\x2e\x68\x61\
-\x6e\x64\x6c\x65\x2c\x69\x7c\x7c\x28\x68\x2e\x68\x61\x6e\x64\x6c\
-\x65\x3d\x69\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\
-\x72\x65\x74\x75\x72\x6e\x20\x74\x79\x70\x65\x6f\x66\x20\x66\x21\
-\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x26\x26\x28\x21\
-\x61\x7c\x7c\x66\x2e\x65\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\
-\x65\x72\x65\x64\x21\x3d\x3d\x61\x2e\x74\x79\x70\x65\x29\x3f\x66\
-\x2e\x65\x76\x65\x6e\x74\x2e\x64\x69\x73\x70\x61\x74\x63\x68\x2e\
-\x61\x70\x70\x6c\x79\x28\x69\x2e\x65\x6c\x65\x6d\x2c\x61\x72\x67\
-\x75\x6d\x65\x6e\x74\x73\x29\x3a\x62\x7d\x2c\x69\x2e\x65\x6c\x65\
-\x6d\x3d\x61\x29\x2c\x63\x3d\x66\x2e\x74\x72\x69\x6d\x28\x49\x28\
-\x63\x29\x29\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x3b\x66\
-\x6f\x72\x28\x6b\x3d\x30\x3b\x6b\x3c\x63\x2e\x6c\x65\x6e\x67\x74\
-\x68\x3b\x6b\x2b\x2b\x29\x7b\x6c\x3d\x41\x2e\x65\x78\x65\x63\x28\
-\x63\x5b\x6b\x5d\x29\x7c\x7c\x5b\x5d\x2c\x6d\x3d\x6c\x5b\x31\x5d\
-\x2c\x6e\x3d\x28\x6c\x5b\x32\x5d\x7c\x7c\x22\x22\x29\x2e\x73\x70\
-\x6c\x69\x74\x28\x22\x2e\x22\x29\x2e\x73\x6f\x72\x74\x28\x29\x2c\
-\x73\x3d\x66\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\
-\x6c\x5b\x6d\x5d\x7c\x7c\x7b\x7d\x2c\x6d\x3d\x28\x67\x3f\x73\x2e\
-\x64\x65\x6c\x65\x67\x61\x74\x65\x54\x79\x70\x65\x3a\x73\x2e\x62\
-\x69\x6e\x64\x54\x79\x70\x65\x29\x7c\x7c\x6d\x2c\x73\x3d\x66\x2e\
-\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\x6c\x5b\x6d\x5d\
-\x7c\x7c\x7b\x7d\x2c\x6f\x3d\x66\x2e\x65\x78\x74\x65\x6e\x64\x28\
-\x7b\x74\x79\x70\x65\x3a\x6d\x2c\x6f\x72\x69\x67\x54\x79\x70\x65\
-\x3a\x6c\x5b\x31\x5d\x2c\x64\x61\x74\x61\x3a\x65\x2c\x68\x61\x6e\
-\x64\x6c\x65\x72\x3a\x64\x2c\x67\x75\x69\x64\x3a\x64\x2e\x67\x75\
-\x69\x64\x2c\x73\x65\x6c\x65\x63\x74\x6f\x72\x3a\x67\x2c\x71\x75\
-\x69\x63\x6b\x3a\x47\x28\x67\x29\x2c\x6e\x61\x6d\x65\x73\x70\x61\
-\x63\x65\x3a\x6e\x2e\x6a\x6f\x69\x6e\x28\x22\x2e\x22\x29\x7d\x2c\
-\x70\x29\x2c\x72\x3d\x6a\x5b\x6d\x5d\x3b\x69\x66\x28\x21\x72\x29\
-\x7b\x72\x3d\x6a\x5b\x6d\x5d\x3d\x5b\x5d\x2c\x72\x2e\x64\x65\x6c\
-\x65\x67\x61\x74\x65\x43\x6f\x75\x6e\x74\x3d\x30\x3b\x69\x66\x28\
-\x21\x73\x2e\x73\x65\x74\x75\x70\x7c\x7c\x73\x2e\x73\x65\x74\x75\
-\x70\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x65\x2c\x6e\x2c\x69\x29\x3d\
-\x3d\x3d\x21\x31\x29\x61\x2e\x61\x64\x64\x45\x76\x65\x6e\x74\x4c\
-\x69\x73\x74\x65\x6e\x65\x72\x3f\x61\x2e\x61\x64\x64\x45\x76\x65\
-\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x6d\x2c\x69\x2c\x21\
-\x31\x29\x3a\x61\x2e\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6e\x74\
-\x26\x26\x61\x2e\x61\x74\x74\x61\x63\x68\x45\x76\x65\x6e\x74\x28\
-\x22\x6f\x6e\x22\x2b\x6d\x2c\x69\x29\x7d\x73\x2e\x61\x64\x64\x26\
-\x26\x28\x73\x2e\x61\x64\x64\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x6f\
-\x29\x2c\x6f\x2e\x68\x61\x6e\x64\x6c\x65\x72\x2e\x67\x75\x69\x64\
-\x7c\x7c\x28\x6f\x2e\x68\x61\x6e\x64\x6c\x65\x72\x2e\x67\x75\x69\
-\x64\x3d\x64\x2e\x67\x75\x69\x64\x29\x29\x2c\x67\x3f\x72\x2e\x73\
-\x70\x6c\x69\x63\x65\x28\x72\x2e\x64\x65\x6c\x65\x67\x61\x74\x65\
-\x43\x6f\x75\x6e\x74\x2b\x2b\x2c\x30\x2c\x6f\x29\x3a\x72\x2e\x70\
-\x75\x73\x68\x28\x6f\x29\x2c\x66\x2e\x65\x76\x65\x6e\x74\x2e\x67\
-\x6c\x6f\x62\x61\x6c\x5b\x6d\x5d\x3d\x21\x30\x7d\x61\x3d\x6e\x75\
-\x6c\x6c\x7d\x7d\x2c\x67\x6c\x6f\x62\x61\x6c\x3a\x7b\x7d\x2c\x72\
-\x65\x6d\x6f\x76\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x62\x2c\x63\x2c\x64\x2c\x65\x29\x7b\x76\x61\x72\x20\x67\x3d\
-\x66\x2e\x68\x61\x73\x44\x61\x74\x61\x28\x61\x29\x26\x26\x66\x2e\
-\x5f\x64\x61\x74\x61\x28\x61\x29\x2c\x68\x2c\x69\x2c\x6a\x2c\x6b\
-\x2c\x6c\x2c\x6d\x2c\x6e\x2c\x6f\x2c\x70\x2c\x71\x2c\x72\x2c\x73\
-\x3b\x69\x66\x28\x21\x21\x67\x26\x26\x21\x21\x28\x6f\x3d\x67\x2e\
-\x65\x76\x65\x6e\x74\x73\x29\x29\x7b\x62\x3d\x66\x2e\x74\x72\x69\
-\x6d\x28\x49\x28\x62\x7c\x7c\x22\x22\x29\x29\x2e\x73\x70\x6c\x69\
-\x74\x28\x22\x20\x22\x29\x3b\x66\x6f\x72\x28\x68\x3d\x30\x3b\x68\
-\x3c\x62\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x68\x2b\x2b\x29\x7b\x69\
-\x3d\x41\x2e\x65\x78\x65\x63\x28\x62\x5b\x68\x5d\x29\x7c\x7c\x5b\
-\x5d\x2c\x6a\x3d\x6b\x3d\x69\x5b\x31\x5d\x2c\x6c\x3d\x69\x5b\x32\
-\x5d\x3b\x69\x66\x28\x21\x6a\x29\x7b\x66\x6f\x72\x28\x6a\x20\x69\
-\x6e\x20\x6f\x29\x66\x2e\x65\x76\x65\x6e\x74\x2e\x72\x65\x6d\x6f\
-\x76\x65\x28\x61\x2c\x6a\x2b\x62\x5b\x68\x5d\x2c\x63\x2c\x64\x2c\
-\x21\x30\x29\x3b\x63\x6f\x6e\x74\x69\x6e\x75\x65\x7d\x70\x3d\x66\
-\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\x6c\x5b\x6a\
-\x5d\x7c\x7c\x7b\x7d\x2c\x6a\x3d\x28\x64\x3f\x70\x2e\x64\x65\x6c\
-\x65\x67\x61\x74\x65\x54\x79\x70\x65\x3a\x70\x2e\x62\x69\x6e\x64\
-\x54\x79\x70\x65\x29\x7c\x7c\x6a\x2c\x72\x3d\x6f\x5b\x6a\x5d\x7c\
-\x7c\x5b\x5d\x2c\x6d\x3d\x72\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x6c\
-\x3d\x6c\x3f\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x22\x28\
-\x5e\x7c\x5c\x5c\x2e\x29\x22\x2b\x6c\x2e\x73\x70\x6c\x69\x74\x28\
-\x22\x2e\x22\x29\x2e\x73\x6f\x72\x74\x28\x29\x2e\x6a\x6f\x69\x6e\
-\x28\x22\x5c\x5c\x2e\x28\x3f\x3a\x2e\x2a\x5c\x5c\x2e\x29\x3f\x22\
-\x29\x2b\x22\x28\x5c\x5c\x2e\x7c\x24\x29\x22\x29\x3a\x6e\x75\x6c\
-\x6c\x3b\x66\x6f\x72\x28\x6e\x3d\x30\x3b\x6e\x3c\x72\x2e\x6c\x65\
-\x6e\x67\x74\x68\x3b\x6e\x2b\x2b\x29\x73\x3d\x72\x5b\x6e\x5d\x2c\
-\x28\x65\x7c\x7c\x6b\x3d\x3d\x3d\x73\x2e\x6f\x72\x69\x67\x54\x79\
-\x70\x65\x29\x26\x26\x28\x21\x63\x7c\x7c\x63\x2e\x67\x75\x69\x64\
-\x3d\x3d\x3d\x73\x2e\x67\x75\x69\x64\x29\x26\x26\x28\x21\x6c\x7c\
-\x7c\x6c\x2e\x74\x65\x73\x74\x28\x73\x2e\x6e\x61\x6d\x65\x73\x70\
-\x61\x63\x65\x29\x29\x26\x26\x28\x21\x64\x7c\x7c\x64\x3d\x3d\x3d\
-\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x7c\x7c\x64\x3d\x3d\x3d\
-\x22\x2a\x2a\x22\x26\x26\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\
-\x29\x26\x26\x28\x72\x2e\x73\x70\x6c\x69\x63\x65\x28\x6e\x2d\x2d\
-\x2c\x31\x29\x2c\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x26\x26\
-\x72\x2e\x64\x65\x6c\x65\x67\x61\x74\x65\x43\x6f\x75\x6e\x74\x2d\
-\x2d\x2c\x70\x2e\x72\x65\x6d\x6f\x76\x65\x26\x26\x70\x2e\x72\x65\
-\x6d\x6f\x76\x65\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x73\x29\x29\x3b\
-\x72\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x30\x26\x26\x6d\x21\
-\x3d\x3d\x72\x2e\x6c\x65\x6e\x67\x74\x68\x26\x26\x28\x28\x21\x70\
-\x2e\x74\x65\x61\x72\x64\x6f\x77\x6e\x7c\x7c\x70\x2e\x74\x65\x61\
-\x72\x64\x6f\x77\x6e\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x6c\x29\x3d\
-\x3d\x3d\x21\x31\x29\x26\x26\x66\x2e\x72\x65\x6d\x6f\x76\x65\x45\
-\x76\x65\x6e\x74\x28\x61\x2c\x6a\x2c\x67\x2e\x68\x61\x6e\x64\x6c\
-\x65\x29\x2c\x64\x65\x6c\x65\x74\x65\x20\x6f\x5b\x6a\x5d\x29\x7d\
-\x66\x2e\x69\x73\x45\x6d\x70\x74\x79\x4f\x62\x6a\x65\x63\x74\x28\
-\x6f\x29\x26\x26\x28\x71\x3d\x67\x2e\x68\x61\x6e\x64\x6c\x65\x2c\
-\x71\x26\x26\x28\x71\x2e\x65\x6c\x65\x6d\x3d\x6e\x75\x6c\x6c\x29\
-\x2c\x66\x2e\x72\x65\x6d\x6f\x76\x65\x44\x61\x74\x61\x28\x61\x2c\
-\x5b\x22\x65\x76\x65\x6e\x74\x73\x22\x2c\x22\x68\x61\x6e\x64\x6c\
-\x65\x22\x5d\x2c\x21\x30\x29\x29\x7d\x7d\x2c\x63\x75\x73\x74\x6f\
-\x6d\x45\x76\x65\x6e\x74\x3a\x7b\x67\x65\x74\x44\x61\x74\x61\x3a\
-\x21\x30\x2c\x73\x65\x74\x44\x61\x74\x61\x3a\x21\x30\x2c\x63\x68\
-\x61\x6e\x67\x65\x44\x61\x74\x61\x3a\x21\x30\x7d\x2c\x74\x72\x69\
-\x67\x67\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x2c\
-\x64\x2c\x65\x2c\x67\x29\x7b\x69\x66\x28\x21\x65\x7c\x7c\x65\x2e\
-\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x33\x26\x26\x65\x2e\
-\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x38\x29\x7b\x76\x61\
-\x72\x20\x68\x3d\x63\x2e\x74\x79\x70\x65\x7c\x7c\x63\x2c\x69\x3d\
-\x5b\x5d\x2c\x6a\x2c\x6b\x2c\x6c\x2c\x6d\x2c\x6e\x2c\x6f\x2c\x70\
-\x2c\x71\x2c\x72\x2c\x73\x3b\x69\x66\x28\x45\x2e\x74\x65\x73\x74\
-\x28\x68\x2b\x66\x2e\x65\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\
-\x65\x72\x65\x64\x29\x29\x72\x65\x74\x75\x72\x6e\x3b\x68\x2e\x69\
-\x6e\x64\x65\x78\x4f\x66\x28\x22\x21\x22\x29\x3e\x3d\x30\x26\x26\
-\x28\x68\x3d\x68\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\x2d\x31\x29\
-\x2c\x6b\x3d\x21\x30\x29\x2c\x68\x2e\x69\x6e\x64\x65\x78\x4f\x66\
-\x28\x22\x2e\x22\x29\x3e\x3d\x30\x26\x26\x28\x69\x3d\x68\x2e\x73\
-\x70\x6c\x69\x74\x28\x22\x2e\x22\x29\x2c\x68\x3d\x69\x2e\x73\x68\
-\x69\x66\x74\x28\x29\x2c\x69\x2e\x73\x6f\x72\x74\x28\x29\x29\x3b\
-\x69\x66\x28\x28\x21\x65\x7c\x7c\x66\x2e\x65\x76\x65\x6e\x74\x2e\
-\x63\x75\x73\x74\x6f\x6d\x45\x76\x65\x6e\x74\x5b\x68\x5d\x29\x26\
-\x26\x21\x66\x2e\x65\x76\x65\x6e\x74\x2e\x67\x6c\x6f\x62\x61\x6c\
-\x5b\x68\x5d\x29\x72\x65\x74\x75\x72\x6e\x3b\x63\x3d\x74\x79\x70\
-\x65\x6f\x66\x20\x63\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x3f\
-\x63\x5b\x66\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x3f\x63\x3a\x6e\
-\x65\x77\x20\x66\x2e\x45\x76\x65\x6e\x74\x28\x68\x2c\x63\x29\x3a\
-\x6e\x65\x77\x20\x66\x2e\x45\x76\x65\x6e\x74\x28\x68\x29\x2c\x63\
-\x2e\x74\x79\x70\x65\x3d\x68\x2c\x63\x2e\x69\x73\x54\x72\x69\x67\
-\x67\x65\x72\x3d\x21\x30\x2c\x63\x2e\x65\x78\x63\x6c\x75\x73\x69\
-\x76\x65\x3d\x6b\x2c\x63\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\
-\x3d\x69\x2e\x6a\x6f\x69\x6e\x28\x22\x2e\x22\x29\x2c\x63\x2e\x6e\
-\x61\x6d\x65\x73\x70\x61\x63\x65\x5f\x72\x65\x3d\x63\x2e\x6e\x61\
-\x6d\x65\x73\x70\x61\x63\x65\x3f\x6e\x65\x77\x20\x52\x65\x67\x45\
-\x78\x70\x28\x22\x28\x5e\x7c\x5c\x5c\x2e\x29\x22\x2b\x69\x2e\x6a\
-\x6f\x69\x6e\x28\x22\x5c\x5c\x2e\x28\x3f\x3a\x2e\x2a\x5c\x5c\x2e\
-\x29\x3f\x22\x29\x2b\x22\x28\x5c\x5c\x2e\x7c\x24\x29\x22\x29\x3a\
-\x6e\x75\x6c\x6c\x2c\x6f\x3d\x68\x2e\x69\x6e\x64\x65\x78\x4f\x66\
-\x28\x22\x3a\x22\x29\x3c\x30\x3f\x22\x6f\x6e\x22\x2b\x68\x3a\x22\
-\x22\x3b\x69\x66\x28\x21\x65\x29\x7b\x6a\x3d\x66\x2e\x63\x61\x63\
-\x68\x65\x3b\x66\x6f\x72\x28\x6c\x20\x69\x6e\x20\x6a\x29\x6a\x5b\
-\x6c\x5d\x2e\x65\x76\x65\x6e\x74\x73\x26\x26\x6a\x5b\x6c\x5d\x2e\
-\x65\x76\x65\x6e\x74\x73\x5b\x68\x5d\x26\x26\x66\x2e\x65\x76\x65\
-\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x63\x2c\x64\x2c\x6a\
-\x5b\x6c\x5d\x2e\x68\x61\x6e\x64\x6c\x65\x2e\x65\x6c\x65\x6d\x2c\
-\x21\x30\x29\x3b\x72\x65\x74\x75\x72\x6e\x7d\x63\x2e\x72\x65\x73\
-\x75\x6c\x74\x3d\x62\x2c\x63\x2e\x74\x61\x72\x67\x65\x74\x7c\x7c\
-\x28\x63\x2e\x74\x61\x72\x67\x65\x74\x3d\x65\x29\x2c\x64\x3d\x64\
-\x21\x3d\x6e\x75\x6c\x6c\x3f\x66\x2e\x6d\x61\x6b\x65\x41\x72\x72\
-\x61\x79\x28\x64\x29\x3a\x5b\x5d\x2c\x64\x2e\x75\x6e\x73\x68\x69\
-\x66\x74\x28\x63\x29\x2c\x70\x3d\x66\x2e\x65\x76\x65\x6e\x74\x2e\
-\x73\x70\x65\x63\x69\x61\x6c\x5b\x68\x5d\x7c\x7c\x7b\x7d\x3b\x69\
-\x66\x28\x70\x2e\x74\x72\x69\x67\x67\x65\x72\x26\x26\x70\x2e\x74\
-\x72\x69\x67\x67\x65\x72\x2e\x61\x70\x70\x6c\x79\x28\x65\x2c\x64\
-\x29\x3d\x3d\x3d\x21\x31\x29\x72\x65\x74\x75\x72\x6e\x3b\x72\x3d\
-\x5b\x5b\x65\x2c\x70\x2e\x62\x69\x6e\x64\x54\x79\x70\x65\x7c\x7c\
-\x68\x5d\x5d\x3b\x69\x66\x28\x21\x67\x26\x26\x21\x70\x2e\x6e\x6f\
-\x42\x75\x62\x62\x6c\x65\x26\x26\x21\x66\x2e\x69\x73\x57\x69\x6e\
-\x64\x6f\x77\x28\x65\x29\x29\x7b\x73\x3d\x70\x2e\x64\x65\x6c\x65\
-\x67\x61\x74\x65\x54\x79\x70\x65\x7c\x7c\x68\x2c\x6d\x3d\x45\x2e\
-\x74\x65\x73\x74\x28\x73\x2b\x68\x29\x3f\x65\x3a\x65\x2e\x70\x61\
-\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x6e\x3d\x6e\x75\x6c\x6c\x3b\
-\x66\x6f\x72\x28\x3b\x6d\x3b\x6d\x3d\x6d\x2e\x70\x61\x72\x65\x6e\
-\x74\x4e\x6f\x64\x65\x29\x72\x2e\x70\x75\x73\x68\x28\x5b\x6d\x2c\
-\x73\x5d\x29\x2c\x6e\x3d\x6d\x3b\x6e\x26\x26\x6e\x3d\x3d\x3d\x65\
-\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x26\x26\
-\x72\x2e\x70\x75\x73\x68\x28\x5b\x6e\x2e\x64\x65\x66\x61\x75\x6c\
-\x74\x56\x69\x65\x77\x7c\x7c\x6e\x2e\x70\x61\x72\x65\x6e\x74\x57\
-\x69\x6e\x64\x6f\x77\x7c\x7c\x61\x2c\x73\x5d\x29\x7d\x66\x6f\x72\
-\x28\x6c\x3d\x30\x3b\x6c\x3c\x72\x2e\x6c\x65\x6e\x67\x74\x68\x26\
-\x26\x21\x63\x2e\x69\x73\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\
-\x6e\x53\x74\x6f\x70\x70\x65\x64\x28\x29\x3b\x6c\x2b\x2b\x29\x6d\
-\x3d\x72\x5b\x6c\x5d\x5b\x30\x5d\x2c\x63\x2e\x74\x79\x70\x65\x3d\
-\x72\x5b\x6c\x5d\x5b\x31\x5d\x2c\x71\x3d\x28\x66\x2e\x5f\x64\x61\
-\x74\x61\x28\x6d\x2c\x22\x65\x76\x65\x6e\x74\x73\x22\x29\x7c\x7c\
-\x7b\x7d\x29\x5b\x63\x2e\x74\x79\x70\x65\x5d\x26\x26\x66\x2e\x5f\
-\x64\x61\x74\x61\x28\x6d\x2c\x22\x68\x61\x6e\x64\x6c\x65\x22\x29\
-\x2c\x71\x26\x26\x71\x2e\x61\x70\x70\x6c\x79\x28\x6d\x2c\x64\x29\
-\x2c\x71\x3d\x6f\x26\x26\x6d\x5b\x6f\x5d\x2c\x71\x26\x26\x66\x2e\
-\x61\x63\x63\x65\x70\x74\x44\x61\x74\x61\x28\x6d\x29\x26\x26\x71\
-\x2e\x61\x70\x70\x6c\x79\x28\x6d\x2c\x64\x29\x3d\x3d\x3d\x21\x31\
-\x26\x26\x63\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\
-\x6c\x74\x28\x29\x3b\x63\x2e\x74\x79\x70\x65\x3d\x68\x2c\x21\x67\
-\x26\x26\x21\x63\x2e\x69\x73\x44\x65\x66\x61\x75\x6c\x74\x50\x72\
-\x65\x76\x65\x6e\x74\x65\x64\x28\x29\x26\x26\x28\x21\x70\x2e\x5f\
-\x64\x65\x66\x61\x75\x6c\x74\x7c\x7c\x70\x2e\x5f\x64\x65\x66\x61\
-\x75\x6c\x74\x2e\x61\x70\x70\x6c\x79\x28\x65\x2e\x6f\x77\x6e\x65\
-\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x2c\x64\x29\x3d\x3d\x3d\x21\
-\x31\x29\x26\x26\x28\x68\x21\x3d\x3d\x22\x63\x6c\x69\x63\x6b\x22\
-\x7c\x7c\x21\x66\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x65\x2c\
-\x22\x61\x22\x29\x29\x26\x26\x66\x2e\x61\x63\x63\x65\x70\x74\x44\
-\x61\x74\x61\x28\x65\x29\x26\x26\x6f\x26\x26\x65\x5b\x68\x5d\x26\
-\x26\x28\x68\x21\x3d\x3d\x22\x66\x6f\x63\x75\x73\x22\x26\x26\x68\
-\x21\x3d\x3d\x22\x62\x6c\x75\x72\x22\x7c\x7c\x63\x2e\x74\x61\x72\
-\x67\x65\x74\x2e\x6f\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68\x21\
-\x3d\x3d\x30\x29\x26\x26\x21\x66\x2e\x69\x73\x57\x69\x6e\x64\x6f\
-\x77\x28\x65\x29\x26\x26\x28\x6e\x3d\x65\x5b\x6f\x5d\x2c\x6e\x26\
-\x26\x28\x65\x5b\x6f\x5d\x3d\x6e\x75\x6c\x6c\x29\x2c\x66\x2e\x65\
-\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x65\x64\x3d\x68\
-\x2c\x65\x5b\x68\x5d\x28\x29\x2c\x66\x2e\x65\x76\x65\x6e\x74\x2e\
-\x74\x72\x69\x67\x67\x65\x72\x65\x64\x3d\x62\x2c\x6e\x26\x26\x28\
-\x65\x5b\x6f\x5d\x3d\x6e\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\
-\x63\x2e\x72\x65\x73\x75\x6c\x74\x7d\x7d\x2c\x64\x69\x73\x70\x61\
-\x74\x63\x68\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x29\x7b\
-\x63\x3d\x66\x2e\x65\x76\x65\x6e\x74\x2e\x66\x69\x78\x28\x63\x7c\
-\x7c\x61\x2e\x65\x76\x65\x6e\x74\x29\x3b\x76\x61\x72\x20\x64\x3d\
-\x28\x66\x2e\x5f\x64\x61\x74\x61\x28\x74\x68\x69\x73\x2c\x22\x65\
-\x76\x65\x6e\x74\x73\x22\x29\x7c\x7c\x7b\x7d\x29\x5b\x63\x2e\x74\
-\x79\x70\x65\x5d\x7c\x7c\x5b\x5d\x2c\x65\x3d\x64\x2e\x64\x65\x6c\
-\x65\x67\x61\x74\x65\x43\x6f\x75\x6e\x74\x2c\x67\x3d\x5b\x5d\x2e\
-\x73\x6c\x69\x63\x65\x2e\x63\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\
-\x65\x6e\x74\x73\x2c\x30\x29\x2c\x68\x3d\x21\x63\x2e\x65\x78\x63\
-\x6c\x75\x73\x69\x76\x65\x26\x26\x21\x63\x2e\x6e\x61\x6d\x65\x73\
-\x70\x61\x63\x65\x2c\x69\x3d\x5b\x5d\x2c\x6a\x2c\x6b\x2c\x6c\x2c\
-\x6d\x2c\x6e\x2c\x6f\x2c\x70\x2c\x71\x2c\x72\x2c\x73\x2c\x74\x3b\
-\x67\x5b\x30\x5d\x3d\x63\x2c\x63\x2e\x64\x65\x6c\x65\x67\x61\x74\
-\x65\x54\x61\x72\x67\x65\x74\x3d\x74\x68\x69\x73\x3b\x69\x66\x28\
-\x65\x26\x26\x21\x63\x2e\x74\x61\x72\x67\x65\x74\x2e\x64\x69\x73\
-\x61\x62\x6c\x65\x64\x26\x26\x28\x21\x63\x2e\x62\x75\x74\x74\x6f\
-\x6e\x7c\x7c\x63\x2e\x74\x79\x70\x65\x21\x3d\x3d\x22\x63\x6c\x69\
-\x63\x6b\x22\x29\x29\x7b\x6d\x3d\x66\x28\x74\x68\x69\x73\x29\x2c\
-\x6d\x2e\x63\x6f\x6e\x74\x65\x78\x74\x3d\x74\x68\x69\x73\x2e\x6f\
-\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x74\x68\
-\x69\x73\x3b\x66\x6f\x72\x28\x6c\x3d\x63\x2e\x74\x61\x72\x67\x65\
-\x74\x3b\x6c\x21\x3d\x74\x68\x69\x73\x3b\x6c\x3d\x6c\x2e\x70\x61\
-\x72\x65\x6e\x74\x4e\x6f\x64\x65\x7c\x7c\x74\x68\x69\x73\x29\x7b\
-\x6f\x3d\x7b\x7d\x2c\x71\x3d\x5b\x5d\x2c\x6d\x5b\x30\x5d\x3d\x6c\
-\x3b\x66\x6f\x72\x28\x6a\x3d\x30\x3b\x6a\x3c\x65\x3b\x6a\x2b\x2b\
-\x29\x72\x3d\x64\x5b\x6a\x5d\x2c\x73\x3d\x72\x2e\x73\x65\x6c\x65\
-\x63\x74\x6f\x72\x2c\x6f\x5b\x73\x5d\x3d\x3d\x3d\x62\x26\x26\x28\
-\x6f\x5b\x73\x5d\x3d\x72\x2e\x71\x75\x69\x63\x6b\x3f\x48\x28\x6c\
-\x2c\x72\x2e\x71\x75\x69\x63\x6b\x29\x3a\x6d\x2e\x69\x73\x28\x73\
-\x29\x29\x2c\x6f\x5b\x73\x5d\x26\x26\x71\x2e\x70\x75\x73\x68\x28\
-\x72\x29\x3b\x71\x2e\x6c\x65\x6e\x67\x74\x68\x26\x26\x69\x2e\x70\
-\x75\x73\x68\x28\x7b\x65\x6c\x65\x6d\x3a\x6c\x2c\x6d\x61\x74\x63\
-\x68\x65\x73\x3a\x71\x7d\x29\x7d\x7d\x64\x2e\x6c\x65\x6e\x67\x74\
-\x68\x3e\x65\x26\x26\x69\x2e\x70\x75\x73\x68\x28\x7b\x65\x6c\x65\
-\x6d\x3a\x74\x68\x69\x73\x2c\x6d\x61\x74\x63\x68\x65\x73\x3a\x64\
-\x2e\x73\x6c\x69\x63\x65\x28\x65\x29\x7d\x29\x3b\x66\x6f\x72\x28\
-\x6a\x3d\x30\x3b\x6a\x3c\x69\x2e\x6c\x65\x6e\x67\x74\x68\x26\x26\
-\x21\x63\x2e\x69\x73\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\
-\x53\x74\x6f\x70\x70\x65\x64\x28\x29\x3b\x6a\x2b\x2b\x29\x7b\x70\
-\x3d\x69\x5b\x6a\x5d\x2c\x63\x2e\x63\x75\x72\x72\x65\x6e\x74\x54\
-\x61\x72\x67\x65\x74\x3d\x70\x2e\x65\x6c\x65\x6d\x3b\x66\x6f\x72\
-\x28\x6b\x3d\x30\x3b\x6b\x3c\x70\x2e\x6d\x61\x74\x63\x68\x65\x73\
-\x2e\x6c\x65\x6e\x67\x74\x68\x26\x26\x21\x63\x2e\x69\x73\x49\x6d\
-\x6d\x65\x64\x69\x61\x74\x65\x50\x72\x6f\x70\x61\x67\x61\x74\x69\
-\x6f\x6e\x53\x74\x6f\x70\x70\x65\x64\x28\x29\x3b\x6b\x2b\x2b\x29\
-\x7b\x72\x3d\x70\x2e\x6d\x61\x74\x63\x68\x65\x73\x5b\x6b\x5d\x3b\
-\x69\x66\x28\x68\x7c\x7c\x21\x63\x2e\x6e\x61\x6d\x65\x73\x70\x61\
-\x63\x65\x26\x26\x21\x72\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\
-\x7c\x7c\x63\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x5f\x72\x65\
-\x26\x26\x63\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x5f\x72\x65\
-\x2e\x74\x65\x73\x74\x28\x72\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\
-\x65\x29\x29\x63\x2e\x64\x61\x74\x61\x3d\x72\x2e\x64\x61\x74\x61\
-\x2c\x63\x2e\x68\x61\x6e\x64\x6c\x65\x4f\x62\x6a\x3d\x72\x2c\x6e\
-\x3d\x28\x28\x66\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\
-\x61\x6c\x5b\x72\x2e\x6f\x72\x69\x67\x54\x79\x70\x65\x5d\x7c\x7c\
-\x7b\x7d\x29\x2e\x68\x61\x6e\x64\x6c\x65\x7c\x7c\x72\x2e\x68\x61\
-\x6e\x64\x6c\x65\x72\x29\x2e\x61\x70\x70\x6c\x79\x28\x70\x2e\x65\
-\x6c\x65\x6d\x2c\x67\x29\x2c\x6e\x21\x3d\x3d\x62\x26\x26\x28\x63\
-\x2e\x72\x65\x73\x75\x6c\x74\x3d\x6e\x2c\x6e\x3d\x3d\x3d\x21\x31\
-\x26\x26\x28\x63\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\
-\x75\x6c\x74\x28\x29\x2c\x63\x2e\x73\x74\x6f\x70\x50\x72\x6f\x70\
-\x61\x67\x61\x74\x69\x6f\x6e\x28\x29\x29\x29\x7d\x7d\x72\x65\x74\
-\x75\x72\x6e\x20\x63\x2e\x72\x65\x73\x75\x6c\x74\x7d\x2c\x70\x72\
-\x6f\x70\x73\x3a\x22\x61\x74\x74\x72\x43\x68\x61\x6e\x67\x65\x20\
-\x61\x74\x74\x72\x4e\x61\x6d\x65\x20\x72\x65\x6c\x61\x74\x65\x64\
-\x4e\x6f\x64\x65\x20\x73\x72\x63\x45\x6c\x65\x6d\x65\x6e\x74\x20\
-\x61\x6c\x74\x4b\x65\x79\x20\x62\x75\x62\x62\x6c\x65\x73\x20\x63\
-\x61\x6e\x63\x65\x6c\x61\x62\x6c\x65\x20\x63\x74\x72\x6c\x4b\x65\
-\x79\x20\x63\x75\x72\x72\x65\x6e\x74\x54\x61\x72\x67\x65\x74\x20\
-\x65\x76\x65\x6e\x74\x50\x68\x61\x73\x65\x20\x6d\x65\x74\x61\x4b\
-\x65\x79\x20\x72\x65\x6c\x61\x74\x65\x64\x54\x61\x72\x67\x65\x74\
-\x20\x73\x68\x69\x66\x74\x4b\x65\x79\x20\x74\x61\x72\x67\x65\x74\
-\x20\x74\x69\x6d\x65\x53\x74\x61\x6d\x70\x20\x76\x69\x65\x77\x20\
-\x77\x68\x69\x63\x68\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\
-\x29\x2c\x66\x69\x78\x48\x6f\x6f\x6b\x73\x3a\x7b\x7d\x2c\x6b\x65\
-\x79\x48\x6f\x6f\x6b\x73\x3a\x7b\x70\x72\x6f\x70\x73\x3a\x22\x63\
-\x68\x61\x72\x20\x63\x68\x61\x72\x43\x6f\x64\x65\x20\x6b\x65\x79\
-\x20\x6b\x65\x79\x43\x6f\x64\x65\x22\x2e\x73\x70\x6c\x69\x74\x28\
-\x22\x20\x22\x29\x2c\x66\x69\x6c\x74\x65\x72\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x61\x2e\x77\x68\x69\x63\
-\x68\x3d\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x61\x2e\x77\x68\x69\x63\
-\x68\x3d\x62\x2e\x63\x68\x61\x72\x43\x6f\x64\x65\x21\x3d\x6e\x75\
-\x6c\x6c\x3f\x62\x2e\x63\x68\x61\x72\x43\x6f\x64\x65\x3a\x62\x2e\
-\x6b\x65\x79\x43\x6f\x64\x65\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\
-\x61\x7d\x7d\x2c\x6d\x6f\x75\x73\x65\x48\x6f\x6f\x6b\x73\x3a\x7b\
-\x70\x72\x6f\x70\x73\x3a\x22\x62\x75\x74\x74\x6f\x6e\x20\x62\x75\
-\x74\x74\x6f\x6e\x73\x20\x63\x6c\x69\x65\x6e\x74\x58\x20\x63\x6c\
-\x69\x65\x6e\x74\x59\x20\x66\x72\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\
-\x74\x20\x6f\x66\x66\x73\x65\x74\x58\x20\x6f\x66\x66\x73\x65\x74\
-\x59\x20\x70\x61\x67\x65\x58\x20\x70\x61\x67\x65\x59\x20\x73\x63\
-\x72\x65\x65\x6e\x58\x20\x73\x63\x72\x65\x65\x6e\x59\x20\x74\x6f\
-\x45\x6c\x65\x6d\x65\x6e\x74\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\
-\x20\x22\x29\x2c\x66\x69\x6c\x74\x65\x72\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x64\x29\x7b\x76\x61\x72\x20\x65\x2c\x66\
-\x2c\x67\x2c\x68\x3d\x64\x2e\x62\x75\x74\x74\x6f\x6e\x2c\x69\x3d\
-\x64\x2e\x66\x72\x6f\x6d\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x61\x2e\
-\x70\x61\x67\x65\x58\x3d\x3d\x6e\x75\x6c\x6c\x26\x26\x64\x2e\x63\
-\x6c\x69\x65\x6e\x74\x58\x21\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x65\
-\x3d\x61\x2e\x74\x61\x72\x67\x65\x74\x2e\x6f\x77\x6e\x65\x72\x44\
-\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x63\x2c\x66\x3d\x65\x2e\x64\
-\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x67\
-\x3d\x65\x2e\x62\x6f\x64\x79\x2c\x61\x2e\x70\x61\x67\x65\x58\x3d\
-\x64\x2e\x63\x6c\x69\x65\x6e\x74\x58\x2b\x28\x66\x26\x26\x66\x2e\
-\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74\x7c\x7c\x67\x26\x26\x67\
-\x2e\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74\x7c\x7c\x30\x29\x2d\
-\x28\x66\x26\x26\x66\x2e\x63\x6c\x69\x65\x6e\x74\x4c\x65\x66\x74\
-\x7c\x7c\x67\x26\x26\x67\x2e\x63\x6c\x69\x65\x6e\x74\x4c\x65\x66\
-\x74\x7c\x7c\x30\x29\x2c\x61\x2e\x70\x61\x67\x65\x59\x3d\x64\x2e\
-\x63\x6c\x69\x65\x6e\x74\x59\x2b\x28\x66\x26\x26\x66\x2e\x73\x63\
-\x72\x6f\x6c\x6c\x54\x6f\x70\x7c\x7c\x67\x26\x26\x67\x2e\x73\x63\
-\x72\x6f\x6c\x6c\x54\x6f\x70\x7c\x7c\x30\x29\x2d\x28\x66\x26\x26\
-\x66\x2e\x63\x6c\x69\x65\x6e\x74\x54\x6f\x70\x7c\x7c\x67\x26\x26\
-\x67\x2e\x63\x6c\x69\x65\x6e\x74\x54\x6f\x70\x7c\x7c\x30\x29\x29\
-\x2c\x21\x61\x2e\x72\x65\x6c\x61\x74\x65\x64\x54\x61\x72\x67\x65\
-\x74\x26\x26\x69\x26\x26\x28\x61\x2e\x72\x65\x6c\x61\x74\x65\x64\
-\x54\x61\x72\x67\x65\x74\x3d\x69\x3d\x3d\x3d\x61\x2e\x74\x61\x72\
-\x67\x65\x74\x3f\x64\x2e\x74\x6f\x45\x6c\x65\x6d\x65\x6e\x74\x3a\
-\x69\x29\x2c\x21\x61\x2e\x77\x68\x69\x63\x68\x26\x26\x68\x21\x3d\
-\x3d\x62\x26\x26\x28\x61\x2e\x77\x68\x69\x63\x68\x3d\x68\x26\x31\
-\x3f\x31\x3a\x68\x26\x32\x3f\x33\x3a\x68\x26\x34\x3f\x32\x3a\x30\
-\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x7d\x2c\x66\x69\x78\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\
-\x61\x5b\x66\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x29\x72\x65\x74\
-\x75\x72\x6e\x20\x61\x3b\x76\x61\x72\x20\x64\x2c\x65\x2c\x67\x3d\
-\x61\x2c\x68\x3d\x66\x2e\x65\x76\x65\x6e\x74\x2e\x66\x69\x78\x48\
-\x6f\x6f\x6b\x73\x5b\x61\x2e\x74\x79\x70\x65\x5d\x7c\x7c\x7b\x7d\
-\x2c\x69\x3d\x68\x2e\x70\x72\x6f\x70\x73\x3f\x74\x68\x69\x73\x2e\
-\x70\x72\x6f\x70\x73\x2e\x63\x6f\x6e\x63\x61\x74\x28\x68\x2e\x70\
-\x72\x6f\x70\x73\x29\x3a\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x73\
-\x3b\x61\x3d\x66\x2e\x45\x76\x65\x6e\x74\x28\x67\x29\x3b\x66\x6f\
-\x72\x28\x64\x3d\x69\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x64\x3b\x29\
-\x65\x3d\x69\x5b\x2d\x2d\x64\x5d\x2c\x61\x5b\x65\x5d\x3d\x67\x5b\
-\x65\x5d\x3b\x61\x2e\x74\x61\x72\x67\x65\x74\x7c\x7c\x28\x61\x2e\
-\x74\x61\x72\x67\x65\x74\x3d\x67\x2e\x73\x72\x63\x45\x6c\x65\x6d\
-\x65\x6e\x74\x7c\x7c\x63\x29\x2c\x61\x2e\x74\x61\x72\x67\x65\x74\
-\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x33\x26\x26\x28\
-\x61\x2e\x74\x61\x72\x67\x65\x74\x3d\x61\x2e\x74\x61\x72\x67\x65\
-\x74\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x2c\x61\x2e\
-\x6d\x65\x74\x61\x4b\x65\x79\x3d\x3d\x3d\x62\x26\x26\x28\x61\x2e\
-\x6d\x65\x74\x61\x4b\x65\x79\x3d\x61\x2e\x63\x74\x72\x6c\x4b\x65\
-\x79\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x68\x2e\x66\x69\x6c\x74\
-\x65\x72\x3f\x68\x2e\x66\x69\x6c\x74\x65\x72\x28\x61\x2c\x67\x29\
-\x3a\x61\x7d\x2c\x73\x70\x65\x63\x69\x61\x6c\x3a\x7b\x72\x65\x61\
-\x64\x79\x3a\x7b\x73\x65\x74\x75\x70\x3a\x66\x2e\x62\x69\x6e\x64\
-\x52\x65\x61\x64\x79\x7d\x2c\x6c\x6f\x61\x64\x3a\x7b\x6e\x6f\x42\
-\x75\x62\x62\x6c\x65\x3a\x21\x30\x7d\x2c\x66\x6f\x63\x75\x73\x3a\
-\x7b\x64\x65\x6c\x65\x67\x61\x74\x65\x54\x79\x70\x65\x3a\x22\x66\
-\x6f\x63\x75\x73\x69\x6e\x22\x7d\x2c\x62\x6c\x75\x72\x3a\x7b\x64\
-\x65\x6c\x65\x67\x61\x74\x65\x54\x79\x70\x65\x3a\x22\x66\x6f\x63\
-\x75\x73\x6f\x75\x74\x22\x7d\x2c\x62\x65\x66\x6f\x72\x65\x75\x6e\
-\x6c\x6f\x61\x64\x3a\x7b\x73\x65\x74\x75\x70\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x66\x2e\x69\x73\
-\x57\x69\x6e\x64\x6f\x77\x28\x74\x68\x69\x73\x29\x26\x26\x28\x74\
-\x68\x69\x73\x2e\x6f\x6e\x62\x65\x66\x6f\x72\x65\x75\x6e\x6c\x6f\
-\x61\x64\x3d\x63\x29\x7d\x2c\x74\x65\x61\x72\x64\x6f\x77\x6e\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x74\x68\
-\x69\x73\x2e\x6f\x6e\x62\x65\x66\x6f\x72\x65\x75\x6e\x6c\x6f\x61\
-\x64\x3d\x3d\x3d\x62\x26\x26\x28\x74\x68\x69\x73\x2e\x6f\x6e\x62\
-\x65\x66\x6f\x72\x65\x75\x6e\x6c\x6f\x61\x64\x3d\x6e\x75\x6c\x6c\
-\x29\x7d\x7d\x7d\x2c\x73\x69\x6d\x75\x6c\x61\x74\x65\x3a\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\
-\x76\x61\x72\x20\x65\x3d\x66\x2e\x65\x78\x74\x65\x6e\x64\x28\x6e\
-\x65\x77\x20\x66\x2e\x45\x76\x65\x6e\x74\x2c\x63\x2c\x7b\x74\x79\
-\x70\x65\x3a\x61\x2c\x69\x73\x53\x69\x6d\x75\x6c\x61\x74\x65\x64\
-\x3a\x21\x30\x2c\x6f\x72\x69\x67\x69\x6e\x61\x6c\x45\x76\x65\x6e\
-\x74\x3a\x7b\x7d\x7d\x29\x3b\x64\x3f\x66\x2e\x65\x76\x65\x6e\x74\
-\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x65\x2c\x6e\x75\x6c\x6c\x2c\
-\x62\x29\x3a\x66\x2e\x65\x76\x65\x6e\x74\x2e\x64\x69\x73\x70\x61\
-\x74\x63\x68\x2e\x63\x61\x6c\x6c\x28\x62\x2c\x65\x29\x2c\x65\x2e\
-\x69\x73\x44\x65\x66\x61\x75\x6c\x74\x50\x72\x65\x76\x65\x6e\x74\
-\x65\x64\x28\x29\x26\x26\x63\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\
-\x65\x66\x61\x75\x6c\x74\x28\x29\x7d\x7d\x2c\x66\x2e\x65\x76\x65\
-\x6e\x74\x2e\x68\x61\x6e\x64\x6c\x65\x3d\x66\x2e\x65\x76\x65\x6e\
-\x74\x2e\x64\x69\x73\x70\x61\x74\x63\x68\x2c\x66\x2e\x72\x65\x6d\
-\x6f\x76\x65\x45\x76\x65\x6e\x74\x3d\x63\x2e\x72\x65\x6d\x6f\x76\
-\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x3f\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x61\
-\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\
-\x65\x6e\x65\x72\x26\x26\x61\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\
-\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x62\x2c\x63\x2c\
-\x21\x31\x29\x7d\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\
-\x62\x2c\x63\x29\x7b\x61\x2e\x64\x65\x74\x61\x63\x68\x45\x76\x65\
-\x6e\x74\x26\x26\x61\x2e\x64\x65\x74\x61\x63\x68\x45\x76\x65\x6e\
-\x74\x28\x22\x6f\x6e\x22\x2b\x62\x2c\x63\x29\x7d\x2c\x66\x2e\x45\
-\x76\x65\x6e\x74\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\
-\x62\x29\x7b\x69\x66\x28\x21\x28\x74\x68\x69\x73\x20\x69\x6e\x73\
-\x74\x61\x6e\x63\x65\x6f\x66\x20\x66\x2e\x45\x76\x65\x6e\x74\x29\
-\x29\x72\x65\x74\x75\x72\x6e\x20\x6e\x65\x77\x20\x66\x2e\x45\x76\
-\x65\x6e\x74\x28\x61\x2c\x62\x29\x3b\x61\x26\x26\x61\x2e\x74\x79\
-\x70\x65\x3f\x28\x74\x68\x69\x73\x2e\x6f\x72\x69\x67\x69\x6e\x61\
-\x6c\x45\x76\x65\x6e\x74\x3d\x61\x2c\x74\x68\x69\x73\x2e\x74\x79\
-\x70\x65\x3d\x61\x2e\x74\x79\x70\x65\x2c\x74\x68\x69\x73\x2e\x69\
-\x73\x44\x65\x66\x61\x75\x6c\x74\x50\x72\x65\x76\x65\x6e\x74\x65\
-\x64\x3d\x61\x2e\x64\x65\x66\x61\x75\x6c\x74\x50\x72\x65\x76\x65\
-\x6e\x74\x65\x64\x7c\x7c\x61\x2e\x72\x65\x74\x75\x72\x6e\x56\x61\
-\x6c\x75\x65\x3d\x3d\x3d\x21\x31\x7c\x7c\x61\x2e\x67\x65\x74\x50\
-\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x26\x26\x61\
-\x2e\x67\x65\x74\x50\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\
-\x6c\x74\x28\x29\x3f\x4b\x3a\x4a\x29\x3a\x74\x68\x69\x73\x2e\x74\
-\x79\x70\x65\x3d\x61\x2c\x62\x26\x26\x66\x2e\x65\x78\x74\x65\x6e\
-\x64\x28\x74\x68\x69\x73\x2c\x62\x29\x2c\x74\x68\x69\x73\x2e\x74\
-\x69\x6d\x65\x53\x74\x61\x6d\x70\x3d\x61\x26\x26\x61\x2e\x74\x69\
-\x6d\x65\x53\x74\x61\x6d\x70\x7c\x7c\x66\x2e\x6e\x6f\x77\x28\x29\
-\x2c\x74\x68\x69\x73\x5b\x66\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\
-\x3d\x21\x30\x7d\x2c\x66\x2e\x45\x76\x65\x6e\x74\x2e\x70\x72\x6f\
-\x74\x6f\x74\x79\x70\x65\x3d\x7b\x70\x72\x65\x76\x65\x6e\x74\x44\
-\x65\x66\x61\x75\x6c\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x29\x7b\x74\x68\x69\x73\x2e\x69\x73\x44\x65\x66\x61\x75\x6c\x74\
-\x50\x72\x65\x76\x65\x6e\x74\x65\x64\x3d\x4b\x3b\x76\x61\x72\x20\
-\x61\x3d\x74\x68\x69\x73\x2e\x6f\x72\x69\x67\x69\x6e\x61\x6c\x45\
-\x76\x65\x6e\x74\x3b\x21\x61\x7c\x7c\x28\x61\x2e\x70\x72\x65\x76\
-\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x3f\x61\x2e\x70\x72\x65\
-\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x3a\x61\x2e\
-\x72\x65\x74\x75\x72\x6e\x56\x61\x6c\x75\x65\x3d\x21\x31\x29\x7d\
-\x2c\x73\x74\x6f\x70\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x74\x68\x69\x73\
-\x2e\x69\x73\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x53\x74\
-\x6f\x70\x70\x65\x64\x3d\x4b\x3b\x76\x61\x72\x20\x61\x3d\x74\x68\
-\x69\x73\x2e\x6f\x72\x69\x67\x69\x6e\x61\x6c\x45\x76\x65\x6e\x74\
-\x3b\x21\x61\x7c\x7c\x28\x61\x2e\x73\x74\x6f\x70\x50\x72\x6f\x70\
-\x61\x67\x61\x74\x69\x6f\x6e\x26\x26\x61\x2e\x73\x74\x6f\x70\x50\
-\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x28\x29\x2c\x61\x2e\x63\
-\x61\x6e\x63\x65\x6c\x42\x75\x62\x62\x6c\x65\x3d\x21\x30\x29\x7d\
-\x2c\x73\x74\x6f\x70\x49\x6d\x6d\x65\x64\x69\x61\x74\x65\x50\x72\
-\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x29\x7b\x74\x68\x69\x73\x2e\x69\x73\x49\x6d\x6d\x65\
-\x64\x69\x61\x74\x65\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\
-\x53\x74\x6f\x70\x70\x65\x64\x3d\x4b\x2c\x74\x68\x69\x73\x2e\x73\
-\x74\x6f\x70\x50\x72\x6f\x70\x61\x67\x61\x74\x69\x6f\x6e\x28\x29\
-\x7d\x2c\x69\x73\x44\x65\x66\x61\x75\x6c\x74\x50\x72\x65\x76\x65\
-\x6e\x74\x65\x64\x3a\x4a\x2c\x69\x73\x50\x72\x6f\x70\x61\x67\x61\
-\x74\x69\x6f\x6e\x53\x74\x6f\x70\x70\x65\x64\x3a\x4a\x2c\x69\x73\
-\x49\x6d\x6d\x65\x64\x69\x61\x74\x65\x50\x72\x6f\x70\x61\x67\x61\
-\x74\x69\x6f\x6e\x53\x74\x6f\x70\x70\x65\x64\x3a\x4a\x7d\x2c\x66\
-\x2e\x65\x61\x63\x68\x28\x7b\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\
-\x72\x3a\x22\x6d\x6f\x75\x73\x65\x6f\x76\x65\x72\x22\x2c\x6d\x6f\
-\x75\x73\x65\x6c\x65\x61\x76\x65\x3a\x22\x6d\x6f\x75\x73\x65\x6f\
-\x75\x74\x22\x7d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\
-\x62\x29\x7b\x66\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\
-\x61\x6c\x5b\x61\x5d\x3d\x7b\x64\x65\x6c\x65\x67\x61\x74\x65\x54\
-\x79\x70\x65\x3a\x62\x2c\x62\x69\x6e\x64\x54\x79\x70\x65\x3a\x62\
-\x2c\x68\x61\x6e\x64\x6c\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x29\x7b\x76\x61\x72\x20\x63\x3d\x74\x68\x69\x73\x2c\x64\
-\x3d\x61\x2e\x72\x65\x6c\x61\x74\x65\x64\x54\x61\x72\x67\x65\x74\
-\x2c\x65\x3d\x61\x2e\x68\x61\x6e\x64\x6c\x65\x4f\x62\x6a\x2c\x67\
-\x3d\x65\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x2c\x68\x3b\x69\x66\
-\x28\x21\x64\x7c\x7c\x64\x21\x3d\x3d\x63\x26\x26\x21\x66\x2e\x63\
-\x6f\x6e\x74\x61\x69\x6e\x73\x28\x63\x2c\x64\x29\x29\x61\x2e\x74\
-\x79\x70\x65\x3d\x65\x2e\x6f\x72\x69\x67\x54\x79\x70\x65\x2c\x68\
-\x3d\x65\x2e\x68\x61\x6e\x64\x6c\x65\x72\x2e\x61\x70\x70\x6c\x79\
-\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\
-\x2c\x61\x2e\x74\x79\x70\x65\x3d\x62\x3b\x72\x65\x74\x75\x72\x6e\
-\x20\x68\x7d\x7d\x7d\x29\x2c\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\
-\x2e\x73\x75\x62\x6d\x69\x74\x42\x75\x62\x62\x6c\x65\x73\x7c\x7c\
-\x28\x66\x2e\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\x6c\
-\x2e\x73\x75\x62\x6d\x69\x74\x3d\x7b\x73\x65\x74\x75\x70\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x66\x2e\x6e\
-\x6f\x64\x65\x4e\x61\x6d\x65\x28\x74\x68\x69\x73\x2c\x22\x66\x6f\
-\x72\x6d\x22\x29\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x3b\x66\x2e\
-\x65\x76\x65\x6e\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2c\x22\
-\x63\x6c\x69\x63\x6b\x2e\x5f\x73\x75\x62\x6d\x69\x74\x20\x6b\x65\
-\x79\x70\x72\x65\x73\x73\x2e\x5f\x73\x75\x62\x6d\x69\x74\x22\x2c\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\
-\x63\x3d\x61\x2e\x74\x61\x72\x67\x65\x74\x2c\x64\x3d\x66\x2e\x6e\
-\x6f\x64\x65\x4e\x61\x6d\x65\x28\x63\x2c\x22\x69\x6e\x70\x75\x74\
-\x22\x29\x7c\x7c\x66\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x63\
-\x2c\x22\x62\x75\x74\x74\x6f\x6e\x22\x29\x3f\x63\x2e\x66\x6f\x72\
-\x6d\x3a\x62\x3b\x64\x26\x26\x21\x64\x2e\x5f\x73\x75\x62\x6d\x69\
-\x74\x5f\x61\x74\x74\x61\x63\x68\x65\x64\x26\x26\x28\x66\x2e\x65\
-\x76\x65\x6e\x74\x2e\x61\x64\x64\x28\x64\x2c\x22\x73\x75\x62\x6d\
-\x69\x74\x2e\x5f\x73\x75\x62\x6d\x69\x74\x22\x2c\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x29\x7b\x74\x68\x69\x73\x2e\x70\x61\x72\
-\x65\x6e\x74\x4e\x6f\x64\x65\x26\x26\x21\x61\x2e\x69\x73\x54\x72\
-\x69\x67\x67\x65\x72\x26\x26\x66\x2e\x65\x76\x65\x6e\x74\x2e\x73\
-\x69\x6d\x75\x6c\x61\x74\x65\x28\x22\x73\x75\x62\x6d\x69\x74\x22\
-\x2c\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\
-\x2c\x61\x2c\x21\x30\x29\x7d\x29\x2c\x64\x2e\x5f\x73\x75\x62\x6d\
-\x69\x74\x5f\x61\x74\x74\x61\x63\x68\x65\x64\x3d\x21\x30\x29\x7d\
-\x29\x7d\x2c\x74\x65\x61\x72\x64\x6f\x77\x6e\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x66\x2e\x6e\x6f\x64\x65\
-\x4e\x61\x6d\x65\x28\x74\x68\x69\x73\x2c\x22\x66\x6f\x72\x6d\x22\
-\x29\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x3b\x66\x2e\x65\x76\x65\
-\x6e\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2c\x22\
-\x2e\x5f\x73\x75\x62\x6d\x69\x74\x22\x29\x7d\x7d\x29\x2c\x66\x2e\
-\x73\x75\x70\x70\x6f\x72\x74\x2e\x63\x68\x61\x6e\x67\x65\x42\x75\
-\x62\x62\x6c\x65\x73\x7c\x7c\x28\x66\x2e\x65\x76\x65\x6e\x74\x2e\
-\x73\x70\x65\x63\x69\x61\x6c\x2e\x63\x68\x61\x6e\x67\x65\x3d\x7b\
-\x73\x65\x74\x75\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\
-\x7b\x69\x66\x28\x7a\x2e\x74\x65\x73\x74\x28\x74\x68\x69\x73\x2e\
-\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x29\x7b\x69\x66\x28\x74\x68\
-\x69\x73\x2e\x74\x79\x70\x65\x3d\x3d\x3d\x22\x63\x68\x65\x63\x6b\
-\x62\x6f\x78\x22\x7c\x7c\x74\x68\x69\x73\x2e\x74\x79\x70\x65\x3d\
-\x3d\x3d\x22\x72\x61\x64\x69\x6f\x22\x29\x66\x2e\x65\x76\x65\x6e\
-\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2c\x22\x70\x72\x6f\x70\
-\x65\x72\x74\x79\x63\x68\x61\x6e\x67\x65\x2e\x5f\x63\x68\x61\x6e\
-\x67\x65\x22\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\
-\x61\x2e\x6f\x72\x69\x67\x69\x6e\x61\x6c\x45\x76\x65\x6e\x74\x2e\
-\x70\x72\x6f\x70\x65\x72\x74\x79\x4e\x61\x6d\x65\x3d\x3d\x3d\x22\
-\x63\x68\x65\x63\x6b\x65\x64\x22\x26\x26\x28\x74\x68\x69\x73\x2e\
-\x5f\x6a\x75\x73\x74\x5f\x63\x68\x61\x6e\x67\x65\x64\x3d\x21\x30\
-\x29\x7d\x29\x2c\x66\x2e\x65\x76\x65\x6e\x74\x2e\x61\x64\x64\x28\
-\x74\x68\x69\x73\x2c\x22\x63\x6c\x69\x63\x6b\x2e\x5f\x63\x68\x61\
-\x6e\x67\x65\x22\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\
-\x7b\x74\x68\x69\x73\x2e\x5f\x6a\x75\x73\x74\x5f\x63\x68\x61\x6e\
-\x67\x65\x64\x26\x26\x21\x61\x2e\x69\x73\x54\x72\x69\x67\x67\x65\
-\x72\x26\x26\x28\x74\x68\x69\x73\x2e\x5f\x6a\x75\x73\x74\x5f\x63\
-\x68\x61\x6e\x67\x65\x64\x3d\x21\x31\x2c\x66\x2e\x65\x76\x65\x6e\
-\x74\x2e\x73\x69\x6d\x75\x6c\x61\x74\x65\x28\x22\x63\x68\x61\x6e\
-\x67\x65\x22\x2c\x74\x68\x69\x73\x2c\x61\x2c\x21\x30\x29\x29\x7d\
-\x29\x3b\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\x66\x2e\x65\x76\x65\
-\x6e\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\x2c\x22\x62\x65\x66\
-\x6f\x72\x65\x61\x63\x74\x69\x76\x61\x74\x65\x2e\x5f\x63\x68\x61\
-\x6e\x67\x65\x22\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\
-\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x74\x61\x72\x67\x65\x74\x3b\
-\x7a\x2e\x74\x65\x73\x74\x28\x62\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\
-\x65\x29\x26\x26\x21\x62\x2e\x5f\x63\x68\x61\x6e\x67\x65\x5f\x61\
-\x74\x74\x61\x63\x68\x65\x64\x26\x26\x28\x66\x2e\x65\x76\x65\x6e\
-\x74\x2e\x61\x64\x64\x28\x62\x2c\x22\x63\x68\x61\x6e\x67\x65\x2e\
-\x5f\x63\x68\x61\x6e\x67\x65\x22\x2c\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x29\x7b\x74\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\
-\x4e\x6f\x64\x65\x26\x26\x21\x61\x2e\x69\x73\x53\x69\x6d\x75\x6c\
-\x61\x74\x65\x64\x26\x26\x21\x61\x2e\x69\x73\x54\x72\x69\x67\x67\
-\x65\x72\x26\x26\x66\x2e\x65\x76\x65\x6e\x74\x2e\x73\x69\x6d\x75\
-\x6c\x61\x74\x65\x28\x22\x63\x68\x61\x6e\x67\x65\x22\x2c\x74\x68\
-\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x61\x2c\
-\x21\x30\x29\x7d\x29\x2c\x62\x2e\x5f\x63\x68\x61\x6e\x67\x65\x5f\
-\x61\x74\x74\x61\x63\x68\x65\x64\x3d\x21\x30\x29\x7d\x29\x7d\x2c\
-\x68\x61\x6e\x64\x6c\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x74\x61\x72\x67\x65\
-\x74\x3b\x69\x66\x28\x74\x68\x69\x73\x21\x3d\x3d\x62\x7c\x7c\x61\
-\x2e\x69\x73\x53\x69\x6d\x75\x6c\x61\x74\x65\x64\x7c\x7c\x61\x2e\
-\x69\x73\x54\x72\x69\x67\x67\x65\x72\x7c\x7c\x62\x2e\x74\x79\x70\
-\x65\x21\x3d\x3d\x22\x72\x61\x64\x69\x6f\x22\x26\x26\x62\x2e\x74\
-\x79\x70\x65\x21\x3d\x3d\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x22\
-\x29\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x68\x61\x6e\x64\x6c\x65\
-\x4f\x62\x6a\x2e\x68\x61\x6e\x64\x6c\x65\x72\x2e\x61\x70\x70\x6c\
-\x79\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\
-\x29\x7d\x2c\x74\x65\x61\x72\x64\x6f\x77\x6e\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x29\x7b\x66\x2e\x65\x76\x65\x6e\x74\x2e\x72\
-\x65\x6d\x6f\x76\x65\x28\x74\x68\x69\x73\x2c\x22\x2e\x5f\x63\x68\
-\x61\x6e\x67\x65\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x7a\x2e\
-\x74\x65\x73\x74\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x4e\x61\
-\x6d\x65\x29\x7d\x7d\x29\x2c\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\
-\x2e\x66\x6f\x63\x75\x73\x69\x6e\x42\x75\x62\x62\x6c\x65\x73\x7c\
-\x7c\x66\x2e\x65\x61\x63\x68\x28\x7b\x66\x6f\x63\x75\x73\x3a\x22\
-\x66\x6f\x63\x75\x73\x69\x6e\x22\x2c\x62\x6c\x75\x72\x3a\x22\x66\
-\x6f\x63\x75\x73\x6f\x75\x74\x22\x7d\x2c\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x64\x3d\x30\x2c\
-\x65\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x66\x2e\
-\x65\x76\x65\x6e\x74\x2e\x73\x69\x6d\x75\x6c\x61\x74\x65\x28\x62\
-\x2c\x61\x2e\x74\x61\x72\x67\x65\x74\x2c\x66\x2e\x65\x76\x65\x6e\
-\x74\x2e\x66\x69\x78\x28\x61\x29\x2c\x21\x30\x29\x7d\x3b\x66\x2e\
-\x65\x76\x65\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\x6c\x5b\x62\x5d\
-\x3d\x7b\x73\x65\x74\x75\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x29\x7b\x64\x2b\x2b\x3d\x3d\x3d\x30\x26\x26\x63\x2e\x61\x64\
-\x64\x45\x76\x65\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x61\
-\x2c\x65\x2c\x21\x30\x29\x7d\x2c\x74\x65\x61\x72\x64\x6f\x77\x6e\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x2d\x2d\x64\x3d\
-\x3d\x3d\x30\x26\x26\x63\x2e\x72\x65\x6d\x6f\x76\x65\x45\x76\x65\
-\x6e\x74\x4c\x69\x73\x74\x65\x6e\x65\x72\x28\x61\x2c\x65\x2c\x21\
-\x30\x29\x7d\x7d\x7d\x29\x2c\x66\x2e\x66\x6e\x2e\x65\x78\x74\x65\
-\x6e\x64\x28\x7b\x6f\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x2c\x63\x2c\x64\x2c\x65\x2c\x67\x29\x7b\x76\x61\x72\x20\x68\
-\x2c\x69\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\
-\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x7b\x74\x79\x70\x65\x6f\x66\
-\x20\x63\x21\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x64\
-\x3d\x63\x2c\x63\x3d\x62\x29\x3b\x66\x6f\x72\x28\x69\x20\x69\x6e\
-\x20\x61\x29\x74\x68\x69\x73\x2e\x6f\x6e\x28\x69\x2c\x63\x2c\x64\
-\x2c\x61\x5b\x69\x5d\x2c\x67\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\
-\x74\x68\x69\x73\x7d\x64\x3d\x3d\x6e\x75\x6c\x6c\x26\x26\x65\x3d\
-\x3d\x6e\x75\x6c\x6c\x3f\x28\x65\x3d\x63\x2c\x64\x3d\x63\x3d\x62\
-\x29\x3a\x65\x3d\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x74\x79\x70\x65\
-\x6f\x66\x20\x63\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x3f\x28\
-\x65\x3d\x64\x2c\x64\x3d\x62\x29\x3a\x28\x65\x3d\x64\x2c\x64\x3d\
-\x63\x2c\x63\x3d\x62\x29\x29\x3b\x69\x66\x28\x65\x3d\x3d\x3d\x21\
-\x31\x29\x65\x3d\x4a\x3b\x65\x6c\x73\x65\x20\x69\x66\x28\x21\x65\
-\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x67\x3d\x3d\
-\x3d\x31\x26\x26\x28\x68\x3d\x65\x2c\x65\x3d\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x7b\x66\x28\x29\x2e\x6f\x66\x66\x28\x61\
-\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x68\x2e\x61\x70\x70\x6c\x79\
-\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\
-\x7d\x2c\x65\x2e\x67\x75\x69\x64\x3d\x68\x2e\x67\x75\x69\x64\x7c\
-\x7c\x28\x68\x2e\x67\x75\x69\x64\x3d\x66\x2e\x67\x75\x69\x64\x2b\
-\x2b\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\
-\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\
-\x66\x2e\x65\x76\x65\x6e\x74\x2e\x61\x64\x64\x28\x74\x68\x69\x73\
-\x2c\x61\x2c\x65\x2c\x64\x2c\x63\x29\x7d\x29\x7d\x2c\x6f\x6e\x65\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\
-\x64\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6f\
-\x6e\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x61\x2c\x62\x2c\
-\x63\x2c\x64\x2c\x31\x29\x7d\x2c\x6f\x66\x66\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x64\x29\x7b\x69\x66\x28\x61\
-\x26\x26\x61\x2e\x70\x72\x65\x76\x65\x6e\x74\x44\x65\x66\x61\x75\
-\x6c\x74\x26\x26\x61\x2e\x68\x61\x6e\x64\x6c\x65\x4f\x62\x6a\x29\
-\x7b\x76\x61\x72\x20\x65\x3d\x61\x2e\x68\x61\x6e\x64\x6c\x65\x4f\
-\x62\x6a\x3b\x66\x28\x61\x2e\x64\x65\x6c\x65\x67\x61\x74\x65\x54\
-\x61\x72\x67\x65\x74\x29\x2e\x6f\x66\x66\x28\x65\x2e\x6e\x61\x6d\
-\x65\x73\x70\x61\x63\x65\x3f\x65\x2e\x74\x79\x70\x65\x2b\x22\x2e\
-\x22\x2b\x65\x2e\x6e\x61\x6d\x65\x73\x70\x61\x63\x65\x3a\x65\x2e\
-\x74\x79\x70\x65\x2c\x65\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x2c\
-\x65\x2e\x68\x61\x6e\x64\x6c\x65\x72\x29\x3b\x72\x65\x74\x75\x72\
-\x6e\x20\x74\x68\x69\x73\x7d\x69\x66\x28\x74\x79\x70\x65\x6f\x66\
-\x20\x61\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x7b\x66\x6f\
-\x72\x28\x76\x61\x72\x20\x67\x20\x69\x6e\x20\x61\x29\x74\x68\x69\
-\x73\x2e\x6f\x66\x66\x28\x67\x2c\x63\x2c\x61\x5b\x67\x5d\x29\x3b\
-\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x69\x66\x28\x63\
-\x3d\x3d\x3d\x21\x31\x7c\x7c\x74\x79\x70\x65\x6f\x66\x20\x63\x3d\
-\x3d\x22\x66\x75\x6e\x63\x74\x69\x6f\x6e\x22\x29\x64\x3d\x63\x2c\
-\x63\x3d\x62\x3b\x64\x3d\x3d\x3d\x21\x31\x26\x26\x28\x64\x3d\x4a\
-\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\
-\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x2e\
-\x65\x76\x65\x6e\x74\x2e\x72\x65\x6d\x6f\x76\x65\x28\x74\x68\x69\
-\x73\x2c\x61\x2c\x64\x2c\x63\x29\x7d\x29\x7d\x2c\x62\x69\x6e\x64\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\
-\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6f\x6e\x28\
-\x61\x2c\x6e\x75\x6c\x6c\x2c\x62\x2c\x63\x29\x7d\x2c\x75\x6e\x62\
-\x69\x6e\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\
-\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6f\x66\
-\x66\x28\x61\x2c\x6e\x75\x6c\x6c\x2c\x62\x29\x7d\x2c\x6c\x69\x76\
-\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\
-\x29\x7b\x66\x28\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x78\x74\
-\x29\x2e\x6f\x6e\x28\x61\x2c\x74\x68\x69\x73\x2e\x73\x65\x6c\x65\
-\x63\x74\x6f\x72\x2c\x62\x2c\x63\x29\x3b\x72\x65\x74\x75\x72\x6e\
-\x20\x74\x68\x69\x73\x7d\x2c\x64\x69\x65\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x66\x28\x74\x68\x69\x73\x2e\
-\x63\x6f\x6e\x74\x65\x78\x74\x29\x2e\x6f\x66\x66\x28\x61\x2c\x74\
-\x68\x69\x73\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x7c\x7c\x22\x2a\
-\x2a\x22\x2c\x62\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\
-\x73\x7d\x2c\x64\x65\x6c\x65\x67\x61\x74\x65\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x72\x65\
-\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6f\x6e\x28\x62\x2c\x61\
-\x2c\x63\x2c\x64\x29\x7d\x2c\x75\x6e\x64\x65\x6c\x65\x67\x61\x74\
-\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\
-\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x72\x67\x75\x6d\x65\x6e\
-\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x31\x3f\x74\x68\x69\
-\x73\x2e\x6f\x66\x66\x28\x61\x2c\x22\x2a\x2a\x22\x29\x3a\x74\x68\
-\x69\x73\x2e\x6f\x66\x66\x28\x62\x2c\x61\x2c\x63\x29\x7d\x2c\x74\
-\x72\x69\x67\x67\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\
-\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\
-\x7b\x66\x2e\x65\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\
-\x28\x61\x2c\x62\x2c\x74\x68\x69\x73\x29\x7d\x29\x7d\x2c\x74\x72\
-\x69\x67\x67\x65\x72\x48\x61\x6e\x64\x6c\x65\x72\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x74\x68\
-\x69\x73\x5b\x30\x5d\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x65\
-\x76\x65\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x61\x2c\x62\
-\x2c\x74\x68\x69\x73\x5b\x30\x5d\x2c\x21\x30\x29\x7d\x2c\x74\x6f\
-\x67\x67\x6c\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\
-\x7b\x76\x61\x72\x20\x62\x3d\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\
-\x2c\x63\x3d\x61\x2e\x67\x75\x69\x64\x7c\x7c\x66\x2e\x67\x75\x69\
-\x64\x2b\x2b\x2c\x64\x3d\x30\x2c\x65\x3d\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x63\x29\x7b\x76\x61\x72\x20\x65\x3d\x28\x66\x2e\x5f\
-\x64\x61\x74\x61\x28\x74\x68\x69\x73\x2c\x22\x6c\x61\x73\x74\x54\
-\x6f\x67\x67\x6c\x65\x22\x2b\x61\x2e\x67\x75\x69\x64\x29\x7c\x7c\
-\x30\x29\x25\x64\x3b\x66\x2e\x5f\x64\x61\x74\x61\x28\x74\x68\x69\
-\x73\x2c\x22\x6c\x61\x73\x74\x54\x6f\x67\x67\x6c\x65\x22\x2b\x61\
-\x2e\x67\x75\x69\x64\x2c\x65\x2b\x31\x29\x2c\x63\x2e\x70\x72\x65\
-\x76\x65\x6e\x74\x44\x65\x66\x61\x75\x6c\x74\x28\x29\x3b\x72\x65\
-\x74\x75\x72\x6e\x20\x62\x5b\x65\x5d\x2e\x61\x70\x70\x6c\x79\x28\
-\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x7c\
-\x7c\x21\x31\x7d\x3b\x65\x2e\x67\x75\x69\x64\x3d\x63\x3b\x77\x68\
-\x69\x6c\x65\x28\x64\x3c\x62\x2e\x6c\x65\x6e\x67\x74\x68\x29\x62\
-\x5b\x64\x2b\x2b\x5d\x2e\x67\x75\x69\x64\x3d\x63\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x6c\x69\x63\x6b\x28\x65\
-\x29\x7d\x2c\x68\x6f\x76\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\
-\x69\x73\x2e\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x28\x61\x29\
-\x2e\x6d\x6f\x75\x73\x65\x6c\x65\x61\x76\x65\x28\x62\x7c\x7c\x61\
-\x29\x7d\x7d\x29\x2c\x66\x2e\x65\x61\x63\x68\x28\x22\x62\x6c\x75\
-\x72\x20\x66\x6f\x63\x75\x73\x20\x66\x6f\x63\x75\x73\x69\x6e\x20\
-\x66\x6f\x63\x75\x73\x6f\x75\x74\x20\x6c\x6f\x61\x64\x20\x72\x65\
-\x73\x69\x7a\x65\x20\x73\x63\x72\x6f\x6c\x6c\x20\x75\x6e\x6c\x6f\
-\x61\x64\x20\x63\x6c\x69\x63\x6b\x20\x64\x62\x6c\x63\x6c\x69\x63\
-\x6b\x20\x6d\x6f\x75\x73\x65\x64\x6f\x77\x6e\x20\x6d\x6f\x75\x73\
-\x65\x75\x70\x20\x6d\x6f\x75\x73\x65\x6d\x6f\x76\x65\x20\x6d\x6f\
-\x75\x73\x65\x6f\x76\x65\x72\x20\x6d\x6f\x75\x73\x65\x6f\x75\x74\
-\x20\x6d\x6f\x75\x73\x65\x65\x6e\x74\x65\x72\x20\x6d\x6f\x75\x73\
-\x65\x6c\x65\x61\x76\x65\x20\x63\x68\x61\x6e\x67\x65\x20\x73\x65\
-\x6c\x65\x63\x74\x20\x73\x75\x62\x6d\x69\x74\x20\x6b\x65\x79\x64\
-\x6f\x77\x6e\x20\x6b\x65\x79\x70\x72\x65\x73\x73\x20\x6b\x65\x79\
-\x75\x70\x20\x65\x72\x72\x6f\x72\x20\x63\x6f\x6e\x74\x65\x78\x74\
-\x6d\x65\x6e\x75\x22\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\
-\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x66\
-\x2e\x66\x6e\x5b\x62\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x2c\x63\x29\x7b\x63\x3d\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x63\
-\x3d\x61\x2c\x61\x3d\x6e\x75\x6c\x6c\x29\x3b\x72\x65\x74\x75\x72\
-\x6e\x20\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\
-\x74\x68\x3e\x30\x3f\x74\x68\x69\x73\x2e\x6f\x6e\x28\x62\x2c\x6e\
-\x75\x6c\x6c\x2c\x61\x2c\x63\x29\x3a\x74\x68\x69\x73\x2e\x74\x72\
-\x69\x67\x67\x65\x72\x28\x62\x29\x7d\x2c\x66\x2e\x61\x74\x74\x72\
-\x46\x6e\x26\x26\x28\x66\x2e\x61\x74\x74\x72\x46\x6e\x5b\x62\x5d\
-\x3d\x21\x30\x29\x2c\x43\x2e\x74\x65\x73\x74\x28\x62\x29\x26\x26\
-\x28\x66\x2e\x65\x76\x65\x6e\x74\x2e\x66\x69\x78\x48\x6f\x6f\x6b\
-\x73\x5b\x62\x5d\x3d\x66\x2e\x65\x76\x65\x6e\x74\x2e\x6b\x65\x79\
-\x48\x6f\x6f\x6b\x73\x29\x2c\x44\x2e\x74\x65\x73\x74\x28\x62\x29\
-\x26\x26\x28\x66\x2e\x65\x76\x65\x6e\x74\x2e\x66\x69\x78\x48\x6f\
-\x6f\x6b\x73\x5b\x62\x5d\x3d\x66\x2e\x65\x76\x65\x6e\x74\x2e\x6d\
-\x6f\x75\x73\x65\x48\x6f\x6f\x6b\x73\x29\x7d\x29\x2c\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x20\x78\x28\x61\x2c\x62\x2c\x63\x2c\x65\x2c\x66\x2c\x67\x29\x7b\
-\x66\x6f\x72\x28\x76\x61\x72\x20\x68\x3d\x30\x2c\x69\x3d\x65\x2e\
-\x6c\x65\x6e\x67\x74\x68\x3b\x68\x3c\x69\x3b\x68\x2b\x2b\x29\x7b\
-\x76\x61\x72\x20\x6a\x3d\x65\x5b\x68\x5d\x3b\x69\x66\x28\x6a\x29\
-\x7b\x76\x61\x72\x20\x6b\x3d\x21\x31\x3b\x6a\x3d\x6a\x5b\x61\x5d\
-\x3b\x77\x68\x69\x6c\x65\x28\x6a\x29\x7b\x69\x66\x28\x6a\x5b\x64\
-\x5d\x3d\x3d\x3d\x63\x29\x7b\x6b\x3d\x65\x5b\x6a\x2e\x73\x69\x7a\
-\x73\x65\x74\x5d\x3b\x62\x72\x65\x61\x6b\x7d\x69\x66\x28\x6a\x2e\
-\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x7b\x67\x7c\
-\x7c\x28\x6a\x5b\x64\x5d\x3d\x63\x2c\x6a\x2e\x73\x69\x7a\x73\x65\
-\x74\x3d\x68\x29\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x62\
-\x21\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x7b\x69\x66\x28\x6a\
-\x3d\x3d\x3d\x62\x29\x7b\x6b\x3d\x21\x30\x3b\x62\x72\x65\x61\x6b\
-\x7d\x7d\x65\x6c\x73\x65\x20\x69\x66\x28\x6d\x2e\x66\x69\x6c\x74\
-\x65\x72\x28\x62\x2c\x5b\x6a\x5d\x29\x2e\x6c\x65\x6e\x67\x74\x68\
-\x3e\x30\x29\x7b\x6b\x3d\x6a\x3b\x62\x72\x65\x61\x6b\x7d\x7d\x6a\
-\x3d\x6a\x5b\x61\x5d\x7d\x65\x5b\x68\x5d\x3d\x6b\x7d\x7d\x7d\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x28\x61\x2c\x62\x2c\x63\x2c\
-\x65\x2c\x66\x2c\x67\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x68\
-\x3d\x30\x2c\x69\x3d\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x68\x3c\
-\x69\x3b\x68\x2b\x2b\x29\x7b\x76\x61\x72\x20\x6a\x3d\x65\x5b\x68\
-\x5d\x3b\x69\x66\x28\x6a\x29\x7b\x76\x61\x72\x20\x6b\x3d\x21\x31\
-\x3b\x6a\x3d\x6a\x5b\x61\x5d\x3b\x77\x68\x69\x6c\x65\x28\x6a\x29\
-\x7b\x69\x66\x28\x6a\x5b\x64\x5d\x3d\x3d\x3d\x63\x29\x7b\x6b\x3d\
-\x65\x5b\x6a\x2e\x73\x69\x7a\x73\x65\x74\x5d\x3b\x62\x72\x65\x61\
-\x6b\x7d\x6a\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\
-\x26\x26\x21\x67\x26\x26\x28\x6a\x5b\x64\x5d\x3d\x63\x2c\x6a\x2e\
-\x73\x69\x7a\x73\x65\x74\x3d\x68\x29\x3b\x69\x66\x28\x6a\x2e\x6e\
-\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\
-\x61\x73\x65\x28\x29\x3d\x3d\x3d\x62\x29\x7b\x6b\x3d\x6a\x3b\x62\
-\x72\x65\x61\x6b\x7d\x6a\x3d\x6a\x5b\x61\x5d\x7d\x65\x5b\x68\x5d\
-\x3d\x6b\x7d\x7d\x7d\x76\x61\x72\x20\x61\x3d\x2f\x28\x28\x3f\x3a\
-\x5c\x28\x28\x3f\x3a\x5c\x28\x5b\x5e\x28\x29\x5d\x2b\x5c\x29\x7c\
-\x5b\x5e\x28\x29\x5d\x2b\x29\x2b\x5c\x29\x7c\x5c\x5b\x28\x3f\x3a\
-\x5c\x5b\x5b\x5e\x5c\x5b\x5c\x5d\x5d\x2a\x5c\x5d\x7c\x5b\x27\x22\
-\x5d\x5b\x5e\x27\x22\x5d\x2a\x5b\x27\x22\x5d\x7c\x5b\x5e\x5c\x5b\
-\x5c\x5d\x27\x22\x5d\x2b\x29\x2b\x5c\x5d\x7c\x5c\x5c\x2e\x7c\x5b\
-\x5e\x20\x3e\x2b\x7e\x2c\x28\x5c\x5b\x5c\x5c\x5d\x2b\x29\x2b\x7c\
-\x5b\x3e\x2b\x7e\x5d\x29\x28\x5c\x73\x2a\x2c\x5c\x73\x2a\x29\x3f\
-\x28\x28\x3f\x3a\x2e\x7c\x5c\x72\x7c\x5c\x6e\x29\x2a\x29\x2f\x67\
-\x2c\x64\x3d\x22\x73\x69\x7a\x63\x61\x63\x68\x65\x22\x2b\x28\x4d\
-\x61\x74\x68\x2e\x72\x61\x6e\x64\x6f\x6d\x28\x29\x2b\x22\x22\x29\
-\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x22\x2e\x22\x2c\x22\x22\x29\
-\x2c\x65\x3d\x30\x2c\x67\x3d\x4f\x62\x6a\x65\x63\x74\x2e\x70\x72\
-\x6f\x74\x6f\x74\x79\x70\x65\x2e\x74\x6f\x53\x74\x72\x69\x6e\x67\
-\x2c\x68\x3d\x21\x31\x2c\x69\x3d\x21\x30\x2c\x6a\x3d\x2f\x5c\x5c\
-\x2f\x67\x2c\x6b\x3d\x2f\x5c\x72\x5c\x6e\x2f\x67\x2c\x6c\x3d\x2f\
-\x5c\x57\x2f\x3b\x5b\x30\x2c\x30\x5d\x2e\x73\x6f\x72\x74\x28\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x3d\x21\x31\x3b\x72\
-\x65\x74\x75\x72\x6e\x20\x30\x7d\x29\x3b\x76\x61\x72\x20\x6d\x3d\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x2c\x64\x2c\x65\x2c\x66\
-\x29\x7b\x65\x3d\x65\x7c\x7c\x5b\x5d\x2c\x64\x3d\x64\x7c\x7c\x63\
-\x3b\x76\x61\x72\x20\x68\x3d\x64\x3b\x69\x66\x28\x64\x2e\x6e\x6f\
-\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x31\x26\x26\x64\x2e\x6e\x6f\
-\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x39\x29\x72\x65\x74\x75\x72\
-\x6e\x5b\x5d\x3b\x69\x66\x28\x21\x62\x7c\x7c\x74\x79\x70\x65\x6f\
-\x66\x20\x62\x21\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x72\x65\
-\x74\x75\x72\x6e\x20\x65\x3b\x76\x61\x72\x20\x69\x2c\x6a\x2c\x6b\
-\x2c\x6c\x2c\x6e\x2c\x71\x2c\x72\x2c\x74\x2c\x75\x3d\x21\x30\x2c\
-\x76\x3d\x6d\x2e\x69\x73\x58\x4d\x4c\x28\x64\x29\x2c\x77\x3d\x5b\
-\x5d\x2c\x78\x3d\x62\x3b\x64\x6f\x7b\x61\x2e\x65\x78\x65\x63\x28\
-\x22\x22\x29\x2c\x69\x3d\x61\x2e\x65\x78\x65\x63\x28\x78\x29\x3b\
-\x69\x66\x28\x69\x29\x7b\x78\x3d\x69\x5b\x33\x5d\x2c\x77\x2e\x70\
-\x75\x73\x68\x28\x69\x5b\x31\x5d\x29\x3b\x69\x66\x28\x69\x5b\x32\
-\x5d\x29\x7b\x6c\x3d\x69\x5b\x33\x5d\x3b\x62\x72\x65\x61\x6b\x7d\
-\x7d\x7d\x77\x68\x69\x6c\x65\x28\x69\x29\x3b\x69\x66\x28\x77\x2e\
-\x6c\x65\x6e\x67\x74\x68\x3e\x31\x26\x26\x70\x2e\x65\x78\x65\x63\
-\x28\x62\x29\x29\x69\x66\x28\x77\x2e\x6c\x65\x6e\x67\x74\x68\x3d\
-\x3d\x3d\x32\x26\x26\x6f\x2e\x72\x65\x6c\x61\x74\x69\x76\x65\x5b\
-\x77\x5b\x30\x5d\x5d\x29\x6a\x3d\x79\x28\x77\x5b\x30\x5d\x2b\x77\
-\x5b\x31\x5d\x2c\x64\x2c\x66\x29\x3b\x65\x6c\x73\x65\x7b\x6a\x3d\
-\x6f\x2e\x72\x65\x6c\x61\x74\x69\x76\x65\x5b\x77\x5b\x30\x5d\x5d\
-\x3f\x5b\x64\x5d\x3a\x6d\x28\x77\x2e\x73\x68\x69\x66\x74\x28\x29\
-\x2c\x64\x29\x3b\x77\x68\x69\x6c\x65\x28\x77\x2e\x6c\x65\x6e\x67\
-\x74\x68\x29\x62\x3d\x77\x2e\x73\x68\x69\x66\x74\x28\x29\x2c\x6f\
-\x2e\x72\x65\x6c\x61\x74\x69\x76\x65\x5b\x62\x5d\x26\x26\x28\x62\
-\x2b\x3d\x77\x2e\x73\x68\x69\x66\x74\x28\x29\x29\x2c\x6a\x3d\x79\
-\x28\x62\x2c\x6a\x2c\x66\x29\x7d\x65\x6c\x73\x65\x7b\x21\x66\x26\
-\x26\x77\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x31\x26\x26\x64\x2e\x6e\
-\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x39\x26\x26\x21\x76\x26\
-\x26\x6f\x2e\x6d\x61\x74\x63\x68\x2e\x49\x44\x2e\x74\x65\x73\x74\
-\x28\x77\x5b\x30\x5d\x29\x26\x26\x21\x6f\x2e\x6d\x61\x74\x63\x68\
-\x2e\x49\x44\x2e\x74\x65\x73\x74\x28\x77\x5b\x77\x2e\x6c\x65\x6e\
-\x67\x74\x68\x2d\x31\x5d\x29\x26\x26\x28\x6e\x3d\x6d\x2e\x66\x69\
-\x6e\x64\x28\x77\x2e\x73\x68\x69\x66\x74\x28\x29\x2c\x64\x2c\x76\
-\x29\x2c\x64\x3d\x6e\x2e\x65\x78\x70\x72\x3f\x6d\x2e\x66\x69\x6c\
-\x74\x65\x72\x28\x6e\x2e\x65\x78\x70\x72\x2c\x6e\x2e\x73\x65\x74\
-\x29\x5b\x30\x5d\x3a\x6e\x2e\x73\x65\x74\x5b\x30\x5d\x29\x3b\x69\
-\x66\x28\x64\x29\x7b\x6e\x3d\x66\x3f\x7b\x65\x78\x70\x72\x3a\x77\
-\x2e\x70\x6f\x70\x28\x29\x2c\x73\x65\x74\x3a\x73\x28\x66\x29\x7d\
-\x3a\x6d\x2e\x66\x69\x6e\x64\x28\x77\x2e\x70\x6f\x70\x28\x29\x2c\
-\x77\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x26\x26\x28\x77\
-\x5b\x30\x5d\x3d\x3d\x3d\x22\x7e\x22\x7c\x7c\x77\x5b\x30\x5d\x3d\
-\x3d\x3d\x22\x2b\x22\x29\x26\x26\x64\x2e\x70\x61\x72\x65\x6e\x74\
-\x4e\x6f\x64\x65\x3f\x64\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\
-\x65\x3a\x64\x2c\x76\x29\x2c\x6a\x3d\x6e\x2e\x65\x78\x70\x72\x3f\
-\x6d\x2e\x66\x69\x6c\x74\x65\x72\x28\x6e\x2e\x65\x78\x70\x72\x2c\
-\x6e\x2e\x73\x65\x74\x29\x3a\x6e\x2e\x73\x65\x74\x2c\x77\x2e\x6c\
-\x65\x6e\x67\x74\x68\x3e\x30\x3f\x6b\x3d\x73\x28\x6a\x29\x3a\x75\
-\x3d\x21\x31\x3b\x77\x68\x69\x6c\x65\x28\x77\x2e\x6c\x65\x6e\x67\
-\x74\x68\x29\x71\x3d\x77\x2e\x70\x6f\x70\x28\x29\x2c\x72\x3d\x71\
-\x2c\x6f\x2e\x72\x65\x6c\x61\x74\x69\x76\x65\x5b\x71\x5d\x3f\x72\
-\x3d\x77\x2e\x70\x6f\x70\x28\x29\x3a\x71\x3d\x22\x22\x2c\x72\x3d\
-\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x72\x3d\x64\x29\x2c\x6f\x2e\x72\
-\x65\x6c\x61\x74\x69\x76\x65\x5b\x71\x5d\x28\x6b\x2c\x72\x2c\x76\
-\x29\x7d\x65\x6c\x73\x65\x20\x6b\x3d\x77\x3d\x5b\x5d\x7d\x6b\x7c\
-\x7c\x28\x6b\x3d\x6a\x29\x2c\x6b\x7c\x7c\x6d\x2e\x65\x72\x72\x6f\
-\x72\x28\x71\x7c\x7c\x62\x29\x3b\x69\x66\x28\x67\x2e\x63\x61\x6c\
-\x6c\x28\x6b\x29\x3d\x3d\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\
-\x41\x72\x72\x61\x79\x5d\x22\x29\x69\x66\x28\x21\x75\x29\x65\x2e\
-\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x65\x2c\x6b\x29\x3b\
-\x65\x6c\x73\x65\x20\x69\x66\x28\x64\x26\x26\x64\x2e\x6e\x6f\x64\
-\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x66\x6f\x72\x28\x74\x3d\
-\x30\x3b\x6b\x5b\x74\x5d\x21\x3d\x6e\x75\x6c\x6c\x3b\x74\x2b\x2b\
-\x29\x6b\x5b\x74\x5d\x26\x26\x28\x6b\x5b\x74\x5d\x3d\x3d\x3d\x21\
-\x30\x7c\x7c\x6b\x5b\x74\x5d\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\
-\x3d\x3d\x3d\x31\x26\x26\x6d\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\
-\x28\x64\x2c\x6b\x5b\x74\x5d\x29\x29\x26\x26\x65\x2e\x70\x75\x73\
-\x68\x28\x6a\x5b\x74\x5d\x29\x3b\x65\x6c\x73\x65\x20\x66\x6f\x72\
-\x28\x74\x3d\x30\x3b\x6b\x5b\x74\x5d\x21\x3d\x6e\x75\x6c\x6c\x3b\
-\x74\x2b\x2b\x29\x6b\x5b\x74\x5d\x26\x26\x6b\x5b\x74\x5d\x2e\x6e\
-\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x65\x2e\x70\
-\x75\x73\x68\x28\x6a\x5b\x74\x5d\x29\x3b\x65\x6c\x73\x65\x20\x73\
-\x28\x6b\x2c\x65\x29\x3b\x6c\x26\x26\x28\x6d\x28\x6c\x2c\x68\x2c\
-\x65\x2c\x66\x29\x2c\x6d\x2e\x75\x6e\x69\x71\x75\x65\x53\x6f\x72\
-\x74\x28\x65\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x7d\x3b\
-\x6d\x2e\x75\x6e\x69\x71\x75\x65\x53\x6f\x72\x74\x3d\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x75\x29\x7b\x68\
-\x3d\x69\x2c\x61\x2e\x73\x6f\x72\x74\x28\x75\x29\x3b\x69\x66\x28\
-\x68\x29\x66\x6f\x72\x28\x76\x61\x72\x20\x62\x3d\x31\x3b\x62\x3c\
-\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x62\x2b\x2b\x29\x61\x5b\x62\
-\x5d\x3d\x3d\x3d\x61\x5b\x62\x2d\x31\x5d\x26\x26\x61\x2e\x73\x70\
-\x6c\x69\x63\x65\x28\x62\x2d\x2d\x2c\x31\x29\x7d\x72\x65\x74\x75\
-\x72\x6e\x20\x61\x7d\x2c\x6d\x2e\x6d\x61\x74\x63\x68\x65\x73\x3d\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\
-\x74\x75\x72\x6e\x20\x6d\x28\x61\x2c\x6e\x75\x6c\x6c\x2c\x6e\x75\
-\x6c\x6c\x2c\x62\x29\x7d\x2c\x6d\x2e\x6d\x61\x74\x63\x68\x65\x73\
-\x53\x65\x6c\x65\x63\x74\x6f\x72\x3d\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x6d\x28\
-\x62\x2c\x6e\x75\x6c\x6c\x2c\x6e\x75\x6c\x6c\x2c\x5b\x61\x5d\x29\
-\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x30\x7d\x2c\x6d\x2e\x66\x69\x6e\
-\x64\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\
-\x29\x7b\x76\x61\x72\x20\x64\x2c\x65\x2c\x66\x2c\x67\x2c\x68\x2c\
-\x69\x3b\x69\x66\x28\x21\x61\x29\x72\x65\x74\x75\x72\x6e\x5b\x5d\
-\x3b\x66\x6f\x72\x28\x65\x3d\x30\x2c\x66\x3d\x6f\x2e\x6f\x72\x64\
-\x65\x72\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x65\x3c\x66\x3b\x65\x2b\
-\x2b\x29\x7b\x68\x3d\x6f\x2e\x6f\x72\x64\x65\x72\x5b\x65\x5d\x3b\
-\x69\x66\x28\x67\x3d\x6f\x2e\x6c\x65\x66\x74\x4d\x61\x74\x63\x68\
-\x5b\x68\x5d\x2e\x65\x78\x65\x63\x28\x61\x29\x29\x7b\x69\x3d\x67\
-\x5b\x31\x5d\x2c\x67\x2e\x73\x70\x6c\x69\x63\x65\x28\x31\x2c\x31\
-\x29\x3b\x69\x66\x28\x69\x2e\x73\x75\x62\x73\x74\x72\x28\x69\x2e\
-\x6c\x65\x6e\x67\x74\x68\x2d\x31\x29\x21\x3d\x3d\x22\x5c\x5c\x22\
-\x29\x7b\x67\x5b\x31\x5d\x3d\x28\x67\x5b\x31\x5d\x7c\x7c\x22\x22\
-\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6a\x2c\x22\x22\x29\x2c\
-\x64\x3d\x6f\x2e\x66\x69\x6e\x64\x5b\x68\x5d\x28\x67\x2c\x62\x2c\
-\x63\x29\x3b\x69\x66\x28\x64\x21\x3d\x6e\x75\x6c\x6c\x29\x7b\x61\
-\x3d\x61\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6f\x2e\x6d\x61\x74\
-\x63\x68\x5b\x68\x5d\x2c\x22\x22\x29\x3b\x62\x72\x65\x61\x6b\x7d\
-\x7d\x7d\x7d\x64\x7c\x7c\x28\x64\x3d\x74\x79\x70\x65\x6f\x66\x20\
-\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\
-\x61\x67\x4e\x61\x6d\x65\x21\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\
-\x65\x64\x22\x3f\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\
-\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x2a\x22\x29\x3a\
-\x5b\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x7b\x73\x65\x74\x3a\x64\
-\x2c\x65\x78\x70\x72\x3a\x61\x7d\x7d\x2c\x6d\x2e\x66\x69\x6c\x74\
-\x65\x72\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\
-\x64\x2c\x65\x29\x7b\x76\x61\x72\x20\x66\x2c\x67\x2c\x68\x2c\x69\
-\x2c\x6a\x2c\x6b\x2c\x6c\x2c\x6e\x2c\x70\x2c\x71\x3d\x61\x2c\x72\
-\x3d\x5b\x5d\x2c\x73\x3d\x63\x2c\x74\x3d\x63\x26\x26\x63\x5b\x30\
-\x5d\x26\x26\x6d\x2e\x69\x73\x58\x4d\x4c\x28\x63\x5b\x30\x5d\x29\
-\x3b\x77\x68\x69\x6c\x65\x28\x61\x26\x26\x63\x2e\x6c\x65\x6e\x67\
-\x74\x68\x29\x7b\x66\x6f\x72\x28\x68\x20\x69\x6e\x20\x6f\x2e\x66\
-\x69\x6c\x74\x65\x72\x29\x69\x66\x28\x28\x66\x3d\x6f\x2e\x6c\x65\
-\x66\x74\x4d\x61\x74\x63\x68\x5b\x68\x5d\x2e\x65\x78\x65\x63\x28\
-\x61\x29\x29\x21\x3d\x6e\x75\x6c\x6c\x26\x26\x66\x5b\x32\x5d\x29\
-\x7b\x6b\x3d\x6f\x2e\x66\x69\x6c\x74\x65\x72\x5b\x68\x5d\x2c\x6c\
-\x3d\x66\x5b\x31\x5d\x2c\x67\x3d\x21\x31\x2c\x66\x2e\x73\x70\x6c\
-\x69\x63\x65\x28\x31\x2c\x31\x29\x3b\x69\x66\x28\x6c\x2e\x73\x75\
-\x62\x73\x74\x72\x28\x6c\x2e\x6c\x65\x6e\x67\x74\x68\x2d\x31\x29\
-\x3d\x3d\x3d\x22\x5c\x5c\x22\x29\x63\x6f\x6e\x74\x69\x6e\x75\x65\
-\x3b\x73\x3d\x3d\x3d\x72\x26\x26\x28\x72\x3d\x5b\x5d\x29\x3b\x69\
-\x66\x28\x6f\x2e\x70\x72\x65\x46\x69\x6c\x74\x65\x72\x5b\x68\x5d\
-\x29\x7b\x66\x3d\x6f\x2e\x70\x72\x65\x46\x69\x6c\x74\x65\x72\x5b\
-\x68\x5d\x28\x66\x2c\x73\x2c\x64\x2c\x72\x2c\x65\x2c\x74\x29\x3b\
-\x69\x66\x28\x21\x66\x29\x67\x3d\x69\x3d\x21\x30\x3b\x65\x6c\x73\
-\x65\x20\x69\x66\x28\x66\x3d\x3d\x3d\x21\x30\x29\x63\x6f\x6e\x74\
-\x69\x6e\x75\x65\x7d\x69\x66\x28\x66\x29\x66\x6f\x72\x28\x6e\x3d\
-\x30\x3b\x28\x6a\x3d\x73\x5b\x6e\x5d\x29\x21\x3d\x6e\x75\x6c\x6c\
-\x3b\x6e\x2b\x2b\x29\x6a\x26\x26\x28\x69\x3d\x6b\x28\x6a\x2c\x66\
-\x2c\x6e\x2c\x73\x29\x2c\x70\x3d\x65\x5e\x69\x2c\x64\x26\x26\x69\
-\x21\x3d\x6e\x75\x6c\x6c\x3f\x70\x3f\x67\x3d\x21\x30\x3a\x73\x5b\
-\x6e\x5d\x3d\x21\x31\x3a\x70\x26\x26\x28\x72\x2e\x70\x75\x73\x68\
-\x28\x6a\x29\x2c\x67\x3d\x21\x30\x29\x29\x3b\x69\x66\x28\x69\x21\
-\x3d\x3d\x62\x29\x7b\x64\x7c\x7c\x28\x73\x3d\x72\x29\x2c\x61\x3d\
-\x61\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6f\x2e\x6d\x61\x74\x63\
-\x68\x5b\x68\x5d\x2c\x22\x22\x29\x3b\x69\x66\x28\x21\x67\x29\x72\
-\x65\x74\x75\x72\x6e\x5b\x5d\x3b\x62\x72\x65\x61\x6b\x7d\x7d\x69\
-\x66\x28\x61\x3d\x3d\x3d\x71\x29\x69\x66\x28\x67\x3d\x3d\x6e\x75\
-\x6c\x6c\x29\x6d\x2e\x65\x72\x72\x6f\x72\x28\x61\x29\x3b\x65\x6c\
-\x73\x65\x20\x62\x72\x65\x61\x6b\x3b\x71\x3d\x61\x7d\x72\x65\x74\
-\x75\x72\x6e\x20\x73\x7d\x2c\x6d\x2e\x65\x72\x72\x6f\x72\x3d\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x74\x68\x72\x6f\x77\
-\x20\x6e\x65\x77\x20\x45\x72\x72\x6f\x72\x28\x22\x53\x79\x6e\x74\
-\x61\x78\x20\x65\x72\x72\x6f\x72\x2c\x20\x75\x6e\x72\x65\x63\x6f\
-\x67\x6e\x69\x7a\x65\x64\x20\x65\x78\x70\x72\x65\x73\x73\x69\x6f\
-\x6e\x3a\x20\x22\x2b\x61\x29\x7d\x3b\x76\x61\x72\x20\x6e\x3d\x6d\
-\x2e\x67\x65\x74\x54\x65\x78\x74\x3d\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x2c\x63\x2c\x64\x3d\x61\
-\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x2c\x65\x3d\x22\x22\x3b\x69\
-\x66\x28\x64\x29\x7b\x69\x66\x28\x64\x3d\x3d\x3d\x31\x7c\x7c\x64\
-\x3d\x3d\x3d\x39\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\
-\x61\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x3d\x3d\x22\
-\x73\x74\x72\x69\x6e\x67\x22\x29\x72\x65\x74\x75\x72\x6e\x20\x61\
-\x2e\x74\x65\x78\x74\x43\x6f\x6e\x74\x65\x6e\x74\x3b\x69\x66\x28\
-\x74\x79\x70\x65\x6f\x66\x20\x61\x2e\x69\x6e\x6e\x65\x72\x54\x65\
-\x78\x74\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x72\x65\x74\
-\x75\x72\x6e\x20\x61\x2e\x69\x6e\x6e\x65\x72\x54\x65\x78\x74\x2e\
-\x72\x65\x70\x6c\x61\x63\x65\x28\x6b\x2c\x22\x22\x29\x3b\x66\x6f\
-\x72\x28\x61\x3d\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\
-\x3b\x61\x3b\x61\x3d\x61\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\
-\x6e\x67\x29\x65\x2b\x3d\x6e\x28\x61\x29\x7d\x65\x6c\x73\x65\x20\
-\x69\x66\x28\x64\x3d\x3d\x3d\x33\x7c\x7c\x64\x3d\x3d\x3d\x34\x29\
-\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x6e\x6f\x64\x65\x56\x61\x6c\
-\x75\x65\x7d\x65\x6c\x73\x65\x20\x66\x6f\x72\x28\x62\x3d\x30\x3b\
-\x63\x3d\x61\x5b\x62\x5d\x3b\x62\x2b\x2b\x29\x63\x2e\x6e\x6f\x64\
-\x65\x54\x79\x70\x65\x21\x3d\x3d\x38\x26\x26\x28\x65\x2b\x3d\x6e\
-\x28\x63\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x7d\x2c\x6f\
-\x3d\x6d\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x73\x3d\x7b\x6f\x72\
-\x64\x65\x72\x3a\x5b\x22\x49\x44\x22\x2c\x22\x4e\x41\x4d\x45\x22\
-\x2c\x22\x54\x41\x47\x22\x5d\x2c\x6d\x61\x74\x63\x68\x3a\x7b\x49\
-\x44\x3a\x2f\x23\x28\x28\x3f\x3a\x5b\x5c\x77\x5c\x75\x30\x30\x63\
-\x30\x2d\x5c\x75\x46\x46\x46\x46\x5c\x2d\x5d\x7c\x5c\x5c\x2e\x29\
-\x2b\x29\x2f\x2c\x43\x4c\x41\x53\x53\x3a\x2f\x5c\x2e\x28\x28\x3f\
-\x3a\x5b\x5c\x77\x5c\x75\x30\x30\x63\x30\x2d\x5c\x75\x46\x46\x46\
-\x46\x5c\x2d\x5d\x7c\x5c\x5c\x2e\x29\x2b\x29\x2f\x2c\x4e\x41\x4d\
-\x45\x3a\x2f\x5c\x5b\x6e\x61\x6d\x65\x3d\x5b\x27\x22\x5d\x2a\x28\
-\x28\x3f\x3a\x5b\x5c\x77\x5c\x75\x30\x30\x63\x30\x2d\x5c\x75\x46\
-\x46\x46\x46\x5c\x2d\x5d\x7c\x5c\x5c\x2e\x29\x2b\x29\x5b\x27\x22\
-\x5d\x2a\x5c\x5d\x2f\x2c\x41\x54\x54\x52\x3a\x2f\x5c\x5b\x5c\x73\
-\x2a\x28\x28\x3f\x3a\x5b\x5c\x77\x5c\x75\x30\x30\x63\x30\x2d\x5c\
-\x75\x46\x46\x46\x46\x5c\x2d\x5d\x7c\x5c\x5c\x2e\x29\x2b\x29\x5c\
-\x73\x2a\x28\x3f\x3a\x28\x5c\x53\x3f\x3d\x29\x5c\x73\x2a\x28\x3f\
-\x3a\x28\x5b\x27\x22\x5d\x29\x28\x2e\x2a\x3f\x29\x5c\x33\x7c\x28\
-\x23\x3f\x28\x3f\x3a\x5b\x5c\x77\x5c\x75\x30\x30\x63\x30\x2d\x5c\
-\x75\x46\x46\x46\x46\x5c\x2d\x5d\x7c\x5c\x5c\x2e\x29\x2a\x29\x7c\
-\x29\x7c\x29\x5c\x73\x2a\x5c\x5d\x2f\x2c\x54\x41\x47\x3a\x2f\x5e\
-\x28\x28\x3f\x3a\x5b\x5c\x77\x5c\x75\x30\x30\x63\x30\x2d\x5c\x75\
-\x46\x46\x46\x46\x5c\x2a\x5c\x2d\x5d\x7c\x5c\x5c\x2e\x29\x2b\x29\
-\x2f\x2c\x43\x48\x49\x4c\x44\x3a\x2f\x3a\x28\x6f\x6e\x6c\x79\x7c\
-\x6e\x74\x68\x7c\x6c\x61\x73\x74\x7c\x66\x69\x72\x73\x74\x29\x2d\
-\x63\x68\x69\x6c\x64\x28\x3f\x3a\x5c\x28\x5c\x73\x2a\x28\x65\x76\
-\x65\x6e\x7c\x6f\x64\x64\x7c\x28\x3f\x3a\x5b\x2b\x5c\x2d\x5d\x3f\
-\x5c\x64\x2b\x7c\x28\x3f\x3a\x5b\x2b\x5c\x2d\x5d\x3f\x5c\x64\x2a\
-\x29\x3f\x6e\x5c\x73\x2a\x28\x3f\x3a\x5b\x2b\x5c\x2d\x5d\x5c\x73\
-\x2a\x5c\x64\x2b\x29\x3f\x29\x29\x5c\x73\x2a\x5c\x29\x29\x3f\x2f\
-\x2c\x50\x4f\x53\x3a\x2f\x3a\x28\x6e\x74\x68\x7c\x65\x71\x7c\x67\
-\x74\x7c\x6c\x74\x7c\x66\x69\x72\x73\x74\x7c\x6c\x61\x73\x74\x7c\
-\x65\x76\x65\x6e\x7c\x6f\x64\x64\x29\x28\x3f\x3a\x5c\x28\x28\x5c\
-\x64\x2a\x29\x5c\x29\x29\x3f\x28\x3f\x3d\x5b\x5e\x5c\x2d\x5d\x7c\
-\x24\x29\x2f\x2c\x50\x53\x45\x55\x44\x4f\x3a\x2f\x3a\x28\x28\x3f\
-\x3a\x5b\x5c\x77\x5c\x75\x30\x30\x63\x30\x2d\x5c\x75\x46\x46\x46\
-\x46\x5c\x2d\x5d\x7c\x5c\x5c\x2e\x29\x2b\x29\x28\x3f\x3a\x5c\x28\
-\x28\x5b\x27\x22\x5d\x3f\x29\x28\x28\x3f\x3a\x5c\x28\x5b\x5e\x5c\
-\x29\x5d\x2b\x5c\x29\x7c\x5b\x5e\x5c\x28\x5c\x29\x5d\x2a\x29\x2b\
-\x29\x5c\x32\x5c\x29\x29\x3f\x2f\x7d\x2c\x6c\x65\x66\x74\x4d\x61\
-\x74\x63\x68\x3a\x7b\x7d\x2c\x61\x74\x74\x72\x4d\x61\x70\x3a\x7b\
-\x22\x63\x6c\x61\x73\x73\x22\x3a\x22\x63\x6c\x61\x73\x73\x4e\x61\
-\x6d\x65\x22\x2c\x22\x66\x6f\x72\x22\x3a\x22\x68\x74\x6d\x6c\x46\
-\x6f\x72\x22\x7d\x2c\x61\x74\x74\x72\x48\x61\x6e\x64\x6c\x65\x3a\
-\x7b\x68\x72\x65\x66\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x67\x65\x74\x41\x74\
-\x74\x72\x69\x62\x75\x74\x65\x28\x22\x68\x72\x65\x66\x22\x29\x7d\
-\x2c\x74\x79\x70\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x67\x65\x74\x41\x74\
-\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x79\x70\x65\x22\x29\x7d\
-\x7d\x2c\x72\x65\x6c\x61\x74\x69\x76\x65\x3a\x7b\x22\x2b\x22\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\
-\x72\x20\x63\x3d\x74\x79\x70\x65\x6f\x66\x20\x62\x3d\x3d\x22\x73\
-\x74\x72\x69\x6e\x67\x22\x2c\x64\x3d\x63\x26\x26\x21\x6c\x2e\x74\
-\x65\x73\x74\x28\x62\x29\x2c\x65\x3d\x63\x26\x26\x21\x64\x3b\x64\
-\x26\x26\x28\x62\x3d\x62\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\
-\x73\x65\x28\x29\x29\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x66\x3d\
-\x30\x2c\x67\x3d\x61\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x68\x3b\x66\
-\x3c\x67\x3b\x66\x2b\x2b\x29\x69\x66\x28\x68\x3d\x61\x5b\x66\x5d\
-\x29\x7b\x77\x68\x69\x6c\x65\x28\x28\x68\x3d\x68\x2e\x70\x72\x65\
-\x76\x69\x6f\x75\x73\x53\x69\x62\x6c\x69\x6e\x67\x29\x26\x26\x68\
-\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x31\x29\x3b\x61\
-\x5b\x66\x5d\x3d\x65\x7c\x7c\x68\x26\x26\x68\x2e\x6e\x6f\x64\x65\
-\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\
-\x28\x29\x3d\x3d\x3d\x62\x3f\x68\x7c\x7c\x21\x31\x3a\x68\x3d\x3d\
-\x3d\x62\x7d\x65\x26\x26\x6d\x2e\x66\x69\x6c\x74\x65\x72\x28\x62\
-\x2c\x61\x2c\x21\x30\x29\x7d\x2c\x22\x3e\x22\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x2c\
-\x64\x3d\x74\x79\x70\x65\x6f\x66\x20\x62\x3d\x3d\x22\x73\x74\x72\
-\x69\x6e\x67\x22\x2c\x65\x3d\x30\x2c\x66\x3d\x61\x2e\x6c\x65\x6e\
-\x67\x74\x68\x3b\x69\x66\x28\x64\x26\x26\x21\x6c\x2e\x74\x65\x73\
-\x74\x28\x62\x29\x29\x7b\x62\x3d\x62\x2e\x74\x6f\x4c\x6f\x77\x65\
-\x72\x43\x61\x73\x65\x28\x29\x3b\x66\x6f\x72\x28\x3b\x65\x3c\x66\
-\x3b\x65\x2b\x2b\x29\x7b\x63\x3d\x61\x5b\x65\x5d\x3b\x69\x66\x28\
-\x63\x29\x7b\x76\x61\x72\x20\x67\x3d\x63\x2e\x70\x61\x72\x65\x6e\
-\x74\x4e\x6f\x64\x65\x3b\x61\x5b\x65\x5d\x3d\x67\x2e\x6e\x6f\x64\
-\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\
-\x65\x28\x29\x3d\x3d\x3d\x62\x3f\x67\x3a\x21\x31\x7d\x7d\x7d\x65\
-\x6c\x73\x65\x7b\x66\x6f\x72\x28\x3b\x65\x3c\x66\x3b\x65\x2b\x2b\
-\x29\x63\x3d\x61\x5b\x65\x5d\x2c\x63\x26\x26\x28\x61\x5b\x65\x5d\
-\x3d\x64\x3f\x63\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3a\
-\x63\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3d\x3d\x3d\x62\
-\x29\x3b\x64\x26\x26\x6d\x2e\x66\x69\x6c\x74\x65\x72\x28\x62\x2c\
-\x61\x2c\x21\x30\x29\x7d\x7d\x2c\x22\x22\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\
-\x2c\x66\x3d\x65\x2b\x2b\x2c\x67\x3d\x78\x3b\x74\x79\x70\x65\x6f\
-\x66\x20\x62\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x21\
-\x6c\x2e\x74\x65\x73\x74\x28\x62\x29\x26\x26\x28\x62\x3d\x62\x2e\
-\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2c\x64\x3d\
-\x62\x2c\x67\x3d\x77\x29\x2c\x67\x28\x22\x70\x61\x72\x65\x6e\x74\
-\x4e\x6f\x64\x65\x22\x2c\x62\x2c\x66\x2c\x61\x2c\x64\x2c\x63\x29\
-\x7d\x2c\x22\x7e\x22\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x2c\x66\x3d\x65\x2b\
-\x2b\x2c\x67\x3d\x78\x3b\x74\x79\x70\x65\x6f\x66\x20\x62\x3d\x3d\
-\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x21\x6c\x2e\x74\x65\x73\
-\x74\x28\x62\x29\x26\x26\x28\x62\x3d\x62\x2e\x74\x6f\x4c\x6f\x77\
-\x65\x72\x43\x61\x73\x65\x28\x29\x2c\x64\x3d\x62\x2c\x67\x3d\x77\
-\x29\x2c\x67\x28\x22\x70\x72\x65\x76\x69\x6f\x75\x73\x53\x69\x62\
-\x6c\x69\x6e\x67\x22\x2c\x62\x2c\x66\x2c\x61\x2c\x64\x2c\x63\x29\
-\x7d\x7d\x2c\x66\x69\x6e\x64\x3a\x7b\x49\x44\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x69\x66\x28\x74\
-\x79\x70\x65\x6f\x66\x20\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\
-\x6e\x74\x42\x79\x49\x64\x21\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\
-\x65\x64\x22\x26\x26\x21\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x62\
-\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x28\
-\x61\x5b\x31\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x26\x26\
-\x64\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3f\x5b\x64\x5d\
-\x3a\x5b\x5d\x7d\x7d\x2c\x4e\x41\x4d\x45\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x74\x79\x70\x65\
-\x6f\x66\x20\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\
-\x42\x79\x4e\x61\x6d\x65\x21\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\
-\x65\x64\x22\x29\x7b\x76\x61\x72\x20\x63\x3d\x5b\x5d\x2c\x64\x3d\
-\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x4e\
-\x61\x6d\x65\x28\x61\x5b\x31\x5d\x29\x3b\x66\x6f\x72\x28\x76\x61\
-\x72\x20\x65\x3d\x30\x2c\x66\x3d\x64\x2e\x6c\x65\x6e\x67\x74\x68\
-\x3b\x65\x3c\x66\x3b\x65\x2b\x2b\x29\x64\x5b\x65\x5d\x2e\x67\x65\
-\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x6e\x61\x6d\x65\
-\x22\x29\x3d\x3d\x3d\x61\x5b\x31\x5d\x26\x26\x63\x2e\x70\x75\x73\
-\x68\x28\x64\x5b\x65\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\
-\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x30\x3f\x6e\x75\x6c\x6c\
-\x3a\x63\x7d\x7d\x2c\x54\x41\x47\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\
-\x20\x62\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\
-\x54\x61\x67\x4e\x61\x6d\x65\x21\x3d\x22\x75\x6e\x64\x65\x66\x69\
-\x6e\x65\x64\x22\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x2e\x67\x65\
-\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\
-\x6d\x65\x28\x61\x5b\x31\x5d\x29\x7d\x7d\x2c\x70\x72\x65\x46\x69\
-\x6c\x74\x65\x72\x3a\x7b\x43\x4c\x41\x53\x53\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x2c\x65\x2c\x66\
-\x29\x7b\x61\x3d\x22\x20\x22\x2b\x61\x5b\x31\x5d\x2e\x72\x65\x70\
-\x6c\x61\x63\x65\x28\x6a\x2c\x22\x22\x29\x2b\x22\x20\x22\x3b\x69\
-\x66\x28\x66\x29\x72\x65\x74\x75\x72\x6e\x20\x61\x3b\x66\x6f\x72\
-\x28\x76\x61\x72\x20\x67\x3d\x30\x2c\x68\x3b\x28\x68\x3d\x62\x5b\
-\x67\x5d\x29\x21\x3d\x6e\x75\x6c\x6c\x3b\x67\x2b\x2b\x29\x68\x26\
-\x26\x28\x65\x5e\x28\x68\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\x65\
-\x26\x26\x28\x22\x20\x22\x2b\x68\x2e\x63\x6c\x61\x73\x73\x4e\x61\
-\x6d\x65\x2b\x22\x20\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\
-\x2f\x5b\x5c\x74\x5c\x6e\x5c\x72\x5d\x2f\x67\x2c\x22\x20\x22\x29\
-\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x61\x29\x3e\x3d\x30\x29\x3f\
-\x63\x7c\x7c\x64\x2e\x70\x75\x73\x68\x28\x68\x29\x3a\x63\x26\x26\
-\x28\x62\x5b\x67\x5d\x3d\x21\x31\x29\x29\x3b\x72\x65\x74\x75\x72\
-\x6e\x21\x31\x7d\x2c\x49\x44\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x5b\x31\x5d\x2e\
-\x72\x65\x70\x6c\x61\x63\x65\x28\x6a\x2c\x22\x22\x29\x7d\x2c\x54\
-\x41\x47\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\
-\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x5b\x31\x5d\x2e\x72\x65\x70\
-\x6c\x61\x63\x65\x28\x6a\x2c\x22\x22\x29\x2e\x74\x6f\x4c\x6f\x77\
-\x65\x72\x43\x61\x73\x65\x28\x29\x7d\x2c\x43\x48\x49\x4c\x44\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x61\
-\x5b\x31\x5d\x3d\x3d\x3d\x22\x6e\x74\x68\x22\x29\x7b\x61\x5b\x32\
-\x5d\x7c\x7c\x6d\x2e\x65\x72\x72\x6f\x72\x28\x61\x5b\x30\x5d\x29\
-\x2c\x61\x5b\x32\x5d\x3d\x61\x5b\x32\x5d\x2e\x72\x65\x70\x6c\x61\
-\x63\x65\x28\x2f\x5e\x5c\x2b\x7c\x5c\x73\x2a\x2f\x67\x2c\x22\x22\
-\x29\x3b\x76\x61\x72\x20\x62\x3d\x2f\x28\x2d\x3f\x29\x28\x5c\x64\
-\x2a\x29\x28\x3f\x3a\x6e\x28\x5b\x2b\x5c\x2d\x5d\x3f\x5c\x64\x2a\
-\x29\x29\x3f\x2f\x2e\x65\x78\x65\x63\x28\x61\x5b\x32\x5d\x3d\x3d\
-\x3d\x22\x65\x76\x65\x6e\x22\x26\x26\x22\x32\x6e\x22\x7c\x7c\x61\
-\x5b\x32\x5d\x3d\x3d\x3d\x22\x6f\x64\x64\x22\x26\x26\x22\x32\x6e\
-\x2b\x31\x22\x7c\x7c\x21\x2f\x5c\x44\x2f\x2e\x74\x65\x73\x74\x28\
-\x61\x5b\x32\x5d\x29\x26\x26\x22\x30\x6e\x2b\x22\x2b\x61\x5b\x32\
-\x5d\x7c\x7c\x61\x5b\x32\x5d\x29\x3b\x61\x5b\x32\x5d\x3d\x62\x5b\
-\x31\x5d\x2b\x28\x62\x5b\x32\x5d\x7c\x7c\x31\x29\x2d\x30\x2c\x61\
-\x5b\x33\x5d\x3d\x62\x5b\x33\x5d\x2d\x30\x7d\x65\x6c\x73\x65\x20\
-\x61\x5b\x32\x5d\x26\x26\x6d\x2e\x65\x72\x72\x6f\x72\x28\x61\x5b\
-\x30\x5d\x29\x3b\x61\x5b\x30\x5d\x3d\x65\x2b\x2b\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x61\x7d\x2c\x41\x54\x54\x52\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x2c\x65\x2c\x66\
-\x29\x7b\x76\x61\x72\x20\x67\x3d\x61\x5b\x31\x5d\x3d\x61\x5b\x31\
-\x5d\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x6a\x2c\x22\x22\x29\x3b\
-\x21\x66\x26\x26\x6f\x2e\x61\x74\x74\x72\x4d\x61\x70\x5b\x67\x5d\
-\x26\x26\x28\x61\x5b\x31\x5d\x3d\x6f\x2e\x61\x74\x74\x72\x4d\x61\
-\x70\x5b\x67\x5d\x29\x2c\x61\x5b\x34\x5d\x3d\x28\x61\x5b\x34\x5d\
-\x7c\x7c\x61\x5b\x35\x5d\x7c\x7c\x22\x22\x29\x2e\x72\x65\x70\x6c\
-\x61\x63\x65\x28\x6a\x2c\x22\x22\x29\x2c\x61\x5b\x32\x5d\x3d\x3d\
-\x3d\x22\x7e\x3d\x22\x26\x26\x28\x61\x5b\x34\x5d\x3d\x22\x20\x22\
-\x2b\x61\x5b\x34\x5d\x2b\x22\x20\x22\x29\x3b\x72\x65\x74\x75\x72\
-\x6e\x20\x61\x7d\x2c\x50\x53\x45\x55\x44\x4f\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x62\x2c\x63\x2c\x64\x2c\x65\x2c\x66\x29\x7b\
-\x69\x66\x28\x62\x5b\x31\x5d\x3d\x3d\x3d\x22\x6e\x6f\x74\x22\x29\
-\x69\x66\x28\x28\x61\x2e\x65\x78\x65\x63\x28\x62\x5b\x33\x5d\x29\
-\x7c\x7c\x22\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x31\x7c\x7c\
-\x2f\x5e\x5c\x77\x2f\x2e\x74\x65\x73\x74\x28\x62\x5b\x33\x5d\x29\
-\x29\x62\x5b\x33\x5d\x3d\x6d\x28\x62\x5b\x33\x5d\x2c\x6e\x75\x6c\
-\x6c\x2c\x6e\x75\x6c\x6c\x2c\x63\x29\x3b\x65\x6c\x73\x65\x7b\x76\
-\x61\x72\x20\x67\x3d\x6d\x2e\x66\x69\x6c\x74\x65\x72\x28\x62\x5b\
-\x33\x5d\x2c\x63\x2c\x64\x2c\x21\x30\x5e\x66\x29\x3b\x64\x7c\x7c\
-\x65\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x65\x2c\x67\
-\x29\x3b\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\x65\x6c\x73\x65\x20\
-\x69\x66\x28\x6f\x2e\x6d\x61\x74\x63\x68\x2e\x50\x4f\x53\x2e\x74\
-\x65\x73\x74\x28\x62\x5b\x30\x5d\x29\x7c\x7c\x6f\x2e\x6d\x61\x74\
-\x63\x68\x2e\x43\x48\x49\x4c\x44\x2e\x74\x65\x73\x74\x28\x62\x5b\
-\x30\x5d\x29\x29\x72\x65\x74\x75\x72\x6e\x21\x30\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x62\x7d\x2c\x50\x4f\x53\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x7b\x61\x2e\x75\x6e\x73\x68\x69\x66\x74\
-\x28\x21\x30\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x7d\x2c\
-\x66\x69\x6c\x74\x65\x72\x73\x3a\x7b\x65\x6e\x61\x62\x6c\x65\x64\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\
-\x75\x72\x6e\x20\x61\x2e\x64\x69\x73\x61\x62\x6c\x65\x64\x3d\x3d\
-\x3d\x21\x31\x26\x26\x61\x2e\x74\x79\x70\x65\x21\x3d\x3d\x22\x68\
-\x69\x64\x64\x65\x6e\x22\x7d\x2c\x64\x69\x73\x61\x62\x6c\x65\x64\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\
-\x75\x72\x6e\x20\x61\x2e\x64\x69\x73\x61\x62\x6c\x65\x64\x3d\x3d\
-\x3d\x21\x30\x7d\x2c\x63\x68\x65\x63\x6b\x65\x64\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\
-\x61\x2e\x63\x68\x65\x63\x6b\x65\x64\x3d\x3d\x3d\x21\x30\x7d\x2c\
-\x73\x65\x6c\x65\x63\x74\x65\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x29\x7b\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\
-\x65\x26\x26\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\
-\x73\x65\x6c\x65\x63\x74\x65\x64\x49\x6e\x64\x65\x78\x3b\x72\x65\
-\x74\x75\x72\x6e\x20\x61\x2e\x73\x65\x6c\x65\x63\x74\x65\x64\x3d\
-\x3d\x3d\x21\x30\x7d\x2c\x70\x61\x72\x65\x6e\x74\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\
-\x21\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x7d\x2c\x65\
-\x6d\x70\x74\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\
-\x7b\x72\x65\x74\x75\x72\x6e\x21\x61\x2e\x66\x69\x72\x73\x74\x43\
-\x68\x69\x6c\x64\x7d\x2c\x68\x61\x73\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\
-\x21\x21\x6d\x28\x63\x5b\x33\x5d\x2c\x61\x29\x2e\x6c\x65\x6e\x67\
-\x74\x68\x7d\x2c\x68\x65\x61\x64\x65\x72\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x2f\x68\x5c\
-\x64\x2f\x69\x2e\x74\x65\x73\x74\x28\x61\x2e\x6e\x6f\x64\x65\x4e\
-\x61\x6d\x65\x29\x7d\x2c\x74\x65\x78\x74\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x67\
-\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x74\x79\x70\
-\x65\x22\x29\x2c\x63\x3d\x61\x2e\x74\x79\x70\x65\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\
-\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x22\
-\x69\x6e\x70\x75\x74\x22\x26\x26\x22\x74\x65\x78\x74\x22\x3d\x3d\
-\x3d\x63\x26\x26\x28\x62\x3d\x3d\x3d\x63\x7c\x7c\x62\x3d\x3d\x3d\
-\x6e\x75\x6c\x6c\x29\x7d\x2c\x72\x61\x64\x69\x6f\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\
-\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\
-\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x22\x69\x6e\x70\x75\
-\x74\x22\x26\x26\x22\x72\x61\x64\x69\x6f\x22\x3d\x3d\x3d\x61\x2e\
-\x74\x79\x70\x65\x7d\x2c\x63\x68\x65\x63\x6b\x62\x6f\x78\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\
-\x6e\x20\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\
-\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x22\x69\x6e\
-\x70\x75\x74\x22\x26\x26\x22\x63\x68\x65\x63\x6b\x62\x6f\x78\x22\
-\x3d\x3d\x3d\x61\x2e\x74\x79\x70\x65\x7d\x2c\x66\x69\x6c\x65\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\
-\x72\x6e\x20\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\
-\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x22\x69\
-\x6e\x70\x75\x74\x22\x26\x26\x22\x66\x69\x6c\x65\x22\x3d\x3d\x3d\
-\x61\x2e\x74\x79\x70\x65\x7d\x2c\x70\x61\x73\x73\x77\x6f\x72\x64\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\
-\x75\x72\x6e\x20\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\
-\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x22\
-\x69\x6e\x70\x75\x74\x22\x26\x26\x22\x70\x61\x73\x73\x77\x6f\x72\
-\x64\x22\x3d\x3d\x3d\x61\x2e\x74\x79\x70\x65\x7d\x2c\x73\x75\x62\
-\x6d\x69\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\
-\x76\x61\x72\x20\x62\x3d\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\
-\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3b\x72\
-\x65\x74\x75\x72\x6e\x28\x62\x3d\x3d\x3d\x22\x69\x6e\x70\x75\x74\
-\x22\x7c\x7c\x62\x3d\x3d\x3d\x22\x62\x75\x74\x74\x6f\x6e\x22\x29\
-\x26\x26\x22\x73\x75\x62\x6d\x69\x74\x22\x3d\x3d\x3d\x61\x2e\x74\
-\x79\x70\x65\x7d\x2c\x69\x6d\x61\x67\x65\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\
-\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\
-\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x22\x69\x6e\x70\x75\x74\x22\
-\x26\x26\x22\x69\x6d\x61\x67\x65\x22\x3d\x3d\x3d\x61\x2e\x74\x79\
-\x70\x65\x7d\x2c\x72\x65\x73\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x6e\x6f\
-\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\
-\x73\x65\x28\x29\x3b\x72\x65\x74\x75\x72\x6e\x28\x62\x3d\x3d\x3d\
-\x22\x69\x6e\x70\x75\x74\x22\x7c\x7c\x62\x3d\x3d\x3d\x22\x62\x75\
-\x74\x74\x6f\x6e\x22\x29\x26\x26\x22\x72\x65\x73\x65\x74\x22\x3d\
-\x3d\x3d\x61\x2e\x74\x79\x70\x65\x7d\x2c\x62\x75\x74\x74\x6f\x6e\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\
-\x20\x62\x3d\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\
-\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3b\x72\x65\x74\x75\
-\x72\x6e\x20\x62\x3d\x3d\x3d\x22\x69\x6e\x70\x75\x74\x22\x26\x26\
-\x22\x62\x75\x74\x74\x6f\x6e\x22\x3d\x3d\x3d\x61\x2e\x74\x79\x70\
-\x65\x7c\x7c\x62\x3d\x3d\x3d\x22\x62\x75\x74\x74\x6f\x6e\x22\x7d\
-\x2c\x69\x6e\x70\x75\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x2f\x69\x6e\x70\x75\x74\x7c\
-\x73\x65\x6c\x65\x63\x74\x7c\x74\x65\x78\x74\x61\x72\x65\x61\x7c\
-\x62\x75\x74\x74\x6f\x6e\x2f\x69\x2e\x74\x65\x73\x74\x28\x61\x2e\
-\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x7d\x2c\x66\x6f\x63\x75\x73\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\
-\x75\x72\x6e\x20\x61\x3d\x3d\x3d\x61\x2e\x6f\x77\x6e\x65\x72\x44\
-\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x61\x63\x74\x69\x76\x65\x45\x6c\
-\x65\x6d\x65\x6e\x74\x7d\x7d\x2c\x73\x65\x74\x46\x69\x6c\x74\x65\
-\x72\x73\x3a\x7b\x66\x69\x72\x73\x74\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x62\
-\x3d\x3d\x3d\x30\x7d\x2c\x6c\x61\x73\x74\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x72\x65\x74\
-\x75\x72\x6e\x20\x62\x3d\x3d\x3d\x64\x2e\x6c\x65\x6e\x67\x74\x68\
-\x2d\x31\x7d\x2c\x65\x76\x65\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x62\x25\
-\x32\x3d\x3d\x3d\x30\x7d\x2c\x6f\x64\x64\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\
-\x62\x25\x32\x3d\x3d\x3d\x31\x7d\x2c\x6c\x74\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\
-\x72\x6e\x20\x62\x3c\x63\x5b\x33\x5d\x2d\x30\x7d\x2c\x67\x74\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\
-\x72\x65\x74\x75\x72\x6e\x20\x62\x3e\x63\x5b\x33\x5d\x2d\x30\x7d\
-\x2c\x6e\x74\x68\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\
-\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x63\x5b\x33\x5d\
-\x2d\x30\x3d\x3d\x3d\x62\x7d\x2c\x65\x71\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\
-\x6e\x20\x63\x5b\x33\x5d\x2d\x30\x3d\x3d\x3d\x62\x7d\x7d\x2c\x66\
-\x69\x6c\x74\x65\x72\x3a\x7b\x50\x53\x45\x55\x44\x4f\x3a\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\
-\x76\x61\x72\x20\x65\x3d\x62\x5b\x31\x5d\x2c\x66\x3d\x6f\x2e\x66\
-\x69\x6c\x74\x65\x72\x73\x5b\x65\x5d\x3b\x69\x66\x28\x66\x29\x72\
-\x65\x74\x75\x72\x6e\x20\x66\x28\x61\x2c\x63\x2c\x62\x2c\x64\x29\
-\x3b\x69\x66\x28\x65\x3d\x3d\x3d\x22\x63\x6f\x6e\x74\x61\x69\x6e\
-\x73\x22\x29\x72\x65\x74\x75\x72\x6e\x28\x61\x2e\x74\x65\x78\x74\
-\x43\x6f\x6e\x74\x65\x6e\x74\x7c\x7c\x61\x2e\x69\x6e\x6e\x65\x72\
-\x54\x65\x78\x74\x7c\x7c\x6e\x28\x5b\x61\x5d\x29\x7c\x7c\x22\x22\
-\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x62\x5b\x33\x5d\x29\x3e\
-\x3d\x30\x3b\x69\x66\x28\x65\x3d\x3d\x3d\x22\x6e\x6f\x74\x22\x29\
-\x7b\x76\x61\x72\x20\x67\x3d\x62\x5b\x33\x5d\x3b\x66\x6f\x72\x28\
-\x76\x61\x72\x20\x68\x3d\x30\x2c\x69\x3d\x67\x2e\x6c\x65\x6e\x67\
-\x74\x68\x3b\x68\x3c\x69\x3b\x68\x2b\x2b\x29\x69\x66\x28\x67\x5b\
-\x68\x5d\x3d\x3d\x3d\x61\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x3b\
-\x72\x65\x74\x75\x72\x6e\x21\x30\x7d\x6d\x2e\x65\x72\x72\x6f\x72\
-\x28\x65\x29\x7d\x2c\x43\x48\x49\x4c\x44\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x2c\x65\
-\x2c\x66\x2c\x67\x2c\x68\x2c\x69\x2c\x6a\x2c\x6b\x3d\x62\x5b\x31\
-\x5d\x2c\x6c\x3d\x61\x3b\x73\x77\x69\x74\x63\x68\x28\x6b\x29\x7b\
-\x63\x61\x73\x65\x22\x6f\x6e\x6c\x79\x22\x3a\x63\x61\x73\x65\x22\
-\x66\x69\x72\x73\x74\x22\x3a\x77\x68\x69\x6c\x65\x28\x6c\x3d\x6c\
-\x2e\x70\x72\x65\x76\x69\x6f\x75\x73\x53\x69\x62\x6c\x69\x6e\x67\
-\x29\x69\x66\x28\x6c\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\
-\x3d\x31\x29\x72\x65\x74\x75\x72\x6e\x21\x31\x3b\x69\x66\x28\x6b\
-\x3d\x3d\x3d\x22\x66\x69\x72\x73\x74\x22\x29\x72\x65\x74\x75\x72\
-\x6e\x21\x30\x3b\x6c\x3d\x61\x3b\x63\x61\x73\x65\x22\x6c\x61\x73\
-\x74\x22\x3a\x77\x68\x69\x6c\x65\x28\x6c\x3d\x6c\x2e\x6e\x65\x78\
-\x74\x53\x69\x62\x6c\x69\x6e\x67\x29\x69\x66\x28\x6c\x2e\x6e\x6f\
-\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x72\x65\x74\x75\x72\
-\x6e\x21\x31\x3b\x72\x65\x74\x75\x72\x6e\x21\x30\x3b\x63\x61\x73\
-\x65\x22\x6e\x74\x68\x22\x3a\x63\x3d\x62\x5b\x32\x5d\x2c\x65\x3d\
-\x62\x5b\x33\x5d\x3b\x69\x66\x28\x63\x3d\x3d\x3d\x31\x26\x26\x65\
-\x3d\x3d\x3d\x30\x29\x72\x65\x74\x75\x72\x6e\x21\x30\x3b\x66\x3d\
-\x62\x5b\x30\x5d\x2c\x67\x3d\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\
-\x6f\x64\x65\x3b\x69\x66\x28\x67\x26\x26\x28\x67\x5b\x64\x5d\x21\
-\x3d\x3d\x66\x7c\x7c\x21\x61\x2e\x6e\x6f\x64\x65\x49\x6e\x64\x65\
-\x78\x29\x29\x7b\x69\x3d\x30\x3b\x66\x6f\x72\x28\x6c\x3d\x67\x2e\
-\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x3b\x6c\x3b\x6c\x3d\x6c\
-\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x29\x6c\x2e\x6e\
-\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x28\x6c\x2e\
-\x6e\x6f\x64\x65\x49\x6e\x64\x65\x78\x3d\x2b\x2b\x69\x29\x3b\x67\
-\x5b\x64\x5d\x3d\x66\x7d\x6a\x3d\x61\x2e\x6e\x6f\x64\x65\x49\x6e\
-\x64\x65\x78\x2d\x65\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x3d\x3d\
-\x3d\x30\x3f\x6a\x3d\x3d\x3d\x30\x3a\x6a\x25\x63\x3d\x3d\x3d\x30\
-\x26\x26\x6a\x2f\x63\x3e\x3d\x30\x7d\x7d\x2c\x49\x44\x3a\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\
-\x72\x6e\x20\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\
-\x31\x26\x26\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\
-\x65\x28\x22\x69\x64\x22\x29\x3d\x3d\x3d\x62\x7d\x2c\x54\x41\x47\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\
-\x65\x74\x75\x72\x6e\x20\x62\x3d\x3d\x3d\x22\x2a\x22\x26\x26\x61\
-\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x7c\x7c\x21\
-\x21\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x26\x26\x61\x2e\x6e\
-\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\
-\x61\x73\x65\x28\x29\x3d\x3d\x3d\x62\x7d\x2c\x43\x4c\x41\x53\x53\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\
-\x65\x74\x75\x72\x6e\x28\x22\x20\x22\x2b\x28\x61\x2e\x63\x6c\x61\
-\x73\x73\x4e\x61\x6d\x65\x7c\x7c\x61\x2e\x67\x65\x74\x41\x74\x74\
-\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6c\x61\x73\x73\x22\x29\x29\
-\x2b\x22\x20\x22\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x62\x29\
-\x3e\x2d\x31\x7d\x2c\x41\x54\x54\x52\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x62\x5b\
-\x31\x5d\x2c\x64\x3d\x6d\x2e\x61\x74\x74\x72\x3f\x6d\x2e\x61\x74\
-\x74\x72\x28\x61\x2c\x63\x29\x3a\x6f\x2e\x61\x74\x74\x72\x48\x61\
-\x6e\x64\x6c\x65\x5b\x63\x5d\x3f\x6f\x2e\x61\x74\x74\x72\x48\x61\
-\x6e\x64\x6c\x65\x5b\x63\x5d\x28\x61\x29\x3a\x61\x5b\x63\x5d\x21\
-\x3d\x6e\x75\x6c\x6c\x3f\x61\x5b\x63\x5d\x3a\x61\x2e\x67\x65\x74\
-\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x63\x29\x2c\x65\x3d\x64\
-\x2b\x22\x22\x2c\x66\x3d\x62\x5b\x32\x5d\x2c\x67\x3d\x62\x5b\x34\
-\x5d\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x3d\x3d\x6e\x75\x6c\x6c\
-\x3f\x66\x3d\x3d\x3d\x22\x21\x3d\x22\x3a\x21\x66\x26\x26\x6d\x2e\
-\x61\x74\x74\x72\x3f\x64\x21\x3d\x6e\x75\x6c\x6c\x3a\x66\x3d\x3d\
-\x3d\x22\x3d\x22\x3f\x65\x3d\x3d\x3d\x67\x3a\x66\x3d\x3d\x3d\x22\
-\x2a\x3d\x22\x3f\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x67\x29\
-\x3e\x3d\x30\x3a\x66\x3d\x3d\x3d\x22\x7e\x3d\x22\x3f\x28\x22\x20\
-\x22\x2b\x65\x2b\x22\x20\x22\x29\x2e\x69\x6e\x64\x65\x78\x4f\x66\
-\x28\x67\x29\x3e\x3d\x30\x3a\x67\x3f\x66\x3d\x3d\x3d\x22\x21\x3d\
-\x22\x3f\x65\x21\x3d\x3d\x67\x3a\x66\x3d\x3d\x3d\x22\x5e\x3d\x22\
-\x3f\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x67\x29\x3d\x3d\x3d\
-\x30\x3a\x66\x3d\x3d\x3d\x22\x24\x3d\x22\x3f\x65\x2e\x73\x75\x62\
-\x73\x74\x72\x28\x65\x2e\x6c\x65\x6e\x67\x74\x68\x2d\x67\x2e\x6c\
-\x65\x6e\x67\x74\x68\x29\x3d\x3d\x3d\x67\x3a\x66\x3d\x3d\x3d\x22\
-\x7c\x3d\x22\x3f\x65\x3d\x3d\x3d\x67\x7c\x7c\x65\x2e\x73\x75\x62\
-\x73\x74\x72\x28\x30\x2c\x67\x2e\x6c\x65\x6e\x67\x74\x68\x2b\x31\
-\x29\x3d\x3d\x3d\x67\x2b\x22\x2d\x22\x3a\x21\x31\x3a\x65\x26\x26\
-\x64\x21\x3d\x3d\x21\x31\x7d\x2c\x50\x4f\x53\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x76\x61\
-\x72\x20\x65\x3d\x62\x5b\x32\x5d\x2c\x66\x3d\x6f\x2e\x73\x65\x74\
-\x46\x69\x6c\x74\x65\x72\x73\x5b\x65\x5d\x3b\x69\x66\x28\x66\x29\
-\x72\x65\x74\x75\x72\x6e\x20\x66\x28\x61\x2c\x63\x2c\x62\x2c\x64\
-\x29\x7d\x7d\x7d\x2c\x70\x3d\x6f\x2e\x6d\x61\x74\x63\x68\x2e\x50\
-\x4f\x53\x2c\x71\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\
-\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x22\x5c\x5c\x22\x2b\x28\x62\
-\x2d\x30\x2b\x31\x29\x7d\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x72\
-\x20\x69\x6e\x20\x6f\x2e\x6d\x61\x74\x63\x68\x29\x6f\x2e\x6d\x61\
-\x74\x63\x68\x5b\x72\x5d\x3d\x6e\x65\x77\x20\x52\x65\x67\x45\x78\
-\x70\x28\x6f\x2e\x6d\x61\x74\x63\x68\x5b\x72\x5d\x2e\x73\x6f\x75\
-\x72\x63\x65\x2b\x2f\x28\x3f\x21\x5b\x5e\x5c\x5b\x5d\x2a\x5c\x5d\
-\x29\x28\x3f\x21\x5b\x5e\x5c\x28\x5d\x2a\x5c\x29\x29\x2f\x2e\x73\
-\x6f\x75\x72\x63\x65\x29\x2c\x6f\x2e\x6c\x65\x66\x74\x4d\x61\x74\
-\x63\x68\x5b\x72\x5d\x3d\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\
-\x28\x2f\x28\x5e\x28\x3f\x3a\x2e\x7c\x5c\x72\x7c\x5c\x6e\x29\x2a\
-\x3f\x29\x2f\x2e\x73\x6f\x75\x72\x63\x65\x2b\x6f\x2e\x6d\x61\x74\
-\x63\x68\x5b\x72\x5d\x2e\x73\x6f\x75\x72\x63\x65\x2e\x72\x65\x70\
-\x6c\x61\x63\x65\x28\x2f\x5c\x5c\x28\x5c\x64\x2b\x29\x2f\x67\x2c\
-\x71\x29\x29\x3b\x76\x61\x72\x20\x73\x3d\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x61\x3d\x41\x72\x72\x61\x79\x2e\
-\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x6c\x69\x63\x65\x2e\
-\x63\x61\x6c\x6c\x28\x61\x2c\x30\x29\x3b\x69\x66\x28\x62\x29\x7b\
-\x62\x2e\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x62\x2c\x61\
-\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x7d\x72\x65\x74\x75\x72\
-\x6e\x20\x61\x7d\x3b\x74\x72\x79\x7b\x41\x72\x72\x61\x79\x2e\x70\
-\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x73\x6c\x69\x63\x65\x2e\x63\
-\x61\x6c\x6c\x28\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\
-\x65\x6d\x65\x6e\x74\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\
-\x2c\x30\x29\x5b\x30\x5d\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x7d\
-\x63\x61\x74\x63\x68\x28\x74\x29\x7b\x73\x3d\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x30\
-\x2c\x64\x3d\x62\x7c\x7c\x5b\x5d\x3b\x69\x66\x28\x67\x2e\x63\x61\
-\x6c\x6c\x28\x61\x29\x3d\x3d\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\
-\x20\x41\x72\x72\x61\x79\x5d\x22\x29\x41\x72\x72\x61\x79\x2e\x70\
-\x72\x6f\x74\x6f\x74\x79\x70\x65\x2e\x70\x75\x73\x68\x2e\x61\x70\
-\x70\x6c\x79\x28\x64\x2c\x61\x29\x3b\x65\x6c\x73\x65\x20\x69\x66\
-\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x2e\x6c\x65\x6e\x67\x74\x68\
-\x3d\x3d\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x66\x6f\x72\x28\x76\
-\x61\x72\x20\x65\x3d\x61\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x63\x3c\
-\x65\x3b\x63\x2b\x2b\x29\x64\x2e\x70\x75\x73\x68\x28\x61\x5b\x63\
-\x5d\x29\x3b\x65\x6c\x73\x65\x20\x66\x6f\x72\x28\x3b\x61\x5b\x63\
-\x5d\x3b\x63\x2b\x2b\x29\x64\x2e\x70\x75\x73\x68\x28\x61\x5b\x63\
-\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x7d\x7d\x76\x61\x72\
-\x20\x75\x2c\x76\x3b\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\
-\x6c\x65\x6d\x65\x6e\x74\x2e\x63\x6f\x6d\x70\x61\x72\x65\x44\x6f\
-\x63\x75\x6d\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x3f\x75\
-\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\
-\x66\x28\x61\x3d\x3d\x3d\x62\x29\x7b\x68\x3d\x21\x30\x3b\x72\x65\
-\x74\x75\x72\x6e\x20\x30\x7d\x69\x66\x28\x21\x61\x2e\x63\x6f\x6d\
-\x70\x61\x72\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x50\x6f\x73\x69\
-\x74\x69\x6f\x6e\x7c\x7c\x21\x62\x2e\x63\x6f\x6d\x70\x61\x72\x65\
-\x44\x6f\x63\x75\x6d\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\
-\x29\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x63\x6f\x6d\x70\x61\x72\
-\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\
-\x6e\x3f\x2d\x31\x3a\x31\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\
-\x63\x6f\x6d\x70\x61\x72\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x50\
-\x6f\x73\x69\x74\x69\x6f\x6e\x28\x62\x29\x26\x34\x3f\x2d\x31\x3a\
-\x31\x7d\x3a\x28\x75\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x62\x29\x7b\x69\x66\x28\x61\x3d\x3d\x3d\x62\x29\x7b\x68\x3d\
-\x21\x30\x3b\x72\x65\x74\x75\x72\x6e\x20\x30\x7d\x69\x66\x28\x61\
-\x2e\x73\x6f\x75\x72\x63\x65\x49\x6e\x64\x65\x78\x26\x26\x62\x2e\
-\x73\x6f\x75\x72\x63\x65\x49\x6e\x64\x65\x78\x29\x72\x65\x74\x75\
-\x72\x6e\x20\x61\x2e\x73\x6f\x75\x72\x63\x65\x49\x6e\x64\x65\x78\
-\x2d\x62\x2e\x73\x6f\x75\x72\x63\x65\x49\x6e\x64\x65\x78\x3b\x76\
-\x61\x72\x20\x63\x2c\x64\x2c\x65\x3d\x5b\x5d\x2c\x66\x3d\x5b\x5d\
-\x2c\x67\x3d\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\
-\x69\x3d\x62\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x6a\
-\x3d\x67\x3b\x69\x66\x28\x67\x3d\x3d\x3d\x69\x29\x72\x65\x74\x75\
-\x72\x6e\x20\x76\x28\x61\x2c\x62\x29\x3b\x69\x66\x28\x21\x67\x29\
-\x72\x65\x74\x75\x72\x6e\x2d\x31\x3b\x69\x66\x28\x21\x69\x29\x72\
-\x65\x74\x75\x72\x6e\x20\x31\x3b\x77\x68\x69\x6c\x65\x28\x6a\x29\
-\x65\x2e\x75\x6e\x73\x68\x69\x66\x74\x28\x6a\x29\x2c\x6a\x3d\x6a\
-\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x6a\x3d\x69\x3b\
-\x77\x68\x69\x6c\x65\x28\x6a\x29\x66\x2e\x75\x6e\x73\x68\x69\x66\
-\x74\x28\x6a\x29\x2c\x6a\x3d\x6a\x2e\x70\x61\x72\x65\x6e\x74\x4e\
-\x6f\x64\x65\x3b\x63\x3d\x65\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x64\
-\x3d\x66\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x66\x6f\x72\x28\x76\x61\
-\x72\x20\x6b\x3d\x30\x3b\x6b\x3c\x63\x26\x26\x6b\x3c\x64\x3b\x6b\
-\x2b\x2b\x29\x69\x66\x28\x65\x5b\x6b\x5d\x21\x3d\x3d\x66\x5b\x6b\
-\x5d\x29\x72\x65\x74\x75\x72\x6e\x20\x76\x28\x65\x5b\x6b\x5d\x2c\
-\x66\x5b\x6b\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x6b\x3d\x3d\
-\x3d\x63\x3f\x76\x28\x61\x2c\x66\x5b\x6b\x5d\x2c\x2d\x31\x29\x3a\
-\x76\x28\x65\x5b\x6b\x5d\x2c\x62\x2c\x31\x29\x7d\x2c\x76\x3d\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x69\
-\x66\x28\x61\x3d\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x63\
-\x3b\x76\x61\x72\x20\x64\x3d\x61\x2e\x6e\x65\x78\x74\x53\x69\x62\
-\x6c\x69\x6e\x67\x3b\x77\x68\x69\x6c\x65\x28\x64\x29\x7b\x69\x66\
-\x28\x64\x3d\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x2d\x31\x3b\
-\x64\x3d\x64\x2e\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x7d\
-\x72\x65\x74\x75\x72\x6e\x20\x31\x7d\x29\x2c\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x63\x2e\x63\x72\
-\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\
-\x22\x29\x2c\x64\x3d\x22\x73\x63\x72\x69\x70\x74\x22\x2b\x28\x6e\
-\x65\x77\x20\x44\x61\x74\x65\x29\x2e\x67\x65\x74\x54\x69\x6d\x65\
-\x28\x29\x2c\x65\x3d\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\
-\x6c\x65\x6d\x65\x6e\x74\x3b\x61\x2e\x69\x6e\x6e\x65\x72\x48\x54\
-\x4d\x4c\x3d\x22\x3c\x61\x20\x6e\x61\x6d\x65\x3d\x27\x22\x2b\x64\
-\x2b\x22\x27\x2f\x3e\x22\x2c\x65\x2e\x69\x6e\x73\x65\x72\x74\x42\
-\x65\x66\x6f\x72\x65\x28\x61\x2c\x65\x2e\x66\x69\x72\x73\x74\x43\
-\x68\x69\x6c\x64\x29\x2c\x63\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\
-\x6e\x74\x42\x79\x49\x64\x28\x64\x29\x26\x26\x28\x6f\x2e\x66\x69\
-\x6e\x64\x2e\x49\x44\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x63\x2c\x64\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\
-\x63\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\
-\x21\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x26\x26\x21\
-\x64\x29\x7b\x76\x61\x72\x20\x65\x3d\x63\x2e\x67\x65\x74\x45\x6c\
-\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x28\x61\x5b\x31\x5d\x29\x3b\
-\x72\x65\x74\x75\x72\x6e\x20\x65\x3f\x65\x2e\x69\x64\x3d\x3d\x3d\
-\x61\x5b\x31\x5d\x7c\x7c\x74\x79\x70\x65\x6f\x66\x20\x65\x2e\x67\
-\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\x21\
-\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x26\x26\x65\x2e\
-\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\
-\x28\x22\x69\x64\x22\x29\x2e\x6e\x6f\x64\x65\x56\x61\x6c\x75\x65\
-\x3d\x3d\x3d\x61\x5b\x31\x5d\x3f\x5b\x65\x5d\x3a\x62\x3a\x5b\x5d\
-\x7d\x7d\x2c\x6f\x2e\x66\x69\x6c\x74\x65\x72\x2e\x49\x44\x3d\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\
-\x20\x63\x3d\x74\x79\x70\x65\x6f\x66\x20\x61\x2e\x67\x65\x74\x41\
-\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\x21\x3d\x22\x75\
-\x6e\x64\x65\x66\x69\x6e\x65\x64\x22\x26\x26\x61\x2e\x67\x65\x74\
-\x41\x74\x74\x72\x69\x62\x75\x74\x65\x4e\x6f\x64\x65\x28\x22\x69\
-\x64\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x2e\x6e\x6f\x64\
-\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x63\x26\x26\x63\x2e\
-\x6e\x6f\x64\x65\x56\x61\x6c\x75\x65\x3d\x3d\x3d\x62\x7d\x29\x2c\
-\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x61\x29\
-\x2c\x65\x3d\x61\x3d\x6e\x75\x6c\x6c\x7d\x28\x29\x2c\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x63\x2e\
-\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\
-\x69\x76\x22\x29\x3b\x61\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\
-\x6c\x64\x28\x63\x2e\x63\x72\x65\x61\x74\x65\x43\x6f\x6d\x6d\x65\
-\x6e\x74\x28\x22\x22\x29\x29\x2c\x61\x2e\x67\x65\x74\x45\x6c\x65\
-\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\
-\x2a\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x30\x26\x26\x28\x6f\
-\x2e\x66\x69\x6e\x64\x2e\x54\x41\x47\x3d\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x62\x2e\
-\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\
-\x4e\x61\x6d\x65\x28\x61\x5b\x31\x5d\x29\x3b\x69\x66\x28\x61\x5b\
-\x31\x5d\x3d\x3d\x3d\x22\x2a\x22\x29\x7b\x76\x61\x72\x20\x64\x3d\
-\x5b\x5d\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x65\x3d\x30\x3b\x63\
-\x5b\x65\x5d\x3b\x65\x2b\x2b\x29\x63\x5b\x65\x5d\x2e\x6e\x6f\x64\
-\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x64\x2e\x70\x75\x73\
-\x68\x28\x63\x5b\x65\x5d\x29\x3b\x63\x3d\x64\x7d\x72\x65\x74\x75\
-\x72\x6e\x20\x63\x7d\x29\x2c\x61\x2e\x69\x6e\x6e\x65\x72\x48\x54\
-\x4d\x4c\x3d\x22\x3c\x61\x20\x68\x72\x65\x66\x3d\x27\x23\x27\x3e\
-\x3c\x2f\x61\x3e\x22\x2c\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\
-\x6c\x64\x26\x26\x74\x79\x70\x65\x6f\x66\x20\x61\x2e\x66\x69\x72\
-\x73\x74\x43\x68\x69\x6c\x64\x2e\x67\x65\x74\x41\x74\x74\x72\x69\
-\x62\x75\x74\x65\x21\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\
-\x22\x26\x26\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2e\
-\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x68\x72\
-\x65\x66\x22\x29\x21\x3d\x3d\x22\x23\x22\x26\x26\x28\x6f\x2e\x61\
-\x74\x74\x72\x48\x61\x6e\x64\x6c\x65\x2e\x68\x72\x65\x66\x3d\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\
-\x6e\x20\x61\x2e\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\
-\x28\x22\x68\x72\x65\x66\x22\x2c\x32\x29\x7d\x29\x2c\x61\x3d\x6e\
-\x75\x6c\x6c\x7d\x28\x29\x2c\x63\x2e\x71\x75\x65\x72\x79\x53\x65\
-\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x26\x26\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x6d\x2c\x62\x3d\
-\x63\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\
-\x22\x64\x69\x76\x22\x29\x2c\x64\x3d\x22\x5f\x5f\x73\x69\x7a\x7a\
-\x6c\x65\x5f\x5f\x22\x3b\x62\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\
-\x4c\x3d\x22\x3c\x70\x20\x63\x6c\x61\x73\x73\x3d\x27\x54\x45\x53\
-\x54\x27\x3e\x3c\x2f\x70\x3e\x22\x3b\x69\x66\x28\x21\x62\x2e\x71\
-\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x7c\
-\x7c\x62\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\
-\x41\x6c\x6c\x28\x22\x2e\x54\x45\x53\x54\x22\x29\x2e\x6c\x65\x6e\
-\x67\x74\x68\x21\x3d\x3d\x30\x29\x7b\x6d\x3d\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x62\x2c\x65\x2c\x66\x2c\x67\x29\x7b\x65\x3d\x65\
-\x7c\x7c\x63\x3b\x69\x66\x28\x21\x67\x26\x26\x21\x6d\x2e\x69\x73\
-\x58\x4d\x4c\x28\x65\x29\x29\x7b\x76\x61\x72\x20\x68\x3d\x2f\x5e\
-\x28\x5c\x77\x2b\x24\x29\x7c\x5e\x5c\x2e\x28\x5b\x5c\x77\x5c\x2d\
-\x5d\x2b\x24\x29\x7c\x5e\x23\x28\x5b\x5c\x77\x5c\x2d\x5d\x2b\x24\
-\x29\x2f\x2e\x65\x78\x65\x63\x28\x62\x29\x3b\x69\x66\x28\x68\x26\
-\x26\x28\x65\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\
-\x7c\x7c\x65\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x39\
-\x29\x29\x7b\x69\x66\x28\x68\x5b\x31\x5d\x29\x72\x65\x74\x75\x72\
-\x6e\x20\x73\x28\x65\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\
-\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x62\x29\x2c\x66\x29\
-\x3b\x69\x66\x28\x68\x5b\x32\x5d\x26\x26\x6f\x2e\x66\x69\x6e\x64\
-\x2e\x43\x4c\x41\x53\x53\x26\x26\x65\x2e\x67\x65\x74\x45\x6c\x65\
-\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\
-\x29\x72\x65\x74\x75\x72\x6e\x20\x73\x28\x65\x2e\x67\x65\x74\x45\
-\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\
-\x6d\x65\x28\x68\x5b\x32\x5d\x29\x2c\x66\x29\x7d\x69\x66\x28\x65\
-\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x39\x29\x7b\x69\
-\x66\x28\x62\x3d\x3d\x3d\x22\x62\x6f\x64\x79\x22\x26\x26\x65\x2e\
-\x62\x6f\x64\x79\x29\x72\x65\x74\x75\x72\x6e\x20\x73\x28\x5b\x65\
-\x2e\x62\x6f\x64\x79\x5d\x2c\x66\x29\x3b\x69\x66\x28\x68\x26\x26\
-\x68\x5b\x33\x5d\x29\x7b\x76\x61\x72\x20\x69\x3d\x65\x2e\x67\x65\
-\x74\x45\x6c\x65\x6d\x65\x6e\x74\x42\x79\x49\x64\x28\x68\x5b\x33\
-\x5d\x29\x3b\x69\x66\x28\x21\x69\x7c\x7c\x21\x69\x2e\x70\x61\x72\
-\x65\x6e\x74\x4e\x6f\x64\x65\x29\x72\x65\x74\x75\x72\x6e\x20\x73\
-\x28\x5b\x5d\x2c\x66\x29\x3b\x69\x66\x28\x69\x2e\x69\x64\x3d\x3d\
-\x3d\x68\x5b\x33\x5d\x29\x72\x65\x74\x75\x72\x6e\x20\x73\x28\x5b\
-\x69\x5d\x2c\x66\x29\x7d\x74\x72\x79\x7b\x72\x65\x74\x75\x72\x6e\
-\x20\x73\x28\x65\x2e\x71\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\
-\x6f\x72\x41\x6c\x6c\x28\x62\x29\x2c\x66\x29\x7d\x63\x61\x74\x63\
-\x68\x28\x6a\x29\x7b\x7d\x7d\x65\x6c\x73\x65\x20\x69\x66\x28\x65\
-\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\x26\x65\
-\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\
-\x72\x43\x61\x73\x65\x28\x29\x21\x3d\x3d\x22\x6f\x62\x6a\x65\x63\
-\x74\x22\x29\x7b\x76\x61\x72\x20\x6b\x3d\x65\x2c\x6c\x3d\x65\x2e\
-\x67\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x64\
-\x22\x29\x2c\x6e\x3d\x6c\x7c\x7c\x64\x2c\x70\x3d\x65\x2e\x70\x61\
-\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x71\x3d\x2f\x5e\x5c\x73\x2a\
-\x5b\x2b\x7e\x5d\x2f\x2e\x74\x65\x73\x74\x28\x62\x29\x3b\x6c\x3f\
-\x6e\x3d\x6e\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x27\x2f\x67\
-\x2c\x22\x5c\x5c\x24\x26\x22\x29\x3a\x65\x2e\x73\x65\x74\x41\x74\
-\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x64\x22\x2c\x6e\x29\x2c\
-\x71\x26\x26\x70\x26\x26\x28\x65\x3d\x65\x2e\x70\x61\x72\x65\x6e\
-\x74\x4e\x6f\x64\x65\x29\x3b\x74\x72\x79\x7b\x69\x66\x28\x21\x71\
-\x7c\x7c\x70\x29\x72\x65\x74\x75\x72\x6e\x20\x73\x28\x65\x2e\x71\
-\x75\x65\x72\x79\x53\x65\x6c\x65\x63\x74\x6f\x72\x41\x6c\x6c\x28\
-\x22\x5b\x69\x64\x3d\x27\x22\x2b\x6e\x2b\x22\x27\x5d\x20\x22\x2b\
-\x62\x29\x2c\x66\x29\x7d\x63\x61\x74\x63\x68\x28\x72\x29\x7b\x7d\
-\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x6c\x7c\x7c\x6b\x2e\x72\x65\x6d\
-\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x69\x64\
-\x22\x29\x7d\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x61\x28\x62\x2c\
-\x65\x2c\x66\x2c\x67\x29\x7d\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\
-\x65\x20\x69\x6e\x20\x61\x29\x6d\x5b\x65\x5d\x3d\x61\x5b\x65\x5d\
-\x3b\x62\x3d\x6e\x75\x6c\x6c\x7d\x7d\x28\x29\x2c\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x63\x2e\x64\
-\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x62\
-\x3d\x61\x2e\x6d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\
-\x6f\x72\x7c\x7c\x61\x2e\x6d\x6f\x7a\x4d\x61\x74\x63\x68\x65\x73\
-\x53\x65\x6c\x65\x63\x74\x6f\x72\x7c\x7c\x61\x2e\x77\x65\x62\x6b\
-\x69\x74\x4d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\
-\x72\x7c\x7c\x61\x2e\x6d\x73\x4d\x61\x74\x63\x68\x65\x73\x53\x65\
-\x6c\x65\x63\x74\x6f\x72\x3b\x69\x66\x28\x62\x29\x7b\x76\x61\x72\
-\x20\x64\x3d\x21\x62\x2e\x63\x61\x6c\x6c\x28\x63\x2e\x63\x72\x65\
-\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\
-\x29\x2c\x22\x64\x69\x76\x22\x29\x2c\x65\x3d\x21\x31\x3b\x74\x72\
-\x79\x7b\x62\x2e\x63\x61\x6c\x6c\x28\x63\x2e\x64\x6f\x63\x75\x6d\
-\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x22\x5b\x74\x65\x73\
-\x74\x21\x3d\x27\x27\x5d\x3a\x73\x69\x7a\x7a\x6c\x65\x22\x29\x7d\
-\x63\x61\x74\x63\x68\x28\x66\x29\x7b\x65\x3d\x21\x30\x7d\x6d\x2e\
-\x6d\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x3d\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x63\x3d\
-\x63\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x2f\x5c\x3d\x5c\x73\x2a\
-\x28\x5b\x5e\x27\x22\x5c\x5d\x5d\x2a\x29\x5c\x73\x2a\x5c\x5d\x2f\
-\x67\x2c\x22\x3d\x27\x24\x31\x27\x5d\x22\x29\x3b\x69\x66\x28\x21\
-\x6d\x2e\x69\x73\x58\x4d\x4c\x28\x61\x29\x29\x74\x72\x79\x7b\x69\
-\x66\x28\x65\x7c\x7c\x21\x6f\x2e\x6d\x61\x74\x63\x68\x2e\x50\x53\
-\x45\x55\x44\x4f\x2e\x74\x65\x73\x74\x28\x63\x29\x26\x26\x21\x2f\
-\x21\x3d\x2f\x2e\x74\x65\x73\x74\x28\x63\x29\x29\x7b\x76\x61\x72\
-\x20\x66\x3d\x62\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x63\x29\x3b\x69\
-\x66\x28\x66\x7c\x7c\x21\x64\x7c\x7c\x61\x2e\x64\x6f\x63\x75\x6d\
-\x65\x6e\x74\x26\x26\x61\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\
-\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x31\x31\x29\x72\x65\
-\x74\x75\x72\x6e\x20\x66\x7d\x7d\x63\x61\x74\x63\x68\x28\x67\x29\
-\x7b\x7d\x72\x65\x74\x75\x72\x6e\x20\x6d\x28\x63\x2c\x6e\x75\x6c\
-\x6c\x2c\x6e\x75\x6c\x6c\x2c\x5b\x61\x5d\x29\x2e\x6c\x65\x6e\x67\
-\x74\x68\x3e\x30\x7d\x7d\x7d\x28\x29\x2c\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x63\x2e\x63\x72\x65\
-\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\
-\x29\x3b\x61\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x3d\x22\x3c\
-\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x27\x74\x65\x73\x74\x20\
-\x65\x27\x3e\x3c\x2f\x64\x69\x76\x3e\x3c\x64\x69\x76\x20\x63\x6c\
-\x61\x73\x73\x3d\x27\x74\x65\x73\x74\x27\x3e\x3c\x2f\x64\x69\x76\
-\x3e\x22\x3b\x69\x66\x28\x21\x21\x61\x2e\x67\x65\x74\x45\x6c\x65\
-\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\
-\x26\x26\x61\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\
-\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\x65\x28\x22\x65\x22\x29\x2e\
-\x6c\x65\x6e\x67\x74\x68\x21\x3d\x3d\x30\x29\x7b\x61\x2e\x6c\x61\
-\x73\x74\x43\x68\x69\x6c\x64\x2e\x63\x6c\x61\x73\x73\x4e\x61\x6d\
-\x65\x3d\x22\x65\x22\x3b\x69\x66\x28\x61\x2e\x67\x65\x74\x45\x6c\
-\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\x4e\x61\x6d\
-\x65\x28\x22\x65\x22\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\
-\x31\x29\x72\x65\x74\x75\x72\x6e\x3b\x6f\x2e\x6f\x72\x64\x65\x72\
-\x2e\x73\x70\x6c\x69\x63\x65\x28\x31\x2c\x30\x2c\x22\x43\x4c\x41\
-\x53\x53\x22\x29\x2c\x6f\x2e\x66\x69\x6e\x64\x2e\x43\x4c\x41\x53\
-\x53\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\
-\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x62\x2e\x67\x65\
-\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\x73\
-\x4e\x61\x6d\x65\x21\x3d\x22\x75\x6e\x64\x65\x66\x69\x6e\x65\x64\
-\x22\x26\x26\x21\x63\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x2e\x67\
-\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x43\x6c\x61\x73\
-\x73\x4e\x61\x6d\x65\x28\x61\x5b\x31\x5d\x29\x7d\x2c\x61\x3d\x6e\
-\x75\x6c\x6c\x7d\x7d\x28\x29\x2c\x63\x2e\x64\x6f\x63\x75\x6d\x65\
-\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x63\x6f\x6e\x74\x61\x69\
-\x6e\x73\x3f\x6d\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x3d\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\
-\x72\x6e\x20\x61\x21\x3d\x3d\x62\x26\x26\x28\x61\x2e\x63\x6f\x6e\
-\x74\x61\x69\x6e\x73\x3f\x61\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\
-\x28\x62\x29\x3a\x21\x30\x29\x7d\x3a\x63\x2e\x64\x6f\x63\x75\x6d\
-\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x63\x6f\x6d\x70\x61\
-\x72\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\
-\x6f\x6e\x3f\x6d\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x3d\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x72\x65\x74\x75\
-\x72\x6e\x21\x21\x28\x61\x2e\x63\x6f\x6d\x70\x61\x72\x65\x44\x6f\
-\x63\x75\x6d\x65\x6e\x74\x50\x6f\x73\x69\x74\x69\x6f\x6e\x28\x62\
-\x29\x26\x31\x36\x29\x7d\x3a\x6d\x2e\x63\x6f\x6e\x74\x61\x69\x6e\
-\x73\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\
-\x75\x72\x6e\x21\x31\x7d\x2c\x6d\x2e\x69\x73\x58\x4d\x4c\x3d\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\
-\x3d\x28\x61\x3f\x61\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\
-\x65\x6e\x74\x7c\x7c\x61\x3a\x30\x29\x2e\x64\x6f\x63\x75\x6d\x65\
-\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x72\x65\x74\x75\x72\x6e\
-\x20\x62\x3f\x62\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x21\x3d\x3d\
-\x22\x48\x54\x4d\x4c\x22\x3a\x21\x31\x7d\x3b\x76\x61\x72\x20\x79\
-\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\
-\x7b\x76\x61\x72\x20\x64\x2c\x65\x3d\x5b\x5d\x2c\x66\x3d\x22\x22\
-\x2c\x67\x3d\x62\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3f\x5b\x62\
-\x5d\x3a\x62\x3b\x77\x68\x69\x6c\x65\x28\x64\x3d\x6f\x2e\x6d\x61\
-\x74\x63\x68\x2e\x50\x53\x45\x55\x44\x4f\x2e\x65\x78\x65\x63\x28\
-\x61\x29\x29\x66\x2b\x3d\x64\x5b\x30\x5d\x2c\x61\x3d\x61\x2e\x72\
-\x65\x70\x6c\x61\x63\x65\x28\x6f\x2e\x6d\x61\x74\x63\x68\x2e\x50\
-\x53\x45\x55\x44\x4f\x2c\x22\x22\x29\x3b\x61\x3d\x6f\x2e\x72\x65\
-\x6c\x61\x74\x69\x76\x65\x5b\x61\x5d\x3f\x61\x2b\x22\x2a\x22\x3a\
-\x61\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x68\x3d\x30\x2c\x69\x3d\
-\x67\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x68\x3c\x69\x3b\x68\x2b\x2b\
-\x29\x6d\x28\x61\x2c\x67\x5b\x68\x5d\x2c\x65\x2c\x63\x29\x3b\x72\
-\x65\x74\x75\x72\x6e\x20\x6d\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\
-\x2c\x65\x29\x7d\x3b\x6d\x2e\x61\x74\x74\x72\x3d\x66\x2e\x61\x74\
-\x74\x72\x2c\x6d\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x73\x2e\x61\
-\x74\x74\x72\x4d\x61\x70\x3d\x7b\x7d\x2c\x66\x2e\x66\x69\x6e\x64\
-\x3d\x6d\x2c\x66\x2e\x65\x78\x70\x72\x3d\x6d\x2e\x73\x65\x6c\x65\
-\x63\x74\x6f\x72\x73\x2c\x66\x2e\x65\x78\x70\x72\x5b\x22\x3a\x22\
-\x5d\x3d\x66\x2e\x65\x78\x70\x72\x2e\x66\x69\x6c\x74\x65\x72\x73\
-\x2c\x66\x2e\x75\x6e\x69\x71\x75\x65\x3d\x6d\x2e\x75\x6e\x69\x71\
-\x75\x65\x53\x6f\x72\x74\x2c\x66\x2e\x74\x65\x78\x74\x3d\x6d\x2e\
-\x67\x65\x74\x54\x65\x78\x74\x2c\x66\x2e\x69\x73\x58\x4d\x4c\x44\
-\x6f\x63\x3d\x6d\x2e\x69\x73\x58\x4d\x4c\x2c\x66\x2e\x63\x6f\x6e\
-\x74\x61\x69\x6e\x73\x3d\x6d\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\
-\x7d\x28\x29\x3b\x76\x61\x72\x20\x4c\x3d\x2f\x55\x6e\x74\x69\x6c\
-\x24\x2f\x2c\x4d\x3d\x2f\x5e\x28\x3f\x3a\x70\x61\x72\x65\x6e\x74\
-\x73\x7c\x70\x72\x65\x76\x55\x6e\x74\x69\x6c\x7c\x70\x72\x65\x76\
-\x41\x6c\x6c\x29\x2f\x2c\x4e\x3d\x2f\x2c\x2f\x2c\x4f\x3d\x2f\x5e\
-\x2e\x5b\x5e\x3a\x23\x5c\x5b\x5c\x2e\x2c\x5d\x2a\x24\x2f\x2c\x50\
-\x3d\x41\x72\x72\x61\x79\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\x65\
-\x2e\x73\x6c\x69\x63\x65\x2c\x51\x3d\x66\x2e\x65\x78\x70\x72\x2e\
-\x6d\x61\x74\x63\x68\x2e\x50\x4f\x53\x2c\x52\x3d\x7b\x63\x68\x69\
-\x6c\x64\x72\x65\x6e\x3a\x21\x30\x2c\x63\x6f\x6e\x74\x65\x6e\x74\
-\x73\x3a\x21\x30\x2c\x6e\x65\x78\x74\x3a\x21\x30\x2c\x70\x72\x65\
-\x76\x3a\x21\x30\x7d\x3b\x66\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\
-\x64\x28\x7b\x66\x69\x6e\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x74\x68\x69\x73\x2c\x63\
-\x2c\x64\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x21\x3d\
-\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x72\x65\x74\x75\x72\x6e\x20\
-\x66\x28\x61\x29\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x29\x7b\x66\x6f\x72\x28\x63\x3d\x30\x2c\x64\
-\x3d\x62\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x63\x3c\x64\x3b\x63\x2b\
-\x2b\x29\x69\x66\x28\x66\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\
-\x62\x5b\x63\x5d\x2c\x74\x68\x69\x73\x29\x29\x72\x65\x74\x75\x72\
-\x6e\x21\x30\x7d\x29\x3b\x76\x61\x72\x20\x65\x3d\x74\x68\x69\x73\
-\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x22\x22\x2c\x22\x66\
-\x69\x6e\x64\x22\x2c\x61\x29\x2c\x67\x2c\x68\x2c\x69\x3b\x66\x6f\
-\x72\x28\x63\x3d\x30\x2c\x64\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\
-\x67\x74\x68\x3b\x63\x3c\x64\x3b\x63\x2b\x2b\x29\x7b\x67\x3d\x65\
-\x2e\x6c\x65\x6e\x67\x74\x68\x2c\x66\x2e\x66\x69\x6e\x64\x28\x61\
-\x2c\x74\x68\x69\x73\x5b\x63\x5d\x2c\x65\x29\x3b\x69\x66\x28\x63\
-\x3e\x30\x29\x66\x6f\x72\x28\x68\x3d\x67\x3b\x68\x3c\x65\x2e\x6c\
-\x65\x6e\x67\x74\x68\x3b\x68\x2b\x2b\x29\x66\x6f\x72\x28\x69\x3d\
-\x30\x3b\x69\x3c\x67\x3b\x69\x2b\x2b\x29\x69\x66\x28\x65\x5b\x69\
-\x5d\x3d\x3d\x3d\x65\x5b\x68\x5d\x29\x7b\x65\x2e\x73\x70\x6c\x69\
-\x63\x65\x28\x68\x2d\x2d\x2c\x31\x29\x3b\x62\x72\x65\x61\x6b\x7d\
-\x7d\x72\x65\x74\x75\x72\x6e\x20\x65\x7d\x2c\x68\x61\x73\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\
-\x3d\x66\x28\x61\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\
-\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x29\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x61\x3d\x30\x2c\
-\x63\x3d\x62\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x61\x3c\x63\x3b\x61\
-\x2b\x2b\x29\x69\x66\x28\x66\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\
-\x28\x74\x68\x69\x73\x2c\x62\x5b\x61\x5d\x29\x29\x72\x65\x74\x75\
-\x72\x6e\x21\x30\x7d\x29\x7d\x2c\x6e\x6f\x74\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\
-\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x54\x28\
-\x74\x68\x69\x73\x2c\x61\x2c\x21\x31\x29\x2c\x22\x6e\x6f\x74\x22\
-\x2c\x61\x29\x7d\x2c\x66\x69\x6c\x74\x65\x72\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\
-\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x54\x28\
-\x74\x68\x69\x73\x2c\x61\x2c\x21\x30\x29\x2c\x22\x66\x69\x6c\x74\
-\x65\x72\x22\x2c\x61\x29\x7d\x2c\x69\x73\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x21\x61\
-\x26\x26\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x22\x73\x74\
-\x72\x69\x6e\x67\x22\x3f\x51\x2e\x74\x65\x73\x74\x28\x61\x29\x3f\
-\x66\x28\x61\x2c\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x78\x74\
-\x29\x2e\x69\x6e\x64\x65\x78\x28\x74\x68\x69\x73\x5b\x30\x5d\x29\
-\x3e\x3d\x30\x3a\x66\x2e\x66\x69\x6c\x74\x65\x72\x28\x61\x2c\x74\
-\x68\x69\x73\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x30\x3a\x74\x68\
-\x69\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\x61\x29\x2e\x6c\x65\x6e\
-\x67\x74\x68\x3e\x30\x29\x7d\x2c\x63\x6c\x6f\x73\x65\x73\x74\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\
-\x72\x20\x63\x3d\x5b\x5d\x2c\x64\x2c\x65\x2c\x67\x3d\x74\x68\x69\
-\x73\x5b\x30\x5d\x3b\x69\x66\x28\x66\x2e\x69\x73\x41\x72\x72\x61\
-\x79\x28\x61\x29\x29\x7b\x76\x61\x72\x20\x68\x3d\x31\x3b\x77\x68\
-\x69\x6c\x65\x28\x67\x26\x26\x67\x2e\x6f\x77\x6e\x65\x72\x44\x6f\
-\x63\x75\x6d\x65\x6e\x74\x26\x26\x67\x21\x3d\x3d\x62\x29\x7b\x66\
-\x6f\x72\x28\x64\x3d\x30\x3b\x64\x3c\x61\x2e\x6c\x65\x6e\x67\x74\
-\x68\x3b\x64\x2b\x2b\x29\x66\x28\x67\x29\x2e\x69\x73\x28\x61\x5b\
-\x64\x5d\x29\x26\x26\x63\x2e\x70\x75\x73\x68\x28\x7b\x73\x65\x6c\
-\x65\x63\x74\x6f\x72\x3a\x61\x5b\x64\x5d\x2c\x65\x6c\x65\x6d\x3a\
-\x67\x2c\x6c\x65\x76\x65\x6c\x3a\x68\x7d\x29\x3b\x67\x3d\x67\x2e\
-\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2c\x68\x2b\x2b\x7d\x72\
-\x65\x74\x75\x72\x6e\x20\x63\x7d\x76\x61\x72\x20\x69\x3d\x51\x2e\
-\x74\x65\x73\x74\x28\x61\x29\x7c\x7c\x74\x79\x70\x65\x6f\x66\x20\
-\x61\x21\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x3f\x66\x28\x61\x2c\
-\x62\x7c\x7c\x74\x68\x69\x73\x2e\x63\x6f\x6e\x74\x65\x78\x74\x29\
-\x3a\x30\x3b\x66\x6f\x72\x28\x64\x3d\x30\x2c\x65\x3d\x74\x68\x69\
-\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x64\x3c\x65\x3b\x64\x2b\x2b\
-\x29\x7b\x67\x3d\x74\x68\x69\x73\x5b\x64\x5d\x3b\x77\x68\x69\x6c\
-\x65\x28\x67\x29\x7b\x69\x66\x28\x69\x3f\x69\x2e\x69\x6e\x64\x65\
-\x78\x28\x67\x29\x3e\x2d\x31\x3a\x66\x2e\x66\x69\x6e\x64\x2e\x6d\
-\x61\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x67\
-\x2c\x61\x29\x29\x7b\x63\x2e\x70\x75\x73\x68\x28\x67\x29\x3b\x62\
-\x72\x65\x61\x6b\x7d\x67\x3d\x67\x2e\x70\x61\x72\x65\x6e\x74\x4e\
-\x6f\x64\x65\x3b\x69\x66\x28\x21\x67\x7c\x7c\x21\x67\x2e\x6f\x77\
-\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x67\x3d\x3d\
-\x3d\x62\x7c\x7c\x67\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\
-\x3d\x31\x31\x29\x62\x72\x65\x61\x6b\x7d\x7d\x63\x3d\x63\x2e\x6c\
-\x65\x6e\x67\x74\x68\x3e\x31\x3f\x66\x2e\x75\x6e\x69\x71\x75\x65\
-\x28\x63\x29\x3a\x63\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\
-\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x63\x2c\x22\x63\
-\x6c\x6f\x73\x65\x73\x74\x22\x2c\x61\x29\x7d\x2c\x69\x6e\x64\x65\
-\x78\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\
-\x28\x21\x61\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x5b\
-\x30\x5d\x26\x26\x74\x68\x69\x73\x5b\x30\x5d\x2e\x70\x61\x72\x65\
-\x6e\x74\x4e\x6f\x64\x65\x3f\x74\x68\x69\x73\x2e\x70\x72\x65\x76\
-\x41\x6c\x6c\x28\x29\x2e\x6c\x65\x6e\x67\x74\x68\x3a\x2d\x31\x3b\
-\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x22\x73\x74\
-\x72\x69\x6e\x67\x22\x29\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x69\
-\x6e\x41\x72\x72\x61\x79\x28\x74\x68\x69\x73\x5b\x30\x5d\x2c\x66\
-\x28\x61\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x69\x6e\
-\x41\x72\x72\x61\x79\x28\x61\x2e\x6a\x71\x75\x65\x72\x79\x3f\x61\
-\x5b\x30\x5d\x3a\x61\x2c\x74\x68\x69\x73\x29\x7d\x2c\x61\x64\x64\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\
-\x61\x72\x20\x63\x3d\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x22\
-\x73\x74\x72\x69\x6e\x67\x22\x3f\x66\x28\x61\x2c\x62\x29\x3a\x66\
-\x2e\x6d\x61\x6b\x65\x41\x72\x72\x61\x79\x28\x61\x26\x26\x61\x2e\
-\x6e\x6f\x64\x65\x54\x79\x70\x65\x3f\x5b\x61\x5d\x3a\x61\x29\x2c\
-\x64\x3d\x66\x2e\x6d\x65\x72\x67\x65\x28\x74\x68\x69\x73\x2e\x67\
-\x65\x74\x28\x29\x2c\x63\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\
-\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x53\x28\
-\x63\x5b\x30\x5d\x29\x7c\x7c\x53\x28\x64\x5b\x30\x5d\x29\x3f\x64\
-\x3a\x66\x2e\x75\x6e\x69\x71\x75\x65\x28\x64\x29\x29\x7d\x2c\x61\
-\x6e\x64\x53\x65\x6c\x66\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x61\x64\
-\x64\x28\x74\x68\x69\x73\x2e\x70\x72\x65\x76\x4f\x62\x6a\x65\x63\
-\x74\x29\x7d\x7d\x29\x2c\x66\x2e\x65\x61\x63\x68\x28\x7b\x70\x61\
-\x72\x65\x6e\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\
-\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\
-\x6f\x64\x65\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x26\x26\x62\x2e\
-\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x31\x31\x3f\x62\x3a\
-\x6e\x75\x6c\x6c\x7d\x2c\x70\x61\x72\x65\x6e\x74\x73\x3a\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\
-\x20\x66\x2e\x64\x69\x72\x28\x61\x2c\x22\x70\x61\x72\x65\x6e\x74\
-\x4e\x6f\x64\x65\x22\x29\x7d\x2c\x70\x61\x72\x65\x6e\x74\x73\x55\
-\x6e\x74\x69\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\
-\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x64\x69\
-\x72\x28\x61\x2c\x22\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x22\
-\x2c\x63\x29\x7d\x2c\x6e\x65\x78\x74\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x6e\
-\x74\x68\x28\x61\x2c\x32\x2c\x22\x6e\x65\x78\x74\x53\x69\x62\x6c\
-\x69\x6e\x67\x22\x29\x7d\x2c\x70\x72\x65\x76\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\
-\x2e\x6e\x74\x68\x28\x61\x2c\x32\x2c\x22\x70\x72\x65\x76\x69\x6f\
-\x75\x73\x53\x69\x62\x6c\x69\x6e\x67\x22\x29\x7d\x2c\x6e\x65\x78\
-\x74\x41\x6c\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\
-\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x64\x69\x72\x28\x61\x2c\
-\x22\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x22\x29\x7d\x2c\
-\x70\x72\x65\x76\x41\x6c\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x64\x69\x72\
-\x28\x61\x2c\x22\x70\x72\x65\x76\x69\x6f\x75\x73\x53\x69\x62\x6c\
-\x69\x6e\x67\x22\x29\x7d\x2c\x6e\x65\x78\x74\x55\x6e\x74\x69\x6c\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\
-\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x64\x69\x72\x28\x61\x2c\
-\x22\x6e\x65\x78\x74\x53\x69\x62\x6c\x69\x6e\x67\x22\x2c\x63\x29\
-\x7d\x2c\x70\x72\x65\x76\x55\x6e\x74\x69\x6c\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\
-\x72\x6e\x20\x66\x2e\x64\x69\x72\x28\x61\x2c\x22\x70\x72\x65\x76\
-\x69\x6f\x75\x73\x53\x69\x62\x6c\x69\x6e\x67\x22\x2c\x63\x29\x7d\
-\x2c\x73\x69\x62\x6c\x69\x6e\x67\x73\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x73\
-\x69\x62\x6c\x69\x6e\x67\x28\x61\x2e\x70\x61\x72\x65\x6e\x74\x4e\
-\x6f\x64\x65\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2c\x61\
-\x29\x7d\x2c\x63\x68\x69\x6c\x64\x72\x65\x6e\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\
-\x2e\x73\x69\x62\x6c\x69\x6e\x67\x28\x61\x2e\x66\x69\x72\x73\x74\
-\x43\x68\x69\x6c\x64\x29\x7d\x2c\x63\x6f\x6e\x74\x65\x6e\x74\x73\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\
-\x75\x72\x6e\x20\x66\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x28\x61\
-\x2c\x22\x69\x66\x72\x61\x6d\x65\x22\x29\x3f\x61\x2e\x63\x6f\x6e\
-\x74\x65\x6e\x74\x44\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x61\x2e\
-\x63\x6f\x6e\x74\x65\x6e\x74\x57\x69\x6e\x64\x6f\x77\x2e\x64\x6f\
-\x63\x75\x6d\x65\x6e\x74\x3a\x66\x2e\x6d\x61\x6b\x65\x41\x72\x72\
-\x61\x79\x28\x61\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x29\
-\x7d\x7d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\
-\x7b\x66\x2e\x66\x6e\x5b\x61\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x63\x2c\x64\x29\x7b\x76\x61\x72\x20\x65\x3d\x66\x2e\x6d\
-\x61\x70\x28\x74\x68\x69\x73\x2c\x62\x2c\x63\x29\x3b\x4c\x2e\x74\
-\x65\x73\x74\x28\x61\x29\x7c\x7c\x28\x64\x3d\x63\x29\x2c\x64\x26\
-\x26\x74\x79\x70\x65\x6f\x66\x20\x64\x3d\x3d\x22\x73\x74\x72\x69\
-\x6e\x67\x22\x26\x26\x28\x65\x3d\x66\x2e\x66\x69\x6c\x74\x65\x72\
-\x28\x64\x2c\x65\x29\x29\x2c\x65\x3d\x74\x68\x69\x73\x2e\x6c\x65\
-\x6e\x67\x74\x68\x3e\x31\x26\x26\x21\x52\x5b\x61\x5d\x3f\x66\x2e\
-\x75\x6e\x69\x71\x75\x65\x28\x65\x29\x3a\x65\x2c\x28\x74\x68\x69\
-\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3e\x31\x7c\x7c\x4e\x2e\x74\x65\
-\x73\x74\x28\x64\x29\x29\x26\x26\x4d\x2e\x74\x65\x73\x74\x28\x61\
-\x29\x26\x26\x28\x65\x3d\x65\x2e\x72\x65\x76\x65\x72\x73\x65\x28\
-\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\
-\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x65\x2c\x61\x2c\x50\x2e\x63\
-\x61\x6c\x6c\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x2e\x6a\
-\x6f\x69\x6e\x28\x22\x2c\x22\x29\x29\x7d\x7d\x29\x2c\x66\x2e\x65\
-\x78\x74\x65\x6e\x64\x28\x7b\x66\x69\x6c\x74\x65\x72\x3a\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x63\x26\
-\x26\x28\x61\x3d\x22\x3a\x6e\x6f\x74\x28\x22\x2b\x61\x2b\x22\x29\
-\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x2e\x6c\x65\x6e\x67\
-\x74\x68\x3d\x3d\x3d\x31\x3f\x66\x2e\x66\x69\x6e\x64\x2e\x6d\x61\
-\x74\x63\x68\x65\x73\x53\x65\x6c\x65\x63\x74\x6f\x72\x28\x62\x5b\
-\x30\x5d\x2c\x61\x29\x3f\x5b\x62\x5b\x30\x5d\x5d\x3a\x5b\x5d\x3a\
-\x66\x2e\x66\x69\x6e\x64\x2e\x6d\x61\x74\x63\x68\x65\x73\x28\x61\
-\x2c\x62\x29\x7d\x2c\x64\x69\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x2c\x63\x2c\x64\x29\x7b\x76\x61\x72\x20\x65\x3d\x5b\
-\x5d\x2c\x67\x3d\x61\x5b\x63\x5d\x3b\x77\x68\x69\x6c\x65\x28\x67\
-\x26\x26\x67\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x21\x3d\x3d\x39\
-\x26\x26\x28\x64\x3d\x3d\x3d\x62\x7c\x7c\x67\x2e\x6e\x6f\x64\x65\
-\x54\x79\x70\x65\x21\x3d\x3d\x31\x7c\x7c\x21\x66\x28\x67\x29\x2e\
-\x69\x73\x28\x64\x29\x29\x29\x67\x2e\x6e\x6f\x64\x65\x54\x79\x70\
-\x65\x3d\x3d\x3d\x31\x26\x26\x65\x2e\x70\x75\x73\x68\x28\x67\x29\
-\x2c\x67\x3d\x67\x5b\x63\x5d\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\
-\x7d\x2c\x6e\x74\x68\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x62\x3d\x62\x7c\x7c\x31\x3b\x76\
-\x61\x72\x20\x65\x3d\x30\x3b\x66\x6f\x72\x28\x3b\x61\x3b\x61\x3d\
-\x61\x5b\x63\x5d\x29\x69\x66\x28\x61\x2e\x6e\x6f\x64\x65\x54\x79\
-\x70\x65\x3d\x3d\x3d\x31\x26\x26\x2b\x2b\x65\x3d\x3d\x3d\x62\x29\
-\x62\x72\x65\x61\x6b\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x2c\
-\x73\x69\x62\x6c\x69\x6e\x67\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x5b\x5d\x3b\x66\
-\x6f\x72\x28\x3b\x61\x3b\x61\x3d\x61\x2e\x6e\x65\x78\x74\x53\x69\
-\x62\x6c\x69\x6e\x67\x29\x61\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\
-\x3d\x3d\x3d\x31\x26\x26\x61\x21\x3d\x3d\x62\x26\x26\x63\x2e\x70\
-\x75\x73\x68\x28\x61\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\
-\x7d\x29\x3b\x76\x61\x72\x20\x56\x3d\x22\x61\x62\x62\x72\x7c\x61\
-\x72\x74\x69\x63\x6c\x65\x7c\x61\x73\x69\x64\x65\x7c\x61\x75\x64\
-\x69\x6f\x7c\x63\x61\x6e\x76\x61\x73\x7c\x64\x61\x74\x61\x6c\x69\
-\x73\x74\x7c\x64\x65\x74\x61\x69\x6c\x73\x7c\x66\x69\x67\x63\x61\
-\x70\x74\x69\x6f\x6e\x7c\x66\x69\x67\x75\x72\x65\x7c\x66\x6f\x6f\
-\x74\x65\x72\x7c\x68\x65\x61\x64\x65\x72\x7c\x68\x67\x72\x6f\x75\
-\x70\x7c\x6d\x61\x72\x6b\x7c\x6d\x65\x74\x65\x72\x7c\x6e\x61\x76\
-\x7c\x6f\x75\x74\x70\x75\x74\x7c\x70\x72\x6f\x67\x72\x65\x73\x73\
-\x7c\x73\x65\x63\x74\x69\x6f\x6e\x7c\x73\x75\x6d\x6d\x61\x72\x79\
-\x7c\x74\x69\x6d\x65\x7c\x76\x69\x64\x65\x6f\x22\x2c\x57\x3d\x2f\
-\x20\x6a\x51\x75\x65\x72\x79\x5c\x64\x2b\x3d\x22\x28\x3f\x3a\x5c\
-\x64\x2b\x7c\x6e\x75\x6c\x6c\x29\x22\x2f\x67\x2c\x58\x3d\x2f\x5e\
-\x5c\x73\x2b\x2f\x2c\x59\x3d\x2f\x3c\x28\x3f\x21\x61\x72\x65\x61\
-\x7c\x62\x72\x7c\x63\x6f\x6c\x7c\x65\x6d\x62\x65\x64\x7c\x68\x72\
-\x7c\x69\x6d\x67\x7c\x69\x6e\x70\x75\x74\x7c\x6c\x69\x6e\x6b\x7c\
-\x6d\x65\x74\x61\x7c\x70\x61\x72\x61\x6d\x29\x28\x28\x5b\x5c\x77\
-\x3a\x5d\x2b\x29\x5b\x5e\x3e\x5d\x2a\x29\x5c\x2f\x3e\x2f\x69\x67\
-\x2c\x5a\x3d\x2f\x3c\x28\x5b\x5c\x77\x3a\x5d\x2b\x29\x2f\x2c\x24\
-\x3d\x2f\x3c\x74\x62\x6f\x64\x79\x2f\x69\x2c\x5f\x3d\x2f\x3c\x7c\
-\x26\x23\x3f\x5c\x77\x2b\x3b\x2f\x2c\x62\x61\x3d\x2f\x3c\x28\x3f\
-\x3a\x73\x63\x72\x69\x70\x74\x7c\x73\x74\x79\x6c\x65\x29\x2f\x69\
-\x2c\x62\x62\x3d\x2f\x3c\x28\x3f\x3a\x73\x63\x72\x69\x70\x74\x7c\
-\x6f\x62\x6a\x65\x63\x74\x7c\x65\x6d\x62\x65\x64\x7c\x6f\x70\x74\
-\x69\x6f\x6e\x7c\x73\x74\x79\x6c\x65\x29\x2f\x69\x2c\x62\x63\x3d\
-\x6e\x65\x77\x20\x52\x65\x67\x45\x78\x70\x28\x22\x3c\x28\x3f\x3a\
-\x22\x2b\x56\x2b\x22\x29\x22\x2c\x22\x69\x22\x29\x2c\x62\x64\x3d\
-\x2f\x63\x68\x65\x63\x6b\x65\x64\x5c\x73\x2a\x28\x3f\x3a\x5b\x5e\
-\x3d\x5d\x7c\x3d\x5c\x73\x2a\x2e\x63\x68\x65\x63\x6b\x65\x64\x2e\
-\x29\x2f\x69\x2c\x62\x65\x3d\x2f\x5c\x2f\x28\x6a\x61\x76\x61\x7c\
-\x65\x63\x6d\x61\x29\x73\x63\x72\x69\x70\x74\x2f\x69\x2c\x62\x66\
-\x3d\x2f\x5e\x5c\x73\x2a\x3c\x21\x28\x3f\x3a\x5c\x5b\x43\x44\x41\
-\x54\x41\x5c\x5b\x7c\x5c\x2d\x5c\x2d\x29\x2f\x2c\x62\x67\x3d\x7b\
-\x6f\x70\x74\x69\x6f\x6e\x3a\x5b\x31\x2c\x22\x3c\x73\x65\x6c\x65\
-\x63\x74\x20\x6d\x75\x6c\x74\x69\x70\x6c\x65\x3d\x27\x6d\x75\x6c\
-\x74\x69\x70\x6c\x65\x27\x3e\x22\x2c\x22\x3c\x2f\x73\x65\x6c\x65\
-\x63\x74\x3e\x22\x5d\x2c\x6c\x65\x67\x65\x6e\x64\x3a\x5b\x31\x2c\
-\x22\x3c\x66\x69\x65\x6c\x64\x73\x65\x74\x3e\x22\x2c\x22\x3c\x2f\
-\x66\x69\x65\x6c\x64\x73\x65\x74\x3e\x22\x5d\x2c\x74\x68\x65\x61\
-\x64\x3a\x5b\x31\x2c\x22\x3c\x74\x61\x62\x6c\x65\x3e\x22\x2c\x22\
-\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x22\x5d\x2c\x74\x72\x3a\x5b\x32\
-\x2c\x22\x3c\x74\x61\x62\x6c\x65\x3e\x3c\x74\x62\x6f\x64\x79\x3e\
-\x22\x2c\x22\x3c\x2f\x74\x62\x6f\x64\x79\x3e\x3c\x2f\x74\x61\x62\
-\x6c\x65\x3e\x22\x5d\x2c\x74\x64\x3a\x5b\x33\x2c\x22\x3c\x74\x61\
-\x62\x6c\x65\x3e\x3c\x74\x62\x6f\x64\x79\x3e\x3c\x74\x72\x3e\x22\
-\x2c\x22\x3c\x2f\x74\x72\x3e\x3c\x2f\x74\x62\x6f\x64\x79\x3e\x3c\
-\x2f\x74\x61\x62\x6c\x65\x3e\x22\x5d\x2c\x63\x6f\x6c\x3a\x5b\x32\
-\x2c\x22\x3c\x74\x61\x62\x6c\x65\x3e\x3c\x74\x62\x6f\x64\x79\x3e\
-\x3c\x2f\x74\x62\x6f\x64\x79\x3e\x3c\x63\x6f\x6c\x67\x72\x6f\x75\
-\x70\x3e\x22\x2c\x22\x3c\x2f\x63\x6f\x6c\x67\x72\x6f\x75\x70\x3e\
-\x3c\x2f\x74\x61\x62\x6c\x65\x3e\x22\x5d\x2c\x61\x72\x65\x61\x3a\
-\x5b\x31\x2c\x22\x3c\x6d\x61\x70\x3e\x22\x2c\x22\x3c\x2f\x6d\x61\
-\x70\x3e\x22\x5d\x2c\x5f\x64\x65\x66\x61\x75\x6c\x74\x3a\x5b\x30\
-\x2c\x22\x22\x2c\x22\x22\x5d\x7d\x2c\x62\x68\x3d\x55\x28\x63\x29\
-\x3b\x62\x67\x2e\x6f\x70\x74\x67\x72\x6f\x75\x70\x3d\x62\x67\x2e\
-\x6f\x70\x74\x69\x6f\x6e\x2c\x62\x67\x2e\x74\x62\x6f\x64\x79\x3d\
-\x62\x67\x2e\x74\x66\x6f\x6f\x74\x3d\x62\x67\x2e\x63\x6f\x6c\x67\
-\x72\x6f\x75\x70\x3d\x62\x67\x2e\x63\x61\x70\x74\x69\x6f\x6e\x3d\
-\x62\x67\x2e\x74\x68\x65\x61\x64\x2c\x62\x67\x2e\x74\x68\x3d\x62\
-\x67\x2e\x74\x64\x2c\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x68\
-\x74\x6d\x6c\x53\x65\x72\x69\x61\x6c\x69\x7a\x65\x7c\x7c\x28\x62\
-\x67\x2e\x5f\x64\x65\x66\x61\x75\x6c\x74\x3d\x5b\x31\x2c\x22\x64\
-\x69\x76\x3c\x64\x69\x76\x3e\x22\x2c\x22\x3c\x2f\x64\x69\x76\x3e\
-\x22\x5d\x29\x2c\x66\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\x64\x28\
-\x7b\x74\x65\x78\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x29\x7b\x69\x66\x28\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\
-\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\
-\x29\x7b\x76\x61\x72\x20\x63\x3d\x66\x28\x74\x68\x69\x73\x29\x3b\
-\x63\x2e\x74\x65\x78\x74\x28\x61\x2e\x63\x61\x6c\x6c\x28\x74\x68\
-\x69\x73\x2c\x62\x2c\x63\x2e\x74\x65\x78\x74\x28\x29\x29\x29\x7d\
-\x29\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x21\x3d\x22\
-\x6f\x62\x6a\x65\x63\x74\x22\x26\x26\x61\x21\x3d\x3d\x62\x29\x72\
-\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x6d\x70\x74\x79\
-\x28\x29\x2e\x61\x70\x70\x65\x6e\x64\x28\x28\x74\x68\x69\x73\x5b\
-\x30\x5d\x26\x26\x74\x68\x69\x73\x5b\x30\x5d\x2e\x6f\x77\x6e\x65\
-\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x63\x29\x2e\x63\x72\
-\x65\x61\x74\x65\x54\x65\x78\x74\x4e\x6f\x64\x65\x28\x61\x29\x29\
-\x3b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x74\x65\x78\x74\x28\x74\
-\x68\x69\x73\x29\x7d\x2c\x77\x72\x61\x70\x41\x6c\x6c\x3a\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x66\x2e\x69\
-\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\
-\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x66\x28\x74\x68\x69\x73\
-\x29\x2e\x77\x72\x61\x70\x41\x6c\x6c\x28\x61\x2e\x63\x61\x6c\x6c\
-\x28\x74\x68\x69\x73\x2c\x62\x29\x29\x7d\x29\x3b\x69\x66\x28\x74\
-\x68\x69\x73\x5b\x30\x5d\x29\x7b\x76\x61\x72\x20\x62\x3d\x66\x28\
-\x61\x2c\x74\x68\x69\x73\x5b\x30\x5d\x2e\x6f\x77\x6e\x65\x72\x44\
-\x6f\x63\x75\x6d\x65\x6e\x74\x29\x2e\x65\x71\x28\x30\x29\x2e\x63\
-\x6c\x6f\x6e\x65\x28\x21\x30\x29\x3b\x74\x68\x69\x73\x5b\x30\x5d\
-\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x26\x26\x62\x2e\x69\
-\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x28\x74\x68\x69\x73\
-\x5b\x30\x5d\x29\x2c\x62\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x61\x3d\x74\x68\x69\x73\
-\x3b\x77\x68\x69\x6c\x65\x28\x61\x2e\x66\x69\x72\x73\x74\x43\x68\
-\x69\x6c\x64\x26\x26\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\
-\x64\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x61\
-\x3d\x61\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x3b\x72\x65\
-\x74\x75\x72\x6e\x20\x61\x7d\x29\x2e\x61\x70\x70\x65\x6e\x64\x28\
-\x74\x68\x69\x73\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\
-\x73\x7d\x2c\x77\x72\x61\x70\x49\x6e\x6e\x65\x72\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x66\x2e\x69\x73\
-\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\x75\
-\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x66\x28\x74\x68\x69\x73\x29\
-\x2e\x77\x72\x61\x70\x49\x6e\x6e\x65\x72\x28\x61\x2e\x63\x61\x6c\
-\x6c\x28\x74\x68\x69\x73\x2c\x62\x29\x29\x7d\x29\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x62\x3d\x66\
-\x28\x74\x68\x69\x73\x29\x2c\x63\x3d\x62\x2e\x63\x6f\x6e\x74\x65\
-\x6e\x74\x73\x28\x29\x3b\x63\x2e\x6c\x65\x6e\x67\x74\x68\x3f\x63\
-\x2e\x77\x72\x61\x70\x41\x6c\x6c\x28\x61\x29\x3a\x62\x2e\x61\x70\
-\x70\x65\x6e\x64\x28\x61\x29\x7d\x29\x7d\x2c\x77\x72\x61\x70\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\
-\x62\x3d\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\
-\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x63\x29\x7b\x66\
-\x28\x74\x68\x69\x73\x29\x2e\x77\x72\x61\x70\x41\x6c\x6c\x28\x62\
-\x3f\x61\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x2c\x63\x29\x3a\
-\x61\x29\x7d\x29\x7d\x2c\x75\x6e\x77\x72\x61\x70\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\
-\x68\x69\x73\x2e\x70\x61\x72\x65\x6e\x74\x28\x29\x2e\x65\x61\x63\
-\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x2e\x6e\
-\x6f\x64\x65\x4e\x61\x6d\x65\x28\x74\x68\x69\x73\x2c\x22\x62\x6f\
-\x64\x79\x22\x29\x7c\x7c\x66\x28\x74\x68\x69\x73\x29\x2e\x72\x65\
-\x70\x6c\x61\x63\x65\x57\x69\x74\x68\x28\x74\x68\x69\x73\x2e\x63\
-\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x29\x7d\x29\x2e\x65\x6e\x64\
-\x28\x29\x7d\x2c\x61\x70\x70\x65\x6e\x64\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\
-\x73\x2e\x64\x6f\x6d\x4d\x61\x6e\x69\x70\x28\x61\x72\x67\x75\x6d\
-\x65\x6e\x74\x73\x2c\x21\x30\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x29\x7b\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x54\x79\x70\
-\x65\x3d\x3d\x3d\x31\x26\x26\x74\x68\x69\x73\x2e\x61\x70\x70\x65\
-\x6e\x64\x43\x68\x69\x6c\x64\x28\x61\x29\x7d\x29\x7d\x2c\x70\x72\
-\x65\x70\x65\x6e\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\
-\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\
-\x4d\x61\x6e\x69\x70\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\
-\x21\x30\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x74\
-\x68\x69\x73\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\
-\x26\x26\x74\x68\x69\x73\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\
-\x6f\x72\x65\x28\x61\x2c\x74\x68\x69\x73\x2e\x66\x69\x72\x73\x74\
-\x43\x68\x69\x6c\x64\x29\x7d\x29\x7d\x2c\x62\x65\x66\x6f\x72\x65\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x74\
-\x68\x69\x73\x5b\x30\x5d\x26\x26\x74\x68\x69\x73\x5b\x30\x5d\x2e\
-\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x72\x65\x74\x75\x72\
-\x6e\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x4d\x61\x6e\x69\x70\x28\
-\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x21\x31\x2c\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x74\x68\x69\x73\x2e\x70\x61\
-\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x69\x6e\x73\x65\x72\x74\x42\
-\x65\x66\x6f\x72\x65\x28\x61\x2c\x74\x68\x69\x73\x29\x7d\x29\x3b\
-\x69\x66\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\
-\x67\x74\x68\x29\x7b\x76\x61\x72\x20\x61\x3d\x66\x2e\x63\x6c\x65\
-\x61\x6e\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x61\x2e\
-\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x61\x2c\x74\x68\x69\
-\x73\x2e\x74\x6f\x41\x72\x72\x61\x79\x28\x29\x29\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x70\x75\x73\x68\x53\x74\x61\
-\x63\x6b\x28\x61\x2c\x22\x62\x65\x66\x6f\x72\x65\x22\x2c\x61\x72\
-\x67\x75\x6d\x65\x6e\x74\x73\x29\x7d\x7d\x2c\x61\x66\x74\x65\x72\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x74\
-\x68\x69\x73\x5b\x30\x5d\x26\x26\x74\x68\x69\x73\x5b\x30\x5d\x2e\
-\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\x72\x65\x74\x75\x72\
-\x6e\x20\x74\x68\x69\x73\x2e\x64\x6f\x6d\x4d\x61\x6e\x69\x70\x28\
-\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2c\x21\x31\x2c\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x74\x68\x69\x73\x2e\x70\x61\
-\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x69\x6e\x73\x65\x72\x74\x42\
-\x65\x66\x6f\x72\x65\x28\x61\x2c\x74\x68\x69\x73\x2e\x6e\x65\x78\
-\x74\x53\x69\x62\x6c\x69\x6e\x67\x29\x7d\x29\x3b\x69\x66\x28\x61\
-\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\
-\x7b\x76\x61\x72\x20\x61\x3d\x74\x68\x69\x73\x2e\x70\x75\x73\x68\
-\x53\x74\x61\x63\x6b\x28\x74\x68\x69\x73\x2c\x22\x61\x66\x74\x65\
-\x72\x22\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\x61\x2e\
-\x70\x75\x73\x68\x2e\x61\x70\x70\x6c\x79\x28\x61\x2c\x66\x2e\x63\
-\x6c\x65\x61\x6e\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x29\
-\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x7d\x2c\x72\x65\x6d\x6f\
-\x76\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\
-\x7b\x66\x6f\x72\x28\x76\x61\x72\x20\x63\x3d\x30\x2c\x64\x3b\x28\
-\x64\x3d\x74\x68\x69\x73\x5b\x63\x5d\x29\x21\x3d\x6e\x75\x6c\x6c\
-\x3b\x63\x2b\x2b\x29\x69\x66\x28\x21\x61\x7c\x7c\x66\x2e\x66\x69\
-\x6c\x74\x65\x72\x28\x61\x2c\x5b\x64\x5d\x29\x2e\x6c\x65\x6e\x67\
-\x74\x68\x29\x21\x62\x26\x26\x64\x2e\x6e\x6f\x64\x65\x54\x79\x70\
-\x65\x3d\x3d\x3d\x31\x26\x26\x28\x66\x2e\x63\x6c\x65\x61\x6e\x44\
-\x61\x74\x61\x28\x64\x2e\x67\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\
-\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x2a\x22\x29\x29\
-\x2c\x66\x2e\x63\x6c\x65\x61\x6e\x44\x61\x74\x61\x28\x5b\x64\x5d\
-\x29\x29\x2c\x64\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x26\
-\x26\x64\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x72\x65\
-\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x64\x29\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x65\x6d\x70\x74\x79\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x0a\x7b\x66\x6f\x72\x28\
-\x76\x61\x72\x20\x61\x3d\x30\x2c\x62\x3b\x28\x62\x3d\x74\x68\x69\
-\x73\x5b\x61\x5d\x29\x21\x3d\x6e\x75\x6c\x6c\x3b\x61\x2b\x2b\x29\
-\x7b\x62\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x26\
-\x26\x66\x2e\x63\x6c\x65\x61\x6e\x44\x61\x74\x61\x28\x62\x2e\x67\
-\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\
-\x61\x6d\x65\x28\x22\x2a\x22\x29\x29\x3b\x77\x68\x69\x6c\x65\x28\
-\x62\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x62\x2e\x72\
-\x65\x6d\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x62\x2e\x66\x69\x72\
-\x73\x74\x43\x68\x69\x6c\x64\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\
-\x74\x68\x69\x73\x7d\x2c\x63\x6c\x6f\x6e\x65\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x61\x3d\x61\x3d\x3d\x6e\
-\x75\x6c\x6c\x3f\x21\x31\x3a\x61\x2c\x62\x3d\x62\x3d\x3d\x6e\x75\
-\x6c\x6c\x3f\x61\x3a\x62\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\
-\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x63\x6c\x6f\x6e\x65\
-\x28\x74\x68\x69\x73\x2c\x61\x2c\x62\x29\x7d\x29\x7d\x2c\x68\x74\
-\x6d\x6c\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\
-\x66\x28\x61\x3d\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x74\
-\x68\x69\x73\x5b\x30\x5d\x26\x26\x74\x68\x69\x73\x5b\x30\x5d\x2e\
-\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x3f\x74\x68\x69\
-\x73\x5b\x30\x5d\x2e\x69\x6e\x6e\x65\x72\x48\x54\x4d\x4c\x2e\x72\
-\x65\x70\x6c\x61\x63\x65\x28\x57\x2c\x22\x22\x29\x3a\x6e\x75\x6c\
-\x6c\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x22\
-\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x21\x62\x61\x2e\x74\x65\x73\
-\x74\x28\x61\x29\x26\x26\x28\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\
-\x2e\x6c\x65\x61\x64\x69\x6e\x67\x57\x68\x69\x74\x65\x73\x70\x61\
-\x63\x65\x7c\x7c\x21\x58\x2e\x74\x65\x73\x74\x28\x61\x29\x29\x26\
-\x26\x21\x62\x67\x5b\x28\x5a\x2e\x65\x78\x65\x63\x28\x61\x29\x7c\
-\x7c\x5b\x22\x22\x2c\x22\x22\x5d\x29\x5b\x31\x5d\x2e\x74\x6f\x4c\
-\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x29\x7b\x61\x3d\x61\
-\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x59\x2c\x22\x3c\x24\x31\x3e\
-\x3c\x2f\x24\x32\x3e\x22\x29\x3b\x74\x72\x79\x7b\x66\x6f\x72\x28\
-\x76\x61\x72\x20\x63\x3d\x30\x2c\x64\x3d\x74\x68\x69\x73\x2e\x6c\
-\x65\x6e\x67\x74\x68\x3b\x63\x3c\x64\x3b\x63\x2b\x2b\x29\x74\x68\
-\x69\x73\x5b\x63\x5d\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\
-\x3d\x31\x26\x26\x28\x66\x2e\x63\x6c\x65\x61\x6e\x44\x61\x74\x61\
-\x28\x74\x68\x69\x73\x5b\x63\x5d\x2e\x67\x65\x74\x45\x6c\x65\x6d\
-\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\x28\x22\x2a\
-\x22\x29\x29\x2c\x74\x68\x69\x73\x5b\x63\x5d\x2e\x69\x6e\x6e\x65\
-\x72\x48\x54\x4d\x4c\x3d\x61\x29\x7d\x63\x61\x74\x63\x68\x28\x65\
-\x29\x7b\x74\x68\x69\x73\x2e\x65\x6d\x70\x74\x79\x28\x29\x2e\x61\
-\x70\x70\x65\x6e\x64\x28\x61\x29\x7d\x7d\x65\x6c\x73\x65\x20\x66\
-\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x3f\x74\
-\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x66\x28\x74\x68\x69\
-\x73\x29\x3b\x63\x2e\x68\x74\x6d\x6c\x28\x61\x2e\x63\x61\x6c\x6c\
-\x28\x74\x68\x69\x73\x2c\x62\x2c\x63\x2e\x68\x74\x6d\x6c\x28\x29\
-\x29\x29\x7d\x29\x3a\x74\x68\x69\x73\x2e\x65\x6d\x70\x74\x79\x28\
-\x29\x2e\x61\x70\x70\x65\x6e\x64\x28\x61\x29\x3b\x72\x65\x74\x75\
-\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x72\x65\x70\x6c\x61\x63\x65\
-\x57\x69\x74\x68\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\
-\x7b\x69\x66\x28\x74\x68\x69\x73\x5b\x30\x5d\x26\x26\x74\x68\x69\
-\x73\x5b\x30\x5d\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x29\
-\x7b\x69\x66\x28\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\
-\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\
-\x7b\x76\x61\x72\x20\x63\x3d\x66\x28\x74\x68\x69\x73\x29\x2c\x64\
-\x3d\x63\x2e\x68\x74\x6d\x6c\x28\x29\x3b\x63\x2e\x72\x65\x70\x6c\
-\x61\x63\x65\x57\x69\x74\x68\x28\x61\x2e\x63\x61\x6c\x6c\x28\x74\
-\x68\x69\x73\x2c\x62\x2c\x64\x29\x29\x7d\x29\x3b\x74\x79\x70\x65\
-\x6f\x66\x20\x61\x21\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\
-\x28\x61\x3d\x66\x28\x61\x29\x2e\x64\x65\x74\x61\x63\x68\x28\x29\
-\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\
-\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\
-\x72\x20\x62\x3d\x74\x68\x69\x73\x2e\x6e\x65\x78\x74\x53\x69\x62\
-\x6c\x69\x6e\x67\x2c\x63\x3d\x74\x68\x69\x73\x2e\x70\x61\x72\x65\
-\x6e\x74\x4e\x6f\x64\x65\x3b\x66\x28\x74\x68\x69\x73\x29\x2e\x72\
-\x65\x6d\x6f\x76\x65\x28\x29\x2c\x62\x3f\x66\x28\x62\x29\x2e\x62\
-\x65\x66\x6f\x72\x65\x28\x61\x29\x3a\x66\x28\x63\x29\x2e\x61\x70\
-\x70\x65\x6e\x64\x28\x61\x29\x7d\x29\x7d\x72\x65\x74\x75\x72\x6e\
-\x20\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3f\x74\x68\x69\
-\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x66\x28\x66\x2e\
-\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x3f\x61\x28\
-\x29\x3a\x61\x29\x2c\x22\x72\x65\x70\x6c\x61\x63\x65\x57\x69\x74\
-\x68\x22\x2c\x61\x29\x3a\x74\x68\x69\x73\x7d\x2c\x64\x65\x74\x61\
-\x63\x68\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\
-\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x72\x65\x6d\x6f\x76\
-\x65\x28\x61\x2c\x21\x30\x29\x7d\x2c\x64\x6f\x6d\x4d\x61\x6e\x69\
-\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x64\
-\x29\x7b\x76\x61\x72\x20\x65\x2c\x67\x2c\x68\x2c\x69\x2c\x6a\x3d\
-\x61\x5b\x30\x5d\x2c\x6b\x3d\x5b\x5d\x3b\x69\x66\x28\x21\x66\x2e\
-\x73\x75\x70\x70\x6f\x72\x74\x2e\x63\x68\x65\x63\x6b\x43\x6c\x6f\
-\x6e\x65\x26\x26\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\
-\x6e\x67\x74\x68\x3d\x3d\x3d\x33\x26\x26\x74\x79\x70\x65\x6f\x66\
-\x20\x6a\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x62\x64\
-\x2e\x74\x65\x73\x74\x28\x6a\x29\x29\x72\x65\x74\x75\x72\x6e\x20\
-\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x29\x7b\x66\x28\x74\x68\x69\x73\x29\x2e\x64\x6f\x6d\
-\x4d\x61\x6e\x69\x70\x28\x61\x2c\x63\x2c\x64\x2c\x21\x30\x29\x7d\
-\x29\x3b\x69\x66\x28\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x6a\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\
-\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x65\
-\x29\x7b\x76\x61\x72\x20\x67\x3d\x66\x28\x74\x68\x69\x73\x29\x3b\
-\x61\x5b\x30\x5d\x3d\x6a\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\
-\x2c\x65\x2c\x63\x3f\x67\x2e\x68\x74\x6d\x6c\x28\x29\x3a\x62\x29\
-\x2c\x67\x2e\x64\x6f\x6d\x4d\x61\x6e\x69\x70\x28\x61\x2c\x63\x2c\
-\x64\x29\x7d\x29\x3b\x69\x66\x28\x74\x68\x69\x73\x5b\x30\x5d\x29\
-\x7b\x69\x3d\x6a\x26\x26\x6a\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\
-\x64\x65\x2c\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x70\x61\x72\
-\x65\x6e\x74\x4e\x6f\x64\x65\x26\x26\x69\x26\x26\x69\x2e\x6e\x6f\
-\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\x31\x26\x26\x69\x2e\x63\
-\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\
-\x3d\x3d\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3f\x65\
-\x3d\x7b\x66\x72\x61\x67\x6d\x65\x6e\x74\x3a\x69\x7d\x3a\x65\x3d\
-\x66\x2e\x62\x75\x69\x6c\x64\x46\x72\x61\x67\x6d\x65\x6e\x74\x28\
-\x61\x2c\x74\x68\x69\x73\x2c\x6b\x29\x2c\x68\x3d\x65\x2e\x66\x72\
-\x61\x67\x6d\x65\x6e\x74\x2c\x68\x2e\x63\x68\x69\x6c\x64\x4e\x6f\
-\x64\x65\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x3f\x67\
-\x3d\x68\x3d\x68\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x3a\
-\x67\x3d\x68\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x3b\x69\
-\x66\x28\x67\x29\x7b\x63\x3d\x63\x26\x26\x66\x2e\x6e\x6f\x64\x65\
-\x4e\x61\x6d\x65\x28\x67\x2c\x22\x74\x72\x22\x29\x3b\x66\x6f\x72\
-\x28\x76\x61\x72\x20\x6c\x3d\x30\x2c\x6d\x3d\x74\x68\x69\x73\x2e\
-\x6c\x65\x6e\x67\x74\x68\x2c\x6e\x3d\x6d\x2d\x31\x3b\x6c\x3c\x6d\
-\x3b\x6c\x2b\x2b\x29\x64\x2e\x63\x61\x6c\x6c\x28\x63\x3f\x62\x69\
-\x28\x74\x68\x69\x73\x5b\x6c\x5d\x2c\x67\x29\x3a\x74\x68\x69\x73\
-\x5b\x6c\x5d\x2c\x65\x2e\x63\x61\x63\x68\x65\x61\x62\x6c\x65\x7c\
-\x7c\x6d\x3e\x31\x26\x26\x6c\x3c\x6e\x3f\x66\x2e\x63\x6c\x6f\x6e\
-\x65\x28\x68\x2c\x21\x30\x2c\x21\x30\x29\x3a\x68\x29\x7d\x6b\x2e\
-\x6c\x65\x6e\x67\x74\x68\x26\x26\x66\x2e\x65\x61\x63\x68\x28\x6b\
-\x2c\x62\x70\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\
-\x7d\x7d\x29\x2c\x66\x2e\x62\x75\x69\x6c\x64\x46\x72\x61\x67\x6d\
-\x65\x6e\x74\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\
-\x2c\x64\x29\x7b\x76\x61\x72\x20\x65\x2c\x67\x2c\x68\x2c\x69\x2c\
-\x6a\x3d\x61\x5b\x30\x5d\x3b\x62\x26\x26\x62\x5b\x30\x5d\x26\x26\
-\x28\x69\x3d\x62\x5b\x30\x5d\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\
-\x75\x6d\x65\x6e\x74\x7c\x7c\x62\x5b\x30\x5d\x29\x2c\x69\x2e\x63\
-\x72\x65\x61\x74\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x46\x72\x61\
-\x67\x6d\x65\x6e\x74\x7c\x7c\x28\x69\x3d\x63\x29\x2c\x61\x2e\x6c\
-\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x26\x26\x74\x79\x70\x65\x6f\
-\x66\x20\x6a\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x6a\
-\x2e\x6c\x65\x6e\x67\x74\x68\x3c\x35\x31\x32\x26\x26\x69\x3d\x3d\
-\x3d\x63\x26\x26\x6a\x2e\x63\x68\x61\x72\x41\x74\x28\x30\x29\x3d\
-\x3d\x3d\x22\x3c\x22\x26\x26\x21\x62\x62\x2e\x74\x65\x73\x74\x28\
-\x6a\x29\x26\x26\x28\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x63\
-\x68\x65\x63\x6b\x43\x6c\x6f\x6e\x65\x7c\x7c\x21\x62\x64\x2e\x74\
-\x65\x73\x74\x28\x6a\x29\x29\x26\x26\x28\x66\x2e\x73\x75\x70\x70\
-\x6f\x72\x74\x2e\x68\x74\x6d\x6c\x35\x43\x6c\x6f\x6e\x65\x7c\x7c\
-\x21\x62\x63\x2e\x74\x65\x73\x74\x28\x6a\x29\x29\x26\x26\x28\x67\
-\x3d\x21\x30\x2c\x68\x3d\x66\x2e\x66\x72\x61\x67\x6d\x65\x6e\x74\
-\x73\x5b\x6a\x5d\x2c\x68\x26\x26\x68\x21\x3d\x3d\x31\x26\x26\x28\
-\x65\x3d\x68\x29\x29\x2c\x65\x7c\x7c\x28\x65\x3d\x69\x2e\x63\x72\
-\x65\x61\x74\x65\x44\x6f\x63\x75\x6d\x65\x6e\x74\x46\x72\x61\x67\
-\x6d\x65\x6e\x74\x28\x29\x2c\x66\x2e\x63\x6c\x65\x61\x6e\x28\x61\
-\x2c\x69\x2c\x65\x2c\x64\x29\x29\x2c\x67\x26\x26\x28\x66\x2e\x66\
-\x72\x61\x67\x6d\x65\x6e\x74\x73\x5b\x6a\x5d\x3d\x68\x3f\x65\x3a\
-\x31\x29\x3b\x72\x65\x74\x75\x72\x6e\x7b\x66\x72\x61\x67\x6d\x65\
-\x6e\x74\x3a\x65\x2c\x63\x61\x63\x68\x65\x61\x62\x6c\x65\x3a\x67\
-\x7d\x7d\x2c\x66\x2e\x66\x72\x61\x67\x6d\x65\x6e\x74\x73\x3d\x7b\
-\x7d\x2c\x66\x2e\x65\x61\x63\x68\x28\x7b\x61\x70\x70\x65\x6e\x64\
-\x54\x6f\x3a\x22\x61\x70\x70\x65\x6e\x64\x22\x2c\x70\x72\x65\x70\
-\x65\x6e\x64\x54\x6f\x3a\x22\x70\x72\x65\x70\x65\x6e\x64\x22\x2c\
-\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\x72\x65\x3a\x22\x62\x65\
-\x66\x6f\x72\x65\x22\x2c\x69\x6e\x73\x65\x72\x74\x41\x66\x74\x65\
-\x72\x3a\x22\x61\x66\x74\x65\x72\x22\x2c\x72\x65\x70\x6c\x61\x63\
-\x65\x41\x6c\x6c\x3a\x22\x72\x65\x70\x6c\x61\x63\x65\x57\x69\x74\
-\x68\x22\x7d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\
-\x29\x7b\x66\x2e\x66\x6e\x5b\x61\x5d\x3d\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x5b\x5d\x2c\x65\
-\x3d\x66\x28\x63\x29\x2c\x67\x3d\x74\x68\x69\x73\x2e\x6c\x65\x6e\
-\x67\x74\x68\x3d\x3d\x3d\x31\x26\x26\x74\x68\x69\x73\x5b\x30\x5d\
-\x2e\x70\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x3b\x69\x66\x28\x67\
-\x26\x26\x67\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\
-\x31\x26\x26\x67\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x2e\
-\x6c\x65\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x26\x26\x65\x2e\x6c\x65\
-\x6e\x67\x74\x68\x3d\x3d\x3d\x31\x29\x7b\x65\x5b\x62\x5d\x28\x74\
-\x68\x69\x73\x5b\x30\x5d\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\
-\x68\x69\x73\x7d\x66\x6f\x72\x28\x76\x61\x72\x20\x68\x3d\x30\x2c\
-\x69\x3d\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x68\x3c\x69\x3b\x68\
-\x2b\x2b\x29\x7b\x76\x61\x72\x20\x6a\x3d\x28\x68\x3e\x30\x3f\x74\
-\x68\x69\x73\x2e\x63\x6c\x6f\x6e\x65\x28\x21\x30\x29\x3a\x74\x68\
-\x69\x73\x29\x2e\x67\x65\x74\x28\x29\x3b\x66\x28\x65\x5b\x68\x5d\
-\x29\x5b\x62\x5d\x28\x6a\x29\x2c\x64\x3d\x64\x2e\x63\x6f\x6e\x63\
-\x61\x74\x28\x6a\x29\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\
-\x73\x2e\x70\x75\x73\x68\x53\x74\x61\x63\x6b\x28\x64\x2c\x61\x2c\
-\x65\x2e\x73\x65\x6c\x65\x63\x74\x6f\x72\x29\x7d\x7d\x29\x2c\x66\
-\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x63\x6c\x6f\x6e\x65\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\
-\x61\x72\x20\x64\x2c\x65\x2c\x67\x2c\x68\x3d\x66\x2e\x73\x75\x70\
-\x70\x6f\x72\x74\x2e\x68\x74\x6d\x6c\x35\x43\x6c\x6f\x6e\x65\x7c\
-\x7c\x21\x62\x63\x2e\x74\x65\x73\x74\x28\x22\x3c\x22\x2b\x61\x2e\
-\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x3f\x61\x2e\x63\x6c\x6f\x6e\
-\x65\x4e\x6f\x64\x65\x28\x21\x30\x29\x3a\x62\x6f\x28\x61\x29\x3b\
-\x69\x66\x28\x28\x21\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x6e\
-\x6f\x43\x6c\x6f\x6e\x65\x45\x76\x65\x6e\x74\x7c\x7c\x21\x66\x2e\
-\x73\x75\x70\x70\x6f\x72\x74\x2e\x6e\x6f\x43\x6c\x6f\x6e\x65\x43\
-\x68\x65\x63\x6b\x65\x64\x29\x26\x26\x28\x61\x2e\x6e\x6f\x64\x65\
-\x54\x79\x70\x65\x3d\x3d\x3d\x31\x7c\x7c\x61\x2e\x6e\x6f\x64\x65\
-\x54\x79\x70\x65\x3d\x3d\x3d\x31\x31\x29\x26\x26\x21\x66\x2e\x69\
-\x73\x58\x4d\x4c\x44\x6f\x63\x28\x61\x29\x29\x7b\x62\x6b\x28\x61\
-\x2c\x68\x29\x2c\x64\x3d\x62\x6c\x28\x61\x29\x2c\x65\x3d\x62\x6c\
-\x28\x68\x29\x3b\x66\x6f\x72\x28\x67\x3d\x30\x3b\x64\x5b\x67\x5d\
-\x3b\x2b\x2b\x67\x29\x65\x5b\x67\x5d\x26\x26\x62\x6b\x28\x64\x5b\
-\x67\x5d\x2c\x65\x5b\x67\x5d\x29\x7d\x69\x66\x28\x62\x29\x7b\x62\
-\x6a\x28\x61\x2c\x68\x29\x3b\x69\x66\x28\x63\x29\x7b\x64\x3d\x62\
-\x6c\x28\x61\x29\x2c\x65\x3d\x62\x6c\x28\x68\x29\x3b\x66\x6f\x72\
-\x28\x67\x3d\x30\x3b\x64\x5b\x67\x5d\x3b\x2b\x2b\x67\x29\x62\x6a\
-\x28\x64\x5b\x67\x5d\x2c\x65\x5b\x67\x5d\x29\x7d\x7d\x64\x3d\x65\
-\x3d\x6e\x75\x6c\x6c\x3b\x72\x65\x74\x75\x72\x6e\x20\x68\x7d\x2c\
-\x63\x6c\x65\x61\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x62\x2c\x64\x2c\x65\x29\x7b\x76\x61\x72\x20\x67\x3b\x62\x3d\
-\x62\x7c\x7c\x63\x2c\x74\x79\x70\x65\x6f\x66\x20\x62\x2e\x63\x72\
-\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x3d\x3d\x22\x75\x6e\
-\x64\x65\x66\x69\x6e\x65\x64\x22\x26\x26\x28\x62\x3d\x62\x2e\x6f\
-\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x62\x5b\
-\x30\x5d\x26\x26\x62\x5b\x30\x5d\x2e\x6f\x77\x6e\x65\x72\x44\x6f\
-\x63\x75\x6d\x65\x6e\x74\x7c\x7c\x63\x29\x3b\x76\x61\x72\x20\x68\
-\x3d\x5b\x5d\x2c\x69\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x6a\x3d\
-\x30\x2c\x6b\x3b\x28\x6b\x3d\x61\x5b\x6a\x5d\x29\x21\x3d\x6e\x75\
-\x6c\x6c\x3b\x6a\x2b\x2b\x29\x7b\x74\x79\x70\x65\x6f\x66\x20\x6b\
-\x3d\x3d\x22\x6e\x75\x6d\x62\x65\x72\x22\x26\x26\x28\x6b\x2b\x3d\
-\x22\x22\x29\x3b\x69\x66\x28\x21\x6b\x29\x63\x6f\x6e\x74\x69\x6e\
-\x75\x65\x3b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\x6b\x3d\x3d\
-\x22\x73\x74\x72\x69\x6e\x67\x22\x29\x69\x66\x28\x21\x5f\x2e\x74\
-\x65\x73\x74\x28\x6b\x29\x29\x6b\x3d\x62\x2e\x63\x72\x65\x61\x74\
-\x65\x54\x65\x78\x74\x4e\x6f\x64\x65\x28\x6b\x29\x3b\x65\x6c\x73\
-\x65\x7b\x6b\x3d\x6b\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x59\x2c\
-\x22\x3c\x24\x31\x3e\x3c\x2f\x24\x32\x3e\x22\x29\x3b\x76\x61\x72\
-\x20\x6c\x3d\x28\x5a\x2e\x65\x78\x65\x63\x28\x6b\x29\x7c\x7c\x5b\
-\x22\x22\x2c\x22\x22\x5d\x29\x5b\x31\x5d\x2e\x74\x6f\x4c\x6f\x77\
-\x65\x72\x43\x61\x73\x65\x28\x29\x2c\x6d\x3d\x62\x67\x5b\x6c\x5d\
-\x7c\x7c\x62\x67\x2e\x5f\x64\x65\x66\x61\x75\x6c\x74\x2c\x6e\x3d\
-\x6d\x5b\x30\x5d\x2c\x6f\x3d\x62\x2e\x63\x72\x65\x61\x74\x65\x45\
-\x6c\x65\x6d\x65\x6e\x74\x28\x22\x64\x69\x76\x22\x29\x3b\x62\x3d\
-\x3d\x3d\x63\x3f\x62\x68\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\
-\x6c\x64\x28\x6f\x29\x3a\x55\x28\x62\x29\x2e\x61\x70\x70\x65\x6e\
-\x64\x43\x68\x69\x6c\x64\x28\x6f\x29\x2c\x6f\x2e\x69\x6e\x6e\x65\
-\x72\x48\x54\x4d\x4c\x3d\x6d\x5b\x31\x5d\x2b\x6b\x2b\x6d\x5b\x32\
-\x5d\x3b\x77\x68\x69\x6c\x65\x28\x6e\x2d\x2d\x29\x6f\x3d\x6f\x2e\
-\x6c\x61\x73\x74\x43\x68\x69\x6c\x64\x3b\x69\x66\x28\x21\x66\x2e\
-\x73\x75\x70\x70\x6f\x72\x74\x2e\x74\x62\x6f\x64\x79\x29\x7b\x76\
-\x61\x72\x20\x70\x3d\x24\x2e\x74\x65\x73\x74\x28\x6b\x29\x2c\x71\
-\x3d\x6c\x3d\x3d\x3d\x22\x74\x61\x62\x6c\x65\x22\x26\x26\x21\x70\
-\x3f\x6f\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x26\x26\x6f\
-\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x2e\x63\x68\x69\x6c\
-\x64\x4e\x6f\x64\x65\x73\x3a\x6d\x5b\x31\x5d\x3d\x3d\x3d\x22\x3c\
-\x74\x61\x62\x6c\x65\x3e\x22\x26\x26\x21\x70\x3f\x6f\x2e\x63\x68\
-\x69\x6c\x64\x4e\x6f\x64\x65\x73\x3a\x5b\x5d\x3b\x66\x6f\x72\x28\
-\x69\x3d\x71\x2e\x6c\x65\x6e\x67\x74\x68\x2d\x31\x3b\x69\x3e\x3d\
-\x30\x3b\x2d\x2d\x69\x29\x66\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\
-\x28\x71\x5b\x69\x5d\x2c\x22\x74\x62\x6f\x64\x79\x22\x29\x26\x26\
-\x21\x71\x5b\x69\x5d\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\
-\x2e\x6c\x65\x6e\x67\x74\x68\x26\x26\x71\x5b\x69\x5d\x2e\x70\x61\
-\x72\x65\x6e\x74\x4e\x6f\x64\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\
-\x68\x69\x6c\x64\x28\x71\x5b\x69\x5d\x29\x7d\x21\x66\x2e\x73\x75\
-\x70\x70\x6f\x72\x74\x2e\x6c\x65\x61\x64\x69\x6e\x67\x57\x68\x69\
-\x74\x65\x73\x70\x61\x63\x65\x26\x26\x58\x2e\x74\x65\x73\x74\x28\
-\x6b\x29\x26\x26\x6f\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\x6f\
-\x72\x65\x28\x62\x2e\x63\x72\x65\x61\x74\x65\x54\x65\x78\x74\x4e\
-\x6f\x64\x65\x28\x58\x2e\x65\x78\x65\x63\x28\x6b\x29\x5b\x30\x5d\
-\x29\x2c\x6f\x2e\x66\x69\x72\x73\x74\x43\x68\x69\x6c\x64\x29\x2c\
-\x6b\x3d\x6f\x2e\x63\x68\x69\x6c\x64\x4e\x6f\x64\x65\x73\x7d\x76\
-\x61\x72\x20\x72\x3b\x69\x66\x28\x21\x66\x2e\x73\x75\x70\x70\x6f\
-\x72\x74\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x65\x63\x6b\x65\x64\
-\x29\x69\x66\x28\x6b\x5b\x30\x5d\x26\x26\x74\x79\x70\x65\x6f\x66\
-\x20\x28\x72\x3d\x6b\x2e\x6c\x65\x6e\x67\x74\x68\x29\x3d\x3d\x22\
-\x6e\x75\x6d\x62\x65\x72\x22\x29\x66\x6f\x72\x28\x69\x3d\x30\x3b\
-\x69\x3c\x72\x3b\x69\x2b\x2b\x29\x62\x6e\x28\x6b\x5b\x69\x5d\x29\
-\x3b\x65\x6c\x73\x65\x20\x62\x6e\x28\x6b\x29\x3b\x6b\x2e\x6e\x6f\
-\x64\x65\x54\x79\x70\x65\x3f\x68\x2e\x70\x75\x73\x68\x28\x6b\x29\
-\x3a\x68\x3d\x66\x2e\x6d\x65\x72\x67\x65\x28\x68\x2c\x6b\x29\x7d\
-\x69\x66\x28\x64\x29\x7b\x67\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x61\x2e\x74\x79\x70\
-\x65\x7c\x7c\x62\x65\x2e\x74\x65\x73\x74\x28\x61\x2e\x74\x79\x70\
-\x65\x29\x7d\x3b\x66\x6f\x72\x28\x6a\x3d\x30\x3b\x68\x5b\x6a\x5d\
-\x3b\x6a\x2b\x2b\x29\x69\x66\x28\x65\x26\x26\x66\x2e\x6e\x6f\x64\
-\x65\x4e\x61\x6d\x65\x28\x68\x5b\x6a\x5d\x2c\x22\x73\x63\x72\x69\
-\x70\x74\x22\x29\x26\x26\x28\x21\x68\x5b\x6a\x5d\x2e\x74\x79\x70\
-\x65\x7c\x7c\x68\x5b\x6a\x5d\x2e\x74\x79\x70\x65\x2e\x74\x6f\x4c\
-\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x3d\x3d\x3d\x22\x74\x65\
-\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22\x29\x29\
-\x65\x2e\x70\x75\x73\x68\x28\x68\x5b\x6a\x5d\x2e\x70\x61\x72\x65\
-\x6e\x74\x4e\x6f\x64\x65\x3f\x68\x5b\x6a\x5d\x2e\x70\x61\x72\x65\
-\x6e\x74\x4e\x6f\x64\x65\x2e\x72\x65\x6d\x6f\x76\x65\x43\x68\x69\
-\x6c\x64\x28\x68\x5b\x6a\x5d\x29\x3a\x68\x5b\x6a\x5d\x29\x3b\x65\
-\x6c\x73\x65\x7b\x69\x66\x28\x68\x5b\x6a\x5d\x2e\x6e\x6f\x64\x65\
-\x54\x79\x70\x65\x3d\x3d\x3d\x31\x29\x7b\x76\x61\x72\x20\x73\x3d\
-\x66\x2e\x67\x72\x65\x70\x28\x68\x5b\x6a\x5d\x2e\x67\x65\x74\x45\
-\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\x61\x6d\x65\
-\x28\x22\x73\x63\x72\x69\x70\x74\x22\x29\x2c\x67\x29\x3b\x68\x2e\
-\x73\x70\x6c\x69\x63\x65\x2e\x61\x70\x70\x6c\x79\x28\x68\x2c\x5b\
-\x6a\x2b\x31\x2c\x30\x5d\x2e\x63\x6f\x6e\x63\x61\x74\x28\x73\x29\
-\x29\x7d\x64\x2e\x61\x70\x70\x65\x6e\x64\x43\x68\x69\x6c\x64\x28\
-\x68\x5b\x6a\x5d\x29\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\x68\x7d\
-\x2c\x63\x6c\x65\x61\x6e\x44\x61\x74\x61\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x2c\x63\x2c\x64\
-\x3d\x66\x2e\x63\x61\x63\x68\x65\x2c\x65\x3d\x66\x2e\x65\x76\x65\
-\x6e\x74\x2e\x73\x70\x65\x63\x69\x61\x6c\x2c\x67\x3d\x66\x2e\x73\
-\x75\x70\x70\x6f\x72\x74\x2e\x64\x65\x6c\x65\x74\x65\x45\x78\x70\
-\x61\x6e\x64\x6f\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x68\x3d\x30\
-\x2c\x69\x3b\x28\x69\x3d\x61\x5b\x68\x5d\x29\x21\x3d\x6e\x75\x6c\
-\x6c\x3b\x68\x2b\x2b\x29\x7b\x69\x66\x28\x69\x2e\x6e\x6f\x64\x65\
-\x4e\x61\x6d\x65\x26\x26\x66\x2e\x6e\x6f\x44\x61\x74\x61\x5b\x69\
-\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x2e\x74\x6f\x4c\x6f\x77\x65\
-\x72\x43\x61\x73\x65\x28\x29\x5d\x29\x63\x6f\x6e\x74\x69\x6e\x75\
-\x65\x3b\x63\x3d\x69\x5b\x66\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\
-\x3b\x69\x66\x28\x63\x29\x7b\x62\x3d\x64\x5b\x63\x5d\x3b\x69\x66\
-\x28\x62\x26\x26\x62\x2e\x65\x76\x65\x6e\x74\x73\x29\x7b\x66\x6f\
-\x72\x28\x76\x61\x72\x20\x6a\x20\x69\x6e\x20\x62\x2e\x65\x76\x65\
-\x6e\x74\x73\x29\x65\x5b\x6a\x5d\x3f\x66\x2e\x65\x76\x65\x6e\x74\
-\x2e\x72\x65\x6d\x6f\x76\x65\x28\x69\x2c\x6a\x29\x3a\x66\x2e\x72\
-\x65\x6d\x6f\x76\x65\x45\x76\x65\x6e\x74\x28\x69\x2c\x6a\x2c\x62\
-\x2e\x68\x61\x6e\x64\x6c\x65\x29\x3b\x62\x2e\x68\x61\x6e\x64\x6c\
-\x65\x26\x26\x28\x62\x2e\x68\x61\x6e\x64\x6c\x65\x2e\x65\x6c\x65\
-\x6d\x3d\x6e\x75\x6c\x6c\x29\x7d\x67\x3f\x64\x65\x6c\x65\x74\x65\
-\x20\x69\x5b\x66\x2e\x65\x78\x70\x61\x6e\x64\x6f\x5d\x3a\x69\x2e\
-\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x26\
-\x26\x69\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\x72\x69\x62\x75\
-\x74\x65\x28\x66\x2e\x65\x78\x70\x61\x6e\x64\x6f\x29\x2c\x64\x65\
-\x6c\x65\x74\x65\x20\x64\x5b\x63\x5d\x7d\x7d\x7d\x7d\x29\x3b\x76\
-\x61\x72\x20\x62\x71\x3d\x2f\x61\x6c\x70\x68\x61\x5c\x28\x5b\x5e\
-\x29\x5d\x2a\x5c\x29\x2f\x69\x2c\x62\x72\x3d\x2f\x6f\x70\x61\x63\
-\x69\x74\x79\x3d\x28\x5b\x5e\x29\x5d\x2a\x29\x2f\x2c\x62\x73\x3d\
-\x2f\x28\x5b\x41\x2d\x5a\x5d\x7c\x5e\x6d\x73\x29\x2f\x67\x2c\x62\
-\x74\x3d\x2f\x5e\x2d\x3f\x5c\x64\x2b\x28\x3f\x3a\x70\x78\x29\x3f\
-\x24\x2f\x69\x2c\x62\x75\x3d\x2f\x5e\x2d\x3f\x5c\x64\x2f\x2c\x62\
-\x76\x3d\x2f\x5e\x28\x5b\x5c\x2d\x2b\x5d\x29\x3d\x28\x5b\x5c\x2d\
-\x2b\x2e\x5c\x64\x65\x5d\x2b\x29\x2f\x2c\x62\x77\x3d\x7b\x70\x6f\
-\x73\x69\x74\x69\x6f\x6e\x3a\x22\x61\x62\x73\x6f\x6c\x75\x74\x65\
-\x22\x2c\x76\x69\x73\x69\x62\x69\x6c\x69\x74\x79\x3a\x22\x68\x69\
-\x64\x64\x65\x6e\x22\x2c\x64\x69\x73\x70\x6c\x61\x79\x3a\x22\x62\
-\x6c\x6f\x63\x6b\x22\x7d\x2c\x62\x78\x3d\x5b\x22\x4c\x65\x66\x74\
-\x22\x2c\x22\x52\x69\x67\x68\x74\x22\x5d\x2c\x62\x79\x3d\x5b\x22\
-\x54\x6f\x70\x22\x2c\x22\x42\x6f\x74\x74\x6f\x6d\x22\x5d\x2c\x62\
-\x7a\x2c\x62\x41\x2c\x62\x42\x3b\x66\x2e\x66\x6e\x2e\x63\x73\x73\
-\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x69\
-\x66\x28\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x2e\x6c\x65\x6e\x67\
-\x74\x68\x3d\x3d\x3d\x32\x26\x26\x63\x3d\x3d\x3d\x62\x29\x72\x65\
-\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x72\x65\x74\x75\x72\x6e\
-\x20\x66\x2e\x61\x63\x63\x65\x73\x73\x28\x74\x68\x69\x73\x2c\x61\
-\x2c\x63\x2c\x21\x30\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x63\x2c\x64\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x64\x21\x3d\
-\x3d\x62\x3f\x66\x2e\x73\x74\x79\x6c\x65\x28\x61\x2c\x63\x2c\x64\
-\x29\x3a\x66\x2e\x63\x73\x73\x28\x61\x2c\x63\x29\x7d\x29\x7d\x2c\
-\x66\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x63\x73\x73\x48\x6f\x6f\
-\x6b\x73\x3a\x7b\x6f\x70\x61\x63\x69\x74\x79\x3a\x7b\x67\x65\x74\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\
-\x66\x28\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x62\x7a\x28\x61\x2c\
-\x22\x6f\x70\x61\x63\x69\x74\x79\x22\x2c\x22\x6f\x70\x61\x63\x69\
-\x74\x79\x22\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x3d\x3d\x3d\
-\x22\x22\x3f\x22\x31\x22\x3a\x63\x7d\x72\x65\x74\x75\x72\x6e\x20\
-\x61\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x70\x61\x63\x69\x74\x79\x7d\
-\x7d\x7d\x2c\x63\x73\x73\x4e\x75\x6d\x62\x65\x72\x3a\x7b\x66\x69\
-\x6c\x6c\x4f\x70\x61\x63\x69\x74\x79\x3a\x21\x30\x2c\x66\x6f\x6e\
-\x74\x57\x65\x69\x67\x68\x74\x3a\x21\x30\x2c\x6c\x69\x6e\x65\x48\
-\x65\x69\x67\x68\x74\x3a\x21\x30\x2c\x6f\x70\x61\x63\x69\x74\x79\
-\x3a\x21\x30\x2c\x6f\x72\x70\x68\x61\x6e\x73\x3a\x21\x30\x2c\x77\
-\x69\x64\x6f\x77\x73\x3a\x21\x30\x2c\x7a\x49\x6e\x64\x65\x78\x3a\
-\x21\x30\x2c\x7a\x6f\x6f\x6d\x3a\x21\x30\x7d\x2c\x63\x73\x73\x50\
-\x72\x6f\x70\x73\x3a\x7b\x22\x66\x6c\x6f\x61\x74\x22\x3a\x66\x2e\
-\x73\x75\x70\x70\x6f\x72\x74\x2e\x63\x73\x73\x46\x6c\x6f\x61\x74\
-\x3f\x22\x63\x73\x73\x46\x6c\x6f\x61\x74\x22\x3a\x22\x73\x74\x79\
-\x6c\x65\x46\x6c\x6f\x61\x74\x22\x7d\x2c\x73\x74\x79\x6c\x65\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x2c\x64\x2c\x65\
-\x29\x7b\x69\x66\x28\x21\x21\x61\x26\x26\x61\x2e\x6e\x6f\x64\x65\
-\x54\x79\x70\x65\x21\x3d\x3d\x33\x26\x26\x61\x2e\x6e\x6f\x64\x65\
-\x54\x79\x70\x65\x21\x3d\x3d\x38\x26\x26\x21\x21\x61\x2e\x73\x74\
-\x79\x6c\x65\x29\x7b\x76\x61\x72\x20\x67\x2c\x68\x2c\x69\x3d\x66\
-\x2e\x63\x61\x6d\x65\x6c\x43\x61\x73\x65\x28\x63\x29\x2c\x6a\x3d\
-\x61\x2e\x73\x74\x79\x6c\x65\x2c\x6b\x3d\x66\x2e\x63\x73\x73\x48\
-\x6f\x6f\x6b\x73\x5b\x69\x5d\x3b\x63\x3d\x66\x2e\x63\x73\x73\x50\
-\x72\x6f\x70\x73\x5b\x69\x5d\x7c\x7c\x69\x3b\x69\x66\x28\x64\x3d\
-\x3d\x3d\x62\x29\x7b\x69\x66\x28\x6b\x26\x26\x22\x67\x65\x74\x22\
-\x69\x6e\x20\x6b\x26\x26\x28\x67\x3d\x6b\x2e\x67\x65\x74\x28\x61\
-\x2c\x21\x31\x2c\x65\x29\x29\x21\x3d\x3d\x62\x29\x72\x65\x74\x75\
-\x72\x6e\x20\x67\x3b\x72\x65\x74\x75\x72\x6e\x20\x6a\x5b\x63\x5d\
-\x7d\x68\x3d\x74\x79\x70\x65\x6f\x66\x20\x64\x2c\x68\x3d\x3d\x3d\
-\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x67\x3d\x62\x76\x2e\
-\x65\x78\x65\x63\x28\x64\x29\x29\x26\x26\x28\x64\x3d\x2b\x28\x67\
-\x5b\x31\x5d\x2b\x31\x29\x2a\x2b\x67\x5b\x32\x5d\x2b\x70\x61\x72\
-\x73\x65\x46\x6c\x6f\x61\x74\x28\x66\x2e\x63\x73\x73\x28\x61\x2c\
-\x63\x29\x29\x2c\x68\x3d\x22\x6e\x75\x6d\x62\x65\x72\x22\x29\x3b\
-\x69\x66\x28\x64\x3d\x3d\x6e\x75\x6c\x6c\x7c\x7c\x68\x3d\x3d\x3d\
-\x22\x6e\x75\x6d\x62\x65\x72\x22\x26\x26\x69\x73\x4e\x61\x4e\x28\
-\x64\x29\x29\x72\x65\x74\x75\x72\x6e\x3b\x68\x3d\x3d\x3d\x22\x6e\
-\x75\x6d\x62\x65\x72\x22\x26\x26\x21\x66\x2e\x63\x73\x73\x4e\x75\
-\x6d\x62\x65\x72\x5b\x69\x5d\x26\x26\x28\x64\x2b\x3d\x22\x70\x78\
-\x22\x29\x3b\x69\x66\x28\x21\x6b\x7c\x7c\x21\x28\x22\x73\x65\x74\
-\x22\x69\x6e\x20\x6b\x29\x7c\x7c\x28\x64\x3d\x6b\x2e\x73\x65\x74\
-\x28\x61\x2c\x64\x29\x29\x21\x3d\x3d\x62\x29\x74\x72\x79\x7b\x6a\
-\x5b\x63\x5d\x3d\x64\x7d\x63\x61\x74\x63\x68\x28\x6c\x29\x7b\x7d\
-\x7d\x7d\x2c\x63\x73\x73\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x2c\x63\x2c\x64\x29\x7b\x76\x61\x72\x20\x65\x2c\x67\x3b\x63\
-\x3d\x66\x2e\x63\x61\x6d\x65\x6c\x43\x61\x73\x65\x28\x63\x29\x2c\
-\x67\x3d\x66\x2e\x63\x73\x73\x48\x6f\x6f\x6b\x73\x5b\x63\x5d\x2c\
-\x63\x3d\x66\x2e\x63\x73\x73\x50\x72\x6f\x70\x73\x5b\x63\x5d\x7c\
-\x7c\x63\x2c\x63\x3d\x3d\x3d\x22\x63\x73\x73\x46\x6c\x6f\x61\x74\
-\x22\x26\x26\x28\x63\x3d\x22\x66\x6c\x6f\x61\x74\x22\x29\x3b\x69\
-\x66\x28\x67\x26\x26\x22\x67\x65\x74\x22\x69\x6e\x20\x67\x26\x26\
-\x28\x65\x3d\x67\x2e\x67\x65\x74\x28\x61\x2c\x21\x30\x2c\x64\x29\
-\x29\x21\x3d\x3d\x62\x29\x72\x65\x74\x75\x72\x6e\x20\x65\x3b\x69\
-\x66\x28\x62\x7a\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x7a\x28\x61\
-\x2c\x63\x29\x7d\x2c\x73\x77\x61\x70\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\
-\x7b\x7d\x3b\x66\x6f\x72\x28\x76\x61\x72\x20\x65\x20\x69\x6e\x20\
-\x62\x29\x64\x5b\x65\x5d\x3d\x61\x2e\x73\x74\x79\x6c\x65\x5b\x65\
-\x5d\x2c\x61\x2e\x73\x74\x79\x6c\x65\x5b\x65\x5d\x3d\x62\x5b\x65\
-\x5d\x3b\x63\x2e\x63\x61\x6c\x6c\x28\x61\x29\x3b\x66\x6f\x72\x28\
-\x65\x20\x69\x6e\x20\x62\x29\x61\x2e\x73\x74\x79\x6c\x65\x5b\x65\
-\x5d\x3d\x64\x5b\x65\x5d\x7d\x7d\x29\x2c\x66\x2e\x63\x75\x72\x43\
-\x53\x53\x3d\x66\x2e\x63\x73\x73\x2c\x66\x2e\x65\x61\x63\x68\x28\
-\x5b\x22\x68\x65\x69\x67\x68\x74\x22\x2c\x22\x77\x69\x64\x74\x68\
-\x22\x5d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\
-\x7b\x66\x2e\x63\x73\x73\x48\x6f\x6f\x6b\x73\x5b\x62\x5d\x3d\x7b\
-\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\
-\x2c\x64\x29\x7b\x76\x61\x72\x20\x65\x3b\x69\x66\x28\x63\x29\x7b\
-\x69\x66\x28\x61\x2e\x6f\x66\x66\x73\x65\x74\x57\x69\x64\x74\x68\
-\x21\x3d\x3d\x30\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x43\x28\x61\
-\x2c\x62\x2c\x64\x29\x3b\x66\x2e\x73\x77\x61\x70\x28\x61\x2c\x62\
-\x77\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x65\x3d\x62\
-\x43\x28\x61\x2c\x62\x2c\x64\x29\x7d\x29\x3b\x72\x65\x74\x75\x72\
-\x6e\x20\x65\x7d\x7d\x2c\x73\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x69\x66\x28\x21\x62\x74\x2e\x74\
-\x65\x73\x74\x28\x62\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x3b\
-\x62\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x62\x29\x3b\
-\x69\x66\x28\x62\x3e\x3d\x30\x29\x72\x65\x74\x75\x72\x6e\x20\x62\
-\x2b\x22\x70\x78\x22\x7d\x7d\x7d\x29\x2c\x66\x2e\x73\x75\x70\x70\
-\x6f\x72\x74\x2e\x6f\x70\x61\x63\x69\x74\x79\x7c\x7c\x28\x66\x2e\
-\x63\x73\x73\x48\x6f\x6f\x6b\x73\x2e\x6f\x70\x61\x63\x69\x74\x79\
-\x3d\x7b\x67\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x62\x72\x2e\x74\x65\
-\x73\x74\x28\x28\x62\x26\x26\x61\x2e\x63\x75\x72\x72\x65\x6e\x74\
-\x53\x74\x79\x6c\x65\x3f\x61\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\
-\x74\x79\x6c\x65\x2e\x66\x69\x6c\x74\x65\x72\x3a\x61\x2e\x73\x74\
-\x79\x6c\x65\x2e\x66\x69\x6c\x74\x65\x72\x29\x7c\x7c\x22\x22\x29\
-\x3f\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x52\x65\x67\x45\
-\x78\x70\x2e\x24\x31\x29\x2f\x31\x30\x30\x2b\x22\x22\x3a\x62\x3f\
-\x22\x31\x22\x3a\x22\x22\x7d\x2c\x73\x65\x74\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\
-\x61\x2e\x73\x74\x79\x6c\x65\x2c\x64\x3d\x61\x2e\x63\x75\x72\x72\
-\x65\x6e\x74\x53\x74\x79\x6c\x65\x2c\x65\x3d\x66\x2e\x69\x73\x4e\
-\x75\x6d\x65\x72\x69\x63\x28\x62\x29\x3f\x22\x61\x6c\x70\x68\x61\
-\x28\x6f\x70\x61\x63\x69\x74\x79\x3d\x22\x2b\x62\x2a\x31\x30\x30\
-\x2b\x22\x29\x22\x3a\x22\x22\x2c\x67\x3d\x64\x26\x26\x64\x2e\x66\
-\x69\x6c\x74\x65\x72\x7c\x7c\x63\x2e\x66\x69\x6c\x74\x65\x72\x7c\
-\x7c\x22\x22\x3b\x63\x2e\x7a\x6f\x6f\x6d\x3d\x31\x3b\x69\x66\x28\
-\x62\x3e\x3d\x31\x26\x26\x66\x2e\x74\x72\x69\x6d\x28\x67\x2e\x72\
-\x65\x70\x6c\x61\x63\x65\x28\x62\x71\x2c\x22\x22\x29\x29\x3d\x3d\
-\x3d\x22\x22\x29\x7b\x63\x2e\x72\x65\x6d\x6f\x76\x65\x41\x74\x74\
-\x72\x69\x62\x75\x74\x65\x28\x22\x66\x69\x6c\x74\x65\x72\x22\x29\
-\x3b\x69\x66\x28\x64\x26\x26\x21\x64\x2e\x66\x69\x6c\x74\x65\x72\
-\x29\x72\x65\x74\x75\x72\x6e\x7d\x63\x2e\x66\x69\x6c\x74\x65\x72\
-\x3d\x62\x71\x2e\x74\x65\x73\x74\x28\x67\x29\x3f\x67\x2e\x72\x65\
-\x70\x6c\x61\x63\x65\x28\x62\x71\x2c\x65\x29\x3a\x67\x2b\x22\x20\
-\x22\x2b\x65\x7d\x7d\x29\x2c\x66\x28\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x29\x7b\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x72\x65\
-\x6c\x69\x61\x62\x6c\x65\x4d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\
-\x74\x7c\x7c\x28\x66\x2e\x63\x73\x73\x48\x6f\x6f\x6b\x73\x2e\x6d\
-\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x3d\x7b\x67\x65\x74\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\
-\x72\x20\x63\x3b\x66\x2e\x73\x77\x61\x70\x28\x61\x2c\x7b\x64\x69\
-\x73\x70\x6c\x61\x79\x3a\x22\x69\x6e\x6c\x69\x6e\x65\x2d\x62\x6c\
-\x6f\x63\x6b\x22\x7d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\
-\x7b\x62\x3f\x63\x3d\x62\x7a\x28\x61\x2c\x22\x6d\x61\x72\x67\x69\
-\x6e\x2d\x72\x69\x67\x68\x74\x22\x2c\x22\x6d\x61\x72\x67\x69\x6e\
-\x52\x69\x67\x68\x74\x22\x29\x3a\x63\x3d\x61\x2e\x73\x74\x79\x6c\
-\x65\x2e\x6d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\x7d\x29\x3b\
-\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x7d\x29\x7d\x29\x2c\x63\x2e\
-\x64\x65\x66\x61\x75\x6c\x74\x56\x69\x65\x77\x26\x26\x63\x2e\x64\
-\x65\x66\x61\x75\x6c\x74\x56\x69\x65\x77\x2e\x67\x65\x74\x43\x6f\
-\x6d\x70\x75\x74\x65\x64\x53\x74\x79\x6c\x65\x26\x26\x28\x62\x41\
-\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\
-\x61\x72\x20\x63\x2c\x64\x2c\x65\x3b\x62\x3d\x62\x2e\x72\x65\x70\
-\x6c\x61\x63\x65\x28\x62\x73\x2c\x22\x2d\x24\x31\x22\x29\x2e\x74\
-\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2c\x28\x64\x3d\
-\x61\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x2e\
-\x64\x65\x66\x61\x75\x6c\x74\x56\x69\x65\x77\x29\x26\x26\x28\x65\
-\x3d\x64\x2e\x67\x65\x74\x43\x6f\x6d\x70\x75\x74\x65\x64\x53\x74\
-\x79\x6c\x65\x28\x61\x2c\x6e\x75\x6c\x6c\x29\x29\x26\x26\x28\x63\
-\x3d\x65\x2e\x67\x65\x74\x50\x72\x6f\x70\x65\x72\x74\x79\x56\x61\
-\x6c\x75\x65\x28\x62\x29\x2c\x63\x3d\x3d\x3d\x22\x22\x26\x26\x21\
-\x66\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\x28\x61\x2e\x6f\x77\x6e\
-\x65\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x64\x6f\x63\x75\x6d\
-\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x61\x29\x26\x26\x28\
-\x63\x3d\x66\x2e\x73\x74\x79\x6c\x65\x28\x61\x2c\x62\x29\x29\x29\
-\x3b\x72\x65\x74\x75\x72\x6e\x20\x63\x7d\x29\x2c\x63\x2e\x64\x6f\
-\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2e\x63\x75\
-\x72\x72\x65\x6e\x74\x53\x74\x79\x6c\x65\x26\x26\x28\x62\x42\x3d\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\
-\x72\x20\x63\x2c\x64\x2c\x65\x2c\x66\x3d\x61\x2e\x63\x75\x72\x72\
-\x65\x6e\x74\x53\x74\x79\x6c\x65\x26\x26\x61\x2e\x63\x75\x72\x72\
-\x65\x6e\x74\x53\x74\x79\x6c\x65\x5b\x62\x5d\x2c\x67\x3d\x61\x2e\
-\x73\x74\x79\x6c\x65\x3b\x66\x3d\x3d\x3d\x6e\x75\x6c\x6c\x26\x26\
-\x67\x26\x26\x28\x65\x3d\x67\x5b\x62\x5d\x29\x26\x26\x28\x66\x3d\
-\x65\x29\x2c\x21\x62\x74\x2e\x74\x65\x73\x74\x28\x66\x29\x26\x26\
-\x62\x75\x2e\x74\x65\x73\x74\x28\x66\x29\x26\x26\x28\x63\x3d\x67\
-\x2e\x6c\x65\x66\x74\x2c\x64\x3d\x61\x2e\x72\x75\x6e\x74\x69\x6d\
-\x65\x53\x74\x79\x6c\x65\x26\x26\x61\x2e\x72\x75\x6e\x74\x69\x6d\
-\x65\x53\x74\x79\x6c\x65\x2e\x6c\x65\x66\x74\x2c\x64\x26\x26\x28\
-\x61\x2e\x72\x75\x6e\x74\x69\x6d\x65\x53\x74\x79\x6c\x65\x2e\x6c\
-\x65\x66\x74\x3d\x61\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x74\x79\
-\x6c\x65\x2e\x6c\x65\x66\x74\x29\x2c\x67\x2e\x6c\x65\x66\x74\x3d\
-\x62\x3d\x3d\x3d\x22\x66\x6f\x6e\x74\x53\x69\x7a\x65\x22\x3f\x22\
-\x31\x65\x6d\x22\x3a\x66\x7c\x7c\x30\x2c\x66\x3d\x67\x2e\x70\x69\
-\x78\x65\x6c\x4c\x65\x66\x74\x2b\x22\x70\x78\x22\x2c\x67\x2e\x6c\
-\x65\x66\x74\x3d\x63\x2c\x64\x26\x26\x28\x61\x2e\x72\x75\x6e\x74\
-\x69\x6d\x65\x53\x74\x79\x6c\x65\x2e\x6c\x65\x66\x74\x3d\x64\x29\
-\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x66\x3d\x3d\x3d\x22\x22\x3f\
-\x22\x61\x75\x74\x6f\x22\x3a\x66\x7d\x29\x2c\x62\x7a\x3d\x62\x41\
-\x7c\x7c\x62\x42\x2c\x66\x2e\x65\x78\x70\x72\x26\x26\x66\x2e\x65\
-\x78\x70\x72\x2e\x66\x69\x6c\x74\x65\x72\x73\x26\x26\x28\x66\x2e\
-\x65\x78\x70\x72\x2e\x66\x69\x6c\x74\x65\x72\x73\x2e\x68\x69\x64\
-\x64\x65\x6e\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\
-\x76\x61\x72\x20\x62\x3d\x61\x2e\x6f\x66\x66\x73\x65\x74\x57\x69\
-\x64\x74\x68\x2c\x63\x3d\x61\x2e\x6f\x66\x66\x73\x65\x74\x48\x65\
-\x69\x67\x68\x74\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x3d\x3d\x3d\
-\x30\x26\x26\x63\x3d\x3d\x3d\x30\x7c\x7c\x21\x66\x2e\x73\x75\x70\
-\x70\x6f\x72\x74\x2e\x72\x65\x6c\x69\x61\x62\x6c\x65\x48\x69\x64\
-\x64\x65\x6e\x4f\x66\x66\x73\x65\x74\x73\x26\x26\x28\x61\x2e\x73\
-\x74\x79\x6c\x65\x26\x26\x61\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\
-\x73\x70\x6c\x61\x79\x7c\x7c\x66\x2e\x63\x73\x73\x28\x61\x2c\x22\
-\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x29\x3d\x3d\x3d\x22\x6e\x6f\
-\x6e\x65\x22\x7d\x2c\x66\x2e\x65\x78\x70\x72\x2e\x66\x69\x6c\x74\
-\x65\x72\x73\x2e\x76\x69\x73\x69\x62\x6c\x65\x3d\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x66\
-\x2e\x65\x78\x70\x72\x2e\x66\x69\x6c\x74\x65\x72\x73\x2e\x68\x69\
-\x64\x64\x65\x6e\x28\x61\x29\x7d\x29\x3b\x76\x61\x72\x20\x62\x44\
-\x3d\x2f\x25\x32\x30\x2f\x67\x2c\x62\x45\x3d\x2f\x5c\x5b\x5c\x5d\
-\x24\x2f\x2c\x62\x46\x3d\x2f\x5c\x72\x3f\x5c\x6e\x2f\x67\x2c\x62\
-\x47\x3d\x2f\x23\x2e\x2a\x24\x2f\x2c\x62\x48\x3d\x2f\x5e\x28\x2e\
-\x2a\x3f\x29\x3a\x5b\x20\x5c\x74\x5d\x2a\x28\x5b\x5e\x5c\x72\x5c\
-\x6e\x5d\x2a\x29\x5c\x72\x3f\x24\x2f\x6d\x67\x2c\x62\x49\x3d\x2f\
-\x5e\x28\x3f\x3a\x63\x6f\x6c\x6f\x72\x7c\x64\x61\x74\x65\x7c\x64\
-\x61\x74\x65\x74\x69\x6d\x65\x7c\x64\x61\x74\x65\x74\x69\x6d\x65\
-\x2d\x6c\x6f\x63\x61\x6c\x7c\x65\x6d\x61\x69\x6c\x7c\x68\x69\x64\
-\x64\x65\x6e\x7c\x6d\x6f\x6e\x74\x68\x7c\x6e\x75\x6d\x62\x65\x72\
-\x7c\x70\x61\x73\x73\x77\x6f\x72\x64\x7c\x72\x61\x6e\x67\x65\x7c\
-\x73\x65\x61\x72\x63\x68\x7c\x74\x65\x6c\x7c\x74\x65\x78\x74\x7c\
-\x74\x69\x6d\x65\x7c\x75\x72\x6c\x7c\x77\x65\x65\x6b\x29\x24\x2f\
-\x69\x2c\x62\x4a\x3d\x2f\x5e\x28\x3f\x3a\x61\x62\x6f\x75\x74\x7c\
-\x61\x70\x70\x7c\x61\x70\x70\x5c\x2d\x73\x74\x6f\x72\x61\x67\x65\
-\x7c\x2e\x2b\x5c\x2d\x65\x78\x74\x65\x6e\x73\x69\x6f\x6e\x7c\x66\
-\x69\x6c\x65\x7c\x72\x65\x73\x7c\x77\x69\x64\x67\x65\x74\x29\x3a\
-\x24\x2f\x2c\x62\x4b\x3d\x2f\x5e\x28\x3f\x3a\x47\x45\x54\x7c\x48\
-\x45\x41\x44\x29\x24\x2f\x2c\x62\x4c\x3d\x2f\x5e\x5c\x2f\x5c\x2f\
-\x2f\x2c\x62\x4d\x3d\x2f\x5c\x3f\x2f\x2c\x62\x4e\x3d\x2f\x3c\x73\
-\x63\x72\x69\x70\x74\x5c\x62\x5b\x5e\x3c\x5d\x2a\x28\x3f\x3a\x28\
-\x3f\x21\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x29\x3c\x5b\x5e\
-\x3c\x5d\x2a\x29\x2a\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x2f\
-\x67\x69\x2c\x62\x4f\x3d\x2f\x5e\x28\x3f\x3a\x73\x65\x6c\x65\x63\
-\x74\x7c\x74\x65\x78\x74\x61\x72\x65\x61\x29\x2f\x69\x2c\x62\x50\
-\x3d\x2f\x5c\x73\x2b\x2f\x2c\x62\x51\x3d\x2f\x28\x5b\x3f\x26\x5d\
-\x29\x5f\x3d\x5b\x5e\x26\x5d\x2a\x2f\x2c\x62\x52\x3d\x2f\x5e\x28\
-\x5b\x5c\x77\x5c\x2b\x5c\x2e\x5c\x2d\x5d\x2b\x3a\x29\x28\x3f\x3a\
-\x5c\x2f\x5c\x2f\x28\x5b\x5e\x5c\x2f\x3f\x23\x3a\x5d\x2a\x29\x28\
-\x3f\x3a\x3a\x28\x5c\x64\x2b\x29\x29\x3f\x29\x3f\x2f\x2c\x62\x53\
-\x3d\x66\x2e\x66\x6e\x2e\x6c\x6f\x61\x64\x2c\x62\x54\x3d\x7b\x7d\
-\x2c\x62\x55\x3d\x7b\x7d\x2c\x62\x56\x2c\x62\x57\x2c\x62\x58\x3d\
-\x5b\x22\x2a\x2f\x22\x5d\x2b\x5b\x22\x2a\x22\x5d\x3b\x74\x72\x79\
-\x7b\x62\x56\x3d\x65\x2e\x68\x72\x65\x66\x7d\x63\x61\x74\x63\x68\
-\x28\x62\x59\x29\x7b\x62\x56\x3d\x63\x2e\x63\x72\x65\x61\x74\x65\
-\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x61\x22\x29\x2c\x62\x56\x2e\
-\x68\x72\x65\x66\x3d\x22\x22\x2c\x62\x56\x3d\x62\x56\x2e\x68\x72\
-\x65\x66\x7d\x62\x57\x3d\x62\x52\x2e\x65\x78\x65\x63\x28\x62\x56\
-\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x29\x7c\
-\x7c\x5b\x5d\x2c\x66\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\x64\x28\
-\x7b\x6c\x6f\x61\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x63\x2c\x64\x29\x7b\x69\x66\x28\x74\x79\x70\x65\x6f\x66\x20\
-\x61\x21\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x62\x53\x29\
-\x72\x65\x74\x75\x72\x6e\x20\x62\x53\x2e\x61\x70\x70\x6c\x79\x28\
-\x74\x68\x69\x73\x2c\x61\x72\x67\x75\x6d\x65\x6e\x74\x73\x29\x3b\
-\x69\x66\x28\x21\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x29\
-\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x3b\x76\x61\x72\x20\
-\x65\x3d\x61\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x22\x20\x22\x29\
-\x3b\x69\x66\x28\x65\x3e\x3d\x30\x29\x7b\x76\x61\x72\x20\x67\x3d\
-\x61\x2e\x73\x6c\x69\x63\x65\x28\x65\x2c\x61\x2e\x6c\x65\x6e\x67\
-\x74\x68\x29\x3b\x61\x3d\x61\x2e\x73\x6c\x69\x63\x65\x28\x30\x2c\
-\x65\x29\x7d\x76\x61\x72\x20\x68\x3d\x22\x47\x45\x54\x22\x3b\x63\
-\x26\x26\x28\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x63\x29\x3f\x28\x64\x3d\x63\x2c\x63\x3d\x62\x29\x3a\x74\x79\x70\
-\x65\x6f\x66\x20\x63\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x26\
-\x26\x28\x63\x3d\x66\x2e\x70\x61\x72\x61\x6d\x28\x63\x2c\x66\x2e\
-\x61\x6a\x61\x78\x53\x65\x74\x74\x69\x6e\x67\x73\x2e\x74\x72\x61\
-\x64\x69\x74\x69\x6f\x6e\x61\x6c\x29\x2c\x68\x3d\x22\x50\x4f\x53\
-\x54\x22\x29\x29\x3b\x76\x61\x72\x20\x69\x3d\x74\x68\x69\x73\x3b\
-\x66\x2e\x61\x6a\x61\x78\x28\x7b\x75\x72\x6c\x3a\x61\x2c\x74\x79\
-\x70\x65\x3a\x68\x2c\x64\x61\x74\x61\x54\x79\x70\x65\x3a\x22\x68\
-\x74\x6d\x6c\x22\x2c\x64\x61\x74\x61\x3a\x63\x2c\x63\x6f\x6d\x70\
-\x6c\x65\x74\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\
-\x62\x2c\x63\x29\x7b\x63\x3d\x61\x2e\x72\x65\x73\x70\x6f\x6e\x73\
-\x65\x54\x65\x78\x74\x2c\x61\x2e\x69\x73\x52\x65\x73\x6f\x6c\x76\
-\x65\x64\x28\x29\x26\x26\x28\x61\x2e\x64\x6f\x6e\x65\x28\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x63\x3d\x61\x7d\x29\x2c\
-\x69\x2e\x68\x74\x6d\x6c\x28\x67\x3f\x66\x28\x22\x3c\x64\x69\x76\
-\x3e\x22\x29\x2e\x61\x70\x70\x65\x6e\x64\x28\x63\x2e\x72\x65\x70\
-\x6c\x61\x63\x65\x28\x62\x4e\x2c\x22\x22\x29\x29\x2e\x66\x69\x6e\
-\x64\x28\x67\x29\x3a\x63\x29\x29\x2c\x64\x26\x26\x69\x2e\x65\x61\
-\x63\x68\x28\x64\x2c\x5b\x63\x2c\x62\x2c\x61\x5d\x29\x7d\x7d\x29\
-\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x73\x65\
-\x72\x69\x61\x6c\x69\x7a\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x70\x61\x72\x61\
-\x6d\x28\x74\x68\x69\x73\x2e\x73\x65\x72\x69\x61\x6c\x69\x7a\x65\
-\x41\x72\x72\x61\x79\x28\x29\x29\x7d\x2c\x73\x65\x72\x69\x61\x6c\
-\x69\x7a\x65\x41\x72\x72\x61\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\
-\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\
-\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x65\
-\x6e\x74\x73\x3f\x66\x2e\x6d\x61\x6b\x65\x41\x72\x72\x61\x79\x28\
-\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x65\x6e\x74\x73\x29\x3a\x74\
-\x68\x69\x73\x7d\x29\x2e\x66\x69\x6c\x74\x65\x72\x28\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\
-\x68\x69\x73\x2e\x6e\x61\x6d\x65\x26\x26\x21\x74\x68\x69\x73\x2e\
-\x64\x69\x73\x61\x62\x6c\x65\x64\x26\x26\x28\x74\x68\x69\x73\x2e\
-\x63\x68\x65\x63\x6b\x65\x64\x7c\x7c\x62\x4f\x2e\x74\x65\x73\x74\
-\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x7c\
-\x7c\x62\x49\x2e\x74\x65\x73\x74\x28\x74\x68\x69\x73\x2e\x74\x79\
-\x70\x65\x29\x29\x7d\x29\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x66\
-\x28\x74\x68\x69\x73\x29\x2e\x76\x61\x6c\x28\x29\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x63\x3d\x3d\x6e\x75\x6c\x6c\x3f\x6e\x75\x6c\x6c\
-\x3a\x66\x2e\x69\x73\x41\x72\x72\x61\x79\x28\x63\x29\x3f\x66\x2e\
-\x6d\x61\x70\x28\x63\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x7b\x6e\x61\x6d\x65\x3a\
-\x62\x2e\x6e\x61\x6d\x65\x2c\x76\x61\x6c\x75\x65\x3a\x61\x2e\x72\
-\x65\x70\x6c\x61\x63\x65\x28\x62\x46\x2c\x22\x5c\x72\x5c\x6e\x22\
-\x29\x7d\x7d\x29\x3a\x7b\x6e\x61\x6d\x65\x3a\x62\x2e\x6e\x61\x6d\
-\x65\x2c\x76\x61\x6c\x75\x65\x3a\x63\x2e\x72\x65\x70\x6c\x61\x63\
-\x65\x28\x62\x46\x2c\x22\x5c\x72\x5c\x6e\x22\x29\x7d\x7d\x29\x2e\
-\x67\x65\x74\x28\x29\x7d\x7d\x29\x2c\x66\x2e\x65\x61\x63\x68\x28\
-\x22\x61\x6a\x61\x78\x53\x74\x61\x72\x74\x20\x61\x6a\x61\x78\x53\
-\x74\x6f\x70\x20\x61\x6a\x61\x78\x43\x6f\x6d\x70\x6c\x65\x74\x65\
-\x20\x61\x6a\x61\x78\x45\x72\x72\x6f\x72\x20\x61\x6a\x61\x78\x53\
-\x75\x63\x63\x65\x73\x73\x20\x61\x6a\x61\x78\x53\x65\x6e\x64\x22\
-\x2e\x73\x70\x6c\x69\x74\x28\x22\x20\x22\x29\x2c\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x66\x2e\x66\x6e\x5b\x62\
-\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\
-\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x6f\x6e\x28\x62\x2c\x61\
-\x29\x7d\x7d\x29\x2c\x66\x2e\x65\x61\x63\x68\x28\x5b\x22\x67\x65\
-\x74\x22\x2c\x22\x70\x6f\x73\x74\x22\x5d\x2c\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x66\x5b\x63\x5d\x3d\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x64\x2c\x65\x2c\x67\x29\x7b\
-\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x64\x29\x26\
-\x26\x28\x67\x3d\x67\x7c\x7c\x65\x2c\x65\x3d\x64\x2c\x64\x3d\x62\
-\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x61\x6a\x61\x78\x28\
-\x7b\x74\x79\x70\x65\x3a\x63\x2c\x75\x72\x6c\x3a\x61\x2c\x64\x61\
-\x74\x61\x3a\x64\x2c\x73\x75\x63\x63\x65\x73\x73\x3a\x65\x2c\x64\
-\x61\x74\x61\x54\x79\x70\x65\x3a\x67\x7d\x29\x7d\x7d\x29\x2c\x66\
-\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x67\x65\x74\x53\x63\x72\x69\
-\x70\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\
-\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x67\x65\x74\x28\x61\x2c\
-\x62\x2c\x63\x2c\x22\x73\x63\x72\x69\x70\x74\x22\x29\x7d\x2c\x67\
-\x65\x74\x4a\x53\x4f\x4e\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x2c\x62\x2c\x63\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\
-\x67\x65\x74\x28\x61\x2c\x62\x2c\x63\x2c\x22\x6a\x73\x6f\x6e\x22\
-\x29\x7d\x2c\x61\x6a\x61\x78\x53\x65\x74\x75\x70\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x62\x3f\x62\x5f\x28\
-\x61\x2c\x66\x2e\x61\x6a\x61\x78\x53\x65\x74\x74\x69\x6e\x67\x73\
-\x29\x3a\x28\x62\x3d\x61\x2c\x61\x3d\x66\x2e\x61\x6a\x61\x78\x53\
-\x65\x74\x74\x69\x6e\x67\x73\x29\x2c\x62\x5f\x28\x61\x2c\x62\x29\
-\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x2c\x61\x6a\x61\x78\x53\
-\x65\x74\x74\x69\x6e\x67\x73\x3a\x7b\x75\x72\x6c\x3a\x62\x56\x2c\
-\x69\x73\x4c\x6f\x63\x61\x6c\x3a\x62\x4a\x2e\x74\x65\x73\x74\x28\
-\x62\x57\x5b\x31\x5d\x29\x2c\x67\x6c\x6f\x62\x61\x6c\x3a\x21\x30\
-\x2c\x74\x79\x70\x65\x3a\x22\x47\x45\x54\x22\x2c\x63\x6f\x6e\x74\
-\x65\x6e\x74\x54\x79\x70\x65\x3a\x22\x61\x70\x70\x6c\x69\x63\x61\
-\x74\x69\x6f\x6e\x2f\x78\x2d\x77\x77\x77\x2d\x66\x6f\x72\x6d\x2d\
-\x75\x72\x6c\x65\x6e\x63\x6f\x64\x65\x64\x22\x2c\x70\x72\x6f\x63\
-\x65\x73\x73\x44\x61\x74\x61\x3a\x21\x30\x2c\x61\x73\x79\x6e\x63\
-\x3a\x21\x30\x2c\x61\x63\x63\x65\x70\x74\x73\x3a\x7b\x78\x6d\x6c\
-\x3a\x22\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x78\x6d\
-\x6c\x2c\x20\x74\x65\x78\x74\x2f\x78\x6d\x6c\x22\x2c\x68\x74\x6d\
-\x6c\x3a\x22\x74\x65\x78\x74\x2f\x68\x74\x6d\x6c\x22\x2c\x74\x65\
-\x78\x74\x3a\x22\x74\x65\x78\x74\x2f\x70\x6c\x61\x69\x6e\x22\x2c\
-\x6a\x73\x6f\x6e\x3a\x22\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\
-\x6e\x2f\x6a\x73\x6f\x6e\x2c\x20\x74\x65\x78\x74\x2f\x6a\x61\x76\
-\x61\x73\x63\x72\x69\x70\x74\x22\x2c\x22\x2a\x22\x3a\x62\x58\x7d\
-\x2c\x63\x6f\x6e\x74\x65\x6e\x74\x73\x3a\x7b\x78\x6d\x6c\x3a\x2f\
-\x78\x6d\x6c\x2f\x2c\x68\x74\x6d\x6c\x3a\x2f\x68\x74\x6d\x6c\x2f\
-\x2c\x6a\x73\x6f\x6e\x3a\x2f\x6a\x73\x6f\x6e\x2f\x7d\x2c\x72\x65\
-\x73\x70\x6f\x6e\x73\x65\x46\x69\x65\x6c\x64\x73\x3a\x7b\x78\x6d\
-\x6c\x3a\x22\x72\x65\x73\x70\x6f\x6e\x73\x65\x58\x4d\x4c\x22\x2c\
-\x74\x65\x78\x74\x3a\x22\x72\x65\x73\x70\x6f\x6e\x73\x65\x54\x65\
-\x78\x74\x22\x7d\x2c\x63\x6f\x6e\x76\x65\x72\x74\x65\x72\x73\x3a\
-\x7b\x22\x2a\x20\x74\x65\x78\x74\x22\x3a\x61\x2e\x53\x74\x72\x69\
-\x6e\x67\x2c\x22\x74\x65\x78\x74\x20\x68\x74\x6d\x6c\x22\x3a\x21\
-\x30\x2c\x22\x74\x65\x78\x74\x20\x6a\x73\x6f\x6e\x22\x3a\x66\x2e\
-\x70\x61\x72\x73\x65\x4a\x53\x4f\x4e\x2c\x22\x74\x65\x78\x74\x20\
-\x78\x6d\x6c\x22\x3a\x66\x2e\x70\x61\x72\x73\x65\x58\x4d\x4c\x7d\
-\x2c\x66\x6c\x61\x74\x4f\x70\x74\x69\x6f\x6e\x73\x3a\x7b\x63\x6f\
-\x6e\x74\x65\x78\x74\x3a\x21\x30\x2c\x75\x72\x6c\x3a\x21\x30\x7d\
-\x7d\x2c\x61\x6a\x61\x78\x50\x72\x65\x66\x69\x6c\x74\x65\x72\x3a\
-\x62\x5a\x28\x62\x54\x29\x2c\x61\x6a\x61\x78\x54\x72\x61\x6e\x73\
-\x70\x6f\x72\x74\x3a\x62\x5a\x28\x62\x55\x29\x2c\x61\x6a\x61\x78\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x20\x77\x28\x61\x2c\x63\x2c\x6c\x2c\
-\x6d\x29\x7b\x69\x66\x28\x73\x21\x3d\x3d\x32\x29\x7b\x73\x3d\x32\
-\x2c\x71\x26\x26\x63\x6c\x65\x61\x72\x54\x69\x6d\x65\x6f\x75\x74\
-\x28\x71\x29\x2c\x70\x3d\x62\x2c\x6e\x3d\x6d\x7c\x7c\x22\x22\x2c\
-\x76\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x3d\x61\x3e\x30\
-\x3f\x34\x3a\x30\x3b\x76\x61\x72\x20\x6f\x2c\x72\x2c\x75\x2c\x77\
-\x3d\x63\x2c\x78\x3d\x6c\x3f\x63\x62\x28\x64\x2c\x76\x2c\x6c\x29\
-\x3a\x62\x2c\x79\x2c\x7a\x3b\x69\x66\x28\x61\x3e\x3d\x32\x30\x30\
-\x26\x26\x61\x3c\x33\x30\x30\x7c\x7c\x61\x3d\x3d\x3d\x33\x30\x34\
-\x29\x7b\x69\x66\x28\x64\x2e\x69\x66\x4d\x6f\x64\x69\x66\x69\x65\
-\x64\x29\x7b\x69\x66\x28\x79\x3d\x76\x2e\x67\x65\x74\x52\x65\x73\
-\x70\x6f\x6e\x73\x65\x48\x65\x61\x64\x65\x72\x28\x22\x4c\x61\x73\
-\x74\x2d\x4d\x6f\x64\x69\x66\x69\x65\x64\x22\x29\x29\x66\x2e\x6c\
-\x61\x73\x74\x4d\x6f\x64\x69\x66\x69\x65\x64\x5b\x6b\x5d\x3d\x79\
-\x3b\x69\x66\x28\x7a\x3d\x76\x2e\x67\x65\x74\x52\x65\x73\x70\x6f\
-\x6e\x73\x65\x48\x65\x61\x64\x65\x72\x28\x22\x45\x74\x61\x67\x22\
-\x29\x29\x66\x2e\x65\x74\x61\x67\x5b\x6b\x5d\x3d\x7a\x7d\x69\x66\
-\x28\x61\x3d\x3d\x3d\x33\x30\x34\x29\x77\x3d\x22\x6e\x6f\x74\x6d\
-\x6f\x64\x69\x66\x69\x65\x64\x22\x2c\x6f\x3d\x21\x30\x3b\x65\x6c\
-\x73\x65\x20\x74\x72\x79\x7b\x72\x3d\x63\x63\x28\x64\x2c\x78\x29\
-\x2c\x77\x3d\x22\x73\x75\x63\x63\x65\x73\x73\x22\x2c\x6f\x3d\x21\
-\x30\x7d\x63\x61\x74\x63\x68\x28\x41\x29\x7b\x77\x3d\x22\x70\x61\
-\x72\x73\x65\x72\x65\x72\x72\x6f\x72\x22\x2c\x75\x3d\x41\x7d\x7d\
-\x65\x6c\x73\x65\x7b\x75\x3d\x77\x3b\x69\x66\x28\x21\x77\x7c\x7c\
-\x61\x29\x77\x3d\x22\x65\x72\x72\x6f\x72\x22\x2c\x61\x3c\x30\x26\
-\x26\x28\x61\x3d\x30\x29\x7d\x76\x2e\x73\x74\x61\x74\x75\x73\x3d\
-\x61\x2c\x76\x2e\x73\x74\x61\x74\x75\x73\x54\x65\x78\x74\x3d\x22\
-\x22\x2b\x28\x63\x7c\x7c\x77\x29\x2c\x6f\x3f\x68\x2e\x72\x65\x73\
-\x6f\x6c\x76\x65\x57\x69\x74\x68\x28\x65\x2c\x5b\x72\x2c\x77\x2c\
-\x76\x5d\x29\x3a\x68\x2e\x72\x65\x6a\x65\x63\x74\x57\x69\x74\x68\
-\x28\x65\x2c\x5b\x76\x2c\x77\x2c\x75\x5d\x29\x2c\x76\x2e\x73\x74\
-\x61\x74\x75\x73\x43\x6f\x64\x65\x28\x6a\x29\x2c\x6a\x3d\x62\x2c\
-\x74\x26\x26\x67\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x22\x61\x6a\
-\x61\x78\x22\x2b\x28\x6f\x3f\x22\x53\x75\x63\x63\x65\x73\x73\x22\
-\x3a\x22\x45\x72\x72\x6f\x72\x22\x29\x2c\x5b\x76\x2c\x64\x2c\x6f\
-\x3f\x72\x3a\x75\x5d\x29\x2c\x69\x2e\x66\x69\x72\x65\x57\x69\x74\
-\x68\x28\x65\x2c\x5b\x76\x2c\x77\x5d\x29\x2c\x74\x26\x26\x28\x67\
-\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x22\x61\x6a\x61\x78\x43\x6f\
-\x6d\x70\x6c\x65\x74\x65\x22\x2c\x5b\x76\x2c\x64\x5d\x29\x2c\x2d\
-\x2d\x66\x2e\x61\x63\x74\x69\x76\x65\x7c\x7c\x66\x2e\x65\x76\x65\
-\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x22\x61\x6a\x61\x78\
-\x53\x74\x6f\x70\x22\x29\x29\x7d\x7d\x74\x79\x70\x65\x6f\x66\x20\
-\x61\x3d\x3d\x22\x6f\x62\x6a\x65\x63\x74\x22\x26\x26\x28\x63\x3d\
-\x61\x2c\x61\x3d\x62\x29\x2c\x63\x3d\x63\x7c\x7c\x7b\x7d\x3b\x76\
-\x61\x72\x20\x64\x3d\x66\x2e\x61\x6a\x61\x78\x53\x65\x74\x75\x70\
-\x28\x7b\x7d\x2c\x63\x29\x2c\x65\x3d\x64\x2e\x63\x6f\x6e\x74\x65\
-\x78\x74\x7c\x7c\x64\x2c\x67\x3d\x65\x21\x3d\x3d\x64\x26\x26\x28\
-\x65\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x7c\x7c\x65\x20\x69\x6e\
-\x73\x74\x61\x6e\x63\x65\x6f\x66\x20\x66\x29\x3f\x66\x28\x65\x29\
-\x3a\x66\x2e\x65\x76\x65\x6e\x74\x2c\x68\x3d\x66\x2e\x44\x65\x66\
-\x65\x72\x72\x65\x64\x28\x29\x2c\x69\x3d\x66\x2e\x43\x61\x6c\x6c\
-\x62\x61\x63\x6b\x73\x28\x22\x6f\x6e\x63\x65\x20\x6d\x65\x6d\x6f\
-\x72\x79\x22\x29\x2c\x6a\x3d\x64\x2e\x73\x74\x61\x74\x75\x73\x43\
-\x6f\x64\x65\x7c\x7c\x7b\x7d\x2c\x6b\x2c\x6c\x3d\x7b\x7d\x2c\x6d\
-\x3d\x7b\x7d\x2c\x6e\x2c\x6f\x2c\x70\x2c\x71\x2c\x72\x2c\x73\x3d\
-\x30\x2c\x74\x2c\x75\x2c\x76\x3d\x7b\x72\x65\x61\x64\x79\x53\x74\
-\x61\x74\x65\x3a\x30\x2c\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\
-\x48\x65\x61\x64\x65\x72\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x2c\x62\x29\x7b\x69\x66\x28\x21\x73\x29\x7b\x76\x61\x72\x20\
-\x63\x3d\x61\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\
-\x29\x3b\x61\x3d\x6d\x5b\x63\x5d\x3d\x6d\x5b\x63\x5d\x7c\x7c\x61\
-\x2c\x6c\x5b\x61\x5d\x3d\x62\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\
-\x68\x69\x73\x7d\x2c\x67\x65\x74\x41\x6c\x6c\x52\x65\x73\x70\x6f\
-\x6e\x73\x65\x48\x65\x61\x64\x65\x72\x73\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x73\x3d\x3d\
-\x3d\x32\x3f\x6e\x3a\x6e\x75\x6c\x6c\x7d\x2c\x67\x65\x74\x52\x65\
-\x73\x70\x6f\x6e\x73\x65\x48\x65\x61\x64\x65\x72\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x63\x3b\x69\
-\x66\x28\x73\x3d\x3d\x3d\x32\x29\x7b\x69\x66\x28\x21\x6f\x29\x7b\
-\x6f\x3d\x7b\x7d\x3b\x77\x68\x69\x6c\x65\x28\x63\x3d\x62\x48\x2e\
-\x65\x78\x65\x63\x28\x6e\x29\x29\x6f\x5b\x63\x5b\x31\x5d\x2e\x74\
-\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x5d\x3d\x63\x5b\
-\x32\x5d\x7d\x63\x3d\x6f\x5b\x61\x2e\x74\x6f\x4c\x6f\x77\x65\x72\
-\x43\x61\x73\x65\x28\x29\x5d\x7d\x72\x65\x74\x75\x72\x6e\x20\x63\
-\x3d\x3d\x3d\x62\x3f\x6e\x75\x6c\x6c\x3a\x63\x7d\x2c\x6f\x76\x65\
-\x72\x72\x69\x64\x65\x4d\x69\x6d\x65\x54\x79\x70\x65\x3a\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x73\x7c\x7c\x28\x64\x2e\
-\x6d\x69\x6d\x65\x54\x79\x70\x65\x3d\x61\x29\x3b\x72\x65\x74\x75\
-\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x61\x62\x6f\x72\x74\x3a\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x61\x3d\x61\x7c\x7c\
-\x22\x61\x62\x6f\x72\x74\x22\x2c\x70\x26\x26\x70\x2e\x61\x62\x6f\
-\x72\x74\x28\x61\x29\x2c\x77\x28\x30\x2c\x61\x29\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x7d\x3b\x68\x2e\x70\x72\x6f\
-\x6d\x69\x73\x65\x28\x76\x29\x2c\x76\x2e\x73\x75\x63\x63\x65\x73\
-\x73\x3d\x76\x2e\x64\x6f\x6e\x65\x2c\x76\x2e\x65\x72\x72\x6f\x72\
-\x3d\x76\x2e\x66\x61\x69\x6c\x2c\x76\x2e\x63\x6f\x6d\x70\x6c\x65\
-\x74\x65\x3d\x69\x2e\x61\x64\x64\x2c\x76\x2e\x73\x74\x61\x74\x75\
-\x73\x43\x6f\x64\x65\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x29\x7b\x69\x66\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3b\x69\x66\
-\x28\x73\x3c\x32\x29\x66\x6f\x72\x28\x62\x20\x69\x6e\x20\x61\x29\
-\x6a\x5b\x62\x5d\x3d\x5b\x6a\x5b\x62\x5d\x2c\x61\x5b\x62\x5d\x5d\
-\x3b\x65\x6c\x73\x65\x20\x62\x3d\x61\x5b\x76\x2e\x73\x74\x61\x74\
-\x75\x73\x5d\x2c\x76\x2e\x74\x68\x65\x6e\x28\x62\x2c\x62\x29\x7d\
-\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x64\x2e\x75\
-\x72\x6c\x3d\x28\x28\x61\x7c\x7c\x64\x2e\x75\x72\x6c\x29\x2b\x22\
-\x22\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x47\x2c\x22\x22\
-\x29\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\x62\x4c\x2c\x62\x57\x5b\
-\x31\x5d\x2b\x22\x2f\x2f\x22\x29\x2c\x64\x2e\x64\x61\x74\x61\x54\
-\x79\x70\x65\x73\x3d\x66\x2e\x74\x72\x69\x6d\x28\x64\x2e\x64\x61\
-\x74\x61\x54\x79\x70\x65\x7c\x7c\x22\x2a\x22\x29\x2e\x74\x6f\x4c\
-\x6f\x77\x65\x72\x43\x61\x73\x65\x28\x29\x2e\x73\x70\x6c\x69\x74\
-\x28\x62\x50\x29\x2c\x64\x2e\x63\x72\x6f\x73\x73\x44\x6f\x6d\x61\
-\x69\x6e\x3d\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x72\x3d\x62\x52\x2e\
-\x65\x78\x65\x63\x28\x64\x2e\x75\x72\x6c\x2e\x74\x6f\x4c\x6f\x77\
-\x65\x72\x43\x61\x73\x65\x28\x29\x29\x2c\x64\x2e\x63\x72\x6f\x73\
-\x73\x44\x6f\x6d\x61\x69\x6e\x3d\x21\x28\x21\x72\x7c\x7c\x72\x5b\
-\x31\x5d\x3d\x3d\x62\x57\x5b\x31\x5d\x26\x26\x72\x5b\x32\x5d\x3d\
-\x3d\x62\x57\x5b\x32\x5d\x26\x26\x28\x72\x5b\x33\x5d\x7c\x7c\x28\
-\x72\x5b\x31\x5d\x3d\x3d\x3d\x22\x68\x74\x74\x70\x3a\x22\x3f\x38\
-\x30\x3a\x34\x34\x33\x29\x29\x3d\x3d\x28\x62\x57\x5b\x33\x5d\x7c\
-\x7c\x28\x62\x57\x5b\x31\x5d\x3d\x3d\x3d\x22\x68\x74\x74\x70\x3a\
-\x22\x3f\x38\x30\x3a\x34\x34\x33\x29\x29\x29\x29\x2c\x64\x2e\x64\
-\x61\x74\x61\x26\x26\x64\x2e\x70\x72\x6f\x63\x65\x73\x73\x44\x61\
-\x74\x61\x26\x26\x74\x79\x70\x65\x6f\x66\x20\x64\x2e\x64\x61\x74\
-\x61\x21\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x64\x2e\
-\x64\x61\x74\x61\x3d\x66\x2e\x70\x61\x72\x61\x6d\x28\x64\x2e\x64\
-\x61\x74\x61\x2c\x64\x2e\x74\x72\x61\x64\x69\x74\x69\x6f\x6e\x61\
-\x6c\x29\x29\x2c\x62\x24\x28\x62\x54\x2c\x64\x2c\x63\x2c\x76\x29\
-\x3b\x69\x66\x28\x73\x3d\x3d\x3d\x32\x29\x72\x65\x74\x75\x72\x6e\
-\x21\x31\x3b\x74\x3d\x64\x2e\x67\x6c\x6f\x62\x61\x6c\x2c\x64\x2e\
-\x74\x79\x70\x65\x3d\x64\x2e\x74\x79\x70\x65\x2e\x74\x6f\x55\x70\
-\x70\x65\x72\x43\x61\x73\x65\x28\x29\x2c\x64\x2e\x68\x61\x73\x43\
-\x6f\x6e\x74\x65\x6e\x74\x3d\x21\x62\x4b\x2e\x74\x65\x73\x74\x28\
-\x64\x2e\x74\x79\x70\x65\x29\x2c\x74\x26\x26\x66\x2e\x61\x63\x74\
-\x69\x76\x65\x2b\x2b\x3d\x3d\x3d\x30\x26\x26\x66\x2e\x65\x76\x65\
-\x6e\x74\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x22\x61\x6a\x61\x78\
-\x53\x74\x61\x72\x74\x22\x29\x3b\x69\x66\x28\x21\x64\x2e\x68\x61\
-\x73\x43\x6f\x6e\x74\x65\x6e\x74\x29\x7b\x64\x2e\x64\x61\x74\x61\
-\x26\x26\x28\x64\x2e\x75\x72\x6c\x2b\x3d\x28\x62\x4d\x2e\x74\x65\
-\x73\x74\x28\x64\x2e\x75\x72\x6c\x29\x3f\x22\x26\x22\x3a\x22\x3f\
-\x22\x29\x2b\x64\x2e\x64\x61\x74\x61\x2c\x64\x65\x6c\x65\x74\x65\
-\x20\x64\x2e\x64\x61\x74\x61\x29\x2c\x6b\x3d\x64\x2e\x75\x72\x6c\
-\x3b\x69\x66\x28\x64\x2e\x63\x61\x63\x68\x65\x3d\x3d\x3d\x21\x31\
-\x29\x7b\x76\x61\x72\x20\x78\x3d\x66\x2e\x6e\x6f\x77\x28\x29\x2c\
-\x79\x3d\x64\x2e\x75\x72\x6c\x2e\x72\x65\x70\x6c\x61\x63\x65\x28\
-\x62\x51\x2c\x22\x24\x31\x5f\x3d\x22\x2b\x78\x29\x3b\x64\x2e\x75\
-\x72\x6c\x3d\x79\x2b\x28\x79\x3d\x3d\x3d\x64\x2e\x75\x72\x6c\x3f\
-\x28\x62\x4d\x2e\x74\x65\x73\x74\x28\x64\x2e\x75\x72\x6c\x29\x3f\
-\x22\x26\x22\x3a\x22\x3f\x22\x29\x2b\x22\x5f\x3d\x22\x2b\x78\x3a\
-\x22\x22\x29\x7d\x7d\x28\x64\x2e\x64\x61\x74\x61\x26\x26\x64\x2e\
-\x68\x61\x73\x43\x6f\x6e\x74\x65\x6e\x74\x26\x26\x64\x2e\x63\x6f\
-\x6e\x74\x65\x6e\x74\x54\x79\x70\x65\x21\x3d\x3d\x21\x31\x7c\x7c\
-\x63\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x54\x79\x70\x65\x29\x26\x26\
-\x76\x2e\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\
-\x65\x72\x28\x22\x43\x6f\x6e\x74\x65\x6e\x74\x2d\x54\x79\x70\x65\
-\x22\x2c\x64\x2e\x63\x6f\x6e\x74\x65\x6e\x74\x54\x79\x70\x65\x29\
-\x2c\x64\x2e\x69\x66\x4d\x6f\x64\x69\x66\x69\x65\x64\x26\x26\x28\
-\x6b\x3d\x6b\x7c\x7c\x64\x2e\x75\x72\x6c\x2c\x66\x2e\x6c\x61\x73\
-\x74\x4d\x6f\x64\x69\x66\x69\x65\x64\x5b\x6b\x5d\x26\x26\x76\x2e\
-\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\
-\x28\x22\x49\x66\x2d\x4d\x6f\x64\x69\x66\x69\x65\x64\x2d\x53\x69\
-\x6e\x63\x65\x22\x2c\x66\x2e\x6c\x61\x73\x74\x4d\x6f\x64\x69\x66\
-\x69\x65\x64\x5b\x6b\x5d\x29\x2c\x66\x2e\x65\x74\x61\x67\x5b\x6b\
-\x5d\x26\x26\x76\x2e\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\
-\x65\x61\x64\x65\x72\x28\x22\x49\x66\x2d\x4e\x6f\x6e\x65\x2d\x4d\
-\x61\x74\x63\x68\x22\x2c\x66\x2e\x65\x74\x61\x67\x5b\x6b\x5d\x29\
-\x29\x2c\x76\x2e\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\
-\x61\x64\x65\x72\x28\x22\x41\x63\x63\x65\x70\x74\x22\x2c\x64\x2e\
-\x64\x61\x74\x61\x54\x79\x70\x65\x73\x5b\x30\x5d\x26\x26\x64\x2e\
-\x61\x63\x63\x65\x70\x74\x73\x5b\x64\x2e\x64\x61\x74\x61\x54\x79\
-\x70\x65\x73\x5b\x30\x5d\x5d\x3f\x64\x2e\x61\x63\x63\x65\x70\x74\
-\x73\x5b\x64\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\x5b\x30\x5d\
-\x5d\x2b\x28\x64\x2e\x64\x61\x74\x61\x54\x79\x70\x65\x73\x5b\x30\
-\x5d\x21\x3d\x3d\x22\x2a\x22\x3f\x22\x2c\x20\x22\x2b\x62\x58\x2b\
-\x22\x3b\x20\x71\x3d\x30\x2e\x30\x31\x22\x3a\x22\x22\x29\x3a\x64\
-\x2e\x61\x63\x63\x65\x70\x74\x73\x5b\x22\x2a\x22\x5d\x29\x3b\x66\
-\x6f\x72\x28\x75\x20\x69\x6e\x20\x64\x2e\x68\x65\x61\x64\x65\x72\
-\x73\x29\x76\x2e\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\
-\x61\x64\x65\x72\x28\x75\x2c\x64\x2e\x68\x65\x61\x64\x65\x72\x73\
-\x5b\x75\x5d\x29\x3b\x69\x66\x28\x64\x2e\x62\x65\x66\x6f\x72\x65\
-\x53\x65\x6e\x64\x26\x26\x28\x64\x2e\x62\x65\x66\x6f\x72\x65\x53\
-\x65\x6e\x64\x2e\x63\x61\x6c\x6c\x28\x65\x2c\x76\x2c\x64\x29\x3d\
-\x3d\x3d\x21\x31\x7c\x7c\x73\x3d\x3d\x3d\x32\x29\x29\x7b\x76\x2e\
-\x61\x62\x6f\x72\x74\x28\x29\x3b\x72\x65\x74\x75\x72\x6e\x21\x31\
-\x7d\x66\x6f\x72\x28\x75\x20\x69\x6e\x7b\x73\x75\x63\x63\x65\x73\
-\x73\x3a\x31\x2c\x65\x72\x72\x6f\x72\x3a\x31\x2c\x63\x6f\x6d\x70\
-\x6c\x65\x74\x65\x3a\x31\x7d\x29\x76\x5b\x75\x5d\x28\x64\x5b\x75\
-\x5d\x29\x3b\x70\x3d\x62\x24\x28\x62\x55\x2c\x64\x2c\x63\x2c\x76\
-\x29\x3b\x69\x66\x28\x21\x70\x29\x77\x28\x2d\x31\x2c\x22\x4e\x6f\
-\x20\x54\x72\x61\x6e\x73\x70\x6f\x72\x74\x22\x29\x3b\x65\x6c\x73\
-\x65\x7b\x76\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x3d\x31\
-\x2c\x74\x26\x26\x67\x2e\x74\x72\x69\x67\x67\x65\x72\x28\x22\x61\
-\x6a\x61\x78\x53\x65\x6e\x64\x22\x2c\x5b\x76\x2c\x64\x5d\x29\x2c\
-\x64\x2e\x61\x73\x79\x6e\x63\x26\x26\x64\x2e\x74\x69\x6d\x65\x6f\
-\x75\x74\x3e\x30\x26\x26\x28\x71\x3d\x73\x65\x74\x54\x69\x6d\x65\
-\x6f\x75\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\
-\x2e\x61\x62\x6f\x72\x74\x28\x22\x74\x69\x6d\x65\x6f\x75\x74\x22\
-\x29\x7d\x2c\x64\x2e\x74\x69\x6d\x65\x6f\x75\x74\x29\x29\x3b\x74\
-\x72\x79\x7b\x73\x3d\x31\x2c\x70\x2e\x73\x65\x6e\x64\x28\x6c\x2c\
-\x77\x29\x7d\x63\x61\x74\x63\x68\x28\x7a\x29\x7b\x69\x66\x28\x73\
-\x3c\x32\x29\x77\x28\x2d\x31\x2c\x7a\x29\x3b\x65\x6c\x73\x65\x20\
-\x74\x68\x72\x6f\x77\x20\x7a\x7d\x7d\x72\x65\x74\x75\x72\x6e\x20\
-\x76\x7d\x2c\x70\x61\x72\x61\x6d\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x5b\x5d\x2c\
-\x65\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\
-\x62\x3d\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\
-\x29\x3f\x62\x28\x29\x3a\x62\x2c\x64\x5b\x64\x2e\x6c\x65\x6e\x67\
-\x74\x68\x5d\x3d\x65\x6e\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\
-\x70\x6f\x6e\x65\x6e\x74\x28\x61\x29\x2b\x22\x3d\x22\x2b\x65\x6e\
-\x63\x6f\x64\x65\x55\x52\x49\x43\x6f\x6d\x70\x6f\x6e\x65\x6e\x74\
-\x28\x62\x29\x7d\x3b\x63\x3d\x3d\x3d\x62\x26\x26\x28\x63\x3d\x66\
-\x2e\x61\x6a\x61\x78\x53\x65\x74\x74\x69\x6e\x67\x73\x2e\x74\x72\
-\x61\x64\x69\x74\x69\x6f\x6e\x61\x6c\x29\x3b\x69\x66\x28\x66\x2e\
-\x69\x73\x41\x72\x72\x61\x79\x28\x61\x29\x7c\x7c\x61\x2e\x6a\x71\
-\x75\x65\x72\x79\x26\x26\x21\x66\x2e\x69\x73\x50\x6c\x61\x69\x6e\
-\x4f\x62\x6a\x65\x63\x74\x28\x61\x29\x29\x66\x2e\x65\x61\x63\x68\
-\x28\x61\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x65\x28\
-\x74\x68\x69\x73\x2e\x6e\x61\x6d\x65\x2c\x74\x68\x69\x73\x2e\x76\
-\x61\x6c\x75\x65\x29\x7d\x29\x3b\x65\x6c\x73\x65\x20\x66\x6f\x72\
-\x28\x76\x61\x72\x20\x67\x20\x69\x6e\x20\x61\x29\x63\x61\x28\x67\
-\x2c\x61\x5b\x67\x5d\x2c\x63\x2c\x65\x29\x3b\x72\x65\x74\x75\x72\
-\x6e\x20\x64\x2e\x6a\x6f\x69\x6e\x28\x22\x26\x22\x29\x2e\x72\x65\
-\x70\x6c\x61\x63\x65\x28\x62\x44\x2c\x22\x2b\x22\x29\x7d\x7d\x29\
-\x2c\x66\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x61\x63\x74\x69\x76\
-\x65\x3a\x30\x2c\x6c\x61\x73\x74\x4d\x6f\x64\x69\x66\x69\x65\x64\
-\x3a\x7b\x7d\x2c\x65\x74\x61\x67\x3a\x7b\x7d\x7d\x29\x3b\x76\x61\
-\x72\x20\x63\x64\x3d\x66\x2e\x6e\x6f\x77\x28\x29\x2c\x63\x65\x3d\
-\x2f\x28\x5c\x3d\x29\x5c\x3f\x28\x26\x7c\x24\x29\x7c\x5c\x3f\x5c\
-\x3f\x2f\x69\x3b\x66\x2e\x61\x6a\x61\x78\x53\x65\x74\x75\x70\x28\
-\x7b\x6a\x73\x6f\x6e\x70\x3a\x22\x63\x61\x6c\x6c\x62\x61\x63\x6b\
-\x22\x2c\x6a\x73\x6f\x6e\x70\x43\x61\x6c\x6c\x62\x61\x63\x6b\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\
-\x6e\x20\x66\x2e\x65\x78\x70\x61\x6e\x64\x6f\x2b\x22\x5f\x22\x2b\
-\x63\x64\x2b\x2b\x7d\x7d\x29\x2c\x66\x2e\x61\x6a\x61\x78\x50\x72\
-\x65\x66\x69\x6c\x74\x65\x72\x28\x22\x6a\x73\x6f\x6e\x20\x6a\x73\
-\x6f\x6e\x70\x22\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x2c\
-\x63\x2c\x64\x29\x7b\x76\x61\x72\x20\x65\x3d\x62\x2e\x63\x6f\x6e\
-\x74\x65\x6e\x74\x54\x79\x70\x65\x3d\x3d\x3d\x22\x61\x70\x70\x6c\
-\x69\x63\x61\x74\x69\x6f\x6e\x2f\x78\x2d\x77\x77\x77\x2d\x66\x6f\
-\x72\x6d\x2d\x75\x72\x6c\x65\x6e\x63\x6f\x64\x65\x64\x22\x26\x26\
-\x74\x79\x70\x65\x6f\x66\x20\x62\x2e\x64\x61\x74\x61\x3d\x3d\x22\
-\x73\x74\x72\x69\x6e\x67\x22\x3b\x69\x66\x28\x62\x2e\x64\x61\x74\
-\x61\x54\x79\x70\x65\x73\x5b\x30\x5d\x3d\x3d\x3d\x22\x6a\x73\x6f\
-\x6e\x70\x22\x7c\x7c\x62\x2e\x6a\x73\x6f\x6e\x70\x21\x3d\x3d\x21\
-\x31\x26\x26\x28\x63\x65\x2e\x74\x65\x73\x74\x28\x62\x2e\x75\x72\
-\x6c\x29\x7c\x7c\x65\x26\x26\x63\x65\x2e\x74\x65\x73\x74\x28\x62\
-\x2e\x64\x61\x74\x61\x29\x29\x29\x7b\x76\x61\x72\x20\x67\x2c\x68\
-\x3d\x62\x2e\x6a\x73\x6f\x6e\x70\x43\x61\x6c\x6c\x62\x61\x63\x6b\
-\x3d\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x2e\
-\x6a\x73\x6f\x6e\x70\x43\x61\x6c\x6c\x62\x61\x63\x6b\x29\x3f\x62\
-\x2e\x6a\x73\x6f\x6e\x70\x43\x61\x6c\x6c\x62\x61\x63\x6b\x28\x29\
-\x3a\x62\x2e\x6a\x73\x6f\x6e\x70\x43\x61\x6c\x6c\x62\x61\x63\x6b\
-\x2c\x69\x3d\x61\x5b\x68\x5d\x2c\x6a\x3d\x62\x2e\x75\x72\x6c\x2c\
-\x6b\x3d\x62\x2e\x64\x61\x74\x61\x2c\x6c\x3d\x22\x24\x31\x22\x2b\
-\x68\x2b\x22\x24\x32\x22\x3b\x62\x2e\x6a\x73\x6f\x6e\x70\x21\x3d\
-\x3d\x21\x31\x26\x26\x28\x6a\x3d\x6a\x2e\x72\x65\x70\x6c\x61\x63\
-\x65\x28\x63\x65\x2c\x6c\x29\x2c\x62\x2e\x75\x72\x6c\x3d\x3d\x3d\
-\x6a\x26\x26\x28\x65\x26\x26\x28\x6b\x3d\x6b\x2e\x72\x65\x70\x6c\
-\x61\x63\x65\x28\x63\x65\x2c\x6c\x29\x29\x2c\x62\x2e\x64\x61\x74\
-\x61\x3d\x3d\x3d\x6b\x26\x26\x28\x6a\x2b\x3d\x28\x2f\x5c\x3f\x2f\
-\x2e\x74\x65\x73\x74\x28\x6a\x29\x3f\x22\x26\x22\x3a\x22\x3f\x22\
-\x29\x2b\x62\x2e\x6a\x73\x6f\x6e\x70\x2b\x22\x3d\x22\x2b\x68\x29\
-\x29\x29\x2c\x62\x2e\x75\x72\x6c\x3d\x6a\x2c\x62\x2e\x64\x61\x74\
-\x61\x3d\x6b\x2c\x61\x5b\x68\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x29\x7b\x67\x3d\x5b\x61\x5d\x7d\x2c\x64\x2e\x61\x6c\
-\x77\x61\x79\x73\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\
-\x61\x5b\x68\x5d\x3d\x69\x2c\x67\x26\x26\x66\x2e\x69\x73\x46\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x69\x29\x26\x26\x61\x5b\x68\x5d\x28\
-\x67\x5b\x30\x5d\x29\x7d\x29\x2c\x62\x2e\x63\x6f\x6e\x76\x65\x72\
-\x74\x65\x72\x73\x5b\x22\x73\x63\x72\x69\x70\x74\x20\x6a\x73\x6f\
-\x6e\x22\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x67\
-\x7c\x7c\x66\x2e\x65\x72\x72\x6f\x72\x28\x68\x2b\x22\x20\x77\x61\
-\x73\x20\x6e\x6f\x74\x20\x63\x61\x6c\x6c\x65\x64\x22\x29\x3b\x72\
-\x65\x74\x75\x72\x6e\x20\x67\x5b\x30\x5d\x7d\x2c\x62\x2e\x64\x61\
-\x74\x61\x54\x79\x70\x65\x73\x5b\x30\x5d\x3d\x22\x6a\x73\x6f\x6e\
-\x22\x3b\x72\x65\x74\x75\x72\x6e\x22\x73\x63\x72\x69\x70\x74\x22\
-\x7d\x7d\x29\x2c\x66\x2e\x61\x6a\x61\x78\x53\x65\x74\x75\x70\x28\
-\x7b\x61\x63\x63\x65\x70\x74\x73\x3a\x7b\x73\x63\x72\x69\x70\x74\
-\x3a\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\
-\x74\x2c\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x6a\
-\x61\x76\x61\x73\x63\x72\x69\x70\x74\x2c\x20\x61\x70\x70\x6c\x69\
-\x63\x61\x74\x69\x6f\x6e\x2f\x65\x63\x6d\x61\x73\x63\x72\x69\x70\
-\x74\x2c\x20\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\x6e\x2f\x78\
-\x2d\x65\x63\x6d\x61\x73\x63\x72\x69\x70\x74\x22\x7d\x2c\x63\x6f\
-\x6e\x74\x65\x6e\x74\x73\x3a\x7b\x73\x63\x72\x69\x70\x74\x3a\x2f\
-\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x7c\x65\x63\x6d\x61\x73\
-\x63\x72\x69\x70\x74\x2f\x7d\x2c\x63\x6f\x6e\x76\x65\x72\x74\x65\
-\x72\x73\x3a\x7b\x22\x74\x65\x78\x74\x20\x73\x63\x72\x69\x70\x74\
-\x22\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x66\x2e\
-\x67\x6c\x6f\x62\x61\x6c\x45\x76\x61\x6c\x28\x61\x29\x3b\x72\x65\
-\x74\x75\x72\x6e\x20\x61\x7d\x7d\x7d\x29\x2c\x66\x2e\x61\x6a\x61\
-\x78\x50\x72\x65\x66\x69\x6c\x74\x65\x72\x28\x22\x73\x63\x72\x69\
-\x70\x74\x22\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\
-\x61\x2e\x63\x61\x63\x68\x65\x3d\x3d\x3d\x62\x26\x26\x28\x61\x2e\
-\x63\x61\x63\x68\x65\x3d\x21\x31\x29\x2c\x61\x2e\x63\x72\x6f\x73\
-\x73\x44\x6f\x6d\x61\x69\x6e\x26\x26\x28\x61\x2e\x74\x79\x70\x65\
-\x3d\x22\x47\x45\x54\x22\x2c\x61\x2e\x67\x6c\x6f\x62\x61\x6c\x3d\
-\x21\x31\x29\x7d\x29\x2c\x66\x2e\x61\x6a\x61\x78\x54\x72\x61\x6e\
-\x73\x70\x6f\x72\x74\x28\x22\x73\x63\x72\x69\x70\x74\x22\x2c\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x69\x66\x28\x61\x2e\
-\x63\x72\x6f\x73\x73\x44\x6f\x6d\x61\x69\x6e\x29\x7b\x76\x61\x72\
-\x20\x64\x2c\x65\x3d\x63\x2e\x68\x65\x61\x64\x7c\x7c\x63\x2e\x67\
-\x65\x74\x45\x6c\x65\x6d\x65\x6e\x74\x73\x42\x79\x54\x61\x67\x4e\
-\x61\x6d\x65\x28\x22\x68\x65\x61\x64\x22\x29\x5b\x30\x5d\x7c\x7c\
-\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\
-\x74\x3b\x72\x65\x74\x75\x72\x6e\x7b\x73\x65\x6e\x64\x3a\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x66\x2c\x67\x29\x7b\x64\x3d\x63\x2e\
-\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x73\
-\x63\x72\x69\x70\x74\x22\x29\x2c\x64\x2e\x61\x73\x79\x6e\x63\x3d\
-\x22\x61\x73\x79\x6e\x63\x22\x2c\x61\x2e\x73\x63\x72\x69\x70\x74\
-\x43\x68\x61\x72\x73\x65\x74\x26\x26\x28\x64\x2e\x63\x68\x61\x72\
-\x73\x65\x74\x3d\x61\x2e\x73\x63\x72\x69\x70\x74\x43\x68\x61\x72\
-\x73\x65\x74\x29\x2c\x64\x2e\x73\x72\x63\x3d\x61\x2e\x75\x72\x6c\
-\x2c\x64\x2e\x6f\x6e\x6c\x6f\x61\x64\x3d\x64\x2e\x6f\x6e\x72\x65\
-\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6e\x67\x65\x3d\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x69\x66\x28\
-\x63\x7c\x7c\x21\x64\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\
-\x7c\x7c\x2f\x6c\x6f\x61\x64\x65\x64\x7c\x63\x6f\x6d\x70\x6c\x65\
-\x74\x65\x2f\x2e\x74\x65\x73\x74\x28\x64\x2e\x72\x65\x61\x64\x79\
-\x53\x74\x61\x74\x65\x29\x29\x64\x2e\x6f\x6e\x6c\x6f\x61\x64\x3d\
-\x64\x2e\x6f\x6e\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\
-\x61\x6e\x67\x65\x3d\x6e\x75\x6c\x6c\x2c\x65\x26\x26\x64\x2e\x70\
-\x61\x72\x65\x6e\x74\x4e\x6f\x64\x65\x26\x26\x65\x2e\x72\x65\x6d\
-\x6f\x76\x65\x43\x68\x69\x6c\x64\x28\x64\x29\x2c\x64\x3d\x62\x2c\
-\x63\x7c\x7c\x67\x28\x32\x30\x30\x2c\x22\x73\x75\x63\x63\x65\x73\
-\x73\x22\x29\x7d\x2c\x65\x2e\x69\x6e\x73\x65\x72\x74\x42\x65\x66\
-\x6f\x72\x65\x28\x64\x2c\x65\x2e\x66\x69\x72\x73\x74\x43\x68\x69\
-\x6c\x64\x29\x7d\x2c\x61\x62\x6f\x72\x74\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x29\x7b\x64\x26\x26\x64\x2e\x6f\x6e\x6c\x6f\x61\
-\x64\x28\x30\x2c\x31\x29\x7d\x7d\x7d\x7d\x29\x3b\x76\x61\x72\x20\
-\x63\x66\x3d\x61\x2e\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\
-\x63\x74\x3f\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x6f\
-\x72\x28\x76\x61\x72\x20\x61\x20\x69\x6e\x20\x63\x68\x29\x63\x68\
-\x5b\x61\x5d\x28\x30\x2c\x31\x29\x7d\x3a\x21\x31\x2c\x63\x67\x3d\
-\x30\x2c\x63\x68\x3b\x66\x2e\x61\x6a\x61\x78\x53\x65\x74\x74\x69\
-\x6e\x67\x73\x2e\x78\x68\x72\x3d\x61\x2e\x41\x63\x74\x69\x76\x65\
-\x58\x4f\x62\x6a\x65\x63\x74\x3f\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x21\x74\x68\x69\x73\x2e\x69\
-\x73\x4c\x6f\x63\x61\x6c\x26\x26\x63\x69\x28\x29\x7c\x7c\x63\x6a\
-\x28\x29\x7d\x3a\x63\x69\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x29\x7b\x66\x2e\x65\x78\x74\x65\x6e\x64\x28\x66\x2e\x73\x75\
-\x70\x70\x6f\x72\x74\x2c\x7b\x61\x6a\x61\x78\x3a\x21\x21\x61\x2c\
-\x63\x6f\x72\x73\x3a\x21\x21\x61\x26\x26\x22\x77\x69\x74\x68\x43\
-\x72\x65\x64\x65\x6e\x74\x69\x61\x6c\x73\x22\x69\x6e\x20\x61\x7d\
-\x29\x7d\x28\x66\x2e\x61\x6a\x61\x78\x53\x65\x74\x74\x69\x6e\x67\
-\x73\x2e\x78\x68\x72\x28\x29\x29\x2c\x66\x2e\x73\x75\x70\x70\x6f\
-\x72\x74\x2e\x61\x6a\x61\x78\x26\x26\x66\x2e\x61\x6a\x61\x78\x54\
-\x72\x61\x6e\x73\x70\x6f\x72\x74\x28\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x63\x29\x7b\x69\x66\x28\x21\x63\x2e\x63\x72\x6f\x73\x73\
-\x44\x6f\x6d\x61\x69\x6e\x7c\x7c\x66\x2e\x73\x75\x70\x70\x6f\x72\
-\x74\x2e\x63\x6f\x72\x73\x29\x7b\x76\x61\x72\x20\x64\x3b\x72\x65\
-\x74\x75\x72\x6e\x7b\x73\x65\x6e\x64\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x65\x2c\x67\x29\x7b\x76\x61\x72\x20\x68\x3d\x63\x2e\
-\x78\x68\x72\x28\x29\x2c\x69\x2c\x6a\x3b\x63\x2e\x75\x73\x65\x72\
-\x6e\x61\x6d\x65\x3f\x68\x2e\x6f\x70\x65\x6e\x28\x63\x2e\x74\x79\
-\x70\x65\x2c\x63\x2e\x75\x72\x6c\x2c\x63\x2e\x61\x73\x79\x6e\x63\
-\x2c\x63\x2e\x75\x73\x65\x72\x6e\x61\x6d\x65\x2c\x63\x2e\x70\x61\
-\x73\x73\x77\x6f\x72\x64\x29\x3a\x68\x2e\x6f\x70\x65\x6e\x28\x63\
-\x2e\x74\x79\x70\x65\x2c\x63\x2e\x75\x72\x6c\x2c\x63\x2e\x61\x73\
-\x79\x6e\x63\x29\x3b\x69\x66\x28\x63\x2e\x78\x68\x72\x46\x69\x65\
-\x6c\x64\x73\x29\x66\x6f\x72\x28\x6a\x20\x69\x6e\x20\x63\x2e\x78\
-\x68\x72\x46\x69\x65\x6c\x64\x73\x29\x68\x5b\x6a\x5d\x3d\x63\x2e\
-\x78\x68\x72\x46\x69\x65\x6c\x64\x73\x5b\x6a\x5d\x3b\x63\x2e\x6d\
-\x69\x6d\x65\x54\x79\x70\x65\x26\x26\x68\x2e\x6f\x76\x65\x72\x72\
-\x69\x64\x65\x4d\x69\x6d\x65\x54\x79\x70\x65\x26\x26\x68\x2e\x6f\
-\x76\x65\x72\x72\x69\x64\x65\x4d\x69\x6d\x65\x54\x79\x70\x65\x28\
-\x63\x2e\x6d\x69\x6d\x65\x54\x79\x70\x65\x29\x2c\x21\x63\x2e\x63\
-\x72\x6f\x73\x73\x44\x6f\x6d\x61\x69\x6e\x26\x26\x21\x65\x5b\x22\
-\x58\x2d\x52\x65\x71\x75\x65\x73\x74\x65\x64\x2d\x57\x69\x74\x68\
-\x22\x5d\x26\x26\x28\x65\x5b\x22\x58\x2d\x52\x65\x71\x75\x65\x73\
-\x74\x65\x64\x2d\x57\x69\x74\x68\x22\x5d\x3d\x22\x58\x4d\x4c\x48\
-\x74\x74\x70\x52\x65\x71\x75\x65\x73\x74\x22\x29\x3b\x74\x72\x79\
-\x7b\x66\x6f\x72\x28\x6a\x20\x69\x6e\x20\x65\x29\x68\x2e\x73\x65\
-\x74\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x28\x6a\
-\x2c\x65\x5b\x6a\x5d\x29\x7d\x63\x61\x74\x63\x68\x28\x6b\x29\x7b\
-\x7d\x68\x2e\x73\x65\x6e\x64\x28\x63\x2e\x68\x61\x73\x43\x6f\x6e\
-\x74\x65\x6e\x74\x26\x26\x63\x2e\x64\x61\x74\x61\x7c\x7c\x6e\x75\
-\x6c\x6c\x29\x2c\x64\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x65\x29\x7b\x76\x61\x72\x20\x6a\x2c\x6b\x2c\x6c\x2c\x6d\x2c\
-\x6e\x3b\x74\x72\x79\x7b\x69\x66\x28\x64\x26\x26\x28\x65\x7c\x7c\
-\x68\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x3d\x3d\x3d\x34\
-\x29\x29\x7b\x64\x3d\x62\x2c\x69\x26\x26\x28\x68\x2e\x6f\x6e\x72\
-\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6e\x67\x65\x3d\
-\x66\x2e\x6e\x6f\x6f\x70\x2c\x63\x66\x26\x26\x64\x65\x6c\x65\x74\
-\x65\x20\x63\x68\x5b\x69\x5d\x29\x3b\x69\x66\x28\x65\x29\x68\x2e\
-\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x21\x3d\x3d\x34\x26\x26\
-\x68\x2e\x61\x62\x6f\x72\x74\x28\x29\x3b\x65\x6c\x73\x65\x7b\x6a\
-\x3d\x68\x2e\x73\x74\x61\x74\x75\x73\x2c\x6c\x3d\x68\x2e\x67\x65\
-\x74\x41\x6c\x6c\x52\x65\x73\x70\x6f\x6e\x73\x65\x48\x65\x61\x64\
-\x65\x72\x73\x28\x29\x2c\x6d\x3d\x7b\x7d\x2c\x6e\x3d\x68\x2e\x72\
-\x65\x73\x70\x6f\x6e\x73\x65\x58\x4d\x4c\x2c\x6e\x26\x26\x6e\x2e\
-\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x26\
-\x26\x28\x6d\x2e\x78\x6d\x6c\x3d\x6e\x29\x2c\x6d\x2e\x74\x65\x78\
-\x74\x3d\x68\x2e\x72\x65\x73\x70\x6f\x6e\x73\x65\x54\x65\x78\x74\
-\x3b\x74\x72\x79\x7b\x6b\x3d\x68\x2e\x73\x74\x61\x74\x75\x73\x54\
-\x65\x78\x74\x7d\x63\x61\x74\x63\x68\x28\x6f\x29\x7b\x6b\x3d\x22\
-\x22\x7d\x21\x6a\x26\x26\x63\x2e\x69\x73\x4c\x6f\x63\x61\x6c\x26\
-\x26\x21\x63\x2e\x63\x72\x6f\x73\x73\x44\x6f\x6d\x61\x69\x6e\x3f\
-\x6a\x3d\x6d\x2e\x74\x65\x78\x74\x3f\x32\x30\x30\x3a\x34\x30\x34\
-\x3a\x6a\x3d\x3d\x3d\x31\x32\x32\x33\x26\x26\x28\x6a\x3d\x32\x30\
-\x34\x29\x7d\x7d\x7d\x63\x61\x74\x63\x68\x28\x70\x29\x7b\x65\x7c\
-\x7c\x67\x28\x2d\x31\x2c\x70\x29\x7d\x6d\x26\x26\x67\x28\x6a\x2c\
-\x6b\x2c\x6d\x2c\x6c\x29\x7d\x2c\x21\x63\x2e\x61\x73\x79\x6e\x63\
-\x7c\x7c\x68\x2e\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65\x3d\x3d\
-\x3d\x34\x3f\x64\x28\x29\x3a\x28\x69\x3d\x2b\x2b\x63\x67\x2c\x63\
-\x66\x26\x26\x28\x63\x68\x7c\x7c\x28\x63\x68\x3d\x7b\x7d\x2c\x66\
-\x28\x61\x29\x2e\x75\x6e\x6c\x6f\x61\x64\x28\x63\x66\x29\x29\x2c\
-\x63\x68\x5b\x69\x5d\x3d\x64\x29\x2c\x68\x2e\x6f\x6e\x72\x65\x61\
-\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6e\x67\x65\x3d\x64\x29\
-\x7d\x2c\x61\x62\x6f\x72\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x29\x7b\x64\x26\x26\x64\x28\x30\x2c\x31\x29\x7d\x7d\x7d\x7d\
-\x29\x3b\x76\x61\x72\x20\x63\x6b\x3d\x7b\x7d\x2c\x63\x6c\x2c\x63\
-\x6d\x2c\x63\x6e\x3d\x2f\x5e\x28\x3f\x3a\x74\x6f\x67\x67\x6c\x65\
-\x7c\x73\x68\x6f\x77\x7c\x68\x69\x64\x65\x29\x24\x2f\x2c\x63\x6f\
-\x3d\x2f\x5e\x28\x5b\x2b\x5c\x2d\x5d\x3d\x29\x3f\x28\x5b\x5c\x64\
-\x2b\x2e\x5c\x2d\x5d\x2b\x29\x28\x5b\x61\x2d\x7a\x25\x5d\x2a\x29\
-\x24\x2f\x69\x2c\x63\x70\x2c\x63\x71\x3d\x5b\x5b\x22\x68\x65\x69\
-\x67\x68\x74\x22\x2c\x22\x6d\x61\x72\x67\x69\x6e\x54\x6f\x70\x22\
-\x2c\x22\x6d\x61\x72\x67\x69\x6e\x42\x6f\x74\x74\x6f\x6d\x22\x2c\
-\x22\x70\x61\x64\x64\x69\x6e\x67\x54\x6f\x70\x22\x2c\x22\x70\x61\
-\x64\x64\x69\x6e\x67\x42\x6f\x74\x74\x6f\x6d\x22\x5d\x2c\x5b\x22\
-\x77\x69\x64\x74\x68\x22\x2c\x22\x6d\x61\x72\x67\x69\x6e\x4c\x65\
-\x66\x74\x22\x2c\x22\x6d\x61\x72\x67\x69\x6e\x52\x69\x67\x68\x74\
-\x22\x2c\x22\x70\x61\x64\x64\x69\x6e\x67\x4c\x65\x66\x74\x22\x2c\
-\x22\x70\x61\x64\x64\x69\x6e\x67\x52\x69\x67\x68\x74\x22\x5d\x2c\
-\x5b\x22\x6f\x70\x61\x63\x69\x74\x79\x22\x5d\x5d\x2c\x63\x72\x3b\
-\x66\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x73\x68\x6f\
-\x77\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\
-\x29\x7b\x76\x61\x72\x20\x64\x2c\x65\x3b\x69\x66\x28\x61\x7c\x7c\
-\x61\x3d\x3d\x3d\x30\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\
-\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x63\x75\x28\x22\x73\x68\
-\x6f\x77\x22\x2c\x33\x29\x2c\x61\x2c\x62\x2c\x63\x29\x3b\x66\x6f\
-\x72\x28\x76\x61\x72\x20\x67\x3d\x30\x2c\x68\x3d\x74\x68\x69\x73\
-\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x67\x3c\x68\x3b\x67\x2b\x2b\x29\
-\x64\x3d\x74\x68\x69\x73\x5b\x67\x5d\x2c\x64\x2e\x73\x74\x79\x6c\
-\x65\x26\x26\x28\x65\x3d\x64\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\
-\x73\x70\x6c\x61\x79\x2c\x21\x66\x2e\x5f\x64\x61\x74\x61\x28\x64\
-\x2c\x22\x6f\x6c\x64\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x26\x26\
-\x65\x3d\x3d\x3d\x22\x6e\x6f\x6e\x65\x22\x26\x26\x28\x65\x3d\x64\
-\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\
-\x22\x29\x2c\x65\x3d\x3d\x3d\x22\x22\x26\x26\x66\x2e\x63\x73\x73\
-\x28\x64\x2c\x22\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x3d\x3d\x3d\
-\x22\x6e\x6f\x6e\x65\x22\x26\x26\x66\x2e\x5f\x64\x61\x74\x61\x28\
-\x64\x2c\x22\x6f\x6c\x64\x64\x69\x73\x70\x6c\x61\x79\x22\x2c\x63\
-\x76\x28\x64\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x29\x29\x3b\
-\x66\x6f\x72\x28\x67\x3d\x30\x3b\x67\x3c\x68\x3b\x67\x2b\x2b\x29\
-\x7b\x64\x3d\x74\x68\x69\x73\x5b\x67\x5d\x3b\x69\x66\x28\x64\x2e\
-\x73\x74\x79\x6c\x65\x29\x7b\x65\x3d\x64\x2e\x73\x74\x79\x6c\x65\
-\x2e\x64\x69\x73\x70\x6c\x61\x79\x3b\x69\x66\x28\x65\x3d\x3d\x3d\
-\x22\x22\x7c\x7c\x65\x3d\x3d\x3d\x22\x6e\x6f\x6e\x65\x22\x29\x64\
-\x2e\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x66\
-\x2e\x5f\x64\x61\x74\x61\x28\x64\x2c\x22\x6f\x6c\x64\x64\x69\x73\
-\x70\x6c\x61\x79\x22\x29\x7c\x7c\x22\x22\x7d\x7d\x72\x65\x74\x75\
-\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x68\x69\x64\x65\x3a\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x69\x66\
-\x28\x61\x7c\x7c\x61\x3d\x3d\x3d\x30\x29\x72\x65\x74\x75\x72\x6e\
-\x20\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x63\x75\
-\x28\x22\x68\x69\x64\x65\x22\x2c\x33\x29\x2c\x61\x2c\x62\x2c\x63\
-\x29\x3b\x76\x61\x72\x20\x64\x2c\x65\x2c\x67\x3d\x30\x2c\x68\x3d\
-\x74\x68\x69\x73\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x66\x6f\x72\x28\
-\x3b\x67\x3c\x68\x3b\x67\x2b\x2b\x29\x64\x3d\x74\x68\x69\x73\x5b\
-\x67\x5d\x2c\x64\x2e\x73\x74\x79\x6c\x65\x26\x26\x28\x65\x3d\x66\
-\x2e\x63\x73\x73\x28\x64\x2c\x22\x64\x69\x73\x70\x6c\x61\x79\x22\
-\x29\x2c\x65\x21\x3d\x3d\x22\x6e\x6f\x6e\x65\x22\x26\x26\x21\x66\
-\x2e\x5f\x64\x61\x74\x61\x28\x64\x2c\x22\x6f\x6c\x64\x64\x69\x73\
-\x70\x6c\x61\x79\x22\x29\x26\x26\x66\x2e\x5f\x64\x61\x74\x61\x28\
-\x64\x2c\x22\x6f\x6c\x64\x64\x69\x73\x70\x6c\x61\x79\x22\x2c\x65\
-\x29\x29\x3b\x66\x6f\x72\x28\x67\x3d\x30\x3b\x67\x3c\x68\x3b\x67\
-\x2b\x2b\x29\x74\x68\x69\x73\x5b\x67\x5d\x2e\x73\x74\x79\x6c\x65\
-\x26\x26\x28\x74\x68\x69\x73\x5b\x67\x5d\x2e\x73\x74\x79\x6c\x65\
-\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x6e\x6f\x6e\x65\x22\x29\
-\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x7d\x2c\x5f\x74\
-\x6f\x67\x67\x6c\x65\x3a\x66\x2e\x66\x6e\x2e\x74\x6f\x67\x67\x6c\
-\x65\x2c\x74\x6f\x67\x67\x6c\x65\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x74\
-\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x22\x62\x6f\x6f\x6c\x65\x61\
-\x6e\x22\x3b\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x29\x26\x26\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x62\x29\x3f\x74\x68\x69\x73\x2e\x5f\x74\x6f\x67\x67\x6c\x65\
-\x2e\x61\x70\x70\x6c\x79\x28\x74\x68\x69\x73\x2c\x61\x72\x67\x75\
-\x6d\x65\x6e\x74\x73\x29\x3a\x61\x3d\x3d\x6e\x75\x6c\x6c\x7c\x7c\
-\x64\x3f\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\x20\x62\x3d\x64\x3f\x61\
-\x3a\x66\x28\x74\x68\x69\x73\x29\x2e\x69\x73\x28\x22\x3a\x68\x69\
-\x64\x64\x65\x6e\x22\x29\x3b\x66\x28\x74\x68\x69\x73\x29\x5b\x62\
-\x3f\x22\x73\x68\x6f\x77\x22\x3a\x22\x68\x69\x64\x65\x22\x5d\x28\
-\x29\x7d\x29\x3a\x74\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\
-\x28\x63\x75\x28\x22\x74\x6f\x67\x67\x6c\x65\x22\x2c\x33\x29\x2c\
-\x61\x2c\x62\x2c\x63\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\
-\x69\x73\x7d\x2c\x66\x61\x64\x65\x54\x6f\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x72\x65\x74\
-\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x66\x69\x6c\x74\x65\x72\x28\
-\x22\x3a\x68\x69\x64\x64\x65\x6e\x22\x29\x2e\x63\x73\x73\x28\x22\
-\x6f\x70\x61\x63\x69\x74\x79\x22\x2c\x30\x29\x2e\x73\x68\x6f\x77\
-\x28\x29\x2e\x65\x6e\x64\x28\x29\x2e\x61\x6e\x69\x6d\x61\x74\x65\
-\x28\x7b\x6f\x70\x61\x63\x69\x74\x79\x3a\x62\x7d\x2c\x61\x2c\x63\
-\x2c\x64\x29\x7d\x2c\x61\x6e\x69\x6d\x61\x74\x65\x3a\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x20\x67\x28\x29\x7b\x65\x2e\x71\x75\
-\x65\x75\x65\x3d\x3d\x3d\x21\x31\x26\x26\x66\x2e\x5f\x6d\x61\x72\
-\x6b\x28\x74\x68\x69\x73\x29\x3b\x76\x61\x72\x20\x62\x3d\x66\x2e\
-\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x65\x29\x2c\x63\x3d\x74\
-\x68\x69\x73\x2e\x6e\x6f\x64\x65\x54\x79\x70\x65\x3d\x3d\x3d\x31\
-\x2c\x64\x3d\x63\x26\x26\x66\x28\x74\x68\x69\x73\x29\x2e\x69\x73\
-\x28\x22\x3a\x68\x69\x64\x64\x65\x6e\x22\x29\x2c\x67\x2c\x68\x2c\
-\x69\x2c\x6a\x2c\x6b\x2c\x6c\x2c\x6d\x2c\x6e\x2c\x6f\x3b\x62\x2e\
-\x61\x6e\x69\x6d\x61\x74\x65\x64\x50\x72\x6f\x70\x65\x72\x74\x69\
-\x65\x73\x3d\x7b\x7d\x3b\x66\x6f\x72\x28\x69\x20\x69\x6e\x20\x61\
-\x29\x7b\x67\x3d\x66\x2e\x63\x61\x6d\x65\x6c\x43\x61\x73\x65\x28\
-\x69\x29\x2c\x69\x21\x3d\x3d\x67\x26\x26\x28\x61\x5b\x67\x5d\x3d\
-\x61\x5b\x69\x5d\x2c\x64\x65\x6c\x65\x74\x65\x20\x61\x5b\x69\x5d\
-\x29\x2c\x68\x3d\x61\x5b\x67\x5d\x2c\x66\x2e\x69\x73\x41\x72\x72\
-\x61\x79\x28\x68\x29\x3f\x28\x62\x2e\x61\x6e\x69\x6d\x61\x74\x65\
-\x64\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x5b\x67\x5d\x3d\x68\
-\x5b\x31\x5d\x2c\x68\x3d\x61\x5b\x67\x5d\x3d\x68\x5b\x30\x5d\x29\
-\x3a\x62\x2e\x61\x6e\x69\x6d\x61\x74\x65\x64\x50\x72\x6f\x70\x65\
-\x72\x74\x69\x65\x73\x5b\x67\x5d\x3d\x62\x2e\x73\x70\x65\x63\x69\
-\x61\x6c\x45\x61\x73\x69\x6e\x67\x26\x26\x62\x2e\x73\x70\x65\x63\
-\x69\x61\x6c\x45\x61\x73\x69\x6e\x67\x5b\x67\x5d\x7c\x7c\x62\x2e\
-\x65\x61\x73\x69\x6e\x67\x7c\x7c\x22\x73\x77\x69\x6e\x67\x22\x3b\
-\x69\x66\x28\x68\x3d\x3d\x3d\x22\x68\x69\x64\x65\x22\x26\x26\x64\
-\x7c\x7c\x68\x3d\x3d\x3d\x22\x73\x68\x6f\x77\x22\x26\x26\x21\x64\
-\x29\x72\x65\x74\x75\x72\x6e\x20\x62\x2e\x63\x6f\x6d\x70\x6c\x65\
-\x74\x65\x2e\x63\x61\x6c\x6c\x28\x74\x68\x69\x73\x29\x3b\x63\x26\
-\x26\x28\x67\x3d\x3d\x3d\x22\x68\x65\x69\x67\x68\x74\x22\x7c\x7c\
-\x67\x3d\x3d\x3d\x22\x77\x69\x64\x74\x68\x22\x29\x26\x26\x28\x62\
-\x2e\x6f\x76\x65\x72\x66\x6c\x6f\x77\x3d\x5b\x74\x68\x69\x73\x2e\
-\x73\x74\x79\x6c\x65\x2e\x6f\x76\x65\x72\x66\x6c\x6f\x77\x2c\x74\
-\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x2e\x6f\x76\x65\x72\x66\x6c\
-\x6f\x77\x58\x2c\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x2e\x6f\
-\x76\x65\x72\x66\x6c\x6f\x77\x59\x5d\x2c\x66\x2e\x63\x73\x73\x28\
-\x74\x68\x69\x73\x2c\x22\x64\x69\x73\x70\x6c\x61\x79\x22\x29\x3d\
-\x3d\x3d\x22\x69\x6e\x6c\x69\x6e\x65\x22\x26\x26\x66\x2e\x63\x73\
-\x73\x28\x74\x68\x69\x73\x2c\x22\x66\x6c\x6f\x61\x74\x22\x29\x3d\
-\x3d\x3d\x22\x6e\x6f\x6e\x65\x22\x26\x26\x28\x21\x66\x2e\x73\x75\
-\x70\x70\x6f\x72\x74\x2e\x69\x6e\x6c\x69\x6e\x65\x42\x6c\x6f\x63\
-\x6b\x4e\x65\x65\x64\x73\x4c\x61\x79\x6f\x75\x74\x7c\x7c\x63\x76\
-\x28\x74\x68\x69\x73\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x3d\
-\x3d\x3d\x22\x69\x6e\x6c\x69\x6e\x65\x22\x3f\x74\x68\x69\x73\x2e\
-\x73\x74\x79\x6c\x65\x2e\x64\x69\x73\x70\x6c\x61\x79\x3d\x22\x69\
-\x6e\x6c\x69\x6e\x65\x2d\x62\x6c\x6f\x63\x6b\x22\x3a\x74\x68\x69\
-\x73\x2e\x73\x74\x79\x6c\x65\x2e\x7a\x6f\x6f\x6d\x3d\x31\x29\x29\
-\x7d\x62\x2e\x6f\x76\x65\x72\x66\x6c\x6f\x77\x21\x3d\x6e\x75\x6c\
-\x6c\x26\x26\x28\x74\x68\x69\x73\x2e\x73\x74\x79\x6c\x65\x2e\x6f\
-\x76\x65\x72\x66\x6c\x6f\x77\x3d\x22\x68\x69\x64\x64\x65\x6e\x22\
-\x29\x3b\x66\x6f\x72\x28\x69\x20\x69\x6e\x20\x61\x29\x6a\x3d\x6e\
-\x65\x77\x20\x66\x2e\x66\x78\x28\x74\x68\x69\x73\x2c\x62\x2c\x69\
-\x29\x2c\x68\x3d\x61\x5b\x69\x5d\x2c\x63\x6e\x2e\x74\x65\x73\x74\
-\x28\x68\x29\x3f\x28\x6f\x3d\x66\x2e\x5f\x64\x61\x74\x61\x28\x74\
-\x68\x69\x73\x2c\x22\x74\x6f\x67\x67\x6c\x65\x22\x2b\x69\x29\x7c\
-\x7c\x28\x68\x3d\x3d\x3d\x22\x74\x6f\x67\x67\x6c\x65\x22\x3f\x64\
-\x3f\x22\x73\x68\x6f\x77\x22\x3a\x22\x68\x69\x64\x65\x22\x3a\x30\
-\x29\x2c\x6f\x3f\x28\x66\x2e\x5f\x64\x61\x74\x61\x28\x74\x68\x69\
-\x73\x2c\x22\x74\x6f\x67\x67\x6c\x65\x22\x2b\x69\x2c\x6f\x3d\x3d\
-\x3d\x22\x73\x68\x6f\x77\x22\x3f\x22\x68\x69\x64\x65\x22\x3a\x22\
-\x73\x68\x6f\x77\x22\x29\x2c\x6a\x5b\x6f\x5d\x28\x29\x29\x3a\x6a\
-\x5b\x68\x5d\x28\x29\x29\x3a\x28\x6b\x3d\x63\x6f\x2e\x65\x78\x65\
-\x63\x28\x68\x29\x2c\x6c\x3d\x6a\x2e\x63\x75\x72\x28\x29\x2c\x6b\
-\x3f\x28\x6d\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x6b\
-\x5b\x32\x5d\x29\x2c\x6e\x3d\x6b\x5b\x33\x5d\x7c\x7c\x28\x66\x2e\
-\x63\x73\x73\x4e\x75\x6d\x62\x65\x72\x5b\x69\x5d\x3f\x22\x22\x3a\
-\x22\x70\x78\x22\x29\x2c\x6e\x21\x3d\x3d\x22\x70\x78\x22\x26\x26\
-\x28\x66\x2e\x73\x74\x79\x6c\x65\x28\x74\x68\x69\x73\x2c\x69\x2c\
-\x28\x6d\x7c\x7c\x31\x29\x2b\x6e\x29\x2c\x6c\x3d\x28\x6d\x7c\x7c\
-\x31\x29\x2f\x6a\x2e\x63\x75\x72\x28\x29\x2a\x6c\x2c\x66\x2e\x73\
-\x74\x79\x6c\x65\x28\x74\x68\x69\x73\x2c\x69\x2c\x6c\x2b\x6e\x29\
-\x29\x2c\x6b\x5b\x31\x5d\x26\x26\x28\x6d\x3d\x28\x6b\x5b\x31\x5d\
-\x3d\x3d\x3d\x22\x2d\x3d\x22\x3f\x2d\x31\x3a\x31\x29\x2a\x6d\x2b\
-\x6c\x29\x2c\x6a\x2e\x63\x75\x73\x74\x6f\x6d\x28\x6c\x2c\x6d\x2c\
-\x6e\x29\x29\x3a\x6a\x2e\x63\x75\x73\x74\x6f\x6d\x28\x6c\x2c\x68\
-\x2c\x22\x22\x29\x29\x3b\x72\x65\x74\x75\x72\x6e\x21\x30\x7d\x76\
-\x61\x72\x20\x65\x3d\x66\x2e\x73\x70\x65\x65\x64\x28\x62\x2c\x63\
-\x2c\x64\x29\x3b\x69\x66\x28\x66\x2e\x69\x73\x45\x6d\x70\x74\x79\
-\x4f\x62\x6a\x65\x63\x74\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\
-\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x65\x2e\x63\x6f\x6d\
-\x70\x6c\x65\x74\x65\x2c\x5b\x21\x31\x5d\x29\x3b\x61\x3d\x66\x2e\
-\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\x61\x29\x3b\x72\x65\x74\
-\x75\x72\x6e\x20\x65\x2e\x71\x75\x65\x75\x65\x3d\x3d\x3d\x21\x31\
-\x3f\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x67\x29\x3a\x74\x68\
-\x69\x73\x2e\x71\x75\x65\x75\x65\x28\x65\x2e\x71\x75\x65\x75\x65\
-\x2c\x67\x29\x7d\x2c\x73\x74\x6f\x70\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x2c\x63\x2c\x64\x29\x7b\x74\x79\x70\x65\x6f\x66\
-\x20\x61\x21\x3d\x22\x73\x74\x72\x69\x6e\x67\x22\x26\x26\x28\x64\
-\x3d\x63\x2c\x63\x3d\x61\x2c\x61\x3d\x62\x29\x2c\x63\x26\x26\x61\
-\x21\x3d\x3d\x21\x31\x26\x26\x74\x68\x69\x73\x2e\x71\x75\x65\x75\
-\x65\x28\x61\x7c\x7c\x22\x66\x78\x22\x2c\x5b\x5d\x29\x3b\x72\x65\
-\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\x28\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x20\x68\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\
-\x65\x3d\x62\x5b\x63\x5d\x3b\x66\x2e\x72\x65\x6d\x6f\x76\x65\x44\
-\x61\x74\x61\x28\x61\x2c\x63\x2c\x21\x30\x29\x2c\x65\x2e\x73\x74\
-\x6f\x70\x28\x64\x29\x7d\x76\x61\x72\x20\x62\x2c\x63\x3d\x21\x31\
-\x2c\x65\x3d\x66\x2e\x74\x69\x6d\x65\x72\x73\x2c\x67\x3d\x66\x2e\
-\x5f\x64\x61\x74\x61\x28\x74\x68\x69\x73\x29\x3b\x64\x7c\x7c\x66\
-\x2e\x5f\x75\x6e\x6d\x61\x72\x6b\x28\x21\x30\x2c\x74\x68\x69\x73\
-\x29\x3b\x69\x66\x28\x61\x3d\x3d\x6e\x75\x6c\x6c\x29\x66\x6f\x72\
-\x28\x62\x20\x69\x6e\x20\x67\x29\x67\x5b\x62\x5d\x26\x26\x67\x5b\
-\x62\x5d\x2e\x73\x74\x6f\x70\x26\x26\x62\x2e\x69\x6e\x64\x65\x78\
-\x4f\x66\x28\x22\x2e\x72\x75\x6e\x22\x29\x3d\x3d\x3d\x62\x2e\x6c\
-\x65\x6e\x67\x74\x68\x2d\x34\x26\x26\x68\x28\x74\x68\x69\x73\x2c\
-\x67\x2c\x62\x29\x3b\x65\x6c\x73\x65\x20\x67\x5b\x62\x3d\x61\x2b\
-\x22\x2e\x72\x75\x6e\x22\x5d\x26\x26\x67\x5b\x62\x5d\x2e\x73\x74\
-\x6f\x70\x26\x26\x68\x28\x74\x68\x69\x73\x2c\x67\x2c\x62\x29\x3b\
-\x66\x6f\x72\x28\x62\x3d\x65\x2e\x6c\x65\x6e\x67\x74\x68\x3b\x62\
-\x2d\x2d\x3b\x29\x65\x5b\x62\x5d\x2e\x65\x6c\x65\x6d\x3d\x3d\x3d\
-\x74\x68\x69\x73\x26\x26\x28\x61\x3d\x3d\x6e\x75\x6c\x6c\x7c\x7c\
-\x65\x5b\x62\x5d\x2e\x71\x75\x65\x75\x65\x3d\x3d\x3d\x61\x29\x26\
-\x26\x28\x64\x3f\x65\x5b\x62\x5d\x28\x21\x30\x29\x3a\x65\x5b\x62\
-\x5d\x2e\x73\x61\x76\x65\x53\x74\x61\x74\x65\x28\x29\x2c\x63\x3d\
-\x21\x30\x2c\x65\x2e\x73\x70\x6c\x69\x63\x65\x28\x62\x2c\x31\x29\
-\x29\x3b\x28\x21\x64\x7c\x7c\x21\x63\x29\x26\x26\x66\x2e\x64\x65\
-\x71\x75\x65\x75\x65\x28\x74\x68\x69\x73\x2c\x61\x29\x7d\x29\x7d\
-\x7d\x29\x2c\x66\x2e\x65\x61\x63\x68\x28\x7b\x73\x6c\x69\x64\x65\
-\x44\x6f\x77\x6e\x3a\x63\x75\x28\x22\x73\x68\x6f\x77\x22\x2c\x31\
-\x29\x2c\x73\x6c\x69\x64\x65\x55\x70\x3a\x63\x75\x28\x22\x68\x69\
-\x64\x65\x22\x2c\x31\x29\x2c\x73\x6c\x69\x64\x65\x54\x6f\x67\x67\
-\x6c\x65\x3a\x63\x75\x28\x22\x74\x6f\x67\x67\x6c\x65\x22\x2c\x31\
-\x29\x2c\x66\x61\x64\x65\x49\x6e\x3a\x7b\x6f\x70\x61\x63\x69\x74\
-\x79\x3a\x22\x73\x68\x6f\x77\x22\x7d\x2c\x66\x61\x64\x65\x4f\x75\
-\x74\x3a\x7b\x6f\x70\x61\x63\x69\x74\x79\x3a\x22\x68\x69\x64\x65\
-\x22\x7d\x2c\x66\x61\x64\x65\x54\x6f\x67\x67\x6c\x65\x3a\x7b\x6f\
-\x70\x61\x63\x69\x74\x79\x3a\x22\x74\x6f\x67\x67\x6c\x65\x22\x7d\
-\x7d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\
-\x66\x2e\x66\x6e\x5b\x61\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x2c\x63\x2c\x64\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\
-\x68\x69\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x28\x62\x2c\x61\x2c\
-\x63\x2c\x64\x29\x7d\x7d\x29\x2c\x66\x2e\x65\x78\x74\x65\x6e\x64\
-\x28\x7b\x73\x70\x65\x65\x64\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x61\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x61\x26\
-\x26\x74\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x22\x6f\x62\x6a\x65\
-\x63\x74\x22\x3f\x66\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\x7d\x2c\
-\x61\x29\x3a\x7b\x63\x6f\x6d\x70\x6c\x65\x74\x65\x3a\x63\x7c\x7c\
-\x21\x63\x26\x26\x62\x7c\x7c\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x26\x26\x61\x2c\x64\x75\x72\x61\x74\x69\
-\x6f\x6e\x3a\x61\x2c\x65\x61\x73\x69\x6e\x67\x3a\x63\x26\x26\x62\
-\x7c\x7c\x62\x26\x26\x21\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x62\x29\x26\x26\x62\x7d\x3b\x64\x2e\x64\x75\x72\x61\
-\x74\x69\x6f\x6e\x3d\x66\x2e\x66\x78\x2e\x6f\x66\x66\x3f\x30\x3a\
-\x74\x79\x70\x65\x6f\x66\x20\x64\x2e\x64\x75\x72\x61\x74\x69\x6f\
-\x6e\x3d\x3d\x22\x6e\x75\x6d\x62\x65\x72\x22\x3f\x64\x2e\x64\x75\
-\x72\x61\x74\x69\x6f\x6e\x3a\x64\x2e\x64\x75\x72\x61\x74\x69\x6f\
-\x6e\x20\x69\x6e\x20\x66\x2e\x66\x78\x2e\x73\x70\x65\x65\x64\x73\
-\x3f\x66\x2e\x66\x78\x2e\x73\x70\x65\x65\x64\x73\x5b\x64\x2e\x64\
-\x75\x72\x61\x74\x69\x6f\x6e\x5d\x3a\x66\x2e\x66\x78\x2e\x73\x70\
-\x65\x65\x64\x73\x2e\x5f\x64\x65\x66\x61\x75\x6c\x74\x3b\x69\x66\
-\x28\x64\x2e\x71\x75\x65\x75\x65\x3d\x3d\x6e\x75\x6c\x6c\x7c\x7c\
-\x64\x2e\x71\x75\x65\x75\x65\x3d\x3d\x3d\x21\x30\x29\x64\x2e\x71\
-\x75\x65\x75\x65\x3d\x22\x66\x78\x22\x3b\x64\x2e\x6f\x6c\x64\x3d\
-\x64\x2e\x63\x6f\x6d\x70\x6c\x65\x74\x65\x2c\x64\x2e\x63\x6f\x6d\
-\x70\x6c\x65\x74\x65\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x29\x7b\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x64\
-\x2e\x6f\x6c\x64\x29\x26\x26\x64\x2e\x6f\x6c\x64\x2e\x63\x61\x6c\
-\x6c\x28\x74\x68\x69\x73\x29\x2c\x64\x2e\x71\x75\x65\x75\x65\x3f\
-\x66\x2e\x64\x65\x71\x75\x65\x75\x65\x28\x74\x68\x69\x73\x2c\x64\
-\x2e\x71\x75\x65\x75\x65\x29\x3a\x61\x21\x3d\x3d\x21\x31\x26\x26\
-\x66\x2e\x5f\x75\x6e\x6d\x61\x72\x6b\x28\x74\x68\x69\x73\x29\x7d\
-\x3b\x72\x65\x74\x75\x72\x6e\x20\x64\x7d\x2c\x65\x61\x73\x69\x6e\
-\x67\x3a\x7b\x6c\x69\x6e\x65\x61\x72\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\x29\x7b\x72\x65\x74\x75\
-\x72\x6e\x20\x63\x2b\x64\x2a\x61\x7d\x2c\x73\x77\x69\x6e\x67\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x62\x2c\x63\x2c\x64\
-\x29\x7b\x72\x65\x74\x75\x72\x6e\x28\x2d\x4d\x61\x74\x68\x2e\x63\
-\x6f\x73\x28\x61\x2a\x4d\x61\x74\x68\x2e\x50\x49\x29\x2f\x32\x2b\
-\x2e\x35\x29\x2a\x64\x2b\x63\x7d\x7d\x2c\x74\x69\x6d\x65\x72\x73\
-\x3a\x5b\x5d\x2c\x66\x78\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x2c\x62\x2c\x63\x29\x7b\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\
-\x6f\x6e\x73\x3d\x62\x2c\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x3d\
-\x61\x2c\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x3d\x63\x2c\x62\x2e\
-\x6f\x72\x69\x67\x3d\x62\x2e\x6f\x72\x69\x67\x7c\x7c\x7b\x7d\x7d\
-\x7d\x29\x2c\x66\x2e\x66\x78\x2e\x70\x72\x6f\x74\x6f\x74\x79\x70\
-\x65\x3d\x7b\x75\x70\x64\x61\x74\x65\x3a\x66\x75\x6e\x63\x74\x69\
-\x6f\x6e\x28\x29\x7b\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\
-\x73\x2e\x73\x74\x65\x70\x26\x26\x74\x68\x69\x73\x2e\x6f\x70\x74\
-\x69\x6f\x6e\x73\x2e\x73\x74\x65\x70\x2e\x63\x61\x6c\x6c\x28\x74\
-\x68\x69\x73\x2e\x65\x6c\x65\x6d\x2c\x74\x68\x69\x73\x2e\x6e\x6f\
-\x77\x2c\x74\x68\x69\x73\x29\x2c\x28\x66\x2e\x66\x78\x2e\x73\x74\
-\x65\x70\x5b\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x5d\x7c\x7c\x66\
-\x2e\x66\x78\x2e\x73\x74\x65\x70\x2e\x5f\x64\x65\x66\x61\x75\x6c\
-\x74\x29\x28\x74\x68\x69\x73\x29\x7d\x2c\x63\x75\x72\x3a\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x69\x66\x28\x74\x68\x69\x73\
-\x2e\x65\x6c\x65\x6d\x5b\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x5d\
-\x21\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x21\x74\x68\x69\x73\x2e\x65\
-\x6c\x65\x6d\x2e\x73\x74\x79\x6c\x65\x7c\x7c\x74\x68\x69\x73\x2e\
-\x65\x6c\x65\x6d\x2e\x73\x74\x79\x6c\x65\x5b\x74\x68\x69\x73\x2e\
-\x70\x72\x6f\x70\x5d\x3d\x3d\x6e\x75\x6c\x6c\x29\x29\x72\x65\x74\
-\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x5b\x74\x68\
-\x69\x73\x2e\x70\x72\x6f\x70\x5d\x3b\x76\x61\x72\x20\x61\x2c\x62\
-\x3d\x66\x2e\x63\x73\x73\x28\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\
-\x2c\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x29\x3b\x72\x65\x74\x75\
-\x72\x6e\x20\x69\x73\x4e\x61\x4e\x28\x61\x3d\x70\x61\x72\x73\x65\
-\x46\x6c\x6f\x61\x74\x28\x62\x29\x29\x3f\x21\x62\x7c\x7c\x62\x3d\
-\x3d\x3d\x22\x61\x75\x74\x6f\x22\x3f\x30\x3a\x62\x3a\x61\x7d\x2c\
-\x63\x75\x73\x74\x6f\x6d\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x61\x2c\x63\x2c\x64\x29\x7b\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\
-\x68\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x65\x2e\x73\x74\
-\x65\x70\x28\x61\x29\x7d\x76\x61\x72\x20\x65\x3d\x74\x68\x69\x73\
-\x2c\x67\x3d\x66\x2e\x66\x78\x3b\x74\x68\x69\x73\x2e\x73\x74\x61\
-\x72\x74\x54\x69\x6d\x65\x3d\x63\x72\x7c\x7c\x63\x73\x28\x29\x2c\
-\x74\x68\x69\x73\x2e\x65\x6e\x64\x3d\x63\x2c\x74\x68\x69\x73\x2e\
-\x6e\x6f\x77\x3d\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x3d\x61\
-\x2c\x74\x68\x69\x73\x2e\x70\x6f\x73\x3d\x74\x68\x69\x73\x2e\x73\
-\x74\x61\x74\x65\x3d\x30\x2c\x74\x68\x69\x73\x2e\x75\x6e\x69\x74\
-\x3d\x64\x7c\x7c\x74\x68\x69\x73\x2e\x75\x6e\x69\x74\x7c\x7c\x28\
-\x66\x2e\x63\x73\x73\x4e\x75\x6d\x62\x65\x72\x5b\x74\x68\x69\x73\
-\x2e\x70\x72\x6f\x70\x5d\x3f\x22\x22\x3a\x22\x70\x78\x22\x29\x2c\
-\x68\x2e\x71\x75\x65\x75\x65\x3d\x74\x68\x69\x73\x2e\x6f\x70\x74\
-\x69\x6f\x6e\x73\x2e\x71\x75\x65\x75\x65\x2c\x68\x2e\x65\x6c\x65\
-\x6d\x3d\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x2c\x68\x2e\x73\x61\
-\x76\x65\x53\x74\x61\x74\x65\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x29\x7b\x65\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x68\x69\x64\
-\x65\x26\x26\x66\x2e\x5f\x64\x61\x74\x61\x28\x65\x2e\x65\x6c\x65\
-\x6d\x2c\x22\x66\x78\x73\x68\x6f\x77\x22\x2b\x65\x2e\x70\x72\x6f\
-\x70\x29\x3d\x3d\x3d\x62\x26\x26\x66\x2e\x5f\x64\x61\x74\x61\x28\
-\x65\x2e\x65\x6c\x65\x6d\x2c\x22\x66\x78\x73\x68\x6f\x77\x22\x2b\
-\x65\x2e\x70\x72\x6f\x70\x2c\x65\x2e\x73\x74\x61\x72\x74\x29\x7d\
-\x2c\x68\x28\x29\x26\x26\x66\x2e\x74\x69\x6d\x65\x72\x73\x2e\x70\
-\x75\x73\x68\x28\x68\x29\x26\x26\x21\x63\x70\x26\x26\x28\x63\x70\
-\x3d\x73\x65\x74\x49\x6e\x74\x65\x72\x76\x61\x6c\x28\x67\x2e\x74\
-\x69\x63\x6b\x2c\x67\x2e\x69\x6e\x74\x65\x72\x76\x61\x6c\x29\x29\
-\x7d\x2c\x73\x68\x6f\x77\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x29\x7b\x76\x61\x72\x20\x61\x3d\x66\x2e\x5f\x64\x61\x74\x61\x28\
-\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x2c\x22\x66\x78\x73\x68\x6f\
-\x77\x22\x2b\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x29\x3b\x74\x68\
-\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6f\x72\x69\x67\x5b\
-\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x5d\x3d\x61\x7c\x7c\x66\x2e\
-\x73\x74\x79\x6c\x65\x28\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x2c\
-\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x29\x2c\x74\x68\x69\x73\x2e\
-\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x73\x68\x6f\x77\x3d\x21\x30\x2c\
-\x61\x21\x3d\x3d\x62\x3f\x74\x68\x69\x73\x2e\x63\x75\x73\x74\x6f\
-\x6d\x28\x74\x68\x69\x73\x2e\x63\x75\x72\x28\x29\x2c\x61\x29\x3a\
-\x74\x68\x69\x73\x2e\x63\x75\x73\x74\x6f\x6d\x28\x74\x68\x69\x73\
-\x2e\x70\x72\x6f\x70\x3d\x3d\x3d\x22\x77\x69\x64\x74\x68\x22\x7c\
-\x7c\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x3d\x3d\x3d\x22\x68\x65\
-\x69\x67\x68\x74\x22\x3f\x31\x3a\x30\x2c\x74\x68\x69\x73\x2e\x63\
-\x75\x72\x28\x29\x29\x2c\x66\x28\x74\x68\x69\x73\x2e\x65\x6c\x65\
-\x6d\x29\x2e\x73\x68\x6f\x77\x28\x29\x7d\x2c\x68\x69\x64\x65\x3a\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x74\x68\x69\x73\x2e\
-\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x6f\x72\x69\x67\x5b\x74\x68\x69\
-\x73\x2e\x70\x72\x6f\x70\x5d\x3d\x66\x2e\x5f\x64\x61\x74\x61\x28\
-\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\x2c\x22\x66\x78\x73\x68\x6f\
-\x77\x22\x2b\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x29\x7c\x7c\x66\
-\x2e\x73\x74\x79\x6c\x65\x28\x74\x68\x69\x73\x2e\x65\x6c\x65\x6d\
-\x2c\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x29\x2c\x74\x68\x69\x73\
-\x2e\x6f\x70\x74\x69\x6f\x6e\x73\x2e\x68\x69\x64\x65\x3d\x21\x30\
-\x2c\x74\x68\x69\x73\x2e\x63\x75\x73\x74\x6f\x6d\x28\x74\x68\x69\
-\x73\x2e\x63\x75\x72\x28\x29\x2c\x30\x29\x7d\x2c\x73\x74\x65\x70\
-\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\
-\x20\x62\x2c\x63\x2c\x64\x2c\x65\x3d\x63\x72\x7c\x7c\x63\x73\x28\
-\x29\x2c\x67\x3d\x21\x30\x2c\x68\x3d\x74\x68\x69\x73\x2e\x65\x6c\
-\x65\x6d\x2c\x69\x3d\x74\x68\x69\x73\x2e\x6f\x70\x74\x69\x6f\x6e\
-\x73\x3b\x69\x66\x28\x61\x7c\x7c\x65\x3e\x3d\x69\x2e\x64\x75\x72\
-\x61\x74\x69\x6f\x6e\x2b\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\
-\x54\x69\x6d\x65\x29\x7b\x74\x68\x69\x73\x2e\x6e\x6f\x77\x3d\x74\
-\x68\x69\x73\x2e\x65\x6e\x64\x2c\x74\x68\x69\x73\x2e\x70\x6f\x73\
-\x3d\x74\x68\x69\x73\x2e\x73\x74\x61\x74\x65\x3d\x31\x2c\x74\x68\
-\x69\x73\x2e\x75\x70\x64\x61\x74\x65\x28\x29\x2c\x69\x2e\x61\x6e\
-\x69\x6d\x61\x74\x65\x64\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\
-\x5b\x74\x68\x69\x73\x2e\x70\x72\x6f\x70\x5d\x3d\x21\x30\x3b\x66\
-\x6f\x72\x28\x62\x20\x69\x6e\x20\x69\x2e\x61\x6e\x69\x6d\x61\x74\
-\x65\x64\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x29\x69\x2e\x61\
-\x6e\x69\x6d\x61\x74\x65\x64\x50\x72\x6f\x70\x65\x72\x74\x69\x65\
-\x73\x5b\x62\x5d\x21\x3d\x3d\x21\x30\x26\x26\x28\x67\x3d\x21\x31\
-\x29\x3b\x69\x66\x28\x67\x29\x7b\x69\x2e\x6f\x76\x65\x72\x66\x6c\
-\x6f\x77\x21\x3d\x6e\x75\x6c\x6c\x26\x26\x21\x66\x2e\x73\x75\x70\
-\x70\x6f\x72\x74\x2e\x73\x68\x72\x69\x6e\x6b\x57\x72\x61\x70\x42\
-\x6c\x6f\x63\x6b\x73\x26\x26\x66\x2e\x65\x61\x63\x68\x28\x5b\x22\
-\x22\x2c\x22\x58\x22\x2c\x22\x59\x22\x5d\x2c\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x2c\x62\x29\x7b\x68\x2e\x73\x74\x79\x6c\x65\
-\x5b\x22\x6f\x76\x65\x72\x66\x6c\x6f\x77\x22\x2b\x62\x5d\x3d\x69\
-\x2e\x6f\x76\x65\x72\x66\x6c\x6f\x77\x5b\x61\x5d\x7d\x29\x2c\x69\
-\x2e\x68\x69\x64\x65\x26\x26\x66\x28\x68\x29\x2e\x68\x69\x64\x65\
-\x28\x29\x3b\x69\x66\x28\x69\x2e\x68\x69\x64\x65\x7c\x7c\x69\x2e\
-\x73\x68\x6f\x77\x29\x66\x6f\x72\x28\x62\x20\x69\x6e\x20\x69\x2e\
-\x61\x6e\x69\x6d\x61\x74\x65\x64\x50\x72\x6f\x70\x65\x72\x74\x69\
-\x65\x73\x29\x66\x2e\x73\x74\x79\x6c\x65\x28\x68\x2c\x62\x2c\x69\
-\x2e\x6f\x72\x69\x67\x5b\x62\x5d\x29\x2c\x66\x2e\x72\x65\x6d\x6f\
-\x76\x65\x44\x61\x74\x61\x28\x68\x2c\x22\x66\x78\x73\x68\x6f\x77\
-\x22\x2b\x62\x2c\x21\x30\x29\x2c\x66\x2e\x72\x65\x6d\x6f\x76\x65\
-\x44\x61\x74\x61\x28\x68\x2c\x22\x74\x6f\x67\x67\x6c\x65\x22\x2b\
-\x62\x2c\x21\x30\x29\x3b\x64\x3d\x69\x2e\x63\x6f\x6d\x70\x6c\x65\
-\x74\x65\x2c\x64\x26\x26\x28\x69\x2e\x63\x6f\x6d\x70\x6c\x65\x74\
-\x65\x3d\x21\x31\x2c\x64\x2e\x63\x61\x6c\x6c\x28\x68\x29\x29\x7d\
-\x72\x65\x74\x75\x72\x6e\x21\x31\x7d\x69\x2e\x64\x75\x72\x61\x74\
-\x69\x6f\x6e\x3d\x3d\x49\x6e\x66\x69\x6e\x69\x74\x79\x3f\x74\x68\
-\x69\x73\x2e\x6e\x6f\x77\x3d\x65\x3a\x28\x63\x3d\x65\x2d\x74\x68\
-\x69\x73\x2e\x73\x74\x61\x72\x74\x54\x69\x6d\x65\x2c\x74\x68\x69\
-\x73\x2e\x73\x74\x61\x74\x65\x3d\x63\x2f\x69\x2e\x64\x75\x72\x61\
-\x74\x69\x6f\x6e\x2c\x74\x68\x69\x73\x2e\x70\x6f\x73\x3d\x66\x2e\
-\x65\x61\x73\x69\x6e\x67\x5b\x69\x2e\x61\x6e\x69\x6d\x61\x74\x65\
-\x64\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73\x5b\x74\x68\x69\x73\
-\x2e\x70\x72\x6f\x70\x5d\x5d\x28\x74\x68\x69\x73\x2e\x73\x74\x61\
-\x74\x65\x2c\x63\x2c\x30\x2c\x31\x2c\x69\x2e\x64\x75\x72\x61\x74\
-\x69\x6f\x6e\x29\x2c\x74\x68\x69\x73\x2e\x6e\x6f\x77\x3d\x74\x68\
-\x69\x73\x2e\x73\x74\x61\x72\x74\x2b\x28\x74\x68\x69\x73\x2e\x65\
-\x6e\x64\x2d\x74\x68\x69\x73\x2e\x73\x74\x61\x72\x74\x29\x2a\x74\
-\x68\x69\x73\x2e\x70\x6f\x73\x29\x2c\x74\x68\x69\x73\x2e\x75\x70\
-\x64\x61\x74\x65\x28\x29\x3b\x72\x65\x74\x75\x72\x6e\x21\x30\x7d\
-\x7d\x2c\x66\x2e\x65\x78\x74\x65\x6e\x64\x28\x66\x2e\x66\x78\x2c\
-\x7b\x74\x69\x63\x6b\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\
-\x7b\x76\x61\x72\x20\x61\x2c\x62\x3d\x66\x2e\x74\x69\x6d\x65\x72\
-\x73\x2c\x63\x3d\x30\x3b\x66\x6f\x72\x28\x3b\x63\x3c\x62\x2e\x6c\
-\x65\x6e\x67\x74\x68\x3b\x63\x2b\x2b\x29\x61\x3d\x62\x5b\x63\x5d\
-\x2c\x21\x61\x28\x29\x26\x26\x62\x5b\x63\x5d\x3d\x3d\x3d\x61\x26\
-\x26\x62\x2e\x73\x70\x6c\x69\x63\x65\x28\x63\x2d\x2d\x2c\x31\x29\
-\x3b\x62\x2e\x6c\x65\x6e\x67\x74\x68\x7c\x7c\x66\x2e\x66\x78\x2e\
-\x73\x74\x6f\x70\x28\x29\x7d\x2c\x69\x6e\x74\x65\x72\x76\x61\x6c\
-\x3a\x31\x33\x2c\x73\x74\x6f\x70\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x29\x7b\x63\x6c\x65\x61\x72\x49\x6e\x74\x65\x72\x76\x61\
-\x6c\x28\x63\x70\x29\x2c\x63\x70\x3d\x6e\x75\x6c\x6c\x7d\x2c\x73\
-\x70\x65\x65\x64\x73\x3a\x7b\x73\x6c\x6f\x77\x3a\x36\x30\x30\x2c\
-\x66\x61\x73\x74\x3a\x32\x30\x30\x2c\x5f\x64\x65\x66\x61\x75\x6c\
-\x74\x3a\x34\x30\x30\x7d\x2c\x73\x74\x65\x70\x3a\x7b\x6f\x70\x61\
-\x63\x69\x74\x79\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\
-\x7b\x66\x2e\x73\x74\x79\x6c\x65\x28\x61\x2e\x65\x6c\x65\x6d\x2c\
-\x22\x6f\x70\x61\x63\x69\x74\x79\x22\x2c\x61\x2e\x6e\x6f\x77\x29\
-\x7d\x2c\x5f\x64\x65\x66\x61\x75\x6c\x74\x3a\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x7b\x61\x2e\x65\x6c\x65\x6d\x2e\x73\x74\
-\x79\x6c\x65\x26\x26\x61\x2e\x65\x6c\x65\x6d\x2e\x73\x74\x79\x6c\
-\x65\x5b\x61\x2e\x70\x72\x6f\x70\x5d\x21\x3d\x6e\x75\x6c\x6c\x3f\
-\x61\x2e\x65\x6c\x65\x6d\x2e\x73\x74\x79\x6c\x65\x5b\x61\x2e\x70\
-\x72\x6f\x70\x5d\x3d\x61\x2e\x6e\x6f\x77\x2b\x61\x2e\x75\x6e\x69\
-\x74\x3a\x61\x2e\x65\x6c\x65\x6d\x5b\x61\x2e\x70\x72\x6f\x70\x5d\
-\x3d\x61\x2e\x6e\x6f\x77\x7d\x7d\x7d\x29\x2c\x66\x2e\x65\x61\x63\
-\x68\x28\x5b\x22\x77\x69\x64\x74\x68\x22\x2c\x22\x68\x65\x69\x67\
-\x68\x74\x22\x5d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\
-\x62\x29\x7b\x66\x2e\x66\x78\x2e\x73\x74\x65\x70\x5b\x62\x5d\x3d\
-\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x66\x2e\x73\x74\
-\x79\x6c\x65\x28\x61\x2e\x65\x6c\x65\x6d\x2c\x62\x2c\x4d\x61\x74\
-\x68\x2e\x6d\x61\x78\x28\x30\x2c\x61\x2e\x6e\x6f\x77\x29\x2b\x61\
-\x2e\x75\x6e\x69\x74\x29\x7d\x7d\x29\x2c\x66\x2e\x65\x78\x70\x72\
-\x26\x26\x66\x2e\x65\x78\x70\x72\x2e\x66\x69\x6c\x74\x65\x72\x73\
-\x26\x26\x28\x66\x2e\x65\x78\x70\x72\x2e\x66\x69\x6c\x74\x65\x72\
-\x73\x2e\x61\x6e\x69\x6d\x61\x74\x65\x64\x3d\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\
-\x67\x72\x65\x70\x28\x66\x2e\x74\x69\x6d\x65\x72\x73\x2c\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x72\x65\x74\x75\x72\x6e\
-\x20\x61\x3d\x3d\x3d\x62\x2e\x65\x6c\x65\x6d\x7d\x29\x2e\x6c\x65\
-\x6e\x67\x74\x68\x7d\x29\x3b\x76\x61\x72\x20\x63\x77\x3d\x2f\x5e\
-\x74\x28\x3f\x3a\x61\x62\x6c\x65\x7c\x64\x7c\x68\x29\x24\x2f\x69\
-\x2c\x63\x78\x3d\x2f\x5e\x28\x3f\x3a\x62\x6f\x64\x79\x7c\x68\x74\
-\x6d\x6c\x29\x24\x2f\x69\x3b\x22\x67\x65\x74\x42\x6f\x75\x6e\x64\
-\x69\x6e\x67\x43\x6c\x69\x65\x6e\x74\x52\x65\x63\x74\x22\x69\x6e\
-\x20\x63\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\
-\x6e\x74\x3f\x66\x2e\x66\x6e\x2e\x6f\x66\x66\x73\x65\x74\x3d\x66\
-\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\
-\x3d\x74\x68\x69\x73\x5b\x30\x5d\x2c\x63\x3b\x69\x66\x28\x61\x29\
-\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\x68\
-\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x66\x2e\x6f\
-\x66\x66\x73\x65\x74\x2e\x73\x65\x74\x4f\x66\x66\x73\x65\x74\x28\
-\x74\x68\x69\x73\x2c\x61\x2c\x62\x29\x7d\x29\x3b\x69\x66\x28\x21\
-\x62\x7c\x7c\x21\x62\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\x6d\
-\x65\x6e\x74\x29\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\
-\x69\x66\x28\x62\x3d\x3d\x3d\x62\x2e\x6f\x77\x6e\x65\x72\x44\x6f\
-\x63\x75\x6d\x65\x6e\x74\x2e\x62\x6f\x64\x79\x29\x72\x65\x74\x75\
-\x72\x6e\x20\x66\x2e\x6f\x66\x66\x73\x65\x74\x2e\x62\x6f\x64\x79\
-\x4f\x66\x66\x73\x65\x74\x28\x62\x29\x3b\x74\x72\x79\x7b\x63\x3d\
-\x62\x2e\x67\x65\x74\x42\x6f\x75\x6e\x64\x69\x6e\x67\x43\x6c\x69\
-\x65\x6e\x74\x52\x65\x63\x74\x28\x29\x7d\x63\x61\x74\x63\x68\x28\
-\x64\x29\x7b\x7d\x76\x61\x72\x20\x65\x3d\x62\x2e\x6f\x77\x6e\x65\
-\x72\x44\x6f\x63\x75\x6d\x65\x6e\x74\x2c\x67\x3d\x65\x2e\x64\x6f\
-\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x3b\x69\x66\
-\x28\x21\x63\x7c\x7c\x21\x66\x2e\x63\x6f\x6e\x74\x61\x69\x6e\x73\
-\x28\x67\x2c\x62\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x63\x3f\x7b\
-\x74\x6f\x70\x3a\x63\x2e\x74\x6f\x70\x2c\x6c\x65\x66\x74\x3a\x63\
-\x2e\x6c\x65\x66\x74\x7d\x3a\x7b\x74\x6f\x70\x3a\x30\x2c\x6c\x65\
-\x66\x74\x3a\x30\x7d\x3b\x76\x61\x72\x20\x68\x3d\x65\x2e\x62\x6f\
-\x64\x79\x2c\x69\x3d\x63\x79\x28\x65\x29\x2c\x6a\x3d\x67\x2e\x63\
-\x6c\x69\x65\x6e\x74\x54\x6f\x70\x7c\x7c\x68\x2e\x63\x6c\x69\x65\
-\x6e\x74\x54\x6f\x70\x7c\x7c\x30\x2c\x6b\x3d\x67\x2e\x63\x6c\x69\
-\x65\x6e\x74\x4c\x65\x66\x74\x7c\x7c\x68\x2e\x63\x6c\x69\x65\x6e\
-\x74\x4c\x65\x66\x74\x7c\x7c\x30\x2c\x6c\x3d\x69\x2e\x70\x61\x67\
-\x65\x59\x4f\x66\x66\x73\x65\x74\x7c\x7c\x66\x2e\x73\x75\x70\x70\
-\x6f\x72\x74\x2e\x62\x6f\x78\x4d\x6f\x64\x65\x6c\x26\x26\x67\x2e\
-\x73\x63\x72\x6f\x6c\x6c\x54\x6f\x70\x7c\x7c\x68\x2e\x73\x63\x72\
-\x6f\x6c\x6c\x54\x6f\x70\x2c\x6d\x3d\x69\x2e\x70\x61\x67\x65\x58\
-\x4f\x66\x66\x73\x65\x74\x7c\x7c\x66\x2e\x73\x75\x70\x70\x6f\x72\
-\x74\x2e\x62\x6f\x78\x4d\x6f\x64\x65\x6c\x26\x26\x67\x2e\x73\x63\
-\x72\x6f\x6c\x6c\x4c\x65\x66\x74\x7c\x7c\x68\x2e\x73\x63\x72\x6f\
-\x6c\x6c\x4c\x65\x66\x74\x2c\x6e\x3d\x63\x2e\x74\x6f\x70\x2b\x6c\
-\x2d\x6a\x2c\x6f\x3d\x63\x2e\x6c\x65\x66\x74\x2b\x6d\x2d\x6b\x3b\
-\x72\x65\x74\x75\x72\x6e\x7b\x74\x6f\x70\x3a\x6e\x2c\x6c\x65\x66\
-\x74\x3a\x6f\x7d\x7d\x3a\x66\x2e\x66\x6e\x2e\x6f\x66\x66\x73\x65\
-\x74\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\
-\x72\x20\x62\x3d\x74\x68\x69\x73\x5b\x30\x5d\x3b\x69\x66\x28\x61\
-\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x65\x61\x63\
-\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x7b\x66\x2e\
-\x6f\x66\x66\x73\x65\x74\x2e\x73\x65\x74\x4f\x66\x66\x73\x65\x74\
-\x28\x74\x68\x69\x73\x2c\x61\x2c\x62\x29\x7d\x29\x3b\x69\x66\x28\
-\x21\x62\x7c\x7c\x21\x62\x2e\x6f\x77\x6e\x65\x72\x44\x6f\x63\x75\
-\x6d\x65\x6e\x74\x29\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\
-\x3b\x69\x66\x28\x62\x3d\x3d\x3d\x62\x2e\x6f\x77\x6e\x65\x72\x44\
-\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x62\x6f\x64\x79\x29\x72\x65\x74\
-\x75\x72\x6e\x20\x66\x2e\x6f\x66\x66\x73\x65\x74\x2e\x62\x6f\x64\
-\x79\x4f\x66\x66\x73\x65\x74\x28\x62\x29\x3b\x76\x61\x72\x20\x63\
-\x2c\x64\x3d\x62\x2e\x6f\x66\x66\x73\x65\x74\x50\x61\x72\x65\x6e\
-\x74\x2c\x65\x3d\x62\x2c\x67\x3d\x62\x2e\x6f\x77\x6e\x65\x72\x44\
-\x6f\x63\x75\x6d\x65\x6e\x74\x2c\x68\x3d\x67\x2e\x64\x6f\x63\x75\
-\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x2c\x69\x3d\x67\x2e\
-\x62\x6f\x64\x79\x2c\x6a\x3d\x67\x2e\x64\x65\x66\x61\x75\x6c\x74\
-\x56\x69\x65\x77\x2c\x6b\x3d\x6a\x3f\x6a\x2e\x67\x65\x74\x43\x6f\
-\x6d\x70\x75\x74\x65\x64\x53\x74\x79\x6c\x65\x28\x62\x2c\x6e\x75\
-\x6c\x6c\x29\x3a\x62\x2e\x63\x75\x72\x72\x65\x6e\x74\x53\x74\x79\
-\x6c\x65\x2c\x6c\x3d\x62\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\
-\x2c\x6d\x3d\x62\x2e\x6f\x66\x66\x73\x65\x74\x4c\x65\x66\x74\x3b\
-\x77\x68\x69\x6c\x65\x28\x28\x62\x3d\x62\x2e\x70\x61\x72\x65\x6e\
-\x74\x4e\x6f\x64\x65\x29\x26\x26\x62\x21\x3d\x3d\x69\x26\x26\x62\
-\x21\x3d\x3d\x68\x29\x7b\x69\x66\x28\x66\x2e\x73\x75\x70\x70\x6f\
-\x72\x74\x2e\x66\x69\x78\x65\x64\x50\x6f\x73\x69\x74\x69\x6f\x6e\
-\x26\x26\x6b\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x3d\x3d\x22\
-\x66\x69\x78\x65\x64\x22\x29\x62\x72\x65\x61\x6b\x3b\x63\x3d\x6a\
-\x3f\x6a\x2e\x67\x65\x74\x43\x6f\x6d\x70\x75\x74\x65\x64\x53\x74\
-\x79\x6c\x65\x28\x62\x2c\x6e\x75\x6c\x6c\x29\x3a\x62\x2e\x63\x75\
-\x72\x72\x65\x6e\x74\x53\x74\x79\x6c\x65\x2c\x6c\x2d\x3d\x62\x2e\
-\x73\x63\x72\x6f\x6c\x6c\x54\x6f\x70\x2c\x6d\x2d\x3d\x62\x2e\x73\
-\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74\x2c\x62\x3d\x3d\x3d\x64\x26\
-\x26\x28\x6c\x2b\x3d\x62\x2e\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\
-\x2c\x6d\x2b\x3d\x62\x2e\x6f\x66\x66\x73\x65\x74\x4c\x65\x66\x74\
-\x2c\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x64\x6f\x65\x73\x4e\
-\x6f\x74\x41\x64\x64\x42\x6f\x72\x64\x65\x72\x26\x26\x28\x21\x66\
-\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x64\x6f\x65\x73\x41\x64\x64\
-\x42\x6f\x72\x64\x65\x72\x46\x6f\x72\x54\x61\x62\x6c\x65\x41\x6e\
-\x64\x43\x65\x6c\x6c\x73\x7c\x7c\x21\x63\x77\x2e\x74\x65\x73\x74\
-\x28\x62\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x29\x26\x26\x28\
-\x6c\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x63\x2e\
-\x62\x6f\x72\x64\x65\x72\x54\x6f\x70\x57\x69\x64\x74\x68\x29\x7c\
-\x7c\x30\x2c\x6d\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\
-\x28\x63\x2e\x62\x6f\x72\x64\x65\x72\x4c\x65\x66\x74\x57\x69\x64\
-\x74\x68\x29\x7c\x7c\x30\x29\x2c\x65\x3d\x64\x2c\x64\x3d\x62\x2e\
-\x6f\x66\x66\x73\x65\x74\x50\x61\x72\x65\x6e\x74\x29\x2c\x66\x2e\
-\x73\x75\x70\x70\x6f\x72\x74\x2e\x73\x75\x62\x74\x72\x61\x63\x74\
-\x73\x42\x6f\x72\x64\x65\x72\x46\x6f\x72\x4f\x76\x65\x72\x66\x6c\
-\x6f\x77\x4e\x6f\x74\x56\x69\x73\x69\x62\x6c\x65\x26\x26\x63\x2e\
-\x6f\x76\x65\x72\x66\x6c\x6f\x77\x21\x3d\x3d\x22\x76\x69\x73\x69\
-\x62\x6c\x65\x22\x26\x26\x28\x6c\x2b\x3d\x70\x61\x72\x73\x65\x46\
-\x6c\x6f\x61\x74\x28\x63\x2e\x62\x6f\x72\x64\x65\x72\x54\x6f\x70\
-\x57\x69\x64\x74\x68\x29\x7c\x7c\x30\x2c\x6d\x2b\x3d\x70\x61\x72\
-\x73\x65\x46\x6c\x6f\x61\x74\x28\x63\x2e\x62\x6f\x72\x64\x65\x72\
-\x4c\x65\x66\x74\x57\x69\x64\x74\x68\x29\x7c\x7c\x30\x29\x2c\x6b\
-\x3d\x63\x7d\x69\x66\x28\x6b\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\
-\x3d\x3d\x3d\x22\x72\x65\x6c\x61\x74\x69\x76\x65\x22\x7c\x7c\x6b\
-\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x3d\x3d\x22\x73\x74\x61\
-\x74\x69\x63\x22\x29\x6c\x2b\x3d\x69\x2e\x6f\x66\x66\x73\x65\x74\
-\x54\x6f\x70\x2c\x6d\x2b\x3d\x69\x2e\x6f\x66\x66\x73\x65\x74\x4c\
-\x65\x66\x74\x3b\x66\x2e\x73\x75\x70\x70\x6f\x72\x74\x2e\x66\x69\
-\x78\x65\x64\x50\x6f\x73\x69\x74\x69\x6f\x6e\x26\x26\x6b\x2e\x70\
-\x6f\x73\x69\x74\x69\x6f\x6e\x3d\x3d\x3d\x22\x66\x69\x78\x65\x64\
-\x22\x26\x26\x28\x6c\x2b\x3d\x4d\x61\x74\x68\x2e\x6d\x61\x78\x28\
-\x68\x2e\x73\x63\x72\x6f\x6c\x6c\x54\x6f\x70\x2c\x69\x2e\x73\x63\
-\x72\x6f\x6c\x6c\x54\x6f\x70\x29\x2c\x6d\x2b\x3d\x4d\x61\x74\x68\
-\x2e\x6d\x61\x78\x28\x68\x2e\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\
-\x74\x2c\x69\x2e\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74\x29\x29\
-\x3b\x72\x65\x74\x75\x72\x6e\x7b\x74\x6f\x70\x3a\x6c\x2c\x6c\x65\
-\x66\x74\x3a\x6d\x7d\x7d\x2c\x66\x2e\x6f\x66\x66\x73\x65\x74\x3d\
-\x7b\x62\x6f\x64\x79\x4f\x66\x66\x73\x65\x74\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x61\x2e\
-\x6f\x66\x66\x73\x65\x74\x54\x6f\x70\x2c\x63\x3d\x61\x2e\x6f\x66\
-\x66\x73\x65\x74\x4c\x65\x66\x74\x3b\x66\x2e\x73\x75\x70\x70\x6f\
-\x72\x74\x2e\x64\x6f\x65\x73\x4e\x6f\x74\x49\x6e\x63\x6c\x75\x64\
-\x65\x4d\x61\x72\x67\x69\x6e\x49\x6e\x42\x6f\x64\x79\x4f\x66\x66\
-\x73\x65\x74\x26\x26\x28\x62\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\
-\x6f\x61\x74\x28\x66\x2e\x63\x73\x73\x28\x61\x2c\x22\x6d\x61\x72\
-\x67\x69\x6e\x54\x6f\x70\x22\x29\x29\x7c\x7c\x30\x2c\x63\x2b\x3d\
-\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x66\x2e\x63\x73\x73\
-\x28\x61\x2c\x22\x6d\x61\x72\x67\x69\x6e\x4c\x65\x66\x74\x22\x29\
-\x29\x7c\x7c\x30\x29\x3b\x72\x65\x74\x75\x72\x6e\x7b\x74\x6f\x70\
-\x3a\x62\x2c\x6c\x65\x66\x74\x3a\x63\x7d\x7d\x2c\x73\x65\x74\x4f\
-\x66\x66\x73\x65\x74\x3a\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\
-\x2c\x62\x2c\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x66\x2e\x63\x73\
-\x73\x28\x61\x2c\x22\x70\x6f\x73\x69\x74\x69\x6f\x6e\x22\x29\x3b\
-\x64\x3d\x3d\x3d\x22\x73\x74\x61\x74\x69\x63\x22\x26\x26\x28\x61\
-\x2e\x73\x74\x79\x6c\x65\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3d\
-\x22\x72\x65\x6c\x61\x74\x69\x76\x65\x22\x29\x3b\x76\x61\x72\x20\
-\x65\x3d\x66\x28\x61\x29\x2c\x67\x3d\x65\x2e\x6f\x66\x66\x73\x65\
-\x74\x28\x29\x2c\x68\x3d\x66\x2e\x63\x73\x73\x28\x61\x2c\x22\x74\
-\x6f\x70\x22\x29\x2c\x69\x3d\x66\x2e\x63\x73\x73\x28\x61\x2c\x22\
-\x6c\x65\x66\x74\x22\x29\x2c\x6a\x3d\x28\x64\x3d\x3d\x3d\x22\x61\
-\x62\x73\x6f\x6c\x75\x74\x65\x22\x7c\x7c\x64\x3d\x3d\x3d\x22\x66\
-\x69\x78\x65\x64\x22\x29\x26\x26\x66\x2e\x69\x6e\x41\x72\x72\x61\
-\x79\x28\x22\x61\x75\x74\x6f\x22\x2c\x5b\x68\x2c\x69\x5d\x29\x3e\
-\x2d\x31\x2c\x6b\x3d\x7b\x7d\x2c\x6c\x3d\x7b\x7d\x2c\x6d\x2c\x6e\
-\x3b\x6a\x3f\x28\x6c\x3d\x65\x2e\x70\x6f\x73\x69\x74\x69\x6f\x6e\
-\x28\x29\x2c\x6d\x3d\x6c\x2e\x74\x6f\x70\x2c\x6e\x3d\x6c\x2e\x6c\
-\x65\x66\x74\x29\x3a\x28\x6d\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\
-\x61\x74\x28\x68\x29\x7c\x7c\x30\x2c\x6e\x3d\x70\x61\x72\x73\x65\
-\x46\x6c\x6f\x61\x74\x28\x69\x29\x7c\x7c\x30\x29\x2c\x66\x2e\x69\
-\x73\x46\x75\x6e\x63\x74\x69\x6f\x6e\x28\x62\x29\x26\x26\x28\x62\
-\x3d\x62\x2e\x63\x61\x6c\x6c\x28\x61\x2c\x63\x2c\x67\x29\x29\x2c\
-\x62\x2e\x74\x6f\x70\x21\x3d\x6e\x75\x6c\x6c\x26\x26\x28\x6b\x2e\
-\x74\x6f\x70\x3d\x62\x2e\x74\x6f\x70\x2d\x67\x2e\x74\x6f\x70\x2b\
-\x6d\x29\x2c\x62\x2e\x6c\x65\x66\x74\x21\x3d\x6e\x75\x6c\x6c\x26\
-\x26\x28\x6b\x2e\x6c\x65\x66\x74\x3d\x62\x2e\x6c\x65\x66\x74\x2d\
-\x67\x2e\x6c\x65\x66\x74\x2b\x6e\x29\x2c\x22\x75\x73\x69\x6e\x67\
-\x22\x69\x6e\x20\x62\x3f\x62\x2e\x75\x73\x69\x6e\x67\x2e\x63\x61\
-\x6c\x6c\x28\x61\x2c\x6b\x29\x3a\x65\x2e\x63\x73\x73\x28\x6b\x29\
-\x7d\x7d\x2c\x66\x2e\x66\x6e\x2e\x65\x78\x74\x65\x6e\x64\x28\x7b\
-\x70\x6f\x73\x69\x74\x69\x6f\x6e\x3a\x66\x75\x6e\x63\x74\x69\x6f\
-\x6e\x28\x29\x7b\x69\x66\x28\x21\x74\x68\x69\x73\x5b\x30\x5d\x29\
-\x72\x65\x74\x75\x72\x6e\x20\x6e\x75\x6c\x6c\x3b\x76\x61\x72\x20\
-\x61\x3d\x74\x68\x69\x73\x5b\x30\x5d\x2c\x62\x3d\x74\x68\x69\x73\
-\x2e\x6f\x66\x66\x73\x65\x74\x50\x61\x72\x65\x6e\x74\x28\x29\x2c\
-\x63\x3d\x74\x68\x69\x73\x2e\x6f\x66\x66\x73\x65\x74\x28\x29\x2c\
-\x64\x3d\x63\x78\x2e\x74\x65\x73\x74\x28\x62\x5b\x30\x5d\x2e\x6e\
-\x6f\x64\x65\x4e\x61\x6d\x65\x29\x3f\x7b\x74\x6f\x70\x3a\x30\x2c\
-\x6c\x65\x66\x74\x3a\x30\x7d\x3a\x62\x2e\x6f\x66\x66\x73\x65\x74\
-\x28\x29\x3b\x63\x2e\x74\x6f\x70\x2d\x3d\x70\x61\x72\x73\x65\x46\
-\x6c\x6f\x61\x74\x28\x66\x2e\x63\x73\x73\x28\x61\x2c\x22\x6d\x61\
-\x72\x67\x69\x6e\x54\x6f\x70\x22\x29\x29\x7c\x7c\x30\x2c\x63\x2e\
-\x6c\x65\x66\x74\x2d\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\
-\x28\x66\x2e\x63\x73\x73\x28\x61\x2c\x22\x6d\x61\x72\x67\x69\x6e\
-\x4c\x65\x66\x74\x22\x29\x29\x7c\x7c\x30\x2c\x64\x2e\x74\x6f\x70\
-\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\x66\x2e\x63\
-\x73\x73\x28\x62\x5b\x30\x5d\x2c\x22\x62\x6f\x72\x64\x65\x72\x54\
-\x6f\x70\x57\x69\x64\x74\x68\x22\x29\x29\x7c\x7c\x30\x2c\x64\x2e\
-\x6c\x65\x66\x74\x2b\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\
-\x28\x66\x2e\x63\x73\x73\x28\x62\x5b\x30\x5d\x2c\x22\x62\x6f\x72\
-\x64\x65\x72\x4c\x65\x66\x74\x57\x69\x64\x74\x68\x22\x29\x29\x7c\
-\x7c\x30\x3b\x72\x65\x74\x75\x72\x6e\x7b\x74\x6f\x70\x3a\x63\x2e\
-\x74\x6f\x70\x2d\x64\x2e\x74\x6f\x70\x2c\x6c\x65\x66\x74\x3a\x63\
-\x2e\x6c\x65\x66\x74\x2d\x64\x2e\x6c\x65\x66\x74\x7d\x7d\x2c\x6f\
-\x66\x66\x73\x65\x74\x50\x61\x72\x65\x6e\x74\x3a\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x74\x68\
-\x69\x73\x2e\x6d\x61\x70\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\
-\x29\x7b\x76\x61\x72\x20\x61\x3d\x74\x68\x69\x73\x2e\x6f\x66\x66\
-\x73\x65\x74\x50\x61\x72\x65\x6e\x74\x7c\x7c\x63\x2e\x62\x6f\x64\
-\x79\x3b\x77\x68\x69\x6c\x65\x28\x61\x26\x26\x21\x63\x78\x2e\x74\
-\x65\x73\x74\x28\x61\x2e\x6e\x6f\x64\x65\x4e\x61\x6d\x65\x29\x26\
-\x26\x66\x2e\x63\x73\x73\x28\x61\x2c\x22\x70\x6f\x73\x69\x74\x69\
-\x6f\x6e\x22\x29\x3d\x3d\x3d\x22\x73\x74\x61\x74\x69\x63\x22\x29\
-\x61\x3d\x61\x2e\x6f\x66\x66\x73\x65\x74\x50\x61\x72\x65\x6e\x74\
-\x3b\x72\x65\x74\x75\x72\x6e\x20\x61\x7d\x29\x7d\x7d\x29\x2c\x66\
-\x2e\x65\x61\x63\x68\x28\x5b\x22\x4c\x65\x66\x74\x22\x2c\x22\x54\
-\x6f\x70\x22\x5d\x2c\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\
-\x63\x29\x7b\x76\x61\x72\x20\x64\x3d\x22\x73\x63\x72\x6f\x6c\x6c\
-\x22\x2b\x63\x3b\x66\x2e\x66\x6e\x5b\x64\x5d\x3d\x66\x75\x6e\x63\
-\x74\x69\x6f\x6e\x28\x63\x29\x7b\x76\x61\x72\x20\x65\x2c\x67\x3b\
-\x69\x66\x28\x63\x3d\x3d\x3d\x62\x29\x7b\x65\x3d\x74\x68\x69\x73\
-\x5b\x30\x5d\x3b\x69\x66\x28\x21\x65\x29\x72\x65\x74\x75\x72\x6e\
-\x20\x6e\x75\x6c\x6c\x3b\x67\x3d\x63\x79\x28\x65\x29\x3b\x72\x65\
-\x74\x75\x72\x6e\x20\x67\x3f\x22\x70\x61\x67\x65\x58\x4f\x66\x66\
-\x73\x65\x74\x22\x69\x6e\x20\x67\x3f\x67\x5b\x61\x3f\x22\x70\x61\
-\x67\x65\x59\x4f\x66\x66\x73\x65\x74\x22\x3a\x22\x70\x61\x67\x65\
-\x58\x4f\x66\x66\x73\x65\x74\x22\x5d\x3a\x66\x2e\x73\x75\x70\x70\
-\x6f\x72\x74\x2e\x62\x6f\x78\x4d\x6f\x64\x65\x6c\x26\x26\x67\x2e\
-\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x64\x6f\x63\x75\x6d\x65\x6e\
-\x74\x45\x6c\x65\x6d\x65\x6e\x74\x5b\x64\x5d\x7c\x7c\x67\x2e\x64\
-\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x62\x6f\x64\x79\x5b\x64\x5d\x3a\
-\x65\x5b\x64\x5d\x7d\x72\x65\x74\x75\x72\x6e\x20\x74\x68\x69\x73\
-\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\
-\x7b\x67\x3d\x63\x79\x28\x74\x68\x69\x73\x29\x2c\x67\x3f\x67\x2e\
-\x73\x63\x72\x6f\x6c\x6c\x54\x6f\x28\x61\x3f\x66\x28\x67\x29\x2e\
-\x73\x63\x72\x6f\x6c\x6c\x4c\x65\x66\x74\x28\x29\x3a\x63\x2c\x61\
-\x3f\x63\x3a\x66\x28\x67\x29\x2e\x73\x63\x72\x6f\x6c\x6c\x54\x6f\
-\x70\x28\x29\x29\x3a\x74\x68\x69\x73\x5b\x64\x5d\x3d\x63\x7d\x29\
-\x7d\x7d\x29\x2c\x66\x2e\x65\x61\x63\x68\x28\x5b\x22\x48\x65\x69\
-\x67\x68\x74\x22\x2c\x22\x57\x69\x64\x74\x68\x22\x5d\x2c\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x28\x61\x2c\x63\x29\x7b\x76\x61\x72\x20\
-\x64\x3d\x63\x2e\x74\x6f\x4c\x6f\x77\x65\x72\x43\x61\x73\x65\x28\
-\x29\x3b\x66\x2e\x66\x6e\x5b\x22\x69\x6e\x6e\x65\x72\x22\x2b\x63\
-\x5d\x3d\x66\x75\x6e\x63\x74\x69\x6f\x6e\x28\x29\x7b\x76\x61\x72\
-\x20\x61\x3d\x74\x68\x69\x73\x5b\x30\x5d\x3b\x72\x65\x74\x75\x72\
-\x6e\x20\x61\x3f\x61\x2e\x73\x74\x79\x6c\x65\x3f\x70\x61\x72\x73\
-\x65\x46\x6c\x6f\x61\x74\x28\x66\x2e\x63\x73\x73\x28\x61\x2c\x64\
-\x2c\x22\x70\x61\x64\x64\x69\x6e\x67\x22\x29\x29\x3a\x74\x68\x69\
-\x73\x5b\x64\x5d\x28\x29\x3a\x6e\x75\x6c\x6c\x7d\x2c\x66\x2e\x66\
-\x6e\x5b\x22\x6f\x75\x74\x65\x72\x22\x2b\x63\x5d\x3d\x66\x75\x6e\
-\x63\x74\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x62\x3d\x74\
-\x68\x69\x73\x5b\x30\x5d\x3b\x72\x65\x74\x75\x72\x6e\x20\x62\x3f\
-\x62\x2e\x73\x74\x79\x6c\x65\x3f\x70\x61\x72\x73\x65\x46\x6c\x6f\
-\x61\x74\x28\x66\x2e\x63\x73\x73\x28\x62\x2c\x64\x2c\x61\x3f\x22\
-\x6d\x61\x72\x67\x69\x6e\x22\x3a\x22\x62\x6f\x72\x64\x65\x72\x22\
-\x29\x29\x3a\x74\x68\x69\x73\x5b\x64\x5d\x28\x29\x3a\x6e\x75\x6c\
-\x6c\x7d\x2c\x66\x2e\x66\x6e\x5b\x64\x5d\x3d\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x7b\x76\x61\x72\x20\x65\x3d\x74\x68\x69\
-\x73\x5b\x30\x5d\x3b\x69\x66\x28\x21\x65\x29\x72\x65\x74\x75\x72\
-\x6e\x20\x61\x3d\x3d\x6e\x75\x6c\x6c\x3f\x6e\x75\x6c\x6c\x3a\x74\
-\x68\x69\x73\x3b\x69\x66\x28\x66\x2e\x69\x73\x46\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x61\x29\x29\x72\x65\x74\x75\x72\x6e\x20\x74\x68\
-\x69\x73\x2e\x65\x61\x63\x68\x28\x66\x75\x6e\x63\x74\x69\x6f\x6e\
-\x28\x62\x29\x7b\x76\x61\x72\x20\x63\x3d\x66\x28\x74\x68\x69\x73\
-\x29\x3b\x63\x5b\x64\x5d\x28\x61\x2e\x63\x61\x6c\x6c\x28\x74\x68\
-\x69\x73\x2c\x62\x2c\x63\x5b\x64\x5d\x28\x29\x29\x29\x7d\x29\x3b\
-\x69\x66\x28\x66\x2e\x69\x73\x57\x69\x6e\x64\x6f\x77\x28\x65\x29\
-\x29\x7b\x76\x61\x72\x20\x67\x3d\x65\x2e\x64\x6f\x63\x75\x6d\x65\
-\x6e\x74\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x45\x6c\x65\x6d\x65\
-\x6e\x74\x5b\x22\x63\x6c\x69\x65\x6e\x74\x22\x2b\x63\x5d\x2c\x68\
-\x3d\x65\x2e\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x62\x6f\x64\x79\
-\x3b\x72\x65\x74\x75\x72\x6e\x20\x65\x2e\x64\x6f\x63\x75\x6d\x65\
-\x6e\x74\x2e\x63\x6f\x6d\x70\x61\x74\x4d\x6f\x64\x65\x3d\x3d\x3d\
-\x22\x43\x53\x53\x31\x43\x6f\x6d\x70\x61\x74\x22\x26\x26\x67\x7c\
-\x7c\x68\x26\x26\x68\x5b\x22\x63\x6c\x69\x65\x6e\x74\x22\x2b\x63\
-\x5d\x7c\x7c\x67\x7d\x69\x66\x28\x65\x2e\x6e\x6f\x64\x65\x54\x79\
-\x70\x65\x3d\x3d\x3d\x39\x29\x72\x65\x74\x75\x72\x6e\x20\x4d\x61\
-\x74\x68\x2e\x6d\x61\x78\x28\x65\x2e\x64\x6f\x63\x75\x6d\x65\x6e\
-\x74\x45\x6c\x65\x6d\x65\x6e\x74\x5b\x22\x63\x6c\x69\x65\x6e\x74\
-\x22\x2b\x63\x5d\x2c\x65\x2e\x62\x6f\x64\x79\x5b\x22\x73\x63\x72\
-\x6f\x6c\x6c\x22\x2b\x63\x5d\x2c\x65\x2e\x64\x6f\x63\x75\x6d\x65\
-\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x5b\x22\x73\x63\x72\x6f\x6c\
-\x6c\x22\x2b\x63\x5d\x2c\x65\x2e\x62\x6f\x64\x79\x5b\x22\x6f\x66\
-\x66\x73\x65\x74\x22\x2b\x63\x5d\x2c\x65\x2e\x64\x6f\x63\x75\x6d\
-\x65\x6e\x74\x45\x6c\x65\x6d\x65\x6e\x74\x5b\x22\x6f\x66\x66\x73\
-\x65\x74\x22\x2b\x63\x5d\x29\x3b\x69\x66\x28\x61\x3d\x3d\x3d\x62\
-\x29\x7b\x76\x61\x72\x20\x69\x3d\x66\x2e\x63\x73\x73\x28\x65\x2c\
-\x64\x29\x2c\x6a\x3d\x70\x61\x72\x73\x65\x46\x6c\x6f\x61\x74\x28\
-\x69\x29\x3b\x72\x65\x74\x75\x72\x6e\x20\x66\x2e\x69\x73\x4e\x75\
-\x6d\x65\x72\x69\x63\x28\x6a\x29\x3f\x6a\x3a\x69\x7d\x72\x65\x74\
-\x75\x72\x6e\x20\x74\x68\x69\x73\x2e\x63\x73\x73\x28\x64\x2c\x74\
-\x79\x70\x65\x6f\x66\x20\x61\x3d\x3d\x22\x73\x74\x72\x69\x6e\x67\
-\x22\x3f\x61\x3a\x61\x2b\x22\x70\x78\x22\x29\x7d\x7d\x29\x2c\x61\
-\x2e\x6a\x51\x75\x65\x72\x79\x3d\x61\x2e\x24\x3d\x66\x2c\x74\x79\
-\x70\x65\x6f\x66\x20\x64\x65\x66\x69\x6e\x65\x3d\x3d\x22\x66\x75\
-\x6e\x63\x74\x69\x6f\x6e\x22\x26\x26\x64\x65\x66\x69\x6e\x65\x2e\
-\x61\x6d\x64\x26\x26\x64\x65\x66\x69\x6e\x65\x2e\x61\x6d\x64\x2e\
-\x6a\x51\x75\x65\x72\x79\x26\x26\x64\x65\x66\x69\x6e\x65\x28\x22\
-\x6a\x71\x75\x65\x72\x79\x22\x2c\x5b\x5d\x2c\x66\x75\x6e\x63\x74\
-\x69\x6f\x6e\x28\x29\x7b\x72\x65\x74\x75\x72\x6e\x20\x66\x7d\x29\
-\x7d\x29\x28\x77\x69\x6e\x64\x6f\x77\x29\x3b\
-"
-
-qt_resource_name = b"\
-\x00\x0a\
-\x08\x94\x81\xf4\
-\x00\x6a\
-\x00\x61\x00\x76\x00\x61\x00\x73\x00\x63\x00\x72\x00\x69\x00\x70\x00\x74\
-\x00\x0c\
-\x06\x7a\xfc\x33\
-\x00\x6a\
-\x00\x71\x00\x75\x00\x65\x00\x72\x00\x79\x00\x2d\x00\x75\x00\x69\x00\x2e\x00\x6a\x00\x73\
-\x00\x09\
-\x0b\xc9\x66\x13\
-\x00\x6a\
-\x00\x71\x00\x75\x00\x65\x00\x72\x00\x79\x00\x2e\x00\x6a\x00\x73\
-"
-
-qt_resource_struct_v1 = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\
-\x00\x00\x00\x1a\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x24\x38\
-"
-
-qt_resource_struct_v2 = b"\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\
-\x00\x00\x00\x00\x00\x00\x00\x00\
-\x00\x00\x00\x1a\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\x6a\x36\x3b\x4f\xfb\
-\x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x24\x38\
-\x00\x00\x01\x6a\x36\x3b\x4f\x9a\
-"
-
-qt_version = [int(v) for v in QtCore.qVersion().split('.')]
-if qt_version < [5, 8, 0]:
-    rcc_version = 1
-    qt_resource_struct = qt_resource_struct_v1
-else:
-    rcc_version = 2
-    qt_resource_struct = qt_resource_struct_v2
-
-def qInitResources():
-    QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-def qCleanupResources():
-    QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
-
-qInitResources()
--- a/eric6/HexEdit/HexEditSearchReplaceWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/HexEdit/HexEditSearchReplaceWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 from PyQt5.QtCore import pyqtSlot, Qt, QByteArray, QRegExp
 from PyQt5.QtGui import QRegExpValidator
--- a/eric6/HexEdit/HexEditWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/HexEdit/HexEditWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals, division
-try:
-    chr = unichr       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import math
 
--- a/eric6/IconEditor/IconEditorWindow.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/IconEditor/IconEditorWindow.py	Sat Sep 07 16:10:29 2019 +0200
@@ -28,7 +28,6 @@
 import UI.Config
 
 import Preferences
-from Globals import qVersionTuple
 
 
 class IconEditorWindow(E5MainWindow):
@@ -1353,10 +1352,7 @@
         @param evt reference to the wheel event (QWheelEvent)
         """
         if evt.modifiers() & Qt.ControlModifier:
-            if qVersionTuple() >= (5, 0, 0):
-                delta = evt.angleDelta().y()
-            else:
-                delta = evt.delta()
+            delta = evt.angleDelta().y()
             if delta < 0:
                 self.__zoomOut()
             elif delta > 0:
--- a/eric6/Network/IRC/IrcChannelWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Network/IRC/IrcChannelWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,7 @@
 
 from __future__ import unicode_literals
 
-try:
-    from itertools import izip_longest as zip_longest   # __IGNORE_EXCEPTION__
-except ImportError:
-    from itertools import zip_longest
+from itertools import zip_longest
 
 import re
 
--- a/eric6/Network/IRC/IrcMessageEdit.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Network/IRC/IrcMessageEdit.py	Sat Sep 07 16:10:29 2019 +0200
@@ -13,8 +13,6 @@
 
 from E5Gui.E5LineEdit import E5LineEdit, E5ClearableLineEdit
 
-from Globals import qVersionTuple
-
 
 class IrcMessageEdit(E5ClearableLineEdit):
     """
@@ -77,10 +75,7 @@
         
         @param evt reference to the wheel event (QWheelEvent)
         """
-        if qVersionTuple() >= (5, 0, 0):
-            delta = evt.angleDelta().y()
-        else:
-            delta = evt.delta()
+        delta = evt.angleDelta().y()
         if delta > 0:
             self.__getHistory(True)
         elif delta < 0:
--- a/eric6/Network/IRC/IrcWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Network/IRC/IrcWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import re
 import logging
--- a/eric6/PipInterface/Pip.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/PipInterface/Pip.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import os
 import sys
--- a/eric6/PipInterface/PipDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/PipInterface/PipDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 from PyQt5.QtCore import pyqtSlot, Qt, QCoreApplication, QTimer, \
     QProcess
--- a/eric6/PipInterface/PipFreezeDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/PipInterface/PipFreezeDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import os
 
--- a/eric6/PipInterface/PipPackageDetailsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/PipInterface/PipPackageDetailsDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    basestring    # __IGNORE_WARNING__
-except NameError:
-    basestring = str
 
 from PyQt5.QtCore import Qt, QLocale
 from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QTreeWidgetItem, \
@@ -181,7 +177,7 @@
         elif text is None:
             text = ""
         if forUrl:
-            if not isinstance(text, basestring) or \
+            if not isinstance(text, str) or \
                     not text.startswith(("http://", "https://", "ftp://")):
                 # ignore if the schema is not one of the listed ones
                 text = ""
--- a/eric6/PluginManager/PluginExceptions.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/PluginManager/PluginExceptions.py	Sat Sep 07 16:10:29 2019 +0200
@@ -143,21 +143,3 @@
                 "PluginError",
                 "The plugin class {0} of module {1} is missing {2}.")\
             .format(class_, name, missing)
-
-
-class PluginPy2IncompatibleError(PluginError):
-    """
-    Class defining an error raised, when the plugin is incompatible
-    with Python2.
-    """
-    def __init__(self, name):
-        """
-        Constructor
-        
-        @param name name of the plugin module (string)
-        """
-        self._errorMessage = \
-            QCoreApplication.translate(
-                "PluginError",
-                "The plugin module {0} is not compatible with Python2.")\
-            .format(name)
--- a/eric6/PluginManager/PluginInstallDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/PluginManager/PluginInstallDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -477,9 +477,6 @@
         if doCompile:
             dirName = os.path.join(destination, packageName)
             files = os.path.join(destination, pluginFileName)
-            if sys.version_info[0] == 2:
-                dirName = dirName.encode(sys.getfilesystemencoding())
-                files = files.encode(sys.getfilesystemencoding())
             os.path.join_unicode = False
             compileall.compile_dir(dirName, quiet=True)
             compileall.compile_file(files, quiet=True)
--- a/eric6/PluginManager/PluginManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/PluginManager/PluginManager.py	Sat Sep 07 16:10:29 2019 +0200
@@ -32,7 +32,7 @@
 
 from .PluginExceptions import PluginPathError, PluginModulesError, \
     PluginLoadError, PluginActivationError, PluginModuleFormatError, \
-    PluginClassFormatError, PluginPy2IncompatibleError
+    PluginClassFormatError
 
 import UI.PixmapCache
 
@@ -382,8 +382,6 @@
         @param reload_ flag indicating to reload the module (boolean)
         @exception PluginLoadError raised to indicate an issue loading
             the plug-in
-        @exception PluginPy2IncompatibleError raised to indicate the Python 2
-            incompatibility of a plug-in
         """
         try:
             fname = "{0}.py".format(os.path.join(directory, name))
@@ -393,21 +391,6 @@
                     "Module is missing the 'autoactivate' attribute.")
                 self.__failedModules[name] = module
                 raise PluginLoadError(name)
-            if sys.version_info[0] < 3:
-                if not hasattr(module, "python2Compatible"):
-                    module.error = self.tr(
-                        "Module is missing the Python2 compatibility flag."
-                        " Please update.")
-                    compatible = False
-                elif not getattr(module, "python2Compatible", True):
-                    module.error = self.tr(
-                        "Module is not Python2 compatible.")
-                    compatible = False
-                else:
-                    compatible = True
-                if not compatible:
-                    self.__failedModules[name] = module
-                    raise PluginPy2IncompatibleError(name)
             if getattr(module, "autoactivate", False):
                 self.__inactiveModules[name] = module
             else:
@@ -434,9 +417,6 @@
                     pass
         except PluginLoadError:
             print("Error loading plug-in module:", name)
-        except PluginPy2IncompatibleError:
-            print("Error loading plug-in module:", name)
-            print("The plug-in is not Python2 compatible.")
         except Exception as err:
             module = imp.new_module(name)
             module.error = self.tr(
--- a/eric6/Plugins/CheckerPlugins/SyntaxChecker/jsCheckSyntax.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/CheckerPlugins/SyntaxChecker/jsCheckSyntax.py	Sat Sep 07 16:10:29 2019 +0200
@@ -53,13 +53,6 @@
 
     if codestring and codestring[-1] != '\n':
         codestring = codestring + '\n'
-
-    # Check type for py2: if not str it's unicode
-#    if sys.version_info[0] == 2:
-#        try:
-#            codestring = codestring.encode('utf-8')
-#        except UnicodeError:
-#            pass
     
     return codestring
 
--- a/eric6/Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/CheckerPlugins/Tabnanny/TabnannyDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import fnmatch
--- a/eric6/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/DocumentationPlugins/Ericapi/EricapiConfigDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -81,8 +81,8 @@
             ", ".join(self.parameters['ignoreFilePatterns']))
         for language in self.parameters['languages']:
             if language == "Python":
-                # convert Python to the more specific Python2
-                language = "Python2"
+                # convert Python to the more specific Python3
+                language = "Python3"
             items = self.languagesList.findItems(
                 language, Qt.MatchFlags(Qt.MatchExactly))
             items and items[0].setSelected(True)
--- a/eric6/Plugins/DocumentationPlugins/Ericapi/EricapiExecDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/DocumentationPlugins/Ericapi/EricapiExecDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os.path
 
--- a/eric6/Plugins/DocumentationPlugins/Ericdoc/EricdocExecDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/DocumentationPlugins/Ericdoc/EricdocExecDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os.path
 
--- a/eric6/Plugins/PluginAbout.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginAbout.py	Sat Sep 07 16:10:29 2019 +0200
@@ -29,7 +29,6 @@
 shortDescription = "Show the About dialogs."
 longDescription = """This plugin shows the About dialogs."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginCodeStyleChecker.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginCodeStyleChecker.py	Sat Sep 07 16:10:29 2019 +0200
@@ -37,7 +37,6 @@
     """ compliance to docstring conventions given in PEP-257 and an""" \
     """ eric6 variant is used to check against eric conventions."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 
--- a/eric6/Plugins/PluginEricapi.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginEricapi.py	Sat Sep 07 16:10:29 2019 +0200
@@ -36,7 +36,6 @@
     """ Ericapi is used to generate a QScintilla API file for Python and""" \
     """ Ruby projects."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
@@ -143,7 +142,7 @@
             if self.__projectAct is not None:
                 self.__projectAct.setEnabled(
                     e5App().getObject("Project").getProjectLanguage() in
-                    ["Python", "Python2", "Python3", "Ruby", "MicroPython"])
+                    ["Python", "Python3", "Ruby", "MicroPython"])
     
     def __doEricapi(self):
         """
--- a/eric6/Plugins/PluginEricdoc.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginEricdoc.py	Sat Sep 07 16:10:29 2019 +0200
@@ -36,7 +36,6 @@
     """ Ericdoc is used to generate a source code documentation""" \
     """ for Python and Ruby projects."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
@@ -186,7 +185,7 @@
             if self.__projectAct is not None:
                 self.__projectAct.setEnabled(
                     e5App().getObject("Project").getProjectLanguage() in
-                    ["Python", "Python2", "Python3", "Ruby", "MicroPython"])
+                    ["Python", "Python3", "Ruby", "MicroPython"])
     
     def __doEricdoc(self):
         """
--- a/eric6/Plugins/PluginSyntaxChecker.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginSyntaxChecker.py	Sat Sep 07 16:10:29 2019 +0200
@@ -35,7 +35,6 @@
     """ Syntax Checker is used to check Python source files for correct""" \
     """ syntax."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginTabnanny.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginTabnanny.py	Sat Sep 07 16:10:29 2019 +0200
@@ -34,7 +34,6 @@
     """ Tabnanny is used to check Python source files for correct""" \
     """ indentations."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginTranslator.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginTranslator.py	Sat Sep 07 16:10:29 2019 +0200
@@ -35,7 +35,6 @@
     """ various online translation services."""
 needsRestart = False
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginVcsGit.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginVcsGit.py	Sat Sep 07 16:10:29 2019 +0200
@@ -37,7 +37,6 @@
 longDescription = \
     """This plugin provides the Git version control interface."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginVcsMercurial.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginVcsMercurial.py	Sat Sep 07 16:10:29 2019 +0200
@@ -37,7 +37,6 @@
 longDescription = \
     """This plugin provides the Mercurial version control interface."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginVcsPySvn.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginVcsPySvn.py	Sat Sep 07 16:10:29 2019 +0200
@@ -35,7 +35,6 @@
 longDescription = \
     """This plugin provides the PySvn version control interface."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginVcsSubversion.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginVcsSubversion.py	Sat Sep 07 16:10:29 2019 +0200
@@ -37,7 +37,6 @@
 longDescription = \
     """This plugin provides the Subversion version control interface."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginVmListspace.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginVmListspace.py	Sat Sep 07 16:10:29 2019 +0200
@@ -30,7 +30,6 @@
 shortDescription = "Implements the Listspace view manager."
 longDescription = """This plugin provides the listspace view manager."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginVmTabview.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginVmTabview.py	Sat Sep 07 16:10:29 2019 +0200
@@ -30,7 +30,6 @@
 shortDescription = "Implements the Tabview view manager."
 longDescription = """This plugin provides the tabbed view view manager."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginWizardDotDesktop.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginWizardDotDesktop.py	Sat Sep 07 16:10:29 2019 +0200
@@ -32,7 +32,6 @@
     """ a .desktop file."""
 needsRestart = False
 pyqtApi = 2
-python2Compatible = True
 # End-of-Header
 
 error = ""
--- a/eric6/Plugins/PluginWizardE5MessageBox.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginWizardE5MessageBox.py	Sat Sep 07 16:10:29 2019 +0200
@@ -29,7 +29,6 @@
 shortDescription = "Show the E5MessageBox wizard."
 longDescription = """This plugin shows the E5MessageBox wizard."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginWizardEricPlugin.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginWizardEricPlugin.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import os
 
@@ -38,7 +34,6 @@
     """ an eric plug-in main script file."""
 needsRestart = False
 pyqtApi = 2
-python2Compatible = True
 # End-of-Header
 
 error = ""
--- a/eric6/Plugins/PluginWizardPyRegExp.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginWizardPyRegExp.py	Sat Sep 07 16:10:29 2019 +0200
@@ -29,7 +29,6 @@
 shortDescription = "Show the Python re wizard."
 longDescription = """This plugin shows the Python re wizard."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginWizardQColorDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginWizardQColorDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -29,7 +29,6 @@
 shortDescription = "Show the QColorDialog wizard."
 longDescription = """This plugin shows the QColorDialog wizard."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginWizardQFileDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginWizardQFileDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -31,7 +31,6 @@
 shortDescription = "Show the QFileDialog wizard."
 longDescription = """This plugin shows the QFileDialog wizard."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
@@ -50,6 +49,7 @@
         super(FileDialogWizard, self).__init__(ui)
         self.__ui = ui
         
+        # PyQt4 or PyQt5
         self.__pyqtRe = re.compile(r"(?:import|from)\s+PyQt([45])")
 
     def activate(self):
@@ -58,7 +58,7 @@
         
         @return tuple of None and activation status (boolean)
         """
-        self.__initAction()
+        self.__initActions()
         self.__initMenu()
         
         return None, True
@@ -69,27 +69,45 @@
         """
         menu = self.__ui.getMenu("wizards")
         if menu:
-            menu.removeAction(self.action)
-        self.__ui.removeE5Actions([self.action], 'wizards')
+            menu.removeAction(self.qFileDialogAction)
+            menu.removeAction(self.e5FileDialogAction)
+        self.__ui.removeE5Actions(
+            [self.qFileDialogAction, self.e5FileDialogAction],
+            'wizards')
     
-    def __initAction(self):
+    def __initActions(self):
         """
-        Private method to initialize the action.
+        Private method to initialize the actions.
         """
-        self.action = E5Action(
+        self.qFileDialogAction = E5Action(
             self.tr('QFileDialog Wizard'),
             self.tr('Q&FileDialog Wizard...'), 0, 0, self,
             'wizards_qfiledialog')
-        self.action.setStatusTip(self.tr('QFileDialog Wizard'))
-        self.action.setWhatsThis(self.tr(
+        self.qFileDialogAction.setStatusTip(self.tr('QFileDialog Wizard'))
+        self.qFileDialogAction.setWhatsThis(self.tr(
             """<b>QFileDialog Wizard</b>"""
             """<p>This wizard opens a dialog for entering all the parameters"""
             """ needed to create a QFileDialog. The generated code is"""
             """ inserted at the current cursor position.</p>"""
         ))
-        self.action.triggered.connect(self.__handle)
+        self.qFileDialogAction.triggered.connect(self.__handleQFileDialog)
         
-        self.__ui.addE5Actions([self.action], 'wizards')
+        self.e5FileDialogAction = E5Action(
+            self.tr('E5FileDialog Wizard'),
+            self.tr('E&5ileDialog Wizard...'), 0, 0, self,
+            'wizards_e5filedialog')
+        self.e5FileDialogAction.setStatusTip(self.tr('E5FileDialog Wizard'))
+        self.e5FileDialogAction.setWhatsThis(self.tr(
+            """<b>E5FileDialog Wizard</b>"""
+            """<p>This wizard opens a dialog for entering all the parameters"""
+            """ needed to create an E5FileDialog. The generated code is"""
+            """ inserted at the current cursor position.</p>"""
+        ))
+        self.e5FileDialogAction.triggered.connect(self.__handleE5FileDialog)
+        
+        self.__ui.addE5Actions(
+            [self.qFileDialogAction, self.e5FileDialogAction],
+            'wizards')
 
     def __initMenu(self):
         """
@@ -97,24 +115,23 @@
         """
         menu = self.__ui.getMenu("wizards")
         if menu:
-            menu.addAction(self.action)
+            menu.addAction(self.e5FileDialogAction)
+            menu.addAction(self.qFileDialogAction)
     
-    def __callForm(self, editor):
+    def __callForm(self, editor, variant):
         """
         Private method to display a dialog and get the code.
         
         @param editor reference to the current editor
+        @type Editor
+        @param variant variant of code to be generated
+            (-1 = E5FileDialog, 0 = unknown, 4 = PyQt4, 5 = PyQt5)
+        @type int
         @return the generated code (string)
         """
-        match = self.__pyqtRe.search(editor.text())
-        if match is None:
-            pyqtVariant = 0    # unknown
-        else:
-            pyqtVariant = int(match.group(1))   # 4 or 5
-        
         from WizardPlugins.FileDialogWizard.FileDialogWizardDialog import \
             FileDialogWizardDialog
-        dlg = FileDialogWizardDialog(pyqtVariant, None)
+        dlg = FileDialogWizardDialog(variant, None)
         if dlg.exec_() == QDialog.Accepted:
             line, index = editor.getCursorPosition()
             indLevel = editor.indentation(line) // editor.indentationWidth()
@@ -126,9 +143,14 @@
         else:
             return (None, 0)
         
-    def __handle(self):
+    def __handle(self, variant):
         """
         Private method to handle the wizards action.
+        
+        @param variant dialog variant to be generated
+            (E5FileDialog or QFileDialog)
+        @type str
+        @exception ValueError raised to indicate an illegal file dialog variant
         """
         editor = e5App().getObject("ViewManager").activeWindow()
         
@@ -138,10 +160,36 @@
                 self.tr('No current editor'),
                 self.tr('Please open or create a file first.'))
         else:
-            code, ok = self.__callForm(editor)
+            if variant == "QFileDialog":
+                match = self.__pyqtRe.search(editor.text())
+                if match is None:
+                    # unknown
+                    dialogVariant = 0
+                else:
+                    # PyQt4 or PyQt5
+                    dialogVariant = int(match.group(1))
+            elif variant == "E5FileDialog":
+                # E5FileDialog
+                dialogVariant = -1
+            else:
+                raise ValueError("Illegal dialog variant given")
+            
+            code, ok = self.__callForm(editor, dialogVariant)
             if ok:
                 line, index = editor.getCursorPosition()
                 # It should be done on this way to allow undo
                 editor.beginUndoAction()
                 editor.insertAt(code, line, index)
                 editor.endUndoAction()
+    
+    def __handleQFileDialog(self):
+        """
+        Private slot to handle the wizard QFileDialog action.
+        """
+        self.__handle("QFileDialog")
+    
+    def __handleE5FileDialog(self):
+        """
+        Private slot to handle the wizard E5FileDialog action.
+        """
+        self.__handle("E5FileDialog")
--- a/eric6/Plugins/PluginWizardQFontDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginWizardQFontDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -29,7 +29,6 @@
 shortDescription = "Show the QFontDialog wizard."
 longDescription = """This plugin shows the QFontDialog wizard."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginWizardQInputDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginWizardQInputDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -29,7 +29,6 @@
 shortDescription = "Show the QInputDialog wizard."
 longDescription = """This plugin shows the QInputDialog wizard."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginWizardQMessageBox.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginWizardQMessageBox.py	Sat Sep 07 16:10:29 2019 +0200
@@ -29,7 +29,6 @@
 shortDescription = "Show the QMessageBox wizard."
 longDescription = """This plugin shows the QMessageBox wizard."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginWizardQRegExp.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginWizardQRegExp.py	Sat Sep 07 16:10:29 2019 +0200
@@ -29,7 +29,6 @@
 shortDescription = "Show the QRegExp wizard."
 longDescription = """This plugin shows the QRegExp wizard."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginWizardQRegularExpression.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginWizardQRegularExpression.py	Sat Sep 07 16:10:29 2019 +0200
@@ -29,7 +29,6 @@
 shortDescription = "Show the QRegularExpression wizard."
 longDescription = """This plugin shows the QRegularExpression wizard."""
 pyqtApi = 2
-python2Compatible = True
 # End-Of-Header
 
 error = ""
--- a/eric6/Plugins/PluginWizardSetup.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/PluginWizardSetup.py	Sat Sep 07 16:10:29 2019 +0200
@@ -33,7 +33,6 @@
     """ variants."""
 needsRestart = False
 pyqtApi = 2
-python2Compatible = True
 # End-of-Header
 
 error = ""
--- a/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/DeepLEngine.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/DeepLEngine.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import json
 
--- a/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/GlosbeEngine.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/GlosbeEngine.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import json
 
--- a/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/IbmWatsonEngine.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/IbmWatsonEngine.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import json
 
@@ -23,8 +19,6 @@
 
 from E5Network.E5NetworkProxyFactory import proxyAuthenticationRequired
 
-from Globals import qVersionTuple
-
 from .TranslationEngine import TranslationEngine
 
 
@@ -213,9 +207,7 @@
         ]
         
         request = QNetworkRequest(url)
-        if qVersionTuple() >= (5, 6, 0):
-            request.setAttribute(QNetworkRequest.FollowRedirectsAttribute,
-                                 True)
+        request.setAttribute(QNetworkRequest.FollowRedirectsAttribute, True)
         if extraHeaders:
             for name, value in extraHeaders:
                 request.setRawHeader(name, value)
--- a/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/MicrosoftEngine.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/MicrosoftEngine.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 from PyQt5.QtCore import QUrl, QDateTime, QByteArray, QTimer
 
--- a/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/MyMemoryEngine.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/MyMemoryEngine.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import json
 
--- a/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/PromtEngine.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/PromtEngine.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import json
 
--- a/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/YandexEngine.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorEngines/YandexEngine.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import json
 
--- a/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorRequest.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/UiExtensionPlugins/Translator/TranslatorRequest.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 from PyQt5.QtCore import QObject, QEventLoop, QByteArray
 from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, \
@@ -20,8 +16,6 @@
 
 from E5Network.E5NetworkProxyFactory import proxyAuthenticationRequired
 
-from Globals import qVersionTuple
-
 
 class TranslatorRequest(QObject):
     """
@@ -58,9 +52,7 @@
         @return server response (QByteArray) or error message (string)
         """
         request = QNetworkRequest(requestUrl)
-        if qVersionTuple() >= (5, 6, 0):
-            request.setAttribute(QNetworkRequest.FollowRedirectsAttribute,
-                                 True)
+        request.setAttribute(QNetworkRequest.FollowRedirectsAttribute, True)
         if extraHeaders:
             for name, value in extraHeaders:
                 request.setRawHeader(name, value)
@@ -92,9 +84,7 @@
                              self.__contentTypes[dataType])
         request.setRawHeader(b"Content-Length",
                              QByteArray.number(requestData.size()))
-        if qVersionTuple() >= (5, 6, 0):
-            request.setAttribute(QNetworkRequest.FollowRedirectsAttribute,
-                                 True)
+        request.setAttribute(QNetworkRequest.FollowRedirectsAttribute, True)
         if extraHeaders:
             for name, value in extraHeaders:
                 request.setRawHeader(name, value)
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitBisectLogBrowserDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitBisectLogBrowserDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
@@ -24,9 +20,8 @@
 
 from .Ui_GitBisectLogBrowserDialog import Ui_GitBisectLogBrowserDialog
 
-from .GitUtilities import strToQByteArray
-
 import Preferences
+from Globals import strToQByteArray
 
 
 class GitBisectLogBrowserDialog(QWidget, Ui_GitBisectLogBrowserDialog):
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitBlameDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitBlameDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import re
@@ -24,9 +20,8 @@
 
 from .Ui_GitBlameDialog import Ui_GitBlameDialog
 
-from .GitUtilities import strToQByteArray
-
 import Preferences
+from Globals import strToQByteArray
 
 
 class GitBlameDialog(QDialog, Ui_GitBlameDialog):
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitDescribeDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitDescribeDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
@@ -23,9 +19,8 @@
 
 from .Ui_GitDescribeDialog import Ui_GitDescribeDialog
 
-from .GitUtilities import strToQByteArray
-
 import Preferences
+from Globals import strToQByteArray
 
 
 class GitDescribeDialog(QDialog, Ui_GitDescribeDialog):
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
@@ -23,9 +19,8 @@
 
 from .Ui_GitDialog import Ui_GitDialog
 
-from .GitUtilities import strToQByteArray
-
 import Preferences
+from Globals import strToQByteArray
 
 
 class GitDialog(QDialog, Ui_GitDialog):
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitDiffDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitDiffDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 from PyQt5.QtCore import pyqtSlot, QFileInfo, Qt
 from PyQt5.QtGui import QTextCursor, QCursor
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitDiffGenerator.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitDiffGenerator.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitDiffHighlighter.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitDiffHighlighter.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,158 +9,9 @@
 
 from __future__ import unicode_literals
 
-import re
-
-from PyQt5.QtGui import QSyntaxHighlighter, QColor, QTextCharFormat, QFont
-
-import Preferences
-
-try:
-    from E5Gui.E5GenericDiffHighlighter import TERMINAL, \
-        E5GenericDiffHighlighter
-except ImportError:
-    def TERMINAL(pattern):
-        """
-        Function to mark a pattern as the final one to search for.
-        
-        @param pattern pattern to be marked (string)
-        @return marked pattern (string)
-        """
-        return "__TERMINAL__:{0}".format(pattern)
-
-    # Cache the results of re.compile for performance reasons
-    _REGEX_CACHE = {}
+from PyQt5.QtGui import QColor
 
-    class E5GenericDiffHighlighter(QSyntaxHighlighter):
-        """
-        Class implementing a generic diff highlighter.
-        """
-        def __init__(self, doc):
-            """
-            Constructor
-            
-            @param doc reference to the text document (QTextDocument)
-            """
-            super(E5GenericDiffHighlighter, self).__init__(doc)
-            
-            self.textColor = QColor(0, 0, 0)
-            self.addedColor = QColor(190, 237, 190)
-            self.removedColor = QColor(237, 190, 190)
-            self.replacedColor = QColor(190, 190, 237)
-            self.contextColor = QColor(255, 220, 168)
-            self.headerColor = QColor(237, 237, 190)
-            
-            self.normalFormat = self.makeFormat()
-            
-            self._rules = []
-            self.generateRules()
-        
-        def generateRules(self):
-            """
-            Public method to generate the rule set.
-            
-            Note: This method must me implemented by derived syntax
-            highlighters.
-            """
-            pass
-        
-        def createRules(self, *rules):
-            """
-            Public method to create the highlighting rules.
-            
-            @param rules set of highlighting rules (list of tuples of rule
-                pattern (string) and highlighting format (QTextCharFormat))
-            """
-            for ruleFormat in rules:
-                rule, formats = ruleFormat
-                terminal = rule.startswith(TERMINAL(''))
-                if terminal:
-                    rule = rule[len(TERMINAL('')):]
-                try:
-                    regex = _REGEX_CACHE[rule]
-                except KeyError:
-                    regex = _REGEX_CACHE[rule] = re.compile(rule)
-                self._rules.append((regex, formats, terminal))
-        
-        def formats(self, line):
-            """
-            Public method to determine the highlighting formats for a line of
-            text.
-            
-            @param line text line to be highlighted (string)
-            @return list of matched highlighting rules (list of tuples of match
-                object and format (QTextCharFormat))
-            """
-            matched = []
-            for rx, formats, terminal in self._rules:
-                match = rx.match(line)
-                if not match:
-                    continue
-                matched.append([match, formats])
-                if terminal:
-                    return matched
-            
-            return matched
-        
-        def makeFormat(self, fg=None, bg=None, bold=False):
-            """
-            Public method to generate a format definition.
-            
-            @param fg foreground color (QColor)
-            @param bg background color (QColor)
-            @param bold flag indicating bold text (boolean)
-            @return format definiton (QTextCharFormat)
-            """
-            font = Preferences.getEditorOtherFonts("MonospacedFont")
-            charFormat = QTextCharFormat()
-            charFormat.setFontFamily(font.family())
-            charFormat.setFontPointSize(font.pointSize())
-            
-            if fg:
-                charFormat.setForeground(fg)
-            
-            if bg:
-                charFormat.setBackground(bg)
-            
-            if bold:
-                charFormat.setFontWeight(QFont.Bold)
-            
-            return charFormat
-        
-        def highlightBlock(self, text):
-            """
-            Public method to highlight a block of text.
-            
-            @param text text to be highlighted (string)
-            """
-            formats = self.formats(text)
-            if not formats:
-                # nothing matched
-                self.setFormat(0, len(text), self.normalFormat)
-                return
-            
-            for match, charFormat in formats:
-                start = match.start()
-                groups = match.groups()
-
-                # No groups in the regex, assume this is a single rule
-                # that spans the entire line
-                if not groups:
-                    self.setFormat(0, len(text), charFormat)
-                    continue
-
-                # Groups exist, rule is a tuple corresponding to group
-                for groupIndex, group in enumerate(groups):
-                    if not group:
-                        # empty match
-                        continue
-                    
-                    # allow None as a no-op format
-                    length = len(group)
-                    if charFormat[groupIndex]:
-                        self.setFormat(start, start + length,
-                                       charFormat[groupIndex])
-                    start += length
+from E5Gui.E5GenericDiffHighlighter import TERMINAL, E5GenericDiffHighlighter
 
 
 class GitDiffHighlighter(E5GenericDiffHighlighter):
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitLogBrowserDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitLogBrowserDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import collections
@@ -21,18 +17,17 @@
 from PyQt5.QtGui import QCursor, QColor, QPixmap, QPainter, QPen, QIcon, \
     QTextCursor
 from PyQt5.QtWidgets import QWidget, QDialogButtonBox, QHeaderView, \
-    QTreeWidgetItem, QApplication, QLineEdit, QMenu, QInputDialog, QToolTip
+    QTreeWidgetItem, QApplication, QLineEdit, QMenu, QInputDialog
 
 from E5Gui.E5Application import e5App
 from E5Gui import E5MessageBox, E5FileDialog
 
-from Globals import qVersionTuple
+from Globals import strToQByteArray
 
 from .Ui_GitLogBrowserDialog import Ui_GitLogBrowserDialog
 
 from .GitDiffHighlighter import GitDiffHighlighter
 from .GitDiffGenerator import GitDiffGenerator
-from .GitUtilities import strToQByteArray
 
 import UI.PixmapCache
 import Preferences
@@ -306,10 +301,7 @@
         """
         self.__actionsMenu = QMenu()
         self.__actionsMenu.setTearOffEnabled(True)
-        if qVersionTuple() >= (5, 1, 0):
-            self.__actionsMenu.setToolTipsVisible(True)
-        else:
-            self.__actionsMenu.hovered.connect(self.__actionsMenuHovered)
+        self.__actionsMenu.setToolTipsVisible(True)
         
         self.__cherryAct = self.__actionsMenu.addAction(
             self.tr("Copy Commits"), self.__cherryActTriggered)
@@ -352,17 +344,6 @@
             UI.PixmapCache.getIcon("actionsToolButton.png"))
         self.actionsButton.setMenu(self.__actionsMenu)
     
-    def __actionsMenuHovered(self, action):
-        """
-        Private slot to show the tooltip for an action menu entry.
-        
-        @param action action to show tooltip for
-        @type QAction
-        """
-        QToolTip.showText(
-            QCursor.pos(), action.toolTip(),
-            self.__actionsMenu, self.__actionsMenu.actionGeometry(action))
-    
     def __initData(self):
         """
         Private method to (re-)initialize some data.
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitPatchStatisticsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitPatchStatisticsDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitReflogBrowserDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitReflogBrowserDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
@@ -24,9 +20,8 @@
 
 from .Ui_GitReflogBrowserDialog import Ui_GitReflogBrowserDialog
 
-from .GitUtilities import strToQByteArray
-
 import Preferences
+from Globals import strToQByteArray
 
 
 class GitReflogBrowserDialog(QWidget, Ui_GitReflogBrowserDialog):
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitRemoteRepositoriesDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitRemoteRepositoriesDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
@@ -23,9 +19,8 @@
 
 from .Ui_GitRemoteRepositoriesDialog import Ui_GitRemoteRepositoriesDialog
 
-from .GitUtilities import strToQByteArray
-
 import Preferences
+from Globals import strToQByteArray
 
 
 class GitRemoteRepositoriesDialog(QWidget, Ui_GitRemoteRepositoriesDialog):
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitStashBrowserDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitStashBrowserDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
@@ -24,9 +20,8 @@
 
 from .Ui_GitStashBrowserDialog import Ui_GitStashBrowserDialog
 
-from .GitUtilities import strToQByteArray
-
 import Preferences
+from Globals import strToQByteArray
 
 
 class GitStashBrowserDialog(QWidget, Ui_GitStashBrowserDialog):
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitStatusDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitStatusDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,30 +9,25 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import tempfile
 
 from PyQt5.QtCore import pyqtSlot, Qt, QProcess, QTimer, QSize
-from PyQt5.QtGui import QTextCursor, QCursor
+from PyQt5.QtGui import QTextCursor
 from PyQt5.QtWidgets import QWidget, QDialogButtonBox, QMenu, QHeaderView, \
-    QTreeWidgetItem, QLineEdit, QInputDialog, QToolTip
+    QTreeWidgetItem, QLineEdit, QInputDialog
 
 from E5Gui.E5Application import e5App
 from E5Gui import E5MessageBox
 
-from Globals import qVersionTuple
+from Globals import strToQByteArray
 
 from .Ui_GitStatusDialog import Ui_GitStatusDialog
 
 from .GitDiffHighlighter import GitDiffHighlighter
 from .GitDiffGenerator import GitDiffGenerator
 from .GitDiffParser import GitDiffParser
-from .GitUtilities import strToQByteArray
 
 import Preferences
 import UI.PixmapCache
@@ -187,10 +182,7 @@
         """
         self.__actionsMenu = QMenu()
         self.__actionsMenu.setTearOffEnabled(True)
-        if qVersionTuple() >= (5, 1, 0):
-            self.__actionsMenu.setToolTipsVisible(True)
-        else:
-            self.__actionsMenu.hovered.connect(self.__actionsMenuHovered)
+        self.__actionsMenu.setToolTipsVisible(True)
         self.__actionsMenu.aboutToShow.connect(self.__showActionsMenu)
         
         self.__commitAct = self.__actionsMenu.addAction(
@@ -267,17 +259,6 @@
             UI.PixmapCache.getIcon("actionsToolButton.png"))
         self.actionsButton.setMenu(self.__actionsMenu)
     
-    def __actionsMenuHovered(self, action):
-        """
-        Private slot to show the tooltip for an action menu entry.
-        
-        @param action action to show tooltip for
-        @type QAction
-        """
-        QToolTip.showText(
-            QCursor.pos(), action.toolTip(),
-            self.__actionsMenu, self.__actionsMenu.actionGeometry(action))
-    
     def closeEvent(self, e):
         """
         Protected slot implementing a close event handler.
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitStatusMonitorThread.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitStatusMonitorThread.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 from PyQt5.QtCore import QProcess
 
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitSubmodulesStatusDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitSubmodulesStatusDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitTagBranchListDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitTagBranchListDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
@@ -23,9 +19,8 @@
 
 from .Ui_GitTagBranchListDialog import Ui_GitTagBranchListDialog
 
-from .GitUtilities import strToQByteArray
-
 import Preferences
+from Globals import strToQByteArray
 
 
 class GitTagBranchListDialog(QDialog, Ui_GitTagBranchListDialog):
--- a/eric6/Plugins/VcsPlugins/vcsGit/GitUtilities.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/GitUtilities.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,9 +10,8 @@
 from __future__ import unicode_literals
 
 import os
-import sys
 
-from PyQt5.QtCore import QProcessEnvironment, QByteArray
+from PyQt5.QtCore import QProcessEnvironment
 
 import Utilities
 
@@ -45,23 +44,3 @@
         env.insert("LANGUAGE", language)
     
     proc.setProcessEnvironment(env)
-
-
-try:
-    from Globals import strToQByteArray
-except ImportError:
-    def strToQByteArray(txt):
-        """
-        Module function to convert a Python string into a QByteArray.
-        
-        @param txt Python string to be converted
-        @type str, bytes, bytearray, unicode
-        """
-        if sys.version_info[0] == 2:
-            if isinstance(txt, unicode):    # __IGNORE_WARNING__
-                txt = txt.encode("utf-8")
-        else:
-            if isinstance(txt, str):
-                txt = txt.encode("utf-8")
-        
-        return QByteArray(txt)
--- a/eric6/Plugins/VcsPlugins/vcsGit/git.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsGit/git.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import shutil
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/GpgExtension/HgGpgSignaturesDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/GpgExtension/HgGpgSignaturesDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgAnnotateDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgAnnotateDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import re
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgBookmarksInOutDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgBookmarksInOutDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgBookmarksListDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgBookmarksListDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgClient.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgClient.py	Sat Sep 07 16:10:29 2019 +0200
@@ -7,11 +7,6 @@
 Module implementing an interface to the Mercurial command server.
 """
 
-try:
-    str = unicode
-except NameError:
-    pass
-
 import struct
 import io
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 from PyQt5.QtCore import pyqtSlot, QFileInfo, Qt
 from PyQt5.QtGui import QTextCursor, QCursor
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgDiffGenerator.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgDiffGenerator.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgExtensionProjectBrowserHelper.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgExtensionProjectBrowserHelper.py	Sat Sep 07 16:10:29 2019 +0200
@@ -11,6 +11,7 @@
 from __future__ import unicode_literals
 
 from PyQt5.QtCore import QObject
+from PyQt5.QtWidgets import QMenu
 
 
 class HgExtensionProjectBrowserHelper(QObject):
@@ -48,6 +49,14 @@
             reimplemented
         """
         raise NotImplementedError
+        
+        return {
+            'mainMenu': QMenu(),
+            'multiMenu': QMenu(),
+            'backMenu': QMenu(),
+            'dirMenu': QMenu(),
+            'dirMultiMenu': QMenu(),
+        }
     
     def menuTitle(self):
         """
@@ -60,6 +69,8 @@
             reimplemented
         """
         raise NotImplementedError
+        
+        return ""
     
     def showExtensionMenu(self, key, controlled):
         """
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgExtensionProjectHelper.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgExtensionProjectHelper.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,6 +10,7 @@
 from __future__ import unicode_literals
 
 from PyQt5.QtCore import QObject
+from PyQt5.QtWidgets import QMenu
 
 
 class HgExtensionProjectHelper(QObject):
@@ -71,6 +72,8 @@
             reimplemented
         """
         raise NotImplementedError
+        
+        return QMenu()
     
     def menuTitle(self):
         """
@@ -83,6 +86,8 @@
             reimplemented
         """
         raise NotImplementedError
+        
+        return ""
     
     def shutdown(self):
         """
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgLogBrowserDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import re
@@ -22,7 +18,7 @@
 from PyQt5.QtGui import QCursor, QColor, QPixmap, QPainter, QPen, QBrush, \
     QIcon, QTextCursor
 from PyQt5.QtWidgets import QWidget, QDialogButtonBox, QHeaderView, \
-    QTreeWidgetItem, QApplication, QLineEdit, QMenu, QInputDialog, QToolTip
+    QTreeWidgetItem, QApplication, QLineEdit, QMenu, QInputDialog
 
 from E5Gui.E5Application import e5App
 from E5Gui import E5MessageBox, E5FileDialog
@@ -35,7 +31,7 @@
 import UI.PixmapCache
 import Preferences
 import Utilities
-from Globals import qVersionTuple, strToQByteArray
+from Globals import strToQByteArray
 
 COLORNAMES = ["blue", "darkgreen", "red", "green", "darkblue", "purple",
               "cyan", "olive", "magenta", "darkred", "darkmagenta",
@@ -262,10 +258,7 @@
         """
         self.__actionsMenu = QMenu()
         self.__actionsMenu.setTearOffEnabled(True)
-        if qVersionTuple() >= (5, 1, 0):
-            self.__actionsMenu.setToolTipsVisible(True)
-        else:
-            self.__actionsMenu.hovered.connect(self.__actionsMenuHovered)
+        self.__actionsMenu.setToolTipsVisible(True)
         
         self.__graftAct = self.__actionsMenu.addAction(
             UI.PixmapCache.getIcon("vcsGraft.png"),
@@ -402,17 +395,6 @@
             UI.PixmapCache.getIcon("actionsToolButton.png"))
         self.actionsButton.setMenu(self.__actionsMenu)
     
-    def __actionsMenuHovered(self, action):
-        """
-        Private slot to show the tooltip for an action menu entry.
-        
-        @param action action to show tooltip for
-        @type QAction
-        """
-        QToolTip.showText(
-            QCursor.pos(), action.toolTip(),
-            self.__actionsMenu, self.__actionsMenu.actionGeometry(action))
-    
     def __initData(self):
         """
         Private method to (re-)initialize some data.
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgServeDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgServeDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,17 +9,13 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
 from PyQt5.QtCore import pyqtSlot, Qt, QProcess, QTimer, QSize
-from PyQt5.QtGui import QTextCursor, QCursor
+from PyQt5.QtGui import QTextCursor
 from PyQt5.QtWidgets import QWidget, QDialogButtonBox, QMenu, QHeaderView, \
-    QTreeWidgetItem, QLineEdit, QToolTip
+    QTreeWidgetItem, QLineEdit
 
 from E5Gui.E5Application import e5App
 from E5Gui import E5MessageBox
@@ -31,7 +27,7 @@
 
 import Preferences
 import UI.PixmapCache
-from Globals import qVersionTuple, strToQByteArray
+from Globals import strToQByteArray
 
 
 class HgStatusDialog(QWidget, Ui_HgStatusDialog):
@@ -130,10 +126,7 @@
         """
         self.__actionsMenu = QMenu()
         self.__actionsMenu.setTearOffEnabled(True)
-        if qVersionTuple() >= (5, 1, 0):
-            self.__actionsMenu.setToolTipsVisible(True)
-        else:
-            self.__actionsMenu.hovered.connect(self.__actionsMenuHovered)
+        self.__actionsMenu.setToolTipsVisible(True)
         self.__actionsMenu.aboutToShow.connect(self.__showActionsMenu)
         
         self.__commitAct = self.__actionsMenu.addAction(
@@ -212,17 +205,6 @@
         self.actionsButton.setIcon(
             UI.PixmapCache.getIcon("actionsToolButton.png"))
         self.actionsButton.setMenu(self.__actionsMenu)
-
-    def __actionsMenuHovered(self, action):
-        """
-        Private slot to show the tooltip for an action menu entry.
-        
-        @param action action to show tooltip for
-        @type QAction
-        """
-        QToolTip.showText(
-            QCursor.pos(), action.toolTip(),
-            self.__actionsMenu, self.__actionsMenu.actionGeometry(action))
     
     def closeEvent(self, e):
         """
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgStatusMonitorThread.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgStatusMonitorThread.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 from PyQt5.QtCore import QProcess
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgSummaryDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgSummaryDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgTagBranchListDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgTagBranchListDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgUserConfigDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,6 +10,7 @@
 from __future__ import unicode_literals
 
 import os
+from configparser import ConfigParser
 
 from PyQt5.QtCore import pyqtSlot, Qt, QEvent
 from PyQt5.QtWidgets import QDialog, QTreeWidgetItem
@@ -18,7 +19,6 @@
 from E5Gui import E5MessageBox
 
 import Globals
-from Globals.E5ConfigParser import E5ConfigParser
 
 from .HgUtilities import getConfigPath
 from .HgUserConfigHostFingerprintDialog import \
@@ -104,7 +104,7 @@
         Public method to write the user configuration file.
         """
         if self.__config is None:
-            self.__config = E5ConfigParser()
+            self.__config = ConfigParser()
         
         ###################################################################
         ## ui section
@@ -307,7 +307,7 @@
         """
         cfgFile = getConfigPath()
         
-        self.__config = E5ConfigParser(delimiters=("=",))
+        self.__config = ConfigParser(delimiters=("=",))
         if self.__config.read(cfgFile):
             # step 1: extract user name and email
             try:
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HgUtilities.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HgUtilities.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import re
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/HgHisteditEditor.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/HisteditExtension/HgHisteditEditor.py	Sat Sep 07 16:10:29 2019 +0200
@@ -20,13 +20,6 @@
     os.path.dirname(__file__), "..", "..", "..", ".."))
 # four times up is the eric6 package directory
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/PurgeExtension/purge.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/PurgeExtension/purge.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesDefineGuardsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesDefineGuardsDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesHeaderDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesHeaderDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListAllGuardsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListAllGuardsDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListGuardsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesListGuardsDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesQueueManagementDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/HgQueuesQueueManagementDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 from PyQt5.QtCore import pyqtSlot, Qt, QProcess, QCoreApplication
 from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QAbstractItemView, \
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/queues.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/QueuesExtension/queues.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/HgShelveBrowserDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/HgShelveBrowserDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/shelve.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/ShelveExtension/shelve.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsMercurial/hg.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsMercurial/hg.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import shutil
--- a/eric6/Plugins/VcsPlugins/vcsPySvn/SvnBlameDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsPySvn/SvnBlameDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,7 +10,6 @@
 from __future__ import unicode_literals
 
 import os
-import sys
 
 import pysvn
 
@@ -78,9 +77,6 @@
             for annotation in annotations:
                 author = annotation["author"]
                 line = annotation["line"]
-                if sys.version_info[0] == 2:
-                    author = author.decode('utf-8')
-                    line = line.decode('utf-8')
                 self.__generateItem(
                     annotation["revision"].number, author,
                     annotation["number"] + 1, line)
--- a/eric6/Plugins/VcsPlugins/vcsPySvn/SvnChangeListsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsPySvn/SvnChangeListsDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,7 +10,6 @@
 from __future__ import unicode_literals
 
 import os
-import sys
 
 import pysvn
 
@@ -90,9 +89,6 @@
             for entry in entries:
                 file = entry[0]
                 changelist = entry[1]
-                if sys.version_info[0] == 2:
-                    file = file.decode('utf-8')
-                    changelist = changelist.decode('utf-8')
                 if changelist not in self.changeListsDict:
                     self.changeListsDict[changelist] = []
                 filename = file.replace(path + os.sep, "")
--- a/eric6/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -11,7 +11,6 @@
 from __future__ import unicode_literals
 
 import os
-import sys
 
 import pysvn
 
@@ -224,8 +223,6 @@
                         diff_list = []
                         for diff_sum in diff_summary:
                             path = diff_sum['path']
-                            if sys.version_info[0] == 2:
-                                path = path.decode('utf-8')
                             diff_list.append("{0} {1}".format(
                                 self.__getDiffSummaryKind(
                                     diff_sum['summarize_kind']),
@@ -237,8 +234,6 @@
                             url1, revision1=rev1,
                             url_or_path2=url2, revision2=rev2,
                             recurse=recurse)
-                        if sys.version_info[0] == 2:
-                            diffText = diffText.decode('utf-8')
                 else:
                     if pegRev is not None:
                         diffText = self.client.diff_peg(
@@ -250,8 +245,6 @@
                         diffText = self.client.diff(
                             tmpdir, name,
                             revision1=rev1, revision2=rev2, recurse=recurse)
-                    if sys.version_info[0] == 2:
-                        diffText = diffText.decode('utf-8')
                 counter = 0
                 for line in diffText.splitlines():
                     if line.startswith("--- ") or \
--- a/eric6/Plugins/VcsPlugins/vcsPySvn/SvnInfoDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsPySvn/SvnInfoDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -11,7 +11,6 @@
 from __future__ import unicode_literals
 
 import os
-import sys
 
 import pysvn
 
@@ -67,8 +66,6 @@
             entries = self.client.info2(fn, recurse=False)
             infoStr = "<table>"
             for path, info in entries:
-                if sys.version_info[0] == 2:
-                    path = path.decode('utf-8')
                 infoStr += self.tr(
                     "<tr><td><b>Path (relative to project):</b></td>"
                     "<td>{0}</td></tr>").format(path)
--- a/eric6/Plugins/VcsPlugins/vcsPySvn/SvnLogBrowserDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsPySvn/SvnLogBrowserDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,7 +10,6 @@
 from __future__ import unicode_literals
 
 import os
-import sys
 
 import pysvn
 
@@ -309,9 +308,6 @@
             for log in logs:
                 author = log["author"]
                 message = log["message"]
-                if sys.version_info[0] == 2:
-                    author = author.decode('utf-8')
-                    message = message.decode('utf-8')
                 self.__generateLogItem(
                     author, log["date"], message,
                     log["revision"], log['changed_paths'])
--- a/eric6/Plugins/VcsPlugins/vcsPySvn/SvnPropListDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsPySvn/SvnPropListDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -11,7 +11,6 @@
 from __future__ import unicode_literals
 
 import os
-import sys
 
 import pysvn
 
@@ -121,12 +120,7 @@
                 proplist = self.client.proplist(name, recurse=recursive)
                 counter = 0
                 for path, prop in proplist:
-                    if sys.version_info[0] == 2:
-                        path = path.decode('utf-8')
                     for propName, propVal in list(prop.items()):
-                        if sys.version_info[0] == 2:
-                            propName = propName.decode('utf-8')
-                            propVal = propVal.decode('utf-8')
                         self.__generateItem(path, propName, propVal)
                         self.propsFound = True
                     counter += 1
--- a/eric6/Plugins/VcsPlugins/vcsPySvn/SvnStatusDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsPySvn/SvnStatusDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -11,7 +11,6 @@
 from __future__ import unicode_literals
 
 import os
-import sys
 
 import pysvn
 
@@ -326,9 +325,6 @@
                         depth = pysvn.depth.immediate
                     changelists = self.client.get_changelist(name, depth=depth)
                     for fpath, changelist in changelists:
-                        if sys.version_info[0] == 2:
-                            fpath = fpath.decode('utf-8')
-                            changelist = changelist.decode('utf-8')
                         fpath = Utilities.normcasepath(fpath)
                         changelistsDict[fpath] = changelist
                 hideChangelistColumn = hideChangelistColumn and \
--- a/eric6/Plugins/VcsPlugins/vcsPySvn/subversion.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsPySvn/subversion.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,9 +10,9 @@
 from __future__ import unicode_literals
 
 import os
-import sys
 import shutil
 import time
+from urllib.parse import quote
 
 from PyQt5.QtCore import Qt, QMutexLocker, pyqtSignal, QRegExp, QDateTime, \
     QCoreApplication
@@ -1075,10 +1075,9 @@
             
             reposRoot = rx_base.cap(1)
             if tagOp in [1, 4]:
-                url = '{0}/tags/{1}'.format(reposRoot, Utilities.quote(tag))
+                url = '{0}/tags/{1}'.format(reposRoot, quote(tag))
             elif tagOp in [2, 8]:
-                url = '{0}/branches/{1}'.format(
-                    reposRoot, Utilities.quote(tag))
+                url = '{0}/branches/{1}'.format(reposRoot, quote(tag))
         else:
             url = self.__svnURL(tag)
         
@@ -1219,10 +1218,9 @@
             reposRoot = rx_base.cap(1)
             tn = tag
             if tagType == 1:
-                url = '{0}/tags/{1}'.format(reposRoot, Utilities.quote(tag))
+                url = '{0}/tags/{1}'.format(reposRoot, quote(tag))
             elif tagType == 2:
-                url = '{0}/branches/{1}'.format(
-                    reposRoot, Utilities.quote(tag))
+                url = '{0}/branches/{1}'.format(reposRoot, quote(tag))
             elif tagType == 4:
                 url = '{0}/trunk'.format(reposRoot)
                 tn = 'HEAD'
@@ -1725,8 +1723,6 @@
             apiVersion = QCoreApplication.translate('subversion', "unknown")
         
         hmsz = time.strftime("%H:%M:%S %Z", time.localtime(entry.commit_time))
-        if sys.version_info[0] == 2:
-            hmsz = hmsz.decode(sys.getfilesystemencoding())
         return QCoreApplication.translate(
             'subversion',
             """<h3>Repository information</h3>"""
@@ -2486,8 +2482,6 @@
                                                 depth=pysvn.depth.infinity)
                 for entry in entries:
                     changelist = entry[1]
-                    if sys.version_info[0] == 2:
-                        changelist = changelist.decode('utf-8')
                     if changelist not in changelists:
                         changelists.append(changelist)
             except pysvn.ClientError:
@@ -2534,20 +2528,18 @@
             scheme = url[0]
             host = url[1]
             port, path = url[2].split("/", 1)
-            return "{0}:{1}:{2}/{3}".format(scheme, host, port,
-                                            Utilities.quote(path))
+            return "{0}:{1}:{2}/{3}".format(scheme, host, port, quote(path))
         else:
             scheme = url[0]
             if scheme == "file":
-                return "{0}:{1}".format(scheme, Utilities.quote(url[1]))
+                return "{0}:{1}".format(scheme, quote(url[1]))
             else:
                 try:
                     host, path = url[1][2:].split("/", 1)
                 except ValueError:
                     host = url[1][2:]
                     path = ""
-                return "{0}://{1}/{2}".format(scheme, host,
-                                              Utilities.quote(path))
+                return "{0}://{1}/{2}".format(scheme, host, quote(path))
 
     def svnNormalizeURL(self, url):
         """
--- a/eric6/Plugins/VcsPlugins/vcsSubversion/SvnBlameDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsSubversion/SvnBlameDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsSubversion/SvnChangeListsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsSubversion/SvnChangeListsDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsSubversion/SvnDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsSubversion/SvnDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsSubversion/SvnLogBrowserDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsSubversion/SvnLogBrowserDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsSubversion/SvnPropListDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsSubversion/SvnPropListDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 from PyQt5.QtCore import pyqtSlot, QTimer, QProcess, QProcessEnvironment, \
     QRegExp, Qt
--- a/eric6/Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsSubversion/SvnStatusMonitorThread.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsSubversion/SvnStatusMonitorThread.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 from PyQt5.QtCore import QRegExp, QProcess
 
--- a/eric6/Plugins/VcsPlugins/vcsSubversion/SvnTagBranchListDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsSubversion/SvnTagBranchListDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/Plugins/VcsPlugins/vcsSubversion/subversion.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/VcsPlugins/vcsSubversion/subversion.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,14 +8,11 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import re
 import shutil
+from urllib.parse import quote
 
 from PyQt5.QtCore import pyqtSignal, QProcess, QRegExp, QCoreApplication
 from PyQt5.QtWidgets import QLineEdit, QDialog, QInputDialog, QApplication
@@ -994,10 +991,9 @@
             
             reposRoot = rx_base.cap(1)
             if tagOp in [1, 4]:
-                url = '{0}/tags/{1}'.format(reposRoot, Utilities.quote(tag))
+                url = '{0}/tags/{1}'.format(reposRoot, quote(tag))
             elif tagOp in [2, 8]:
-                url = '{0}/branches/{1}'.format(
-                    reposRoot, Utilities.quote(tag))
+                url = '{0}/branches/{1}'.format(reposRoot, quote(tag))
         else:
             url = self.__svnURL(tag)
         
@@ -1117,10 +1113,9 @@
             reposRoot = rx_base.cap(1)
             tn = tag
             if tagType == 1:
-                url = '{0}/tags/{1}'.format(reposRoot, Utilities.quote(tag))
+                url = '{0}/tags/{1}'.format(reposRoot, quote(tag))
             elif tagType == 2:
-                url = '{0}/branches/{1}'.format(
-                    reposRoot, Utilities.quote(tag))
+                url = '{0}/branches/{1}'.format(reposRoot, quote(tag))
             elif tagType == 4:
                 url = '{0}/trunk'.format(reposRoot)
                 tn = 'HEAD'
@@ -2307,20 +2302,18 @@
             scheme = url[0]
             host = url[1]
             port, path = url[2].split("/", 1)
-            return "{0}:{1}:{2}/{3}".format(
-                scheme, host, port, Utilities.quote(path))
+            return "{0}:{1}:{2}/{3}".format(scheme, host, port, quote(path))
         else:
             scheme = url[0]
             if scheme == "file":
-                return "{0}:{1}".format(scheme, Utilities.quote(url[1]))
+                return "{0}:{1}".format(scheme, quote(url[1]))
             else:
                 try:
                     host, path = url[1][2:].split("/", 1)
                 except ValueError:
                     host = url[1][2:]
                     path = ""
-                return "{0}://{1}/{2}".format(
-                    scheme, host, Utilities.quote(path))
+                return "{0}://{1}/{2}".format(scheme, host, quote(path))
 
     def svnNormalizeURL(self, url):
         """
--- a/eric6/Plugins/WizardPlugins/EricPluginWizard/PluginWizardDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/WizardPlugins/EricPluginWizard/PluginWizardDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -130,7 +130,6 @@
             "shortDescription": self.shortDescriptionEdit.text(),
             "longDescription": self.longDescriptionEdit.toPlainText(),
             "needsRestart": self.restartCheckBox.isChecked(),
-            "python2Compatible": self.python2CheckBox.isChecked()
         }
         
         if self.configurationGroup.isChecked():
--- a/eric6/Plugins/WizardPlugins/EricPluginWizard/Templates.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/WizardPlugins/EricPluginWizard/Templates.py	Sat Sep 07 16:10:29 2019 +0200
@@ -38,7 +38,6 @@
 )
 needsRestart = {needsRestart}
 pyqtApi = 2
-python2Compatible = {python2Compatible}
 # End-Of-Header
 
 error = ""
@@ -250,18 +249,13 @@
     @return list of API filenames
     @rtype list of str
     """
-    if language in ["Python3",  "Python2", "Python"]:
+    if language in ["Python3",  "Python"]:
         apisDir = \\
             os.path.join(os.path.dirname(__file__), "APIs", "Python")
         apis = glob.glob(os.path.join(apisDir, '*.api'))
-        if language == "Python3":
-            apisDir = \\
-                os.path.join(os.path.dirname(__file__), "APIs", "Python3")
-            apis.extend(glob.glob(os.path.join(apisDir, '*.api')))
-        else:
-            apisDir = \\
-                os.path.join(os.path.dirname(__file__), "APIs", "Python2")
-            apis.extend(glob.glob(os.path.join(apisDir, '*.api')))
+        apisDir = \\
+            os.path.join(os.path.dirname(__file__), "APIs", "Python3")
+        apis.extend(glob.glob(os.path.join(apisDir, '*.api')))
     else:
         apis = []
     return apis
--- a/eric6/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -11,7 +11,7 @@
 
 import os
 
-from PyQt5.QtCore import pyqtSlot
+from PyQt5.QtCore import pyqtSlot, QUrl
 from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QFileDialog, \
     QButtonGroup
 
@@ -26,15 +26,18 @@
     """
     Class implementing the color dialog wizard dialog.
     
-    It displays a dialog for entering the parameters
-    for the QFileDialog code generator.
+    It displays a dialog for entering the parameters for the
+    E5FileDialog or QFileDialog code generator.
     """
-    def __init__(self, pyqtVariant, parent=None):
+    def __init__(self, dialogVariant, parent=None):
         """
         Constructor
         
-        @param pyqtVariant variant of PyQt (integer; 0, 4 or 5)
-        @param parent parent widget (QWidget)
+        @param dialogVariant variant of the file dialog to be generated
+            (-1 = E5FileDialog, 0 = unknown, 4 = PyQt4, 5 = PyQt5)
+        @type int
+        @param parent parent widget
+        @type QWidget
         """
         super(FileDialogWizardDialog, self).__init__(parent)
         self.setupUi(self)
@@ -42,7 +45,7 @@
         self.eStartWithCompleter = E5FileCompleter(self.eStartWith)
         self.eWorkDirCompleter = E5DirCompleter(self.eWorkDir)
         
-        self.__pyqtVariant = pyqtVariant
+        self.__dialogVariant = dialogVariant
         
         self.__typeButtonsGroup = QButtonGroup(self)
         self.__typeButtonsGroup.setExclusive(True)
@@ -52,21 +55,36 @@
         self.__typeButtonsGroup.addButton(self.rfOpenFile, 11)
         self.__typeButtonsGroup.addButton(self.rfOpenFiles, 12)
         self.__typeButtonsGroup.addButton(self.rfSaveFile, 13)
-        self.__typeButtonsGroup.addButton(self.rDirectory, 20)
+        self.__typeButtonsGroup.addButton(self.rOpenFileUrl, 21)
+        self.__typeButtonsGroup.addButton(self.rOpenFileUrls, 22)
+        self.__typeButtonsGroup.addButton(self.rSaveFileUrl, 23)
+        self.__typeButtonsGroup.addButton(self.rDirectory, 30)
+        self.__typeButtonsGroup.addButton(self.rDirectoryUrl, 31)
         self.__typeButtonsGroup.buttonClicked[int].connect(
             self.__toggleInitialFilterAndResult)
         self.__toggleInitialFilterAndResult(1)
         
-        self.pyqtComboBox.addItems(["PyQt4", "PyQt5"])
-        self.__pyqtVariant = pyqtVariant
-        if self.__pyqtVariant == 5:
-            self.pyqtComboBox.setCurrentIndex(1)
+        self.__dialogVariant = dialogVariant
+        if self.__dialogVariant == -1:
+            self.pyqtComboBox.addItems(["eric"])
+            self.setWindowTitle(self.tr("E5FileDialog Wizard"))
+            self.pyqtComboBox.setCurrentIndex(0)
+            self.pyqtComboBox.setEnabled(False)
         else:
-            self.pyqtComboBox.setCurrentIndex(0)
+            self.pyqtComboBox.addItems(["PyQt5", "PyQt4"])
+            self.setWindowTitle(self.tr("QFileDialog Wizard"))
+            if self.__dialogVariant == 5:
+                self.pyqtComboBox.setCurrentIndex(0)
+            elif self.__dialogVariant == 4:
+                self.pyqtComboBox.setCurrentIndex(1)
+            else:
+                self.pyqtComboBox.setCurrentIndex(0)
         
         self.rSaveFile.toggled[bool].connect(self.__toggleConfirmCheckBox)
         self.rfSaveFile.toggled[bool].connect(self.__toggleConfirmCheckBox)
+        self.rSaveFileUrl.toggled[bool].connect(self.__toggleConfirmCheckBox)
         self.rDirectory.toggled[bool].connect(self.__toggleGroupsAndTest)
+        self.rDirectoryUrl.toggled[bool].connect(self.__toggleGroupsAndTest)
         self.cStartWith.toggled[bool].connect(self.__toggleGroupsAndTest)
         self.cWorkDir.toggled[bool].connect(self.__toggleGroupsAndTest)
         self.cFilters.toggled[bool].connect(self.__toggleGroupsAndTest)
@@ -95,9 +113,14 @@
         
         @param txt text of the selected combo box entry (string)
         """
-        self.rfOpenFile.setEnabled(txt == "PyQt4")
-        self.rfOpenFiles.setEnabled(txt == "PyQt4")
-        self.rfSaveFile.setEnabled(txt == "PyQt4")
+        self.rfOpenFile.setEnabled(txt in ("eric", "PyQt4"))
+        self.rfOpenFiles.setEnabled(txt in ("eric", "PyQt4"))
+        self.rfSaveFile.setEnabled(txt in ("eric", "PyQt4"))
+        
+        self.rOpenFileUrl.setEnabled(txt == "PyQt5")
+        self.rOpenFileUrls.setEnabled(txt == "PyQt5")
+        self.rSaveFileUrl.setEnabled(txt == "PyQt5")
+        self.rDirectoryUrl.setEnabled(txt == "PyQt5")
         
         if txt == "PyQt5":
             if self.rfOpenFile.isChecked():
@@ -106,8 +129,25 @@
                 self.rOpenFiles.setChecked(True)
             elif self.rfSaveFile.isChecked():
                 self.rSaveFile.setChecked(True)
+        else:
+            if self.rOpenFileUrl.isChecked():
+                self.rOpenFile.setChecked(True)
+            if self.rOpenFileUrls.isChecked():
+                self.rOpenFiles.setChecked(True)
+            if self.rSaveFileUrl.isChecked():
+                self.rSaveFile.setChecked(True)
+            if self.rDirectoryUrl.isChecked():
+                self.rDirectory.setChecked(True)
         
-        self.__pyqtVariant = 5 if txt == "PyQt5" else 4
+        if txt == "eric":
+            self.__dialogVariant = -1
+        elif txt == "PyQt5":
+            self.__dialogVariant = 5
+        elif txt == "PyQt4":
+            self.__dialogVariant = 4
+        else:
+            # default is PyQt5
+            self.__dialogVariant = 5
         
         self.__toggleInitialFilterAndResult(
             self.__typeButtonsGroup.checkedId())
@@ -132,117 +172,114 @@
             else:
                 options = QFileDialog.Options()
             options = self.__adjustOptions(options)
-            if self.rOpenFile.isChecked() and self.__pyqtVariant == 4:
-                try:
-                    QFileDialog.getOpenFileName(
-                        None,
-                        self.eCaption.text(),
-                        self.eStartWith.text(),
-                        self.eFilters.text(),
-                        options)
-                except TypeError:
-                    QFileDialog.getOpenFileName(
-                        None,
-                        self.eCaption.text(),
-                        self.eStartWith.text(),
-                        self.eFilters.text(),
-                        self.eInitialFilter.text(),
-                        options)
+            QFileDialog.getOpenFileName(
+                None,
+                self.eCaption.text(),
+                self.eStartWith.text(),
+                self.eFilters.text(),
+                self.eInitialFilter.text(),
+                options)
+        elif self.rOpenFileUrl.isChecked():
+            if not self.cSymlinks.isChecked():
+                options = QFileDialog.Options(QFileDialog.DontResolveSymlinks)
             else:
-                try:
-                    QFileDialog.getOpenFileNameAndFilter(
-                        None,
-                        self.eCaption.text(),
-                        self.eStartWith.text(),
-                        self.eFilters.text(),
-                        self.eInitialFilter.text(),
-                        options)
-                except AttributeError:
-                    QFileDialog.getOpenFileName(
-                        None,
-                        self.eCaption.text(),
-                        self.eStartWith.text(),
-                        self.eFilters.text(),
-                        self.eInitialFilter.text(),
-                        options)
+                options = QFileDialog.Options()
+            options = self.__adjustOptions(options)
+            try:
+                QFileDialog.getOpenFileUrl(
+                    None,
+                    self.eCaption.text(),
+                    QUrl(self.eStartWith.text()),
+                    self.eFilters.text(),
+                    self.eInitialFilter.text(),
+                    options,
+                    self.schemesEdit.text().split())
+            except TypeError:
+                # PyQt5 < 5.13.0 contains an error
+                QFileDialog.getOpenFileUrl(
+                    None,
+                    self.eCaption.text(),
+                    self.eStartWith.text(),
+                    self.eFilters.text(),
+                    self.eInitialFilter.text(),
+                    options,
+                    self.schemesEdit.text().split())
         elif self.rOpenFiles.isChecked() or self.rfOpenFiles.isChecked():
             if not self.cSymlinks.isChecked():
                 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks)
             else:
                 options = QFileDialog.Options()
             options = self.__adjustOptions(options)
-            if self.rOpenFiles.isChecked() and self.__pyqtVariant == 4:
-                try:
-                    QFileDialog.getOpenFileNames(
-                        None,
-                        self.eCaption.text(),
-                        self.eStartWith.text(),
-                        self.eFilters.text(),
-                        options)
-                except TypeError:
-                    QFileDialog.getOpenFileNames(
-                        None,
-                        self.eCaption.text(),
-                        self.eStartWith.text(),
-                        self.eFilters.text(),
-                        self.eInitialFilter.text(),
-                        options)
+            QFileDialog.getOpenFileNames(
+                None,
+                self.eCaption.text(),
+                self.eStartWith.text(),
+                self.eFilters.text(),
+                self.eInitialFilter.text(),
+                options)
+        elif self.rOpenFileUrls.isChecked():
+            if not self.cSymlinks.isChecked():
+                options = QFileDialog.Options(QFileDialog.DontResolveSymlinks)
             else:
-                try:
-                    QFileDialog.getOpenFileNamesAndFilter(
-                        None,
-                        self.eCaption.text(),
-                        self.eStartWith.text(),
-                        self.eFilters.text(),
-                        self.eInitialFilter.text(),
-                        options)
-                except AttributeError:
-                    QFileDialog.getOpenFileNames(
-                        None,
-                        self.eCaption.text(),
-                        self.eStartWith.text(),
-                        self.eFilters.text(),
-                        self.eInitialFilter.text(),
-                        options)
+                options = QFileDialog.Options()
+            options = self.__adjustOptions(options)
+            try:
+                QFileDialog.getOpenFileUrls(
+                    None,
+                    self.eCaption.text(),
+                    QUrl(self.eStartWith.text()),
+                    self.eFilters.text(),
+                    self.eInitialFilter.text(),
+                    options,
+                    self.schemesEdit.text().split())
+            except TypeError:
+                # PyQt5 < 5.13.0 contains an error
+                QFileDialog.getOpenFileUrls(
+                    None,
+                    self.eCaption.text(),
+                    self.eStartWith.text(),
+                    self.eFilters.text(),
+                    self.eInitialFilter.text(),
+                    options,
+                    self.schemesEdit.text().split())
         elif self.rSaveFile.isChecked() or self.rfSaveFile.isChecked():
             if not self.cSymlinks.isChecked():
                 options = QFileDialog.Options(QFileDialog.DontResolveSymlinks)
             else:
                 options = QFileDialog.Options()
             options = self.__adjustOptions(options)
-            if self.rSaveFile.isChecked() and self.__pyqtVariant == 4:
-                try:
-                    QFileDialog.getSaveFileName(
-                        None,
-                        self.eCaption.text(),
-                        self.eStartWith.text(),
-                        self.eFilters.text(),
-                        options)
-                except TypeError:
-                    QFileDialog.getSaveFileName(
-                        None,
-                        self.eCaption.text(),
-                        self.eStartWith.text(),
-                        self.eFilters.text(),
-                        self.eInitialFilter.text(),
-                        options)
+            QFileDialog.getSaveFileName(
+                None,
+                self.eCaption.text(),
+                self.eStartWith.text(),
+                self.eFilters.text(),
+                self.eInitialFilter.text(),
+                options)
+        elif self.rSaveFileUrl.isChecked():
+            if not self.cSymlinks.isChecked():
+                options = QFileDialog.Options(QFileDialog.DontResolveSymlinks)
             else:
-                try:
-                    QFileDialog.getSaveFileNameAndFilter(
-                        None,
-                        self.eCaption.text(),
-                        self.eStartWith.text(),
-                        self.eFilters.text(),
-                        self.eInitialFilter.text(),
-                        options)
-                except AttributeError:
-                    QFileDialog.getSaveFileName(
-                        None,
-                        self.eCaption.text(),
-                        self.eStartWith.text(),
-                        self.eFilters.text(),
-                        self.eInitialFilter.text(),
-                        options)
+                options = QFileDialog.Options()
+            options = self.__adjustOptions(options)
+            try:
+                QFileDialog.getSaveFileUrl(
+                    None,
+                    self.eCaption.text(),
+                    QUrl(self.eStartWith.text()),
+                    self.eFilters.text(),
+                    self.eInitialFilter.text(),
+                    options,
+                    self.schemesEdit.text().split())
+            except TypeError:
+                # PyQt5 < 5.13.0 contains an error
+                QFileDialog.getSaveFileUrl(
+                    None,
+                    self.eCaption.text(),
+                    self.eStartWith.text(),
+                    self.eFilters.text(),
+                    self.eInitialFilter.text(),
+                    options,
+                    self.schemesEdit.text().split())
         elif self.rDirectory.isChecked():
             options = QFileDialog.Options()
             if not self.cSymlinks.isChecked():
@@ -257,19 +294,44 @@
                 self.eCaption.text(),
                 self.eWorkDir.text(),
                 options)
+        elif self.rDirectoryUrl.isChecked():
+            options = QFileDialog.Options()
+            if not self.cSymlinks.isChecked():
+                options |= QFileDialog.Options(QFileDialog.DontResolveSymlinks)
+            if self.cDirOnly.isChecked():
+                options |= QFileDialog.Options(QFileDialog.ShowDirsOnly)
+            else:
+                options |= QFileDialog.Options(QFileDialog.Option(0))
+            options = self.__adjustOptions(options)
+            try:
+                QFileDialog.getExistingDirectoryUrl(
+                    None,
+                    self.eCaption.text(),
+                    QUrl(self.eWorkDir.text()),
+                    options,
+                    self.schemesEdit.text().split())
+            except TypeError:
+                # PyQt5 < 5.13.0 contains an error
+                QFileDialog.getExistingDirectoryUrl(
+                    None,
+                    self.eCaption.text(),
+                    self.eWorkDir.text(),
+                    options,
+                    self.schemesEdit.text().split())
     
     def __toggleConfirmCheckBox(self):
         """
         Private slot to enable/disable the confirmation check box.
         """
         self.cConfirmOverwrite.setEnabled(
-            self.rSaveFile.isChecked() or self.rfSaveFile.isChecked())
+            self.rSaveFile.isChecked() or self.rfSaveFile.isChecked() or
+            self.rSaveFileUrl.isChecked())
     
     def __toggleGroupsAndTest(self):
         """
         Private slot to enable/disable certain groups and the test button.
         """
-        if self.rDirectory.isChecked():
+        if self.rDirectory.isChecked() or self.rDirectoryUrl.isChecked():
             self.filePropertiesGroup.setEnabled(False)
             self.dirPropertiesGroup.setEnabled(True)
             self.bTest.setDisabled(self.cWorkDir.isChecked())
@@ -286,17 +348,19 @@
         
         @param checkedId id of the clicked button (integer)
         """
-        if (self.__pyqtVariant == 4 and checkedId in [11, 12, 13]) or \
-                (self.__pyqtVariant == 5 and checkedId in [1, 2, 3]):
-            enable = True
-        else:
-            enable = False
+        enable = (
+            (self.__dialogVariant in (-1, 4) and checkedId in [11, 12, 13]) or
+            (self.__dialogVariant == 5 and checkedId in [1, 2, 3, 21, 22, 23])
+        )
+        
         self.lInitialFilter.setEnabled(enable)
         self.eInitialFilter.setEnabled(enable)
         self.cInitialFilter.setEnabled(enable)
         
         self.lFilterVariable.setEnabled(enable)
         self.eFilterVariable.setEnabled(enable)
+        
+        self.urlPropertiesGroup.setEnabled(checkedId in (21, 22, 23, 31))
     
     def getCode(self, indLevel, indString):
         """
@@ -337,10 +401,10 @@
                 nameVariable = "res"
         filterVariable = self.eFilterVariable.text()
         if not filterVariable:
-            if (self.__pyqtVariant == 4 and
+            if (self.__dialogVariant in (-1, 4) and
                 self.__typeButtonsGroup.checkedButton() in [
                     self.rfOpenFile, self.rfOpenFiles, self.rfSaveFile]) or \
-                    (self.__pyqtVariant == 5 and
+                    (self.__dialogVariant == 5 and
                         self.__typeButtonsGroup.checkedButton() in [
                             self.rOpenFile, self.rOpenFiles, self.rSaveFile]):
                 filterVariable = ", selectedFilter"
@@ -349,10 +413,18 @@
         else:
             filterVariable = ", " + filterVariable
         
-        code = '{0}{1} = QFileDialog.'.format(nameVariable, filterVariable)
-        if self.rOpenFile.isChecked() or self.rfOpenFile.isChecked():
+        if self.__dialogVariant == -1:
+            dialogType = "E5FileDialog"
+        else:
+            dialogType = "QFileDialog"
+        
+        code = '{0}{1} = {2}.'.format(nameVariable, filterVariable, dialogType)
+        if self.rOpenFile.isChecked() or self.rfOpenFile.isChecked() or \
+           self.rOpenFileUrl.isChecked():
             if self.rOpenFile.isChecked():
                 code += 'getOpenFileName({0}{1}'.format(os.linesep, istring)
+            elif self.rOpenFileUrl.isChecked():
+                code += 'getOpenFileUrl({0}{1}'.format(os.linesep, istring)
             else:
                 code += 'getOpenFileNameAndFilter({0}{1}'.format(
                     os.linesep, istring)
@@ -362,14 +434,26 @@
             else:
                 code += 'self.tr("{0}"),{1}{2}'.format(
                     self.eCaption.text(), os.linesep, istring)
-            if not self.eStartWith.text():
-                code += '"",{0}{1}'.format(os.linesep, istring)
+            if self.rOpenFileUrl.isChecked():
+                if not self.eStartWith.text():
+                    code += 'QUrl(),{0}{1}'.format(os.linesep, istring)
+                else:
+                    if self.cStartWith.isChecked():
+                        fmt = '{0},{1}{2}'
+                    else:
+                        fmt = 'QUrl("{0}"),{1}{2}'
+                    code += fmt.format(self.eStartWith.text(), os.linesep,
+                                       istring)
             else:
-                if self.cStartWith.isChecked():
-                    fmt = '{0},{1}{2}'
+                if not self.eStartWith.text():
+                    code += '"",{0}{1}'.format(os.linesep, istring)
                 else:
-                    fmt = 'self.tr("{0}"),{1}{2}'
-                code += fmt.format(self.eStartWith.text(), os.linesep, istring)
+                    if self.cStartWith.isChecked():
+                        fmt = '{0},{1}{2}'
+                    else:
+                        fmt = '"{0}",{1}{2}'
+                    code += fmt.format(self.eStartWith.text(), os.linesep,
+                                       istring)
             if self.eFilters.text() == "":
                 code += '""'
             else:
@@ -378,7 +462,70 @@
                 else:
                     fmt = 'self.tr("{0}")'
                 code += fmt.format(self.eFilters.text())
-            if self.rfOpenFile.isChecked() or self.__pyqtVariant == 5:
+            if self.rfOpenFile.isChecked() or self.__dialogVariant == 5:
+                if self.eInitialFilter.text() == "":
+                    initialFilter = "None"
+                else:
+                    if self.cInitialFilter.isChecked():
+                        fmt = '{0}'
+                    else:
+                        fmt = 'self.tr("{0}")'
+                    initialFilter = fmt.format(self.eInitialFilter.text())
+                code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter)
+            if not self.cSymlinks.isChecked():
+                code += \
+                    ',{0}{1}{2}.Options(' \
+                    '{2}.DontResolveSymlinks)' \
+                    .format(os.linesep, istring, dialogType)
+            if self.rOpenFileUrl.isChecked() and bool(self.schemesEdit.text()):
+                code += \
+                    ',{0}{1}{2}'.format(os.linesep, istring,
+                                        self.__prepareSchemesList())
+            code += '){0}'.format(estring)
+        elif self.rOpenFiles.isChecked() or self.rfOpenFiles.isChecked() or \
+                self.rOpenFileUrls.isChecked():
+            if self.rOpenFiles.isChecked():
+                code += 'getOpenFileNames({0}{1}'.format(os.linesep, istring)
+            elif self.rOpenFileUrls.isChecked():
+                code += 'getOpenFileUrls({0}{1}'.format(os.linesep, istring)
+            else:
+                code += 'getOpenFileNamesAndFilter({0}{1}'.format(
+                    os.linesep, istring)
+            code += '{0},{1}{2}'.format(parent, os.linesep, istring)
+            if not self.eCaption.text():
+                code += '"",{0}{1}'.format(os.linesep, istring)
+            else:
+                code += 'self.tr("{0}"),{1}{2}'.format(
+                    self.eCaption.text(), os.linesep, istring)
+            if self.rOpenFileUrls.isChecked():
+                if not self.eStartWith.text():
+                    code += 'QUrl(),{0}{1}'.format(os.linesep, istring)
+                else:
+                    if self.cStartWith.isChecked():
+                        fmt = '{0},{1}{2}'
+                    else:
+                        fmt = 'QUrl("{0}"),{1}{2}'
+                    code += fmt.format(self.eStartWith.text(), os.linesep,
+                                       istring)
+            else:
+                if not self.eStartWith.text():
+                    code += '"",{0}{1}'.format(os.linesep, istring)
+                else:
+                    if self.cStartWith.isChecked():
+                        fmt = '{0},{1}{2}'
+                    else:
+                        fmt = '"{0}",{1}{2}'
+                    code += fmt.format(self.eStartWith.text(), os.linesep,
+                                       istring)
+            if not self.eFilters.text():
+                code += '""'
+            else:
+                if self.cFilters.isChecked():
+                    fmt = '{0}'
+                else:
+                    fmt = 'self.tr("{0}")'
+                code += fmt.format(self.eFilters.text())
+            if self.rfOpenFiles.isChecked() or self.__dialogVariant == 5:
                 if self.eInitialFilter.text() == "":
                     initialFilter = "None"
                 else:
@@ -390,57 +537,21 @@
                 code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter)
             if not self.cSymlinks.isChecked():
                 code += \
-                    ',{0}{1}QFileDialog.Options(' \
-                    'QFileDialog.DontResolveSymlinks)' \
-                    .format(os.linesep, istring)
+                    ',{0}{1}{2}.Options(' \
+                    '{2}.DontResolveSymlinks)' \
+                    .format(os.linesep, istring, dialogType)
+            if self.rOpenFileUrls.isChecked() and \
+               bool(self.schemesEdit.text()):
+                code += \
+                    ',{0}{1}{2}'.format(os.linesep, istring,
+                                        self.__prepareSchemesList())
             code += '){0}'.format(estring)
-        elif self.rOpenFiles.isChecked() or self.rfOpenFiles.isChecked():
-            if self.rOpenFiles.isChecked():
-                code += 'getOpenFileNames({0}{1}'.format(os.linesep, istring)
-            else:
-                code += 'getOpenFileNamesAndFilter({0}{1}'.format(
-                    os.linesep, istring)
-            code += '{0},{1}{2}'.format(parent, os.linesep, istring)
-            if not self.eCaption.text():
-                code += '"",{0}{1}'.format(os.linesep, istring)
-            else:
-                code += 'self.tr("{0}"),{1}{2}'.format(
-                    self.eCaption.text(), os.linesep, istring)
-            if not self.eStartWith.text():
-                code += '"",{0}{1}'.format(os.linesep, istring)
-            else:
-                if self.cStartWith.isChecked():
-                    fmt = '{0},{1}{2}'
-                else:
-                    fmt = 'self.tr("{0}"),{1}{2}'
-                code += fmt.format(self.eStartWith.text(), os.linesep, istring)
-            if not self.eFilters.text():
-                code += '""'
-            else:
-                if self.cFilters.isChecked():
-                    fmt = '{0}'
-                else:
-                    fmt = 'self.tr("{0}")'
-                code += fmt.format(self.eFilters.text())
-            if self.rfOpenFiles.isChecked() or self.__pyqtVariant == 5:
-                if self.eInitialFilter.text() == "":
-                    initialFilter = "None"
-                else:
-                    if self.cInitialFilter.isChecked():
-                        fmt = '{0}'
-                    else:
-                        fmt = 'self.tr("{0}")'
-                    initialFilter = fmt.format(self.eInitialFilter.text())
-                code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter)
-            if not self.cSymlinks.isChecked():
-                code += \
-                    ',{0}{1}QFileDialog.Options(' \
-                    'QFileDialog.DontResolveSymlinks)' \
-                    .format(os.linesep, istring)
-            code += '){0}'.format(estring)
-        elif self.rSaveFile.isChecked() or self.rfSaveFile.isChecked():
+        elif self.rSaveFile.isChecked() or self.rfSaveFile.isChecked() or \
+                self.rSaveFileUrl.isChecked():
             if self.rSaveFile.isChecked():
                 code += 'getSaveFileName({0}{1}'.format(os.linesep, istring)
+            elif self.rSaveFileUrl.isChecked():
+                code += 'getSaveFileUrl({0}{1}'.format(os.linesep, istring)
             else:
                 code += 'getSaveFileNameAndFilter({0}{1}'.format(
                     os.linesep, istring)
@@ -450,14 +561,26 @@
             else:
                 code += 'self.tr("{0}"),{1}{2}'.format(
                     self.eCaption.text(), os.linesep, istring)
-            if not self.eStartWith.text():
-                code += '"",{0}{1}'.format(os.linesep, istring)
+            if self.rSaveFileUrl.isChecked():
+                if not self.eStartWith.text():
+                    code += 'QUrl(),{0}{1}'.format(os.linesep, istring)
+                else:
+                    if self.cStartWith.isChecked():
+                        fmt = '{0},{1}{2}'
+                    else:
+                        fmt = 'QUrl("{0}"),{1}{2}'
+                    code += fmt.format(self.eStartWith.text(), os.linesep,
+                                       istring)
             else:
-                if self.cStartWith.isChecked():
-                    fmt = '{0},{1}{2}'
+                if not self.eStartWith.text():
+                    code += '"",{0}{1}'.format(os.linesep, istring)
                 else:
-                    fmt = 'self.tr("{0}"),{1}{2}'
-                code += fmt.format(self.eStartWith.text(), os.linesep, istring)
+                    if self.cStartWith.isChecked():
+                        fmt = '{0},{1}{2}'
+                    else:
+                        fmt = '"{0}",{1}{2}'
+                    code += fmt.format(self.eStartWith.text(), os.linesep,
+                                       istring)
             if not self.eFilters.text():
                 code += '""'
             else:
@@ -466,7 +589,7 @@
                 else:
                     fmt = 'self.tr("{0}")'
                 code += fmt.format(self.eFilters.text())
-            if self.rfSaveFile.isChecked() or self.__pyqtVariant == 5:
+            if self.rfSaveFile.isChecked() or self.__dialogVariant == 5:
                 if self.eInitialFilter.text() == "":
                     initialFilter = "None"
                 else:
@@ -478,40 +601,75 @@
                 code += ',{0}{1}{2}'.format(os.linesep, istring, initialFilter)
             if (not self.cSymlinks.isChecked()) or \
                (not self.cConfirmOverwrite.isChecked()):
-                code += ',{0}{1}QFileDialog.Options('.format(
-                    os.linesep, istring)
+                code += ',{0}{1}{2}.Options('.format(
+                    os.linesep, istring, dialogType)
                 if not self.cSymlinks.isChecked():
-                    code += 'QFileDialog.DontResolveSymlinks'
+                    code += '{0}.DontResolveSymlinks'.format(dialogType)
                 if (not self.cSymlinks.isChecked()) and \
                    (not self.cConfirmOverwrite.isChecked()):
                     code += ' | '
                 if not self.cConfirmOverwrite.isChecked():
-                    code += 'QFileDialog.DontConfirmOverwrite'
+                    code += '{0}.DontConfirmOverwrite'.format(dialogType)
                 code += ')'
+            if self.rSaveFileUrl.isChecked() and \
+               bool(self.schemesEdit.text()):
+                code += \
+                    ',{0}{1}{2}'.format(os.linesep, istring,
+                                        self.__prepareSchemesList())
             code += '){0}'.format(estring)
-        elif self.rDirectory.isChecked():
-            code += 'getExistingDirectory({0}{1}'.format(os.linesep, istring)
+        elif self.rDirectory.isChecked() or self.rDirectoryUrl.isChecked():
+            if self.rDirectory.isChecked():
+                code += 'getExistingDirectory({0}{1}'.format(
+                    os.linesep, istring)
+            else:
+                code += 'getExistingDirectoryUrl({0}{1}'.format(
+                    os.linesep, istring)
             code += '{0},{1}{2}'.format(parent, os.linesep, istring)
             if not self.eCaption.text():
                 code += '"",{0}{1}'.format(os.linesep, istring)
             else:
                 code += 'self.tr("{0}"),{1}{2}'.format(
                     self.eCaption.text(), os.linesep, istring)
-            if not self.eWorkDir.text():
-                code += '""'
+            if self.rDirectoryUrl.isChecked():
+                if not self.eWorkDir.text():
+                    code += 'QUrl()'
+                else:
+                    if self.cWorkDir.isChecked():
+                        fmt = '{0}'
+                    else:
+                        fmt = 'QUrl("{0}")'
+                    code += fmt.format(self.eWorkDir.text())
             else:
-                if self.cWorkDir.isChecked():
-                    fmt = '{0}'
+                if not self.eWorkDir.text():
+                    code += '""'
                 else:
-                    fmt = 'self.tr("{0}")'
-                code += fmt.format(self.eWorkDir.text())
-            code += ',{0}{1}QFileDialog.Options('.format(os.linesep, istring)
+                    if self.cWorkDir.isChecked():
+                        fmt = '{0}'
+                    else:
+                        fmt = '"{0}"'
+                    code += fmt.format(self.eWorkDir.text())
+            code += ',{0}{1}{2}.Options('.format(os.linesep, istring,
+                                                 dialogType)
             if not self.cSymlinks.isChecked():
-                code += 'QFileDialog.DontResolveSymlinks | '
+                code += '{0}.DontResolveSymlinks | '.format(dialogType)
             if self.cDirOnly.isChecked():
-                code += 'QFileDialog.ShowDirsOnly'
+                code += '{0}.ShowDirsOnly'.format(dialogType)
             else:
-                code += 'QFileDialog.Option(0)'
-            code += ')){0}'.format(estring)
+                code += '{0}.Option(0)'.format(dialogType)
+            code += ')'
+            if self.rDirectoryUrl.isChecked():
+                code += \
+                    ',{0}{1}{2}'.format(os.linesep, istring,
+                                        self.__prepareSchemesList())
+            code += '){0}'.format(estring)
             
         return code
+    
+    def __prepareSchemesList(self):
+        """
+        Private method to prepare the list of supported schemes.
+        
+        @return string representation of the supported schemes
+        @rtype str
+        """
+        return repr(self.schemesEdit.text().strip().split())
--- a/eric6/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/WizardPlugins/FileDialogWizard/FileDialogWizardDialog.ui	Sat Sep 07 16:10:29 2019 +0200
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>604</width>
-    <height>660</height>
+    <height>742</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -22,7 +22,7 @@
      <item>
       <widget class="QLabel" name="label">
        <property name="text">
-        <string>PyQt Variant:</string>
+        <string>Variant:</string>
        </property>
       </widget>
      </item>
@@ -126,6 +126,49 @@
         </property>
        </widget>
       </item>
+      <item row="2" column="0">
+       <widget class="QRadioButton" name="rOpenFileUrl">
+        <property name="toolTip">
+         <string>Select to create an 'Open File' dialog</string>
+        </property>
+        <property name="text">
+         <string>Open File URL</string>
+        </property>
+        <property name="checked">
+         <bool>false</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1">
+       <widget class="QRadioButton" name="rOpenFileUrls">
+        <property name="toolTip">
+         <string>Select to create an 'Open Files' dialog</string>
+        </property>
+        <property name="text">
+         <string>Open Files URL</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="2">
+       <widget class="QRadioButton" name="rSaveFileUrl">
+        <property name="toolTip">
+         <string>Select to create a 'Save File' dialog</string>
+        </property>
+        <property name="text">
+         <string>Save File URL</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="3">
+       <widget class="QRadioButton" name="rDirectoryUrl">
+        <property name="toolTip">
+         <string>Select to create a 'Select Directory' dialog</string>
+        </property>
+        <property name="text">
+         <string>Select Directory URL</string>
+        </property>
+       </widget>
+      </item>
      </layout>
     </widget>
    </item>
@@ -143,7 +186,11 @@
        </widget>
       </item>
       <item row="0" column="1">
-       <widget class="QLineEdit" name="eNameVariable"/>
+       <widget class="QLineEdit" name="eNameVariable">
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
+       </widget>
       </item>
       <item row="1" column="0">
        <widget class="QLabel" name="lFilterVariable">
@@ -153,7 +200,11 @@
        </widget>
       </item>
       <item row="1" column="1">
-       <widget class="QLineEdit" name="eFilterVariable"/>
+       <widget class="QLineEdit" name="eFilterVariable">
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
+       </widget>
       </item>
      </layout>
     </widget>
@@ -172,6 +223,9 @@
        <property name="toolTip">
         <string>Enter the title text</string>
        </property>
+       <property name="clearButtonEnabled">
+        <bool>true</bool>
+       </property>
       </widget>
      </item>
     </layout>
@@ -238,6 +292,9 @@
           <property name="toolTip">
            <string>Enter the parent expression</string>
           </property>
+          <property name="clearButtonEnabled">
+           <bool>true</bool>
+          </property>
          </widget>
         </item>
        </layout>
@@ -263,6 +320,9 @@
         <property name="toolTip">
          <string>Enter the working directory or a filename</string>
         </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
        </widget>
       </item>
       <item row="1" column="1">
@@ -287,6 +347,9 @@
         <property name="toolTip">
          <string>Enter the filter specifications separated by ';;'</string>
         </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
        </widget>
       </item>
       <item row="3" column="1">
@@ -311,6 +374,9 @@
         <property name="toolTip">
          <string>Enter the initial filter</string>
         </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
        </widget>
       </item>
       <item row="5" column="1">
@@ -353,6 +419,9 @@
         <property name="toolTip">
          <string>Enter the working directory</string>
         </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
        </widget>
       </item>
       <item row="0" column="0" colspan="2">
@@ -389,6 +458,32 @@
     </widget>
    </item>
    <item>
+    <widget class="QGroupBox" name="urlPropertiesGroup">
+     <property name="title">
+      <string>URL Properties</string>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout_4">
+      <item>
+       <widget class="QLabel" name="label_3">
+        <property name="text">
+         <string>Supported Schemes:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLineEdit" name="schemesEdit">
+        <property name="toolTip">
+         <string>Enter the list of supported schemes separated by spaces</string>
+        </property>
+        <property name="clearButtonEnabled">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
     <widget class="QDialogButtonBox" name="buttonBox">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
@@ -410,6 +505,10 @@
   <tabstop>rfOpenFile</tabstop>
   <tabstop>rfOpenFiles</tabstop>
   <tabstop>rfSaveFile</tabstop>
+  <tabstop>rOpenFileUrl</tabstop>
+  <tabstop>rOpenFileUrls</tabstop>
+  <tabstop>rSaveFileUrl</tabstop>
+  <tabstop>rDirectoryUrl</tabstop>
   <tabstop>eNameVariable</tabstop>
   <tabstop>eFilterVariable</tabstop>
   <tabstop>eCaption</tabstop>
@@ -428,7 +527,7 @@
   <tabstop>eWorkDir</tabstop>
   <tabstop>cWorkDir</tabstop>
   <tabstop>cDirOnly</tabstop>
-  <tabstop>buttonBox</tabstop>
+  <tabstop>schemesEdit</tabstop>
  </tabstops>
  <resources/>
  <connections>
--- a/eric6/Plugins/WizardPlugins/InputDialogWizard/InputDialogWizardDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/WizardPlugins/InputDialogWizard/InputDialogWizardDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -117,7 +117,7 @@
         
     def getCode(self, indLevel, indString):
         """
-        Public method to get the source code for Qt4/Qt5.
+        Public method to get the source code for Qt5.
         
         @param indLevel indentation level (int)
         @param indString string used for indentation (space or tab) (string)
--- a/eric6/Plugins/WizardPlugins/MessageBoxWizard/MessageBoxWizardDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/WizardPlugins/MessageBoxWizard/MessageBoxWizardDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -103,9 +103,9 @@
         self.bTest = self.buttonBox.addButton(
             self.tr("Test"), QDialogButtonBox.ActionRole)
     
-    def __testQt42(self):
+    def __testSelectedOptions(self):
         """
-        Private method to test the selected options for Qt 4.2.0.
+        Private method to test the selected options.
         """
         buttons = QMessageBox.NoButton
         if self.abortCheck.isChecked():
@@ -209,7 +209,7 @@
                 self.eCaption.text()
             )
         else:
-            self.__testQt42()
+            self.__testSelectedOptions()
     
     def __enabledGroups(self):
         """
--- a/eric6/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -409,14 +409,8 @@
                     flags |= re.DOTALL
                 if self.verboseCheckBox.isChecked():
                     flags |= re.VERBOSE
-                if self.py2Button.isChecked():
-                    if self.localeCheckBox.isChecked():
-                        flags |= re.LOCALE
-                    if self.unicodeCheckBox.isChecked():
-                        flags |= re.UNICODE
-                else:
-                    if self.unicodeCheckBox.isChecked():
-                        flags |= re.ASCII
+                if self.unicodeCheckBox.isChecked():
+                    flags |= re.ASCII
                 re.compile(regex, flags)
                 E5MessageBox.information(
                     self,
@@ -465,14 +459,8 @@
                     flags |= re.DOTALL
                 if self.verboseCheckBox.isChecked():
                     flags |= re.VERBOSE
-                if self.py2Button.isChecked():
-                    if self.localeCheckBox.isChecked():
-                        flags |= re.LOCALE
-                    if self.unicodeCheckBox.isChecked():
-                        flags |= re.UNICODE
-                else:
-                    if self.unicodeCheckBox.isChecked():
-                        flags |= re.ASCII
+                if self.unicodeCheckBox.isChecked():
+                    flags |= re.ASCII
                 regobj = re.compile(regex, flags)
                 matchobj = regobj.search(text, startpos)
                 if matchobj is not None:
@@ -608,31 +596,6 @@
         """
         self.nextButton.setEnabled(False)
         
-    @pyqtSlot(bool)
-    def on_py2Button_toggled(self, checked):
-        """
-        Private slot called when the Python version was selected.
-        
-        @param checked state of the Python 2 button (boolean)
-        """
-        # set the checkboxes
-        self.localeCheckBox.setEnabled(checked)
-        if checked:
-            self.unicodeCheckBox.setText(self.tr("Unicode"))
-        else:
-            self.unicodeCheckBox.setText(self.tr("ASCII"))
-        self.unicodeCheckBox.setChecked(not self.unicodeCheckBox.isChecked())
-        
-        # clear the result table
-        self.resultTable.clear()
-        self.resultTable.setColumnCount(0)
-        self.resultTable.setRowCount(0)
-        
-        # remove the highlight
-        tc = self.textTextEdit.textCursor()
-        tc.setPosition(0)
-        self.textTextEdit.setTextCursor(tc)
-        
     def getCode(self, indLevel, indString):
         """
         Public method to get the source code.
@@ -662,14 +625,8 @@
             flags.append('re.DOTALL')
         if self.verboseCheckBox.isChecked():
             flags.append('re.VERBOSE')
-        if self.localeCheckBox.isChecked() and \
-           self.py2Button.isChecked():
-            flags.append('re.LOCALE')
         if self.unicodeCheckBox.isChecked():
-            if self.py2Button.isChecked():
-                flags.append('re.UNICODE')
-            else:
-                flags.append('re.ASCII')
+            flags.append('re.ASCII')
         flags = " | ".join(flags)
         
         code = ''
--- a/eric6/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardDialog.ui	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/WizardPlugins/PyRegExpWizard/PyRegExpWizardDialog.ui	Sat Sep 07 16:10:29 2019 +0200
@@ -18,51 +18,6 @@
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <widget class="QGroupBox" name="versionGroup">
-     <property name="title">
-      <string>Python Version</string>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <item>
-       <widget class="QRadioButton" name="py2Button">
-        <property name="statusTip">
-         <string/>
-        </property>
-        <property name="text">
-         <string>Python 2</string>
-        </property>
-        <property name="checked">
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QRadioButton" name="py3Button">
-        <property name="text">
-         <string>Python 3</string>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <spacer name="horizontalSpacer">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>535</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
     <layout class="QHBoxLayout">
      <item>
       <widget class="QLabel" name="variableLabel">
@@ -428,13 +383,6 @@
          </property>
         </widget>
        </item>
-       <item row="1" column="2">
-        <widget class="QCheckBox" name="unicodeCheckBox">
-         <property name="text">
-          <string>ASCII</string>
-         </property>
-        </widget>
-       </item>
        <item row="1" column="0">
         <widget class="QCheckBox" name="verboseCheckBox">
          <property name="text">
@@ -453,12 +401,9 @@
         </widget>
        </item>
        <item row="1" column="1">
-        <widget class="QCheckBox" name="localeCheckBox">
-         <property name="enabled">
-          <bool>false</bool>
-         </property>
+        <widget class="QCheckBox" name="unicodeCheckBox">
          <property name="text">
-          <string>Observe Locale</string>
+          <string>ASCII</string>
          </property>
         </widget>
        </item>
@@ -513,8 +458,6 @@
  </widget>
  <pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
  <tabstops>
-  <tabstop>py2Button</tabstop>
-  <tabstop>py3Button</tabstop>
   <tabstop>variableLineEdit</tabstop>
   <tabstop>importCheckBox</tabstop>
   <tabstop>commentButton</tabstop>
@@ -539,13 +482,11 @@
   <tabstop>regexpTextEdit</tabstop>
   <tabstop>textTextEdit</tabstop>
   <tabstop>caseSensitiveCheckBox</tabstop>
+  <tabstop>multilineCheckBox</tabstop>
+  <tabstop>dotallCheckBox</tabstop>
   <tabstop>verboseCheckBox</tabstop>
-  <tabstop>multilineCheckBox</tabstop>
-  <tabstop>localeCheckBox</tabstop>
-  <tabstop>dotallCheckBox</tabstop>
   <tabstop>unicodeCheckBox</tabstop>
   <tabstop>resultTable</tabstop>
-  <tabstop>buttonBox</tabstop>
  </tabstops>
  <resources/>
  <connections/>
--- a/eric6/Plugins/WizardPlugins/QRegExpWizard/QRegExpWizardDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/WizardPlugins/QRegExpWizard/QRegExpWizardDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -25,7 +25,6 @@
 
 import Utilities
 import Preferences
-from Globals import qVersionTuple
 
 
 class QRegExpWizardWidget(QWidget, Ui_QRegExpWizardWidget):
@@ -82,8 +81,7 @@
         self.syntaxCombo.addItem("Unix Wildcard", QRegExp.WildcardUnix)
         self.syntaxCombo.addItem("Fixed String", QRegExp.FixedString)
         self.syntaxCombo.addItem("W3C XML Schema 1.1", QRegExp.W3CXmlSchema11)
-        if qVersionTuple() >= (5, 0, 0):
-            self.syntaxCombo.setCurrentIndex(1)
+        self.syntaxCombo.setCurrentIndex(1)
         
         self.saveButton = self.buttonBox.addButton(
             self.tr("Save"), QDialogButtonBox.ActionRole)
@@ -647,8 +645,7 @@
                 istring, reVar, os.linesep)
         syntax = self.syntaxCombo.itemData(self.syntaxCombo.currentIndex())
         needPatternSyntax = True
-        if qVersionTuple() < (5, 0, 0) and syntax == QRegExp.RegExp or \
-           qVersionTuple() >= (5, 0, 0) and syntax == QRegExp.RegExp2:
+        if syntax == QRegExp.RegExp2:
             # default value selected
             needPatternSyntax = False
         if needPatternSyntax:
--- a/eric6/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Plugins/WizardPlugins/SetupWizard/SetupWizardDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode    # __IGNORE_WARNING__
-except NameError:
-    pass
 
 import os
 import sys
--- a/eric6/Preferences/ConfigurationDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -12,8 +12,7 @@
 import os
 import types
 
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, PYQT_VERSION, Qt, QMetaObject, \
-    QRect
+from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QMetaObject, QRect
 from PyQt5.QtGui import QPixmap
 from PyQt5.QtWidgets import QSizePolicy, QSpacerItem, QWidget, QTreeWidget, \
     QStackedWidget, QDialog, QSplitter, QScrollArea, QApplication, \
@@ -24,7 +23,7 @@
 from E5Gui import E5MessageBox
 from E5Gui.E5MainWindow import E5MainWindow
 
-from Globals import isMacPlatform, qVersionTuple, getWebBrowserSupport
+from Globals import isMacPlatform, getWebBrowserSupport
 
 import Preferences
 
@@ -358,96 +357,24 @@
                     "webBrowserPage":
                     [self.tr("eric6 Web Browser"), "ericWeb.png",
                      "WebBrowserPage", "0webBrowserPage", None],
-                    "helpFlashCookieManagerPage":
+                    "webBrowserFlashCookieManagerPage":
                     [self.tr("Flash Cookie Manager"),
                      "flashCookie16.png",
-                     "HelpFlashCookieManagerPage", "0webBrowserPage", None],
+                     "WebBrowserFlashCookieManagerPage", "0webBrowserPage",
+                     None],
                     "webBrowserVirusTotalPage":
                     [self.tr("VirusTotal Interface"), "virustotal.png",
                      "WebBrowserVirusTotalPage", "0webBrowserPage", None],
+                    "webBrowserSpellCheckingPage":
+                    [self.tr("Spell checking"),
+                     "preferences-spellchecking.png",
+                     "WebBrowserSpellCheckingPage", "0webBrowserPage",
+                     None],
                 })
-                if qVersionTuple() >= (5, 8, 0) and PYQT_VERSION >= 0x50800:
-                    self.configItems.update({
-                        "webBrowserSpellCheckingPage":
-                        [self.tr("Spell checking"),
-                         "preferences-spellchecking.png",
-                         "WebBrowserSpellCheckingPage", "0webBrowserPage",
-                         None],
-                    })
-            else:
-                try:
-                    from PyQt5 import QtWebKit      # __IGNORE_WARNING__
-                    self.configItems.update({
-                        "0helpBrowserPage":
-                        [self.tr("Web Browser"), "ericWeb.png",
-                         None, None, None],
-                        "helpAppearancePage":
-                        [self.tr("Appearance"), "preferences-styles.png",
-                         "HelpAppearancePage", "0helpBrowserPage", None],
-                        "helpWebBrowserPage":
-                        [self.tr("eric6 Web Browser"), "ericWeb.png",
-                         "HelpWebBrowserPage", "0helpBrowserPage", None],
-                        "helpFlashCookieManagerPage":
-                        [self.tr("Flash Cookie Manager"),
-                         "flashCookie16.png",
-                         "HelpFlashCookieManagerPage", "0helpBrowserPage",
-                         None],
-                        "helpVirusTotalPage":
-                        [self.tr("VirusTotal Interface"), "virustotal.png",
-                         "HelpVirusTotalPage", "0helpBrowserPage", None],
-                    })
-                except ImportError:
-                    pass
             
             self.configItems.update(
                 e5App().getObject("PluginManager").getPluginConfigData())
         
-        elif displayMode == ConfigurationWidget.HelpBrowserMode:
-            self.configItems = {
-                # key : [display string, pixmap name, dialog module name or
-                #        page creation function, parent key,
-                #        reference to configuration page (must always be last)]
-                # The dialog module must have the module function 'create' to
-                # create the configuration page. This must have the method
-                # 'save' to save the settings.
-                "interfacePage":
-                [self.tr("Interface"), "preferences-interface.png",
-                 "HelpInterfacePage", None, None],
-                "networkPage":
-                [self.tr("Network"), "preferences-network.png",
-                 "NetworkPage", None, None],
-                "printerPage":
-                [self.tr("Printer"), "preferences-printer.png",
-                 "PrinterPage", None, None],
-                "securityPage":
-                [self.tr("Security"), "preferences-security.png",
-                 "SecurityPage", None, None],
-                
-                "helpDocumentationPage":
-                [self.tr("Help Documentation"),
-                 "preferences-helpdocumentation.png",
-                 "HelpDocumentationPage", None, None],
-            }
-            try:
-                from PyQt5 import QtWebKit      # __IGNORE_WARNING__
-                self.configItems.update({
-                    "helpAppearancePage":
-                    [self.tr("Appearance"), "preferences-styles.png",
-                     "HelpAppearancePage", None, None],
-                    "helpFlashCookieManagerPage":
-                    [self.tr("Flash Cookie Manager"),
-                     "flashCookie16.png",
-                     "HelpFlashCookieManagerPage", None, None],
-                    "helpVirusTotalPage":
-                    [self.tr("VirusTotal Interface"), "virustotal.png",
-                     "HelpVirusTotalPage", None, None],
-                    "helpWebBrowserPage":
-                    [self.tr("eric6 Web Browser"), "ericWeb.png",
-                     "HelpWebBrowserPage", None, None],
-                })
-            except ImportError:
-                pass
-        
         elif displayMode == ConfigurationWidget.WebBrowserMode:
             self.configItems = {
                 # key : [display string, pixmap name, dialog module name or
@@ -481,22 +408,19 @@
                 [self.tr("eric6 Web Browser"), "ericWeb.png",
                  "WebBrowserPage", None, None],
                 
-                "helpFlashCookieManagerPage":
+                "webBrowserFlashCookieManagerPage":
                 [self.tr("Flash Cookie Manager"),
                  "flashCookie16.png",
-                 "HelpFlashCookieManagerPage", None, None],
+                 "WebBrowserFlashCookieManagerPage", None, None],
                 "webBrowserVirusTotalPage":
                 [self.tr("VirusTotal Interface"), "virustotal.png",
                  "WebBrowserVirusTotalPage", None, None],
+                
+                "webBrowserSpellCheckingPage":
+                [self.tr("Spell checking"),
+                 "preferences-spellchecking.png",
+                 "WebBrowserSpellCheckingPage", None, None],
             }
-            
-            if qVersionTuple() >= (5, 8, 0) and PYQT_VERSION >= 0x50800:
-                self.configItems.update({
-                    "webBrowserSpellCheckingPage":
-                    [self.tr("Spell checking"),
-                     "preferences-spellchecking.png",
-                     "WebBrowserSpellCheckingPage", None, None],
-                })
         
         elif displayMode == ConfigurationWidget.TrayStarterMode:
             self.configItems = {
--- a/eric6/Preferences/ConfigurationPages/EditorCalltipsPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationPages/EditorCalltipsPage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -11,8 +11,6 @@
 
 from PyQt5.Qsci import QsciScintilla
 
-from QScintilla.QsciScintillaCompat import QSCINTILLA_VERSION
-
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorCalltipsPage import Ui_EditorCalltipsPage
 
@@ -31,15 +29,12 @@
         self.setupUi(self)
         self.setObjectName("EditorCalltipsPage")
         
-        if QSCINTILLA_VERSION() >= 0x020700:
-            self.positionComboBox.addItem(
-                self.tr("Below Text"),
-                QsciScintilla.CallTipsBelowText)
-            self.positionComboBox.addItem(
-                self.tr("Above Text"),
-                QsciScintilla.CallTipsAboveText)
-        else:
-            self.calltipsPositionBox.hide()
+        self.positionComboBox.addItem(
+            self.tr("Below Text"),
+            QsciScintilla.CallTipsBelowText)
+        self.positionComboBox.addItem(
+            self.tr("Above Text"),
+            QsciScintilla.CallTipsAboveText)
         
         # set initial values
         self.ctEnabledCheckBox.setChecked(
@@ -53,10 +48,9 @@
         self.ctScintillaCheckBox.setChecked(
             Preferences.getEditor("CallTipsScintillaOnFail"))
         
-        if QSCINTILLA_VERSION() >= 0x020700:
-            self.positionComboBox.setCurrentIndex(
-                self.positionComboBox.findData(
-                    Preferences.getEditor("CallTipsPosition")))
+        self.positionComboBox.setCurrentIndex(
+            self.positionComboBox.findData(
+                Preferences.getEditor("CallTipsPosition")))
         
     def save(self):
         """
@@ -75,11 +69,10 @@
             "CallTipsScintillaOnFail",
             self.ctScintillaCheckBox.isChecked())
         
-        if QSCINTILLA_VERSION() >= 0x020700:
-            Preferences.setEditor(
-                "CallTipsPosition",
-                self.positionComboBox.itemData(
-                    self.positionComboBox.currentIndex()))
+        Preferences.setEditor(
+            "CallTipsPosition",
+            self.positionComboBox.itemData(
+                self.positionComboBox.currentIndex()))
 
 
 def create(dlg):
--- a/eric6/Preferences/ConfigurationPages/EditorHighlightersPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationPages/EditorHighlightersPage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -20,7 +20,6 @@
 from .Ui_EditorHighlightersPage import Ui_EditorHighlightersPage
 
 import Preferences
-from Globals import qVersionTuple
 
 
 class EditorHighlightersPage(ConfigurationPageBase, Ui_EditorHighlightersPage):
@@ -40,10 +39,7 @@
         self.editorLexerList.headerItem().setText(
             self.editorLexerList.columnCount(), "")
         header = self.editorLexerList.header()
-        if qVersionTuple() >= (5, 0, 0):
-            header.setSectionResizeMode(QHeaderView.ResizeToContents)
-        else:
-            header.setResizeMode(QHeaderView.ResizeToContents)
+        header.setSectionResizeMode(QHeaderView.ResizeToContents)
         header.setSortIndicator(0, Qt.AscendingOrder)
         
         try:
--- a/eric6/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationPages/EditorHighlightingStylesPage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -20,8 +20,6 @@
 
 from E5Gui import E5MessageBox, E5FileDialog
 
-from Globals import qVersionTuple
-
 import UI.PixmapCache
 
 try:
@@ -60,10 +58,6 @@
         self.editSubstyleButton.setIcon(UI.PixmapCache.getIcon("edit"))
         self.copySubstyleButton.setIcon(UI.PixmapCache.getIcon("editCopy"))
         
-        if qVersionTuple() < (5, 0, 0):
-            self.monospacedButton.setChecked(False)
-            self.monospacedButton.hide()
-        
         self.__fontButtonMenu = QMenu()
         act = self.__fontButtonMenu.addAction(self.tr("Font"))
         act.setData(self.FONT)
--- a/eric6/Preferences/ConfigurationPages/EditorPropertiesPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationPages/EditorPropertiesPage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,8 +9,6 @@
 
 from __future__ import unicode_literals
 
-from QScintilla.QsciScintillaCompat import QSCINTILLA_VERSION
-
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorPropertiesPage import Ui_EditorPropertiesPage
 
@@ -304,16 +302,15 @@
         Preferences.setEditor(
             "CppHighlightHashQuotedStrings",
             self.cppHighlightHashQuotedCheckBox.isChecked())
-        if QSCINTILLA_VERSION() >= 0x020900:
-            Preferences.setEditor(
-                "CppHighlightBackQuotedStrings",
-                self.cppHighlightBackQuotedCheckBox.isChecked())
-            Preferences.setEditor(
-                "CppHighlightEscapeSequences",
-                self.cppHighlightEsacepSequencesCheckBox.isChecked())
-            Preferences.setEditor(
-                "CppVerbatimStringEscapeSequencesAllowed",
-                self.cppVerbatimStringEscapeAllowedCheckBox.isChecked())
+        Preferences.setEditor(
+            "CppHighlightBackQuotedStrings",
+            self.cppHighlightBackQuotedCheckBox.isChecked())
+        Preferences.setEditor(
+            "CppHighlightEscapeSequences",
+            self.cppHighlightEsacepSequencesCheckBox.isChecked())
+        Preferences.setEditor(
+            "CppVerbatimStringEscapeSequencesAllowed",
+            self.cppVerbatimStringEscapeAllowedCheckBox.isChecked())
         
         # CMake
         Preferences.setEditor(
--- a/eric6/Preferences/ConfigurationPages/EditorSearchPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationPages/EditorSearchPage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,8 +9,6 @@
 
 from __future__ import unicode_literals
 
-from QScintilla.QsciScintillaCompat import QSCINTILLA_VERSION
-
 from .ConfigurationPageBase import ConfigurationPageBase
 from .Ui_EditorSearchPage import Ui_EditorSearchPage
 
@@ -42,13 +40,10 @@
         self.markOccurrencesTimeoutSpinBox.setValue(
             Preferences.getEditor("MarkOccurrencesTimeout"))
         
-        if QSCINTILLA_VERSION() < 0x020B00:
-            self.regexpModeBox.setEnabled(False)
+        if Preferences.getEditor("SearchRegexpMode") == 0:
+            self.regexpPosixButton.setChecked(True)
         else:
-            if Preferences.getEditor("SearchRegexpMode") == 0:
-                self.regexpPosixButton.setChecked(True)
-            else:
-                self.regexpCxx11Button.setChecked(True)
+            self.regexpCxx11Button.setChecked(True)
         
         self.initColour(
             "SearchMarkers", self.searchMarkerButton,
--- a/eric6/Preferences/ConfigurationPages/EditorStylesPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationPages/EditorStylesPage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -37,8 +37,8 @@
         self.setupUi(self)
         self.setObjectName("EditorStylesPage")
         
-        from QScintilla.QsciScintillaCompat import QsciScintillaCompat, \
-            QSCINTILLA_VERSION
+        from QScintilla.QsciScintillaCompat import QsciScintillaCompat
+        
         self.foldStyles = [
             QsciScintilla.PlainFoldStyle,
             QsciScintilla.CircledFoldStyle,
@@ -67,10 +67,9 @@
             self.tr("Indicator by Text"), QsciScintilla.WrapFlagByText)
         self.wrapVisualComboBox.addItem(
             self.tr("Indicator by Margin"), QsciScintilla.WrapFlagByBorder)
-        if QSCINTILLA_VERSION() >= 0x020700:
-            self.wrapVisualComboBox.addItem(
-                self.tr("Indicator in Line Number Margin"),
-                QsciScintilla.WrapFlagInMargin)
+        self.wrapVisualComboBox.addItem(
+            self.tr("Indicator in Line Number Margin"),
+            QsciScintilla.WrapFlagInMargin)
         
         self.wrapIndentComboBox.addItem(
             self.tr("Fixed"), QsciScintilla.WrapIndentFixed)
@@ -79,15 +78,9 @@
         self.wrapIndentComboBox.addItem(
             self.tr("Aligned plus One"),
             QsciScintilla.WrapIndentIndented)
-        if QSCINTILLA_VERSION() >= 0x020B00:
-            self.wrapIndentComboBox.addItem(
-                self.tr("Aligned plus Two"),
-                QsciScintilla.WrapIndentDeeplyIndented)
-        
-        self.caretlineAlwaysVisibleCheckBox.setEnabled(
-            QSCINTILLA_VERSION() >= 0x020800)
-        self.caretlineFrameWidthSpinBox.setEnabled(
-            QSCINTILLA_VERSION() >= 0x020B00)
+        self.wrapIndentComboBox.addItem(
+            self.tr("Aligned plus Two"),
+            QsciScintilla.WrapIndentDeeplyIndented)
         
         # set initial values
         try:
--- a/eric6/Preferences/ConfigurationPages/HelpAppearancePage.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2006 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the Help Viewers configuration page.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot
-from PyQt5.QtWidgets import QFontDialog
-
-from E5Gui.E5PathPicker import E5PathPickerModes
-
-from .ConfigurationPageBase import ConfigurationPageBase
-from .Ui_HelpAppearancePage import Ui_HelpAppearancePage
-
-import Preferences
-
-try:
-    MonospacedFontsOption = QFontDialog.MonospacedFonts
-except AttributeError:
-    MonospacedFontsOption = QFontDialog.FontDialogOptions(0x10)
-
-
-class HelpAppearancePage(ConfigurationPageBase, Ui_HelpAppearancePage):
-    """
-    Class implementing the Help Viewer Appearance page.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(HelpAppearancePage, self).__init__()
-        self.setupUi(self)
-        self.setObjectName("HelpAppearancePage")
-        
-        self.styleSheetPicker.setMode(E5PathPickerModes.OpenFileMode)
-        self.styleSheetPicker.setFilters(self.tr(
-            "Cascading Style Sheets (*.css);;All files (*)"))
-        
-        self.__displayMode = None
-        
-        # set initial values
-        self.standardFont = Preferences.getHelp("StandardFont")
-        self.standardFontSample.setFont(self.standardFont)
-        self.standardFontSample.setText(
-            "{0} {1}".format(self.standardFont.family(),
-                             self.standardFont.pointSize()))
-        
-        self.fixedFont = Preferences.getHelp("FixedFont")
-        self.fixedFontSample.setFont(self.fixedFont)
-        self.fixedFontSample.setText(
-            "{0} {1}".format(self.fixedFont.family(),
-                             self.fixedFont.pointSize()))
-        
-        self.initColour("SaveUrlColor", self.secureURLsColourButton,
-                        Preferences.getHelp)
-        
-        self.autoLoadImagesCheckBox.setChecked(
-            Preferences.getHelp("AutoLoadImages"))
-        
-        self.styleSheetPicker.setText(Preferences.getHelp("UserStyleSheet"))
-        
-        self.warnOnMultipleCloseCheckBox.setChecked(
-            Preferences.getHelp("WarnOnMultipleClose"))
-    
-    def setMode(self, displayMode):
-        """
-        Public method to perform mode dependent setups.
-        
-        @param displayMode mode of the configuration dialog
-            (ConfigurationWidget.DefaultMode,
-             ConfigurationWidget.HelpBrowserMode,
-             ConfigurationWidget.TrayStarterMode)
-        """
-        from ..ConfigurationDialog import ConfigurationWidget
-        assert displayMode in (
-            ConfigurationWidget.DefaultMode,
-            ConfigurationWidget.HelpBrowserMode,
-            ConfigurationWidget.TrayStarterMode
-        )
-        
-        self.__displayMode = displayMode
-    
-    def save(self):
-        """
-        Public slot to save the Help Viewers configuration.
-        """
-        Preferences.setHelp("StandardFont", self.standardFont)
-        Preferences.setHelp("FixedFont", self.fixedFont)
-        
-        Preferences.setHelp(
-            "AutoLoadImages",
-            self.autoLoadImagesCheckBox.isChecked())
-        
-        Preferences.setHelp("UserStyleSheet", self.styleSheetPicker.text())
-        
-        self.saveColours(Preferences.setHelp)
-        
-        Preferences.setHelp(
-            "WarnOnMultipleClose",
-            self.warnOnMultipleCloseCheckBox.isChecked())
-    
-    @pyqtSlot()
-    def on_standardFontButton_clicked(self):
-        """
-        Private method used to select the standard font.
-        """
-        self.standardFont = \
-            self.selectFont(self.standardFontSample, self.standardFont, True)
-    
-    @pyqtSlot()
-    def on_fixedFontButton_clicked(self):
-        """
-        Private method used to select the fixed-width font.
-        """
-        self.fixedFont = self.selectFont(
-            self.fixedFontSample, self.fixedFont, True,
-            options=MonospacedFontsOption)
-    
-
-def create(dlg):
-    """
-    Module function to create the configuration page.
-    
-    @param dlg reference to the configuration dialog
-    @return reference to the instantiated page (ConfigurationPageBase)
-    """
-    page = HelpAppearancePage()
-    return page
--- a/eric6/Preferences/ConfigurationPages/HelpAppearancePage.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,243 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>HelpAppearancePage</class>
- <widget class="QWidget" name="HelpAppearancePage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>499</width>
-    <height>547</height>
-   </rect>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_3">
-   <item>
-    <widget class="QLabel" name="headerLabel">
-     <property name="text">
-      <string>&lt;b&gt;Configure help viewer appearance&lt;/b&gt;</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="Line" name="line17">
-     <property name="frameShape">
-      <enum>QFrame::HLine</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Sunken</enum>
-     </property>
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_5">
-     <property name="title">
-      <string>Fonts</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout">
-      <item row="0" column="0">
-       <widget class="QPushButton" name="standardFontButton">
-        <property name="toolTip">
-         <string>Press to select the standard font</string>
-        </property>
-        <property name="text">
-         <string>Standard Font</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QLineEdit" name="standardFontSample">
-        <property name="focusPolicy">
-         <enum>Qt::NoFocus</enum>
-        </property>
-        <property name="text">
-         <string>Times 16</string>
-        </property>
-        <property name="alignment">
-         <set>Qt::AlignHCenter</set>
-        </property>
-        <property name="readOnly">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QPushButton" name="fixedFontButton">
-        <property name="toolTip">
-         <string>Press to select the fixed-width font</string>
-        </property>
-        <property name="text">
-         <string>Fixed-Width Font</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QLineEdit" name="fixedFontSample">
-        <property name="focusPolicy">
-         <enum>Qt::NoFocus</enum>
-        </property>
-        <property name="text">
-         <string>Courier 13</string>
-        </property>
-        <property name="alignment">
-         <set>Qt::AlignHCenter</set>
-        </property>
-        <property name="readOnly">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_3">
-     <property name="title">
-      <string>Colours</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_2">
-      <item row="0" column="0">
-       <widget class="QLabel" name="textLabel1_3">
-        <property name="text">
-         <string>Background colour of secure URLs:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QPushButton" name="secureURLsColourButton">
-        <property name="minimumSize">
-         <size>
-          <width>100</width>
-          <height>0</height>
-         </size>
-        </property>
-        <property name="toolTip">
-         <string>Select the background colour for secure URLs.</string>
-        </property>
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="2">
-       <spacer name="horizontalSpacer">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>141</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Images</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout">
-      <item>
-       <widget class="QCheckBox" name="autoLoadImagesCheckBox">
-        <property name="toolTip">
-         <string>Select to load images</string>
-        </property>
-        <property name="text">
-         <string>Load images</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_2">
-     <property name="title">
-      <string>Style Sheet</string>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <item>
-       <widget class="QLabel" name="label">
-        <property name="text">
-         <string>User Style Sheet:</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="E5PathPicker" name="styleSheetPicker" native="true">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="focusPolicy">
-         <enum>Qt::StrongFocus</enum>
-        </property>
-        <property name="toolTip">
-         <string>Enter the file name of a user style sheet</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="tabsGroupBox">
-     <property name="title">
-      <string>Tabs</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_2">
-      <item>
-       <widget class="QCheckBox" name="warnOnMultipleCloseCheckBox">
-        <property name="toolTip">
-         <string>Select to issue a warning, if multiple tabs are about to be closed</string>
-        </property>
-        <property name="text">
-         <string>Warn, if multiple tabs are about to be closed</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <spacer>
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>479</width>
-       <height>121</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5PathPicker</class>
-   <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>standardFontButton</tabstop>
-  <tabstop>fixedFontButton</tabstop>
-  <tabstop>secureURLsColourButton</tabstop>
-  <tabstop>autoLoadImagesCheckBox</tabstop>
-  <tabstop>styleSheetPicker</tabstop>
-  <tabstop>warnOnMultipleCloseCheckBox</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Preferences/ConfigurationPages/HelpDocumentationPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationPages/HelpDocumentationPage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -62,11 +62,6 @@
         self.pyside2DocDirPicker.setFilters(self.tr(
             "HTML Files (*.html *.htm);;All Files (*)"))
         
-        try:
-            import PyQt5        # __IGNORE_WARNING__
-        except ImportError:
-            self.pyqt5Group.setEnabled(False)
-        
         pyside_py2, pyside_py3 = Utilities.checkPyside("1")
         if pyside_py2 or pyside_py3:
             self.pysideGroup.setEnabled(True)
--- a/eric6/Preferences/ConfigurationPages/HelpFlashCookieManagerPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the Flash Cookies Manager configuration page.
-"""
-
-from __future__ import unicode_literals
-
-from E5Gui.E5PathPicker import E5PathPickerModes
-
-from .ConfigurationPageBase import ConfigurationPageBase
-from .Ui_HelpFlashCookieManagerPage import Ui_HelpFlashCookieManagerPage
-
-import Preferences
-
-
-class HelpFlashCookieManagerPage(ConfigurationPageBase,
-                                 Ui_HelpFlashCookieManagerPage):
-    """
-    Class implementing the Flash Cookies Manager configuration page.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(HelpFlashCookieManagerPage, self).__init__()
-        self.setupUi(self)
-        self.setObjectName("HelpFlashCookieManagerPage")
-        
-        self.flashDataPathPicker.setMode(E5PathPickerModes.DirectoryMode)
-        
-        # set initial values
-        self.flashDataPathPicker.setText(
-            Preferences.getHelp("FlashCookiesDataPath"))
-        self.autoModeGroup.setChecked(
-            Preferences.getHelp("FlashCookieAutoRefresh"))
-        self.notificationGroup.setChecked(
-            Preferences.getHelp("FlashCookieNotify"))
-        self.deleteGroup.setChecked(
-            Preferences.getHelp("FlashCookiesDeleteOnStartExit"))
-    
-    def save(self):
-        """
-        Public slot to save the Flash Cookies Manager configuration.
-        """
-        Preferences.setHelp("FlashCookiesDataPath",
-                            self.flashDataPathPicker.text())
-        Preferences.setHelp("FlashCookieAutoRefresh",
-                            self.autoModeGroup.isChecked())
-        Preferences.setHelp("FlashCookieNotify",
-                            self.notificationGroup.isChecked())
-        Preferences.setHelp("FlashCookiesDeleteOnStartExit",
-                            self.deleteGroup.isChecked())
-    
-
-def create(dlg):
-    """
-    Module function to create the configuration page.
-    
-    @param dlg reference to the configuration dialog
-    @return reference to the instantiated page (ConfigurationPageBase)
-    """
-    page = HelpFlashCookieManagerPage()
-    return page
--- a/eric6/Preferences/ConfigurationPages/HelpFlashCookieManagerPage.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>HelpFlashCookieManagerPage</class>
- <widget class="QWidget" name="HelpFlashCookieManagerPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>588</width>
-    <height>419</height>
-   </rect>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QLabel" name="headerLabel">
-     <property name="text">
-      <string>&lt;b&gt;Configure Flash Cookies Manager&lt;/b&gt;</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="Line" name="line9">
-     <property name="frameShape">
-      <enum>QFrame::HLine</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Sunken</enum>
-     </property>
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Flash Data Path</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_2">
-      <item>
-       <widget class="E5PathPicker" name="flashDataPathPicker" native="true">
-        <property name="focusPolicy">
-         <enum>Qt::StrongFocus</enum>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QLabel" name="label">
-        <property name="text">
-         <string>&lt;b&gt;Note&lt;/b&gt;: You should select the directory that contains #SharedObject as a subfolder.</string>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="autoModeGroup">
-     <property name="toolTip">
-      <string>Select to activate auto mode</string>
-     </property>
-     <property name="title">
-      <string>Auto Mode Enabled</string>
-     </property>
-     <property name="checkable">
-      <bool>true</bool>
-     </property>
-     <property name="checked">
-      <bool>false</bool>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <item>
-       <widget class="QLabel" name="autoModeLabel">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="text">
-         <string>The flash data directory will be checked regularly and flash cookies in the blacklist will be deleted automatically.</string>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="notificationGroup">
-     <property name="toolTip">
-      <string>Select to show a notification upon detection of new flash cookies</string>
-     </property>
-     <property name="title">
-      <string>Notifications enabled</string>
-     </property>
-     <property name="flat">
-      <bool>false</bool>
-     </property>
-     <property name="checkable">
-      <bool>true</bool>
-     </property>
-     <property name="checked">
-      <bool>false</bool>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout_2">
-      <item>
-       <widget class="QLabel" name="notificationLabel">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="text">
-         <string>User will be notified for every new flash cookie that is not in blacklist and whitelist.</string>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="deleteGroup">
-     <property name="toolTip">
-      <string>Select to delete all flash cookies on startup and shutdown</string>
-     </property>
-     <property name="title">
-      <string>Delete</string>
-     </property>
-     <property name="checkable">
-      <bool>true</bool>
-     </property>
-     <property name="checked">
-      <bool>false</bool>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout_3">
-      <item>
-       <widget class="QLabel" name="deleteLabel">
-        <property name="text">
-         <string>Delete all flash cookies on exit/start (except those are in whitelist)</string>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="label_19">
-     <property name="text">
-      <string>&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; These settings are just applied to flash cookies.&lt;/p&gt;</string>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>39</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5PathPicker</class>
-   <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>flashDataPathPicker</tabstop>
-  <tabstop>autoModeGroup</tabstop>
-  <tabstop>notificationGroup</tabstop>
-  <tabstop>deleteGroup</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Preferences/ConfigurationPages/HelpInterfacePage.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2006 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the Interface configuration page (variant for web browser).
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtWidgets import QStyleFactory
-
-from E5Gui.E5PathPicker import E5PathPickerModes
-
-from .ConfigurationPageBase import ConfigurationPageBase
-from .Ui_HelpInterfacePage import Ui_HelpInterfacePage
-
-import Preferences
-
-
-class HelpInterfacePage(ConfigurationPageBase, Ui_HelpInterfacePage):
-    """
-    Class implementing the Interface configuration page (variant for web
-    browser).
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(HelpInterfacePage, self).__init__()
-        self.setupUi(self)
-        self.setObjectName("InterfacePage")
-        
-        self.styleSheetPicker.setMode(E5PathPickerModes.OpenFileMode)
-        self.styleSheetPicker.setFilters(self.tr(
-            "Qt Style Sheets (*.qss);;Cascading Style Sheets (*.css);;"
-            "All files (*)"))
-        
-        # set initial values
-        self.__populateStyleCombo()
-        self.styleSheetPicker.setText(Preferences.getUI("StyleSheet"))
-    
-    def save(self):
-        """
-        Public slot to save the Interface configuration.
-        """
-        # save the style settings
-        styleIndex = self.styleComboBox.currentIndex()
-        style = self.styleComboBox.itemData(styleIndex)
-        Preferences.setUI("Style", style)
-        Preferences.setUI(
-            "StyleSheet",
-            self.styleSheetPicker.text())
-    
-    def __populateStyleCombo(self):
-        """
-        Private method to populate the style combo box.
-        """
-        curStyle = Preferences.getUI("Style")
-        styles = sorted(list(QStyleFactory.keys()))
-        self.styleComboBox.addItem(self.tr('System'), "System")
-        for style in styles:
-            self.styleComboBox.addItem(style, style)
-        currentIndex = self.styleComboBox.findData(curStyle)
-        if currentIndex == -1:
-            currentIndex = 0
-        self.styleComboBox.setCurrentIndex(currentIndex)
-    
-
-def create(dlg):
-    """
-    Module function to create the configuration page.
-    
-    @param dlg reference to the configuration dialog
-    @return reference to the instantiated page (ConfigurationPageBase)
-    """
-    page = HelpInterfacePage()
-    return page
--- a/eric6/Preferences/ConfigurationPages/HelpInterfacePage.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>HelpInterfacePage</class>
- <widget class="QWidget" name="HelpInterfacePage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>557</width>
-    <height>152</height>
-   </rect>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QLabel" name="headerLabel">
-     <property name="text">
-      <string>&lt;b&gt;Configure User Interface&lt;/b&gt;</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="Line" name="line9">
-     <property name="frameShape">
-      <enum>QFrame::HLine</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Sunken</enum>
-     </property>
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0">
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>Style:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QComboBox" name="styleComboBox">
-       <property name="toolTip">
-        <string>Select the interface style</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="label_3">
-       <property name="text">
-        <string>Style Sheet:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="E5PathPicker" name="styleSheetPicker" native="true">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="focusPolicy">
-        <enum>Qt::StrongFocus</enum>
-       </property>
-       <property name="toolTip">
-        <string>Enter the name of the style sheet file</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <spacer>
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>537</width>
-       <height>41</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>E5PathPicker</class>
-   <extends>QWidget</extends>
-   <header>E5Gui/E5PathPicker.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>styleComboBox</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Preferences/ConfigurationPages/HelpViewersPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationPages/HelpViewersPage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,11 +10,6 @@
 from __future__ import unicode_literals
 
 from PyQt5.QtWidgets import QButtonGroup
-try:
-    from PyQt5 import QtWebKit      # __IGNORE_WARNING__
-    WEBKIT_AVAILABLE = True
-except ImportError:
-    WEBKIT_AVAILABLE = False
 
 from Globals import getWebBrowserSupport
 
@@ -50,8 +45,6 @@
         webBrowserVariant = getWebBrowserSupport()
         if webBrowserVariant == "QtWebEngine":
             hvId = Preferences.getWebBrowser("HelpViewerType")
-        elif webBrowserVariant == "QtWebKit":
-            hvId = Preferences.getHelp("HelpViewerType")
         else:
             hvId = 3
             self.helpBrowserButton.setEnabled(False)
--- a/eric6/Preferences/ConfigurationPages/HelpVirusTotalPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2011 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing VirusTotal configuration page (help viewer variant).
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot
-
-from .ConfigurationPageBase import ConfigurationPageBase
-from .Ui_HelpVirusTotalPage import Ui_HelpVirusTotalPage
-
-import Preferences
-
-
-class HelpVirusTotalPage(ConfigurationPageBase, Ui_HelpVirusTotalPage):
-    """
-    Class implementing VirusTotal configuration page (help viewer variant).
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        super(HelpVirusTotalPage, self).__init__()
-        self.setupUi(self)
-        self.setObjectName("HelpVirusTotalPage")
-        
-        self.testResultLabel.setHidden(True)
-        
-        from Helpviewer.VirusTotal.VirusTotalApi import VirusTotalAPI
-        self.__vt = VirusTotalAPI(self)
-        self.__vt.checkServiceKeyFinished.connect(
-            self.__checkServiceKeyFinished)
-        
-        # set initial values
-        self.vtEnabledCheckBox.setChecked(
-            Preferences.getHelp("VirusTotalEnabled"))
-        self.vtSecureCheckBox.setChecked(
-            Preferences.getHelp("VirusTotalSecure"))
-        self.vtServiceKeyEdit.setText(
-            Preferences.getHelp("VirusTotalServiceKey"))
-    
-    def save(self):
-        """
-        Public slot to save the VirusTotal configuration.
-        """
-        Preferences.setHelp(
-            "VirusTotalEnabled",
-            self.vtEnabledCheckBox.isChecked())
-        Preferences.setHelp(
-            "VirusTotalSecure",
-            self.vtSecureCheckBox.isChecked())
-        Preferences.setHelp(
-            "VirusTotalServiceKey",
-            self.vtServiceKeyEdit.text())
-    
-    @pyqtSlot(str)
-    def on_vtServiceKeyEdit_textChanged(self, txt):
-        """
-        Private slot to handle changes of the service key.
-        
-        @param txt entered service key (string)
-        """
-        self.testButton.setEnabled(txt != "")
-    
-    @pyqtSlot()
-    def on_testButton_clicked(self):
-        """
-        Private slot to test the entered service key.
-        """
-        self.testResultLabel.setHidden(False)
-        self.testResultLabel.setText(
-            self.tr("Checking validity of the service key..."))
-        if self.vtSecureCheckBox.isChecked():
-            protocol = "https"
-        else:
-            protocol = "http"
-        self.__vt.checkServiceKeyValidity(
-            self.vtServiceKeyEdit.text(), protocol)
-    
-    @pyqtSlot(bool, str)
-    def __checkServiceKeyFinished(self, result, msg):
-        """
-        Private slot to receive the result of the service key check.
-        
-        @param result flag indicating a successful check (boolean)
-        @param msg network error message (str)
-        """
-        if result:
-            self.testResultLabel.setText(
-                self.tr("The service key is valid."))
-        else:
-            if msg == "":
-                self.testResultLabel.setText(self.tr(
-                    '<font color="#FF0000">The service key is'
-                    ' not valid.</font>'))
-            else:
-                self.testResultLabel.setText(self.tr(
-                    '<font color="#FF0000"><b>Error:</b> {0}</font>')
-                    .format(msg))
-    
-
-def create(dlg):
-    """
-    Module function to create the configuration page.
-    
-    @param dlg reference to the configuration dialog
-    @return reference to the instantiated page (ConfigurationPageBase)
-    """
-    page = HelpVirusTotalPage()
-    return page
--- a/eric6/Preferences/ConfigurationPages/HelpVirusTotalPage.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>HelpVirusTotalPage</class>
- <widget class="QWidget" name="HelpVirusTotalPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>485</width>
-    <height>409</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string/>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2">
-   <item>
-    <widget class="QLabel" name="headerLabel">
-     <property name="text">
-      <string>&lt;b&gt;Configure VirusTotal Interface&lt;/b&gt;</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="Line" name="line17">
-     <property name="frameShape">
-      <enum>QFrame::HLine</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Sunken</enum>
-     </property>
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="vtEnabledCheckBox">
-     <property name="toolTip">
-      <string>Select to enable the VirusTotal interface</string>
-     </property>
-     <property name="text">
-      <string>Enable VirusTotal</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Service Key</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout">
-      <item>
-       <widget class="QLabel" name="label">
-        <property name="text">
-         <string>Enter your personal VirusTotal service key (s. &lt;a href=&quot;http://virustotal.com&quot;&gt;VirusTotal &amp;copy;&lt;/a&gt; for details):</string>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-        <property name="openExternalLinks">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QLineEdit" name="vtServiceKeyEdit">
-        <property name="toolTip">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QLabel" name="testResultLabel">
-        <property name="text">
-         <string/>
-        </property>
-        <property name="alignment">
-         <set>Qt::AlignCenter</set>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout">
-        <item>
-         <spacer name="horizontalSpacer">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QPushButton" name="testButton">
-          <property name="enabled">
-           <bool>false</bool>
-          </property>
-          <property name="text">
-           <string>Test Service Key</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_2">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QCheckBox" name="vtSecureCheckBox">
-     <property name="toolTip">
-      <string>Select to use secure (https) connections</string>
-     </property>
-     <property name="text">
-      <string>Use secure (https) connections</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>74</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>vtEnabledCheckBox</tabstop>
-  <tabstop>vtServiceKeyEdit</tabstop>
-  <tabstop>testButton</tabstop>
-  <tabstop>vtSecureCheckBox</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Preferences/ConfigurationPages/HelpWebBrowserPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,344 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2009 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the Help web browser configuration page.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import pyqtSlot, QLocale
-from PyQt5.QtNetwork import QNetworkRequest
-from PyQt5.QtWebKit import QWebSettings
-
-from .ConfigurationPageBase import ConfigurationPageBase
-from .Ui_HelpWebBrowserPage import Ui_HelpWebBrowserPage
-
-import Preferences
-import UI.PixmapCache
-
-
-class HelpWebBrowserPage(ConfigurationPageBase, Ui_HelpWebBrowserPage):
-    """
-    Class implementing the Help web browser configuration page.
-    """
-    def __init__(self, configDialog):
-        """
-        Constructor
-        
-        @param configDialog reference to the configuration dialog
-            (ConfigurationDialog)
-        """
-        super(HelpWebBrowserPage, self).__init__()
-        self.setupUi(self)
-        self.setObjectName("HelpWebBrowserPage")
-        
-        self.__configDlg = configDialog
-        mw = configDialog.parent().parent()
-        if hasattr(mw, "helpWindow") and mw.helpWindow is not None:
-            self.__helpWindow = mw.helpWindow
-        elif hasattr(mw, "currentBrowser"):
-            self.__helpWindow = mw
-        else:
-            self.__helpWindow = None
-        self.setCurrentPageButton.setEnabled(self.__helpWindow is not None)
-        
-        defaultSchemes = ["file://", "http://", "https://"]
-        self.defaultSchemeCombo.addItems(defaultSchemes)
-        
-        self.clickToFlashCheckBox.setIcon(
-            UI.PixmapCache.getIcon("flashBlock.png"))
-        
-        # set initial values
-        self.singleHelpWindowCheckBox.setChecked(
-            Preferences.getHelp("SingleHelpWindow"))
-        self.saveGeometryCheckBox.setChecked(
-            Preferences.getHelp("SaveGeometry"))
-        self.webSuggestionsCheckBox.setChecked(
-            Preferences.getHelp("WebSearchSuggestions"))
-        self.showTabPreviews.setChecked(
-            Preferences.getHelp("ShowPreview"))
-        self.accessKeysCheckBox.setChecked(
-            Preferences.getHelp("AccessKeysEnabled"))
-        
-        self.javaCheckBox.setChecked(
-            Preferences.getHelp("JavaEnabled"))
-        self.javaScriptGroup.setChecked(
-            Preferences.getHelp("JavaScriptEnabled"))
-        self.jsOpenWindowsCheckBox.setChecked(
-            Preferences.getHelp("JavaScriptCanOpenWindows"))
-        self.jsCloseWindowsCheckBox.setChecked(
-            Preferences.getHelp("JavaScriptCanCloseWindows"))
-        self.jsClipboardCheckBox.setChecked(
-            Preferences.getHelp("JavaScriptCanAccessClipboard"))
-        self.pluginsGroup.setChecked(
-            Preferences.getHelp("PluginsEnabled"))
-        self.clickToFlashCheckBox.setChecked(
-            Preferences.getHelp("ClickToFlashEnabled"))
-        self.doNotTrackCheckBox.setChecked(
-            Preferences.getHelp("DoNotTrack"))
-        self.sendRefererCheckBox.setChecked(
-            Preferences.getHelp("SendReferer"))
-        
-        self.diskCacheCheckBox.setChecked(
-            Preferences.getHelp("DiskCacheEnabled"))
-        self.cacheSizeSpinBox.setValue(
-            Preferences.getHelp("DiskCacheSize"))
-        cachePolicy = Preferences.getHelp("CachePolicy")
-        if cachePolicy == QNetworkRequest.PreferNetwork:
-            self.cacheKeepButton.setChecked(True)
-        elif cachePolicy == QNetworkRequest.PreferCache:
-            self.cachePreferButton.setChecked(True)
-        elif cachePolicy == QNetworkRequest.AlwaysCache:
-            self.cacheOfflineButton.setChecked(True)
-        
-        self.printBackgroundsCheckBox.setChecked(
-            Preferences.getHelp("PrintBackgrounds"))
-        
-        self.startupCombo.setCurrentIndex(
-            Preferences.getHelp("StartupBehavior"))
-        self.homePageEdit.setText(
-            Preferences.getHelp("HomePage"))
-        
-        self.defaultSchemeCombo.setCurrentIndex(
-            self.defaultSchemeCombo.findText(
-                Preferences.getHelp("DefaultScheme")))
-        
-        historyLimit = Preferences.getHelp("HistoryLimit")
-        idx = 0
-        if historyLimit == 1:
-            idx = 0
-        elif historyLimit == 7:
-            idx = 1
-        elif historyLimit == 14:
-            idx = 2
-        elif historyLimit == 30:
-            idx = 3
-        elif historyLimit == 365:
-            idx = 4
-        elif historyLimit == -1:
-            idx = 5
-        elif historyLimit == -2:
-            idx = 6
-        else:
-            idx = 5
-        self.expireHistory.setCurrentIndex(idx)
-        
-        for language in range(2, QLocale.LastLanguage + 1):
-            countries = [l.country() for l in QLocale.matchingLocales(
-                language, QLocale.AnyScript, QLocale.AnyCountry)]
-            if len(countries) > 0:
-                self.languageCombo.addItem(
-                    QLocale.languageToString(language), language)
-        self.languageCombo.model().sort(0)
-        self.languageCombo.insertSeparator(0)
-        self.languageCombo.insertItem(0, QLocale.languageToString(0), 0)
-        index = self.languageCombo.findData(
-            Preferences.getHelp("SearchLanguage"))
-        if index > -1:
-            self.languageCombo.setCurrentIndex(index)
-        
-        if hasattr(QWebSettings, "SpatialNavigationEnabled"):
-            self.spatialCheckBox.setChecked(
-                Preferences.getHelp("SpatialNavigationEnabled"))
-        else:
-            self.spatialCheckBox.setEnabled(False)
-        if hasattr(QWebSettings, "LinksIncludedInFocusChain"):
-            self.linksInFocusChainCheckBox.setChecked(
-                Preferences.getHelp("LinksIncludedInFocusChain"))
-        else:
-            self.linksInFocusChainCheckBox.setEnabled(False)
-        if hasattr(QWebSettings, "XSSAuditingEnabled"):
-            self.xssAuditingCheckBox.setChecked(
-                Preferences.getHelp("XSSAuditingEnabled"))
-        else:
-            self.xssAuditingCheckBox.setEnabled(False)
-        if hasattr(QWebSettings, "SiteSpecificQuirksEnabled"):
-            self.quirksCheckBox.setChecked(
-                Preferences.getHelp("SiteSpecificQuirksEnabled"))
-        else:
-            self.quirksCheckBox.setEnabled(False)
-    
-    def save(self):
-        """
-        Public slot to save the Help Viewers configuration.
-        """
-        Preferences.setHelp(
-            "SingleHelpWindow",
-            self.singleHelpWindowCheckBox.isChecked())
-        Preferences.setHelp(
-            "SaveGeometry",
-            self.saveGeometryCheckBox.isChecked())
-        Preferences.setHelp(
-            "WebSearchSuggestions",
-            self.webSuggestionsCheckBox.isChecked())
-        Preferences.setHelp(
-            "ShowPreview",
-            self.showTabPreviews.isChecked())
-        Preferences.setHelp(
-            "AccessKeysEnabled",
-            self.accessKeysCheckBox.isChecked())
-        
-        Preferences.setHelp(
-            "JavaEnabled",
-            self.javaCheckBox.isChecked())
-        Preferences.setHelp(
-            "JavaScriptEnabled",
-            self.javaScriptGroup.isChecked())
-        Preferences.setHelp(
-            "JavaScriptCanOpenWindows",
-            self.jsOpenWindowsCheckBox.isChecked())
-        Preferences.setHelp(
-            "JavaScriptCanCloseWindows",
-            self.jsCloseWindowsCheckBox.isChecked())
-        Preferences.setHelp(
-            "JavaScriptCanAccessClipboard",
-            self.jsClipboardCheckBox.isChecked())
-        Preferences.setHelp(
-            "PluginsEnabled",
-            self.pluginsGroup.isChecked())
-        Preferences.setHelp(
-            "ClickToFlashEnabled",
-            self.clickToFlashCheckBox.isChecked())
-        Preferences.setHelp(
-            "DoNotTrack",
-            self.doNotTrackCheckBox.isChecked())
-        Preferences.setHelp(
-            "SendReferer",
-            self.sendRefererCheckBox.isChecked())
-        
-        Preferences.setHelp(
-            "DiskCacheEnabled",
-            self.diskCacheCheckBox.isChecked())
-        Preferences.setHelp(
-            "DiskCacheSize",
-            self.cacheSizeSpinBox.value())
-        if self.cacheKeepButton.isChecked():
-            Preferences.setHelp(
-                "CachePolicy",
-                QNetworkRequest.PreferNetwork)
-        elif self.cachePreferButton.isChecked():
-            Preferences.setHelp(
-                "CachePolicy",
-                QNetworkRequest.PreferCache)
-        elif self.cacheOfflineButton.isChecked():
-            Preferences.setHelp(
-                "CachePolicy",
-                QNetworkRequest.AlwaysCache)
-        
-        Preferences.setHelp(
-            "PrintBackgrounds",
-            self.printBackgroundsCheckBox.isChecked())
-        
-        Preferences.setHelp(
-            "StartupBehavior",
-            self.startupCombo.currentIndex())
-        Preferences.setHelp(
-            "HomePage",
-            self.homePageEdit.text())
-        
-        Preferences.setHelp(
-            "DefaultScheme",
-            self.defaultSchemeCombo.currentText())
-        
-        idx = self.expireHistory.currentIndex()
-        if idx == 0:
-            historyLimit = 1
-        elif idx == 1:
-            historyLimit = 7
-        elif idx == 2:
-            historyLimit = 14
-        elif idx == 3:
-            historyLimit = 30
-        elif idx == 4:
-            historyLimit = 365
-        elif idx == 5:
-            historyLimit = -1
-        elif idx == 6:
-            historyLimit = -2
-        Preferences.setHelp("HistoryLimit", historyLimit)
-        
-        languageIndex = self.languageCombo.currentIndex()
-        if languageIndex > -1:
-            language = self.languageCombo.itemData(languageIndex)
-        else:
-            # fall back to system default
-            language = QLocale.system().language()
-        Preferences.setHelp("SearchLanguage", language)
-        
-        if hasattr(QWebSettings, "SpatialNavigationEnabled"):
-            Preferences.setHelp(
-                "SpatialNavigationEnabled",
-                self.spatialCheckBox.isChecked())
-        if hasattr(QWebSettings, "LinksIncludedInFocusChain"):
-            Preferences.setHelp(
-                "LinksIncludedInFocusChain",
-                self.linksInFocusChainCheckBox.isChecked())
-        if hasattr(QWebSettings, "XSSAuditingEnabled"):
-            Preferences.setHelp(
-                "XSSAuditingEnabled",
-                self.xssAuditingCheckBox.isChecked())
-        if hasattr(QWebSettings, "SiteSpecificQuirksEnabled"):
-            Preferences.setHelp(
-                "SiteSpecificQuirksEnabled",
-                self.quirksCheckBox.isChecked())
-    
-    @pyqtSlot()
-    def on_setCurrentPageButton_clicked(self):
-        """
-        Private slot to set the current page as the home page.
-        """
-        url = self.__helpWindow.currentBrowser().url()
-        self.homePageEdit.setText(bytes(url.toEncoded()).decode())
-    
-    @pyqtSlot()
-    def on_defaultHomeButton_clicked(self):
-        """
-        Private slot to set the default home page.
-        """
-        self.homePageEdit.setText(Preferences.Prefs.helpDefaults["HomePage"])
-    
-    @pyqtSlot(int)
-    def on_startupCombo_currentIndexChanged(self, index):
-        """
-        Private slot to enable elements depending on the selected startup
-        entry.
-        
-        @param index index of the selected entry (integer)
-        """
-        enable = index == 0
-        self.homePageLabel.setEnabled(enable)
-        self.homePageEdit.setEnabled(enable)
-        self.defaultHomeButton.setEnabled(enable)
-        self.setCurrentPageButton.setEnabled(enable)
-    
-    @pyqtSlot()
-    def on_refererWhitelistButton_clicked(self):
-        """
-        Private slot to edit the referer whitelist.
-        """
-        from Helpviewer.Network.SendRefererWhitelistDialog import \
-            SendRefererWhitelistDialog
-        SendRefererWhitelistDialog(self).exec_()
-    
-    @pyqtSlot()
-    def on_noCacheHostsButton_clicked(self):
-        """
-        Private slot to edit the list of hosts exempted from caching.
-        """
-        from Helpviewer.Network.NoCacheHostsDialog import \
-            NoCacheHostsDialog
-        NoCacheHostsDialog(self).exec_()
-
-
-def create(dlg):
-    """
-    Module function to create the configuration page.
-    
-    @param dlg reference to the configuration dialog
-    @return reference to the instantiated page (ConfigurationPageBase)
-    """
-    page = HelpWebBrowserPage(dlg)
-    return page
--- a/eric6/Preferences/ConfigurationPages/HelpWebBrowserPage.ui	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,731 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>HelpWebBrowserPage</class>
- <widget class="QWidget" name="HelpWebBrowserPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>616</width>
-    <height>1329</height>
-   </rect>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_5">
-   <item>
-    <widget class="QLabel" name="headerLabel">
-     <property name="text">
-      <string>&lt;b&gt;Configure web browser&lt;/b&gt;</string>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="Line" name="line17">
-     <property name="frameShape">
-      <enum>QFrame::HLine</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Sunken</enum>
-     </property>
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="gridLayout_5">
-     <item row="0" column="0">
-      <widget class="QCheckBox" name="singleHelpWindowCheckBox">
-       <property name="toolTip">
-        <string>Select to use a single help browser window only</string>
-       </property>
-       <property name="text">
-        <string>Use single web browser window</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QCheckBox" name="webSuggestionsCheckBox">
-       <property name="toolTip">
-        <string>Select to enable suggestions for web searches</string>
-       </property>
-       <property name="text">
-        <string>Show suggestions for web searches</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QCheckBox" name="saveGeometryCheckBox">
-       <property name="toolTip">
-        <string>Select to save the window size and position</string>
-       </property>
-       <property name="text">
-        <string>Save size and position upon exit</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QCheckBox" name="showTabPreviews">
-       <property name="toolTip">
-        <string>Select to show a page preview when the mouse hovers over the tab</string>
-       </property>
-       <property name="text">
-        <string>Show preview when hovering tab</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="0">
-      <widget class="QCheckBox" name="quirksCheckBox">
-       <property name="toolTip">
-        <string>Select to enable the browser's workaround for broken sites</string>
-       </property>
-       <property name="text">
-        <string>Enable workaround for broken sites</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="startupGroupBox">
-     <property name="title">
-      <string>Startup</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_3">
-      <item row="0" column="0">
-       <widget class="QLabel" name="label">
-        <property name="text">
-         <string>On startup:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1" colspan="3">
-       <widget class="QComboBox" name="startupCombo">
-        <property name="toolTip">
-         <string>Select the startup behavior</string>
-        </property>
-        <item>
-         <property name="text">
-          <string>Show Home Page</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>Show Speed Dial</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>Show Empty Page</string>
-         </property>
-        </item>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="homePageLabel">
-        <property name="text">
-         <string>Home Page:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1" colspan="3">
-       <widget class="QLineEdit" name="homePageEdit">
-        <property name="toolTip">
-         <string>Enter the desired home page</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1">
-       <widget class="QPushButton" name="setCurrentPageButton">
-        <property name="toolTip">
-         <string>Press to set the current page as the home page</string>
-        </property>
-        <property name="text">
-         <string>Set to current page</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="2">
-       <widget class="QPushButton" name="defaultHomeButton">
-        <property name="toolTip">
-         <string>Press to set the default home page</string>
-        </property>
-        <property name="text">
-         <string>Set to default home page</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="3">
-       <spacer name="horizontalSpacer_2">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>160</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_2">
-     <property name="title">
-      <string>Scheme</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_4">
-      <item row="0" column="0">
-       <widget class="QLabel" name="label_3">
-        <property name="text">
-         <string>Default Scheme:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QComboBox" name="defaultSchemeCombo">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="toolTip">
-         <string>Select the default scheme</string>
-        </property>
-        <property name="whatsThis">
-         <string>&lt;b&gt;Default Scheme&lt;/b&gt;&lt;p&gt;Select the default scheme. This scheme is prepended to URLs, that don't contain one.&lt;/p&gt;</string>
-        </property>
-        <property name="editable">
-         <bool>false</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="privacyGroup">
-     <property name="title">
-      <string>Privacy</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_4">
-      <item>
-       <widget class="QCheckBox" name="javaCheckBox">
-        <property name="toolTip">
-         <string>Select to enable Java</string>
-        </property>
-        <property name="text">
-         <string>Enable Java</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QGroupBox" name="javaScriptGroup">
-        <property name="toolTip">
-         <string>Select to enable JavaScript</string>
-        </property>
-        <property name="title">
-         <string>Enable JavaScript</string>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-        <property name="checked">
-         <bool>false</bool>
-        </property>
-        <layout class="QGridLayout" name="gridLayout">
-         <item row="0" column="0">
-          <widget class="QCheckBox" name="jsOpenWindowsCheckBox">
-           <property name="toolTip">
-            <string>Select to allow JavaScript to open windows</string>
-           </property>
-           <property name="text">
-            <string>JavaScript can open windows</string>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <widget class="QCheckBox" name="jsCloseWindowsCheckBox">
-           <property name="toolTip">
-            <string>Select to allow JavaScript to close windows</string>
-           </property>
-           <property name="text">
-            <string>JavaScript can close windows</string>
-           </property>
-          </widget>
-         </item>
-         <item row="1" column="0">
-          <widget class="QCheckBox" name="jsClipboardCheckBox">
-           <property name="toolTip">
-            <string>Select to allow JavaScript to access the clipboard</string>
-           </property>
-           <property name="text">
-            <string>JavaScript can access clipboard</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </widget>
-      </item>
-      <item>
-       <widget class="QGroupBox" name="pluginsGroup">
-        <property name="toolTip">
-         <string>Select to enable plugins in web pages</string>
-        </property>
-        <property name="title">
-         <string>Enable Plug-ins</string>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-        <property name="checked">
-         <bool>false</bool>
-        </property>
-        <layout class="QGridLayout" name="gridLayout_7">
-         <item row="0" column="0">
-          <widget class="QCheckBox" name="clickToFlashCheckBox">
-           <property name="enabled">
-            <bool>false</bool>
-           </property>
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-             <horstretch>8</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="toolTip">
-            <string>Select to activate the Flash blocker</string>
-           </property>
-           <property name="text">
-            <string>Use ClickToFlash on Flash plugins</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </widget>
-      </item>
-      <item>
-       <widget class="Line" name="line">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QCheckBox" name="doNotTrackCheckBox">
-        <property name="toolTip">
-         <string>Select to enabled the &quot;Do Not Track&quot; feature</string>
-        </property>
-        <property name="text">
-         <string>Tell web sites I do not want to be tracked</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_4">
-        <item>
-         <widget class="QCheckBox" name="sendRefererCheckBox">
-          <property name="toolTip">
-           <string>Select to send referer headers to the server</string>
-          </property>
-          <property name="text">
-           <string>Send Referer header to servers</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_6">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QPushButton" name="refererWhitelistButton">
-          <property name="toolTip">
-           <string>Press to edit the list of whitelisted hosts</string>
-          </property>
-          <property name="text">
-           <string>Edit Referer Whitelist ...</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_6">
-     <property name="title">
-      <string>Security</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_2">
-      <item>
-       <widget class="QCheckBox" name="xssAuditingCheckBox">
-        <property name="toolTip">
-         <string>Select to enable XSS auditing</string>
-        </property>
-        <property name="whatsThis">
-         <string>&lt;b&gt;Enable XSS Auditing&lt;/b&gt;
-&lt;p&gt;This selects whether load requests should be monitored for cross-site scripting attempts. Suspicious scripts will be blocked. These will be reported in theWeb Inspector's JavaScript console. Enabling this feature might have an impact on performance.&lt;/p&gt;</string>
-        </property>
-        <property name="text">
-         <string>Enable XSS Auditing</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>History</string>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <item>
-       <widget class="QLabel" name="label_4">
-        <property name="text">
-         <string>Remove history items:</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QComboBox" name="expireHistory">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="toolTip">
-         <string>Select the period for expiration of history entries</string>
-        </property>
-        <item>
-         <property name="text">
-          <string>After one day</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>After one week</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>After two weeks</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>After one month</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>After one year</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>Manually</string>
-         </property>
-        </item>
-        <item>
-         <property name="text">
-          <string>On application exit</string>
-         </property>
-        </item>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="cacheGroup">
-     <property name="title">
-      <string>Browser Cache</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_2">
-      <item row="0" column="0" colspan="3">
-       <layout class="QHBoxLayout" name="horizontalLayout_5">
-        <item>
-         <widget class="QCheckBox" name="diskCacheCheckBox">
-          <property name="text">
-           <string>Enable disk cache</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer_7">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QPushButton" name="noCacheHostsButton">
-          <property name="toolTip">
-           <string>Press to edit the list of hosts exempted from caching</string>
-          </property>
-          <property name="text">
-           <string>Edit Exempted Hosts ...</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-      <item row="1" column="0" colspan="3">
-       <widget class="QGroupBox" name="groupBox_4">
-        <property name="title">
-         <string>Policy</string>
-        </property>
-        <layout class="QVBoxLayout" name="verticalLayout_3">
-         <item>
-          <widget class="QRadioButton" name="cacheKeepButton">
-           <property name="toolTip">
-            <string>Select to prefer the network</string>
-           </property>
-           <property name="text">
-            <string>Keep cache in sync</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QRadioButton" name="cachePreferButton">
-           <property name="toolTip">
-            <string>Select to prefer cached data</string>
-           </property>
-           <property name="text">
-            <string>Use cache whenever possible</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QRadioButton" name="cacheOfflineButton">
-           <property name="toolTip">
-            <string>Select to use cached data only</string>
-           </property>
-           <property name="text">
-            <string>Offline browsing mode</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </widget>
-      </item>
-      <item row="2" column="0">
-       <widget class="QLabel" name="label_7">
-        <property name="text">
-         <string>Cache size:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1">
-       <widget class="QSpinBox" name="cacheSizeSpinBox">
-        <property name="toolTip">
-         <string>Enter the maximum size of the disk cache</string>
-        </property>
-        <property name="alignment">
-         <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-        </property>
-        <property name="suffix">
-         <string> MB</string>
-        </property>
-        <property name="minimum">
-         <number>1</number>
-        </property>
-        <property name="maximum">
-         <number>999</number>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="2">
-       <spacer name="horizontalSpacer">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>410</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_5">
-     <property name="title">
-      <string>Web Search</string>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout_2">
-      <item>
-       <widget class="QLabel" name="label_5">
-        <property name="text">
-         <string>Language:</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QComboBox" name="languageCombo">
-        <property name="toolTip">
-         <string>Select the language to be used for web searches</string>
-        </property>
-        <property name="sizeAdjustPolicy">
-         <enum>QComboBox::AdjustToContents</enum>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <spacer name="horizontalSpacer_3">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>450</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="printGroup">
-     <property name="title">
-      <string>Printing</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout">
-      <item>
-       <widget class="QCheckBox" name="printBackgroundsCheckBox">
-        <property name="toolTip">
-         <string>Select to print background colours and images</string>
-        </property>
-        <property name="text">
-         <string>Print background colours and images</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="groupBox_3">
-     <property name="title">
-      <string>Navigation</string>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_6">
-      <item row="0" column="0">
-       <widget class="QCheckBox" name="spatialCheckBox">
-        <property name="toolTip">
-         <string>Select to enable the spatial navigation feature</string>
-        </property>
-        <property name="whatsThis">
-         <string>&lt;b&gt;Enable Spatial Navigation&lt;/b&gt;
-&lt;p&gt;This enables or disables the Spatial Navigation feature, which consists in the ability to navigate between focusable elements in a Web page, such as hyperlinks and form controls, by using Left, Right, Up and Down arrow keys. For example, if a user presses the Right key, heuristics determine whether there is an element he might be trying to reach towards the right and which element he probably wants.&lt;/p&gt;</string>
-        </property>
-        <property name="text">
-         <string>Enable Spatial Navigation</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QCheckBox" name="linksInFocusChainCheckBox">
-        <property name="toolTip">
-         <string>Select to include links in focus chain</string>
-        </property>
-        <property name="whatsThis">
-         <string>&lt;b&gt;Include Links in Focus Chain&lt;/b&gt;
-&lt;p&gt;This selects whether hyperlinks should be included in the keyboard focus chain.&lt;/p&gt;</string>
-        </property>
-        <property name="text">
-         <string>Include Links in Focus Chain</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QCheckBox" name="accessKeysCheckBox">
-        <property name="toolTip">
-         <string>Select to enable support for access keys</string>
-        </property>
-        <property name="text">
-         <string>Enable access keys</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <spacer>
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>479</width>
-       <height>121</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-  </layout>
- </widget>
- <tabstops>
-  <tabstop>singleHelpWindowCheckBox</tabstop>
-  <tabstop>webSuggestionsCheckBox</tabstop>
-  <tabstop>saveGeometryCheckBox</tabstop>
-  <tabstop>showTabPreviews</tabstop>
-  <tabstop>quirksCheckBox</tabstop>
-  <tabstop>startupCombo</tabstop>
-  <tabstop>homePageEdit</tabstop>
-  <tabstop>setCurrentPageButton</tabstop>
-  <tabstop>defaultHomeButton</tabstop>
-  <tabstop>defaultSchemeCombo</tabstop>
-  <tabstop>javaCheckBox</tabstop>
-  <tabstop>javaScriptGroup</tabstop>
-  <tabstop>jsOpenWindowsCheckBox</tabstop>
-  <tabstop>jsCloseWindowsCheckBox</tabstop>
-  <tabstop>jsClipboardCheckBox</tabstop>
-  <tabstop>pluginsGroup</tabstop>
-  <tabstop>clickToFlashCheckBox</tabstop>
-  <tabstop>doNotTrackCheckBox</tabstop>
-  <tabstop>sendRefererCheckBox</tabstop>
-  <tabstop>refererWhitelistButton</tabstop>
-  <tabstop>xssAuditingCheckBox</tabstop>
-  <tabstop>expireHistory</tabstop>
-  <tabstop>diskCacheCheckBox</tabstop>
-  <tabstop>noCacheHostsButton</tabstop>
-  <tabstop>cacheKeepButton</tabstop>
-  <tabstop>cachePreferButton</tabstop>
-  <tabstop>cacheOfflineButton</tabstop>
-  <tabstop>cacheSizeSpinBox</tabstop>
-  <tabstop>languageCombo</tabstop>
-  <tabstop>printBackgroundsCheckBox</tabstop>
-  <tabstop>spatialCheckBox</tabstop>
-  <tabstop>linksInFocusChainCheckBox</tabstop>
-  <tabstop>accessKeysCheckBox</tabstop>
- </tabstops>
- <resources/>
- <connections/>
-</ui>
--- a/eric6/Preferences/ConfigurationPages/NetworkPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationPages/NetworkPage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -39,7 +39,6 @@
         self.__configDlg = configDialog
         self.__displayMode = None
         self.__webEngine = False
-        self.__webKit = False
         
         self.downloadDirPicker.setMode(E5PathPickerModes.DirectoryMode)
         
@@ -127,20 +126,8 @@
         )
         
         self.__displayMode = displayMode
-        if self.__displayMode == ConfigurationWidget.HelpBrowserMode or \
-                not self.__configDlg.isUsingWebEngine():
-            try:
-                policy = Preferences.getHelp("DownloadManagerRemovePolicy")
-                from Helpviewer.Download.DownloadManager import DownloadManager
-                if policy == DownloadManager.RemoveNever:
-                    self.cleanupNeverButton.setChecked(True)
-                elif policy == DownloadManager.RemoveExit:
-                    self.cleanupExitButton.setChecked(True)
-                else:
-                    self.cleanupSuccessfulButton.setChecked(True)
-                self.__webKit = True
-            except ImportError:
-                self.cleanupGroup.hide()
+        if not self.__configDlg.isUsingWebEngine():
+            self.cleanupGroup.hide()
             self.displayGroup.hide()
         else:
             policy = Preferences.getWebBrowser("DownloadManagerRemovePolicy")
@@ -170,16 +157,7 @@
         Preferences.setUI(
             "RequestDownloadFilename",
             self.requestFilenameCheckBox.isChecked())
-        if self.__webKit:
-            from Helpviewer.Download.DownloadManager import DownloadManager
-            if self.cleanupNeverButton.isChecked():
-                policy = DownloadManager.RemoveNever
-            elif self.cleanupExitButton.isChecked():
-                policy = DownloadManager.RemoveExit
-            else:
-                policy = DownloadManager.RemoveSuccessFullDownload
-            Preferences.setHelp("DownloadManagerRemovePolicy", policy)
-        elif self.__webEngine:
+        if self.__webEngine:
             from WebBrowser.Download.DownloadManager import DownloadManager
             if self.cleanupNeverButton.isChecked():
                 policy = DownloadManager.RemoveNever
--- a/eric6/Preferences/ConfigurationPages/QtPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationPages/QtPage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -17,7 +17,6 @@
 from .Ui_QtPage import Ui_QtPage
 
 import Preferences
-from Globals import qVersionTuple
 
 
 class QtPage(ConfigurationPageBase, Ui_QtPage):
@@ -32,22 +31,18 @@
         self.setupUi(self)
         self.setObjectName("QtPage")
         
-        self.qt4TransPicker.setMode(E5PathPickerModes.DirectoryMode)
+        self.qtTransPicker.setMode(E5PathPickerModes.DirectoryMode)
         self.qtToolsDirPicker.setMode(E5PathPickerModes.DirectoryShowFilesMode)
         self.pyqtToolsDirPicker.setMode(
             E5PathPickerModes.DirectoryShowFilesMode)
         
         # set initial values
-        if qVersionTuple() < (5, 0, 0):
-            self.qt4TransPicker.setText(
-                Preferences.getQt("Qt4TranslationsDir"))
-        else:
-            self.qt4TransPicker.setText(
-                Preferences.getQt("Qt5TranslationsDir"))
+        self.qtTransPicker.setText(
+            Preferences.getQt("Qt5TranslationsDir"))
         self.qtToolsDirPicker.setText(Preferences.getQt("QtToolsDir"))
-        self.qt4PrefixEdit.setText(Preferences.getQt("QtToolsPrefix4"))
-        self.qt4PostfixEdit.setText(Preferences.getQt("QtToolsPostfix4"))
-        self.__updateQt4Sample()
+        self.qtPrefixEdit.setText(Preferences.getQt("QtToolsPrefix"))
+        self.qtPostfixEdit.setText(Preferences.getQt("QtToolsPostfix"))
+        self.__updateQtSample()
         self.pyqtToolsDirPicker.setText(Preferences.getQt("PyQtToolsDir"))
         self.pyuicIndentSpinBox.setValue(Preferences.getQt("PyuicIndent"))
         self.pyuicImportsCheckBox.setChecked(
@@ -57,43 +52,40 @@
         """
         Public slot to save the Qt configuration.
         """
-        if qVersionTuple() < (5, 0, 0):
-            Preferences.setQt("Qt4TranslationsDir", self.qt4TransPicker.text())
-        else:
-            Preferences.setQt("Qt5TranslationsDir", self.qt4TransPicker.text())
+        Preferences.setQt("Qt5TranslationsDir", self.qtTransPicker.text())
         Preferences.setQt("QtToolsDir", self.qtToolsDirPicker.text())
-        Preferences.setQt("QtToolsPrefix4", self.qt4PrefixEdit.text())
-        Preferences.setQt("QtToolsPostfix4", self.qt4PostfixEdit.text())
+        Preferences.setQt("QtToolsPrefix", self.qtPrefixEdit.text())
+        Preferences.setQt("QtToolsPostfix", self.qtPostfixEdit.text())
         Preferences.setQt("PyQtToolsDir", self.pyqtToolsDirPicker.text())
         Preferences.setQt("PyuicIndent", self.pyuicIndentSpinBox.value())
         Preferences.setQt("PyuicFromImports",
                           self.pyuicImportsCheckBox.isChecked())
         
-    def __updateQt4Sample(self):
+    def __updateQtSample(self):
         """
-        Private slot to update the Qt4 tools sample label.
+        Private slot to update the Qt tools sample label.
         """
-        self.qt4SampleLabel.setText(
+        self.qtSampleLabel.setText(
             self.tr("Sample: {0}designer{1}").format(
-                self.qt4PrefixEdit.text(), self.qt4PostfixEdit.text()))
+                self.qtPrefixEdit.text(), self.qtPostfixEdit.text()))
     
     @pyqtSlot(str)
-    def on_qt4PrefixEdit_textChanged(self, txt):
+    def on_qtPrefixEdit_textChanged(self, txt):
         """
         Private slot to handle a change in the entered Qt directory.
         
         @param txt the entered string (string)
         """
-        self.__updateQt4Sample()
+        self.__updateQtSample()
     
     @pyqtSlot(str)
-    def on_qt4PostfixEdit_textChanged(self, txt):
+    def on_qtPostfixEdit_textChanged(self, txt):
         """
         Private slot to handle a change in the entered Qt directory.
         
         @param txt the entered string (string)
         """
-        self.__updateQt4Sample()
+        self.__updateQtSample()
     
 
 def create(dlg):
--- a/eric6/Preferences/ConfigurationPages/QtPage.ui	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationPages/QtPage.ui	Sat Sep 07 16:10:29 2019 +0200
@@ -45,7 +45,7 @@
        </widget>
       </item>
       <item>
-       <widget class="E5PathPicker" name="qt4TransPicker" native="true">
+       <widget class="E5PathPicker" name="qtTransPicker" native="true">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
           <horstretch>0</horstretch>
@@ -131,7 +131,7 @@
          </widget>
         </item>
         <item>
-         <widget class="QLineEdit" name="qt4PrefixEdit">
+         <widget class="QLineEdit" name="qtPrefixEdit">
           <property name="toolTip">
            <string>Enter the prefix for the Qt tools name</string>
           </property>
@@ -145,14 +145,14 @@
          </widget>
         </item>
         <item>
-         <widget class="QLineEdit" name="qt4PostfixEdit">
+         <widget class="QLineEdit" name="qtPostfixEdit">
           <property name="toolTip">
            <string>Enter the postfix for the Qt tools name</string>
           </property>
          </widget>
         </item>
         <item>
-         <widget class="QLabel" name="qt4SampleLabel">
+         <widget class="QLabel" name="qtSampleLabel">
           <property name="sizePolicy">
            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
             <horstretch>1</horstretch>
@@ -283,10 +283,10 @@
   </customwidget>
  </customwidgets>
  <tabstops>
-  <tabstop>qt4TransPicker</tabstop>
+  <tabstop>qtTransPicker</tabstop>
   <tabstop>qtToolsDirPicker</tabstop>
-  <tabstop>qt4PrefixEdit</tabstop>
-  <tabstop>qt4PostfixEdit</tabstop>
+  <tabstop>qtPrefixEdit</tabstop>
+  <tabstop>qtPostfixEdit</tabstop>
   <tabstop>pyqtToolsDirPicker</tabstop>
   <tabstop>pyuicIndentSpinBox</tabstop>
   <tabstop>pyuicImportsCheckBox</tabstop>
--- a/eric6/Preferences/ConfigurationPages/SecurityPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationPages/SecurityPage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -64,19 +64,6 @@
         )
         
         self.__displayMode = displayMode
-        if self.__displayMode == ConfigurationWidget.HelpBrowserMode:
-            try:
-                from PyQt5.QtWebKit import QWebSettings
-                if QWebSettings and \
-                        hasattr(QWebSettings, "DnsPrefetchEnabled"):
-                    self.dnsPrefetchCheckBox.setChecked(
-                        Preferences.getHelp("DnsPrefetchEnabled"))
-            except ImportError:
-                self.dnsPrefetchCheckBox.setEnabled(False)
-        else:
-            if self.__configDlg.isUsingWebEngine():
-                self.dnsPrefetchCheckBox.setEnabled(False)
-                self.dnsGroup.hide()
     
     def save(self):
         """
@@ -88,10 +75,6 @@
         Preferences.setUser(
             "UseMasterPassword",
             self.masterPasswordCheckBox.isChecked())
-        if self.dnsPrefetchCheckBox.isEnabled():
-            Preferences.setHelp(
-                "DnsPrefetchEnabled",
-                self.dnsPrefetchCheckBox.isChecked())
         
         if self.__oldUseMasterPassword != \
                 self.masterPasswordCheckBox.isChecked():
--- a/eric6/Preferences/ConfigurationPages/SecurityPage.ui	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationPages/SecurityPage.ui	Sat Sep 07 16:10:29 2019 +0200
@@ -91,25 +91,6 @@
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="dnsGroup">
-     <property name="title">
-      <string>DNS</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_2">
-      <item>
-       <widget class="QCheckBox" name="dnsPrefetchCheckBox">
-        <property name="toolTip">
-         <string>Select to enable DNS prefetch</string>
-        </property>
-        <property name="text">
-         <string>Use DNS prefetching to improve page loading</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
     <spacer name="verticalSpacer">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Preferences/ConfigurationPages/WebBrowserFlashCookieManagerPage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2015 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the Flash Cookies Manager configuration page.
+"""
+
+from __future__ import unicode_literals
+
+from E5Gui.E5PathPicker import E5PathPickerModes
+
+from .ConfigurationPageBase import ConfigurationPageBase
+from .Ui_WebBrowserFlashCookieManagerPage import \
+    Ui_WebBrowserFlashCookieManagerPage
+
+import Preferences
+
+
+class WebBrowserFlashCookieManagerPage(ConfigurationPageBase,
+                                       Ui_WebBrowserFlashCookieManagerPage):
+    """
+    Class implementing the Flash Cookies Manager configuration page.
+    """
+    def __init__(self):
+        """
+        Constructor
+        """
+        super(WebBrowserFlashCookieManagerPage, self).__init__()
+        self.setupUi(self)
+        self.setObjectName("WebBrowserFlashCookieManagerPage")
+        
+        self.flashDataPathPicker.setMode(E5PathPickerModes.DirectoryMode)
+        
+        # set initial values
+        self.flashDataPathPicker.setText(
+            Preferences.getWebBrowser("FlashCookiesDataPath"))
+        self.autoModeGroup.setChecked(
+            Preferences.getWebBrowser("FlashCookieAutoRefresh"))
+        self.notificationGroup.setChecked(
+            Preferences.getWebBrowser("FlashCookieNotify"))
+        self.deleteGroup.setChecked(
+            Preferences.getWebBrowser("FlashCookiesDeleteOnStartExit"))
+    
+    def save(self):
+        """
+        Public slot to save the Flash Cookies Manager configuration.
+        """
+        Preferences.setWebBrowser(
+            "FlashCookiesDataPath", self.flashDataPathPicker.text())
+        Preferences.setWebBrowser(
+            "FlashCookieAutoRefresh", self.autoModeGroup.isChecked())
+        Preferences.setWebBrowser(
+            "FlashCookieNotify", self.notificationGroup.isChecked())
+        Preferences.setWebBrowser(
+            "FlashCookiesDeleteOnStartExit", self.deleteGroup.isChecked())
+    
+
+def create(dlg):
+    """
+    Module function to create the configuration page.
+    
+    @param dlg reference to the configuration dialog
+    @return reference to the instantiated page (ConfigurationPageBase)
+    """
+    page = WebBrowserFlashCookieManagerPage()
+    return page
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric6/Preferences/ConfigurationPages/WebBrowserFlashCookieManagerPage.ui	Sat Sep 07 16:10:29 2019 +0200
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>WebBrowserFlashCookieManagerPage</class>
+ <widget class="QWidget" name="WebBrowserFlashCookieManagerPage">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>588</width>
+    <height>419</height>
+   </rect>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QLabel" name="headerLabel">
+     <property name="text">
+      <string>&lt;b&gt;Configure Flash Cookies Manager&lt;/b&gt;</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="Line" name="line9">
+     <property name="frameShape">
+      <enum>QFrame::HLine</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Sunken</enum>
+     </property>
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="groupBox">
+     <property name="title">
+      <string>Flash Data Path</string>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_2">
+      <item>
+       <widget class="E5PathPicker" name="flashDataPathPicker" native="true">
+        <property name="focusPolicy">
+         <enum>Qt::StrongFocus</enum>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLabel" name="label">
+        <property name="text">
+         <string>&lt;b&gt;Note&lt;/b&gt;: You should select the directory that contains #SharedObject as a subfolder.</string>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="autoModeGroup">
+     <property name="toolTip">
+      <string>Select to activate auto mode</string>
+     </property>
+     <property name="title">
+      <string>Auto Mode Enabled</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <property name="checked">
+      <bool>false</bool>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <item>
+       <widget class="QLabel" name="autoModeLabel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string>The flash data directory will be checked regularly and flash cookies in the blacklist will be deleted automatically.</string>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="notificationGroup">
+     <property name="toolTip">
+      <string>Select to show a notification upon detection of new flash cookies</string>
+     </property>
+     <property name="title">
+      <string>Notifications enabled</string>
+     </property>
+     <property name="flat">
+      <bool>false</bool>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <property name="checked">
+      <bool>false</bool>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout_2">
+      <item>
+       <widget class="QLabel" name="notificationLabel">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string>User will be notified for every new flash cookie that is not in blacklist and whitelist.</string>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="deleteGroup">
+     <property name="toolTip">
+      <string>Select to delete all flash cookies on startup and shutdown</string>
+     </property>
+     <property name="title">
+      <string>Delete</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <property name="checked">
+      <bool>false</bool>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout_3">
+      <item>
+       <widget class="QLabel" name="deleteLabel">
+        <property name="text">
+         <string>Delete all flash cookies on exit/start (except those are in whitelist)</string>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="label_19">
+     <property name="text">
+      <string>&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; These settings are just applied to flash cookies.&lt;/p&gt;</string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>39</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>E5PathPicker</class>
+   <extends>QWidget</extends>
+   <header>E5Gui/E5PathPicker.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <tabstops>
+  <tabstop>flashDataPathPicker</tabstop>
+  <tabstop>autoModeGroup</tabstop>
+  <tabstop>notificationGroup</tabstop>
+  <tabstop>deleteGroup</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
--- a/eric6/Preferences/ConfigurationPages/WebBrowserVirusTotalPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ConfigurationPages/WebBrowserVirusTotalPage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -38,23 +38,23 @@
         
         # set initial values
         self.vtEnabledCheckBox.setChecked(
-            Preferences.getHelp("VirusTotalEnabled"))
+            Preferences.getWebBrowser("VirusTotalEnabled"))
         self.vtSecureCheckBox.setChecked(
-            Preferences.getHelp("VirusTotalSecure"))
+            Preferences.getWebBrowser("VirusTotalSecure"))
         self.vtServiceKeyEdit.setText(
-            Preferences.getHelp("VirusTotalServiceKey"))
+            Preferences.getWebBrowser("VirusTotalServiceKey"))
     
     def save(self):
         """
         Public slot to save the VirusTotal configuration.
         """
-        Preferences.setHelp(
+        Preferences.setWebBrowser(
             "VirusTotalEnabled",
             self.vtEnabledCheckBox.isChecked())
-        Preferences.setHelp(
+        Preferences.setWebBrowser(
             "VirusTotalSecure",
             self.vtSecureCheckBox.isChecked())
-        Preferences.setHelp(
+        Preferences.setWebBrowser(
             "VirusTotalServiceKey",
             self.vtServiceKeyEdit.text())
     
--- a/eric6/Preferences/ProgramsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/ProgramsDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import re
@@ -85,7 +81,7 @@
         header.setSortIndicator(0, Qt.AscendingOrder)
         header.setSortIndicatorShown(False)
         
-        # 1. do the Qt4/Qt5 programs
+        # 1. do the Qt5 programs
         # 1a. Translation Converter
         exe = Utilities.isWindowsPlatform() and \
             "{0}.exe".format(Utilities.generateQtToolName("lrelease")) or \
@@ -136,6 +132,7 @@
         
         # 2. do the PyQt programs
         # 2.1 do the PyQt4 programs
+        # deprecated
         # 2.1a. Translation Extractor PyQt4
         self.__createProgramEntry(
             self.tr("Translation Extractor (Python, PyQt4)"),
@@ -144,7 +141,7 @@
         # 2.1b. Forms Compiler PyQt4
         self.__createProgramEntry(
             self.tr("Forms Compiler (Python, PyQt4)"),
-            Utilities.generatePyQtToolPath("pyuic4", ["py3uic4", "py2uic4"]),
+            Utilities.generatePyQtToolPath("pyuic4", ["py3uic4"]),
             '--version', 'Python User', 4)
         # 2.1c. Resource Compiler PyQt4
         self.__createProgramEntry(
@@ -161,7 +158,7 @@
         # 2.2b. Forms Compiler PyQt5
         self.__createProgramEntry(
             self.tr("Forms Compiler (Python, PyQt5)"),
-            Utilities.generatePyQtToolPath("pyuic5", ["py3uic5", "py2uic5"]),
+            Utilities.generatePyQtToolPath("pyuic5", ["py3uic5"]),
             '--version', 'Python User', 4)
         # 2.2c. Resource Compiler PyQt5
         self.__createProgramEntry(
--- a/eric6/Preferences/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Preferences/__init__.py	Sat Sep 07 16:10:29 2019 +0200
@@ -17,10 +17,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    basestring    # __IGNORE_WARNING__
-except NameError:
-    basestring = str
 
 import os
 import fnmatch
@@ -32,11 +28,6 @@
     QCoreApplication, QByteArray, QSize, QUrl, Qt, QLibraryInfo, QDateTime
 from PyQt5.QtGui import QColor, QFont, QPalette
 from PyQt5.QtWidgets import QApplication
-from PyQt5.QtNetwork import QNetworkRequest
-try:
-    from PyQt5.QtWebKit import QWebSettings
-except ImportError:
-    QWebSettings = None
 try:
     from PyQt5.QtWebEngineWidgets import QWebEngineSettings
 except ImportError:
@@ -53,12 +44,8 @@
     ResourcesBrowserFlag, TranslationsBrowserFlag, InterfacesBrowserFlag, \
     OthersBrowserFlag, ProtocolsBrowserFlag, AllBrowsersFlag
 
-try:
-    from Helpviewer.FlashCookieManager.FlashCookieUtilities import \
-        flashDataPathForOS
-except ImportError:
-    from WebBrowser.FlashCookieManager.FlashCookieUtilities import \
-        flashDataPathForOS
+from WebBrowser.FlashCookieManager.FlashCookieUtilities import \
+    flashDataPathForOS
 
 from QScintilla.Shell import ShellHistoryStyle
 
@@ -116,18 +103,12 @@
         "MaxVariableSize": 0,     # Bytes, 0 = no limit
         "BgColorNew": QColor("#28FFEEAA"),
         "BgColorChanged": QColor("#2870FF66"),
-    }
-    debuggerDefaults["AllowedHosts"] = ["127.0.0.1", "::1%0"]
-    if sys.version_info[0] == 2:
+        "AllowedHosts": ["127.0.0.1", "::1%0"],
         # space separated list of Python2 extensions
-        debuggerDefaults["PythonExtensions"] = ".py .pyw .py2 .pyw2 .ptl"
+        "PythonExtensions": ".py2 .pyw2 .ptl",
         # space separated list of Python3 extensions
-        debuggerDefaults["Python3Extensions"] = ".py3 .pyw3"
-    else:
-        # space separated list of Python2 extensions
-        debuggerDefaults["PythonExtensions"] = ".py2 .pyw2 .ptl"
-        # space separated list of Python3 extensions
-        debuggerDefaults["Python3Extensions"] = ".py .pyw .py3 .pyw3"
+        "Python3Extensions": ".py .pyw .py3 .pyw3"
+    }
     
     # defaults for the UI settings
     uiDefaults = {
@@ -794,6 +775,7 @@
     
     # defaults for the project browser flags settings
     projectBrowserFlagsDefaults = {
+        # deprecated
         "Qt4": (
             SourcesBrowserFlag |
             FormsBrowserFlag |
@@ -802,6 +784,7 @@
             InterfacesBrowserFlag |
             OthersBrowserFlag |
             ProtocolsBrowserFlag),
+        # deprecated
         "Qt4C": (
             SourcesBrowserFlag |
             ResourcesBrowserFlag |
@@ -891,7 +874,6 @@
         "CustomViewer": "",
         "PythonDocDir": "",
         "Python2DocDir": "",
-        "QtDocDir": "",
         "Qt4DocDir": "",
         "Qt5DocDir": "",
         "PyQt4DocDir": "",
@@ -899,186 +881,7 @@
         "PySideDocDir": "",
         "PySide2DocDir": "",
         "EricDocDir": "",
-        "SingleHelpWindow": True,
-        "SaveGeometry": True,
-        "HelpViewerState": QByteArray(),
-        "WebSearchSuggestions": True,
-        "WebSearchEngine": "Google",
-        "WebSearchKeywords": [],    # array of two tuples (keyword,
-                                    # search engine name)
-        "DiskCacheEnabled": True,
-        "DiskCacheSize": 50,        # 50 MB
-        "CachePolicy": QNetworkRequest.PreferNetwork,
-        "AcceptCookies": 2,         # CookieJar.AcceptOnlyFromSitesNavigatedTo
-        "KeepCookiesUntil": 0,      # CookieJar.KeepUntilExpire
-        "FilterTrackingCookies": True,
-        "PrintBackgrounds": False,
-        "StartupBehavior": 1,      # show speed dial
-        "HomePage": "eric:home",
-        "HistoryLimit": 30,
-        "DefaultScheme": "https://",
-        "OfflineStorageDatabaseQuota": 50,     # 50 MB
-        "UserAgent": "",
-        "ShowPreview": True,
-        "DownloadManagerRemovePolicy": 0,      # never delete downloads
-        "DownloadManagerSize": QSize(400, 300),
-        "DownloadManagerPosition": QPoint(),
-        "DownloadManagerDownloads": [],
-        "AccessKeysEnabled": True,
-        "SearchLanguage": QLocale().language(),
-        "DoNotTrack": False,
-        "SendReferer": True,
-        "SendRefererWhitelist": ["qt-apps.org", "kde-apps.org"],
-        "NoCacheHosts": ["qt-project.org"],
-        "RssFeeds": [],
-        "WarnOnMultipleClose": True,
-        "ZoomValuesDB": "{}",       # empty JSON dictionary
-        # VirusTotal
-        "VirusTotalEnabled": False,
-        "VirusTotalServiceKey": "",
-        "VirusTotalSecure": True,
-        # AdBlock
-        "AdBlockEnabled": False,
-        "AdBlockSubscriptions": [],
-        "AdBlockUpdatePeriod": 1,
-        "AdBlockExceptions": [],
-        # Sync
-        "SyncEnabled": False,
-        "SyncBookmarks": True,
-        "SyncHistory": True,
-        "SyncPasswords": False,
-        "SyncUserAgents": True,
-        "SyncSpeedDial": True,
-        "SyncEncryptData": False,
-        "SyncEncryptionKey": "",
-        "SyncEncryptionKeyLength": 32,      # 16, 24 or 32
-        "SyncEncryptPasswordsOnly": False,
-        "SyncType": 0,
-        "SyncFtpServer": "",
-        "SyncFtpUser": "",
-        "SyncFtpPassword": "",
-        "SyncFtpPath": "",
-        "SyncFtpPort": 21,
-        "SyncFtpIdleTimeout": 30,
-        "SyncDirectoryPath": "",
-        # Click-to-Flash
-        "ClickToFlashEnabled": False,
-        "ClickToFlashWhitelist": [],
-        # PIM
-        "PimFullName": "",
-        "PimFirstName": "",
-        "PimLastName": "",
-        "PimEmail": "",
-        "PimPhone": "",
-        "PimMobile": "",
-        "PimAddress": "",
-        "PimCity": "",
-        "PimZip": "",
-        "PimState": "",
-        "PimCountry": "",
-        "PimHomePage": "",
-        "PimSpecial1": "",
-        "PimSpecial2": "",
-        "PimSpecial3": "",
-        "PimSpecial4": "",
-        # Grease Monkey
-        "GreaseMonkeyDisabledScripts": [],
-        # Flash Cookie Manager
-        "FlashCookiesDeleteOnStartExit": False,
-        "FlashCookieAutoRefresh": False,
-        "FlashCookieNotify": False,
-        "FlashCookiesWhitelist": [],
-        "FlashCookiesBlacklist": [],
-        "FlashCookiesDataPath": flashDataPathForOS(),
     }
-    if QWebSettings:
-        helpDefaults["HelpViewerType"] = 1      # eric browser
-    else:
-        helpDefaults["HelpViewerType"] = 2      # Qt Assistant
-    
-    @classmethod
-    def initWebSettingsDefaults(cls):
-        """
-        Class method to initialize the web settings related defaults.
-        """
-        if QWebSettings is None:
-            return
-        
-        websettings = QWebSettings.globalSettings()
-        fontFamily = websettings.fontFamily(QWebSettings.StandardFont)
-        fontSize = websettings.fontSize(QWebSettings.DefaultFontSize)
-        cls.helpDefaults["StandardFont"] = \
-            QFont(fontFamily, fontSize).toString()
-        fontFamily = websettings.fontFamily(QWebSettings.FixedFont)
-        fontSize = websettings.fontSize(QWebSettings.DefaultFixedFontSize)
-        cls.helpDefaults["FixedFont"] = QFont(fontFamily, fontSize).toString()
-        cls.helpDefaults.update({
-            "AutoLoadImages":
-            websettings.testAttribute(QWebSettings.AutoLoadImages),
-            "UserStyleSheet": "",
-            "SaveUrlColor": QColor(248, 248, 210),
-            "JavaEnabled":
-            websettings.testAttribute(QWebSettings.JavaEnabled),
-            "JavaScriptEnabled":
-            websettings.testAttribute(QWebSettings.JavascriptEnabled),
-            "JavaScriptCanOpenWindows":
-            websettings.testAttribute(
-                QWebSettings.JavascriptCanOpenWindows),
-            "JavaScriptCanCloseWindows":
-            websettings.testAttribute(
-                QWebSettings.JavascriptCanCloseWindows),
-            "JavaScriptCanAccessClipboard":
-            websettings.testAttribute(
-                QWebSettings.JavascriptCanAccessClipboard),
-            "PluginsEnabled":
-            websettings.testAttribute(QWebSettings.PluginsEnabled),
-            "OfflineStorageDatabaseEnabled":
-            websettings.testAttribute(
-                QWebSettings.OfflineStorageDatabaseEnabled),
-        })
-        if hasattr(QWebSettings, "OfflineWebApplicationCacheEnabled"):
-            cls.helpDefaults.update({
-                "OfflineWebApplicationCacheEnabled":
-                websettings.testAttribute(
-                    QWebSettings.OfflineWebApplicationCacheEnabled),
-                "OfflineWebApplicationCacheQuota": 50,     # 50 MB
-            })
-        if hasattr(QWebSettings, "LocalStorageEnabled"):
-            cls.helpDefaults["LocalStorageEnabled"] = \
-                websettings.testAttribute(QWebSettings.LocalStorageEnabled)
-        if hasattr(QWebSettings, "DnsPrefetchEnabled"):
-            cls.helpDefaults["DnsPrefetchEnabled"] = \
-                websettings.testAttribute(QWebSettings.DnsPrefetchEnabled)
-        if hasattr(QWebSettings, "defaultTextEncoding"):
-            cls.helpDefaults["DefaultTextEncoding"] = \
-                websettings.defaultTextEncoding()
-        if hasattr(QWebSettings, "SpatialNavigationEnabled"):
-            cls.helpDefaults["SpatialNavigationEnabled"] = \
-                websettings.testAttribute(
-                    QWebSettings.SpatialNavigationEnabled)
-        if hasattr(QWebSettings, "LinksIncludedInFocusChain"):
-            cls.helpDefaults["LinksIncludedInFocusChain"] = \
-                websettings.testAttribute(
-                    QWebSettings.LinksIncludedInFocusChain)
-        if hasattr(QWebSettings, "LocalContentCanAccessRemoteUrls"):
-            cls.helpDefaults["LocalContentCanAccessRemoteUrls"] = \
-                websettings.testAttribute(
-                    QWebSettings.LocalContentCanAccessRemoteUrls)
-        if hasattr(QWebSettings, "LocalContentCanAccessFileUrls"):
-            cls.helpDefaults["LocalContentCanAccessFileUrls"] = \
-                websettings.testAttribute(
-                    QWebSettings.LocalContentCanAccessFileUrls)
-        if hasattr(QWebSettings, "XSSAuditingEnabled"):
-            cls.helpDefaults["XSSAuditingEnabled"] = \
-                websettings.testAttribute(QWebSettings.XSSAuditingEnabled)
-        if hasattr(QWebSettings, "SiteSpecificQuirksEnabled"):
-            cls.helpDefaults["SiteSpecificQuirksEnabled"] = \
-                websettings.testAttribute(
-                    QWebSettings.SiteSpecificQuirksEnabled)
-        
-        cls.webSettingsIntitialized = True
-    
-    webSettingsIntitialized = False
     
     # defaults for the web browser settings
     webBrowserDefaults = {
@@ -1176,9 +979,34 @@
         "AdBlockUpdatePeriod": 1,
         "AdBlockExceptions": [],
         "AdBlockUseLimitedEasyList": True,
-        # Flash Cookie Manager: identical to helpDefaults
+        # Flash Cookie Manager
+        "FlashCookiesDeleteOnStartExit": False,
+        "FlashCookieAutoRefresh": False,
+        "FlashCookieNotify": False,
+        "FlashCookiesWhitelist": [],
+        "FlashCookiesBlacklist": [],
+        "FlashCookiesDataPath": flashDataPathForOS(),
         # PIM:                  identical to helpDefaults
-        # VirusTotal:           identical to helpDefaults
+        "PimFullName": "",
+        "PimFirstName": "",
+        "PimLastName": "",
+        "PimEmail": "",
+        "PimPhone": "",
+        "PimMobile": "",
+        "PimAddress": "",
+        "PimCity": "",
+        "PimZip": "",
+        "PimState": "",
+        "PimCountry": "",
+        "PimHomePage": "",
+        "PimSpecial1": "",
+        "PimSpecial2": "",
+        "PimSpecial3": "",
+        "PimSpecial4": "",
+        # VirusTotal:
+        "VirusTotalEnabled": False,
+        "VirusTotalServiceKey": "",
+        "VirusTotalSecure": True,
         # Sessions
         "SessionAutoSave": True,
         "SessionAutoSaveInterval": 15,  # interval in seconds
@@ -1359,11 +1187,10 @@
 
     # defaults for Qt related stuff
     qtDefaults = {
-        "Qt4TranslationsDir": "",
         "Qt5TranslationsDir": "",
         "QtToolsDir": "",
-        "QtToolsPrefix4": "",
-        "QtToolsPostfix4": "",
+        "QtToolsPrefix": "",
+        "QtToolsPostfix": "",
         "PyuicIndent": 4,
         "PyuicFromImports": False,
         "PyQtToolsDir": "",
@@ -2754,7 +2581,7 @@
     Module function to retrieve the Qt5DocDir setting.
     
     @param prefClass preferences class used as the storage area
-    @return the requested Qt4DocDir setting (string)
+    @return the requested Qt5DocDir setting (string)
     """
     s = prefClass.settings.value(
         "Help/Qt5DocDir", prefClass.helpDefaults["Qt5DocDir"])
@@ -2774,124 +2601,9 @@
     @param prefClass preferences class used as the storage area
     @return the requested help setting
     """
-    if not prefClass.webSettingsIntitialized:
-        prefClass.initWebSettingsDefaults()
-    
-    if key in ["StandardFont", "FixedFont"]:
-        f = QFont()
-        f.fromString(prefClass.settings.value(
-            "Help/" + key, prefClass.helpDefaults[key]))
-        return f
-    elif key in ["SaveUrlColor"]:
-        col = prefClass.settings.value("Help/" + key)
-        if col is not None:
-            return QColor(col)
-        else:
-            return prefClass.helpDefaults[key]
-    elif key in ["WebSearchKeywords"]:
-        # return a list of tuples of (keyword, engine name)
-        keywords = []
-        size = prefClass.settings.beginReadArray("Help/" + key)
-        for index in range(size):
-            prefClass.settings.setArrayIndex(index)
-            keyword = prefClass.settings.value("Keyword")
-            engineName = prefClass.settings.value("Engine")
-            keywords.append((keyword, engineName))
-        prefClass.settings.endArray()
-        return keywords
-    elif key == "DownloadManagerDownloads":
-        # return a list of tuples of (URL, save location, done flag, page url,
-        # date/time downloaded)
-        downloads = []
-        length = prefClass.settings.beginReadArray("Help/" + key)
-        for index in range(length):
-            prefClass.settings.setArrayIndex(index)
-            url = prefClass.settings.value("URL")
-            if url is None:
-                url = QUrl()
-            location = prefClass.settings.value("Location")
-            done = toBool(prefClass.settings.value("Done"))
-            pageUrl = prefClass.settings.value("PageURL")
-            if pageUrl is None:
-                pageUrl = QUrl()
-            downloaded = prefClass.settings.value("Downloaded")
-            if downloaded is None:
-                downloaded = QDateTime()
-            else:
-                downloaded = QDateTime.fromString(
-                    downloaded, "yyyy-MM-dd hh:mm:ss")
-            downloads.append((url, location, done, pageUrl, downloaded))
-        prefClass.settings.endArray()
-        return downloads
-    elif key == "RssFeeds":
-        # return a list of tuples of (URL, title, icon)
-        feeds = []
-        length = prefClass.settings.beginReadArray("Help/" + key)
-        for index in range(length):
-            prefClass.settings.setArrayIndex(index)
-            url = prefClass.settings.value("URL")
-            title = prefClass.settings.value("Title")
-            icon = prefClass.settings.value("Icon")
-            feeds.append((url, title, icon))
-        prefClass.settings.endArray()
-        return feeds
-    elif key in ["SyncFtpPassword", "SyncEncryptionKey"]:
-        from Utilities.crypto import pwConvert
-        return pwConvert(prefClass.settings.value(
-            "Help/" + key, prefClass.helpDefaults[key]), encode=False)
-    elif key == "HelpViewerType":
-        # special treatment to adjust for missing QtWebKit if eric web browser
-        # was selected
-        value = int(prefClass.settings.value(
-            "Help/" + key, prefClass.helpDefaults[key]))
-        if value == 1 and QWebSettings is None:
-            value = prefClass.helpDefaults[key]
-        return value
-    elif key in ["DiskCacheSize", "AcceptCookies",
-                 "KeepCookiesUntil", "StartupBehavior", "HistoryLimit",
-                 "OfflineStorageDatabaseQuota",
-                 "OfflineWebApplicationCacheQuota", "CachePolicy",
-                 "DownloadManagerRemovePolicy", "AdBlockUpdatePeriod",
-                 "SearchLanguage", "SyncType", "SyncFtpPort",
-                 "SyncFtpIdleTimeout", "SyncEncryptionKeyLength",
-                 ]:
-        return int(prefClass.settings.value(
-            "Help/" + key, prefClass.helpDefaults[key]))
-    elif key in ["SingleHelpWindow", "SaveGeometry", "WebSearchSuggestions",
-                 "DiskCacheEnabled", "FilterTrackingCookies",
-                 "PrintBackgrounds", "AdBlockEnabled", "AutoLoadImages",
-                 "JavaEnabled", "JavaScriptEnabled",
-                 "JavaScriptCanOpenWindows", "JavaScriptCanCloseWindows",
-                 "JavaScriptCanAccessClipboard",
-                 "PluginsEnabled", "DnsPrefetchEnabled",
-                 "OfflineStorageDatabaseEnabled",
-                 "OfflineWebApplicationCacheEnabled", "LocalStorageEnabled",
-                 "ShowPreview", "AccessKeysEnabled", "VirusTotalEnabled",
-                 "VirusTotalSecure", "DoNotTrack", "SendReferer",
-                 "SpatialNavigationEnabled", "LinksIncludedInFocusChain",
-                 "LocalContentCanAccessRemoteUrls",
-                 "LocalContentCanAccessFileUrls", "XSSAuditingEnabled",
-                 "SiteSpecificQuirksEnabled", "SyncEnabled", "SyncBookmarks",
-                 "SyncHistory", "SyncPasswords", "SyncUserAgents",
-                 "SyncSpeedDial", "SyncEncryptData",
-                 "SyncEncryptPasswordsOnly",
-                 "WarnOnMultipleClose", "ClickToFlashEnabled",
-                 "FlashCookiesDeleteOnStartExit", "FlashCookieAutoRefresh",
-                 "FlashCookieNotify",
-                 ]:
-        return toBool(prefClass.settings.value(
-            "Help/" + key, prefClass.helpDefaults[key]))
-    elif key in ["AdBlockSubscriptions", "AdBlockExceptions",
-                 "ClickToFlashWhitelist", "SendRefererWhitelist",
-                 "GreaseMonkeyDisabledScripts", "NoCacheHosts",
-                 "FlashCookiesWhitelist", "FlashCookiesBlacklist",
-                 ]:
-        return toList(prefClass.settings.value(
-            "Help/" + key, prefClass.helpDefaults[key]))
-    else:
-        return prefClass.settings.value("Help/" + key,
-                                        prefClass.helpDefaults[key])
-    
+    return prefClass.settings.value("Help/" + key,
+                                    prefClass.helpDefaults[key])
+
 
 def setHelp(key, value, prefClass=Prefs):
     """
@@ -2901,56 +2613,7 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    if key in ["StandardFont", "FixedFont"]:
-        prefClass.settings.setValue("Help/" + key, value.toString())
-    elif key == "SaveUrlColor":
-        prefClass.settings.setValue("Help/" + key, value.name())
-    elif key == "WebSearchKeywords":
-        # value is list of tuples of (keyword, engine name)
-        prefClass.settings.remove("Help/" + key)
-        prefClass.settings.beginWriteArray("Help/" + key, len(value))
-        index = 0
-        for v in value:
-            prefClass.settings.setArrayIndex(index)
-            prefClass.settings.setValue("Keyword", v[0])
-            prefClass.settings.setValue("Engine", v[1])
-            index += 1
-        prefClass.settings.endArray()
-    elif key == "DownloadManagerDownloads":
-        # value is list of tuples of (URL, save location, done flag, page url,
-        # date/time downloaded)
-        prefClass.settings.remove("Help/" + key)
-        prefClass.settings.beginWriteArray("Help/" + key, len(value))
-        index = 0
-        for v in value:
-            prefClass.settings.setArrayIndex(index)
-            prefClass.settings.setValue("URL", v[0])
-            prefClass.settings.setValue("Location", v[1])
-            prefClass.settings.setValue("Done", v[2])
-            prefClass.settings.setValue("PageURL", v[3])
-            prefClass.settings.setValue(
-                "Downloaded", v[4].toString("yyyy-MM-dd hh:mm:ss"))
-            index += 1
-        prefClass.settings.endArray()
-    elif key == "RssFeeds":
-        # value is list of tuples of (URL, title, icon)
-        prefClass.settings.remove("Help/" + key)
-        prefClass.settings.beginWriteArray("Help/" + key, len(value))
-        index = 0
-        for v in value:
-            prefClass.settings.setArrayIndex(index)
-            prefClass.settings.setValue("URL", v[0])
-            prefClass.settings.setValue("Title", v[1])
-            prefClass.settings.setValue("Icon", v[2])
-            prefClass.settings.setValue("Downloaded", v[4])
-            index += 1
-        prefClass.settings.endArray()
-    elif key in ["SyncFtpPassword", "SyncEncryptionKey"]:
-        from Utilities.crypto import pwConvert
-        prefClass.settings.setValue(
-            "Help/" + key, pwConvert(value, encode=True))
-    else:
-        prefClass.settings.setValue("Help/" + key, value)
+    prefClass.settings.setValue("Help/" + key, value)
 
 
 def getWebBrowser(key, prefClass=Prefs):
@@ -2961,11 +2624,6 @@
     @param prefClass preferences class used as the storage area
     @return the requested help setting
     """
-    # the following entries are identical to the ones of the QtWebKit based
-    # help viewer and are being redirected there
-    if key.startswith(("FlashCookie", "Pim", "VirusTotal")):
-        return getHelp(key, prefClass)
-    
     # Web inspector stuff must come before initializing web engine settings
     # because that starts the chromium web process
     if key == "WebInspectorPort":
@@ -3019,7 +2677,7 @@
             download["Downloaded"] = prefClass.settings.value("Downloaded")
             if download["Downloaded"] is None:
                 download["Downloaded"] = QDateTime()
-            elif isinstance(download["Downloaded"], basestring):
+            elif isinstance(download["Downloaded"], str):
                 download["Downloaded"] = QDateTime.fromString(
                     download["Downloaded"], "yyyy-MM-dd hh:mm:ss")
             downloads.append(download)
@@ -3093,11 +2751,14 @@
                  "DownloadManagerAutoOpen", "DownloadManagerAutoClose",
                  "PlaybackRequiresUserGesture", "JavaScriptCanPaste",
                  "WebRTCPublicInterfacesOnly", "DnsPrefetchEnabled",
+                 "FlashCookiesDeleteOnStartExit", "FlashCookieAutoRefresh",
+                 "FlashCookieNotify", "VirusTotalEnabled", "VirusTotalSecure",
                  ]:
         return toBool(prefClass.settings.value(
             "WebBrowser/" + key, prefClass.webBrowserDefaults[key]))
     elif key in ["GreaseMonkeyDisabledScripts", "SendRefererWhitelist",
                  "AdBlockSubscriptions", "AdBlockExceptions",
+                 "FlashCookiesWhitelist", "FlashCookiesBlacklist",
                  "SpellCheckLanguages",
                  ]:
         return toList(prefClass.settings.value(
@@ -3124,11 +2785,6 @@
     @param value the value to be set
     @param prefClass preferences class used as the storage area
     """
-    # the following entries are identical to the ones of the QtWebKit based
-    # help viewer and are being redirected there
-    if key.startswith(("FlashCookie", "Pim", "VirusTotal")):
-        setHelp(key, value, prefClass)
-    
     if key in ["StandardFont", "FixedFont"]:
         prefClass.settings.setValue("WebBrowser/" + key, value.toString())
     elif key == "SaveUrlColor":
@@ -3216,27 +2872,19 @@
 
 def getQtTranslationsDir(prefClass=Prefs):
     """
-    Module function to retrieve the Qt4TranslationsDir or Qt5TranslationsDir
+    Module function to retrieve the Qt5TranslationsDir
     setting depending on the current Qt version.
     
     @param prefClass preferences class used as the storage area
     @return the requested setting (string)
     """
-    if Globals.qVersionTuple() < (5, 0, 0):
-        s = prefClass.settings.value(
-            "Qt/Qt4TranslationsDir",
-            prefClass.qtDefaults["Qt4TranslationsDir"])
-    else:
-        s = prefClass.settings.value(
-            "Qt/Qt5TranslationsDir",
-            prefClass.qtDefaults["Qt5TranslationsDir"])
+    s = prefClass.settings.value(
+        "Qt/Qt5TranslationsDir",
+        prefClass.qtDefaults["Qt5TranslationsDir"])
     if s == "":
         s = os.getenv("QTTRANSLATIONSDIR", "")
     if s == "":
-        if Globals.qVersionTuple() < (5, 0, 0):
-            s = os.getenv("QT4TRANSLATIONSDIR", "")
-        else:
-            s = os.getenv("QT5TRANSLATIONSDIR", "")
+        s = os.getenv("QT5TRANSLATIONSDIR", "")
     if s == "":
         s = QLibraryInfo.location(QLibraryInfo.TranslationsPath)
     if s == "" and Globals.isWindowsPlatform():
@@ -3255,7 +2903,7 @@
     @param prefClass preferences class used as the storage area
     @return the requested Qt setting
     """
-    if key in ["Qt4TranslationsDir", "Qt5TranslationsDir"]:
+    if key in ["Qt5TranslationsDir"]:
         return getQtTranslationsDir(prefClass)
     elif key in ["PyuicIndent"]:
         return int(prefClass.settings.value(
--- a/eric6/Project/CreateDialogCodeDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Project/CreateDialogCodeDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -4,14 +4,10 @@
 #
 
 """
-Module implementing a dialog to generate code for a Qt4/Qt5 dialog.
+Module implementing a dialog to generate code for a Qt5 dialog.
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import sys
 import os
@@ -42,7 +38,7 @@
 
 class CreateDialogCodeDialog(QDialog, Ui_CreateDialogCodeDialog):
     """
-    Class implementing a dialog to generate code for a Qt4/Qt5 dialog.
+    Class implementing a dialog to generate code for a Qt5 dialog.
     """
     DialogClasses = {
         "QDialog", "QWidget", "QMainWindow", "QWizard", "QWizardPage",
--- a/eric6/Project/DebuggerPropertiesDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Project/DebuggerPropertiesDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -69,7 +69,7 @@
             venvIndex = max(0, self.venvComboBox.findText(
                 self.project.debugProperties["VIRTUALENV"]))
         else:
-            if self.project.pdata["PROGLANGUAGE"] in ["Python", "Python2"]:
+            if self.project.pdata["PROGLANGUAGE"] == "Python2":
                 venvName = Preferences.getDebugger("Python2VirtualEnv")
             elif self.project.pdata["PROGLANGUAGE"] == "Python3":
                 venvName = Preferences.getDebugger("Python3VirtualEnv")
--- a/eric6/Project/LexerAssociationDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Project/LexerAssociationDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -16,8 +16,6 @@
 
 from .Ui_LexerAssociationDialog import Ui_LexerAssociationDialog
 
-from Globals import qVersionTuple
-
 
 class LexerAssociationDialog(QDialog, Ui_LexerAssociationDialog):
     """
@@ -36,10 +34,7 @@
         self.editorLexerList.headerItem().setText(
             self.editorLexerList.columnCount(), "")
         header = self.editorLexerList.header()
-        if qVersionTuple() >= (5, 0, 0):
-            header.setSectionResizeMode(QHeaderView.ResizeToContents)
-        else:
-            header.setResizeMode(QHeaderView.ResizeToContents)
+        header.setSectionResizeMode(QHeaderView.ResizeToContents)
         header.setSortIndicator(0, Qt.AscendingOrder)
         
         try:
--- a/eric6/Project/Project.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Project/Project.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode   # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import os
 import time
@@ -277,8 +273,8 @@
         self.__binaryTranslationsCallbacks = {}
         
         self.__projectTypes = {
-            "Qt4": self.tr("PyQt4 GUI"),
-            "Qt4C": self.tr("PyQt4 Console"),
+            "Qt4": self.tr("PyQt4 GUI (deprecated)"),
+            "Qt4C": self.tr("PyQt4 Console (deprecated)"),
             "PyQt5": self.tr("PyQt5 GUI"),
             "PyQt5C": self.tr("PyQt5 Console"),
             "E6Plugin": self.tr("Eric6 Plugin"),
--- a/eric6/Project/ProjectFormsBrowser.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Project/ProjectFormsBrowser.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,16 +8,12 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import sys
 import shutil
 
-from PyQt5.QtCore import PYQT_VERSION, QThread, QFileInfo, pyqtSignal, QProcess
+from PyQt5.QtCore import QThread, QFileInfo, pyqtSignal, QProcess
 from PyQt5.QtWidgets import QDialog, QInputDialog, QApplication, QMenu
 
 from E5Gui.E5Application import e5App
@@ -674,17 +670,13 @@
                 ["Python", "Python2", "Python3"]:
             if self.project.getProjectType() in ["Qt4", ]:
                 self.__uicompiler = Utilities.generatePyQtToolPath(
-                    'pyuic4', ["py3uic4", "py2uic4"])
+                    'pyuic4', ["py3uic4"])
             elif self.project.getProjectType() in ["PyQt5"]:
                 self.__uicompiler = Utilities.generatePyQtToolPath(
-                    'pyuic5', ["py3uic5", "py2uic5"])
+                    'pyuic5', ["py3uic5"])
             elif self.project.getProjectType() in ["E6Plugin"]:
-                if PYQT_VERSION < 0x050000:
-                    self.__uicompiler = Utilities.generatePyQtToolPath(
-                        'pyuic4', ["py3uic4", "py2uic4"])
-                else:
-                    self.__uicompiler = Utilities.generatePyQtToolPath(
-                        'pyuic5', ["py3uic5", "py2uic5"])
+                self.__uicompiler = Utilities.generatePyQtToolPath(
+                    'pyuic5', ["py3uic5"])
             elif self.project.getProjectType() == "PySide":
                 self.__uicompiler = \
                     Utilities.generatePySideToolPath('pyside-uic', "1")
@@ -841,9 +833,7 @@
             else:
                 # PyQt4 and PyQt5
                 if 'uic5' in uicompiler and \
-                   PYQT_VERSION >= 0x050600 and \
                    self.project.pdata["UICPARAMS"]["Package"]:
-                    # only supported for PyQt5 >= 5.6 (April 2016)
                     args.append("--import-from={0}".format(
                         self.project.pdata["UICPARAMS"]["Package"]))
                 elif Preferences.getQt("PyuicFromImports"):
--- a/eric6/Project/ProjectInterfacesBrowser.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Project/ProjectInterfacesBrowser.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import glob
--- a/eric6/Project/ProjectProtocolsBrowser.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Project/ProjectProtocolsBrowser.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import glob
--- a/eric6/Project/ProjectResourcesBrowser.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Project/ProjectResourcesBrowser.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,14 +8,10 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
-from PyQt5.QtCore import QThread, QFileInfo, pyqtSignal, PYQT_VERSION, QProcess
+from PyQt5.QtCore import QThread, QFileInfo, pyqtSignal, QProcess
 from PyQt5.QtWidgets import QDialog, QApplication, QMenu
 
 from E5Gui.E5Application import e5App
@@ -651,24 +647,15 @@
                 ["Python", "Python2", "Python3"]:
             if self.project.getProjectType() in ["Qt4", "Qt4C"]:
                 self.rccCompiler = Utilities.generatePyQtToolPath('pyrcc4')
-                if PYQT_VERSION >= 0x040500:
-                    if self.project.getProjectLanguage() in \
-                            ["Python", "Python2"]:
-                        args.append("-py2")
-                    else:
-                        args.append("-py3")
+                if self.project.getProjectLanguage() in \
+                        ["Python", "Python2"]:
+                    args.append("-py2")
+                else:
+                    args.append("-py3")
             elif self.project.getProjectType() in ["PyQt5", "PyQt5C"]:
                 self.rccCompiler = Utilities.generatePyQtToolPath('pyrcc5')
             elif self.project.getProjectType() in ["E6Plugin"]:
-                if PYQT_VERSION < 0x050000:
-                    self.rccCompiler = Utilities.generatePyQtToolPath('pyrcc4')
-                    if self.project.getProjectLanguage() in \
-                            ["Python", "Python2"]:
-                        args.append("-py2")
-                    else:
-                        args.append("-py3")
-                else:
-                    self.rccCompiler = Utilities.generatePyQtToolPath('pyrcc5')
+                self.rccCompiler = Utilities.generatePyQtToolPath('pyrcc5')
             elif self.project.getProjectType() in ["PySide", "PySideC"]:
                 self.rccCompiler = Utilities.generatePySideToolPath(
                     'pyside-rcc', "1")
--- a/eric6/Project/ProjectTranslationsBrowser.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Project/ProjectTranslationsBrowser.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,16 +9,12 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import shutil
 import fnmatch
 
-from PyQt5.QtCore import PYQT_VERSION, pyqtSignal, QProcess
+from PyQt5.QtCore import pyqtSignal, QProcess
 from PyQt5.QtWidgets import QDialog, QMenu
 
 from E5Gui import E5MessageBox
@@ -1022,10 +1018,7 @@
         elif self.project.getProjectType() in ["PyQt5", "PyQt5C"]:
             self.pylupdate = Utilities.generatePyQtToolPath('pylupdate5')
         elif self.project.getProjectType() in ["E6Plugin"]:
-            if PYQT_VERSION < 0x050000:
-                self.pylupdate = Utilities.generatePyQtToolPath('pylupdate4')
-            else:
-                self.pylupdate = Utilities.generatePyQtToolPath('pylupdate5')
+            self.pylupdate = Utilities.generatePyQtToolPath('pylupdate5')
         elif self.project.getProjectType() in ["PySide", "PySideC"]:
             self.pylupdate = Utilities.generatePySideToolPath(
                 'pyside-lupdate', "1")
--- a/eric6/Project/PropertiesDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Project/PropertiesDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -89,7 +89,7 @@
             curIndex = self.projectTypeComboBox.findData(
                 self.project.pdata["PROJECTTYPE"])
             if curIndex == -1:
-                curIndex = self.projectTypeComboBox.findData("Qt4")
+                curIndex = self.projectTypeComboBox.findData("PyQt5")
             self.projectTypeComboBox.setCurrentIndex(curIndex)
             self.dirPicker.setText(self.project.ppath)
             self.versionEdit.setText(self.project.pdata["VERSION"])
--- a/eric6/Project/UicCompilerOptionsDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Project/UicCompilerOptionsDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,7 +9,6 @@
 
 from __future__ import unicode_literals
 
-from PyQt5.QtCore import PYQT_VERSION
 from PyQt5.QtWidgets import QDialog
 
 from .Ui_UicCompilerOptionsDialog import Ui_UicCompilerOptionsDialog
@@ -37,8 +36,7 @@
         self.packageRootEdit.setText(compilerOptions["PackagesRoot"])
         self.suffixEdit.setText(compilerOptions["RcSuffix"])
         
-        if 'uic5' not in compiler or PYQT_VERSION < 0x050600:
-            # only supported for PyQt5 >= 5.6 (April 2016)
+        if 'uic5' not in compiler:
             self.packageGroup.setEnabled(False)
         
         msh = self.minimumSizeHint()
--- a/eric6/Project/UicLoadUi.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Project/UicLoadUi.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,32 +8,18 @@
 """
 
 from __future__ import print_function
-try:
-    bytes = unicode     # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import sys
 import json
 import xml.etree.ElementTree
 
 try:
-    from PyQt5.QtCore import qVersion, QMetaMethod, QByteArray
+    from PyQt5.QtCore import QMetaMethod, QByteArray
     from PyQt5.QtWidgets import QAction, QWidget, QApplication
     from PyQt5 import uic
-    
-    pyqtType = 5
 except ImportError:
-    try:
-        # try a potential PyQt4 installation
-        from PyQt4.QtCore import qVersion, QMetaMethod, QByteArray
-        from PyQt4.QtGui import QAction, QWidget, QApplication
-        from PyQt4 import uic
-        
-        pyqtType = 4
-    except ImportError:
-        print("Neither PyQt5 nor PyQt4 found.")
-        sys.exit(1)
+    print("PyQt5 could not be found.")
+    sys.exit(1)
 
 
 def objectName(formFile, projectPath):
@@ -91,16 +77,15 @@
     # I. always check for *
     mapped = mapped.replace("*", "")
     
-    if pyqtType != 4:
-        # 1. check for const
-        mapped = mapped.replace("const ", "")
-        
-        # 2. replace QString and QStringList
-        mapped = mapped.replace("QStringList", "list")\
-                       .replace("QString", "str")
-        
-        # 3. replace double by float
-        mapped = mapped.replace("double", "float")
+    # 1. check for const
+    mapped = mapped.replace("const ", "")
+    
+    # 2. replace QString and QStringList
+    mapped = mapped.replace("QStringList", "list")\
+                   .replace("QString", "str")
+    
+    # 3. replace double by float
+    mapped = mapped.replace("double", "float")
     
     return mapped
 
@@ -139,28 +124,16 @@
                     signatureDict = {
                         "methods": []
                     }
-                    if qVersion().startswith("5."):
-                        signatureDict["signature"] = "on_{0}_{1}".format(
-                            name,
-                            bytes(metaMethod.methodSignature()).decode()
-                        )
-                    else:
-                        signatureDict["signature"] = "on_{0}_{1}".format(
-                            name,
-                            metaMethod.signature()
-                        )
+                    signatureDict["signature"] = "on_{0}_{1}".format(
+                        name,
+                        bytes(metaMethod.methodSignature()).decode()
+                    )
                     
-                    if qVersion().startswith("5."):
-                        signatureDict["methods"].append("on_{0}_{1}".format(
-                            name,
-                            bytes(metaMethod.methodSignature())
-                            .decode().split("(")[0]
-                        ))
-                    else:
-                        signatureDict["methods"].append("on_{0}_{1}".format(
-                            name,
-                            metaMethod.signature().split("(")[0]
-                        ))
+                    signatureDict["methods"].append("on_{0}_{1}".format(
+                        name,
+                        bytes(metaMethod.methodSignature())
+                        .decode().split("(")[0]
+                    ))
                     signatureDict["methods"].append("{0}({1})".format(
                         signatureDict["methods"][-1],
                         ", ".join([
@@ -195,29 +168,17 @@
                     methNamesSig = ", ".join(parameterNamesList)
                     
                     if methNamesSig:
-                        if qVersion().startswith("5."):
-                            pythonSignature = \
-                                "on_{0}_{1}(self, {2})".format(
-                                    name,
-                                    bytes(metaMethod.methodSignature())
-                                    .decode().split("(")[0],
-                                    methNamesSig)
-                        else:
-                            pythonSignature = \
-                                "on_{0}_{1}(self, {2})".format(
-                                    name,
-                                    metaMethod.signature().split("(")[0],
-                                    methNamesSig)
-                    else:
-                        if qVersion().startswith("5."):
-                            pythonSignature = "on_{0}_{1}(self)".format(
+                        pythonSignature = \
+                            "on_{0}_{1}(self, {2})".format(
                                 name,
                                 bytes(metaMethod.methodSignature())
-                                .decode().split("(")[0])
-                        else:
-                            pythonSignature = "on_{0}_{1}(self)".format(
-                                name,
-                                metaMethod.signature().split("(")[0])
+                                .decode().split("(")[0],
+                                methNamesSig)
+                    else:
+                        pythonSignature = "on_{0}_{1}(self)".format(
+                            name,
+                            bytes(metaMethod.methodSignature())
+                            .decode().split("(")[0])
                     signatureDict["python_signature"] = pythonSignature
                     
                     objectDict["methods"].append(signatureDict)
--- a/eric6/QScintilla/Editor.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/QScintilla/Editor.py	Sat Sep 07 16:10:29 2019 +0200
@@ -7,11 +7,6 @@
 Module implementing the editor component of the eric6 IDE.
 """
 from __future__ import unicode_literals
-try:
-    str = unicode
-    chr = unichr
-except NameError:
-    pass
 
 import os
 import re
@@ -29,13 +24,12 @@
 from E5Gui import E5FileDialog, E5MessageBox
 from E5Utilities.E5Cache import E5Cache
 
-from .QsciScintillaCompat import QsciScintillaCompat, QSCINTILLA_VERSION
+from .QsciScintillaCompat import QsciScintillaCompat
 from .EditorMarkerMap import EditorMarkerMap
 
 import Preferences
 import Utilities
 from Utilities import MouseUtilities
-from Globals import qVersionTuple
 
 import UI.PixmapCache
 
@@ -4409,8 +4403,7 @@
         self.caretWidth = Preferences.getEditor("CaretWidth")
         self.setCaretWidth(self.caretWidth)
         self.caretLineFrameWidth = Preferences.getEditor("CaretLineFrameWidth")
-        if QSCINTILLA_VERSION() >= 0x020B00:
-            self.setCaretLineFrameWidth(self.caretLineFrameWidth)
+        self.setCaretLineFrameWidth(self.caretLineFrameWidth)
         self.useMonospaced = Preferences.getEditor("UseMonospacedFont")
         self.setMonospaced(self.useMonospaced)
         edgeMode = Preferences.getEditor("EdgeMode")
@@ -6817,10 +6810,7 @@
         
         @param evt reference to the wheel event (QWheelEvent)
         """
-        if qVersionTuple() >= (5, 0, 0):
-            delta = evt.angleDelta().y()
-        else:
-            delta = evt.delta()
+        delta = evt.angleDelta().y()
         if evt.modifiers() & Qt.ControlModifier:
             if delta < 0:
                 self.zoomOut()
--- a/eric6/QScintilla/Exporters/ExporterHTML.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/QScintilla/Exporters/ExporterHTML.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,16 +9,12 @@
 
 from __future__ import unicode_literals
 
-try:  # Only for Py2
-    import StringIO as io   # __IGNORE_EXCEPTION__
-except (ImportError, NameError):
-    import io       # __IGNORE_WARNING__
-
 # This code is a port of the C++ code found in SciTE 1.74
 # Original code: Copyright 1998-2006 by Neil Hodgson <neilh@scintilla.org>
 
 import os
 import sys
+import io
 
 from PyQt5.QtCore import Qt
 from PyQt5.QtGui import QCursor, QFontInfo
--- a/eric6/QScintilla/KeySequenceTranslator.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/QScintilla/KeySequenceTranslator.py	Sat Sep 07 16:10:29 2019 +0200
@@ -13,8 +13,6 @@
 from PyQt5.QtGui import QKeySequence
 from PyQt5.Qsci import QsciScintilla
 
-from Globals import qVersionTuple
-
 __all__ = ["s2qTranslate"]
 
 Scintilla2QKeySequence = {
@@ -108,13 +106,9 @@
     QsciScintilla.SCI_MOVESELECTEDLINESDOWN: QKeySequence.UnknownKey,
     QsciScintilla.SCI_LOWERCASE: QKeySequence.UnknownKey,
     QsciScintilla.SCI_UPPERCASE: QKeySequence.UnknownKey,
+    QsciScintilla.SCI_LINEDELETE: QKeySequence.DeleteCompleteLine,
+    QsciScintilla.SCI_DELETEBACK: QKeySequence.Backspace,
 }
-if qVersionTuple() >= (5, 2, 0):
-    Scintilla2QKeySequence[QsciScintilla.SCI_LINEDELETE] = \
-        QKeySequence.DeleteCompleteLine,
-if qVersionTuple() >= (5, 5, 0):
-    Scintilla2QKeySequence[QsciScintilla.SCI_DELETEBACK] = \
-        QKeySequence.Backspace
 
 
 def s2qTranslate(scintillaCommand):
--- a/eric6/QScintilla/Lexers/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/QScintilla/Lexers/__init__.py	Sat Sep 07 16:10:29 2019 +0200
@@ -140,7 +140,7 @@
         "Python3": [QCoreApplication.translate('Lexers', "Python3"),
                     'dummy.py', "lexerPython3.png"],
         "MicroPython": [QCoreApplication.translate('Lexers', "MicroPython"),
-                    'dummy.py', "micropython"],
+                        'dummy.py', "micropython"],
         "QSS": [QCoreApplication.translate('Lexers', "QSS"), 'dummy.qss',
                 "lexerCSS.png"],
         "Ruby": [QCoreApplication.translate('Lexers', "Ruby"), 'dummy.rb',
@@ -157,18 +157,12 @@
                 "lexerXML.png"],
         "YAML": [QCoreApplication.translate('Lexers', "YAML"), 'dummy.yml',
                  "lexerYAML.png"],
+        "Gettext": [QCoreApplication.translate('Lexers', "Gettext"),
+                    'dummy.po', "lexerGettext.png"],
+        "CoffeeScript": [QCoreApplication.translate('Lexers', "CoffeeScript"),
+                         'dummy.coffee', "lexerCoffeeScript.png"],
     }
     
-    if QSCINTILLA_VERSION() >= 0x020802:
-        supportedLanguages["Gettext"] = \
-            [QCoreApplication.translate('Lexers', "Gettext"), 'dummy.po',
-             "lexerGettext.png"]
-    
-    if QSCINTILLA_VERSION() >= 0x020803:
-        supportedLanguages["CoffeeScript"] = \
-            [QCoreApplication.translate('Lexers', "CoffeeScript"),
-             'dummy.coffee', "lexerCoffeeScript.png"]
-    
     if QSCINTILLA_VERSION() >= 0x020a00:
         supportedLanguages["JSON"] = \
             [QCoreApplication.translate('Lexers', "JSON"),
@@ -507,22 +501,14 @@
         QCoreApplication.translate(
             'Lexers',
             'Octave Files (*.m *.m.octave)'),
+        QCoreApplication.translate(
+            'Lexers',
+            'Gettext Files (*.po)'),
+        QCoreApplication.translate(
+            'Lexers',
+            'CoffeeScript Files (*.coffee)'),
     ]
     
-    if QSCINTILLA_VERSION() >= 0x020802:
-        openFileFiltersList.append(
-            QCoreApplication.translate(
-                'Lexers',
-                'Gettext Files (*.po)'),
-        )
-    
-    if QSCINTILLA_VERSION() >= 0x020803:
-        openFileFiltersList.append(
-            QCoreApplication.translate(
-                'Lexers',
-                'CoffeeScript Files (*.coffee)'),
-        )
-    
     if QSCINTILLA_VERSION() >= 0x020a00:
         openFileFiltersList.append(
             QCoreApplication.translate(
@@ -729,22 +715,14 @@
         QCoreApplication.translate(
             'Lexers',
             'Octave Files (*.m.octave)'),
+        QCoreApplication.translate(
+            'Lexers',
+            'Gettext Files (*.po)'),
+        QCoreApplication.translate(
+            'Lexers',
+            'CoffeeScript Files (*.coffee)'),
     ]
     
-    if QSCINTILLA_VERSION() >= 0x020802:
-        saveFileFiltersList.append(
-            QCoreApplication.translate(
-                'Lexers',
-                'Gettext Files (*.po)'),
-        )
-    
-    if QSCINTILLA_VERSION() >= 0x020803:
-        saveFileFiltersList.append(
-            QCoreApplication.translate(
-                'Lexers',
-                'CoffeeScript Files (*.coffee)'),
-        )
-    
     if QSCINTILLA_VERSION() >= 0x020a00:
         saveFileFiltersList.append(
             QCoreApplication.translate(
@@ -907,14 +885,10 @@
         '*.e6s': "XML",
         '*.e6t': "XML",
         '*.proto': "Protocol",
+        '*.po': "Gettext",
+        '*.coffee': "CoffeeScript",
     }
     
-    if QSCINTILLA_VERSION() >= 0x020802:
-        assocs['*.po'] = "Gettext"
-    
-    if QSCINTILLA_VERSION() >= 0x020803:
-        assocs['*.coffee'] = "CoffeeScript"
-    
     if QSCINTILLA_VERSION() >= 0x020a00:
         assocs['*.json'] = "JSON"
         assocs['*.md'] = "Markdown"
--- a/eric6/QScintilla/QsciScintillaCompat.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/QScintilla/QsciScintillaCompat.py	Sat Sep 07 16:10:29 2019 +0200
@@ -46,15 +46,7 @@
     
     UserSeparator = '\x04'
     
-    if QSCINTILLA_VERSION() < 0x020600:
-        IndicatorStyleMax = QsciScintilla.INDIC_ROUNDBOX
-    elif QSCINTILLA_VERSION() < 0x020700:
-        IndicatorStyleMax = QsciScintilla.INDIC_DOTBOX
-    elif QSCINTILLA_VERSION() < 0x020800:
-        IndicatorStyleMax = QsciScintilla.INDIC_SQUIGGLEPIXMAP
-    elif QSCINTILLA_VERSION() < 0x020900:
-        IndicatorStyleMax = QsciScintilla.INDIC_COMPOSITIONTHICK
-    elif QSCINTILLA_VERSION() < 0x020A00:
+    if QSCINTILLA_VERSION() < 0x020A00:
         IndicatorStyleMax = QsciScintilla.INDIC_TEXTFORE
     elif QSCINTILLA_VERSION() < 0x020B00:
         IndicatorStyleMax = QsciScintilla.INDIC_POINTCHARACTER
@@ -905,7 +897,7 @@
             if cxx11:
                 self.__targetSearchFlags |= QsciScintilla.SCFIND_CXX11REGEX
         except AttributeError:
-            # defined for PyQt >= 2.11.0
+            # defined for QScintilla >= 2.11.0
             pass
         
         if begline < 0 or begindex < 0:
@@ -1451,33 +1443,6 @@
         @return result of the event handling (boolean)
         """
         return QsciScintillaBase.event(self, evt)
-    
-    if "inputMethodEvent" in QsciScintillaBase.__dict__ and \
-            QSCINTILLA_VERSION() < 0x020801:
-        def inputMethodEvent(self, evt):
-            """
-            Protected method to cope with a glitch in some Qscintilla versions
-            handling input events.
-            
-            Note: This simply disables the Qscintilla behavior.
-            
-            @param evt reference to the input method event object
-                (QInputMethodEvent)
-            """
-            pass
-        
-        def inputMethodQuery(self, query):
-            """
-            Public method to cope with a glitch in some Qscintilla versions
-            handling input events.
-            
-            Note: This simply disables the Qscintilla behavior.
-            
-            @param query reference to the input method query object
-                (Qt.InputMethodQuery)
-            @return object containing the requested information
-            """
-            return None     # __IGNORE_WARNING_M831__
 
     ###########################################################################
     ## interface methods to the mini editor
@@ -1673,80 +1638,33 @@
             line, col = self.getCursorPosition()
             self.insertAt(txt, line, col)
     
+    def positionFromLineIndex(self, line, index):
+        """
+        Public method to convert line and index to an absolute position.
+        
+        @param line line number (integer)
+        @param index index number (integer)
+        @return absolute position in the editor (integer)
+        """
+        pos = self.SendScintilla(QsciScintilla.SCI_POSITIONFROMLINE, line)
+        return pos + index
+    
+    def lineIndexFromPosition(self, pos):
+        """
+        Public method to convert an absolute position to line and index.
+        
+        @param pos absolute position in the editor (integer)
+        @return tuple of line number (integer) and index number (integer)
+        """
+        lin = self.SendScintilla(QsciScintilla.SCI_LINEFROMPOSITION, pos)
+        linpos = self.SendScintilla(
+            QsciScintilla.SCI_POSITIONFROMLINE, lin)
+        return lin, pos - linpos
+    
     ###########################################################################
     ## methods below have been added to QScintilla starting with version 2.5
     ###########################################################################
     
-    if "positionFromLineIndex" not in QsciScintilla.__dict__:
-        def positionFromLineIndex(self, line, index):
-            """
-            Public method to convert line and index to an absolute position.
-            
-            @param line line number (integer)
-            @param index index number (integer)
-            @return absolute position in the editor (integer)
-            """
-            pos = self.SendScintilla(QsciScintilla.SCI_POSITIONFROMLINE, line)
-            
-            # Allow for multi-byte characters
-            for _ in range(index):
-                pos = self.positionAfter(pos)
-            
-            return pos
-    
-    elif QSCINTILLA_VERSION() >= 0x020700:
-        def positionFromLineIndex(self, line, index):
-            """
-            Public method to convert line and index to an absolute position.
-            
-            @param line line number (integer)
-            @param index index number (integer)
-            @return absolute position in the editor (integer)
-            """
-            pos = self.SendScintilla(QsciScintilla.SCI_POSITIONFROMLINE, line)
-            return pos + index
-    
-    if "lineIndexFromPosition" not in QsciScintilla.__dict__:
-        def lineIndexFromPosition(self, pos):
-            """
-            Public method to convert an absolute position to line and index.
-            
-            @param pos absolute position in the editor (integer)
-            @return tuple of line number (integer) and index number (integer)
-            """
-            lin = self.SendScintilla(QsciScintilla.SCI_LINEFROMPOSITION, pos)
-            linpos = self.SendScintilla(
-                QsciScintilla.SCI_POSITIONFROMLINE, lin)
-            indx = 0
-            
-            # Allow for multi-byte characters.
-            while linpos < pos:
-                new_linpos = self.positionAfter(linpos)
-                
-                # If the position hasn't moved then we must be at the end of
-                # the text (which implies that the position passed was beyond
-                # the end of the text).
-                if new_linpos == linpos:
-                    break
-                
-                linpos = new_linpos
-                indx += 1
-            
-            return lin, indx
-    
-    elif QSCINTILLA_VERSION() >= 0x020700:
-        def lineIndexFromPosition(self, pos):
-            """
-            Public method to convert an absolute position to line and index.
-            
-            @param pos absolute position in the editor (integer)
-            @return tuple of line number (integer) and index number (integer)
-            """
-            lin = self.SendScintilla(QsciScintilla.SCI_LINEFROMPOSITION, pos)
-            linpos = self.SendScintilla(
-                QsciScintilla.SCI_POSITIONFROMLINE, lin)
-            return lin, pos - linpos
-    
     if "contractedFolds" not in QsciScintilla.__dict__:
         def contractedFolds(self):
             """
--- a/eric6/QScintilla/Shell.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/QScintilla/Shell.py	Sat Sep 07 16:10:29 2019 +0200
@@ -30,7 +30,6 @@
 
 import Preferences
 import Utilities
-from Globals import qVersionTuple
 
 import UI.PixmapCache
 
@@ -1217,10 +1216,7 @@
         @param evt reference to the wheel event (QWheelEvent)
         """
         if evt.modifiers() & Qt.ControlModifier:
-            if qVersionTuple() >= (5, 0, 0):
-                delta = evt.angleDelta().y()
-            else:
-                delta = evt.delta()
+            delta = evt.angleDelta().y()
             if delta < 0:
                 self.zoomOut()
             elif delta > 0:
--- a/eric6/QScintilla/SpellChecker.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/QScintilla/SpellChecker.py	Sat Sep 07 16:10:29 2019 +0200
@@ -546,12 +546,3 @@
                     return self
         
         raise StopIteration
-    
-    if sys.version_info.major == 2:
-        def next(self):
-            """
-            Public method to advance to the next error.
-            
-            @return self
-            """
-            return self.__next__()
--- a/eric6/QScintilla/TypingCompleters/CompleterPython.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/QScintilla/TypingCompleters/CompleterPython.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    chr = unichr
-except NameError:
-    pass
 
 import re
 
--- a/eric6/Snapshot/SnapWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Snapshot/SnapWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -16,7 +16,7 @@
 import os
 
 from PyQt5.QtCore import pyqtSlot, QFile, QFileInfo, QTimer, QPoint, \
-    QMimeData, Qt, QRegExp, QLocale, PYQT_VERSION_STR
+    QMimeData, Qt, QRegExp, QLocale, QStandardPaths
 from PyQt5.QtGui import QImageWriter, QPixmap, QDrag, QKeySequence
 from PyQt5.QtWidgets import QWidget, QApplication, QShortcut
 
@@ -94,14 +94,8 @@
         delay = int(Preferences.Prefs.settings.value("Snapshot/Delay", 0))
         self.delaySpin.setValue(delay)
         
-        if PYQT_VERSION_STR >= "5.0.0":
-            from PyQt5.QtCore import QStandardPaths
-            picturesLocation = QStandardPaths.writableLocation(
-                QStandardPaths.PicturesLocation)
-        else:
-            from PyQt5.QtGui import QDesktopServices
-            picturesLocation = QDesktopServices.storageLocation(
-                QDesktopServices.PicturesLocation)
+        picturesLocation = QStandardPaths.writableLocation(
+            QStandardPaths.PicturesLocation)
         self.__filename = Preferences.Prefs.settings.value(
             "Snapshot/Filename",
             os.path.join(picturesLocation,
--- a/eric6/Snapshot/SnapshotDefaultGrabber.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Snapshot/SnapshotDefaultGrabber.py	Sat Sep 07 16:10:29 2019 +0200
@@ -150,14 +150,9 @@
         
         if mode == SnapshotModes.Fullscreen:
             desktop = QApplication.desktop()
-            if Globals.qVersionTuple() >= (5, 0, 0):
-                snapshot = QApplication.screens()[0].grabWindow(
-                    desktop.winId(), desktop.x(), desktop.y(),
-                    desktop.width(), desktop.height())
-            else:
-                snapshot = QPixmap.grabWindow(
-                    desktop.winId(), desktop.x(), desktop.y(),
-                    desktop.width(), desktop.height())
+            snapshot = QApplication.screens()[0].grabWindow(
+                desktop.winId(), desktop.x(), desktop.y(),
+                desktop.width(), desktop.height())
         elif mode == SnapshotModes.SelectedScreen:
             desktop = QApplication.desktop()
             if Globals.qVersionTuple() >= (5, 10, 0):
@@ -168,12 +163,8 @@
                 geom = desktop.screenGeometry(screenId)
             x = geom.x()
             y = geom.y()
-            if Globals.qVersionTuple() >= (5, 0, 0):
-                snapshot = QApplication.screens()[0].grabWindow(
-                    desktop.winId(), x, y, geom.width(), geom.height())
-            else:
-                snapshot = QPixmap.grabWindow(
-                    desktop.winId(), x, y, geom.width(), geom.height())
+            snapshot = QApplication.screens()[0].grabWindow(
+                desktop.winId(), x, y, geom.width(), geom.height())
         else:
             snapshot = QPixmap()
         
--- a/eric6/Snapshot/SnapshotFreehandGrabber.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Snapshot/SnapshotFreehandGrabber.py	Sat Sep 07 16:10:29 2019 +0200
@@ -14,8 +14,6 @@
     QPolygon, QPen, QBrush, QPaintEngine
 from PyQt5.QtWidgets import QWidget, QApplication, QToolTip
 
-from Globals import qVersionTuple
-
 
 def drawPolygon(painter, polygon, outline, fill=None):
     """
@@ -87,14 +85,9 @@
         self.__desktop = QApplication.desktop()
         x = self.__desktop.x()
         y = self.__desktop.y()
-        if qVersionTuple() >= (5, 0, 0):
-            self.__pixmap = QApplication.screens()[0].grabWindow(
-                self.__desktop.winId(), x, y,
-                self.__desktop.width(), self.__desktop.height())
-        else:
-            self.__pixmap = QPixmap.grabWindow(
-                self.__desktop.winId(), x, y,
-                self.__desktop.width(), self.__desktop.height())
+        self.__pixmap = QApplication.screens()[0].grabWindow(
+            self.__desktop.winId(), x, y,
+            self.__desktop.width(), self.__desktop.height())
         self.resize(self.__pixmap.size())
         self.move(x, y)
         self.setCursor(Qt.CrossCursor)
--- a/eric6/Snapshot/SnapshotRegionGrabber.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Snapshot/SnapshotRegionGrabber.py	Sat Sep 07 16:10:29 2019 +0200
@@ -14,8 +14,6 @@
     QPaintEngine, QPen, QBrush
 from PyQt5.QtWidgets import QWidget, QApplication, QToolTip
 
-from Globals import qVersionTuple
-
 
 def drawRect(painter, rect, outline, fill=None):
     """
@@ -115,14 +113,9 @@
         self.__desktop = QApplication.desktop()
         x = self.__desktop.x()
         y = self.__desktop.y()
-        if qVersionTuple() >= (5, 0, 0):
-            self.__pixmap = QApplication.screens()[0].grabWindow(
-                self.__desktop.winId(), x, y,
-                self.__desktop.width(), self.__desktop.height())
-        else:
-            self.__pixmap = QPixmap.grabWindow(
-                self.__desktop.winId(), x, y,
-                self.__desktop.width(), self.__desktop.height())
+        self.__pixmap = QApplication.screens()[0].grabWindow(
+            self.__desktop.winId(), x, y,
+            self.__desktop.width(), self.__desktop.height())
         self.resize(self.__pixmap.size())
         self.move(x, y)
         self.setCursor(Qt.CrossCursor)
--- a/eric6/SqlBrowser/SqlConnectionWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/SqlBrowser/SqlConnectionWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -14,8 +14,6 @@
     QTreeWidgetItem, QAction
 from PyQt5.QtSql import QSqlDatabase
 
-from Globals import qVersionTuple
-
 
 class SqlConnectionWidget(QWidget):
     """
@@ -44,11 +42,8 @@
         self.__connectionTree = QTreeWidget(self)
         self.__connectionTree.setObjectName("connectionTree")
         self.__connectionTree.setHeaderLabels([self.tr("Database")])
-        if qVersionTuple() >= (5, 0, 0):
-            self.__connectionTree.header().setSectionResizeMode(
-                QHeaderView.Stretch)
-        else:
-            self.__connectionTree.header().setResizeMode(QHeaderView.Stretch)
+        self.__connectionTree.header().setSectionResizeMode(
+            QHeaderView.Stretch)
         refreshAction = QAction(self.tr("Refresh"), self.__connectionTree)
         self.__schemaAction = QAction(
             self.tr("Show Schema"), self.__connectionTree)
--- a/eric6/Toolbox/PyQt4ImportHook.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2014 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an import hook converting PyQt5 imports to PyQt4 imports.
-"""
-
-from __future__ import unicode_literals
-
-import sys
-import importlib
-
-
-class PyQt4Importer(object):
-    """
-    Class implementing an importer converting PyQt5 imports to PyQt4
-    imports.
-    """
-    def __init__(self):
-        """
-        Constructor
-        """
-        self.__path = None
-    
-    def find_module(self, fullname, path=None):
-        """
-        Public method returning the module loader.
-        
-        @param fullname name of the module to be loaded (string)
-        @param path path to resolve the module name (string)
-        @return module loader object
-        """
-        if fullname.startswith("PyQt5"):
-            self.__path = path
-            return self
-        
-        return None
-    
-    @staticmethod
-    def QComboBox_currentData(other, role=None):
-        """
-        Static method to emulate the currentData method of Qt5.
-        
-        @param other reference to the combo box to get the user data of
-        @type QComboBox
-        @param role role of which data should be retrieved
-        @type int
-        @return stored data at current selection
-        @rtype any
-        """
-        import PyQt4.Qt
-        if role is None:
-            role = PyQt4.Qt.Qt.UserRole
-        
-        idx = other.currentIndex()
-        return other.itemData(idx, role)
-    
-    def load_module(self, fullname):
-        """
-        Public method to load a module.
-        
-        @param fullname name of the module to be loaded (string)
-        @return reference to the loaded module (module)
-        """
-        if fullname in ["PyQt5.QtWidgets", "PyQt5.QtPrintSupport"]:
-            newname = "PyQt4.QtGui"
-        elif fullname in ["PyQt5.QtWebKitWidgets"]:
-            newname = "PyQt4.QtWebKit"
-        else:
-            newname = fullname.replace("PyQt5", "PyQt4")
-        
-        module = importlib.import_module(newname)
-        sys.modules[fullname] = module
-        if fullname == "PyQt5.QtCore":
-            import PyQt4.QtGui
-            module.qInstallMessageHandler = module.qInstallMsgHandler
-            module.QItemSelectionModel = PyQt4.QtGui.QItemSelectionModel
-            module.QItemSelection = PyQt4.QtGui.QItemSelection
-            module.QSortFilterProxyModel = \
-                PyQt4.QtGui.QSortFilterProxyModel
-            module.QAbstractProxyModel = PyQt4.QtGui.QAbstractProxyModel
-            module.QStringListModel = PyQt4.QtGui.QStringListModel
-            
-            PyQt4.QtGui.QComboBox.currentData = self.QComboBox_currentData
-        return module
-
-try:
-    if "--pyqt4" in sys.argv:
-        sys.argv.remove("--pyqt4")
-        # fake a failed PyQt5 import
-        raise ImportError
-    import PyQt5    # __IGNORE_WARNING__
-except ImportError:
-    sys.meta_path.insert(0, PyQt4Importer())
-    
-    if sys.version_info[0] == 2:
-        try:
-            from PyQt5 import sip
-        except ImportError:
-            import sip
-        sip.setapi('QString', 2)
-        sip.setapi('QVariant', 2)
-        sip.setapi('QTextStream', 2)
--- a/eric6/Toolbox/Startup.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Toolbox/Startup.py	Sat Sep 07 16:10:29 2019 +0200
@@ -12,13 +12,12 @@
 import os
 import sys
 
-from PyQt5.QtCore import QTranslator, QLocale, QLibraryInfo, QDir, QTextCodec
+from PyQt5.QtCore import QTranslator, QLocale, QLibraryInfo, QDir
 from PyQt5.QtWidgets import QApplication
 
 from E5Gui.E5Application import E5Application
 
 import Globals
-from Globals import qVersionTuple
 
 import UI.PixmapCache
 
@@ -166,10 +165,6 @@
     
     global loaded_translators
     
-    if qVersionTuple() < (5, 0, 0):
-        # set the default encoding for tr()
-        QTextCodec.setCodecForTr(QTextCodec.codecForName("utf-8"))
-    
     translations = ("qt", "eric6") + translationFiles
     loc = Preferences.getUILanguage()
     if loc is None:
--- a/eric6/Tools/TrayStarter.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Tools/TrayStarter.py	Sat Sep 07 16:10:29 2019 +0200
@@ -32,12 +32,10 @@
     """
     Class implementing a starter for the system tray.
     """
-    def __init__(self, usePyQt4, settingsDir):
+    def __init__(self, settingsDir):
         """
         Constructor
         
-        @param usePyQt4 flag indicating to use PyQt4
-        @type bool
         @param settingsDir directory to be used for the settings files
         @type str
         """
@@ -45,7 +43,6 @@
             UI.PixmapCache.getIcon(
                 Preferences.getTrayStarter("TrayStarterIcon")))
         
-        self.usePyQt4 = usePyQt4
         self.settingsDir = settingsDir
         
         self.maxMenuFilePathLen = 75
@@ -255,8 +252,6 @@
         
         args = []
         args.append(applPath)
-        if self.usePyQt4:
-            args.append("--pyqt4")
         args.append("--config={0}".format(Utilities.getConfigDir()))
         if self.settingsDir:
             args.append("--settings={0}".format(self.settingsDir))
@@ -317,8 +312,6 @@
         variant = Globals.getWebBrowserSupport()
         if variant == "QtWebEngine":
             self.__startProc("eric6_browser.py")
-        elif variant == "QtWebKit":
-            self.__startProc("eric6_webbrowser.py")
 
     def __startUIPreviewer(self):
         """
@@ -542,12 +535,6 @@
                 .format(chromeVersion)
         except ImportError:
             pass
-        try:
-            from PyQt5.QtWebKit import qWebKitVersion
-            versionText += """<tr><td><b>WebKit</b></td><td>{0}</td></tr>"""\
-                .format(qWebKitVersion())
-        except ImportError:
-            pass
         versionText += """<tr><td><b>{0}</b></td><td>{1}</td></tr>"""\
             .format(Program, Version)
         versionText += self.tr("""</table>""")
--- a/eric6/Tools/UIPreviewer.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Tools/UIPreviewer.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,7 +10,7 @@
 from __future__ import unicode_literals
 
 from PyQt5.QtCore import QDir, QFileInfo, QEvent, QSize, Qt
-from PyQt5.QtGui import QCursor, QKeySequence, QPixmap, QImageWriter, QPainter
+from PyQt5.QtGui import QCursor, QKeySequence, QImageWriter, QPainter
 from PyQt5.QtWidgets import QSizePolicy, QSpacerItem, QWidget, QHBoxLayout, \
     QWhatsThis, QDialog, QScrollArea, qApp, QApplication, QStyleFactory, \
     QFrame, QMainWindow, QComboBox, QVBoxLayout, QAction, QLabel
@@ -24,7 +24,6 @@
 import Preferences
 import UI.PixmapCache
 import UI.Config
-from Globals import qVersionTuple
 
 
 class UIPreviewer(E5MainWindow):
@@ -475,10 +474,7 @@
             ext = defaultExt
             fname.append(".{0}".format(defaultExt.lower()))
         
-        if qVersionTuple() >= (5, 0, 0):
-            pix = self.mainWidget.grab()
-        else:
-            pix = QPixmap.grabWidget(self.mainWidget)
+        pix = self.mainWidget.grab()
         self.__updateChildren(self.lastStyle)
         if not pix.save(fname, str(ext)):
             E5MessageBox.critical(
@@ -500,10 +496,7 @@
             return
         
         cb = QApplication.clipboard()
-        if qVersionTuple() >= (5, 0, 0):
-            cb.setPixmap(self.mainWidget.grab())
-        else:
-            cb.setPixmap(QPixmap.grabWidget(self.mainWidget))
+        cb.setPixmap(self.mainWidget.grab())
         self.__updateChildren(self.lastStyle)
     
     def __printImage(self):
@@ -598,10 +591,7 @@
             marginX *= 2
             width = printer.width() - marginX * 2
             height = printer.height() - marginY * 2
-        if qVersionTuple() >= (5, 0, 0):
-            img = self.mainWidget.grab().toImage()
-        else:
-            img = QPixmap.grabWidget(self.mainWidget).toImage()
+        img = self.mainWidget.grab().toImage()
         self.__updateChildren(self.lastStyle)
         p.drawImage(marginX, marginY,
                     img.scaled(width, height,
--- a/eric6/Tools/webBrowserSupport.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Tools/webBrowserSupport.py	Sat Sep 07 16:10:29 2019 +0200
@@ -7,8 +7,8 @@
 """
 Script to determine the supported web browser variant.
 
-It looks for QtWebEngine first and the old QtWebKit thereafter. It reports the
-variant found or the string 'None' if both are absent.
+It looks for QtWebEngine. It reports the variant found or the string 'None' if
+it is absent.
 """
 
 from __future__ import unicode_literals
@@ -21,18 +21,7 @@
     from PyQt5 import QtWebEngineWidgets    # __IGNORE_WARNING__
     variant = "QtWebEngine"
 except ImportError:
-    if sys.argv[-1].startswith("4."):
-        try:
-            from PyQt4 import QtWebKit      # __IGNORE_WARNING__
-            variant = "QtWebKit"
-        except ImportError:
-            pass
-    else:
-        try:
-            from PyQt5 import QtWebKit      # __IGNORE_WARNING__
-            variant = "QtWebKit"
-        except ImportError:
-            pass
+    pass
 
 print(variant)      # __IGNORE_WARNING_M801__
 
--- a/eric6/UI/Browser.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/UI/Browser.py	Sat Sep 07 16:10:29 2019 +0200
@@ -30,7 +30,6 @@
 import Preferences
 import Utilities
 import Utilities.MimeTypes
-from Globals import qVersionTuple
 
 
 class Browser(QTreeView):
@@ -164,10 +163,7 @@
         header = self.header()
         header.setSortIndicator(0, Qt.AscendingOrder)
         header.setSortIndicatorShown(True)
-        if qVersionTuple() >= (5, 0, 0):
-            header.setSectionsClickable(True)
-        else:
-            header.setClickable(True)
+        header.setSectionsClickable(True)
         
         self.setSortingEnabled(True)
         
--- a/eric6/UI/BrowserModel.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/UI/BrowserModel.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,13 +8,8 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
-import sys
 import fnmatch
 import json
 
@@ -1149,7 +1144,7 @@
         elif self.isJavaScriptFile():
             pixName = "fileJavascript.png"
             self._populated = False
-            self._lazyPopulation = sys.version_info[0] == 3
+            self._lazyPopulation = True
             self._moduleName = os.path.basename(finfo)
         else:
             pixName = "fileMisc.png"
--- a/eric6/UI/CodeDocumentationViewer.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/UI/CodeDocumentationViewer.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    basestring    # __IGNORE_WARNING__
-except NameError:
-    basestring = str
 
 from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QUrl, QTimer
 from PyQt5.QtGui import QCursor
@@ -62,16 +58,9 @@
                 pass
             self.__viewerType = "QWebEngineView"
         except ImportError:
-            try:
-                from PyQt5.QtWebKitWidgets import QWebPage, QWebView
-                self.__contents = QWebView(self)
-                self.__contents.page().setLinkDelegationPolicy(
-                    QWebPage.DelegateAllLinks)
-                self.__viewerType = "QWebView"
-            except ImportError:
-                self.__contents = QTextBrowser(self)
-                self.__contents.setOpenExternalLinks(True)
-                self.__viewerType = "QTextEdit"
+            self.__contents = QTextBrowser(self)
+            self.__contents.setOpenExternalLinks(True)
+            self.__viewerType = "QTextEdit"
         
         sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
         sizePolicy.setHorizontalStretch(0)
--- a/eric6/UI/CompareDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/UI/CompareDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    basestring    # __IGNORE_WARNING__
-except NameError:
-    basestring = str
 
 import re
 from difflib import _mdiff, IS_CHARACTER_JUNK
@@ -288,9 +284,9 @@
         self.diffButton.setEnabled(False)
         self.diffButton.hide()
         
-        if isinstance(lines1, basestring):
+        if isinstance(lines1, str):
             lines1 = lines1.splitlines(True)
-        if isinstance(lines2, basestring):
+        if isinstance(lines2, str):
             lines2 = lines2.splitlines(True)
         
         self.__compare(lines1, lines2)
--- a/eric6/UI/EmailDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/UI/EmailDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -34,8 +34,6 @@
 from email.mime.multipart import MIMEMultipart
 from email.header import Header
 
-from Globals import qVersionTuple
-
 
 ############################################################
 ## This code is to work around a bug in the Python email  ##
@@ -87,11 +85,8 @@
         
         self.attachments.headerItem().setText(
             self.attachments.columnCount(), "")
-        if qVersionTuple() >= (5, 0, 0):
-            self.attachments.header().setSectionResizeMode(
-                QHeaderView.Interactive)
-        else:
-            self.attachments.header().setResizeMode(QHeaderView.Interactive)
+        self.attachments.header().setSectionResizeMode(
+            QHeaderView.Interactive)
         
         sig = Preferences.getUser("Signature")
         if sig:
--- a/eric6/UI/FindFileDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/UI/FindFileDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -11,7 +11,6 @@
 
 import os
 import re
-import sys
 
 from PyQt5.QtCore import pyqtSignal, Qt, pyqtSlot
 from PyQt5.QtGui import QCursor
@@ -387,10 +386,7 @@
             txt = re.escape(ct)
         if wo:
             txt = "\\b{0}\\b".format(txt)
-        if sys.version_info[0] == 2:
-            flags = re.UNICODE | re.LOCALE
-        else:
-            flags = re.UNICODE
+        flags = re.UNICODE
         if not cs:
             flags |= re.IGNORECASE
         try:
--- a/eric6/UI/LogView.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/UI/LogView.py	Sat Sep 07 16:10:29 2019 +0200
@@ -16,8 +16,6 @@
 
 from E5Gui.E5Application import e5App
 
-from Globals import qVersionTuple
-
 import UI.PixmapCache
 import Preferences
 import Utilities
@@ -42,8 +40,7 @@
         
         self.__logViewer = LogViewerEdit(self)
         from .SearchWidget import SearchWidget
-        self.__searchWidget = SearchWidget(
-            self.__logViewer, self, hideRegExp=qVersionTuple() < (5, 3, 0))
+        self.__searchWidget = SearchWidget(self.__logViewer, self)
         self.__searchWidget.setSizePolicy(
             QSizePolicy.Fixed, QSizePolicy.Preferred)
         self.__searchWidget.hide()
--- a/eric6/UI/NumbersWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/UI/NumbersWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -17,7 +17,6 @@
 from .Ui_NumbersWidget import Ui_NumbersWidget
 
 import UI.PixmapCache
-from Globals import qVersionTuple
 
 
 class BinaryModel(QAbstractTableModel):
@@ -201,12 +200,8 @@
         
         self.__model = BinaryModel(self)
         self.binTable.setModel(self.__model)
-        if qVersionTuple() >= (5, 0, 0):
-            self.binTable.horizontalHeader().setSectionResizeMode(
-                QHeaderView.ResizeToContents)
-        else:
-            self.binTable.horizontalHeader().setResizeMode(
-                QHeaderView.ResizeToContents)
+        self.binTable.horizontalHeader().setSectionResizeMode(
+            QHeaderView.ResizeToContents)
         self.__model.setBitsAndValue(self.__bytes * 8, self.__input)
         self.__model.dataChanged.connect(self.__binModelDataChanged)
     
--- a/eric6/UI/Previewers/PreviewerHTML.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/UI/Previewers/PreviewerHTML.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,20 +9,15 @@
 
 from __future__ import unicode_literals
 
-try:  # Only for Py2
-    import StringIO as io   # __IGNORE_EXCEPTION__
-    str = unicode
-except (ImportError, NameError):
-    import io       # __IGNORE_WARNING__
-
 import os
 import threading
 import re
 import shutil
 import tempfile
 import sys
+import io
 
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QUrl, QSize, QThread
+from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QUrl, QThread
 from PyQt5.QtGui import QCursor
 from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QCheckBox, \
     QSizePolicy, QToolTip
@@ -58,22 +53,14 @@
             from PyQt5.QtWebEngineWidgets import QWebEngineView
             self.previewView = QWebEngineView(self)
             self.previewView.page().linkHovered.connect(self.__showLink)
-            self.__usesWebKit = False
         except ImportError:
-            try:
-                from PyQt5.QtWebKitWidgets import QWebPage, QWebView
-                self.previewView = QWebView(self)
-                self.previewView.page().setLinkDelegationPolicy(
-                    QWebPage.DelegateAllLinks)
-                self.__usesWebKit = True
-            except ImportError:
-                self.__previewAvailable = False
-                self.titleLabel.setText(self.tr(
-                    "<b>HTML Preview is not available!<br/>"
-                    "Install QtWebEngine or QtWebKit.</b>"))
-                self.titleLabel.setAlignment(Qt.AlignHCenter)
-                self.__layout.addStretch()
-                return
+            self.__previewAvailable = False
+            self.titleLabel.setText(self.tr(
+                "<b>HTML Preview is not available!<br/>"
+                "Install QtWebEngine.</b>"))
+            self.titleLabel.setAlignment(Qt.AlignHCenter)
+            self.__layout.addStretch()
+            return
         
         sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
         sizePolicy.setHorizontalStretch(0)
@@ -99,9 +86,6 @@
         self.jsCheckBox.clicked[bool].connect(self.on_jsCheckBox_clicked)
         self.ssiCheckBox.clicked[bool].connect(self.on_ssiCheckBox_clicked)
         self.previewView.titleChanged.connect(self.on_previewView_titleChanged)
-        if self.__usesWebKit:
-            self.previewView.linkClicked.connect(
-                self.on_previewView_linkClicked)
         
         self.jsCheckBox.setChecked(
             Preferences.getUI("ShowFilePreviewJS"))
@@ -239,14 +223,10 @@
         self.__previewedPath = Utilities.normcasepath(
             Utilities.fromNativeSeparators(filePath))
         self.__saveScrollBarPositions()
-        if self.__usesWebKit:
-            self.previewView.page().mainFrame().contentsSizeChanged.connect(
-                self.__restoreScrollBarPositions)
-        else:
-            self.previewView.page().loadFinished.connect(
-                self.__restoreScrollBarPositions)
-            if not filePath:
-                filePath = "/"
+        self.previewView.page().loadFinished.connect(
+            self.__restoreScrollBarPositions)
+        if not filePath:
+            filePath = "/"
         if rootPath:
             baseUrl = QUrl.fromLocalFile(rootPath + "/index.html")
         else:
@@ -271,84 +251,39 @@
         """
         Private method to save scroll bar positions for a previewed editor.
         """
-        if self.__usesWebKit:
-            frame = self.previewView.page().mainFrame()
-            if frame.contentsSize() == QSize(0, 0):
-                return  # no valid data, nothing to save
-            
-            pos = frame.scrollPosition()
-            self.__scrollBarPositions[self.__previewedPath] = pos
-            self.__hScrollBarAtEnd[self.__previewedPath] = \
-                frame.scrollBarMaximum(Qt.Horizontal) == pos.x()
-            self.__vScrollBarAtEnd[self.__previewedPath] = \
-                frame.scrollBarMaximum(Qt.Vertical) == pos.y()
-        else:
-            from PyQt5.QtCore import QPoint
-            try:
-                pos = self.previewView.scrollPosition()
-            except AttributeError:
-                pos = self.__execJavaScript(
-                    "(function() {"
-                    "var res = {"
-                    "    x: 0,"
-                    "    y: 0,"
-                    "};"
-                    "res.x = window.scrollX;"
-                    "res.y = window.scrollY;"
-                    "return res;"
-                    "})()"
-                )
-                if pos is not None:
-                    pos = QPoint(pos["x"], pos["y"])
-                else:
-                    pos = QPoint(0, 0)
-            self.__scrollBarPositions[self.__previewedPath] = pos
-            self.__hScrollBarAtEnd[self.__previewedPath] = False
-            self.__vScrollBarAtEnd[self.__previewedPath] = False
+        from PyQt5.QtCore import QPoint
+        try:
+            pos = self.previewView.scrollPosition()
+        except AttributeError:
+            pos = self.__execJavaScript(
+                "(function() {"
+                "var res = {"
+                "    x: 0,"
+                "    y: 0,"
+                "};"
+                "res.x = window.scrollX;"
+                "res.y = window.scrollY;"
+                "return res;"
+                "})()"
+            )
+            if pos is not None:
+                pos = QPoint(pos["x"], pos["y"])
+            else:
+                pos = QPoint(0, 0)
+        self.__scrollBarPositions[self.__previewedPath] = pos
+        self.__hScrollBarAtEnd[self.__previewedPath] = False
+        self.__vScrollBarAtEnd[self.__previewedPath] = False
 
     def __restoreScrollBarPositions(self):
         """
         Private method to restore scroll bar positions for a previewed editor.
         """
-        if self.__usesWebKit:
-            try:
-                self.previewView.page().mainFrame().contentsSizeChanged.\
-                    disconnect(self.__restoreScrollBarPositions)
-            except TypeError:
-                # not connected, simply ignore it
-                pass
-            
-            if self.__previewedPath not in self.__scrollBarPositions:
-                return
-            
-            frame = self.previewView.page().mainFrame()
-            frame.setScrollPosition(
-                self.__scrollBarPositions[self.__previewedPath])
-            
-            if self.__hScrollBarAtEnd[self.__previewedPath]:
-                frame.setScrollBarValue(
-                    Qt.Horizontal, frame.scrollBarMaximum(Qt.Horizontal))
-            
-            if self.__vScrollBarAtEnd[self.__previewedPath]:
-                frame.setScrollBarValue(
-                    Qt.Vertical, frame.scrollBarMaximum(Qt.Vertical))
-        else:
-            if self.__previewedPath not in self.__scrollBarPositions:
-                return
-            
-            pos = self.__scrollBarPositions[self.__previewedPath]
-            self.previewView.page().runJavaScript(
-                "window.scrollTo({0}, {1});".format(pos.x(), pos.y()))
-    
-    @pyqtSlot(QUrl)
-    def on_previewView_linkClicked(self, url):
-        """
-        Private slot handling the clicking of a link.
+        if self.__previewedPath not in self.__scrollBarPositions:
+            return
         
-        @param url URL of the clicked link
-        @type QUrl
-        """
-        e5App().getObject("UserInterface").launchHelpViewer(url)
+        pos = self.__scrollBarPositions[self.__previewedPath]
+        self.previewView.page().runJavaScript(
+            "window.scrollTo({0}, {1});".format(pos.x(), pos.y()))
     
     def __execJavaScript(self, script):
         """
--- a/eric6/UI/Previewers/PreviewerQSS.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/UI/Previewers/PreviewerQSS.py	Sat Sep 07 16:10:29 2019 +0200
@@ -18,7 +18,6 @@
 
 import Preferences
 import UI.PixmapCache
-from Globals import qVersionTuple
 
 
 class PreviewerQSS(QWidget, Ui_PreviewerQSS):
@@ -46,16 +45,10 @@
         self.__mdi.resize(160, 80)
         
         # tree and table widgets
-        if qVersionTuple() >= (5, 0, 0):
-            self.tree.header().setSectionResizeMode(
-                QHeaderView.ResizeToContents)
-            self.table.horizontalHeader().setSectionResizeMode(
-                QHeaderView.ResizeToContents)
-        else:
-            self.tree.header().setResizeMode(
-                QHeaderView.ResizeToContents)
-            self.table.horizontalHeader().setResizeMode(
-                QHeaderView.ResizeToContents)
+        self.tree.header().setSectionResizeMode(
+            QHeaderView.ResizeToContents)
+        self.table.horizontalHeader().setSectionResizeMode(
+            QHeaderView.ResizeToContents)
         self.tree.topLevelItem(0).setExpanded(True)
         
         # icon list widget
--- a/eric6/UI/PythonAstViewer.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/UI/PythonAstViewer.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,11 +10,6 @@
 
 from __future__ import unicode_literals
 
-try:
-    str = unicode
-except NameError:
-    pass
-
 import ast
 
 from PyQt5.QtCore import pyqtSlot, Qt, QTimer
--- a/eric6/UI/SearchWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/UI/SearchWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -27,8 +27,7 @@
     searchNext = pyqtSignal(str, bool, bool, bool)
     searchPrevious = pyqtSignal(str, bool, bool, bool)
     
-    def __init__(self, mainWindow, parent=None, spacer=True, showLine=False,
-                 hideRegExp=False):
+    def __init__(self, mainWindow, parent=None, spacer=True, showLine=False):
         """
         Constructor
         
@@ -41,8 +40,6 @@
         @type bool
         @param showLine flag indicating to show all widget in one row
         @type bool
-        @param hideRegExp flag indicating to hide the Regexp checkbox
-        @type bool
         """
         super(SearchWidget, self).__init__(parent)
         
@@ -54,10 +51,6 @@
             self.__ui = Ui_SearchWidget()
         self.__ui.setupUi(self)
         
-        if hideRegExp:
-            self.__ui.regexpCheckBox.setChecked(False)
-            self.__ui.regexpCheckBox.hide()
-        
         if not showLine:
             if spacer:
                 spacerItem = QSpacerItem(
--- a/eric6/UI/SymbolsWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/UI/SymbolsWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,17 +9,9 @@
 
 from __future__ import unicode_literals
 
-try:
-    # Py2
-    str = unicode
-    chr = unichr
-    import htmlentitydefs as html_entities
-except (NameError, ImportError):
-    # Py3
-    import html.entities as html_entities
-
 import sys
 import unicodedata
+import html.entities
 
 from PyQt5.QtCore import pyqtSlot, pyqtSignal, QAbstractTableModel, \
     QModelIndex, Qt, QItemSelectionModel, QLocale
@@ -30,7 +22,6 @@
 
 import UI.PixmapCache
 import Preferences
-from Globals import qVersionTuple
 
 
 class SymbolsModel(QAbstractTableModel):
@@ -372,9 +363,9 @@
             elif col == 2:
                 return "0x{0:04x}".format(symbolId)
             elif col == 3:
-                if symbolId in html_entities.codepoint2name:
+                if symbolId in html.entities.codepoint2name:
                     return "&{0};".format(
-                        html_entities.codepoint2name[symbolId])
+                        html.entities.codepoint2name[symbolId])
             elif col == 4:
                 return unicodedata.name(chr(symbolId), '').title()
         
@@ -509,12 +500,8 @@
         self.symbolsTable.selectionModel().currentRowChanged.connect(
             self.__currentRowChanged)
         
-        if qVersionTuple() >= (5, 0, 0):
-            self.symbolsTable.horizontalHeader().setSectionResizeMode(
-                QHeaderView.Fixed)
-        else:
-            self.symbolsTable.horizontalHeader().setResizeMode(
-                QHeaderView.Fixed)
+        self.symbolsTable.horizontalHeader().setSectionResizeMode(
+            QHeaderView.Fixed)
         fm = self.fontMetrics()
         em = fm.width("M")
         self.symbolsTable.horizontalHeader().resizeSection(0, em * 5)
--- a/eric6/UI/UserInterface.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/UI/UserInterface.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import os
 import sys
@@ -19,7 +15,7 @@
 
 from PyQt5.QtCore import pyqtSlot, QTimer, QFile, QFileInfo, pyqtSignal, \
     PYQT_VERSION_STR, QDate, QIODevice, qVersion, QProcess, QSize, QUrl, \
-    QObject, Qt, QUuid, QThread
+    QObject, Qt, QUuid, QThread, QUrlQuery
 from PyQt5.QtGui import QKeySequence, QDesktopServices
 from PyQt5.QtWidgets import QSizePolicy, QWidget, QWhatsThis, QToolBar, \
     QDialog, QSplitter, QApplication, QMenu, QVBoxLayout, QDockWidget, \
@@ -57,8 +53,6 @@
 
 from eric6config import getConfig
 
-from Globals import qVersionTuple
-
 
 class Redirector(QObject):
     """
@@ -1982,7 +1976,6 @@
             self.actions.append(self.condaWidgetActivateAct)
             self.addAction(self.condaWidgetActivateAct)
         
-        # TODO: add action for "MicroPython", Ctrl+Alt+Shift+M
         if self.microPythonWidget is not None:
             self.microPythonWidgetActivateAct = E5Action(
                 self.tr('MicroPython'),
@@ -2040,8 +2033,6 @@
         ))
         self.helpviewerAct.triggered.connect(self.__helpViewer)
         self.actions.append(self.helpviewerAct)
-##        else:
-##            self.helpviewerAct = None
         
         self.__initQtDocActions()
         self.__initPythonDocActions()
@@ -2783,25 +2774,21 @@
         except ImportError:
             self.pyqt4DocAct = None
         
-        try:
-            import PyQt5        # __IGNORE_WARNING__
-            self.pyqt5DocAct = E5Action(
-                self.tr('PyQt5 Documentation'),
-                self.tr('PyQt&5 Documentation'),
-                0, 0, self, 'pyqt5_documentation')
-            self.pyqt5DocAct.setStatusTip(self.tr(
-                'Open PyQt5 Documentation'))
-            self.pyqt5DocAct.setWhatsThis(self.tr(
-                """<b>PyQt5 Documentation</b>"""
-                """<p>Display the PyQt5 Documentation. Dependent upon your"""
-                """ settings, this will either show the help in Eric's"""
-                """ internal help viewer/web browser, or execute a web"""
-                """ browser or Qt Assistant. </p>"""
-            ))
-            self.pyqt5DocAct.triggered.connect(self.__showPyQt5Doc)
-            self.actions.append(self.pyqt5DocAct)
-        except ImportError:
-            self.pyqt5DocAct = None
+        self.pyqt5DocAct = E5Action(
+            self.tr('PyQt5 Documentation'),
+            self.tr('PyQt&5 Documentation'),
+            0, 0, self, 'pyqt5_documentation')
+        self.pyqt5DocAct.setStatusTip(self.tr(
+            'Open PyQt5 Documentation'))
+        self.pyqt5DocAct.setWhatsThis(self.tr(
+            """<b>PyQt5 Documentation</b>"""
+            """<p>Display the PyQt5 Documentation. Dependent upon your"""
+            """ settings, this will either show the help in Eric's"""
+            """ internal help viewer/web browser, or execute a web"""
+            """ browser or Qt Assistant. </p>"""
+        ))
+        self.pyqt5DocAct.triggered.connect(self.__showPyQt5Doc)
+        self.actions.append(self.pyqt5DocAct)
         
     def __initPythonDocActions(self):
         """
@@ -3124,18 +3111,10 @@
                                           self.__menus["window"])
         self.__menus["subwindow"].setTearOffEnabled(True)
         # central park
-        try:
-            self.__menus["subwindow"].addSection(self.tr("Central Park"))
-        except AttributeError:
-            # Qt4
-            self.__menus["subwindow"].addSeparator()
+        self.__menus["subwindow"].addSection(self.tr("Central Park"))
         self.__menus["subwindow"].addAction(self.viewmanagerActivateAct)
         # left side
-        try:
-            self.__menus["subwindow"].addSection(self.tr("Left Side"))
-        except AttributeError:
-            # Qt4
-            pass
+        self.__menus["subwindow"].addSection(self.tr("Left Side"))
         if self.__shellPosition == "left":
             self.__menus["subwindow"].addAction(self.shellActivateAct)
         self.__menus["subwindow"].addAction(self.pbActivateAct)
@@ -3147,22 +3126,14 @@
         if self.symbolsViewer is not None:
             self.__menus["subwindow"].addAction(self.symbolsViewerActivateAct)
         # bottom side
-        try:
-            self.__menus["subwindow"].addSection(self.tr("Bottom Side"))
-        except AttributeError:
-            # Qt4
-            self.__menus["subwindow"].addSeparator()
+        self.__menus["subwindow"].addSection(self.tr("Bottom Side"))
         if self.__shellPosition == "bottom":
             self.__menus["subwindow"].addAction(self.shellActivateAct)
         self.__menus["subwindow"].addAction(self.taskViewerActivateAct)
         self.__menus["subwindow"].addAction(self.logViewerActivateAct)
         if self.numbersViewer is not None:
             self.__menus["subwindow"].addAction(self.numbersViewerActivateAct)
-        try:
-            self.__menus["subwindow"].addSection(self.tr("Right Side"))
-        except AttributeError:
-            # Qt4
-            self.__menus["subwindow"].addSeparator()
+        self.__menus["subwindow"].addSection(self.tr("Right Side"))
         # right side
         if self.__shellPosition == "right":
             self.__menus["subwindow"].addAction(self.shellActivateAct)
@@ -3182,11 +3153,7 @@
         if self.microPythonWidget is not None:
             self.__menus["subwindow"].addAction(
                 self.microPythonWidgetActivateAct)
-        try:
-            self.__menus["subwindow"].addSection(self.tr("Plug-ins"))
-        except AttributeError:
-            # Qt4
-            self.__menus["subwindow"].addSeparator()
+        self.__menus["subwindow"].addSection(self.tr("Plug-ins"))
         
         ##############################################################
         ## Window/Toolbars menu
@@ -3689,12 +3656,6 @@
                 .format(chromeVersion)
         except ImportError:
             pass
-        try:
-            from PyQt5.QtWebKit import qWebKitVersion
-            versionText += """<tr><td><b>WebKit</b></td><td>{0}</td></tr>"""\
-                .format(qWebKitVersion())
-        except ImportError:
-            pass
         versionText += """<tr><td><b>{0}</b></td><td>{1}</td></tr>"""\
             .format(Program, Version)
         versionText += self.tr("""</table>""")
@@ -3773,15 +3734,10 @@
                 Utilities.generateDistroInfo("\r\n"))
         
         url = QUrl("mailto:{0}".format(address))
-        if qVersionTuple() >= (5, 0, 0):
-            from PyQt5.QtCore import QUrlQuery
-            urlQuery = QUrlQuery(url)
-            urlQuery.addQueryItem("subject", subject)
-            urlQuery.addQueryItem("body", body)
-            url.setQuery(urlQuery)
-        else:
-            url.addQueryItem("subject", subject)
-            url.addQueryItem("body", body)
+        urlQuery = QUrlQuery(url)
+        urlQuery.addQueryItem("subject", subject)
+        urlQuery.addQueryItem("body", body)
+        url.setQuery(urlQuery)
         QDesktopServices.openUrl(url)
         
     def checkForErrorLog(self):
@@ -5988,9 +5944,6 @@
                 os.path.join(
                     os.path.dirname(__file__), "..", "eric6_browser.py"),
                 # QtWebEngine based web browser
-                os.path.join(
-                    os.path.dirname(__file__), "..", "eric6_webbrowser.py"),
-                # QtWebKit based web browser
             ]
             process = QProcess()
             for browser in webBrowsers:
@@ -6253,11 +6206,6 @@
                 PasswordManager
             pwManager = PasswordManager()
             pwManager.masterPasswordChanged(oldPassword, newPassword)
-        elif variant == "QtWebKit":
-            from Helpviewer.Passwords.PasswordManager import \
-                PasswordManager
-            pwManager = PasswordManager()
-            pwManager.masterPasswordChanged(oldPassword, newPassword)
         Utilities.crypto.changeRememberedMaster(newPassword)
         
     def __reloadAPIs(self):
--- a/eric6/Utilities/BackgroundService.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Utilities/BackgroundService.py	Sat Sep 07 16:10:29 2019 +0200
@@ -139,8 +139,7 @@
             self.__processQueue()
         else:
             packedData = json.dumps([fx, fn, data])
-            if sys.version_info[0] == 3:
-                packedData = bytes(packedData, 'utf-8')
+            packedData = bytes(packedData, 'utf-8')
             header = struct.pack(
                 b'!II', len(packedData), adler32(packedData) & 0xffffffff)
             connection.write(header)
@@ -171,8 +170,7 @@
 
             assert adler32(packedData) & 0xffffffff == datahash, \
                 'Hashes not equal'
-            if sys.version_info[0] == 3:
-                packedData = packedData.decode('utf-8')
+            packedData = packedData.decode('utf-8')
             # "check" if is's a tuple of 3 values
             fx, fn, data = json.loads(packedData)
             
@@ -385,8 +383,7 @@
         if not connection.waitForReadyRead(1000):
             return
         lang = connection.read(64)
-        if sys.version_info[0] == 3:
-            lang = lang.decode('utf-8')
+        lang = lang.decode('utf-8')
         # Avoid hanging of eric on shutdown
         if self.connections.get(lang):
             self.connections[lang].close()
--- a/eric6/Utilities/ClassBrowsers/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Utilities/ClassBrowsers/__init__.py	Sat Sep 07 16:10:29 2019 +0200
@@ -23,7 +23,6 @@
 
 import os
 import imp
-import sys
 
 import Preferences
 
@@ -78,7 +77,7 @@
         from . import rbclbr
         dictionary = rbclbr.readmodule_ex(module, path)
         rbclbr._modules.clear()
-    elif ext in __extensions["JavaScript"] and sys.version_info[0] == 3:
+    elif ext in __extensions["JavaScript"]:
         from . import jsclbr
         dictionary = jsclbr.readmodule_ex(module, path)
         jsclbr._modules.clear()
--- a/eric6/Utilities/__init__.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Utilities/__init__.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,22 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-    import locale
-    import urllib
-
-    def quote(url):
-        """
-        Replacement for the urllib.quote function because of unicode problems.
-        
-        @param url text to quote (string)
-        @return quoted url (string)
-        """
-        return urllib.quote(url.encode('utf-8'))
-except NameError:
-    basestring = str
-    from urllib.parse import quote    # __IGNORE_WARNING__
 
 import os
 import sys
@@ -623,7 +607,7 @@
     @return dictionary of string, boolean, complex, float and int
     """
     flags = {}
-    if isinstance(text, basestring):
+    if isinstance(text, str):
         lines = text.rstrip().splitlines()
     else:
         lines = text
@@ -1530,9 +1514,6 @@
     if isWindowsPlatform():
         if not user:
             return win32_GetUserName()
-        else:
-            if sys.version_info[0] == 2:
-                user = user.decode(locale.getpreferredencoding())
     
     return user
 
@@ -1653,7 +1634,7 @@
         elif ext in py3Ext and ext not in py2Ext:
             pyVer = 3
         elif source:
-            if isinstance(source, basestring):
+            if isinstance(source, str):
                 line0 = source.splitlines()[0]
             else:
                 line0 = source[0]
@@ -1726,9 +1707,9 @@
     @param toolname base name of the tool (string)
     @return the Qt tool name without extension (string)
     """
-    return "{0}{1}{2}".format(Preferences.getQt("QtToolsPrefix4"),
+    return "{0}{1}{2}".format(Preferences.getQt("QtToolsPrefix"),
                               toolname,
-                              Preferences.getQt("QtToolsPostfix4")
+                              Preferences.getQt("QtToolsPostfix")
                               )
 
 
@@ -1932,17 +1913,11 @@
         qVersion(), linesep, PYQT_VERSION_STR, linesep)
     info += "  sip {0}{1}  QScintilla {2}{3}".format(
         sip_version_str, linesep, QSCINTILLA_VERSION_STR, linesep)
-    if qVersionTuple() >= (5, 6, 0):
-        try:
-            from PyQt5 import QtWebEngineWidgets    # __IGNORE_WARNING__
-            from WebBrowser.Tools import WebBrowserTools
-            chromeVersion = WebBrowserTools.getWebEngineVersions()[0]
-            info += "  WebEngine {0}{1}".format(chromeVersion, linesep)
-        except ImportError:
-            pass
     try:
-        from PyQt5.QtWebKit import qWebKitVersion
-        info += "  WebKit {0}{1}".format(qWebKitVersion(), linesep)
+        from PyQt5 import QtWebEngineWidgets    # __IGNORE_WARNING__
+        from WebBrowser.Tools import WebBrowserTools
+        chromeVersion = WebBrowserTools.getWebEngineVersions()[0]
+        info += "  WebEngine {0}{1}".format(chromeVersion, linesep)
     except ImportError:
         pass
     info += "  {0} {1}{2}".format(
--- a/eric6/Utilities/binplistlib.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/Utilities/binplistlib.py	Sat Sep 07 16:10:29 2019 +0200
@@ -53,10 +53,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 #
 # Ported from the Python 2 biplist.py script.
--- a/eric6/VCS/StatusMonitorThread.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/VCS/StatusMonitorThread.py	Sat Sep 07 16:10:29 2019 +0200
@@ -203,6 +203,8 @@
             implemented by a subclass
         """
         raise RuntimeError('Not implemented')
+        
+        return tuple()
     
     def _getInfo(self):
         """
--- a/eric6/VCS/VersionControl.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/VCS/VersionControl.py	Sat Sep 07 16:10:29 2019 +0200
@@ -97,6 +97,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return (False, "")
+        
     def vcsInit(self, vcsDir, noDialog=False):
         """
         Public method used to initialize the vcs.
@@ -109,6 +111,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return False
+        
     def vcsConvertProject(self, vcsDataDict, project, addAll=True):
         """
         Public method to convert an uncontrolled project to a version
@@ -138,13 +142,15 @@
         @param addAll flag indicating to add all files to the repository
         @type bool
         @return tuple containing a flag indicating an execution without errors
-            and a flag indicating the version controll status
+            and a flag indicating the version control status
         @rtype tuple of (bool, bool)
         @exception RuntimeError to indicate that this method must be
             implemented by a subclass
         """
         raise RuntimeError('Not implemented')
         
+        return (False, False)
+        
     def vcsCheckout(self, vcsDataDict, projectDir, noDialog=False):
         """
         Public method used to check the project out of the vcs.
@@ -158,6 +164,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return False
+        
     def vcsExport(self, vcsDataDict, projectDir):
         """
         Public method used to export a directory from the vcs.
@@ -170,6 +178,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return False
+        
     def vcsCommit(self, name, message, noDialog=False):
         """
         Public method used to make the change of a file/directory permanent in
@@ -184,6 +194,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return False
+        
     def vcsUpdate(self, name, noDialog=False):
         """
         Public method used to update a file/directory in the vcs.
@@ -197,6 +209,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return False
+        
     def vcsAdd(self, name, isDir=False, noDialog=False):
         """
         Public method used to add a file/directory in the vcs.
@@ -243,6 +257,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return False
+        
     def vcsMove(self, name, project, target=None, noDialog=False):
         """
         Public method used to move a file/directory.
@@ -257,6 +273,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return False
+        
     def vcsLogBrowser(self, name, isFile=False):
         """
         Public method used to view the log of a file/directory in the vcs
@@ -322,6 +340,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return False
+        
     def vcsMerge(self, name):
         """
         Public method used to merge a tag/branch into the local project.
@@ -344,6 +364,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return 0
+        
     def vcsAllRegisteredStates(self, names, dname):
         """
         Public method used to get the registered states of a number of files
@@ -358,6 +380,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return {}
+        
     def vcsName(self):
         """
         Public method returning the name of the vcs.
@@ -368,6 +392,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return ""
+        
     def vcsCleanup(self, name):
         """
         Public method used to cleanup the local copy.
@@ -424,6 +450,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return ""
+        
     def vcsGetProjectBrowserHelper(self, browser, project,
                                    isTranslationsBrowser=False):
         """
@@ -440,6 +468,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return None                         # __IGNORE_WARNING_M831__
+        
     def vcsGetProjectHelper(self, project):
         """
         Public method to instanciate a helper object for the project.
@@ -450,6 +480,8 @@
             implemented by a subclass
         """
         raise RuntimeError('Not implemented')
+        
+        return None                         # __IGNORE_WARNING_M831__
     
     #####################################################################
     ## methods above need to be implemented by a subclass
--- a/eric6/ViewManager/ViewManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/ViewManager/ViewManager.py	Sat Sep 07 16:10:29 2019 +0200
@@ -339,6 +339,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return False
+        
     def canTile(self):
         """
         Public method to signal if tiling of managed windows is available.
@@ -348,6 +350,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return False
+        
     def tile(self):
         """
         Public method to tile the managed windows.
@@ -373,6 +377,8 @@
         """
         raise RuntimeError('Not implemented')
         
+        return None                         # __IGNORE_WARNING_M831__
+        
     def _removeAllViews(self):
         """
         Protected method to remove all views (i.e. windows).
--- a/eric6/VirtualEnv/VirtualenvConfigurationDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/VirtualEnv/VirtualenvConfigurationDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import sys
--- a/eric6/VirtualEnv/VirtualenvExecDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/VirtualEnv/VirtualenvExecDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import sys
 import os
--- a/eric6/WebBrowser/AdBlock/AdBlockRule.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/AdBlock/AdBlockRule.py	Sat Sep 07 16:10:29 2019 +0200
@@ -13,11 +13,9 @@
 
 from enum import IntEnum
 
-from PyQt5.QtCore import PYQT_VERSION, Qt, QRegExp
+from PyQt5.QtCore import Qt, QRegExp
 from PyQt5.QtWebEngineCore import QWebEngineUrlRequestInfo
 
-from Globals import qVersionTuple
-
 
 def toSecondLevelDomain(url):
     """
@@ -655,11 +653,12 @@
         """
         match = (
             req.resourceType() ==
-            QWebEngineUrlRequestInfo.ResourceTypeSubResource)
-        if qVersionTuple() >= (5, 7, 0) and PYQT_VERSION >= 0x50700:
-            match = match or (
-                req.resourceType() ==
-                QWebEngineUrlRequestInfo.ResourceTypePluginResource)
+            QWebEngineUrlRequestInfo.ResourceTypeSubResource
+        )
+        match = match or (
+            req.resourceType() ==
+            QWebEngineUrlRequestInfo.ResourceTypePluginResource
+        )
         
         if self.__objectSubrequestException:
             return not match
--- a/eric6/WebBrowser/Bookmarks/BookmarksToolBar.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/Bookmarks/BookmarksToolBar.py	Sat Sep 07 16:10:29 2019 +0200
@@ -35,7 +35,7 @@
         """
         Constructor
         
-        @param mainWindow reference to the main window (HelpWindow)
+        @param mainWindow reference to the main window (WebBrowserWindow)
         @param model reference to the bookmarks model (BookmarksModel)
         @param parent reference to the parent widget (QWidget)
         """
--- a/eric6/WebBrowser/Bookmarks/NsHtmlReader.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/Bookmarks/NsHtmlReader.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 from PyQt5.QtCore import QObject, QIODevice, QFile, QRegExp, Qt, QDateTime
 
--- a/eric6/WebBrowser/Download/DownloadItem.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/Download/DownloadItem.py	Sat Sep 07 16:10:29 2019 +0200
@@ -11,7 +11,7 @@
 
 import os
 
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, PYQT_VERSION, Qt, QTime, QUrl, \
+from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QTime, QUrl, \
     QStandardPaths, QFileInfo, QDateTime
 from PyQt5.QtGui import QPalette, QDesktopServices
 from PyQt5.QtWidgets import QWidget, QStyle, QDialog
@@ -26,8 +26,6 @@
 
 import UI.PixmapCache
 import Utilities.MimeTypes
-import Globals
-from Globals import qVersionTuple
 
 
 class DownloadItem(QWidget, Ui_DownloadItem):
@@ -143,15 +141,8 @@
         if self.__gettingFileName:
             return
         
-        if qVersionTuple() >= (5, 8, 0) and PYQT_VERSION >= 0x50800:
-            savePage = self.__downloadItem.type() == \
-                QWebEngineDownloadItem.SavePage
-        elif qVersionTuple() >= (5, 7, 0) and PYQT_VERSION >= 0x50700:
-            savePage = self.__downloadItem.savePageFormat() != \
-                QWebEngineDownloadItem.UnknownSaveFormat
-        else:
-            savePage = self.__downloadItem.path().lower().endswith(
-                (".mhtml", ".mht"))
+        savePage = self.__downloadItem.type() == \
+            QWebEngineDownloadItem.SavePage
         
         documentLocation = QStandardPaths.writableLocation(
             QStandardPaths.DocumentsLocation)
@@ -218,50 +209,6 @@
                     defaultFileName,
                     "")
                 self.__gettingFileName = False
-        else:
-            # save page file name and format selection for Qt < 5.8.0
-            self.__autoOpen = False
-            
-            filterList = [
-                self.tr("Web Archive (*.mhtml *.mht)"),
-                self.tr("HTML File (*.html *.htm)"),
-                self.tr("HTML File with all resources (*.html *.htm)"),
-            ]
-            extensionsList = [
-                # tuple of extensions for *nix and Windows
-                # keep in sync with filters list
-                (".mhtml", ".mht"),
-                (".html", ".htm"),
-                (".html", ".htm"),
-            ]
-            self.__gettingFileName = True
-            fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
-                None,
-                self.tr("Save Web Page"),
-                defaultFileName,
-                ";;".join(filterList),
-                None)
-            self.__gettingFileName = False
-            if fileName:
-                index = filterList.index(selectedFilter)
-                if index == 0:
-                    self.__downloadItem.setSavePageFormat(
-                        QWebEngineDownloadItem.MimeHtmlSaveFormat)
-                elif index == 1:
-                    self.__downloadItem.setSavePageFormat(
-                        QWebEngineDownloadItem.SingleHtmlSaveFormat)
-                else:
-                    self.__downloadItem.setSavePageFormat(
-                        QWebEngineDownloadItem.CompleteHtmlSaveFormat)
-                extension = os.path.splitext(fileName)[1]
-                if not extension:
-                    # add the platform specific default extension
-                    if Globals.isWindowsPlatform():
-                        extensionsIndex = 1
-                    else:
-                        extensionsIndex = 0
-                    extensions = extensionsList[index]
-                    fileName += extensions[extensionsIndex]
         
         if not fileName:
             self.progressBar.setVisible(False)
--- a/eric6/WebBrowser/Feeds/FeedsManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/Feeds/FeedsManager.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QUrl, QXmlStreamReader
 from PyQt5.QtGui import QCursor
--- a/eric6/WebBrowser/FlashCookieManager/FlashCookieManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/FlashCookieManager/FlashCookieManager.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,11 +9,6 @@
 
 from __future__ import unicode_literals
 
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
-
 import shutil
 
 from PyQt5.QtCore import QObject, QTimer, QDir, QFileInfo, QFile
--- a/eric6/WebBrowser/GreaseMonkey/GreaseMonkeyScript.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/GreaseMonkey/GreaseMonkeyScript.py	Sat Sep 07 16:10:29 2019 +0200
@@ -22,8 +22,6 @@
 from ..WebBrowserPage import WebBrowserPage
 from ..WebBrowserWindow import WebBrowserWindow
 
-from Globals import qVersionTuple
-
 
 class GreaseMonkeyScript(QObject):
     """
@@ -362,38 +360,10 @@
             QByteArray(self.fullName().encode("utf-8")),
             QCryptographicHash.Md4).toHex()).decode("ascii")
         valuesScript = values_js.format(nspace)
-        if qVersionTuple() < (5, 8, 0):
-            runCheck = """
-                for (var value of {0}) {{
-                    var re = new RegExp(value);
-                    if (re.test(window.location.href)) {{
-                        return;
-                    }}
-                }}
-                __eric_includes = false;
-                for (var value of {1}) {{
-                    var re = new RegExp(value);
-                    if (re.test(window.location.href)) {{
-                        __eric_includes = true;
-                        break;
-                    }}
-                }}
-                if (!__eric_includes) {{
-                    return;
-                }}
-                delete __eric_includes;""".format(
-                self.__toJavaScriptList(self.__exclude[:]),
-                self.__toJavaScriptList(self.__include[:])
-            )
-            self.__script = "(function(){{{0}\n{1}\n{2}\n{3}\n}})();".format(
-                runCheck, valuesScript,
-                self.__manager.requireScripts(self.__require), fileData
-            )
-        else:
-            self.__script = "(function(){{{0}\n{1}\n{2}\n}})();".format(
-                valuesScript, self.__manager.requireScripts(self.__require),
-                fileData
-            )
+        self.__script = "(function(){{{0}\n{1}\n{2}\n}})();".format(
+            valuesScript, self.__manager.requireScripts(self.__require),
+            fileData
+        )
         self.__valid = True
         
         self.__downloadIcon()
@@ -405,55 +375,16 @@
         
         @return prepared script object
         @rtype QWebEngineScript
-        @exception ValueError raised to indicate an unsupported start point
         """
-        if qVersionTuple() < (5, 8, 0):
-            if self.startAt() == GreaseMonkeyScript.DocumentStart:
-                injectionPoint = QWebEngineScript.DocumentCreation
-            elif self.startAt() == GreaseMonkeyScript.DocumentEnd:
-                injectionPoint = QWebEngineScript.DocumentReady
-            elif self.startAt() == GreaseMonkeyScript.DocumentIdle:
-                injectionPoint = QWebEngineScript.Deferred
-            else:
-                raise ValueError("Wrong script start point.")
-        
         script = QWebEngineScript()
         script.setSourceCode("{0}\n{1}".format(
             bootstrap_js, self.__script
         ))
         script.setName(self.fullName())
-        if qVersionTuple() < (5, 8, 0):
-            script.setInjectionPoint(injectionPoint)
         script.setWorldId(WebBrowserPage.SafeJsWorld)
         script.setRunsOnSubFrames(not self.__noFrames)
         return script
     
-    def __toJavaScriptList(self, patterns):
-        """
-        Private method to convert a list of str to a string containing a valid
-        JavaScript list definition.
-        
-        @param patterns list of match patterns
-        @type list of str
-        @return JavaScript script containing the list
-        @rtype str
-        """
-        if qVersionTuple() >= (5, 8, 0):
-            script = ""
-        else:
-            patternList = []
-            for pattern in patterns:
-                if pattern.startswith("/") and pattern.endswith("/") and \
-                        len(pattern) > 1:
-                    pattern = pattern[1:-1]
-                else:
-                    pattern = pattern.replace(".", "\\.").replace("*", ".*")
-                pattern = "'{0}'".format(pattern)
-                patternList.append(pattern)
-            
-            script = "[{0}]".format(",".join(patternList))
-        return script
-    
     def updateScript(self):
         """
         Public method to updated the script.
--- a/eric6/WebBrowser/QtHelp/QtHelpDocumentationSelectionDialog.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/QtHelp/QtHelpDocumentationSelectionDialog.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 import shutil
--- a/eric6/WebBrowser/SafeBrowsing/SafeBrowsingAPIClient.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/SafeBrowsing/SafeBrowsingAPIClient.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import json
 import base64
--- a/eric6/WebBrowser/SafeBrowsing/SafeBrowsingCache.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/SafeBrowsing/SafeBrowsingCache.py	Sat Sep 07 16:10:29 2019 +0200
@@ -22,7 +22,6 @@
     QCoreApplication, QEventLoop
 from PyQt5.QtSql import QSql, QSqlDatabase, QSqlQuery
 
-from .SafeBrowsingUtilities import toHex
 from .SafeBrowsingThreatList import ThreatList
 
 
@@ -593,7 +592,7 @@
                     query.prepare(queryStr)
                     query.addBindValue(QByteArray(prefix),
                                        QSql.In | QSql.Binary)
-                    query.addBindValue(toHex(prefix[:4]))
+                    query.addBindValue(prefix[:4].hex())
                     query.addBindValue(threatList.threatType)
                     query.addBindValue(threatList.platformType)
                     query.addBindValue(threatList.threatEntryType)
--- a/eric6/WebBrowser/SafeBrowsing/SafeBrowsingManager.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/SafeBrowsing/SafeBrowsingManager.py	Sat Sep 07 16:10:29 2019 +0200
@@ -31,7 +31,6 @@
 from .SafeBrowsingCache import SafeBrowsingCache
 from .SafeBrowsingThreatList import ThreatList, HashPrefixList
 from .SafeBrowsingUrl import SafeBrowsingUrl
-from .SafeBrowsingUtilities import toHex
 
 
 class SafeBrowsingManager(QObject):
@@ -427,7 +426,7 @@
         @rtype list of ThreatList
         """
         fullHashes = list(fullHashes)
-        cues = [toHex(fh[:4]) for fh in fullHashes]
+        cues = [fh[:4].hex() for fh in fullHashes]
         result = []
         
         matchingPrefixes = {}
--- a/eric6/WebBrowser/SafeBrowsing/SafeBrowsingUrl.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/SafeBrowsing/SafeBrowsingUrl.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,18 +9,12 @@
 
 from __future__ import unicode_literals
 
-try:
-    import urlparse     # Py2
-    import urllib       # Py2
-except ImportError:
-    import urllib.parse as urllib
-    from urllib import parse as urlparse
-
 import re
 import posixpath
 import socket
 import struct
 import hashlib
+import urllib.parse
 
 import Preferences
 
@@ -70,7 +64,7 @@
             @return unescaped URL string
             @rtype str
             """
-            uu = urllib.unquote(u)
+            uu = urllib.parse.unquote(u)
             if uu == u:
                 return uu
             else:
@@ -86,7 +80,7 @@
             @rtype str
             """
             safeChars = '!"$&\'()*+,-./:;<=>?@[\\]^_`{|}~'
-            return urllib.quote(s, safe=safeChars)
+            return urllib.parse.quote(s, safe=safeChars)
         
         url = self.__url.strip()
         url = url.replace('\n', '').replace('\r', '').replace('\t', '')
@@ -96,10 +90,10 @@
         if len(url.split('://')) <= 1:
             url = Preferences.getWebBrowser("DefaultScheme") + url
         url = quote(fullUnescape(url))
-        urlParts = urlparse.urlsplit(url)
+        urlParts = urllib.parse.parse.urlsplit(url)
         if not urlParts[0]:
             url = Preferences.getWebBrowser("DefaultScheme") + url
-            urlParts = urlparse.urlsplit(url)
+            urlParts = urllib.parse.parse.urlsplit(url)
         protocol = urlParts.scheme
         host = fullUnescape(urlParts.hostname)
         path = fullUnescape(urlParts.path)
@@ -184,10 +178,10 @@
                 curPath = curPath + pathParts[i] + '/'
                 yield curPath
         
-        protocol, addressStr = urllib.splittype(url)
-        host, path = urllib.splithost(addressStr)
-        user, host = urllib.splituser(host)
-        host, port = urllib.splitport(host)
+        protocol, addressStr = urllib.parse.splittype(url)
+        host, path = urllib.parse.splithost(addressStr)
+        user, host = urllib.parse.splituser(host)
+        host, port = urllib.parse.splitport(host)
         host = host.strip('/')
         seenPermutations = set()
         for h in hostPermutations(host):
--- a/eric6/WebBrowser/SafeBrowsing/SafeBrowsingUtilities.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2017 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing some utilities for Google Safe Browsing.
-"""
-
-from __future__ import unicode_literals
-
-import sys
-
-if sys.version_info < (3, 0):
-    def toHex(value):
-        """
-        Public method to convert a bytes array to a hex string.
-        
-        @param value value to be converted
-        @type bytes
-        @return hex string
-        @rtype str
-        """
-        return value.encode("hex")
-else:
-    def toHex(value):
-        """
-        Public method to convert a bytes array to a hex string.
-        
-        @param value value to be converted
-        @type bytes
-        @return hex string
-        @rtype str
-        """
-        return value.hex()
--- a/eric6/WebBrowser/SpeedDial/SpeedDial.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/SpeedDial/SpeedDial.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 import os
 
--- a/eric6/WebBrowser/Tools/FilePrinter.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,577 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2016 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing an object for printing of files.
-"""
-
-#
-# This code is inspired by and ported from Qupzilla.
-# Original Copyright (C) 2016 by Kevin Kofler <kevin.kofler@chello.at>
-#
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QFile, QStandardPaths, QProcess
-from PyQt5.QtPrintSupport import QPrinter, QPrintEngine
-
-import Globals
-from Globals import qVersionTuple
-
-
-_FilePrintJobs = []
-
-
-class FilePrinter(object):
-    """
-    Class implementing methods for printing on *nix systems.
-    """
-    #
-    # Whether file(s) get deleted by the application or by the print system.
-    #
-    ApplicationDeletesFiles = 0
-    SystemDeletesFiles = 1
-    
-    #
-    # Whether pages to be printed are selected by the application or the print
-    # system.
-    #
-    # If application side, then the generated file will only contain those
-    # pages selected by the user, so FilePrinter will print all the pages in
-    # the file.
-    #
-    #  If system side, then the file will contain all the pages in the
-    # document, and the print system will print the users selected print range
-    # from out of the file.
-    #
-    # Note: system side only works in CUPS, not LPR.
-    #
-    ApplicationSelectsPages = 0
-    SystemSelectsPages = 1
-    
-    def __init__(self):
-        """
-        Constructor
-        """
-        self.__paperSizesMap = {
-            QPrinter.A0: "A0",
-            QPrinter.A1: "A1",
-            QPrinter.A2: "A2",
-            QPrinter.A3: "A3",
-            QPrinter.A4: "A4",
-            QPrinter.A5: "A5",
-            QPrinter.A6: "A6",
-            QPrinter.A7: "A7",
-            QPrinter.A8: "A8",
-            QPrinter.A9: "A9",
-            QPrinter.B0: "B0",
-            QPrinter.B1: "B1",
-            QPrinter.B2: "B2",
-            QPrinter.B3: "B3",
-            QPrinter.B4: "B4",
-            QPrinter.B5: "B5",
-            QPrinter.B6: "B6",
-            QPrinter.B7: "B7",
-            QPrinter.B8: "B8",
-            QPrinter.B9: "B9",
-            QPrinter.B10: "B10",
-            QPrinter.C5E: "C5",
-            QPrinter.Comm10E: "Comm10",
-            QPrinter.DLE: "DL",
-            QPrinter.Executive: "Executive",
-            QPrinter.Folio: "Folio",
-            QPrinter.Ledger: "Ledger",
-            QPrinter.Legal: "Legal",
-            QPrinter.Letter: "Letter",
-            QPrinter.Tabloid: "Tabloid",
-        }
-        
-        self.__paperSourcesMap = {
-            QPrinter.Auto: "",
-            QPrinter.Cassette: "Cassette",
-            QPrinter.Envelope: "Envelope",
-            QPrinter.EnvelopeManual: "EnvelopeManual",
-            QPrinter.FormSource: "FormSource",
-            QPrinter.LargeCapacity: "LargeCapacity",
-            QPrinter.LargeFormat: "LargeFormat",
-            QPrinter.Lower: "Lower",
-            QPrinter.MaxPageSource: "MaxPageSource",
-            QPrinter.Middle: "Middle",
-            QPrinter.Manual: "Manual",
-            QPrinter.OnlyOne: "OnlyOne",
-            QPrinter.Tractor: "Tractor",
-            QPrinter.SmallFormat: "SmallFormat",
-        }
-        
-        self.__process = None
-        self.__doDeleteFile = FilePrinter.ApplicationDeletesFiles
-        self.__fileName = ""
-    
-    def _doPrintFile(self, printer, fileName, fileDeletePolicy,
-                     pageSelectPolicy, pageRange):
-        """
-        Protected method to print a file.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @param fileName name (path) of the file to be printed
-        @type str
-        @param fileDeletePolicy policy determining who deletes the file to be
-            printed (application or system)
-        @type int (0 or 1)
-        @param pageSelectPolicy policy determining who selects the pages to be
-            printed (application or system)
-        @type int (0 or 1)
-        @param pageRange string determining the page range(s) to be printed, if
-            SystemSelectsPages was given for pageSelectPolicy and user chose
-            Selection in print dialog
-        @type str
-        @return flag indicating successful print job submission
-        @rtype bool
-        """
-        if not QFile.exists(fileName):
-            return False
-        
-        self.__fileName = fileName
-        self.__doDeleteFile = (
-            fileDeletePolicy == FilePrinter.SystemDeletesFiles)
-        
-        if printer.printerState() in [QPrinter.Aborted, QPrinter.Error]:
-            if self.__doDeleteFile:
-                QFile.remove(fileName)
-            return False
-        
-        #
-        # Print via lpr/lp command
-        #
-        
-        #
-        # Decide what executable to use to print with, need the CUPS version
-        # of lpr if available. Some distros name the CUPS version of lpr as
-        # lpr-cups or lpr.cups so try those first before default to lpr, or
-        # failing that to lp.
-        if QStandardPaths.findExecutable("lpr-cups"):
-            exe = "lpr-cups"
-        elif QStandardPaths.findExecutable("lpr.cups"):
-            exe = "lpr.cups"
-        elif QStandardPaths.findExecutable("lpr"):
-            exe = "lpr"
-        elif QStandardPaths.findExecutable("lp"):
-            exe = "lp"
-        else:
-            if self.__doDeleteFile:
-                QFile.remove(fileName)
-            return False
-        
-        useCupsOptions = isCupsAvailable()
-        argsList = self._printArguments(
-            printer, fileDeletePolicy, pageSelectPolicy, useCupsOptions,
-            pageRange, exe)
-        argsList.append(fileName)
-        
-        self.__process = QProcess()
-        if qVersionTuple() < (5, 6, 0):
-            self.__process.error.connect(self.__processError)
-        else:
-            self.__process.errorOccurred.connect(self.__processError)
-        self.__process.finished.connect(self.__processFinished)
-        self.__process.start(exe, argsList)
-        if not self.__process.waitForStarted(10000):
-            # it failed to start
-            self.__doCleanup(self.__doDeleteFile)
-            return False
-        
-        return True
-    
-    def __doCleanup(self, deleteFile):
-        """
-        Private method to perform some internal cleanup actions.
-        
-        @param deleteFile flag indicating to delete the print file
-        @type bool
-        """
-        if deleteFile:
-            QFile.remove(self.__fileName)
-        
-        self.__process.deleteLater()
-        self.__process = None
-        
-        if self in _FilePrintJobs:
-            _FilePrintJobs.remove(self)
-    
-    def __processError(self, error):
-        """
-        Private slot handling process errors.
-        
-        @param error error value
-        @type QProcess.ProcessError
-        """
-        self.__doCleanup(self.__doDeleteFile)
-    
-    def __processFinished(self, exitCode, exitStatus):
-        """
-        Private slot handling the end of the process.
-        
-        @param exitCode exit code of the process
-        @type int
-        @param exitStatus exit status of the process
-        @type QProcess.ExitStatus
-        """
-        self.__doCleanup(self.__doDeleteFile and (
-            exitStatus != QProcess.NormalExit or exitCode != 0))
-    
-    def _printArguments(self, printer, fileDeletePolicy, pageSelectPolicy,
-                        useCupsOptions, pageRange, variant):
-        """
-        Protected method to assemble the command line arguments for the print
-        command.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @param fileDeletePolicy policy determining who deletes the file to be
-            printed (application or system)
-        @type int (0 or 1)
-        @param pageSelectPolicy policy determining who selects the pages to be
-            printed (application or system)
-        @type int (0 or 1)
-        @param useCupsOptions flag indicating to assemble the arguments for
-            CUPS
-        @type bool
-        @param pageRange string determining the page range(s) to be printed, if
-            SystemSelectsPages was given for pageSelectPolicy and user chose
-            Selection in print dialog
-        @type str
-        @param variant string identifying the print command variant
-        @type str
-        @return assembled command line arguments for the print command
-        @rtype list of str
-        """
-        if variant.startswith("lpr"):
-            variant = "lpr"
-        
-        args = []
-        args.extend(self._destination(printer, variant))
-        args.extend(self._copies(printer, variant))
-        args.extend(self._jobname(printer, variant))
-        args.extend(self._pages(printer, pageSelectPolicy, pageRange,
-                    useCupsOptions, variant))
-        if useCupsOptions:
-            args.extend(self._cupsOptions(printer))
-        args.extend(self._deleteFile(printer, fileDeletePolicy, variant))
-        if variant == "lp":
-            args.append("--")
-        
-        return args
-    
-    def _destination(self, printer, variant):
-        """
-        Protected method to assemble the printer destination arguments.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @param variant string identifying the print command variant
-        @type str
-        @return assembled printer destination arguments
-        @rtype list of str
-        """
-        if variant == "lp":
-            return ["-d", printer.printerName()]
-        elif variant == "lpr":
-            return ["-P", printer.printerName()]
-        else:
-            return []
-    
-    def _copies(self, printer, variant):
-        """
-        Protected method to assemble the number of copies arguments.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @param variant string identifying the print command variant
-        @type str
-        @return assembled number of copies arguments
-        @rtype list of str
-        """
-        copies = printer.copyCount()
-        if variant == "lp":
-            return ["-n", str(copies)]
-        elif variant == "lpr":
-            return ["-#{0}".format(copies)]
-        else:
-            return []
-    
-    def _jobname(self, printer, variant):
-        """
-        Protected method to assemble the jobname arguments.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @param variant string identifying the print command variant
-        @type str
-        @return assembled jobname arguments
-        @rtype list of str
-        """
-        if printer.docName():
-            if variant == "lp":
-                return ["-t", printer.docName()]
-            elif variant == "lpr":
-                shortenedDocName = printer.docName()[:255]
-                return ["-J", shortenedDocName]
-        
-        return []
-    
-    def _deleteFile(self, printer, fileDeletePolicy, variant):
-        """
-        Protected method to assemble the jobname arguments.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @param fileDeletePolicy policy determining who deletes the file to be
-            printed (application or system)
-        @type int (0 or 1)
-        @param variant string identifying the print command variant
-        @type str
-        @return assembled jobname arguments
-        @rtype list of str
-        """
-        if fileDeletePolicy == FilePrinter.SystemDeletesFiles and \
-                variant == "lpr":
-            return ["-r"]
-        else:
-            return []
-    
-    def _pages(self, printer, pageSelectPolicy, pageRange, useCupsOptions,
-               variant):
-        """
-        Protected method to assemble the page range(s) arguments.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @param pageSelectPolicy policy determining who selects the pages to be
-            printed (application or system)
-        @type int (0 or 1)
-        @param pageRange string determining the page range(s) to be printed, if
-            SystemSelectsPages was given for pageSelectPolicy and user chose
-            Selection in print dialog
-        @type str
-        @param useCupsOptions flag indicating to assemble the arguments for
-            CUPS
-        @type bool
-        @param variant string identifying the print command variant
-        @type str
-        @return assembled page range(s) arguments
-        @rtype list of str
-        """
-        if pageSelectPolicy == FilePrinter.SystemSelectsPages:
-            if printer.printRange() == QPrinter.Selection and bool(pageRange):
-                if variant == "lp":
-                    return ["-P", pageRange]
-                elif variant == "lpr":
-                    return ["-o", "page-ranges={0}".format(pageRange)]
-            
-            if printer.printRange() == QPrinter.PageRange:
-                if variant == "lp":
-                    return ["-P", "{0}-{1}".format(
-                        printer.fromPage(), printer.toPage())]
-                elif variant == "lpr":
-                    return ["-o", "page-ranges={0}-{1}".format(
-                        printer.fromPage(), printer.toPage())]
-        
-        return []       # all pages
-    
-    def _cupsOptions(self, printer):
-        """
-        Protected method to assemble the CUPS specific arguments.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @return assembled CUPS arguments
-        @rtype list of str
-        """
-        options = []
-        options.extend(self._optionMedia(printer))
-        options.extend(self._optionDoubleSidedPrinting(printer))
-        options.extend(self._optionPageOrder(printer))
-        options.extend(self._optionCollateCopies(printer))
-        options.extend(self._optionCupsProperties(printer))
-        
-        return options
-    
-    def _optionMedia(self, printer):
-        """
-        Protected method to assemble the print media arguments.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @return assembled print media arguments
-        @rtype list of str
-        """
-        pageSize = self._mediaPageSize(printer)
-        paperSource = self._mediaPaperSource(printer)
-        
-        if pageSize and paperSource:
-            return ["-o", "media={0},{1}".format(pageSize, paperSource)]
-        
-        elif pageSize:
-            return ["-o", "media={0}".format(pageSize)]
-        
-        elif paperSource:
-            return ["-o", "media={0}".format(paperSource)]
-        
-        return []
-    
-    def _mediaPageSize(self, printer):
-        """
-        Protected method to get the page size argument.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @return page size argument
-        @rtype str
-        """
-        pageSize = printer.pageSize()
-        if pageSize in self.__paperSizesMap:
-            return self.__paperSizesMap[pageSize]
-        else:
-            return ""
-    
-    def _mediaPaperSource(self, printer):
-        """
-        Protected method to get the paper source argument.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @return paper source argument
-        @rtype str
-        """
-        paperSource = printer.paperSource()
-        if paperSource in self.__paperSourcesMap:
-            return self.__paperSourcesMap[paperSource]
-        else:
-            return ""
-    
-    def _optionDoubleSidedPrinting(self, printer):
-        """
-        Protected method to assemble the double sided printing arguments.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @return assembled double sided printing arguments
-        @rtype list of str
-        """
-        duplex = printer.duplex()
-        
-        if duplex == QPrinter.DuplexNone:
-            return ["-o", "sides=one-sided"]
-        elif duplex == QPrinter.DuplexAuto:
-            if printer.orientation() == QPrinter.Landscape:
-                return ["-o", "sides=two-sided-short-edge"]
-            else:
-                return ["-o", "sides=two-sided-long-edge"]
-        elif duplex == QPrinter.DuplexLongSide:
-            return ["-o", "sides=two-sided-long-edge"]
-        elif duplex == QPrinter.DuplexShortSide:
-            return ["-o", "sides=two-sided-short-edge"]
-        else:
-            return []       # use printer default
-    
-    def _optionPageOrder(self, printer):
-        """
-        Protected method to assemble the page order arguments.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @return assembled page order arguments
-        @rtype list of str
-        """
-        if printer.pageOrder() == QPrinter.LastPageFirst:
-            return ["-o", "outputorder=reverse"]
-        else:
-            return ["-o", "outputorder=normal"]
-    
-    def _optionCollateCopies(self, printer):
-        """
-        Protected method to assemble the collate copies arguments.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @return assembled collate copies arguments
-        @rtype list of str
-        """
-        if printer.collateCopies():
-            return ["-o", "Collate=True"]
-        else:
-            return ["-o", "Collate=False"]
-    
-    def _optionCupsProperties(self, printer):
-        """
-        Protected method to assemble the CUPS properties arguments.
-        
-        @param printer reference to the printer to print to
-        @type QPrinter
-        @return assembled CUPS properties arguments
-        @rtype list of str
-        """
-        options = Globals.toList(printer.printEngine().property(
-            QPrintEngine.PrintEnginePropertyKey(0xfe00)))
-        
-        cupsOptions = []
-        index = 0
-        while index < len(options):
-            if options[index + 1]:
-                cupsOptions.extend(["-o", "{0}={1}".format(
-                    options[index], options[index + 1])])
-            else:
-                cupsOptions.extend(["-o", options[index]])
-            index += 2
-        
-        return cupsOptions
-
-
-def isCupsAvailable():
-    """
-    Static method to test the availability of CUPS.
-    
-    @return flag indicating the availability of CUPS
-    @rtype bool
-    """
-    if Globals.isMacPlatform():
-        # OS X/MacOS always have CUPS
-        return True
-    elif Globals.isLinuxPlatform():
-        testPrinter = QPrinter()
-        return testPrinter.supportsMultipleCopies()
-    else:
-        return False
-
-
-def printFile(printer, fileName,
-              fileDeletePolicy=FilePrinter.ApplicationDeletesFiles,
-              pageSelectPolicy=FilePrinter.ApplicationSelectsPages,
-              pageRange=""):
-    """
-    Static method to print a file.
-    
-    Note: Only CUPS and LPR on *nix systems is supported.
-    
-    @param printer reference to the printer to print to
-    @type QPrinter
-    @param fileName name (path) of the file to be printed
-    @type str
-    @param fileDeletePolicy policy determining who deletes the file to be
-        printed (application or system)
-    @type int (0 or 1)
-    @param pageSelectPolicy policy determining who selects the pages to be
-        printed (application or system)
-    @type int (0 or 1)
-    @param pageRange string determining the page range(s) to be printed, if
-        SystemSelectsPages was given for pageSelectPolicy and user chose
-        Selection in print dialog
-    @type str
-    """
-    fp = FilePrinter()
-    if fp._doPrintFile(printer, fileName, fileDeletePolicy, pageSelectPolicy,
-                       pageRange):
-        _FilePrintJobs.append(fp)
--- a/eric6/WebBrowser/Tools/WebBrowserTools.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/Tools/WebBrowserTools.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import os
 import re
--- a/eric6/WebBrowser/Tools/WebHitTestResult.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/Tools/WebHitTestResult.py	Sat Sep 07 16:10:29 2019 +0200
@@ -116,8 +116,6 @@
         Public method to update the hit test data with data from the context
         menu event.
         
-        Note: This works for Qt >= 5.7.0.
-        
         @param data context menu data
         @type QWebEngineContextMenuData
         """
--- a/eric6/WebBrowser/UrlBar/FavIconLabel.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/UrlBar/FavIconLabel.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode
-except NameError:
-    pass
 
 from PyQt5.QtCore import Qt, QPoint, QMimeData
 from PyQt5.QtGui import QDrag, QPixmap
--- a/eric6/WebBrowser/UrlBar/UrlBar.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/UrlBar/UrlBar.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 from PyQt5.QtCore import pyqtSlot, Qt, QPointF, QUrl, QDateTime, QTimer, QPoint
 from PyQt5.QtGui import QColor, QPalette, QLinearGradient, QIcon
@@ -39,8 +35,8 @@
         """
         Constructor
         
-        @param mainWindow reference to the main window (HelpWindow)
-        @param parent reference to the parent widget (HelpBrowser)
+        @param mainWindow reference to the main window (WebBrowserWindow)
+        @param parent reference to the parent widget (WebBrowserView)
         """
         E5LineEdit.__init__(self, parent)
         self.setInactiveText(self.tr("Enter the URL here."))
--- a/eric6/WebBrowser/VirusTotal/VirusTotalApi.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/VirusTotal/VirusTotalApi.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import json
 
--- a/eric6/WebBrowser/WebBrowserPage.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/WebBrowserPage.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,10 +9,6 @@
 """
 
 from __future__ import unicode_literals, print_function
-try:
-    str = unicode       # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 from PyQt5.QtCore import pyqtSlot, pyqtSignal, QUrl, QUrlQuery, QTimer, \
     QEventLoop, QPoint, QPointF
@@ -31,7 +27,6 @@
 from .Tools import Scripts
 
 import Preferences
-from Globals import qVersionTuple
 
 
 class WebBrowserPage(QWebEnginePage):
@@ -47,11 +42,8 @@
     @signal navigationRequestAccepted(url, navigation type, main frame) emitted
         to signal an accepted navigation request
     """
-    if qVersionTuple() >= (5, 7, 0):
-        SafeJsWorld = QWebEngineScript.ApplicationWorld
-        # SafeJsWorld = QWebEngineScript.MainWorld
-    else:
-        SafeJsWorld = QWebEngineScript.MainWorld
+    SafeJsWorld = QWebEngineScript.ApplicationWorld
+    # SafeJsWorld = QWebEngineScript.MainWorld
     UnsafeJsWorld = QWebEngineScript.MainWorld
     
     safeBrowsingAbort = pyqtSignal()
@@ -83,12 +75,7 @@
             WebBrowserWindow.networkManager().proxyAuthentication)
         self.fullScreenRequested.connect(self.__fullScreenRequested)
         self.urlChanged.connect(self.__urlChanged)
-        
-        try:
-            self.contentsSizeChanged.connect(self.__contentsSizeChanged)
-        except AttributeError:
-            # defined for Qt >= 5.7
-            pass
+        self.contentsSizeChanged.connect(self.__contentsSizeChanged)
         
         try:
             self.registerProtocolHandlerRequested.connect(
@@ -312,7 +299,7 @@
             ended
         @type function
         """
-        if qVersionTuple() >= (5, 7, 0) and worldId > -1:
+        if worldId > -1:
             if callback is None:
                 QWebEnginePage.runJavaScript(self, script, worldId)
             else:
--- a/eric6/WebBrowser/WebBrowserTabWidget.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/WebBrowserTabWidget.py	Sat Sep 07 16:10:29 2019 +0200
@@ -11,8 +11,7 @@
 
 import os
 
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl, QDir, QFile, \
-    QFileDevice, QTemporaryFile
+from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl, QFile, QFileDevice
 from PyQt5.QtGui import QIcon, QPixmap, QPainter
 from PyQt5.QtWidgets import QWidget, QHBoxLayout, QMenu, QToolButton, \
     QDialog, QApplication
@@ -25,7 +24,6 @@
 from .WebBrowserView import WebBrowserView
 from .WebBrowserPage import WebBrowserPage
 from .Tools import WebBrowserTools
-from .Tools import FilePrinter
 from . import WebInspector
 
 import UI.PixmapCache
@@ -33,11 +31,27 @@
 import Utilities
 import Preferences
 import Globals
-from Globals import qVersionTuple
 
 from eric6config import getConfig
 
 
+def isCupsAvailable():
+    """
+    Static method to test the availability of CUPS.
+    
+    @return flag indicating the availability of CUPS
+    @rtype bool
+    """
+    if Globals.isMacPlatform():
+        # OS X/MacOS always have CUPS
+        return True
+    elif Globals.isLinuxPlatform():
+        testPrinter = QPrinter()
+        return testPrinter.supportsMultipleCopies()
+    else:
+        return False
+
+
 class WebBrowserTabWidget(E5TabWidget):
     """
     Class implementing the central widget showing the web pages.
@@ -142,8 +156,6 @@
         self.__initTabContextMenu()
         
         self.__historyCompleter = None
-        
-        self.__pdfPrinter = None
     
     def __initTabContextMenu(self):
         """
@@ -173,20 +185,15 @@
         self.__tabContextMenu.addAction(
             self.tr('Close All'), self.closeAllBrowsers)
         self.__tabContextMenu.addSeparator()
-        if qVersionTuple() >= (5, 8, 0) or (
-           not Globals.isWindowsPlatform() and qVersionTuple() < (5, 7, 0)):
-            self.__tabContextMenu.addAction(
-                UI.PixmapCache.getIcon("printPreview.png"),
-                self.tr('Print Preview'), self.__tabContextMenuPrintPreview)
-        if qVersionTuple() >= (5, 8, 0) or (
-           not Globals.isWindowsPlatform() or qVersionTuple() >= (5, 7, 0)):
-            self.__tabContextMenu.addAction(
-                UI.PixmapCache.getIcon("print.png"),
-                self.tr('Print'), self.__tabContextMenuPrint)
-        if Globals.isLinuxPlatform() or qVersionTuple() >= (5, 7, 0):
-            self.__tabContextMenu.addAction(
-                UI.PixmapCache.getIcon("printPdf.png"),
-                self.tr('Print as PDF'), self.__tabContextMenuPrintPdf)
+        self.__tabContextMenu.addAction(
+            UI.PixmapCache.getIcon("printPreview.png"),
+            self.tr('Print Preview'), self.__tabContextMenuPrintPreview)
+        self.__tabContextMenu.addAction(
+            UI.PixmapCache.getIcon("print.png"),
+            self.tr('Print'), self.__tabContextMenuPrint)
+        self.__tabContextMenu.addAction(
+            UI.PixmapCache.getIcon("printPdf.png"),
+            self.tr('Print as PDF'), self.__tabContextMenuPrintPdf)
         self.__tabContextMenu.addSeparator()
         if hasattr(WebBrowserPage, "isAudioMuted"):
             self.__audioAct = self.__tabContextMenu.addAction(
@@ -660,29 +667,11 @@
         printDialog.setOptions(QAbstractPrintDialog.PrintToFile |
                                QAbstractPrintDialog.PrintShowPageSize)
         if not Globals.isWindowsPlatform():
-            if FilePrinter.isCupsAvailable():
+            if isCupsAvailable():
                 printDialog.setOption(QAbstractPrintDialog.PrintCollateCopies)
             printDialog.setOption(QAbstractPrintDialog.PrintPageRange)
         if printDialog.exec_() == QDialog.Accepted:
-            if hasattr(browser.page(), "print"):
-                # Qt >= 5.8.0
-                browser.page().execPrintPage(printer, 10 * 1000)
-            elif hasattr(browser.page(), "printToPdf"):
-                # Qt >= 5.7.0
-                if printer.outputFormat() == QPrinter.PdfFormat:
-                    # print to PDF file selected
-                    browser.page().printToPdf(
-                        lambda pdf: self.__pdfGeneratedForSave(
-                            printer.outputFileName(), pdf),
-                        printer.pageLayout())
-                else:
-                    # print to printer
-                    self.__pdfPrinter = printer
-                    browser.page().printToPdf(
-                        self.__pdfGeneratedForPrinting,
-                        printer.pageLayout())
-            else:
-                browser.render(printer)
+            browser.page().execPrintPage(printer, 10 * 1000)
     
     @pyqtSlot()
     def printBrowserPdf(self, browser=None):
@@ -766,38 +755,6 @@
                 E5MessageBox.StandardButtons(
                     E5MessageBox.Ok))
     
-    def __pdfGeneratedForPrinting(self, pdfData):
-        """
-        Private slot to print the generated PDF data.
-        
-        @param pdfData generated PDF document
-        @type QByteArray
-        """
-        if self.__pdfPrinter is None or pdfData.isEmpty():
-            return
-        
-        tempFile = QTemporaryFile(QDir.tempPath() + "/ericBrowserXXXXXX.pdf")
-        tempFile.setAutoRemove(False)
-        if tempFile.open():
-            bytesWritten = tempFile.write(pdfData)
-            tempFile.close()
-            if bytesWritten == pdfData.size():
-                if Globals.isWindowsPlatform():
-                    printerName = self.__pdfPrinter.printerName()
-                    import ctypes
-                    ctypes.windll.shell32.ShellExecuteW(
-                        None, "printto", tempFile.fileName(),
-                        '"{0}"'.format(printerName), None, 0)
-                else:
-                    FilePrinter.printFile(
-                        self.__pdfPrinter, tempFile.fileName(),
-                        FilePrinter.FilePrinter.SystemDeletesFiles,
-                        FilePrinter.FilePrinter.SystemSelectsPages)
-            else:
-                tempFile.remove()
-        
-        self.__pdfPrinter = None
-    
     @pyqtSlot()
     def printPreviewBrowser(self, browser=None):
         """
@@ -833,11 +790,8 @@
         
         preview = QPrintPreviewDialog(printer, self)
         preview.resize(800, 750)
-        if qVersionTuple() >= (5, 8, 0):
-            preview.paintRequested.connect(
-                lambda p: self.__printPreviewRequested(p, browser))
-        else:
-            preview.paintRequested.connect(lambda p: browser.render(p))
+        preview.paintRequested.connect(
+            lambda p: self.__printPreviewRequested(p, browser))
         preview.exec_()
     
     def __printPreviewRequested(self, printer, browser):
--- a/eric6/WebBrowser/WebBrowserView.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/WebBrowserView.py	Sat Sep 07 16:10:29 2019 +0200
@@ -9,16 +9,12 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode           # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import os
 
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, PYQT_VERSION, Qt, QUrl, \
-    QFileInfo, QTimer, QEvent, QPoint, QPointF, QDateTime, QStandardPaths, \
-    QByteArray, QIODevice, QDataStream
+from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QUrl, QFileInfo, QTimer, \
+    QEvent, QPoint, QPointF, QDateTime, QStandardPaths, QByteArray, \
+    QIODevice, QDataStream
 from PyQt5.QtGui import QDesktopServices, QClipboard, QIcon, \
     QContextMenuEvent, QPixmap, QCursor
 from PyQt5.QtWidgets import qApp, QStyle, QMenu, QApplication, QDialog
@@ -133,11 +129,10 @@
         
         self.__restoreData = None
         
-        if qVersionTuple() >= (5, 8, 0):
-            if self.parentWidget() is not None:
-                self.parentWidget().installEventFilter(self)
+        if self.parentWidget() is not None:
+            self.parentWidget().installEventFilter(self)
         
-        if qVersionTuple() >= (5, 8, 0) and qVersionTuple() < (5, 11, 0):
+        if qVersionTuple() < (5, 11, 0):
             lay = self.layout()
             lay.currentChanged.connect(
                 lambda: QTimer.singleShot(0, self.__setRwhvqt))
@@ -578,26 +573,24 @@
         @type WebHitTestResult
         """
         spellCheckActionCount = 0
-        if qVersionTuple() >= (5, 7, 0) and PYQT_VERSION >= 0x50700:
-            contextMenuData = self.page().contextMenuData()
-            hitTest.updateWithContextMenuData(contextMenuData)
+        contextMenuData = self.page().contextMenuData()
+        hitTest.updateWithContextMenuData(contextMenuData)
+        
+        if bool(contextMenuData.misspelledWord()):
+            boldFont = menu.font()
+            boldFont.setBold(True)
             
-            if qVersionTuple() >= (5, 8, 0) and PYQT_VERSION >= 0x50800 and \
-               bool(contextMenuData.misspelledWord()):
-                boldFont = menu.font()
-                boldFont.setBold(True)
-                
-                for suggestion in contextMenuData.spellCheckerSuggestions():
-                    act = menu.addAction(suggestion)
-                    act.setFont(boldFont)
-                    act.triggered.connect(
-                        lambda: self.__replaceMisspelledWord)(act)
-                
-                if not bool(menu.actions()):
-                    menu.addAction(self.tr("No suggestions")).setEnabled(False)
-                
-                menu.addSeparator()
-                spellCheckActionCount = len(menu.actions())
+            for suggestion in contextMenuData.spellCheckerSuggestions():
+                act = menu.addAction(suggestion)
+                act.setFont(boldFont)
+                act.triggered.connect(
+                    lambda: self.__replaceMisspelledWord)(act)
+            
+            if not bool(menu.actions()):
+                menu.addAction(self.tr("No suggestions")).setEnabled(False)
+            
+            menu.addSeparator()
+            spellCheckActionCount = len(menu.actions())
         
         if not hitTest.linkUrl().isEmpty() and \
                 hitTest.linkUrl().scheme() != "javascript":
@@ -1527,16 +1520,7 @@
         
         # find the render widget receiving events for the web page
         if obj is self and evt.type() == QEvent.ChildAdded:
-            if qVersionTuple() < (5, 8, 0):
-                child = evt.child()
-                if child and child.inherits(
-                        "QtWebEngineCore::"
-                        "RenderWidgetHostViewQtDelegateWidget"):
-                    self.__rwhvqt = child
-                    self.grabGesture(Qt.PinchGesture)
-                    self.__rwhvqt.grabGesture(Qt.PinchGesture)
-                    self.__rwhvqt.installEventFilter(self)
-            elif qVersionTuple() >= (5, 11, 0):
+            if qVersionTuple() >= (5, 11, 0):
                 QTimer.singleShot(0, self.__setRwhvqt)
         
         # forward events to WebBrowserView
@@ -1861,13 +1845,9 @@
         if url.isEmpty():
             return
         
-        if qVersionTuple() >= (5, 8, 0) and PYQT_VERSION >= 0x50800:
-            # since Qt 5.8.0
-            fileName, savePageFormat = self.__getSavePageFileNameAndFormat()
-            if fileName:
-                self.page().save(fileName, savePageFormat)
-        else:
-            self.triggerPageAction(QWebEnginePage.SavePage)
+        fileName, savePageFormat = self.__getSavePageFileNameAndFormat()
+        if fileName:
+            self.page().save(fileName, savePageFormat)
     
     def __getSavePageFileNameAndFormat(self):
         """
--- a/eric6/WebBrowser/WebBrowserWindow.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/WebBrowserWindow.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode           # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import os
 import shutil
@@ -834,60 +830,49 @@
             bookmarksManager.exportBookmarks)
         self.__actions.append(self.exportBookmarksAct)
         
-        if qVersionTuple() >= (5, 8, 0) or (
-           not Globals.isWindowsPlatform() or qVersionTuple() >= (5, 7, 0)):
-            self.printAct = E5Action(
-                self.tr('Print'),
-                UI.PixmapCache.getIcon("print.png"),
-                self.tr('&Print'),
-                QKeySequence(self.tr("Ctrl+P", "File|Print")),
-                0, self, 'webbrowser_file_print')
-            self.printAct.setStatusTip(self.tr('Print the displayed help'))
-            self.printAct.setWhatsThis(self.tr(
-                """<b>Print</b>"""
-                """<p>Print the displayed help text.</p>"""
-            ))
-            self.printAct.triggered.connect(self.__tabWidget.printBrowser)
-            self.__actions.append(self.printAct)
-        else:
-            self.printAct = None
-        
-        if Globals.isLinuxPlatform() or qVersionTuple() >= (5, 7, 0):
-            self.printPdfAct = E5Action(
-                self.tr('Print as PDF'),
-                UI.PixmapCache.getIcon("printPdf.png"),
-                self.tr('Print as PDF'),
-                0, 0, self, 'webbrowser_file_print_pdf')
-            self.printPdfAct.setStatusTip(self.tr(
-                'Print the displayed help as PDF'))
-            self.printPdfAct.setWhatsThis(self.tr(
-                """<b>Print as PDF</b>"""
-                """<p>Print the displayed help text as a PDF file.</p>"""
-            ))
-            self.printPdfAct.triggered.connect(
-                self.__tabWidget.printBrowserPdf)
-            self.__actions.append(self.printPdfAct)
-        else:
-            self.printPdfAct = None
-        
-        if qVersionTuple() >= (5, 8, 0) or (
-           not Globals.isWindowsPlatform() and qVersionTuple() < (5, 7, 0)):
-            self.printPreviewAct = E5Action(
-                self.tr('Print Preview'),
-                UI.PixmapCache.getIcon("printPreview.png"),
-                self.tr('Print Preview'),
-                0, 0, self, 'webbrowser_file_print_preview')
-            self.printPreviewAct.setStatusTip(self.tr(
-                'Print preview of the displayed help'))
-            self.printPreviewAct.setWhatsThis(self.tr(
-                """<b>Print Preview</b>"""
-                """<p>Print preview of the displayed help text.</p>"""
-            ))
-            self.printPreviewAct.triggered.connect(
-                self.__tabWidget.printPreviewBrowser)
-            self.__actions.append(self.printPreviewAct)
-        else:
-            self.printPreviewAct = None
+        self.printAct = E5Action(
+            self.tr('Print'),
+            UI.PixmapCache.getIcon("print.png"),
+            self.tr('&Print'),
+            QKeySequence(self.tr("Ctrl+P", "File|Print")),
+            0, self, 'webbrowser_file_print')
+        self.printAct.setStatusTip(self.tr('Print the displayed help'))
+        self.printAct.setWhatsThis(self.tr(
+            """<b>Print</b>"""
+            """<p>Print the displayed help text.</p>"""
+        ))
+        self.printAct.triggered.connect(self.__tabWidget.printBrowser)
+        self.__actions.append(self.printAct)
+        
+        self.printPdfAct = E5Action(
+            self.tr('Print as PDF'),
+            UI.PixmapCache.getIcon("printPdf.png"),
+            self.tr('Print as PDF'),
+            0, 0, self, 'webbrowser_file_print_pdf')
+        self.printPdfAct.setStatusTip(self.tr(
+            'Print the displayed help as PDF'))
+        self.printPdfAct.setWhatsThis(self.tr(
+            """<b>Print as PDF</b>"""
+            """<p>Print the displayed help text as a PDF file.</p>"""
+        ))
+        self.printPdfAct.triggered.connect(
+            self.__tabWidget.printBrowserPdf)
+        self.__actions.append(self.printPdfAct)
+        
+        self.printPreviewAct = E5Action(
+            self.tr('Print Preview'),
+            UI.PixmapCache.getIcon("printPreview.png"),
+            self.tr('Print Preview'),
+            0, 0, self, 'webbrowser_file_print_preview')
+        self.printPreviewAct.setStatusTip(self.tr(
+            'Print preview of the displayed help'))
+        self.printPreviewAct.setWhatsThis(self.tr(
+            """<b>Print Preview</b>"""
+            """<p>Print preview of the displayed help text.</p>"""
+        ))
+        self.printPreviewAct.triggered.connect(
+            self.__tabWidget.printPreviewBrowser)
+        self.__actions.append(self.printPreviewAct)
         
         self.sendPageLinkAct = E5Action(
             self.tr('Send Page Link'),
--- a/eric6/WebBrowser/WebInspector.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/WebBrowser/WebInspector.py	Sat Sep 07 16:10:29 2019 +0200
@@ -8,10 +8,6 @@
 """
 
 from __future__ import unicode_literals
-try:
-    str = unicode           # __IGNORE_EXCEPTION__
-except NameError:
-    pass
 
 import json
 import os
--- a/eric6/eric6.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6.py	Sat Sep 07 16:10:29 2019 +0200
@@ -20,23 +20,12 @@
 
 # generate list of arguments to be remembered for a restart
 restartArgsList = ["--no-splash", "--plugin", "--debug", "--config",
-                   "--pyqt4", "--settings", "--disable-crash",
-                   "--disable-plugin"]
+                   "--settings", "--disable-crash", "--disable-plugin"]
 restartArgs = [arg for arg in sys.argv[1:]
                if arg.split("=", 1)[0] in restartArgsList]
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-    import StringIO as io   # __IGNORE_EXCEPTION__
-    import locale
-except ImportError:
-    import io       # __IGNORE_WARNING__
-    basestring = str
-
 try:
     try:
         from PyQt5 import sip       # __IGNORE_EXCEPTION__
@@ -49,17 +38,15 @@
 import traceback
 import time
 import logging
+import io
 
 try:
     from PyQt5.QtCore import qWarning, QLibraryInfo, QTimer, QCoreApplication
 except ImportError:
-    try:    # Py2
-        import tkMessageBox as messagebox
+    try:
+        from tkinter import messagebox
     except ImportError:
-        try:    # Py3
-            from tkinter import messagebox
-        except ImportError:
-            sys.exit(100)
+        sys.exit(100)
     messagebox.showerror(
         "eric6 Error",
         "PyQt could not be imported. Please make sure"
@@ -194,15 +181,13 @@
     if distroInfo:
         versionInfo += "{0}\n{1}".format(separator, distroInfo)
     
-    if isinstance(excType, basestring):
+    if isinstance(excType, str):
         tbinfo = tracebackobj
     else:
         tbinfofile = io.StringIO()
         traceback.print_tb(tracebackobj, None, tbinfofile)
         tbinfofile.seek(0)
         tbinfo = tbinfofile.read()
-        if sys.version_info[0] == 2:
-            tbinfo = tbinfo.decode(locale.getpreferredencoding())
     errmsg = '{0}: \n{1}'.format(str(excType), str(excValue))
     sections = [separator, timeString, separator, errmsg, separator, tbinfo]
     msg = '\n'.join(sections)
@@ -215,10 +200,6 @@
         pass
     
     if inMainLoop is None:
-        if sys.version_info[0] == 2:
-            notice = notice.encode(sys.stdout.encoding, 'replace')
-            msg = msg.encode(sys.stdout.encoding, 'replace')
-            versionInfo = versionInfo.encode(sys.stdout.encoding, 'replace')
         warning = notice + msg + versionInfo
         print(warning)                          # __IGNORE_WARNING_M801__
     else:
@@ -228,8 +209,6 @@
             .replace("&", "&amp;")\
             .replace(">", "&gt;")\
             .replace("<", "&lt;")
-        if sys.version_info[0] == 2:
-            warning = warning.encode('utf-8', 'replace')
         qWarning(warning)
 
 
@@ -278,8 +257,6 @@
          "disable the given plug-in (may be repeated)"),
         ("--plugin=plugin-file",
          "load the given plugin file (plugin development)"),
-        ("--pyqt4",
-         "force use of PyQt4 in environments that have both PyQt variants"),
         ("--settings=settingsDir",
          "use the given directory to store the settings files"),
         ("--start-file", "load the most recently opened file"),
@@ -335,8 +312,6 @@
             path = os.path.join(pyqtDataDir, "bin")
         else:
             path = pyqtDataDir
-        if sys.version_info[0] == 2:
-            path = path.encode(sys.getfilesystemencoding())
         os.environ["PATH"] = path + os.pathsep + os.environ["PATH"]
     
     pluginFile = None
@@ -381,7 +356,7 @@
     if len(sys.argv) > 1:
         args = sys.argv[1:]
     
-    # get the Qt4 translations directory
+    # get the Qt translations directory
     qtTransDir = Preferences.getQtTranslationsDir()
     if not qtTransDir:
         qtTransDir = QLibraryInfo.location(QLibraryInfo.TranslationsPath)
--- a/eric6/eric6_api.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_api.py	Sat Sep 07 16:10:29 2019 +0200
@@ -19,13 +19,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 import glob
 import fnmatch
 
--- a/eric6/eric6_browser.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_browser.py	Sat Sep 07 16:10:29 2019 +0200
@@ -19,13 +19,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 try:
     try:
         from PyQt5 import sip
@@ -35,25 +28,7 @@
 except AttributeError:
     pass
 
-from Globals import qVersionTuple
-
 app = None
-
-
-if qVersionTuple() < (5, 6, 0):
-    if "--quiet" not in sys.argv:
-        from PyQt5.QtCore import QTimer
-        from PyQt5.QtWidgets import QApplication
-        from E5Gui import E5MessageBox
-        app = QApplication([])
-        QTimer.singleShot(0, lambda: E5MessageBox.critical(
-            None,
-            "eric6 Web Browser",
-            "You need at least Qt Version 5.6.0 to execute the web browser.")
-        )
-        app.exec_()
-    sys.exit(100)
-
 SettingsDir = None
 
 for arg in sys.argv[:]:
--- a/eric6/eric6_compare.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_compare.py	Sat Sep 07 16:10:29 2019 +0200
@@ -19,13 +19,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_configure.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_configure.py	Sat Sep 07 16:10:29 2019 +0200
@@ -17,13 +17,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_diff.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_diff.py	Sat Sep 07 16:10:29 2019 +0200
@@ -19,13 +19,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_doc.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_doc.py	Sat Sep 07 16:10:29 2019 +0200
@@ -19,13 +19,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 import glob
 import fnmatch
 
--- a/eric6/eric6_editor.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_editor.py	Sat Sep 07 16:10:29 2019 +0200
@@ -19,13 +19,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_hexeditor.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_hexeditor.py	Sat Sep 07 16:10:29 2019 +0200
@@ -19,13 +19,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_iconeditor.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_iconeditor.py	Sat Sep 07 16:10:29 2019 +0200
@@ -19,13 +19,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_plugininstall.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_plugininstall.py	Sat Sep 07 16:10:29 2019 +0200
@@ -18,13 +18,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_pluginrepository.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_pluginrepository.py	Sat Sep 07 16:10:29 2019 +0200
@@ -18,13 +18,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_pluginuninstall.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_pluginuninstall.py	Sat Sep 07 16:10:29 2019 +0200
@@ -18,13 +18,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_post_install.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_post_install.py	Sat Sep 07 16:10:29 2019 +0200
@@ -65,12 +65,9 @@
     @rtype any
     """
     try:
-        import _winreg as winreg
+        import winreg
     except ImportError:
-        try:
-            import winreg
-        except ImportError:
-            return None
+        return None
     
     try:
         registryKey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, path, 0,
--- a/eric6/eric6_qregexp.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_qregexp.py	Sat Sep 07 16:10:29 2019 +0200
@@ -19,13 +19,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_qregularexpression.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_qregularexpression.py	Sat Sep 07 16:10:29 2019 +0200
@@ -19,13 +19,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_re.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_re.py	Sat Sep 07 16:10:29 2019 +0200
@@ -19,13 +19,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_shell.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_shell.py	Sat Sep 07 16:10:29 2019 +0200
@@ -20,13 +20,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_snap.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_snap.py	Sat Sep 07 16:10:29 2019 +0200
@@ -18,13 +18,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_sqlbrowser.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_sqlbrowser.py	Sat Sep 07 16:10:29 2019 +0200
@@ -18,13 +18,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_tray.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_tray.py	Sat Sep 07 16:10:29 2019 +0200
@@ -17,18 +17,10 @@
 import sys
 import os
 
-PyQt4Option = "--pyqt4" in sys.argv
 SettingsDir = None
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
@@ -57,7 +49,7 @@
     @return reference to the main widget (QWidget)
     """
     from Tools.TrayStarter import TrayStarter
-    return TrayStarter(PyQt4Option, SettingsDir)
+    return TrayStarter(SettingsDir)
 
 
 def main():
--- a/eric6/eric6_trpreviewer.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_trpreviewer.py	Sat Sep 07 16:10:29 2019 +0200
@@ -19,13 +19,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_uipreviewer.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_uipreviewer.py	Sat Sep 07 16:10:29 2019 +0200
@@ -19,13 +19,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_unittest.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/eric6/eric6_unittest.py	Sat Sep 07 16:10:29 2019 +0200
@@ -19,13 +19,6 @@
 
 sys.path.insert(1, os.path.dirname(__file__))
 
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
 for arg in sys.argv[:]:
     if arg.startswith("--config="):
         import Globals
--- a/eric6/eric6_webbrowser.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2002 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Eric6 Web Browser.
-
-This is the main Python script that performs the necessary initialization
-of the web browser and starts the Qt event loop. This is a standalone version
-of the integrated helpviewer.
-"""
-
-from __future__ import unicode_literals
-
-import sys
-import os
-
-sys.path.insert(1, os.path.dirname(__file__))
-
-import Toolbox.PyQt4ImportHook  # __IGNORE_WARNING__
-
-try:  # Only for Py2
-    import Globals.compatibility_fixes     # __IGNORE_WARNING__
-except (ImportError):
-    pass
-
-try:
-    try:
-        from PyQt5 import sip
-    except ImportError:
-        import sip
-    sip.setdestroyonexit(False)
-except AttributeError:
-    pass
-
-try:
-    from PyQt5 import QtWebKit      # __IGNORE_WARNING__
-except ImportError:
-    if "--quiet" not in sys.argv:
-        from PyQt5.QtCore import qVersion, QTimer
-        from PyQt5.QtWidgets import QApplication
-        from E5Gui import E5MessageBox
-        app = QApplication([])
-        QTimer.singleShot(0, lambda: E5MessageBox.critical(
-            None,
-            "eric6 Web Browser (QtWebKit based)",
-            "QtWebKit is needed to run this variant of the eric6 Web Browser."
-            " However, it seems to be missing. You are using Qt {0}, which"
-            " doesn't include this anymore.".format(qVersion())))
-        app.exec_()
-    sys.exit(100)
-
-for arg in sys.argv[:]:
-    if arg.startswith("--config="):
-        import Globals
-        configDir = arg.replace("--config=", "")
-        Globals.setConfigDir(configDir)
-        sys.argv.remove(arg)
-    elif arg.startswith("--settings="):
-        from PyQt5.QtCore import QSettings
-        settingsDir = os.path.expanduser(arg.replace("--settings=", ""))
-        if not os.path.isdir(settingsDir):
-            os.makedirs(settingsDir)
-        QSettings.setPath(QSettings.IniFormat, QSettings.UserScope,
-                          settingsDir)
-        sys.argv.remove(arg)
-
-# make ThirdParty package available as a packages repository
-sys.path.insert(2, os.path.join(os.path.dirname(__file__),
-                                "ThirdParty", "Pygments"))
-sys.path.insert(2, os.path.join(os.path.dirname(__file__),
-                                "ThirdParty", "EditorConfig"))
-
-import Globals
-from Globals import AppInfo
-
-from E5Gui.E5Application import E5Application
-
-from Toolbox import Startup
-
-from Helpviewer.HelpSingleApplication import HelpSingleApplicationClient
-
-app = None
-
-
-def createMainWidget(argv):
-    """
-    Function to create the main widget.
-    
-    @param argv list of command line parameters
-    @type list of str
-    @return reference to the main widget
-    @rtype QWidget
-    """
-    from Helpviewer.HelpWindow import HelpWindow
-    
-    searchWord = None
-    qthelp = False
-    single = False
-    name = ""
-    
-    for arg in reversed(argv):
-        if arg.startswith("--search="):
-            searchWord = argv[1].split("=", 1)[1]
-            argv.remove(arg)
-        elif arg.startswith("--name="):
-            name = arg.replace("--name=", "")
-            argv.remove(arg)
-        elif arg.startswith("--newtab="):
-            # only used for single application client
-            argv.remove(arg)
-        elif arg == "--qthelp":
-            qthelp = True
-            argv.remove(arg)
-        elif arg == "--quiet":
-            # only needed until we reach this point
-            argv.remove(arg)
-        elif arg == "--single":
-            single = True
-            argv.remove(arg)
-        elif arg.startswith("--"):
-            argv.remove(arg)
-    
-    try:
-        home = argv[1]
-    except IndexError:
-        home = ""
-    
-    helpWindow = HelpWindow(home, '.', None, 'help viewer',
-                            searchWord=searchWord, qthelp=qthelp,
-                            single=single, saname=name)
-    return helpWindow
-
-
-def main():
-    """
-    Main entry point into the application.
-    """
-    global app
-    
-    options = [
-        ("--config=configDir",
-         "use the given directory as the one containing the config files"),
-        ("--qthelp", "start the browser with support for QtHelp"),
-        ("--quiet", "don't show any startup error messages"),
-        ("--search=word", "search for the given word"),
-        ("--settings=settingsDir",
-         "use the given directory to store the settings files"),
-        ("--single", "start the browser as a single application"),
-    ]
-    appinfo = AppInfo.makeAppInfo(sys.argv,
-                                  "eric6 Web Browser",
-                                  "file",
-                                  "web browser",
-                                  options)
-    
-    # set the library paths for plugins
-    Startup.setLibraryPaths()
-    
-    app = E5Application(sys.argv)
-    client = HelpSingleApplicationClient()
-    res = client.connect()
-    if res > 0:
-        if len(sys.argv) > 1:
-            client.processArgs(sys.argv[1:])
-        sys.exit(0)
-    elif res < 0:
-        print("eric6_webbrowser: {0}".format(client.errstr()))
-        # __IGNORE_WARNING_M801__
-        sys.exit(res)
-    
-    res = Startup.simpleAppStartup(sys.argv,
-                                   appinfo,
-                                   createMainWidget,
-                                   installErrorHandler=True,
-                                   app=app)
-    sys.exit(res)
-
-if __name__ == '__main__':
-    main()
--- a/eric6/eric6_webbrowser.pyw	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2011 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing the Windows entry point.
-"""
-
-from __future__ import unicode_literals
-
-from eric6_webbrowser import main
-
-main()
--- a/linux/eric6_webbrowser.desktop.in	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Type=Application
-Exec=@BINDIR@/eric6_webbrowser@MARKER@
-MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;
-Icon=ericWeb@MARKER@
-Terminal=false
-Name=eric6 Web Browser (QtWebKit)@PY_MARKER@
-Name[de]=eric6 Web Browser (QtWebKit)@PY_MARKER@
-Comment=Web Browser for PyQt based on QtWebKit
-Comment[de]=Web Browser für PyQt basierend auf QtWebKit
-GenericName=Web Browser
-GenericName[de]=Web Browser
-Categories=Qt;X-Python;Network;WebBrowser;X-QtWebKit;
-StartupNotify=true
--- a/scripts/compileUiFiles.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/scripts/compileUiFiles.py	Sat Sep 07 16:10:29 2019 +0200
@@ -12,19 +12,7 @@
 
 import sys
 
-# step 1: determine PyQt variant, preferring PyQt5
-try:
-    import PyQt5        # __IGNORE_WARNING__
-    pyqtVariant = "PyQt5"
-except ImportError:
-    import PyQt4    # __IGNORE_WARNING__
-    pyqtVariant = "PyQt4"
-
-# step 2: compile the UI files
-if pyqtVariant == "PyQt4":
-    from PyQt4.uic import compileUiDir
-else:
-    from PyQt5.uic import compileUiDir
+from PyQt5.uic import compileUiDir
 
 
 def __pyName(py_dir, py_file):
--- a/scripts/create_windows_links.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/scripts/create_windows_links.py	Sat Sep 07 16:10:29 2019 +0200
@@ -16,14 +16,6 @@
 
 from eric6config import getConfig
 
-# Define file name markers for Python variants
-PythonMarkers = {
-    2: "_py2",
-    3: "_py3",
-}
-
-includePythonVariant = False
-
 
 def main(argv):
     """
@@ -32,11 +24,6 @@
     @param argv list of command line arguments
     @type list of str
     """
-    global includePythonVariant
-    
-    if "-y" in argv:
-        includePythonVariant = True
-    
     regPath = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer" + \
               "\\User Shell Folders"
     
@@ -78,12 +65,9 @@
     @rtype any
     """
     try:
-        import _winreg as winreg
+        import winreg
     except ImportError:
-        try:
-            import winreg
-        except ImportError:
-            return None
+        return None
     
     try:
         registryKey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, path, 0,
@@ -139,33 +123,15 @@
         the link target and the icon target
     @rtype list of tuples of (str, str, str)
     """
-    global includePythonVariant
-    
-    if includePythonVariant:
-        marker = PythonMarkers[sys.version_info.major]
-    else:
-        marker = ""
-    
     majorVersion, minorVersion = sys.version_info[:2]
     entriesTemplates = [
         ("eric6 (Python {0}.{1}).lnk",
-         os.path.join(getConfig("bindir"), "eric6" + marker + ".cmd"),
+         os.path.join(getConfig("bindir"), "eric6.cmd"),
          os.path.join(getConfig("ericPixDir"), "eric6.ico")),
+        ("eric6 Browser (Python {0}.{1}).lnk",
+         os.path.join(getConfig("bindir"), "eric6_browser.cmd"),
+         os.path.join(getConfig("ericPixDir"), "ericWeb48.ico")),
     ]
-    if sys.version_info.major == 2:
-        entriesTemplates.append((
-            "eric6 Browser (Python {0}.{1}).lnk",
-            os.path.join(getConfig("bindir"),
-                         "eric6_webbrowser" + marker + ".cmd"),
-            os.path.join(getConfig("ericPixDir"), "ericWeb48.ico")
-        ))
-    else:
-        entriesTemplates.append((
-            "eric6 Browser (Python {0}.{1}).lnk",
-            os.path.join(getConfig("bindir"),
-                         "eric6_browser" + marker + ".cmd"),
-            os.path.join(getConfig("ericPixDir"), "ericWeb48.ico")
-        ))
     
     return [
         (e[0].format(majorVersion, minorVersion), e[1], e[2])
--- a/scripts/install-debugclients.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/scripts/install-debugclients.py	Sat Sep 07 16:10:29 2019 +0200
@@ -12,17 +12,6 @@
 """
 
 from __future__ import unicode_literals, print_function
-try:
-    import cStringIO as io
-    try:
-        from PyQt5 import sip
-    except ImportError:
-        import sip
-    sip.setapi('QString', 2)
-    sip.setapi('QVariant', 2)
-    sip.setapi('QTextStream', 2)
-except (ImportError):
-    import io    # __IGNORE_WARNING__
 
 import sys
 import os
@@ -30,6 +19,7 @@
 import compileall
 import shutil
 import fnmatch
+import io
 
 # Define the globals.
 progName = None
@@ -53,7 +43,6 @@
     global currDir
     
     if sys.platform.startswith("win"):
-        # different meaning of input between Py2 and Py3
         try:
             input("Press enter to continue...")
         except (EOFError, SyntaxError):
@@ -253,9 +242,8 @@
     global progName, modDir, doCleanup, doCompile, distDir
     global sourceDir
     
-    if sys.version_info < (2, 7, 0) or sys.version_info > (3, 9, 9):
-        print('Sorry, eric6 requires at least Python 2.7 or '
-              'Python 3 for running.')
+    if sys.version_info < (3, 5, 0) or sys.version_info > (3, 99, 99):
+        print('Sorry, eric6 requires at least Python 3.5 for running.')
         exit(5)
     
     progName = os.path.basename(argv[0])
@@ -317,7 +305,6 @@
     if doCompile:
         print("\nCompiling source files ...")
         skipRe = re.compile(r"DebugClients[\\/]Python[\\/]")
-        # Hide compile errors (mainly because of Py2/Py3 differences)
         sys.stdout = io.StringIO()
         if distDir:
             compileall.compile_dir(
--- a/scripts/install.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/scripts/install.py	Sat Sep 07 16:10:29 2019 +0200
@@ -10,19 +10,6 @@
 """
 
 from __future__ import unicode_literals, print_function
-try:
-    # Python2 only
-    import cStringIO as io
-    try:
-        from PyQt5 import sip
-    except ImportError:
-        import sip
-    sip.setapi('QString', 2)
-    sip.setapi('QVariant', 2)
-    sip.setapi('QTextStream', 2)
-    input = raw_input       # __IGNORE_WARNING__
-except (ImportError):
-    import io               # __IGNORE_WARNING__
 
 import sys
 import os
@@ -32,9 +19,9 @@
 import glob
 import shutil
 import fnmatch
-import codecs
 import subprocess
 import time
+import io
 
 # Define the globals.
 progName = None
@@ -50,7 +37,6 @@
 doCleanDesktopLinks = False
 forceCleanDesktopLinks = False
 doCompile = True
-includePythonVariant = False
 cfg = {}
 progLanguages = ["Python", "Ruby", "QSS"]
 sourceDir = "eric"
@@ -63,50 +49,33 @@
 macAppBundleName = defaultMacAppBundleName
 macAppBundlePath = defaultMacAppBundlePath
 macPythonExe = defaultMacPythonExe
-pyqtVariant = ""
-pyqtOverride = False
 
 # Define blacklisted versions of the prerequisites
 BlackLists = {
     "sip": [],
-    "PyQt4": [],
     "PyQt5": [],
     "QScintilla2": [],
 }
 PlatformsBlackLists = {
     "windows": {
         "sip": [],
-        "PyQt4": [],
         "PyQt5": [],
         "QScintilla2": [],
     },
     
     "linux": {
         "sip": [],
-        "PyQt4": [],
         "PyQt5": [],
         "QScintilla2": [],
     },
     
     "mac": {
         "sip": [],
-        "PyQt4": [],
         "PyQt5": [],
         "QScintilla2": [],
     },
 }
 
-# Define file name markers for Python variants
-PythonMarkers = {
-    2: "_py2",
-    3: "_py3",
-}
-# Define a mapping of markers to full text
-PythonTextMarkers = {
-    "_py2": "Python 2",
-    "_py3": "Python 3",
-}
-
 
 def exit(rcode=0):
     """
@@ -119,7 +88,6 @@
     print()
     
     if sys.platform.startswith(("win", "cygwin")):
-        # different meaning of input between Py2 and Py3
         try:
             input("Press enter to continue...")
         except (EOFError, SyntaxError):
@@ -138,21 +106,20 @@
     """
     global progName, modDir, distDir, apisDir
     global macAppBundleName, macAppBundlePath, macPythonExe
-    global pyqtVariant
 
     print()
     print("Usage:")
     if sys.platform == "darwin":
         print("    {0} [-chxyz] [-a dir] [-b dir] [-d dir] [-f file] [-i dir]"
-              " [-m name] [-n path] [-p python] [--no-apis] [--pyqt=version]"
+              " [-m name] [-n path] [-p python] [--no-apis]"
               .format(progName))
     elif sys.platform.startswith(("win", "cygwin")):
         print("    {0} [-chxyz] [-a dir] [-b dir] [-d dir] [-f file]"
-              " [--clean-desktop] [--no-apis] [--pyqt=version]"
+              " [--clean-desktop] [--no-apis]"
               .format(progName))
     else:
         print("    {0} [-chxyz] [-a dir] [-b dir] [-d dir] [-f file] [-i dir]"
-              " [--no-apis] [--pyqt=version]"
+              " [--no-apis]"
               .format(progName))
     print("where:")
     print("    -h, --help display this help message")
@@ -184,13 +151,7 @@
         ("    --clean-desktop delete desktop links before installation")
     print("    -x         don't perform dependency checks (use on your own"
           " risk)")
-    print("    -y         add the Python variant to the executable names")
     print("    -z         don't compile the installed python files")
-    print("    --pyqt=version version of PyQt to be used (one of 4 or 5)")
-    if pyqtVariant:
-        print("                   (default: {0})".format(pyqtVariant[-1]))
-    else:
-        print("                   (no PyQt variant found)")
     print()
     print("The file given to the -f option must be valid Python code"
           " defining a")
@@ -206,41 +167,12 @@
     exit(rcode)
 
 
-def determinePyQtVariant():
-    """
-    Module function to determine the PyQt variant to be used.
-    """
-    global pyqtVariant, pyqtOverride
-    
-    pyqtVariant = ""
-    # need to handle the --pyqt= option here
-    if "--pyqt=4" in sys.argv:
-        pyqtVariant = "PyQt4"
-        pyqtOverride = True
-    elif "--pyqt=5" in sys.argv:
-        pyqtVariant = "PyQt5"
-        pyqtOverride = True
-    else:
-        try:
-            import PyQt5        # __IGNORE_WARNING__
-            pyqtVariant = "PyQt5"
-            del sys.modules["PyQt5"]
-        except ImportError:
-            try:
-                import PyQt4    # __IGNORE_WARNING__
-                pyqtVariant = "PyQt4"
-                del sys.modules["PyQt4"]
-            except ImportError:
-                # default to PyQt5, installation will be asked for
-                pyqtVariant = "PyQt5"
-
-
 def initGlobals():
     """
     Module function to set the values of globals that need more than a
     simple assignment.
     """
-    global platBinDir, modDir, pyModDir, apisDir, pyqtVariant, platBinDirOld
+    global platBinDir, modDir, pyModDir, apisDir, platBinDirOld
     
     try:
         import distutils.sysconfig
@@ -271,7 +203,7 @@
     modDir = distutils.sysconfig.get_python_lib(True)
     pyModDir = modDir
     
-    pyqtDataDir = os.path.join(modDir, pyqtVariant)
+    pyqtDataDir = os.path.join(modDir, "PyQt5")
     if os.path.exists(os.path.join(pyqtDataDir, "qsci")):
         # it's the installer
         qtDataDir = pyqtDataDir
@@ -281,10 +213,7 @@
     else:
         # determine dynamically
         try:
-            if pyqtVariant == "PyQt4":
-                from PyQt4.QtCore import QLibraryInfo
-            else:
-                from PyQt5.QtCore import QLibraryInfo
+            from PyQt5.QtCore import QLibraryInfo
             qtDataDir = QLibraryInfo.location(QLibraryInfo.DataPath)
         except ImportError:
             qtDataDir = None
@@ -302,53 +231,39 @@
     @param text the contents to copy to the file.
     """
     f = open(name, "w")
-    if sys.version_info[0] == 2:
-        text = codecs.encode(text, "utf-8")
     f.write(text)
     f.close()
 
 
-def copyDesktopFile(src, dst, marker):
+def copyDesktopFile(src, dst):
     """
     Modify a desktop file and write it to its destination.
     
     @param src source file name (string)
     @param dst destination file name (string)
-    @param marker marker to be used (string)
     """
     global cfg, platBinDir
     
-    if sys.version_info[0] == 2:
-        f = codecs.open(src, "r", "utf-8")
-    else:
-        f = open(src, "r", encoding="utf-8")
+    f = open(src, "r", encoding="utf-8")
     text = f.read()
     f.close()
     
     text = text.replace("@BINDIR@", platBinDir)
-    text = text.replace("@MARKER@", marker)
-    if marker:
-        t_marker = " ({0})".format(PythonTextMarkers[marker])
-    else:
-        t_marker = ""
-    text = text.replace("@PY_MARKER@", t_marker)
+    text = text.replace("@MARKER@", "")
+    text = text.replace("@PY_MARKER@", "")
     
-    if sys.version_info[0] == 2:
-        f = codecs.open(dst, "w", "utf-8")
-    else:
-        f = open(dst, "w", encoding="utf-8")
+    f = open(dst, "w", encoding="utf-8")
     f.write(text)
     f.close()
     os.chmod(dst, 0o644)
 
 
-def copyAppStreamFile(src, dst, marker):
+def copyAppStreamFile(src, dst):
     """
     Modify an appstream file and write it to its destination.
     
     @param src source file name (string)
     @param dst destination file name (string)
-    @param marker marker to be used (string)
     """
     if os.path.exists(os.path.join("eric", "eric6", "UI", "Info.py")):
         # Installing from archive
@@ -359,21 +274,15 @@
     else:
         Version = "Unknown"
     
-    if sys.version_info[0] == 2:
-        f = codecs.open(src, "r", "utf-8")
-    else:
-        f = open(src, "r", encoding="utf-8")
+    f = open(src, "r", encoding="utf-8")
     text = f.read()
     f.close()
     
-    text = text.replace("@MARKER@", marker)\
+    text = text.replace("@MARKER@", "")\
         .replace("@VERSION@", Version.split(None, 1)[0])\
         .replace("@DATE@", time.strftime("%Y-%m-%d"))
     
-    if sys.version_info[0] == 2:
-        f = codecs.open(dst, "w", "utf-8")
-    else:
-        f = open(dst, "w", encoding="utf-8")
+    f = open(dst, "w", encoding="utf-8")
     f.write(text)
     f.close()
     os.chmod(dst, 0o644)
@@ -408,33 +317,21 @@
         application (boolean)
     @return the platform specific name of the wrapper (string)
     """
-    global includePythonVariant, pyqtVariant, pyqtOverride
-    
-    if includePythonVariant:
-        marker = PythonMarkers[sys.version_info.major]
-    else:
-        marker = ""
-    
-    if pyqtOverride and pyqtVariant == "PyQt4":
-        pyqt4opt = " --pyqt4"
-    else:
-        pyqt4opt = ""
-    
     # all kinds of Windows systems
     if sys.platform.startswith(("win", "cygwin")):
-        wname = wfile + marker + ".cmd"
+        wname = wfile + ".cmd"
         if isGuiScript:
             wrapper = \
                 '''@echo off\n''' \
                 '''start "" "{2}\\pythonw.exe"''' \
-                ''' "{0}\\{1}.pyw"{3}''' \
+                ''' "{0}\\{1}.pyw"''' \
                 ''' %1 %2 %3 %4 %5 %6 %7 %8 %9\n'''.format(
-                    pydir, wfile, sys.exec_prefix, pyqt4opt)
+                    pydir, wfile, sys.exec_prefix)
         else:
             wrapper = \
-                '''@"{0}\\python" "{1}\\{2}.py"{3}''' \
+                '''@"{0}\\python" "{1}\\{2}.py"''' \
                 ''' %1 %2 %3 %4 %5 %6 %7 %8 %9\n'''.format(
-                    sys.exec_prefix, pydir, wfile, pyqt4opt)
+                    sys.exec_prefix, pydir, wfile)
 
     # Mac OS X
     elif sys.platform == "darwin":
@@ -442,19 +339,19 @@
         pyexec = "{0}/bin/pythonw{1}".format(sys.exec_prefix, major)
         if not os.path.exists(pyexec):
             pyexec = "{0}/bin/python{1}".format(sys.exec_prefix, major)
-        wname = wfile + marker
+        wname = wfile
         wrapper = ('''#!/bin/sh\n'''
                    '''\n'''
-                   '''exec "{0}" "{1}/{2}.py"{3} "$@"\n'''
-                   .format(pyexec, pydir, wfile, pyqt4opt))
+                   '''exec "{0}" "{1}/{2}.py" "$@"\n'''
+                   .format(pyexec, pydir, wfile))
 
     # *nix systems
     else:
-        wname = wfile + marker
+        wname = wfile
         wrapper = ('''#!/bin/sh\n'''
                    '''\n'''
-                   '''exec "{0}" "{1}/{2}.py"{3} "$@"\n'''
-                   .format(sys.executable, pydir, wfile, pyqt4opt))
+                   '''exec "{0}" "{1}/{2}.py" "$@"\n'''
+                   .format(sys.executable, pydir, wfile))
     
     wname = os.path.join(saveDir, wname)
     copyToFile(wname, wrapper)
@@ -574,7 +471,7 @@
     """
     Uninstall the old eric files.
     """
-    global platBinDir, platBinDirOld, includePythonVariant
+    global platBinDir, platBinDirOld
     
     try:
         from eric6config import getConfig
@@ -605,13 +502,11 @@
         "eric6_tray", "eric6_editor",
         "eric6_plugininstall", "eric6_pluginuninstall",
         "eric6_pluginrepository", "eric6_sqlbrowser",
-        "eric6_webbrowser", "eric6_iconeditor",
-        "eric6_snap", "eric6_hexeditor", "eric6_browser",
-        "eric6_shell",
+        "eric6_iconeditor", "eric6_snap", "eric6_hexeditor",
+        "eric6_browser", "eric6_shell",
+        # from Python2 era
+        "eric6_webbrowser",
     ]
-    if includePythonVariant:
-        marker = PythonMarkers[sys.version_info.major]
-        rem_wnames = [n + marker for n in rem_wnames]
     
     try:
         dirs = [platBinDir, getConfig('bindir')]
@@ -680,20 +575,15 @@
                      "/usr/share/pixmaps/ericWeb.png"]:
             if os.path.exists(name):
                 os.remove(name)
-        if includePythonVariant:
-            marker = PythonMarkers[sys.version_info.major]
-        else:
-            marker = ""
         for name in [
-            "/usr/share/applications/eric6" + marker + ".desktop",
-            "/usr/share/appdata/eric6" + marker + ".appdata.xml",
-            "/usr/share/metainfo/eric6" + marker + ".appdata.xml",
-            "/usr/share/applications/eric6_webbrowser" + marker +
-            ".desktop",
-            "/usr/share/applications/eric6_browser" + marker +
-            ".desktop",
-            "/usr/share/pixmaps/eric" + marker + ".png",
-            "/usr/share/pixmaps/ericWeb" + marker + ".png",
+            "/usr/share/applications/eric6.desktop",
+            "/usr/share/appdata/eric6.appdata.xml",
+            "/usr/share/metainfo/eric6.appdata.xml",
+            "/usr/share/applications/eric6_browser.desktop",
+            "/usr/share/pixmaps/eric.png",
+            "/usr/share/pixmaps/ericWeb.png",
+            # from Python2 era
+            "/usr/share/applications/eric6_webbrowser.desktop",
         ]:
             if os.path.exists(name):
                 os.remove(name)
@@ -704,20 +594,15 @@
             path = os.path.expanduser(name)
             if os.path.exists(path):
                 os.remove(path)
-        if includePythonVariant:
-            marker = PythonMarkers[sys.version_info.major]
-        else:
-            marker = ""
         for name in [
-            "~/.local/share/applications/eric6" + marker + ".desktop",
-            "~/.local/share/appdata/eric6" + marker + ".appdata.xml",
-            "~/.local/share/metainfo/eric6" + marker + ".appdata.xml",
-            "~/.local/share/applications/eric6_webbrowser" + marker +
-            ".desktop",
-            "~/.local/share/applications/eric6_browser" + marker +
-            ".desktop",
-            "~/.local/share/pixmaps/eric" + marker + ".png",
-            "~/.local/share/pixmaps/ericWeb" + marker + ".png",
+            "~/.local/share/applications/eric6.desktop",
+            "~/.local/share/appdata/eric6.appdata.xml",
+            "~/.local/share/metainfo/eric6.appdata.xml",
+            "~/.local/share/applications/eric6_browser.desktop",
+            "~/.local/share/pixmaps/eric.png",
+            "~/.local/share/pixmaps/ericWeb.png",
+            # from Python2 era
+            "/usr/share/applications/eric6_webbrowser.desktop",
         ]:
             path = os.path.expanduser(name)
             if os.path.exists(path):
@@ -809,7 +694,7 @@
     @return result code (integer)
     """
     global distDir, doCleanup, cfg, progLanguages, sourceDir, configName
-    global includePythonVariant, installApis
+    global installApis
     
     # Create the platform specific wrappers.
     scriptsDir = "install_scripts"
@@ -824,8 +709,8 @@
                  "eric6_pluginuninstall", "eric6_qregexp",
                  "eric6_qregularexpression", "eric6_re", "eric6_snap",
                  "eric6_sqlbrowser", "eric6_tray", "eric6_trpreviewer",
-                 "eric6_uipreviewer", "eric6_unittest", "eric6_webbrowser",
-                 "eric6_browser", "eric6_shell", "eric6"]:
+                 "eric6_uipreviewer", "eric6_unittest", "eric6_browser",
+                 "eric6_shell", "eric6"]:
         wnames.append(createPyWrapper(cfg['ericDir'], name, scriptsDir))
     
     # set install prefix, if not None
@@ -1016,77 +901,55 @@
     """
     Install Linux specific files.
     """
-    global distDir, sourceDir, includePythonVariant
+    global distDir, sourceDir
     
-    if includePythonVariant:
-        marker = PythonMarkers[sys.version_info.major]
-    else:
-        marker = ""
-
     if distDir:
         dst = os.path.normpath(os.path.join(distDir, "usr/share/pixmaps"))
         if not os.path.exists(dst):
             os.makedirs(dst)
         shutilCopy(
             os.path.join(eric6SourceDir, "icons", "default", "eric.png"),
-            os.path.join(dst, "eric" + marker + ".png"))
+            os.path.join(dst, "eric.png"))
         shutilCopy(
             os.path.join(eric6SourceDir, "icons", "default", "ericWeb48.png"),
-            os.path.join(dst, "ericWeb" + marker + ".png"))
+            os.path.join(dst, "ericWeb.png"))
         dst = os.path.normpath(
             os.path.join(distDir, "usr/share/applications"))
         if not os.path.exists(dst):
             os.makedirs(dst)
         copyDesktopFile(os.path.join(sourceDir, "linux", "eric6.desktop.in"),
-                        os.path.join(dst, "eric6" + marker + ".desktop"),
-                        marker)
-        copyDesktopFile(
-            os.path.join(sourceDir, "linux", "eric6_webbrowser.desktop.in"),
-            os.path.join(dst, "eric6_webbrowser" + marker + ".desktop"),
-            marker)
+                        os.path.join(dst, "eric6.desktop"))
         copyDesktopFile(
             os.path.join(sourceDir, "linux", "eric6_browser.desktop.in"),
-            os.path.join(dst, "eric6_browser" + marker + ".desktop"),
-            marker)
+            os.path.join(dst, "eric6_browser.desktop"))
         dst = os.path.normpath(
             os.path.join(distDir, "usr/share/metainfo"))
         if not os.path.exists(dst):
             os.makedirs(dst)
         copyAppStreamFile(
             os.path.join(sourceDir, "linux", "eric6.appdata.xml.in"),
-            os.path.join(dst, "eric6" + marker + ".appdata.xml"),
-            marker)
+            os.path.join(dst, "eric6.appdata.xml"))
     elif os.getuid() == 0:
         shutilCopy(os.path.join(
             eric6SourceDir, "icons", "default", "eric.png"),
-            "/usr/share/pixmaps/eric" + marker + ".png")
+            "/usr/share/pixmaps/eric.png")
         copyDesktopFile(
             os.path.join(sourceDir, "linux", "eric6.desktop.in"),
-            "/usr/share/applications/eric6" + marker + ".desktop",
-            marker)
+            "/usr/share/applications/eric6.desktop")
         if os.path.exists("/usr/share/metainfo"):
             copyAppStreamFile(
                 os.path.join(sourceDir, "linux", "eric6.appdata.xml.in"),
-                "/usr/share/metainfo/eric6" + marker + ".appdata.xml",
-                marker)
+                "/usr/share/metainfo/eric6.appdata.xml")
         elif os.path.exists("/usr/share/appdata"):
             copyAppStreamFile(
                 os.path.join(sourceDir, "linux", "eric6.appdata.xml.in"),
-                "/usr/share/appdata/eric6" + marker + ".appdata.xml",
-                marker)
+                "/usr/share/appdata/eric6.appdata.xml")
         shutilCopy(os.path.join(
             eric6SourceDir, "icons", "default", "ericWeb48.png"),
-            "/usr/share/pixmaps/ericWeb" + marker + ".png")
-        copyDesktopFile(
-            os.path.join(sourceDir, "linux", "eric6_webbrowser.desktop.in"),
-            "/usr/share/applications/eric6_webbrowser" + marker +
-            ".desktop",
-            marker)
+            "/usr/share/pixmaps/ericWeb.png")
         copyDesktopFile(
             os.path.join(sourceDir, "linux", "eric6_browser.desktop.in"),
-            "/usr/share/applications/eric6_browser" + marker +
-            ".desktop",
-            marker)
+            "/usr/share/applications/eric6_browser.desktop")
     elif os.getuid() >= 1000:
         # it is assumed, that user ids start at 1000
         localPath = os.path.join(os.path.expanduser("~"),
@@ -1100,36 +963,22 @@
         # now copy the files
         shutilCopy(
             os.path.join(eric6SourceDir, "icons", "default", "eric.png"),
-            os.path.join(localPath, "pixmaps", "eric" + marker + ".png"))
+            os.path.join(localPath, "pixmaps", "eric.png"))
         copyDesktopFile(
             os.path.join(sourceDir, "linux", "eric6.desktop.in"),
-            os.path.join(localPath, "applications",
-                         "eric6" + marker + ".desktop"),
-            marker)
-        copyAppStreamFile(
-            os.path.join(sourceDir, "linux", "eric6.appdata.xml.in"),
-            os.path.join(localPath, "metainfo",
-                         "eric6" + marker + ".appdata.xml"),
-            marker)
+            os.path.join(localPath, "applications", "eric6.desktop"))
         copyAppStreamFile(
             os.path.join(sourceDir, "linux", "eric6.appdata.xml.in"),
-            os.path.join(localPath, "appdata",
-                         "eric6" + marker + ".appdata.xml"),
-            marker)
+            os.path.join(localPath, "metainfo", "eric6.appdata.xml"))
+        copyAppStreamFile(
+            os.path.join(sourceDir, "linux", "eric6.appdata.xml.in"),
+            os.path.join(localPath, "appdata", "eric6.appdata.xml"))
         shutilCopy(
             os.path.join(eric6SourceDir, "icons", "default", "ericWeb48.png"),
-            os.path.join(localPath, "pixmaps",
-                         "ericWeb" + marker + ".png"))
-        copyDesktopFile(
-            os.path.join(sourceDir, "linux", "eric6_webbrowser.desktop.in"),
-            os.path.join(localPath, "applications",
-                         "eric6_webbrowser" + marker + ".desktop"),
-            marker)
+            os.path.join(localPath, "pixmaps", "ericWeb.png"))
         copyDesktopFile(
             os.path.join(sourceDir, "linux", "eric6_browser.desktop.in"),
-            os.path.join(localPath, "applications",
-                         "eric6_browser" + marker + ".desktop"),
-            marker)
+            os.path.join(localPath, "applications", "eric6_browser.desktop"))
 
 
 def createWindowsLinks():
@@ -1152,8 +1001,6 @@
                 os.path.join(os.path.dirname(__file__),
                              "create_windows_links.py"),
             ]
-            if includePythonVariant:
-                args.append("-y")
             subprocess.call(args)
         else:
             print(
@@ -1199,7 +1046,7 @@
         eventually be installed
     @type str
     """
-    global cfg, macAppBundleName, macPythonExe, macAppBundlePath, pyqtVariant
+    global cfg, macAppBundleName, macPythonExe, macAppBundlePath
     
     directories = {
         "contents": "{0}/{1}/Contents/".format(
@@ -1224,10 +1071,7 @@
     # determine entry for DYLD_FRAMEWORK_PATH
     dyldLine = ""
     try:
-        if pyqtVariant == "PyQt4":
-            from PyQt4.QtCore import QLibraryInfo
-        else:
-            from PyQt5.QtCore import QLibraryInfo
+        from PyQt5.QtCore import QLibraryInfo
         qtLibraryDir = QLibraryInfo.location(QLibraryInfo.LibrariesPath)
     except ImportError:
         qtLibraryDir = ""
@@ -1437,10 +1281,7 @@
     ok = False
     print("{0}\n\nShall '{1}' be installed using pip? (Y/n)"
           .format(message, packageName), end=" ")
-    if sys.version_info[0] == 2:
-        answer = raw_input()        # __IGNORE_WARNING__
-    else:
-        answer = input()
+    answer = input()
     if answer in ("", "Y", "y"):
         exitCode = subprocess.call(
             [sys.executable, "-m", "pip", "install", packageName])
@@ -1457,15 +1298,11 @@
     
     # perform dependency checks
     print("Python Version: {0:d}.{1:d}.{2:d}".format(*sys.version_info[:3]))
-    if sys.version_info < (2, 7, 10):
-        print('Sorry, you must have Python 2.7.10 or higher or '
-              'Python 3.5.0 or higher.')
-        exit(5)
-    elif sys.version_info < (3, 5, 0) and sys.version_info[0] == 3:
+    if sys.version_info < (3, 5, 0):
         print('Sorry, you must have Python 3.5.0 or higher.')
         exit(5)
     if sys.version_info[0] > 3:
-        print('Sorry, eric6 requires Python 3 or Python 2 for running.')
+        print('Sorry, eric6 requires Python 3 for running.')
         exit(5)
     
     try:
@@ -1475,121 +1312,89 @@
         print('Please install it and try again.')
         exit(5)
     
-    if pyqtVariant == "PyQt4":
-        try:
-            from PyQt4.QtCore import qVersion
-        except ImportError as msg:
-            print('Sorry, please install PyQt4.')
-            print('Error: {0}'.format(msg))
-            exit(1)
-        print("Found PyQt4")
-    else:
-        try:
-            from PyQt5.QtCore import qVersion
-        except ImportError as msg:
-            if sys.version_info[0] == 2:
-                # no PyQt5 wheels available for Python 2
-                installed = False
-            else:
-                installed = pipInstall(
-                    "PyQt5",
-                    "PyQt5 could not be detected.\nError: {0}".format(msg)
-                )
-            if installed:
-                # try to import it again
-                try:
-                    from PyQt5.QtCore import qVersion
-                except ImportError as msg:
-                    print('Sorry, please install PyQt5.')
-                    print('Error: {0}'.format(msg))
-                    exit(1)
-            else:
+    try:
+        from PyQt5.QtCore import qVersion
+    except ImportError as msg:
+        installed = pipInstall(
+            "PyQt5",
+            "PyQt5 could not be detected.\nError: {0}".format(msg)
+        )
+        if installed:
+            # try to import it again
+            try:
+                from PyQt5.QtCore import qVersion
+            except ImportError as msg:
                 print('Sorry, please install PyQt5.')
                 print('Error: {0}'.format(msg))
                 exit(1)
-        print("Found PyQt5")
+        else:
+            print('Sorry, please install PyQt5.')
+            print('Error: {0}'.format(msg))
+            exit(1)
+    print("Found PyQt5")
     
     try:
-        if pyqtVariant == "PyQt4":
-            pyuic = "pyuic4"
-            from PyQt4 import uic      # __IGNORE_WARNING__
-        else:
-            pyuic = "pyuic5"
-            from PyQt5 import uic      # __IGNORE_WARNING__
+        pyuic = "pyuic5"
+        from PyQt5 import uic      # __IGNORE_WARNING__
     except ImportError as msg:
         print("Sorry, {0} is not installed.".format(pyuic))
         print('Error: {0}'.format(msg))
         exit(1)
     print("Found {0}".format(pyuic))
     
-    if pyqtVariant != "PyQt4":
-        try:
-            from PyQt5 import QtWebEngineWidgets    # __IGNORE_WARNING__
-        except ImportError as msg:
-            from PyQt5.QtCore import PYQT_VERSION
-            if PYQT_VERSION >= 0x50c00:
-                # PyQt 5.12 separated QtWebEngine into a separate wheel
-                installed = pipInstall(
-                    "PyQtWebEngine",
-                    "PyQtWebEngine could not be detected.\nError: {0}"
-                    .format(msg)
-                )
-        
-        try:
-            from PyQt5 import QtChart    # __IGNORE_WARNING__
-        except ImportError as msg:
+    try:
+        from PyQt5 import QtWebEngineWidgets    # __IGNORE_WARNING__
+    except ImportError as msg:
+        from PyQt5.QtCore import PYQT_VERSION
+        if PYQT_VERSION >= 0x050c00:
+            # PyQt 5.12 separated QtWebEngine into a separate wheel
             installed = pipInstall(
-                "PyQtChart",
-                "PyQtChart could not be detected.\nError: {0}"
+                "PyQtWebEngine",
+                "PyQtWebEngine could not be detected.\nError: {0}"
                 .format(msg)
             )
     
     try:
-        if pyqtVariant == "PyQt4":
-            from PyQt4 import Qsci      # __IGNORE_WARNING__
-        else:
-            from PyQt5 import Qsci      # __IGNORE_WARNING__
+        from PyQt5 import QtChart    # __IGNORE_WARNING__
+    except ImportError as msg:
+        installed = pipInstall(
+            "PyQtChart",
+            "PyQtChart could not be detected.\nError: {0}"
+            .format(msg)
+        )
+    
+    try:
+        from PyQt5 import Qsci      # __IGNORE_WARNING__
     except ImportError as msg:
-        if pyqtVariant == "PyQt4":
-            message = str(msg)
+        installed = pipInstall(
+            "QScintilla",
+            "QScintilla could not be detected.\nError: {0}".format(msg)
+        )
+        if installed:
+            # try to import it again
+            try:
+                from PyQt5 import Qsci      # __IGNORE_WARNING__
+                message = None
+            except ImportError as msg:
+                message = str(msg)
         else:
-            installed = pipInstall(
-                "QScintilla",
-                "QScintilla could not be detected.\nError: {0}".format(msg)
-            )
-            if installed:
-                # try to import it again
-                try:
-                    from PyQt5 import Qsci      # __IGNORE_WARNING__
-                    message = None
-                except ImportError as msg:
-                    message = str(msg)
-            else:
-                message = "QScintilla could not be installed."
+            message = "QScintilla could not be installed."
         if message:
             print("Sorry, please install QScintilla2 and")
-            print("its PyQt5/PyQt4 wrapper.")
+            print("its PyQt5 wrapper.")
             print('Error: {0}'.format(message))
             exit(1)
     print("Found QScintilla2")
     
-    if pyqtVariant == "PyQt4":
-        impModulesList = [
-            "PyQt4.QtGui", "PyQt4.QtNetwork", "PyQt4.QtSql",
-            "PyQt4.QtSvg", "PyQt4.QtWebKit",
-        ]
-        altModulesList = []
-    else:
-        impModulesList = [
-            "PyQt5.QtGui", "PyQt5.QtNetwork", "PyQt5.QtPrintSupport",
-            "PyQt5.QtSql", "PyQt5.QtSvg", "PyQt5.QtWidgets",
-        ]
-        altModulesList = [
-            # Tuple with alternatives, flag indicating it's ok to not be
-            # available (e.g. for 32-Bit Windows)
-            (("PyQt5.QtWebEngineWidgets", "PyQt5.QtWebKitWidgets"),
-             sys.maxsize <= 2**32),
-        ]
+    impModulesList = [
+        "PyQt5.QtGui", "PyQt5.QtNetwork", "PyQt5.QtPrintSupport",
+        "PyQt5.QtSql", "PyQt5.QtSvg", "PyQt5.QtWidgets",
+    ]
+    altModulesList = [
+        # Tuple with alternatives, flag indicating it's ok to not be
+        # available (e.g. for 32-Bit Windows)
+        (("PyQt5.QtWebEngineWidgets", ), sys.maxsize <= 2**32),
+    ]
     # check mandatory modules
     modulesOK = True
     for impModule in impModulesList:
@@ -1636,11 +1441,8 @@
     qtMajor = int(qVersion().split('.')[0])
     qtMinor = int(qVersion().split('.')[1])
     print("Qt Version: {0}".format(qVersion().strip()))
-    if qtMajor < 4 or \
-        (qtMajor == 4 and qtMinor < 8) or \
-            (qtMajor == 5 and qtMinor < 9):
-        print('Sorry, you must have Qt version 4.8.0 or better or')
-        print('5.9.0 or better.')
+    if qtMajor == 5 and qtMinor < 9:
+        print('Sorry, you must have Qt version 5.9.0 or better.')
         exit(2)
     
     # check version of sip
@@ -1676,10 +1478,7 @@
         pass
     
     # check version of PyQt
-    if pyqtVariant == "PyQt4":
-        from PyQt4.QtCore import PYQT_VERSION_STR
-    else:
-        from PyQt5.QtCore import PYQT_VERSION_STR
+    from PyQt5.QtCore import PYQT_VERSION_STR
     pyqtVersion = PYQT_VERSION_STR
     print("PyQt Version:", pyqtVersion.strip())
     # always assume, that snapshots or dev versions are new enough
@@ -1690,15 +1489,12 @@
         major = int(major)
         minor = int(minor)
         pat = int(pat)
-        if major < 4 or \
-            (major == 4 and minor < 10) or \
-                (major == 5 and minor < 9):
-            print('Sorry, you must have PyQt 4.10.0 or better or')
-            print('PyQt 5.9.0 or better or'
+        if major == 5 and minor < 9:
+            print('Sorry, you must have PyQt 5.9.0 or better or'
                   ' a recent snapshot release.')
             exit(4)
         # check for blacklisted versions
-        for vers in BlackLists[pyqtVariant] + PlatformBlackLists[pyqtVariant]:
+        for vers in BlackLists["PyQt5"] + PlatformBlackLists["PyQt5"]:
             if vers == pyqtVersion:
                 print('Sorry, PyQt version {0} is not compatible with eric6.'
                       .format(vers))
@@ -1706,10 +1502,7 @@
                 exit(4)
     
     # check version of QScintilla
-    if pyqtVariant == "PyQt4":
-        from PyQt4.Qsci import QSCINTILLA_VERSION_STR
-    else:
-        from PyQt5.Qsci import QSCINTILLA_VERSION_STR
+    from PyQt5.Qsci import QSCINTILLA_VERSION_STR
     scintillaVersion = QSCINTILLA_VERSION_STR
     print("QScintilla Version:", QSCINTILLA_VERSION_STR.strip())
     # always assume, that snapshots or dev versions are new enough
@@ -1754,10 +1547,7 @@
     """
     Compile the .ui files to Python sources.
     """
-    if pyqtVariant == "PyQt4":
-        from PyQt4.uic import compileUiDir
-    else:
-        from PyQt5.uic import compileUiDir
+    from PyQt5.uic import compileUiDir
     compileUiDir(eric6SourceDir, True, __pyName)
 
 
@@ -1776,18 +1566,14 @@
         pass
     try:
         hgOut = subprocess.check_output(["hg", "identify", "-i"])
-        if sys.version_info[0] == 3:
-            hgOut = hgOut.decode()
+        hgOut = hgOut.decode()
     except (OSError, subprocess.CalledProcessError):
         hgOut = ""
     if hgOut:
         hgOut = hgOut.strip()
         if hgOut.endswith("+"):
             hgOut = hgOut[:-1]
-        if sys.version_info[0] == 2:
-            f = codecs.open(fileName + ".orig", "r", "utf-8")
-        else:
-            f = open(fileName + ".orig", "r", encoding="utf-8")
+        f = open(fileName + ".orig", "r", encoding="utf-8")
         text = f.read()
         f.close()
         text = text.replace("@@REVISION@@", hgOut)\
@@ -1809,12 +1595,9 @@
     @rtype any
     """
     try:
-        import _winreg as winreg
+        import winreg
     except ImportError:
-        try:
-            import winreg
-        except ImportError:
-            return None
+        return None
     
     try:
         registryKey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, path, 0,
@@ -1870,31 +1653,17 @@
         the link target and the icon target
     @rtype list of tuples of (str, str, str)
     """
-    global cfg, includePythonVariant
-    
-    if includePythonVariant:
-        marker = PythonMarkers[sys.version_info.major]
-    else:
-        marker = ""
+    global cfg
     
     majorVersion, minorVersion = sys.version_info[:2]
     entriesTemplates = [
         ("eric6 (Python {0}.{1}).lnk",
-         os.path.join(cfg["bindir"], "eric6" + marker + ".cmd"),
+         os.path.join(cfg["bindir"], "eric6.cmd"),
          os.path.join(cfg["ericPixDir"], "eric6.ico")),
+        ("eric6 Browser (Python {0}.{1}).lnk",
+         os.path.join(cfg["bindir"], "eric6_browse.cmd"),
+         os.path.join(cfg["ericPixDir"], "ericWeb48.ico")),
     ]
-    if sys.version_info.major == 2:
-        entriesTemplates.append((
-            "eric6 Browser (Python {0}.{1}).lnk",
-            os.path.join(cfg["bindir"], "eric6_webbrowser" + marker + ".cmd"),
-            os.path.join(cfg["ericPixDir"], "ericWeb48.ico")
-        ))
-    else:
-        entriesTemplates.append((
-            "eric6 Browser (Python {0}.{1}).lnk",
-            os.path.join(cfg["bindir"], "eric6_browser" + marker + ".cmd"),
-            os.path.join(cfg["ericPixDir"], "ericWeb48.ico")
-        ))
     
     return [
         (e[0].format(majorVersion, minorVersion), e[1], e[2])
@@ -1924,13 +1693,12 @@
 
     # Parse the command line.
     global progName, modDir, doCleanup, doCompile, distDir, cfg, apisDir
-    global sourceDir, eric6SourceDir, configName, includePythonVariant
+    global sourceDir, eric6SourceDir, configName
     global macAppBundlePath, macAppBundleName, macPythonExe
-    global pyqtVariant, pyqtOverride, installApis, doCleanDesktopLinks
+    global installApis, doCleanDesktopLinks
     
-    if sys.version_info < (2, 7, 0) or sys.version_info > (3, 9, 9):
-        print('Sorry, eric6 requires at least Python 2.7 or '
-              'Python 3 for running.')
+    if sys.version_info < (3, 5, 0) or sys.version_info > (3, 99, 99):
+        print('Sorry, eric6 requires at least Python 3.5 for running.')
         exit(5)
     
     progName = os.path.basename(argv[0])
@@ -1938,22 +1706,21 @@
     if os.path.dirname(argv[0]):
         os.chdir(os.path.dirname(argv[0]))
     
-    determinePyQtVariant()
     initGlobals()
 
     try:
         if sys.platform.startswith(("win", "cygwin")):
             optlist, args = getopt.getopt(
-                argv[1:], "chxyza:b:d:f:",
-                ["help", "pyqt=", "no-apis"])
+                argv[1:], "chxza:b:d:f:",
+                ["help", "no-apis"])
         elif sys.platform == "darwin":
             optlist, args = getopt.getopt(
-                argv[1:], "chxyza:b:d:f:i:m:n:p:",
-                ["help", "pyqt=", "no-apis"])
+                argv[1:], "chxza:b:d:f:i:m:n:p:",
+                ["help", "no-apis"])
         else:
             optlist, args = getopt.getopt(
-                argv[1:], "chxyza:b:d:f:i:",
-                ["help", "pyqt=", "no-apis"])
+                argv[1:], "chxza:b:d:f:i:",
+                ["help", "no-apis"])
     except getopt.GetoptError as err:
         print(err)
         usage()
@@ -1979,8 +1746,6 @@
             doCleanup = False
         elif opt == "-z":
             doCompile = False
-        elif opt == "-y":
-            includePythonVariant = True
         elif opt == "-f":
             try:
                 exec(compile(open(arg).read(), arg, 'exec'), globals())
@@ -1996,12 +1761,6 @@
             macAppBundlePath = arg
         elif opt == "-p":
             macPythonExe = arg
-        elif opt == "--pyqt":
-            if arg not in ["4", "5"]:
-                print("Invalid PyQt version given; should be 4 or 5. Aborting")
-                exit(6)
-            pyqtVariant = "PyQt{0}".format(arg)
-            pyqtOverride = True
         elif opt == "--no-apis":
             installApis = False
         elif opt == "--clean-desktop":
@@ -2072,7 +1831,6 @@
     
     if doCompile:
         print("\nCompiling source files ...")
-        # Hide compile errors (mainly because of Py2/Py3 differences)
         skipRe = re.compile(r"DebugClients[\\/]Python[\\/]")
         sys.stdout = io.StringIO()
         if distDir:
--- a/scripts/uninstall-debugclients.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/scripts/uninstall-debugclients.py	Sat Sep 07 16:10:29 2019 +0200
@@ -17,13 +17,6 @@
 import shutil
 import distutils.sysconfig
 
-if sys.version_info[0] == 2:
-    try:
-        from PyQt5 import sip
-    except ImportError:
-        import sip
-    sip.setapi('QString', 2)
-
 # Define the globals.
 progName = None
 currDir = os.getcwd()
@@ -41,7 +34,6 @@
     global currDir
     
     if sys.platform.startswith("win"):
-        # different meaning of input between Py2 and Py3
         try:
             input("Press enter to continue...")
         except (EOFError, SyntaxError):
--- a/scripts/uninstall.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/scripts/uninstall.py	Sat Sep 07 16:10:29 2019 +0200
@@ -18,32 +18,16 @@
 import glob
 import distutils.sysconfig
 
-if sys.version_info[0] == 2:
-    try:
-        from PyQt5 import sip
-    except ImportError:
-        import sip
-    sip.setapi('QString', 2)
-else:
-    raw_input = input
-
 # Define the globals.
 progName = None
 currDir = os.getcwd()
 pyModDir = None
 progLanguages = ["Python", "Ruby", "QSS"]
-includePythonVariant = False
 defaultMacAppBundleName = "eric6.app"
 defaultMacAppBundlePath = "/Applications"
 settingsNameOrganization = "Eric6"
 settingsNameGlobal = "eric6"
 
-# Define file name markers for Python variants
-PythonMarkers = {
-    2: "_py2",
-    3: "_py3",
-}
-
 
 def exit(rcode=0):
     """
@@ -60,7 +44,6 @@
         os.rename("eric6config.py.orig", "eric6config.py")
     
     if sys.platform.startswith(("win", "cygwin")):
-        # different meaning of input between Py2 and Py3
         try:
             input("Press enter to continue...")
         except (EOFError, SyntaxError):
@@ -96,7 +79,6 @@
     print("    {0} [-h]".format(progName))
     print("where:")
     print("    -h             display this help message")
-    print("    -y             remove executables with Python variant in name")
 
     exit(rcode)
 
@@ -151,13 +133,11 @@
         "eric6_tray", "eric6_editor",
         "eric6_plugininstall", "eric6_pluginuninstall",
         "eric6_pluginrepository", "eric6_sqlbrowser",
-        "eric6_webbrowser", "eric6_iconeditor",
-        "eric6_snap", "eric6_hexeditor", "eric6_browser",
-        "eric6_shell",
+        "eric6_iconeditor", "eric6_snap", "eric6_hexeditor",
+        "eric6_browser", "eric6_shell",
+        # from Python2 era
+        "eric6_webbrowser",
     ]
-    if includePythonVariant:
-        marker = PythonMarkers[sys.version_info.major]
-        rem_wnames = [n + marker for n in rem_wnames]
     
     try:
         for rem_wname in rem_wnames:
@@ -273,20 +253,15 @@
                      "/usr/share/pixmaps/ericWeb.png"]:
             if os.path.exists(name):
                 os.remove(name)
-        if includePythonVariant:
-            marker = PythonMarkers[sys.version_info.major]
-        else:
-            marker = ""
         for name in [
-            "/usr/share/applications/eric6" + marker + ".desktop",
-            "/usr/share/appdata/eric6" + marker + ".appdata.xml",
-            "/usr/share/metainfo/eric6" + marker + ".appdata.xml",
-            "/usr/share/applications/eric6_webbrowser" + marker +
-            ".desktop",
-            "/usr/share/applications/eric6_browser" + marker +
-            ".desktop",
-            "/usr/share/pixmaps/eric" + marker + ".png",
-            "/usr/share/pixmaps/ericWeb" + marker + ".png",
+            "/usr/share/applications/eric6.desktop",
+            "/usr/share/appdata/eric6.appdata.xml",
+            "/usr/share/metainfo/eric6.appdata.xml",
+            "/usr/share/applications/eric6_browser.desktop",
+            "/usr/share/pixmaps/eric.png",
+            "/usr/share/pixmaps/ericWeb.png",
+            # from Python2 era
+            "/usr/share/applications/eric6_webbrowser.desktop",
         ]:
             if os.path.exists(name):
                 os.remove(name)
@@ -297,20 +272,15 @@
             path = os.path.expanduser(name)
             if os.path.exists(path):
                 os.remove(path)
-        if includePythonVariant:
-            marker = PythonMarkers[sys.version_info.major]
-        else:
-            marker = ""
         for name in [
-            "~/.local/share/applications/eric6" + marker + ".desktop",
-            "~/.local/share/appdata/eric6" + marker + ".appdata.xml",
-            "~/.local/share/metainfo/eric6" + marker + ".appdata.xml",
-            "~/.local/share/applications/eric6_webbrowser" + marker +
-            ".desktop",
-            "~/.local/share/applications/eric6_browser" + marker +
-            ".desktop",
-            "~/.local/share/pixmaps/eric" + marker + ".png",
-            "~/.local/share/pixmaps/ericWeb" + marker + ".png",
+            "~/.local/share/applications/eric6.desktop",
+            "~/.local/share/appdata/eric6.appdata.xml",
+            "~/.local/share/metainfo/eric6.appdata.xml",
+            "~/.local/share/applications/eric6_browser.desktop",
+            "~/.local/share/pixmaps/eric.png",
+            "~/.local/share/pixmaps/ericWeb.png",
+            # from Python2 era
+            "/usr/share/applications/eric6_webbrowser.desktop",
         ]:
             path = os.path.expanduser(name)
             if os.path.exists(path):
@@ -358,8 +328,7 @@
             print("  - {0}".format(path))
         answer = "c"
         while answer not in ["y", "Y", "n", "N", ""]:
-            answer = raw_input(
-                "Shall these directories be removed (y/N)? ")
+            answer = input("Shall these directories be removed (y/N)? ")
         if answer in ["y", "Y"]:
             for path in pathsToRemove:
                 shutil.rmtree(path)
@@ -375,8 +344,7 @@
         print("  - {0}".format(cfg))
         answer = "c"
         while answer not in ["y", "Y", "n", "N", ""]:
-            answer = raw_input(
-                "Shall this directory be removed (y/N)? ")
+            answer = input("Shall this directory be removed (y/N)? ")
         if answer in ["y", "Y"]:
             shutil.rmtree(cfg)
 
@@ -388,12 +356,9 @@
     try:
         from PyQt5.QtCore import QSettings
     except ImportError:
-        try:
-            from PyQt4.QtCore import QSettings
-        except ImportError:
-            print("No PyQt variant installed. The configuration directory")
-            print("cannot be determined. You have to remove it manually.\n")
-            return
+        print("No PyQt variant installed. The configuration directory")
+        print("cannot be determined. You have to remove it manually.\n")
+        return
     
     settings = QSettings(QSettings.IniFormat, QSettings.UserScope,
                          settingsNameOrganization, settingsNameGlobal)
@@ -403,8 +368,7 @@
         print("  - {0}".format(settingsDir))
         answer = "c"
         while answer not in ["y", "Y", "n", "N", ""]:
-            answer = raw_input(
-                "Shall this directory be removed (y/N)? ")
+            answer = input("Shall this directory be removed (y/N)? ")
         if answer in ["y", "Y"]:
             shutil.rmtree(settingsDir)
 
@@ -477,8 +441,6 @@
     """
     import getopt
 
-    global includePythonVariant
-    
     initGlobals()
 
     # Parse the command line.
@@ -495,8 +457,6 @@
     for opt, _arg in optlist:
         if opt == "-h":
             usage(0)
-        if opt == "-y":
-            includePythonVariant = True
     
     print("\nUninstalling eric6 ...")
     uninstallEric()
--- a/setup.py	Sat Sep 07 14:45:27 2019 +0200
+++ b/setup.py	Sat Sep 07 16:10:29 2019 +0200
@@ -137,8 +137,7 @@
         pass
     try:
         hgOut = subprocess.check_output(["hg", "identify", "-i"])
-        if sys.version_info[0] == 3:
-            hgOut = hgOut.decode()
+        hgOut = hgOut.decode()
     except (OSError, subprocess.CalledProcessError):
         hgOut = ""
     if hgOut:

eric ide

mercurial