summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure61
-rwxr-xr-xconfigure.exebin1473536 -> 1498624 bytes
-rw-r--r--doc/src/development/designer-manual.qdoc6
-rw-r--r--doc/src/development/developing-with-qt.qdoc42
-rw-r--r--doc/src/development/qmake-manual.qdoc10
-rw-r--r--doc/src/examples/diagramscene.qdoc12
-rw-r--r--doc/src/external-resources.qdoc2
-rw-r--r--doc/src/getting-started/installation.qdoc4
-rw-r--r--doc/src/howtos/appicon.qdoc2
-rw-r--r--doc/src/images/editbreaklayout.pngbin0 -> 1321 bytes
-rw-r--r--doc/src/legal/commercialeditions.qdoc82
-rw-r--r--doc/src/network-programming/ssl.qdoc2
-rw-r--r--doc/src/platforms/compiler-notes.qdoc44
-rw-r--r--doc/src/platforms/platform-notes-rtos.qdoc368
-rw-r--r--doc/src/platforms/platform-notes.qdoc1000
-rw-r--r--doc/src/platforms/platform-notes.qdocinc0
-rw-r--r--doc/src/platforms/supported-platforms.qdoc413
-rw-r--r--doc/src/platforms/symbian-introduction.qdoc2
-rw-r--r--doc/src/qt-webpages.qdoc4
-rw-r--r--doc/src/snippets/code/doc_src_stylesheet.qdoc4
-rw-r--r--doc/src/snippets/code/src_corelib_tools_qvector.cpp4
-rw-r--r--doc/src/snippets/code/src_opengl_qglcolormap.cpp5
-rw-r--r--doc/src/snippets/code/src_sql_kernel_qsqldriver.cpp6
-rw-r--r--doc/src/snippets/qxmlquery/bindingExample.cpp3
-rw-r--r--examples/draganddrop/fridgemagnets/dragwidget.cpp2
-rw-r--r--examples/opengl/cube/mainwidget.cpp4
-rw-r--r--mkspecs/features/testcase.prf4
-rw-r--r--mkspecs/features/unix/gdb_dwarf_index.prf12
-rw-r--r--mkspecs/unsupported/integrity-ghs/qmake.conf11
-rw-r--r--mkspecs/win32-g++-4.6/qmake.conf3
-rw-r--r--mkspecs/win32-g++-4.6/qplatformdefs.h159
-rw-r--r--projects.pro2
-rw-r--r--qmake/Makefile.win32-g++2
-rw-r--r--qmake/generators/integrity/gbuild.cpp63
-rw-r--r--qmake/generators/integrity/gbuild.h2
-rw-r--r--qmake/qmake.pri6
-rw-r--r--qmake/qmake.pro1
-rw-r--r--src/3rdparty/webkit/.tag2
-rw-r--r--src/3rdparty/webkit/ChangeLog31
-rwxr-xr-xsrc/3rdparty/webkit/Source/WebCore/ChangeLog38
-rw-r--r--src/3rdparty/webkit/Source/WebCore/WebCore.pro5
-rw-r--r--src/3rdparty/webkit/Source/WebCore/bindings/js/JSExceptionBase.h2
-rw-r--r--src/3rdparty/webkit/Source/WebCore/platform/win/SystemTimeWin.cpp3
-rw-r--r--src/3rdparty/webkit/Source/WebKit.pri9
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/Api/qwebpage.cpp2
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/ChangeLog36
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/QtWebKit.pro13
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/docs/qtwebkit-goes-mobile.qdoc191
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/docs/qtwebkit.qdoc3
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/docs/webkitsnippets/qtwebkit_goes_mobile_snippets.cpp61
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/docs/webkitsnippets/webelement/main.cpp2
-rw-r--r--src/3rdparty/webkit/VERSION2
-rw-r--r--src/corelib/arch/qatomic_integrity.h7
-rw-r--r--src/corelib/global/qglobal.h2
-rw-r--r--src/corelib/io/qurltlds_p.h12884
-rw-r--r--src/corelib/io/qurltlds_p.h.INFO4
-rw-r--r--src/corelib/kernel/qpointer.cpp2
-rw-r--r--src/corelib/kernel/qtranslator.cpp18
-rw-r--r--src/corelib/tools/qline.cpp9
-rw-r--r--src/corelib/tools/qlist.cpp4
-rw-r--r--src/corelib/tools/qlocale_tools.cpp7
-rw-r--r--src/corelib/tools/qregexp.cpp4
-rw-r--r--src/dbus/qdbuspendingcall.cpp9
-rw-r--r--src/declarative/util/qdeclarativepixmapcache.cpp57
-rw-r--r--src/gui/dialogs/qfiledialog.cpp2
-rw-r--r--src/gui/dialogs/qmessagebox.cpp2
-rw-r--r--src/gui/embedded/qscreenintegrityfb_qws.cpp154
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp5
-rw-r--r--src/gui/kernel/qwidget_x11.cpp28
-rw-r--r--src/gui/painting/qpainter.cpp22
-rw-r--r--src/gui/styles/qmacstyle_mac.mm111
-rw-r--r--src/gui/styles/qwindowsstyle.cpp56
-rw-r--r--src/gui/styles/qwindowsstyle_p.h4
-rw-r--r--src/gui/styles/qwindowsvistastyle.cpp1
-rw-r--r--src/gui/text/qfontdatabase.cpp32
-rw-r--r--src/gui/text/qfontdatabase_mac.cpp30
-rw-r--r--src/gui/text/qfontdatabase_x11.cpp1
-rw-r--r--src/gui/text/qfontengine_mac.mm2
-rw-r--r--src/gui/text/qtextcontrol.cpp7
-rw-r--r--src/gui/widgets/qdatetimeedit.cpp2
-rw-r--r--src/gui/widgets/qgroupbox.cpp4
-rw-r--r--src/gui/widgets/qplaintextedit.cpp2
-rw-r--r--src/gui/widgets/qprogressbar.cpp14
-rw-r--r--src/gui/widgets/qvalidator.cpp3
-rw-r--r--src/imports/shaders/shadereffect.cpp4
-rw-r--r--src/network/access/qhttpnetworkconnection.cpp5
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel.cpp2
-rw-r--r--src/network/access/qhttpnetworkreply.cpp6
-rw-r--r--src/network/access/qhttpthreaddelegate.cpp5
-rw-r--r--src/network/access/qnetworkdiskcache.cpp4
-rw-r--r--src/network/socket/qhttpsocketengine.cpp4
-rw-r--r--src/network/ssl/qssl.cpp8
-rw-r--r--src/network/ssl/qssl.h3
-rw-r--r--src/network/ssl/qsslcertificate.cpp3
-rw-r--r--src/network/ssl/qsslconfiguration.cpp2
-rw-r--r--src/network/ssl/qsslconfiguration_p.h3
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp8
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp4
-rw-r--r--src/opengl/qgl.cpp6
-rw-r--r--src/opengl/qwindowsurface_gl.cpp31
-rw-r--r--src/src.pro2
-rw-r--r--src/xml/sax/qxml.cpp3
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/qtbug_22125.qml44
-rw-r--r--tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp41
-rw-r--r--tests/auto/qbytearray/qbytearray.pro2
-rw-r--r--tests/auto/qchar/qchar.pro2
-rw-r--r--tests/auto/qelapsedtimer/qelapsedtimer.pro2
-rw-r--r--tests/auto/qfileinfo/qfileinfo.pro2
-rw-r--r--tests/auto/qfontdatabase/tst_qfontdatabase.cpp14
-rw-r--r--tests/auto/qgroupbox/tst_qgroupbox.cpp23
-rw-r--r--tests/auto/qintvalidator/tst_qintvalidator.cpp9
-rw-r--r--tests/auto/qlibrary/qlibrary.pro2
-rw-r--r--tests/auto/qmessagebox/tst_qmessagebox.cpp3
-rw-r--r--tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp6
-rw-r--r--tests/auto/qnetworkreply/tst_qnetworkreply.cpp151
-rw-r--r--tests/auto/qplugin/qplugin.pro2
-rw-r--r--tests/auto/qpluginloader/qpluginloader.pro4
-rw-r--r--tests/auto/qprogressbar/tst_qprogressbar.cpp39
-rw-r--r--tests/auto/qresourceengine/qresourceengine.pro2
-rw-r--r--tests/auto/qsharedpointer/qsharedpointer.pro7
-rw-r--r--tests/auto/qtemporaryfile/qtemporaryfile.pro2
-rw-r--r--tests/auto/qtextboundaryfinder/qtextboundaryfinder.pro6
-rw-r--r--tests/auto/qtranslator/i18n/hellotr_en.qmbin0 -> 230 bytes
-rw-r--r--tests/auto/qtranslator/tst_qtranslator.cpp40
-rw-r--r--tests/auto/selftests/selftests.pro1
-rw-r--r--tests/manual/qssloptions/main.cpp3
-rw-r--r--tools/configure/configureapp.cpp31
-rw-r--r--tools/configure/environment.cpp86
-rw-r--r--tools/configure/environment.h3
-rw-r--r--tools/designer/src/components/propertyeditor/propertyeditor.pri9
-rw-r--r--tools/designer/src/lib/shared/shared.pri12
-rw-r--r--tools/qdoc3/htmlgenerator.cpp8
-rw-r--r--tools/qdoc3/htmlgenerator.h1
-rw-r--r--tools/qdoc3/qdoc3.pro5
-rw-r--r--translations/qt_ru.ts18
135 files changed, 8456 insertions, 8463 deletions
diff --git a/configure b/configure
index 672a1c9..37c306d 100755
--- a/configure
+++ b/configure
@@ -816,6 +816,7 @@ l_FLAGS=
QCONFIG_FLAGS=
XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++" or "symbian-gcce"
XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
+XPLATFORM_INTEGRITY=no # Whether target platform is INTEGRITY (*integrity*)
XPLATFORM_SYMBIAN=no # Whether target platform is SYMBIAN (*symbian*)
XPLATFORM_SYMBIAN_SBSV2=no # Whether target platform is SYMBIAN_SBSV2 (symbian-sbsv2)
PLATFORM=$QMAKESPEC
@@ -1596,6 +1597,7 @@ while [ "$#" -gt 0 ]; do
xplatform)
XPLATFORM="$VAL"
case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
+ case "$XPLATFORM" in *integrity*) XPLATFORM_INTEGRITY=yes;; esac
case "$XPLATFORM" in *symbian*) XPLATFORM_SYMBIAN=yes;; esac
case "$XPLATFORM" in symbian-sbsv2) XPLATFORM_SYMBIAN_SBSV2=yes;; esac
;;
@@ -2899,6 +2901,7 @@ fi
[ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
+case "$XPLATFORM" in *integrity*) XPLATFORM_INTEGRITY=yes;; esac
case "$XPLATFORM" in *symbian*) XPLATFORM_SYMBIAN=yes;; esac
case "$XPLATFORM" in symbian-sbsv2) XPLATFORM_SYMBIAN_SBSV2=yes;; esac
@@ -3179,6 +3182,8 @@ if [ "$PLATFORM" != "$XPLATFORM" -a "$CFG_EMBEDDED" != "no" ]; then
esac
elif [ "$XPLATFORM_MINGW" = "yes" ]; then
[ -z "$CFG_ARCH" ] && CFG_ARCH="windows"
+elif [ "$XPLATFORM_INTEGRITY" = "yes" ]; then
+ CFG_ARCH=integrity
elif [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
CFG_ARCH=symbian
elif [ "$PLATFORM_MAC" = "yes" ] || [ -z "$CFG_ARCH" ]; then
@@ -3531,6 +3536,19 @@ if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
[ -z "$QT_INSTALL_SETTINGS" ] && QT_INSTALL_SETTINGS=
[ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES=
[ -z "$QT_INSTALL_DEMOS" ] && QT_INSTALL_DEMOS=
+elif [ "$XPLATFORM_INTEGRITY" = "yes" ]; then
+ [ -z "$QT_HOST_PREFIX" ] && QT_HOST_PREFIX="$QT_INSTALL_PREFIX"
+ [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc"
+ [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
+ [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib"
+ [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin"
+ [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins"
+ [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports"
+ [ -z "$QT_INSTALL_DATA" ] && QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
+ [ -z "$QT_INSTALL_TRANSLATIONS" ] && QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
+ [ -z "$QT_INSTALL_SETTINGS" ] && QT_INSTALL_SETTINGS="$QT_INSTALL_PREFIX"
+ [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples"
+ [ -z "$QT_INSTALL_DEMOS" ] && QT_INSTALL_DEMOS="$QT_INSTALL_PREFIX/demos"
else
#docs
if [ -z "$QT_INSTALL_DOCS" ]; then #default
@@ -4422,6 +4440,8 @@ if [ "$PLATFORM_QWS" = "yes" ]; then
Platform="Qt for Embedded Linux"
elif [ "$PLATFORM_QPA" = "yes" ]; then
Platform="Qt Lighthouse"
+elif [ "$XPLATFORM_INTEGRITY" = "yes" ]; then
+ Platform="Qt for INTEGRITY"
elif [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
Platform="Qt for Symbian"
elif [ "$PLATFORM_MAC" = "yes" ]; then
@@ -5115,6 +5135,26 @@ if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
fi
fi
fi
+# Adjust all variables for INTEGRITY
+if [ "$XPLATFORM_INTEGRITY" = "yes" ]; then
+ QMakeVar set gfx-drivers "integrityfb"
+ QMakeVar set kbd-drivers "integrity"
+ QMakeVar set mouse-drivers "integrity"
+ CFG_TIFF="no"
+ CFG_KBD_ON="integrity"
+ CFG_MOUSE_ON="integrity"
+ CFG_GFX_ON="integrityfb"
+ CFG_LARGEFILE="no"
+ CFG_STL="yes"
+ CFG_OPENSSL="no"
+ CFG_GLIB="no"
+ CFG_SHARED="no"
+ if [ "$CFG_SCRIPT" != "yes" ]; then
+ CFG_SCRIPT="no"
+ fi
+ CFG_BUILD_PARTS="libs examples demos"
+ CFG_GIF="no"
+fi
# check IPC support
if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
@@ -6590,7 +6630,7 @@ if [ "$CFG_DOUBLEFORMAT" = "auto" ]; then
fi
HAVE_STL=no
-if [ "$XPLATFORM_SYMBIAN" = "yes" ] || "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS; then
+if [ "$XPLATFORM_SYMBIAN" = "yes" ] || [ "$XPLATFORM_INTEGRITY" = "yes" ] || "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS; then
HAVE_STL=yes
fi
@@ -6986,9 +7026,9 @@ case "$PLATFORM,$CFG_MAC_COCOA" in
;;
esac
-# disable Qt 3 support on VxWorks and Symbian
+# disable Qt 3 support on VxWorks, Symbian and INTEGRITY
case "$XPLATFORM" in
- unsupported/vxworks*|symbian*)
+ unsupported/vxworks*|symbian*|unsupported/integrity*)
CFG_QT3SUPPORT="no"
;;
esac
@@ -7128,10 +7168,17 @@ if [ "$XPLATFORM_MINGW" != "yes" ]; then
# debug and release precompiled headers are kept separate.
QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
fi
-QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
-QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
-QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
-QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
+if [ "$XPLATFORM_INTEGRITY" = "yes" ]; then
+ QMakeVar set OBJECTS_DIR "$PWD/work"
+ QMakeVar set MOC_DIR "$PWD/work"
+ QMakeVar set RCC_DIR "$PWD/work"
+ QMakeVar set UI_DIR "$PWD/work"
+else
+ QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
+ QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
+ QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
+ QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
+fi
if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
QMAKE_CONFIG="$QMAKE_CONFIG largefile"
fi
diff --git a/configure.exe b/configure.exe
index 9538a4b..5487fda 100755
--- a/configure.exe
+++ b/configure.exe
Binary files differ
diff --git a/doc/src/development/designer-manual.qdoc b/doc/src/development/designer-manual.qdoc
index 348931f..f979547 100644
--- a/doc/src/development/designer-manual.qdoc
+++ b/doc/src/development/designer-manual.qdoc
@@ -694,8 +694,10 @@
the object's name with the in-place editor.
Since Qt 4.5, the \gui{Object Inspector} displays the layout state of
- the containers. The broken layout icon ###ICON is displayed if there is
- something wrong with the layouts.
+ the containers. The broken layout icon \inlineimage editbreaklayout.png
+ is displayed if there is something wrong (e.g. layout missing from the
+ container) with the layouts.
+
\endtable
*/
diff --git a/doc/src/development/developing-with-qt.qdoc b/doc/src/development/developing-with-qt.qdoc
index 59aae83..2f56151 100644
--- a/doc/src/development/developing-with-qt.qdoc
+++ b/doc/src/development/developing-with-qt.qdoc
@@ -75,39 +75,37 @@
\table
\row
- \o
- \list
\o \l {Calling Qt Functions From Unix Signal Handlers}
- \o \l {Compiler Notes}
+ \o Workaround for using Unix signal handlers.
+ \row
\o \l {Developing Qt Applications for Mac OS X}
- \o \l {Known Issues}
- \o \l {Platform and Compiler Notes}
- \o \l {Platform and Compiler Notes - Symbian}
- \o \l {ActiveX in Qt}
- \o \l {Qt for Embedded Linux Classes}
- \o \l {Qt for Embedded Platforms}
- \o \l {Qt for Mac OS X - Specific Issues}
- \o \l {Qt is Mac OS X Native}
- \o \l {Supported Platforms}
- \o \l {The qtmain Library}
- \o \l {Window System Specific Notes}
- \endlist
- \o
- \list
- \o Workaround to make it work.
- \o Information about the C++ compilers and tools used to build Qt.
\o Information for developing Qt applications for Mac OS X
+ \row
+ \o \l {Known Issues}
\o A summary of known issues in this Qt version at the time of release.
- \o Information about the platforms on which Qt can be used.
- \o Information about the state of support for the Symbian platform.
+ \row
+ \o \l {ActiveX in Qt}
\o Qt API's for using ActiveX controls, servers, and COM.
+ \row
+ \o \l {Qt for Embedded Linux Classes}
\o Classes that are specific to Qt for Embedded Linux.
+ \row
+ \o \l {Qt for Embedded Platforms}
\o Documents related to Qt for Embedded Platforms.
+ \row
+ \o \l {Qt for Mac OS X - Specific Issues}
\o A description of issues with Qt that are specific to Mac OS X.
+ \row
+ \o \l {Qt is Mac OS X Native}
\o An explanation of Qt's native features on Mac OS X.
+ \row
+ \o \l {Supported Platforms}
\o The platforms supported by Nokia for Qt.
+ \row
+ \o \l {The qtmain Library}
\o Describes the use and license of the qtmain helper library.
+ \row
+ \o \l {Window System Specific Notes}
\o Collections of notes about Qt implementations on different window systems.
- \endlist
\endtable
*/
diff --git a/doc/src/development/qmake-manual.qdoc b/doc/src/development/qmake-manual.qdoc
index 0f85469..eabf2b9 100644
--- a/doc/src/development/qmake-manual.qdoc
+++ b/doc/src/development/qmake-manual.qdoc
@@ -438,7 +438,10 @@
Note, that you must use "+=", not "=", or \l{qmake Manual#qmake}{\c qmake}
will not be able to use Qt's configuration to determine the settings
- needed for your project.
+ needed for your project. More information about operators can be found in the
+ \l{qmake Advanced Usage#Operators}
+ {Operators} section of the \l{qmake Advanced Usage}
+ chapter.
\section1 Declaring Qt Libraries
@@ -464,6 +467,11 @@
\snippet doc/src/snippets/code/doc_src_qmake-manual.pro 4
+ More information about operators can be found in the
+ \l{qmake Advanced Usage#Operators}
+ {Operators} section of the \l{qmake Advanced Usage}
+ chapter.
+
The table below shows the options that can be used with the \c QT variable
and the features that are associated with each of them:
diff --git a/doc/src/examples/diagramscene.qdoc b/doc/src/examples/diagramscene.qdoc
index c7b4bfe..0518a33 100644
--- a/doc/src/examples/diagramscene.qdoc
+++ b/doc/src/examples/diagramscene.qdoc
@@ -149,11 +149,11 @@
Example}{application example} if you need a high-level
introduction to actions.
- The is the \c createMenus() function:
+ Here is the \c createMenus() function:
\snippet examples/graphicsview/diagramscene/mainwindow.cpp 24
- We create the three menus' of the example.
+ We create the three menus of the example.
The \c createToolbars() function sets up the examples tool
bars. The three \l{QToolButton}s in the \c colorToolBar, the \c
@@ -199,7 +199,7 @@
each button; we store the diagram's type, i.e., the
DiagramItem::DiagramType enum. We use the stored diagram type when
we create new diagram items for the scene. The widgets created
- with this function is used in the tool box.
+ with this function are used in the tool box.
Here is the \c createColorMenu() function:
@@ -443,7 +443,7 @@
In the \c DiagramScene a mouse click can give three different
actions: the item under the mouse can be moved, an item may be
- inserted, or an arrow may be connected between to diagram items.
+ inserted, or an arrow may be connected between two diagram items.
Which action a mouse click has depends on the mode, given by the
Mode enum, the scene is in. The mode is set with the \c setMode()
function.
@@ -456,7 +456,7 @@
inserted is set with the \c setItemType() slot.
The \c MainWindow and \c DiagramScene share responsibility for
- the examples functionality. \c MainWindow handles the following
+ the example's functionality. \c MainWindow handles the following
tasks: the deletion of items, text, and arrows; moving diagram
items to the back and front; and setting the scale of the scene.
@@ -624,7 +624,7 @@
\snippet examples/graphicsview/diagramscene/diagramitem.cpp 0
- In the constructor we create the items polygon according to
+ In the constructor we create the item's polygon according to
\a diagramType. \l{QGraphicsItem}s are not movable or selectable
by default, so we must set these properties.
diff --git a/doc/src/external-resources.qdoc b/doc/src/external-resources.qdoc
index f528bf2..f81f517 100644
--- a/doc/src/external-resources.qdoc
+++ b/doc/src/external-resources.qdoc
@@ -420,7 +420,7 @@
*/
/*!
- \externalpage http://developer.symbian.org/wiki/index.php/Platform_Security_%28Fundamentals_of_Symbian_C%2B%2B%29#Self-Signed_Applications
+ \externalpage http://www.developer.nokia.com/Community/Wiki/Qt_&_Symbian_Platform_Security
\title Symbian Platform Security
*/
diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc
index 239f117..a4ae63f 100644
--- a/doc/src/getting-started/installation.qdoc
+++ b/doc/src/getting-started/installation.qdoc
@@ -590,7 +590,7 @@ the Symbian platform from scratch.
The \l{Configuration Options for Qt} page gives a brief overview
of these.
- SBSv2 (also known as \l{http://developer.symbian.org/wiki/index.php/Introduction_to_RAPTOR} {Raptor})
+ SBSv2 (also known as \l{http://projects.developer.nokia.com/raptor/wiki} {Raptor})
is a next-generation Symbian build system. SBSv2 is not officially supported
by any of the S60 SDKs currently available from Forum Nokia.
@@ -1348,7 +1348,7 @@ We hope you will enjoy using Qt.
\endlist
- We recommend you to take a look at \l{http://developer.symbian.org/wiki/index.php/Qt_Quick_Start}{Symbian Foundation - Qt Quick Start}
+ We recommend you to take a look at \l{http://doc.qt.nokia.com/latest/install-symbian.html}{Installing Qt for the Symbian platform}
to get more information about how to setup the development environment.
\sa {Known Issues}
diff --git a/doc/src/howtos/appicon.qdoc b/doc/src/howtos/appicon.qdoc
index 8e7601f..2879b05 100644
--- a/doc/src/howtos/appicon.qdoc
+++ b/doc/src/howtos/appicon.qdoc
@@ -205,7 +205,7 @@
In order to set the application icon for Symbian platform applications, you need
an SVG-T icon. For information on how to create SVG-T compliant icons,
please refer to
- \l{http://wiki.forum.nokia.com/index.php/How_to_create_application_icon(SVG)_in_S60_3rd_edition/}
+ \l{http://wiki.forum.nokia.com/index.php/How_to_create_application_icon(SVG)_in_S60_3rd_edition}
Once the icon is available in the correct format and assuming you are
using \c qmake to generate your makefiles, you only need to add a single
diff --git a/doc/src/images/editbreaklayout.png b/doc/src/images/editbreaklayout.png
new file mode 100644
index 0000000..07c5fae
--- /dev/null
+++ b/doc/src/images/editbreaklayout.png
Binary files differ
diff --git a/doc/src/legal/commercialeditions.qdoc b/doc/src/legal/commercialeditions.qdoc
deleted file mode 100644
index 9d7ac6b..0000000
--- a/doc/src/legal/commercialeditions.qdoc
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms
-** and conditions contained in a signed written agreement between you
-** and Nokia.
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page commercialedition.html
- \title Qt Commercial Edition
- \ingroup licensing
- \brief Information about the license and features of the Commercial Edition.
-
- Qt can be used to develop closed source software if you obtain a commercial
- license.
-
- If you want to develop Free or Open Source software for release using a recognized
- Open Source license, you can use the \l{Open Source Versions of Qt}.
-
- The following table is a summary of the licenses under which Qt is made available.
-
- \table
- \row \o \bold{Qt Commercial Developer License}
- \o The Qt Commercial Developer License is the appropriate version to use for the
- development of proprietary and/or commercial software where the developer does not
- wish to share or distribute any source code of the Qt libraries or otherwise comply
- with the terms of the \l{GNU Lesser General Public License (LGPL)}{GNU Lesser General
- Public License version 2.1} or \l{GNU General Public License (GPL)}{GNU GPL version
- 3.0}.
- \row \o \bold{Qt GNU LGPL v. 2.1}
- \o This version of Qt is appropriate for the development of Qt applications
- (proprietary or open source) provided you can comply with the terms and conditions
- contained in the \l{GNU Lesser General Public License (LGPL)}{GNU LGPL version 2.1}.
- \row \o \bold{Qt GNU GPL v. 3.0}
- \o This version of Qt is appropriate for the development of Qt applications where
- you wish to use such applications in combination with software subject to the terms
- of the GNU General Public License version 3.0 or where you are otherwise willing to
- comply with the terms of the
- \l{GNU General Public License (GPL)}{GNU General Public License version 3.0}.
- \endtable
-
- Please see the \l{Supported Platforms}{list of supported
- platforms} for up-to-date information about the various platforms
- and compilers that Qt supports.
-
- On the Qt Web site, you can find a
- \l{Qt Licensing Overview} and information on \l{Qt License Pricing}
- for commercial editions of Qt and other Qt-related products.
-
- \section1 Purchasing and Sales Information
-
- To purchase, please visit the \l{How to Order}{online order form}.
-
- For further information and assistance, please contact the Qt sales team
- via one of the following channels:
-
- \table
- \row \o Web: \o \bold{http://qt.nokia.com/contact}
- \row \o Phone, U.S. office (for sales in North America): \o \bold{1-408-220-9020}
- \row \o Phone, Norway office (for sales in the rest of the world): \o \bold{+47 21 60 48 00}
- \endtable
-*/
diff --git a/doc/src/network-programming/ssl.qdoc b/doc/src/network-programming/ssl.qdoc
index 0bbcd8a..ab84a29 100644
--- a/doc/src/network-programming/ssl.qdoc
+++ b/doc/src/network-programming/ssl.qdoc
@@ -58,7 +58,7 @@
system:
\code
- ./configure -openssl-linked OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto'
+ OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked
\endcode
To disable SSL support in a Qt build, configure Qt with the \c{-no-openssl}
diff --git a/doc/src/platforms/compiler-notes.qdoc b/doc/src/platforms/compiler-notes.qdoc
deleted file mode 100644
index be149a9..0000000
--- a/doc/src/platforms/compiler-notes.qdoc
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms
-** and conditions contained in a signed written agreement between you
-** and Nokia.
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page compiler-notes.html
- \ingroup platform-specific
- \title Compiler Notes
- \brief Information about the C++ compilers and tools used to build Qt.
-
- This page used to contain information about the C++ compilers and tools
- used to build Qt on various platforms. This information is now maintained
- in the \l{Platform and Compiler Notes} for each platform.
-
- Please refer to the \l{Supported Platforms} page for information about the
- status of each platform.
-
- If you have anything to add to this list or any of the platform or
- compiler-specific pages, please submit it via the \l{Bug Report Form}
- or through the \l{Public Qt Repository}.
-*/
diff --git a/doc/src/platforms/platform-notes-rtos.qdoc b/doc/src/platforms/platform-notes-rtos.qdoc
deleted file mode 100644
index dd72016..0000000
--- a/doc/src/platforms/platform-notes-rtos.qdoc
+++ /dev/null
@@ -1,368 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms
-** and conditions contained in a signed written agreement between you
-** and Nokia.
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \page platform-notes-vxworks.html
- \title Platform and Compiler Notes - VxWorks
- \contentspage Platform and Compiler Notes
- \target VxWorks
-
- \note VxWorks is a community supported platform. See the
- \l{Supported Platforms} page for more information.
-
- This page contains information about the Qt for VxWorks port. More
- information about the combinations of platforms and compilers supported
- by Qt can be found on the \l{Supported Platforms} page.
-
- \tableofcontents
-
- \section1 Supported Versions
-
- Qt has been tested on WindRiver VxWorks 6.7 in kernel mode using the
- vendor supplied GCC compiler, targetting both the x86 simulator
- (simpentium) and Power-PC devices (ppc).
- VxWorks' RTP mode is currently not supported.
-
- \section1 Limitations
-
- The VxWorks kernel has an optional POSIX compatibility layer, but this
- layer does not implement all POSIX functionality needed for a complete
- Qt port.
-
- \table
- \header \o Function \o Notes
- \row \o QProcess
- \o Not available - VxWorks has no concept of processes.
- \row \o QSharedMemory
- \o Not available - VxWorks has only a global, flat address space.
- \row \o QSystemSemaphore
- \o Not available - VxWorks has no concept of processes.
- \row \o QLibrary
- \o QLibrary is only a small stub to make it possible to build
- static plugins.
- \row \o QCoreApplication
- \o Can only be instantiated once. Qt's Q(CoreE)Application is
- tightly coupled to one address space and process, while VxWorks
- only supports one global address space and has no concept of
- processes.
- \row \o Phonon
- \o There is no standard audio backend, which could be integrated into Phonon.
- \row \o Qt3Support
- \o The Qt3Support library is not available on VxWorks.
-
- \endtable
-
- \section1 Build Instructions
-
- Qt for VxWorks needs to be \l{Cross-Compiling Qt for Embedded Linux
- Applications}{cross-compiled} on a Linux host. \c configure and \c make
- the build like you would with a standard \l{Cross-Compiling Qt for
- Embedded Linux Applications}{embedded Linux cross build}. Building the
- VxWorks simulator would be done like this:
-
- \code
- <path/to/qt/sources>/configure -xplatform unsupported/vxworks-simpentium-g++ -embedded vxworks -exceptions -no-gfx-linuxfb -no-mouse-linuxtp -no-mouse-pc -no-kbd-tty
- make
- \endcode
-
- \list
- \o \c{-xplatform unsupported/qws/vxworks-simpentium-g++} - selects the x86 simulator mkspec for VxWorks
- \o \c{-embedded vxworks} - builds the embedded version of Qt and sets the architecture to VxWorks
- \o \c{-exceptions} - see General Notes below
- \o \c{-no-gfx-linuxfb}, \c{-no-mouse-linuxtp}, \c{-no-mouse-pc} and \c{-no-kbd-tty} are Linux specific and won't work on VxWorks
- \endlist
-
- \section1 General Notes
-
- \list
-
- \o Configuring with \c{-exceptions} is necessary, because the VxWorks
- 6.7 g++ headers require exceptions to be enabled when compiling C++
- code.
-
- \o Configure's \c{-xplatform} can be any of
- \c{unsupported/vxworks-(simpentium|ppc)-(g++|dcc)}, but \c{dcc}
- (WindRiver DIAB compiler) has not yet tested been tested with Qt 4.6 and
- VxWorks 6.7.
-
- \o Building shared libraries with \c{-shared} (the default) doesn't
- really build shared libraries, like e.g. on Linux, since these are not
- supported by VxWorks. Instead, qmake will created partially linked
- objects, that can be loaded at runtime with \c{ld}.
-
- \o Creating static builds with \c{-static} is fully supported.
-
- \o "Munching" (generating constructors/destructors for static C++
- objects) is done automatically by a special qmake extension (for both
- shared libraries and executables)
-
- \o VxWorks does not have a file system layer, but the low level storage
- drivers have to supply a file system like interface to the applications.
- Since each driver implements a different subset of the functionality
- supported by this interface, Qt's file system auto-tests show wildly
- differing results running on different "file systems". The best results
- can be achieved when running on a (writable) NFS mount, since that
- provides the most Unix-ish interface. The worst results come from the
- FTP file system driver, which may crash when accessed by a
- \c{QFileInfo}.
-
- \o Keep in mind that VxWorks doesn't call your \c{main()} function with
- the standard \c{argc}/\c{argv} parameters. So either add a special
- \c{vxmain()} function or use a tool like \c{callmain} to translate
- VxWorks' commandline arguments to an \c{argc}/\c{argv} array.
-
- \o Some example will fail to build, due to some missing dependencies
- (e.g. shared memory) - this will be fixed in a later release.
-
- \endlist
-*/
-
-/*!
- \page platform-notes-qnx.html
- \title Platform and Compiler Notes - QNX
- \contentspage Platform and Compiler Notes
- \target QNX
-
- \note QNX is a community supported platform. See the
- \l{Supported Platforms} page for more information.
-
- This page contains information about the Qt for QNX port. More
- information about the combinations of platforms and compilers supported
- by Qt can be found on the \l{Supported Platforms} page.
-
- Note that Qt for QNX is currently based on \l{Qt for Embedded Linux}, which
- contains its own windowing system. Mixing QNX's Photon environment with
- Qt for QNX is currently not possible. Building Qt for QNX with Photon's
- X11 embedded server is not recommended due to missing support for X11 extensions,
- resulting in poor rendering quality.
-
- Qt for QNX contains screen and input drivers based on QNX's
- \c devi-hid and \c io-display. For more information, check the class documentation
- for QQnxScreen, QWSQnxKeyboardHandler and QQnxMouseHandler. See the
- \l{Porting Qt for Embedded Linux to a New Architecture} document for information
- on how to add custom screen or input drivers.
-
- \tableofcontents
-
- \section1 Supported Versions
-
- Qt has been tested on QNX 6.5 on i386, ARM/ARM-v7 and PowerPC targets with QNX's default
- gcc compiler.
-
- \section1 Limitations
-
- Some of Qt's functionality is currently not available on QNX:
-
- \table
- \header \o Function \o Notes
- \row \o Phonon
- \o There is no standard audio backend, which could be integrated into Phonon.
- \row \o QtMultimedia
- \o There is no standard backend, which could be integrated into QtMultimedia.
- \row \o QtDBus
- \o The the QtDBus library is not available on QNX.
- \row \o Qt3Support
- \o The Qt3Support library is not available on QNX.
- \endtable
-
- \section1 Build Instructions
-
- Qt for QNX needs to be built either on a QNX system, or \l{Cross-Compiling Qt
- for Embedded Linux Applications}{cross-compiled} on a Linux host. In either
- case, The QNX Software Development Platform must be installed.
-
- Example configure line for cross-compiling Qt for QNX on a Linux host for an
- i386 QNX target:
-
- \code
- configure -xplatform unsupported/qws/qnx-i386-g++ -embedded x86 -no-gfx-linuxfb -no-mouse-linuxtp -no-kbd-tty -no-qt3support -qt-mouse-qnx -qt-kbd-qnx -qt-gfx-qnx -depths 16,24,32,generic -no-exceptions
- \endcode
-
- \list
- \o \c{-xplatform unsupported/qws/qnx-i386-g++} - selects the i386-g++ mkspec for QNX
- \o \c{-embedded x86} - builds the embedded version of Qt and sets the architecture to i386
- \o \c{-no-gfx-linuxfb}, \c{-no-mouse-linuxtp} and \c{-no-kbd-tty} are Linux specific and won't work on QNX
- \o \c{-no-qt3support} - required since the Qt3 support classes are not supported on QNX
- \o \c{-no-exceptions} - reduces the size of the library by disabling exception support
- \o \c{-qt-mouse-qnx} - enables the \c{devi-hid} based mouse driver
- \o \c{-qt-kbd-qnx} - enables the \c{devi-hid} based keyboard driver
- \o \c{-qt-gfx-qnx} - enables the \c{io-graphics} based screen driver
- \o \c{-depths 16,24,32,generic} - enables all modes supported by the QNX screen driver
- \endlist
-
- \section1 General Notes
-
- \list
- \o To enable the QNX screen and input drivers, \c{io-display} needs to be
- up and running. The \c devi-hid based Qt input drivers require \c devi-hid to run
- in resource mode without Photon support. To enable a standard mouse and keyboard
- combination, run \c devi-hid as follows: \c{/usr/photon/bin/devi-hid -Pr kbd mouse}.
- Note that your current shell will not accept keyboard and mouse input anymore after
- running that command, so run it either from a script that launches a Qt application
- afterwards, or make sure to have remote login available to launch a Qt application.
- In addition, the \c QWS_DISPLAY, \c QWS_MOUSE_PROTO and \c QWS_KEYBOARD environment
- variables should all be set to \c{qnx} before running a Qt application.
-
- \o The 3rd party TIFF library currently doesn't build due to the missing \c inflateSync
- symbol from QNX's \c{libz.so.2}. Workarounds would be to manually replace QNX's libz
- with a newer version, or disable the TIFF plugin entierly by appending
- \c{QT_CONFIG += no-tiff} to \c{.qmake.cache} after configuring Qt.
-
- \o Some of the tools, examples and demos do not compile due to dependencies on classes
- that are not available on QNX.
- \endlist
-
- \section1 Platform Regressions
-
- Qt for QNX's behavior is mostly identical with \l{Qt for Embedded Linux}. However,
- some regressions were spotted in QDateTime computation around year 0 and year 1970,
- which have been tracked back to faulty time zone data on some QNX versions.
-
- QString::localeAwareCompare() only works for C locale.
-
- QTranslator's default locale-based fallback mechanism doesn't work.
-
- QSystemSemaphore: Due to POSIX semaphores limitations, the semaphore operations aren't
- automatically undone when the process terminates. This potentially may lead to unexpected
- lock-ups in applications which does use the SysV semaphores behavior.
-*/
-
-/*!
- \page platform-notes-integrity.html
- \title Platform Notes - INTEGRITY
- \contentspage Platform Notes
- \target INTEGRITY
-
- \note INTEGRITY is a community supported platform. See the
- \l{Supported Platforms} page for more information.
-
- This page contains information about the Qt for INTEGRITY port. More
- information about the combinations of platforms and compilers supported
- by Qt can be found on the \l{Supported Platforms} page.
-
- Note that Qt for INTEGRITY is currently based on \l{Qt for Embedded Linux},
- which contains its own windowing system.
-
- Qt for INTEGRITY contains experimental screen and input drivers based on the
- gh_FB Framebuffer API for graphics, a Connection-based mouse and keyboard
- support. For information about these drivers, please refer to Green Hills
- Software standard support.
-
- \tableofcontents
-
- \section1 Supported Versions
-
- Qt has been tested on INTEGRITY 10 on various PowerPC, ARM and x86 targets.
- On some platforms a native graphics FrameBuffer driver is available and has
- then been used for testing. On all other platforms, the default FrameBuffer
- VNC driver is used.
-
- \section1 Limitations
-
- Some of Qt's functionality is currently not available on INTEGRITY:
-
- \table
- \header \o Function \o Notes
- \row \o QProcess
- \o Not implemented. Volunteers welcome.
- \row \o QSharedMemory
- \o Not available - INTEGRITY doesn't support SYSV style shared memory.
- \row \o QSystemSemaphore
- \o Not available - INTEGRITY doesn't support SYSV style system semaphores.
- \row \o QWS Multi Process
- \o QT_NO_QWS_MULTIPROCESS is always on due to missing shared memory support.
- \row \o Phonon
- \o There is no standard audio backend.
- \row \o Qt3Support
- \o The Qt3Support library is not available on INTEGRITY.
- \row \o QtScript
- \o Not available - INTEGRITY's mmap() doesn't support allocating memory.
- \endtable
-
- \section1 Build Instructions
-
- Qt for INTEGRITY can be built on either a Linux or Windows (with cygwin) host.
- In both cases, a standard installation of INTEGRITY is required, with the
- addition of the FrameBuffer API.
-
- Example configure line for cross-compiling Qt for INTEGRITY for an
- ARM INTEGRITY target:
-
- \code
- ./configure --hostprefix=$PWD -embedded integrity -xplatform unsupported/qws/integrity-arm-cxarm -static -qt-kbd-integrity -qt-mouse-integrity -no-mouse-linuxtp -no-mouse-pc -no-kbd-tty -qt-gfx-integrityfb -no-qt3support -no-gfx-linuxfb -no-glib -no-openssl -no-largefile -little-endian -arch integrity -prefix / -opensource -no-feature-QWS_MULTIPROCESS -no-feature-SHAREDMEMORY -no-feature-PROCESS -no-feature-SYSTEMSEMAPHORE -no-feature-PRINTER -no-feature-QWS_QPF2 -no-libtiff -no-exceptions -no-scripttools
- \endcode
-
- \list
- \o \c{--hostprefix=$PWD} - specifies the current directory as the base source for Qt
- \o \c{-arch integrity} - sets the architecture to INTEGRITY (for atomic operations)
- \o \c{-embedded integrity} - builds the embedded version of Qt and sets the architecture to INTEGRITY
- \o \c{-xplatform unsupported/qws/integrity-arm-cxarm} - selects the arm-cxarm mkspec for INTEGRITY
- \o \c{-static} - specifies a static build of Qt
- \o \c{-no-gfx-linuxfb}, \c{-no-mouse-linuxtp}, \c{-no-mouse-pc} and \c{-no-kbd-tty} are Linux specific and won't work on INTEGRITY
- \o \c{-no-qt3support} - required since the Qt3 support classes are not supported on INTEGRITY
- \o \c{-no-exceptions} - reduces the size of the library by disabling exception support
- \o \c{-no-openssl} - disable support for OpenSSL
- \o \c(-no-libtiff} - disable support for libTIFF
- \o \c{-no-glib} - disable support for unavailable Glib
- \o \c{-no-largefile} - disable support for large (> 2TB) files
- \o \c{-no-scripttools} - disable support for QtScript tools
- \o \c{-qt-gfx-integrity} - enables the experimental gh_FB based display driver
- \o \c{-qt-mouse-integrity} - enables the experimental Connection-based mouse driver
- \o \c{-qt-kbd-integrity} - enables the experimental Connection-based keyboard driver
- \endlist
-
- The above script will generate MULTI .gpj Project files, not Makefiles. The
- main benefit of using these project files is automatic dependency checking,
- but this also provides an organization known to INTEGRITY customers.
- For Qt libraries, the top-level file is projects.gpj.
-
- \section1 General Notes
-
- \list
- \o Before you run the above configure line, you may want to modify the values
- of INTEGRITY_DIR and INTEGRITY_BSP in unsupported/qws/integrity-arm-cxarm/qmake.conf.
- If you do not do this, you will have to modify the resulting generated projects.gpj
-
- \o Compilation of native preprocessing tools (moc, rcc, uic) is not automatic. From
- a Linux shell or a MingWin shell, you can run the following command to compile these tools :
- \code
- cd src/tools/bootstrap && make && cd ../rcc && make && cd ../moc && make && cd ../uic && make && cd ../../..
- \endcode
-
- \o GIF and TIFF support are currently not enabled.
-
- \o Default .int files are generated. You may want to modify the amount of heap assigned
- to each example by modifying the HeapSize declaration in the specific example .int file.
-
- \o Some of the tools, examples and demos do not compile due to dependencies on QProcess
- or other classes that are not available on INTEGRITY.
-
- \endlist
-
- \section1 Platform Regressions
-
-*/
diff --git a/doc/src/platforms/platform-notes.qdoc b/doc/src/platforms/platform-notes.qdoc
deleted file mode 100644
index f177cd7..0000000
--- a/doc/src/platforms/platform-notes.qdoc
+++ /dev/null
@@ -1,1000 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms
-** and conditions contained in a signed written agreement between you
-** and Nokia.
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \group platform-specific
- \title Platform-Specific Documentation
- \brief Documents describing platform-specific features of Qt.
-
- These documents describe platform-specific features provided by Qt, and
- discuss issues related to particular platforms and environments.
-
- \generatelist{related}
-*/
-
-/*!
- \page platform-notes.html
- \ingroup platform-specific
- \title Platform and Compiler Notes
- \brief Information about the platforms on which Qt can be used.
-
- This page contains information about the platforms Qt is currently known
- to run on, with links to platform-specific notes, including any known bugs
- or incompatibilities.
-
- Information about the combinations of platforms and compilers
- supported by Qt can be found on the \l{Supported Platforms} page.
-
- \list
- \o \l{Platform and Compiler Notes - X11}
- \tableofcontents{1 Platform and Compiler Notes - X11}
- \o \l{Platform and Compiler Notes - Windows}
- \tableofcontents{1 Platform and Compiler Notes - Windows}
- \o \l{Platform and Compiler Notes - Mac OS X}
- \tableofcontents{1 Platform and Compiler Notes - Mac OS X}
- \o \l{Platform and Compiler Notes - Symbian}
- \tableofcontents{1 Platform and Compiler Notes - Symbian}
- \o \l{Platform and Compiler Notes - Embedded Linux}
- \tableofcontents{1 Platform and Compiler Notes - Embedded Linux}
- \o \l{Platform and Compiler Notes - Windows CE}
- \tableofcontents{1 Platform and Compiler Notes - Windows CE}
- \o \l{Platform and Compiler Notes - QNX}
- \tableofcontents{1 Platform and Compiler Notes - QNX}
- \o \l{Platform and Compiler Notes - VxWorks}
- \tableofcontents{1 Platform and Compiler Notes - VxWorks}
- \endlist
-
- \section1 General Compiler Notes
-
- \section2 Supported Features
-
- Not all compilers used to build Qt are able to compile all modules. The following table
- shows the compiler support for five modules that are not uniformly available for all
- platforms and compilers.
-
- \table
- \header \o Compiler \o{5,1} Features
- \header \o \o Concurrent \o XmlPatterns \o WebKit(*) \o CLucene \o Phonon
- \row \o g++ 3.3 \o \o \bold{X} \o \o \bold{X} \o \bold{X}
- \row \o g++ 3.4 and up \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X}
- \row \o SunCC 5.5 \o \o \o \o \bold{X} \o \bold{X}
- \row \o aCC series 3 \o \o \o \o \bold{X} \o \bold{X}
- \row \o aCC series 6 \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X}
- \row \o xlC 6 \o \o \o \o \bold{X} \o \bold{X}
- \row \o Intel CC 10 \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X}
- \row \o MSVC 2003 \o \bold{X} \o \bold{X} \o \o \bold{X} \o \bold{X}
- \row \o MSVC 2005 and up \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X}
- \endtable
-
- * WebKit is only supported as a dynamically built library. Static linkage is not supported.
-
- \section2 GCC 3.4.6 (Debian 3.4.6-5) on AMD64 (x86_64)
-
- This compiler is known to miscompile some parts of Qt when doing a
- release build. There are several workarounds:
-
- \list 1
- \o Use a debug build instead.
- \o For each miscompilation encountered, recompile the file, removing the \c{-O2} option.
- \o Add \c{-fno-gcse} to the
- \l{qmake Variable Reference#QMAKE_CXXFLAGS_RELEASE}{QMAKE_CXXFLAGS_RELEASE} qmake
- variable.
- \endlist
-
- \section2 GCC 4.0.0
-
- The released package of the compiler has some bugs that lead to
- miscompilations. We recommend using GCC 4.0.1 or later, or to use
- a recent CVS snapshot of the GCC 4.0 branch. The version of GCC
- 4.0.0 that is shipped with Mac OS X 10.4 "Tiger" is known to work
- with Qt for Mac OS X.
-
- \section2 Intel C++ Compiler
-
- Qt supports the Intel C++ compiler on both Windows and Linux.
- However, there are a few issues on Linux; see
- \l{Platform and Compiler Notes - X11#Intel C++ Compiler for Linux}{Intel C++ Compiler for Linux}
- for details.
-
- \section1 Feedback and Corrections
-
- If you have anything to add to this list or any of the platform or
- compiler-specific pages, please submit it via the \l{Bug Report Form}
- or through the \l{Public Qt Repository}.
-*/
-
-/*!
- \page platform-notes-x11.html
- \title Platform and Compiler Notes - X11
- \contentspage Platform and Compiler Notes
-
- This page contains information about the X11 platforms Qt is currently
- known to run on, with links to platform-specific notes. More information
- about the combinations of platforms and compilers supported by Qt can be
- found on the \l{Supported Platforms} page.
-
- \tableofcontents
-
- \target AIX
- \section1 AIX - 5.2
-
- Qt has been tested on AIX 5.2, using the xlC compiler.
-
- \table
- \header \o Compiler \o Notes
- \row \o xlC
- \o If Qt is built correctly but all symbols are reported to be missing
- when you link an application, your makeC++SharedLib script might be out
- of date. Make sure you have the latest version from the
- \l{http://www-306.ibm.com/software/awdtools/vacpp/support/}{IBM website}.
- \row \o GCC
- \o We have tested earlier versions of Qt 4 successfully with GCC version
- 3.3 and above. Some versions of GCC may fail to link Qt with a "TOC overflow"
- message.
- Fix this by upgrading to the latest maintenance release of the dynamic
- linker. On AIX this is bos.rte.bind_cmds.4.1.5.3 or later.
- Some versions of GCC may fail to build Qt with STL and large-file support
- enabled, due to
- \l{http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9551}{a bug in GCC}.
- Fix this by upgrading to the latest maintenance release of the compiler.
- It is also possible to work around this problem by running configure with
- either \c{-no-stl} or \c{-no-largefile}.
- \endtable
-
- \section2 IBM xlC
-
- The makeC++SharedLib utility must be in your PATH and be up to date to
- build shared libraries. From IBM's
- \l{http://www.redbooks.ibm.com/abstracts/sg245674.html}{C and C++ Application Development on AIX}
- Redbook:
-
- \list
- \o "The second step is to use the makeC++SharedLib command to create the
- shared object. The command has many optional arguments, but in its
- simplest form, can be used as follows:"
- \snippet doc/src/snippets/code/doc_src_compiler-notes.qdoc 1
- \o "The full path name to the command is not required; however, to avoid
- this, you will have to add the directory in which it is located to
- your PATH environment variable. The command is located in the
- /usr/vacpp/bin directory with the VisualAge C++ Professional for AIX,
- Version 5 compiler."
- \endlist
-
- \section2 VisualAge C++ for AIX, Version 6.0
-
- Make sure you have the
- \l{http://www-1.ibm.com/support/search.wss?rs=32&amp;tc=SSEP5D&amp;dc=D400}{latest upgrades}
- installed.
-
- \target FreeBSD
- \section1 FreeBSD - 6.0-RELEASE
-
- \note FreeBSD is a community supported platform. See the
- \l{Supported Platforms} page for more information.
-
- The system compiler on FreeBSD 4.x is GCC 2.95.4, which is not
- officially supported by Qt 4. We develop using and recommend
- ports/lang/gcc34. You will need to run configure with the
- \c{-platform freebsd-g++34} arguments. Optionally, you may use
- ports/lang/icc.
-
- The system compiler on FreeBSD 5.x and 6.x is GCC 3.4.4, which should be
- sufficient to build Qt. You do not need to add any special arguments when
- running configure. Optionally, you may use ports/lang/icc.
-
- Note that we do not actively test FreeBSD 4.x and 5.x. Our developers
- migrated to 6.x after the Qt 4 launch. FreeBSD-CURRENT is not supported.
-
- \section1 HP-UX
-
- Qt supports HP-UX on both PA-RISC and the Itanium (IA64) architectures.
-
- \section2 PA-RISC - B.11.11 or later
-
- You can configure Qt for aCC in 32 and 64 bit mode (hpux-acc-64 or
- hpux-acc-32), or GCC in 32 bit mode (hpux-g++). The default platform is
- hpux-acc-32. The minimum required version for aCC (HP ANSI C++) on PA-RISC
- is A.03.57. The supported GCC compiler is GCC 3.4.3.
-
- \section2 Itanium - B.11.23 or later
-
- You can configure Qt for aCC in 32 and 64 bit mode (hpuxi-acc-64 or
- hpuxi-acc-32). GCC is currently unsupported. The default platform is
- hpuxi-acc-64. The minimum required version for aCC (HP ANSI C++) on
- Itanium is A.06.12.
-
- \section2 HP ANSI C++ (aCC)
-
- The hpux-acc-32 and hpux-acc-64 platforms are tested with aCC A.03.57. The
- hpuxi-acc-32 and hpuxi-acc-64 platforms are tested with aCC A.06.10.
-
- \section2 GCC
-
- The hpux-g++ platform is tested with GCC 3.4.4.
-
- \section2 OpenGL Support
-
- Qt's \l{QtOpenGL}{OpenGL} module requires GLX 1.3 or later to be installed.
- This is available for HP-UX 11i - see the
- \l{http://docs.hp.com/en/5992-2331/ch04s02.html}{Graphics and Technical Computing Software}
- section of the release notes for more information.
-
- \target IRIX
- \section1 IRIX - 6.5.x
-
- \bold{IRIX is an unsupported platform. See the \l{Supported Platforms} page
- and Qt's Software's online \l{Platform Support Policy} page for details.}
-
- Unpackaging and IRIX tar:
- Because of long filenames some files will be cut off incorrectly with IRIX
- tar. Please use GNU tar to unpack Qt packages.
-
- \section2 MIPSpro
-
- Qt 4.4.x requires MIPSpro version 7.4.2m.
-
- Note that MIPSpro version 7.4.4m is currently not supported, since it has
- introduced a number of problems that have not yet been resolved.
- We recommend using 7.4.2m for Qt development. However, please note the
- unsupported status of this platform.
-
- \section1 Linux
-
- There are no known problems with using Qt on production versions of
- Linux/x86, Linux/ppc, Linux/amd64 and Linux/ia64 (including Altix(R)).
-
- For the GCC compiler, please also see the relevant
- \l{Platform and Compiler Notes#General Compiler Notes}{General Compiler Notes}.
-
- \section2 Installation problems
-
- See also the \l{Installation FAQ}.
-
- If you experience problems when installing new open source versions of Qt
- versions, try to use the open source Qt archives (e.g., RPM)
- provided by your Linux distribution. If you need to install the source (.tgz)
- archive, be aware that you will probably end up with two different
- versions of the Qt library installed on your system, which will probably
- lead to link errors, like this:
- \snippet doc/src/snippets/code/doc_src_platform-notes.qdoc 0
- Fix this by removing the old version of the library.
-
- If you have problems installing open source versions of Qt
- provided by your Linux distribution (e.g., RPM), please consult the
- maintainers of the distribution, not us.
-
- Some RPM versions have problems installing some of the Qt RPM archives
- where installation stops with an error message warning about a
- "Failed Dependency". Use the \c{--nodeps} option to \c rpm to workaround
- this problem.
-
- \section2 Intel C++ Compiler for Linux
-
- Nokia currently tests the following compilers:
-
- \list
-
- \o Intel(R) C++ Compiler for applications running on IA-32,
- Version 10.1 Build 20080602 Package ID: l_cc_p_10.1.017
-
- \o Intel(R) C++ Compiler for applications running on Intel(R) 64,
- Version 10.1 Build 20080602 Package ID: l_cc_p_10.1.017
-
- \endlist
-
- We do not currently test the IA-64 (Itanium) compiler.
-
- \section2 Known Issues with Intel C++ Compiler for Linux
-
- \list
-
- \o Precompiled header support does not work in version 10.0.025
- and older. For these compilers, you should configure Qt with
- -no-pch. Precompiled header support works properly in version
- 10.0.026 and later.
- \o Version 10.0.026 for Intel 64 is known to miscompile qmake when
- building in release mode. For now, configure Qt with
- -debug. Version 10.1.008 and later can compile qmake in release
- mode.
- \o Versions 10.1.008 to 10.1.015 for both IA-32 and Intel 64 are
- known crash with "(0): internal error: 0_47021" when compiling
- QtXmlPatterns, QtWebKit, and Designer in release mode. Version
- 10.1.017 compiles these modules correctly in release mode.
- \endlist
-
- \target Solaris
- \section1 Solaris - 9 or later
-
- \section2 Unpackaging and Solaris tar
-
- On some Solaris systems, both Solaris tar and GNU tar have been reported
- to truncate long filenames. We recommend using star instead
- (http://star.berlios.de).
-
- Please note that WebKit is not supported for Solaris, regardless of
- which compiler is used.
-
- \section2 CC
-
- See the notes for \l{Forte Developer / Sun Studio}.
-
- \section2 GCC
-
- Please use GCC 3.4.2 or later.
-
- Do not use GCC with Sun's assembler/linker, this will result in link-time
- errors in shared libraries. Use GNU binutils instead.
-
- GCC 3.2.* is known to miscompile Qt due to an optimizer bug that will
- cause the resulting binaries to hang.
-
- \section2 Forte Developer / Sun Studio
-
- Qt is tested using Sun Studio 12 (Sun CC 5.9). Go to
- \l{Sun Studio Patches} page on Sun's Web site to download
- the latest patches for your Sun compiler.
-
- Please note that Qt 4.6 is stricter in its STL requirements and
- that the default STL implementation used by Sun CC does not pass
- those requirements. This does not affect binary compatibility and
- you can continue to use STL in your own code, but Qt's
- STL-compatibility functions will be disabled.
-
- Sun CC ships with a secondary STL implementation (called stlport4)
- which is standards-compliant and can be used by Qt. You can enable
- it by passing the -library=stlport4 option to the compiler. Note
- that this does not affect Qt's binary compatibility, but it may
- affect that of other libraries and programs that use STL.
-
- \section2 Sun WorkShop 5.0
-
- Sun WorkShop 5.0 is not supported with Qt 4.
-*/
-
-/*!
- \page platform-notes-windows.html
- \title Platform and Compiler Notes - Windows
- \contentspage Platform and Compiler Notes
-
- This page contains information about the Windows platforms Qt is currently
- known to run on, with links to platform-specific notes. More information
- about the combinations of platforms and compilers supported by Qt can be
- found on the \l{Supported Platforms} page.
-
- \tableofcontents
-
- \section1 Windows Vista
-
- At the time Qt %VERSION% was released, there were no known Vista-specific issues.
-
- \target Windows NT
- \section1 Windows XP, Windows 2000 and Windows NT
-
- \section2 Installation location
-
- Installing Qt into a directory with spaces, e.g. C:\\Program Files, may
- cause linker errors like the following:
- \snippet doc/src/snippets/code/doc_src_platform-notes.qdoc 2
-
- Install Qt into a subdirectory without spaces to avoid this problem.
-
- \section2 Possible GL conflict
-
- There is a known issue with running Microsoft NetMeeting, Lotus SameTime
- and other applications that require screen grabbing while direct
- rendering is enabled. Other GL-applications may not work as expected,
- unless direct rendering is disabled.
-
- \section2 GCC (MinGW)
-
- We have tested Qt with this compiler on Windows XP.
- The minimal version of MinGW supported is GCC 4.4.
-
- \note For users of the MinGW binary package: This package is now
- based on MinGW 4.4. The installer no longer offers to download
- MinGW for you, but rather offers to use a version of MinGW that
- you already have installed on your machine. You just tell the
- installer which directory MinGW is installed in. If you don't
- already have MinGW 4.4 installed, you can download a .zip archive
- from our \l{ftp://ftp.trolltech.com/misc/MinGW-gcc440_1.zip}{FTP
- site}. This archive provides fixes to MinGW and support for
- missing API, See the _patches directory in the archive for
- details.
-
- \note A MinGW installation is only needed to build against the
- binary package, not to run the pre-compiled binaries that are in
- the package.
-
- \section2 Intel C++ Compiler (Windows, Altix)
-
- Qt 4 has been tested successfully with:
-
- \list
- \o Windows - Intel(R) C++ Compiler for 32-bit applications,
- Version 9.1.040.
- \o Altix - Intel(R) C++ Itanium(R) Compiler for Itanium(R)-based
- applications Version 8.1 Build 20050406 Package ID: l_cc_pc_8.1.030
- \endlist
-
- We currently only test the Intel compiler on 32-bit Windows versions.
-
- \section2 Visual Studio (Windows)
-
- We do most of our Windows development on Windows XP, using Microsoft
- Visual Studio .NET 2005 and Visual Studio 2008 (both the 32- and 64-bit
- versions).
-
- Qt works with the Standard Edition, the Professional Edition and Team
- System Edition of Visual Studio 2005.
-
- In order to use Qt with the Visual Studio 2005/2008 Express Edition you need
- to download and install the platform SDK. Due to limitations in the
- Express Edition it is not possible for us to install the Qt Visual
- Studio Integration. You will need to use our command line tools to
- build Qt applications with this edition.
-
- The Visual C++ Linker doesn't understand filenames with spaces (as in
- \c{C:\Program files\Qt\}) so you will have to move it to another place,
- or explicitly set the path yourself; for example:
-
- \snippet doc/src/snippets/code/doc_src_compiler-notes.qdoc 0
-
- If you are experiencing strange problems with using special flags that
- modify the alignment of structure and union members (such as \c{/Zp2})
- then you will need to recompile Qt with the flags set for the
- application as well.
-
- If you're using Visual Studio .NET (2002) Standard Edition, you should be
- using the Qt binary package provided, and not the source package.
- As the Standard Edition does not optimize compiled code, your compiled
- version of Qt would perform suboptimally with respect to speed.
-
- With Visual Studio 2005 Service Pack 1 a bug was introduced which
- causes Qt not to compile, this has been fixed with a hotfix available
- from Microsoft. See this
- \l{http://qt.nokia.com/developer/faqs/faq.2006-12-18.3281869860}{Knowledge Base entry}
- for more information.
-
- There currently is a problem when compiling Qt with Visual Studio 2010 for 64-bit.
- Its optimizer causes trouble and generates code that crashes for the release builds.
- To avoid the crashes, You need to apply the hotfix in the following article
- http://support.microsoft.com/kb/2280741.
-*/
-
-/*!
- \page platform-notes-mac.html
- \title Platform and Compiler Notes - Mac OS X
- \contentspage Platform and Compiler Notes
-
- This page contains information about the Mac OS X versions Qt is currently
- known to run on, with links to platform-specific notes. More information
- about the combinations of platforms and compilers supported by Qt can be
- found on the \l{Supported Platforms} page.
-
- \tableofcontents
-
- \section1 General Information
-
- Qt 4.6 applications can only be deployed on Mac OS X 10.4 (Tiger)
- and higher.
-
- Qt 4.4 and Qt 4.5 development is only supported on Mac OS X 10.4 and up.
- Applications built against these version of Qt can be deployed on Mac OS X
- 10.3, but cannot be developed on that version of the operating system due
- to compiler issues.
-
- Qt 4.3 has been tested to run on Mac OS X 10.3.9 and up. See notes on
- the binary package for more information.
-
- Qt 4.1 has been tested to run on Mac OS X 10.2.8 and up. Qt 4.1.4 is the
- last release to work with Mac OS X 10.2.
-
- \section2 Required GCC version
-
- Apple's GCC 4 that is shipped with the Xcode Tools for both Mac OS X 10.4
- and 10.5 will compile Qt. There is preliminary support for GCC 4.2 which
- is included with Xcode Tools 3.1+ (configurable with
- \c{-platform macx-g++42}).
-
- Please use the latest GCC 3.3 from Apple or a later version of GCC 3.
- The GCC 3.3 that is provided with Xcode 1.5 is known to generate bad code.
- Use the November 2004 GCC 3.3 updater \l{http://connect.apple.com}{available from Apple}.
-
- \section2 Binary Package
-
- The binary package requires that you have your .qt-license file in your
- home directory. Installer.app cannot complete without a valid .qt-license
- file. Evaluation users of Qt will have information about how to create
- this file in the email they receive.
-
- The binary package was built on Mac OS X 10.4 with Xcode Tools 2.1
- (GCC 4.0.0) for Qt 4.1.0, Xcode Tools 2.2 (GCC 4.0.1) for Qt 4.1.1-4.1.4
- and Xcode Tools 2.3 for 4.2.0. It will only link executables built
- against 10.4 (or a 10.4 SDK). You should be able to run applications
- linked against these frameworks on Mac OS X 10.3.9 and Mac OS X 10.4+.
- If you require a different configuration, you will have to use the
- source package and build with GCC 3.3.
-
- \section2 Mac OS X on Intel hardware
-
- Qt 4 fully supports both the Intel and PowerPC architectures on the Mac.
- As of Qt 4.1 it is possible to support the Intel architecture by
- creating Universal Binaries with qmake. As of Qt 4.1 it is possible to
- build Qt as a set of universal binaries and frameworks from configure by
- adding these extra flags:
-
- \snippet doc/src/snippets/code/doc_src_platform-notes.qdoc 3
-
- If you are building on Intel hardware you can omit the sdk parameter, but
- PowerPC hardware requires it.
-
- You can also generate universal binaries using qmake. Simply add these
- lines to your .pro file:
-
- \snippet doc/src/snippets/code/doc_src_platform-notes.qdoc 4
-
- \section2 Build Issues
-
- If Qt does not build upon executing make, and fails with an error message
- such as
-
- \snippet doc/src/snippets/code/doc_src_platform-notes.qdoc 5
-
- this could be an indication you have upgraded your version of Mac OS X
- (e.g. 10.3 to 10.4), without upgrading your Developer Tools (Xcode Tools).
- These must match in order to successfully compile files.
-
- Please be sure to upgrade both simultaneously. If problems still occur,
- contact support.
-
- \section2 Fink
-
- If you have installed the Qt for X11 package from \l{Fink},
- it will set the QMAKESPEC environment variable to darwin-g++. This will
- cause problems when you build the Qt for Mac OS X package. To fix this, simply
- unset your QMAKESPEC or set it to macx-g++ before you run configure.
- You need to have a fresh Qt distribution (make confclean).
-
- \section2 MySQL and Mac OS X
-
- There seems to be a issue when both -prebind and -multi_module are
- defined when linking static C libraries into dynamic library. If you
- get the following error message when linking Qt:
-
- \snippet doc/src/snippets/code/doc_src_platform-notes.qdoc 6
-
- re-link Qt using -single_module. This is only a problem when building the
- MySQL driver into Qt. It does not affect plugins or static builds.
-
- \section2 Qt and Precompiled Headers (PCH)
-
- Starting with Qt 3.3.0 it is possible to use precompiled headers. They
- are not enabled by default as it appears that some versions of Apple's
- GCC and make have problems with this feature. If you want to use
- precompiled headers when building the Qt source package, specify the
- -pch option to configure. If, while using precompiled headers, you
- encounter an internal compile error, try removing the -include header
- statement from the compile line and trying again. If this solves the
- problem, it probably is a good idea to turn off precompiled headers.
- Also, consider filing a bug report with Apple so that they can
- improve support for this feature.
-
- \section2 Attributes
- The following lists a set of useful attributes that can be used to tweak applications
- on Mac:
-
- Qt::AA_MacPluginApplication, Qt::AA_DontUseNativeMenuBar, Qt::AA_MacDontSwapCtrlAndMeta
- Qt::WA_MacNoClickThrough, Qt::WA_MacOpaqueSizeGrip, Qt::WA_MacShowFocusRect,
- Qt::WA_MacNormalSize, Qt::WA_MacSmallSize, Qt::WA_MacMiniSize, Qt::WA_MacVariableSize,
- Qt::WA_MacBrushedMetal, Qt::WA_MacAlwaysShowToolWindow, Qt::WA_MacFrameworkScaled,
- Qt::WA_MacNoShadow, Qt::Sheet, Qt::Drawer, Qt::MacWindowToolBarButtonHint,
- QMainWindow::unifiedTitleAndToolBarOnMac, WA_MacNoCocoaChildWindow
-
- \section2 Mixing Qt with native code
- Two classes are awailable for either adding native Cocoa views/controls
- inside a Qt application, or the opposite, embedding Qt into a native
- Cocoa application:
-
- QMacCocoaViewContainer, QMacNativeWidget
-
- \section3 Using native Cocoa panels
- Launching native Cocoa panels from within a Qt application can sometimes
- be problematic. The reason is that Qt's event dispatcher is more flexible
- than what Cocoa offers, and lets the user spin the event dispatcher (and
- running QEventLoop::exec) without having to think about whether or not modal
- dialogs are showing on screen (which is a difference to Cocoa). Therefore
- we need to do special bookkeeping in Qt to handle this correctly, which
- unfortunately make mixing in native panels hard. The best way at the moment
- to do this, is to follow the pattern below, where we post the call to the
- function with native code rather than calling it directly. Then we know that
- Qt has cleanly updated any pending event loop recursions before the native
- panel is shown:
-
- \code
- #include <QtGui>
-
- class NativeProxyObject : public QObject
- {
- Q_OBJECT
- public slots:
- void execNativeDialogLater()
- {
- QMetaObject::invokeMethod(this, "execNativeDialogNow", Qt::QueuedConnection);
- }
-
- void execNativeDialogNow()
- {
- NSRunAlertPanel(@"A Native dialog", @"", @"OK", @"", @"");
- }
-
- };
-
- #include "main.moc"
-
- int main(int argc, char **argv){
- QApplication app(argc, argv);
- NativeProxyObject proxy;
- QPushButton button("Show native dialog");
- QObject::connect(&button, SIGNAL(clicked()), &proxy, SLOT(execNativeDialogLater()));
- button.show();
- return app.exec();
- }
-
- \endcode
-*/
-
-/*!
- \page platform-notes-windows-ce.html
- \title Platform and Compiler Notes - Windows CE
- \contentspage Platform and Compiler Notes
-
- This page contains information about the Windows CE and Windows Mobile
- platforms Qt is currently known to run on, with links to platform-specific
- notes. More information about the combinations of platforms and compilers
- supported by Qt can be found on the \l{Supported Platforms} page.
-*/
-
-/*!
- \page platform-notes-symbian.html
- \title Platform and Compiler Notes - Symbian
- \contentspage Platform and Compiler Notes
- \ingroup platform-specific
- \brief Information about the state of support for the Symbian platform.
-
- This page describes implementation details regarding the Qt for Symbian port. To get
- started with application development for Symbian devices, read the \l
- {http://doc.qt.nokia.com/qtcreator/creator-developing-symbian.html}
- {Connecting Symbian Devices} document.
-
- \section1 Source Compatibility
-
- Qt for Symbian provides the same level of source compatibility guarantee as
- given for other platforms. That is, a program which compiles against a given
- version of Qt for Symbian will also compile against all future versions of the
- same major release.
-
- \section1 Binary Compatibility
-
- As with every supported platform, Qt strives to maintain application
- behavior and binary compatibility throughout the lifetime of the Qt 4.x
- major version and on the \l {Supported Devices}{Symbian devices that support Qt}.
- Symbian support in Qt SDK and Ovi Store were introduced with Qt 4.6. Each Qt
- release contains bug fixes that might change the API behavior and thereby
- affect application compatibility.
-
- In addition, Symbian devices have different input methods, such as different
- keyboard styles or touch input, screen sizes, memory, and CPU and GPU
- capabilities. Therefore, you must test applications on specific target
- devices to ensure compatibility. In order to build applications that are
- supported also on earlier devices, select the target in Qt SDK carefully.
- Generally, an earlier target (such as S60 5th Edition) is supported on a
- larger number of devices than a later target (such as Symbian Belle).
-
- \target Supported Devices
- \section1 Supported Devices
-
- The \l {http://developer.qt.nokia.com/wiki/support_for_Symbian}{Support for Symbian} document
- details the Qt support on different Symbian devices.
-
- The \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian#Supported_Devices}
- {Nokia Smart Installer for Symbian} document lists how Qt is supported on
- different Symbian devices through Smart Installer.
-
- Qt versions are supported by Symbian devices as follows:
- \list
- \o Qt 4.6 is supported by S60 3rd Edition feature pack 1 and newer devices
- through \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian}{Smart Installer}.
- \o Qt 4.7.3 is supported by S60 5th Edition and newer devices
- through \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian}{Smart Installer}.
- \endlist
-
- Symbian devices have a pre-installed Qt support as follows:
- \list
- \o Symbian Anna: Qt 4.7.3 in C: drive. Note that Qt 4.7.4 is supported in Symbian Anna
- through \l {http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian}{Smart Installer}.
- \o Symbian Belle: Qt 4.7.4 in device firmware (ROM).
- \endlist
-
-
- \section1 Functionality Support
-
- The following technologies and classes are not supported:
- \list
- \o QtConcurrent
- \o QtDBus
- \o \l {http://doc.qt.nokia.com/4.8/printing.html}{Printing support}
- \o Qt3Support
- \endlist
-
- The following technologies have limited support:
-
-
- \table
- \header \o Module
- \o Note
- \row \o QtSql
- \o The supported drivers are SQLite and QSYMSQL.
- \row \o QtMultimedia
- \o For support details see \l {Multimedia Support} section.
- \row \o QtGui
- \o QtGui's widgets are deprecated (i.e. they are available but not
- recommended to use) in the Symbian port. It is recommended to use \l
- {http://doc.qt.nokia.com/qt-components-symbian-1.1/symbian-components-functional.html}
- {Qt Quick Components for Symbian} instead, because they provide
- better look and feel on Symbian devices.
-
- Moreover, the following classes of QtGui \bold {should not
- be used} in a Symbian application:
-
- \list
- \o QFileDialog with the \c DontUseNativeDialog option
- \o QColorDialog with the \c DontUseNativeDialog option
- \o QFontDialog
- \o QWizard
- \o QCalendarWidget
- \o QDateTimeEdit
- \o QMdiArea
- \o QDockWidget
- \o QMdiSubWindow
- \o QPrintPreviewWidget
- \endlist
-
- QScrollArea: The scrolling and focus handling of QScrollArea's all
- scrollable widgets, for example QListView, differs from native Avkon
- list widgets' one. Native Avkon scrollable components support
- touch-gesture-based scrolling by dragging and flicking the UI
- component but this functionality is not implemented in Qt widgets.
- Scrolling by dragging and flicking works also in Qt Quick Components
- that implements the \l
- {http://www.developer.nokia.com/Resources/Library/Symbian_Design_Guidelines/}
- {Symbian design guidelines}.
-
- \endtable
-
- \section1 Compiler Notes
-
- For the application development the necessary compiler toolchain is included in \l
- {http://qt.nokia.com/downloads}{Qt SDK}. For instructions compiling Qt
- itself see the \l
- {http://doc.qt.nokia.com/stable/install-symbian.html}
- {Installing Qt for the Symbian platform} document.
-
- \section1 Known Issues
-
- Known issues can be found by visiting the
- \l{http://qt.gitorious.org/qt/pages/QtKnownIssues}{wiki page} with an
- up-to-date list of known issues, and the list of bugs can be found by
- \l{http://bugreports.qt.nokia.com/browse/QTBUG/component/19171}{browsing} the
- S60 component in Qt's public task tracker, located at
- \l{http://bugreports.qt.nokia.com/}{http://bugreports.qt.nokia.com/}.
-
- For information about mixing exceptions with Symbian leaves, see
- \l{Exception Safety with Symbian}.
-
- \section1 Required Capabilities
-
- The Qt libraries are typically signed with \c{All -TCB} capabilites but
- that does not mean your Qt application needs to be signed with the same
- capabilities to function properly. The capabilities your application needs
- to function properly depends on which parts of Qt you use.
- In a Qt application Symbian capabilities are defined in the
- \l {http://doc.qt.nokia.com/4.8/qmake-variable-reference.html#target-capability}
- {TARGET.CAPABILITY} qmake variable in the project file.
- Here is an overview for which capabilities may be needed when using different modules:
-
- \table
- \header \o Module
- \o Required Symbian Capability
- \row \o QtCore
- \o \c PowerMgmt if QProcess::kill(...) or QProcess::terminate(...) is called.
- \row \o QtCore
- \o \c AllFiles when \l{http://wiki.forum.nokia.com/index.php/Capabilities_%28Symbian_Signed%29/AllFiles_Capability}{accessing specific areas.}
- \row \o QtDeclarative
- \o \c NetworkServices is automatically added for this module if no capabilities are explicitly specified.
- \row \o QtNetwork
- \o \c NetworkServices is automatically added for this module if no capabilities are explicitly specified.
- \row \o QtNetwork
- \o \c ReadUserData is required to include all the phone's SSL certificates in the system's default CA certificate list
- (for example those added by the user or stored in the SIM card),
- without this capability only the CA certs built into the phone are used.
- \row \o QtMultimedia
- \o \c UserEnvironment if QAudioInput is used.
- \row \o QtWebKit
- \o \c NetworkServices is automatically added for this module if no capabilities are explicitly specified.
- \endtable
-
- \note Some modules rely on other modules. E.g. QtWebkit and QtDeclarative
- depend on QtNetwork and therefore any application that
- depends on these modules is also likely to need \c NetworkServices capability.
-
- For more information see the documentation of the individual Qt classes. If
- a class does not mention Symbian capabilities, it requires none.
-
- \target Multimedia Support
- \section1 Multimedia Support
-
- Qt Mobility provides a high-level API for multimedia functionality with
- \l{http://doc.qt.nokia.com/qtmobility/multimedia.html}{QtMultimediaKit}.
- In addition, Qt provides the low-level \l {QtMultimedia}{QtMultimedia}
- module that is internally used by the QtMultimediaKit. For more information
- on developing multimedia applications for Symbian devices, see
- \l {http://www.developer.nokia.com/info/sw.nokia.com/id/4abf12e7-72d8-45ef-b1a2-46184abe18ba/Guide_for_Qt_Multimedia_Developers.html}
- {Guide for Qt Multimedia Developers}.
-
- Moreover, there is a third multimedia-related module called Phonon. Qt
- provides two backends for the Phonon module in Symbian: \i MMF and \i Helix.
-
- Note that Phonon is a legacy module and the QtMultimediaKit module is
- replacing Phonon in Qt 5. Although Phonon is supported in Symbian for
- backwards compatibility and there is no plan to remove Phonon from Symbian
- any new applications should use QtMultimediaKit in Symbian using Qt 4.7
- bundle. The QtMultimediaKit feature set is comparable to that in Phonon.
-
- The following applies to Phonon:
- \list
- \o MMF Phonon backend supports video and sound playback through Symbian's
- Multimedia Framework, MMF. Phonon's video playback may show artifacts when
- the video is moved or resized (for instance, during device orientation
- changes from portrait to landscape and vice versa). This problem is present
- on S60 5th Edition and earlier versions, as well as in Symbian Anna devices.
- \o The audio and video formats that Phonon supports depends on what support
- the platform provides for MMF. The emulator is known to have limited
- codec support.
- \o In addition, there exists a backend for the Helix framework. However, since
- it is not shipped with Qt, its availability depends on the Symbian platform
- in use. If the MFF plugin fails to load, the Helix plugin, if present on the
- device, will be loaded instead.
- \endlist
-
- \section1 Hardware Accelerated Rendering
-
- The default graphics system on Symbian Anna is OpenVG, which uses OpenVG
- hardware to accelerate \l QPainter functions. There are a few exceptions,
- where Qt will use software rendering fallback.
-
- Devices like the N8 and C7 only have 32Mb of GPU memory and limited support
- for EGL surface transparency. These devices can be identified by querying
- the\c GL_RENDERER or \c VG_RENDERER string which evaluates to \c {VideoCore III}.
- On these devices, Qt will use software rendering in cases listed below.
-
- \list
- \o Translucent windows
- \o Dialogs
- \o Popups
- \endlist
-
- \section1 OpenGL Support in Symbian
-
- Qt 4.7 introduces the \l {QtOpenGL} module. QtOpenGL is
- supported on devices which support OpenGL ES 2.0. Symbian platforms prior
- to Symbian Anna (and Symbian^3) are not supported.
-
- \l QGLWidget usage as a \l QGraphicsView viewport is not recommended on
- Symbian. The OpenVG graphics system is not able to manage OpenGL graphics
- resources. Also, a QGLWidget object is not able to release its GPU resources
- when the application goes to the background. If OpenGL functionality is
- needed, \l { http://doc.qt.nokia.com/4.7-snapshot/qapplication.html#setGraphicsSystem}
- {OpenGL graphics system} usage is recommended. If an application
- decides to use QGLWidget, then it is the application's responsibility to
- destroy and release QGLWidget and related OpenGL resources when the
- application goes to the background. Otherwise, the \l{Graphics Out Of Memory monitor}
- may decide to kill the application as it consumes GPU resources while in the
- background.
-
- \note \l QGLBuffer, \l QGLFramebufferObject, \l QGLPixelBuffer, \l
- QGLShader, and \l QGLShaderProgram are direct GPU resources and it is the
- application's responsibility to manage them.
-
- \section1 UI Performance in S60 3rd and 5th Edition Devices
-
- Qt uses the QPainter class to perform low-level painting on widgets and
- other paint devices. QPainter provides functions to draw complex shapes,
- aligned text and pixmaps. It can also do vector path clipping, coordinate
- transformations and Porter-Duff composition. If the underlying graphics
- architecture does not support all of these operations then Qt uses the
- raster graphics system for rendering.
-
- In Symbian Anna (and Symbian^3) Qt uses hardware accelerated graphics as explained above.
- This is enabled by \l
- {http://library.developer.nokia.com/index.jsp?topic=/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.html}
- {ScreenPlay Graphics Architecture} in these devices.
-
- Most of the Symbian S60 3rd and 5th Edition devices have a
- graphics architecture that does not have native support for all functions
- provided by QPainter. In these \l
- {http://library.developer.nokia.com/index.jsp?topic=/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.html}
- {non-ScreenPlay} devices Qt uses the raster
- graphics system by default that has a performance penalty compared
- to native Symbian rendering.
-
- In order to be able to perform all functions provided by QPainter, the
- raster graphics system needs to have pixel level framebuffer access. To
- make this possible in non-ScreenPlay devices Qt has to create an
- additional offscreen buffer that is the target for all Qt rendering
- operations. Qt renders the widget tree to the offscreen buffer and the
- offscreen buffer is blitted to the framebuffer via Symbian Window Server.
-
- The following table shows the rendering stacks of native Symbian and Qt in
- \l {http://library.developer.nokia.com/index.jsp?topic=/GUID-E35887BB-7E58-438C-AA27-97B2CDE7E069/GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.html}
- {non-ScreenPlay devices}.
-
- \table
- \header \o Symbian
- \o Qt
- \row \o \image symbian-rendering-stack-non-screenplay.png
- \o \image symbian-qt-rendering-stack-non-screenplay.png
- \endtable
-
- The following diagrams show a simplified sequence of drawing a pixmap in
- a non-ScreenPlay device.
-
- \table
- \header \o Symbian
- \row \o \image symbian-draw-pixmap-sequence.png
- \endtable
-
- \table
- \header \o Qt
- \row \o \image symbian-qt-draw-pixmap-sequence.png
- \endtable
-
- When compared to a native Symbian application, Qt does an additional blit
- to the offscreen buffer before drawing to the framebuffer. That is the
- performance penalty which needs to be paid to get all functionality
- provided by QPainter in non-ScreenPlay architecture.
-*/
-
-/*!
- \page platform-notes-embedded-linux.html
- \title Platform and Compiler Notes - Embedded Linux
- \contentspage Platform and Compiler Notes
-
- This page contains information about the Embedded Linux platforms Qt is
- currently known to run on, with links to platform-specific notes. More
- information about the combinations of platforms and compilers supported
- by Qt can be found on the \l{Supported Platforms} page.
-*/
diff --git a/doc/src/platforms/platform-notes.qdocinc b/doc/src/platforms/platform-notes.qdocinc
deleted file mode 100644
index e69de29..0000000
--- a/doc/src/platforms/platform-notes.qdocinc
+++ /dev/null
diff --git a/doc/src/platforms/supported-platforms.qdoc b/doc/src/platforms/supported-platforms.qdoc
index 92bf12d..55ba94b 100644
--- a/doc/src/platforms/supported-platforms.qdoc
+++ b/doc/src/platforms/supported-platforms.qdoc
@@ -49,8 +49,6 @@
- Requirements for developing with Qt on Windows.
\o \l{Installing Qt for Windows}{Installing Qt for Windows}
- Build Qt for Windows development.
- \o \l{Platform and Compiler Notes - Windows}{Platform and Compiler Notes - Windows}
- - Windows platform specific notes.
\o \l{Getting Started Guides}{Getting started} - Getting started developing for Windows
\endlist
@@ -135,8 +133,6 @@
- Software required to run Qt on Linux/X11.
\o \l{Installing Qt for X11 Platforms}{Installing Qt for X11 Platforms}
- Build Qt for Linux/X11 development.
- \o \l{Platform and Compiler Notes - X11}{Platform and Compiler Notes - X11}
- - Platform specific notes.
\o \l{Getting Started Guides}{Getting started}
\endlist
@@ -223,8 +219,6 @@
- Software required to run Qt on Mac OS X.
\o \l{Installing Qt for X11 Platforms}{Installing Qt for X11 Platforms}
- Build Qt for Mac OS X development.
- \o \l{Platform and Compiler Notes - Mac OS X}{Platform and Compiler Notes - Mac OS X}
- - Platform specific notes.
\o \l{Getting Started Guides}{Getting started}
\endlist
@@ -285,82 +279,6 @@
\note Qt also provides support for 64-bit applications on top of Cocoa APIs.
*/
/*!
- \page windowsCE-Mobile-support.html
- \title Support for Windows CE and Windows Mobile
- \brief Platform support for Windows CE and Windows Mobile.
- \ingroup platform-specific
- \ingroup platform-details
-
- \section1 Qt on Windows CE and Windows Mobile
-
- Qt is a C++ application and UI framework. You can use Qt to write
- rich and high performance applications using an intuitive API
- available for a wide range of devices. Use the code from one single
- code-base and rebuild for all \l{Supported Platforms}{supported
- Windows CE/Mobile versions as well as other other platforms}.
-
- Supporting most existing Windows CE configurations and with minimal
- hardware dependencies, Qt is easy to build even for custom hardware
- configurations. Unused components and features can even be compiled out.
-
- \section1 Getting Started on Windows CE/Mobile
-
- \list
- \o \l{Supported Platforms}{Supported Windows CE/Mobile platforms}
- - Qt supports a wide range of Windows CE/Mobile platform variants.
- \o \l{Qt for Windows CE Requirements}{Qt for Windows CE/Mobile
- Requirements} - Software required to run Qt on Windows CE/Mobile.
- \o \l{Installing Qt for Windows CE}{Installing Qt for
- Windows CE/Mobile Platforms} - Build Qt for Windows CE/Mobile
- development.
- \o \l{Platform and Compiler Notes - Windows CE}{Platform and
- Compiler Notes - Windows CE/Mobile} - Platform specific notes.
- \o \l{Getting Started Guides}{Getting started}
- \endlist
-
- \section1 Key Features for Windows CE/Mobile Development
-
- On top of all the tools and API and class libraries that Qt offers,
- Qt for Windows CE provides you with added functionality for an
- optimized embedded development environment.
-
- \section2 Native and Customizable Look and Feel
-
- Windows Mobile and Windows CE styles are available with Qt. At runtime,
- Qt applications will detect which style to use. The look and feel of
- your applications can also be easily customized in a fraction of
- the time and lines of code required for traditional UI styling with
- Qt Style Sheets.
-
- \section2 Advanced Text Layout Engine
-
- Qt for Windows CE supports TrueType and raster fonts. Qt also has
- extended Unicode support and right-to-left languages. Qt's rich text
- engine adds capabilities for complex text layouts including tables,
- path tracing and text which flows around shapes.
-
- \section2 Qt for Windows CE/Mobile also provide support for:
-
- \list
- \o Graphics Acceleration using \l{Qt for Windows CE and OpenGL
- ES}{OpenGL ES}
- \o \l{Graphics View Framework}{2D graphics canvas} capable of
- handling millions of items.
- \o \l{Qt Designer Manual}{Qt Designer} for GUI layout and
- forms builder.
- \o \l{Qt Linguist Manual}{Qt Linguist} provides internationalization
- and translation features.
- \endlist
-
- Applications created with Qt for Windows CE/Mobile can be ported to
- Symbian, Maemo and any other OS that Qt supports.
-
- Additional \l{Cross-Platform and Platform-Specific Development}
- information.
-
-*/
-
-/*!
\page embeddedLinux-support.html
\title Support for Embedded Linux
\brief Platform support for Embedded Linux.
@@ -378,6 +296,8 @@
one single code-base and rebuild for all \l{Supported Platforms}
{supported platforms}.
+ \note Qt on Embedded Linux will not exist as a separate platform for Qt 5.0.
+
\section1 Getting Started on Embedded Linux
\list
@@ -387,8 +307,6 @@
Requirements} - Software required to run Qt on Embedded Linux.
\o \l{Installing Qt for Embedded Linux}{Installing Qt for Embedded
Linux} - Build Qt for development on Embedded Linux.
- \o \l{Platform and Compiler Notes - Embedded Linux}{Platform and
- Compiler Notes - Embedded Linux} - Platform specific notes.
\o \l{Getting Started Guides}{Getting started}
\endlist
@@ -437,248 +355,6 @@
*/
/*!
- \page symbian-support.html
- \title Support for Symbian
- \brief Platform support for Symbian.
- \ingroup platform-specific
- \ingroup platform-details
-
- \section1 Qt on Symbian
-
- Qt provides support for the Symbian platform with integration
- to the S60 framework. If you are developing apps for the Symbian,
- Maemo or MeeGo platforms in most cases, you can use Qt under the
- free LGPL licensing option. Qt is cross-platform, and that means
- that you can use the code from one single code-base and rebuild
- for all \l{Supported Platforms}{supported platforms}.
-
- \section1 Getting Started on Symbian
-
- \list
- \o \l{Supported Platforms}{Supported platform}
- - Details on the Qt support for Symbian.
- \o \l{Qt for the Symbian platform Requirements}{Qt for the
- Symbian platform Requirements} - Software required to run Qt
- on Symbian.
- \o \l{Installing Qt for the Symbian platform}{Installing Qt
- for the Symbian platform} - Build Qt for Symbian development.
- \o \l{Platform and Compiler Notes - Symbian}{Platform Notes - Symbian}
- - Platform specific notes.
- \o \l{Getting Started Guides}{Getting started}
- \o \l{Qt Quick Components for Symbian 1.1}{Qt Quick Components for Symbian}
- - provides a QML component set for the Symbian^3 platform
- \endlist
-
- \section1 Key Features for Symbian Development
-
- On top of all the tools and the API and class libraries that Qt
- offers, Qt provides you with added functionality for an optimized
- Symbian development experience.
-
- \section2 Native Look and Feel
-
- Qt will detect which theme the phone is running and applies the
- style at runtime to your Qt application. The look and feel of your
- applications can also be easily customized in a fraction of the
- time and lines of code required for traditional UI styling with
- Qt Style Sheets.
-
- The \l{Qt Quick Components for Symbian 1.1}{Qt Quick Components for Symbian 1.1}
- provides a native QML component set.
-
- \section2 Graphics Features
-
- Qt for Symbian contains a powerful paint engine that provides
- features such as anti, aliasing, gradients, curves and transparency.
- It also has animation support with timelines and easing curves. It
- is already targeting future device technology by supporting hardware
- acceleration using OpenVG.
-
- \section2 Device Configurations
-
- Using Qt for Symbian all supported Symbian devices provides automatic
- support for swiching between landscape and portrait mode, different
- screen resolutions as well as touch screen and key pad input.
-
- \section2 Cross-Platform Development using Qt Creator
-
- \l{http://doc.qt.nokia.com/qtcreator-snapshot/index.html}{Qt Creator} is
- a complete Cross-platform IDE included in the Qt SDK. The IDE allows
- programmers to create, build, debug and run Qt applications accross all
- supported platforms.
-
- \section3 Licensing
-
- Qt for Symbian is available under the Qt Commercial License, the LGPL
- v. 2.1 "LGPL") and the GPL v. 3.0. Symbian currently licenses their
- software products under either the Symbian Foundation License or the
- Eclipse Public License ("EPL"). While the LGPL and the EPL are not
- compatible and may not be combined on a file-by-file basis, they may
- be used in a common environment provided that the interaction between
- Qt and Symbian is limited to: dynamic linking, inter-process
- communication and data exchange. Therefore, most Symbian developers
- can use Qt for Symbian under the LGPL.
-
- Additional \l{Cross-Platform and Platform-Specific Development}
- information.
-
-*/
-/*!
- \page maemo-support.html
- \title Support for Maemo
- \brief Platform support for Maemo.
- \ingroup platform-specific
- \ingroup platform-details
-
- \section1 Qt on Maemo
-
- Qt is a comprehensive application and UI framework for developing
- Maemo applications that can also be deployed across major
- device and desktop operating systems without rewriting the source code.
- If you are developing apps for the Symbian, Mameo platforms
- in most cases, you can use Qt under the free LGPL licensing option.
- Qt is cross-platform, and that means that you can use the code from
- one single code-base and rebuild for all \l{Supported Platforms}
- {supported platforms}. Maemo 6 is now MeeGo.
-
- \section1 Getting Started on Maemo
- \list
- \o \l{Supported Platforms}{Supported Maemo platforms}
- - Qt support for Maemo versions.
- \omit
- \o \l{Qt for Maemo Requirements}{Qt for Maemo
- Requirements} - Software required to run Qt on Maemo.
- \o \l{Installing Qt for Maemo}{Installing Qt for
- Maemo} - Build Qt for Maemo development.
- \o \l{Platform and Compiler Notes - Maemo}{Platform and
- Compiler Notes - Maemo} - Platform specific notes.
- \endomit
- \o \l{Getting Started Guides}{Getting started}
- \endlist
-
- \section1 Key Features for Maemo Development
-
- \section2 Native Look and Feel
-
- Qt will detect which theme the device is running and applies the
- style at runtime to your Qt application. Widgets are optimized
- for touch screen usage.
-
- \section2 Graphics Features
-
- Qt for Maemo provides a powerful paint engine that cotain
- features such as anti aliasing, gradients, curves and transparency.
- It also has animation support with timelines and easing curves. Qt
- for Maemo also supports hardware acceleration using ARM NEON
- and OpenGL ES 2.0.
-
- \section2 Device Configurations
-
- Applications developed with Qt for Maemo will across all
- supported Maemo devices provide automatic support for switching
- between landscape and portrait mode. They will support input methods,
- including predictive text input and on-screen keyboard. The
- applications will also have support for one finger touch events and
- gestures, and have configurable kinetic scrolling.
-
- \section2 Maemo - Linux/X11
-
- Qt supports a wide range of X11 platform variants, such as: Solaris,
- AIX, HP-UX, Maemo 5 and MeeGo. Qt for Maemo contains all Qt modules
- and features the same functionality as the Qt on X11 version.
-
- \section2 Cross-Platform Development using Qt Creator
-
- \l{http://doc.qt.nokia.com/qtcreator-snapshot/index.html}{Qt Creator} is
- a complete Cross-platform IDE included in the Qt SDK. The IDE allows
- programmers to create, build, debug and run Qt applications accross all
- supported platforms.
-
- Additional \l{Cross-Platform and Platform-Specific Development}
- information.
-*/
-
-/*!
-
- \page meego-support.html
- \title Support for MeeGo
- \brief Platform support for MeeGo.
- \ingroup platform-specific
- \ingroup platform-details
-
- \section1 Qt on MeeGo
-
- Qt is a comprehensive application and UI framework for developing
- MeeGo applications that can also be deployed across major
- device and desktop operating systems without rewriting the source code.
- If you are developing apps for the Symbian, MeeGo platforms
- in most cases, you can use Qt under the free LGPL licensing option.
- Qt is cross-platform, and that means that you can use the code from
- one single code-base and rebuild for all \l{Supported Platforms}
- {supported platforms}.
-
- \section1 Getting Started on MeeGo
-
- \list
- \o \l{Supported Platforms}{Supported MeeGo platforms}
- - Qt support for MeeGo versions.
- \omit
- \o \l{Qt for MeeGo Requirements}{Qt for MeeGo
- Requirements} - Software required to run Qt on MeeGo.
- \o \l{Installing Qt for MeeGo}{Installing Qt for
- MeeGo} - Build Qt for MeeGo development.
- \o \l{Platform and Compiler Notes - MeeGo}{Platform and
- Compiler Notes - MeeGo} - Platform specific notes.
- \endomit
- \o \l{Getting Started Guides}{Getting started}
- \endlist
-
- \section1 Key Features for MeeGo Development
-
- \section2 Native Look and Feel
-
- Qt will detect which theme the device is running and applies the
- style at runtime to your Qt application. Widgets are optimized
- for touch screen usage.
-
- \section2 Graphics Features
-
- Qt for MeeGo provides a powerful paint engine that cotain
- features such as anti aliasing, gradients, curves and transparency.
- It also has animation support with timelines and easing curves. Qt
- for MeeGo also supports hardware acceleration using ARM NEON, x86,
- and OpenGL ES 2.0.
-
- \section2 Device Configurations
-
- Qt is the foundation of MeeGo UI and application development and
- therefore Qt will be present in all upcoming MeeGo devices. Qt
- can provide automatic support for:
- \list
- \o Switching between landscape and portrait mode
- \o Input Methods, including predictive text input and on-screen
- keyboard
- \o Configurable kinetic scrolling
- \endlist
-
- \section2 Maemo - Linux/X11
-
- Qt supports a wide range of X11 platform variants, such as: Solaris,
- AIX, HP-UX, Maemo 5 and MeeGo. Qt for MeeGo contains all Qt modules
- and features the same functionality as the Qt on X11 version.
-
- \section2 Cross-Platform Development using Qt Creator
-
- \l{http://doc.qt.nokia.com/qtcreator-snapshot/index.html}{Qt Creator} is
- a complete Cross-platform IDE included in the Qt SDK. The IDE allows
- programmers to create, build, debug and run Qt applications accross all
- supported platforms.
-
- Additional \l{Cross-Platform and Platform-Specific Development}
- information.
-*/
-
-/*!
\page supported-platforms.html
\title Supported Platforms
\brief The platforms supported by Nokia for Qt.
@@ -697,26 +373,21 @@
\o {2,1} Qt Cross Platform Support
\header
\o {1,1} Desktop
- \o {1,1} Mobile/Embedded
+ \o {1,1} Embedded
\row
\o \l{Support for Windows}{Windows}
- \o \l{Support for Windows CE and Windows Mobile}{Windows CE and Windows Mobile}
+ \o \l{Support for Embedded Linux}{Embedded Linux}
\row
\o \l{Support for Linux/X11}{Linux/X11}
- \o \l{Support for Embedded Linux}{Embedded Linux}
\row
\o \l{Support for Mac OS X}{Mac OS X}
- \o \l{Support for Symbian}{Symbian}
- \row
- \o\l{Support for MeeGo}{MeeGo}
- \o\l{Support for Maemo}{Maemo}
\endtable
\section1 Supported Platform Details
The Qt team strives to provide support for the platforms most
frequently used by Qt users. We have designed our internal testing procedure to
- divide platforms into three test categories (Tier 1, Tier 2 and Tier 3) in order
+ divide platforms into three test categories (Tier 1 and Tier 2) in order
to prioritize internal testing and development resources so that the most
frequently used platforms are subjected to our most rigorous testing processes.
@@ -743,30 +414,18 @@
\table
\header \o Platform
\o Compilers
- \row \o Linux (32 and 64-bit)
- \o gcc 4.2
- \row \o Microsoft Windows XP
- \o gcc 4.4 (MinGW) (32-bit), MSVC 2005 (32 and 64-bit)
- \row \o Microsoft Windows Vista
- \o MSVC 2005, 2008
- \row \o Microsoft Windows Vista 64bit
+ \row \o Ubuntu Linux 10.04 (32-bit)
+ \o As provided by Ubuntu
+ \row \o Microsoft Windows XP SP3 (32-bit)
\o MSVC 2008
- \row \o Microsoft Windows 7
+ \row \o Microsoft Windows 7 (32-bit)
\o MSVC 2008
- \row \o Apple Mac OS X 10.6 "Snow Leopard"
+ \row \o Microsoft Windows 7 (32-bit)
+ \o MSVC 2010 SP1
+ \row \o Apple Mac OS X 10.6 "Snow Leopard" (64-bit)
\o As provided by Apple
- \row \o Apple Mac OS X 10.5 "Leopard" x86_64 (Cocoa 32 and 64bit)
+ \row \o Apple Mac OS X 10.7 "Lion" (64-bit)
\o As provided by Apple
- \row \o Embedded Linux QWS (ARM)
- \o gcc (\l{http://www.codesourcery.com/}{Codesourcery version)}
- \row \o Windows CE 5.0 (ARMv4i, x86, MIPS)
- \o MSVC 2005 WinCE 5.0 Standard (x86, pocket, smart, mipsii)
- \row \o Maemo 5(Linux, ARM, X11)
- \o gcc (\l{http://www.scratchbox.org/}{Scratchbox)}
- \row \o MeeGo (Linux, ARM, X11)
- \o gcc (\l{http://www.scratchbox.org/}{Scratchbox)}
- \row \o Symbian (Symbian/S60 5.0)
- \o RVCT 2.2 [build 686 or later], WINSCW 3.2.5 [build 482 or later], GCCE (for applications)
\endtable
\section1 Tier 2 Platforms
@@ -779,47 +438,20 @@
\table
\header \o Platform
\o Compilers
- \row \o Windows 7
- \o MSVC 2010
- \row \o Apple Mac OS X 10.4 "Tiger" (Carbon)
- \o As provided by Apple
- \row \o Apple Mac OS X 10.5 "Leopard" (Carbon)
+ \row \o Ubuntu Linux 10.04 QWS (x86 32-bit)
+ \o As provided by Ubuntu
+ \row \o Ubuntu Linux 10.04 (32-bit)
+ \o Intel Compiler [version 12]
+ \row \o Apple Mac OS X 10.6 "Snow Leopard" Cocoa (32-bit)
\o As provided by Apple
- \row \o HPUXi 11.23
- \o aCC 6.10
- \row \o Solaris 10 UltraSparc
- \o Sun Studio 12
- \row \o AIX 6
- \o Power5 xlC 7
- \row \o Microsoft Windows XP
- \o Intel Compiler
- \row \o Linux
- \o Intel Compiler
- \row \o Embedded Linux QWS (Mips, PowerPC)
- \o gcc (\l{http://www.codesourcery.com/}{Codesourcery version)}
- \row \o Embedded Linux X11 (ARM)
- \o gcc (\l{http://www.scratchbox.org/}{Scratchbox)}
- \row \o Windows CE 5.0 (ARMv4i, x86, MIPS)
- \o MSVC 2005 WinCE 5.0 Standard (x86, pocket, smart, mipsii)
- \row \o Windows Embedded CE 6.0 (ARMv4i, x86, MIPS)
- \o MSVC 2008 WinCE Embedded 6.0 Professional
- \row \o Symbian (Symbian/S60 3.1, 3.2)
- \o RVCT 2.2 [build 686 or later], WINSCW 3.2.5 [build 482 or later], GCCE (for applications)
\endtable
- \note The PPC architecture on Mac has been downgraded from tier 1 to tier 2 for 4.7.
-
\section1 Tier 3 Platforms (Not Supported by Nokia)
All platforms not specifically listed above are not supported by Nokia. Nokia does
not run its unit test suite or perform any other internal tests on platforms not
listed above.
- Even though some Tier 3 platforms are available under the Qt Commercial License,
- technical support is not included in that license.
- However, \l{How to Order}{contact our sales team} to find out about the
- availability of other services for those platforms.
-
Qt users should note, however, that there may be various open source
projects, community users and/or Qt partners who are able to provide assistance with
platforms not supported by Nokia.
@@ -832,13 +464,4 @@
warranties and conditions, either express or implied, including, but not limited to,
implied warranties of merchantability, fitness for a particular purpose, title and
non-infringement with regard to the Licensed Software.
-
- \section1 Planned Changes for Qt 4.8
-
- The following changes to the list of supported platforms are at time of publishing
- planned for Qt 4.8:
-
- \list
- \o Plans not yet released
- \endlist
*/
diff --git a/doc/src/platforms/symbian-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc
index bacdbc8..f6979ef 100644
--- a/doc/src/platforms/symbian-introduction.qdoc
+++ b/doc/src/platforms/symbian-introduction.qdoc
@@ -205,7 +205,7 @@
\table
\row \o \c QT_SIS_OPTIONS \o Options accepted by \c .sis creation. See
\l{Supported options for QT_SIS_OPTIONS}{Supported options}
- below. By default no otions are given.
+ below. By default no options are given.
\row \o \c QT_SIS_TARGET \o Target for which \c .sis file is created.
Accepted values are build targets listed in
previous table. By default last build target.
diff --git a/doc/src/qt-webpages.qdoc b/doc/src/qt-webpages.qdoc
index 394850f..271fa18 100644
--- a/doc/src/qt-webpages.qdoc
+++ b/doc/src/qt-webpages.qdoc
@@ -117,10 +117,6 @@
\title Qt License Pricing
*/
/*!
- \externalpage http://qt.nokia.com/about/contact-us
- \title How to Order
-*/
-/*!
\externalpage http://doc.qt.nokia.com/supported-platforms.html
\title Platform Support Policy
*/
diff --git a/doc/src/snippets/code/doc_src_stylesheet.qdoc b/doc/src/snippets/code/doc_src_stylesheet.qdoc
index 99b31c9..78d76a8 100644
--- a/doc/src/snippets/code/doc_src_stylesheet.qdoc
+++ b/doc/src/snippets/code/doc_src_stylesheet.qdoc
@@ -481,7 +481,7 @@ QTextEdit { background-position: bottom center }
//! [81]
-QDialog { etch-disabled-text: 1 }
+QDialogButtonBox { dialogbuttonbox-buttons-have-icons: 1; }
//! [81]
@@ -1479,7 +1479,7 @@ QSplitter::handle:vertical {
}
QSplitter::handle:pressed {
- url(images/splitter_pressed.png);
+ image: url(images/splitter_pressed.png);
}
//! [142]
diff --git a/doc/src/snippets/code/src_corelib_tools_qvector.cpp b/doc/src/snippets/code/src_corelib_tools_qvector.cpp
index fc46d91..fc1a7f7 100644
--- a/doc/src/snippets/code/src_corelib_tools_qvector.cpp
+++ b/doc/src/snippets/code/src_corelib_tools_qvector.cpp
@@ -148,10 +148,10 @@ vector.lastIndexOf("X"); // returns -1
//! [14]
-QVector<double> vect;
+QVector<QString> vect;
vect << "red" << "green" << "blue" << "black";
-QList<double> list = vect.toList();
+QList<QString> list = vect.toList();
// list: ["red", "green", "blue", "black"]
//! [14]
diff --git a/doc/src/snippets/code/src_opengl_qglcolormap.cpp b/doc/src/snippets/code/src_opengl_qglcolormap.cpp
index 3bd780b..535777d 100644
--- a/doc/src/snippets/code/src_opengl_qglcolormap.cpp
+++ b/doc/src/snippets/code/src_opengl_qglcolormap.cpp
@@ -42,7 +42,7 @@
#include <QApplication>
#include <QGLColormap>
-int main()
+int main(int argc, char *argv[])
{
QApplication app(argc, argv);
@@ -51,7 +51,8 @@ int main()
// This will fill the colormap with colors ranging from
// black to white.
- for (int i = 0; i < colormap.size(); i++)
+ const int size = 256;
+ for (int i = 0; i < size; ++i)
colormap.setEntry(i, qRgb(i, i, i));
widget.setColormap(colormap);
diff --git a/doc/src/snippets/code/src_sql_kernel_qsqldriver.cpp b/doc/src/snippets/code/src_sql_kernel_qsqldriver.cpp
index d49b6e0..1a3772f 100644
--- a/doc/src/snippets/code/src_sql_kernel_qsqldriver.cpp
+++ b/doc/src/snippets/code/src_sql_kernel_qsqldriver.cpp
@@ -41,7 +41,7 @@
//! [0]
QSqlDatabase db = ...;
QVariant v = db.driver()->handle();
-if (v.isValid() && qstrcmp(v.typeName(), "sqlite3*")==0) {
+if (v.isValid() && qstrcmp(v.typeName(), "sqlite3*") == 0) {
// v.data() returns a pointer to the handle
sqlite3 *handle = *static_cast<sqlite3 **>(v.data());
if (handle != 0) { // check that it is not NULL
@@ -52,12 +52,12 @@ if (v.isValid() && qstrcmp(v.typeName(), "sqlite3*")==0) {
//! [1]
-if (v.typeName() == "PGconn*") {
+if (qstrcmp(v.typeName(), "PGconn*") == 0) {
PGconn *handle = *static_cast<PGconn **>(v.data());
if (handle != 0) ...
}
-if (v.typeName() == "MYSQL*") {
+if (qstrcmp(v.typeName(), "MYSQL*") == 0) {
MYSQL *handle = *static_cast<MYSQL **>(v.data());
if (handle != 0) ...
}
diff --git a/doc/src/snippets/qxmlquery/bindingExample.cpp b/doc/src/snippets/qxmlquery/bindingExample.cpp
index 62e19be..a2c53eb 100644
--- a/doc/src/snippets/qxmlquery/bindingExample.cpp
+++ b/doc/src/snippets/qxmlquery/bindingExample.cpp
@@ -44,6 +44,7 @@
device.open(QIODevice::ReadOnly);
QXmlQuery query;
- query.setQuery("doc($inputDocument)/query[theDocument]");
query.bindVariable("inputDocument", &device);
+ query.setQuery("doc($inputDocument)/query[theDocument]");
+
//! [0]
diff --git a/examples/draganddrop/fridgemagnets/dragwidget.cpp b/examples/draganddrop/fridgemagnets/dragwidget.cpp
index 19abfb6..447f7ac 100644
--- a/examples/draganddrop/fridgemagnets/dragwidget.cpp
+++ b/examples/draganddrop/fridgemagnets/dragwidget.cpp
@@ -58,7 +58,7 @@ DragWidget::DragWidget(QWidget *parent)
while (!inputStream.atEnd()) {
QString word;
- inputStream >> word;
+ word = inputStream.readLine();
if (!word.isEmpty()) {
DragLabel *wordLabel = new DragLabel(word, this);
wordLabel->move(x, y);
diff --git a/examples/opengl/cube/mainwidget.cpp b/examples/opengl/cube/mainwidget.cpp
index 1116526..482c78e 100644
--- a/examples/opengl/cube/mainwidget.cpp
+++ b/examples/opengl/cube/mainwidget.cpp
@@ -46,10 +46,10 @@
#include <QBasicTimer>
#include <QMouseEvent>
+#include <QDebug>
#include <math.h>
-
-#include <QDebug>
+#include <locale.h>
MainWidget::MainWidget(QWidget *parent) :
QGLWidget(parent),
diff --git a/mkspecs/features/testcase.prf b/mkspecs/features/testcase.prf
index 7a7c9e3..eb0aa9f 100644
--- a/mkspecs/features/testcase.prf
+++ b/mkspecs/features/testcase.prf
@@ -38,6 +38,10 @@ embedded: check.commands += -qws
# Allow for custom arguments to tests
check.commands += $(TESTARGS)
+
+# If the test is marked as insignificant, discard the exit code
+insignificant_test:check.commands = -$${check.commands}
+
QMAKE_EXTRA_TARGETS *= check
!debug_and_release|build_pass {
diff --git a/mkspecs/features/unix/gdb_dwarf_index.prf b/mkspecs/features/unix/gdb_dwarf_index.prf
index 14db4fc..e3f79cd 100644
--- a/mkspecs/features/unix/gdb_dwarf_index.prf
+++ b/mkspecs/features/unix/gdb_dwarf_index.prf
@@ -1,8 +1,16 @@
!CONFIG(separate_debug_info):CONFIG(debug, debug|release):!staticlib:!static:!contains(TEMPLATE, subdirs):!isEmpty(QMAKE_OBJCOPY) {
- QMAKE_GDB_INDEX = { test -z \"$(DESTDIR)\" || cd \"$(DESTDIR)\"; } && \
+ contains(TEMPLATE, "lib") {
+ QMAKE_GDB_INDEX = { test -z \"$(DESTDIR)\" || cd \"$(DESTDIR)\"; } &&
+ QMAKE_GDB_DIR = .
+ } else {
+ QMAKE_GDB_INDEX = { test -n \"$(DESTDIR)\" && DESTDIR=\"$(DESTDIR)\" || DESTDIR=.; } &&
+ QMAKE_GDB_DIR = \$\$DESTDIR
+ }
+
+ QMAKE_GDB_INDEX += \
test \$\$(gdb --version | sed -e \'s,[^0-9]\\+\\([0-9]\\)\\.\\([0-9]\\).*,\\1\\2,;q\') -gt 72 && \
- gdb --nx --batch --quiet -ex \'set confirm off\' -ex \'save gdb-index .\' -ex quit \'$(TARGET)\' && \
+ gdb --nx --batch --quiet -ex \'set confirm off\' -ex \"save gdb-index $$QMAKE_GDB_DIR\" -ex quit \'$(TARGET)\' && \
test -f $(TARGET).gdb-index && \
$$QMAKE_OBJCOPY --add-section \'.gdb_index=$(TARGET).gdb-index\' --set-section-flags \'.gdb_index=readonly\' \'$(TARGET)\' \'$(TARGET)\' && \
$$QMAKE_DEL_FILE $(TARGET).gdb-index || true
diff --git a/mkspecs/unsupported/integrity-ghs/qmake.conf b/mkspecs/unsupported/integrity-ghs/qmake.conf
index 822d6bb..803b2da 100644
--- a/mkspecs/unsupported/integrity-ghs/qmake.conf
+++ b/mkspecs/unsupported/integrity-ghs/qmake.conf
@@ -7,9 +7,10 @@ MAKEFILE_GENERATOR = GBUILD
TEMPLATE = app
CONFIG += qt warn_on release integrity unix
QT += core gui network
+DEFINES += QT_NO_SHAREDMEMORY QT_NO_PROCESS QT_NO_QWS_MULTIPROCESS QT_NO_SYSTEMSEMAPHORE QT_NO_PRINTER QT_NO_QWS_QPF2
-QMAKE_CFLAGS = -bsp $$INTEGRITY_BSP -os_dir $__OS_DIR
-QMAKE_CFLAGS += --diag_suppress=1,228,236,381,611,997
+QMAKE_CFLAGS = -bsp $$INTEGRITY_BSP -os_dir $__OS_DIR
+QMAKE_CFLAGS += --diag_suppress=1,228,236,381,611,997,1795
QMAKE_CFLAGS_WARN_ON =
QMAKE_CFLAGS_WARN_OFF = -w
QMAKE_CFLAGS_RELEASE = -g -Ospeed -Olink --signed_fields --no_commons
@@ -17,7 +18,7 @@ QMAKE_CFLAGS_DEBUG = -g --no_commons --signed_fields
QMAKE_CFLAGS_SHLIB =
QMAKE_CFLAGS_THREAD = -D_REENTRANT
-QMAKE_CXXFLAGS = $$QMAKE_CFLAGS --no_implicit_include --link_once_templates
+QMAKE_CXXFLAGS = $$QMAKE_CFLAGS --no_implicit_include --link_once_templates -non_shared
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
@@ -37,9 +38,9 @@ QMAKE_LIBDIR_OPENGL =
QMAKE_INCDIR_QTOPIA = $(QPEDIR)/include
QMAKE_LIBDIR_QTOPIA = $(QPEDIR)/lib
-QMAKE_LFLAGS = -lposix -livfs -lnet -lsocket -lfbdev -ldl
+QMAKE_LFLAGS = -lposix -livfs -lnet -lsocket -lfbdev -lhiddev -ldl
QMAKE_LFLAGS_RELEASE = -g -Ospeed -Olink --no_commons -non_shared --link_once_templates
-QMAKE_LFLAGS_DEBUG = -g --no_commons
+QMAKE_LFLAGS_DEBUG = -g --no_commons -non_shared --link_once_templates
QMAKE_LFLAGS_SHLIB =
QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
QMAKE_LFLAGS_SONAME =
diff --git a/mkspecs/win32-g++-4.6/qmake.conf b/mkspecs/win32-g++-4.6/qmake.conf
new file mode 100644
index 0000000..2c94587
--- /dev/null
+++ b/mkspecs/win32-g++-4.6/qmake.conf
@@ -0,0 +1,3 @@
+include(../win32-g++/qmake.conf)
+QMAKE_CFLAGS *= -fno-keep-inline-dllexport
+QMAKE_CXXFLAGS *= -fno-keep-inline-dllexport
diff --git a/mkspecs/win32-g++-4.6/qplatformdefs.h b/mkspecs/win32-g++-4.6/qplatformdefs.h
new file mode 100644
index 0000000..630a6a4
--- /dev/null
+++ b/mkspecs/win32-g++-4.6/qplatformdefs.h
@@ -0,0 +1,159 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QPLATFORMDEFS_H
+#define QPLATFORMDEFS_H
+
+#ifdef UNICODE
+#ifndef _UNICODE
+#define _UNICODE
+#endif
+#endif
+
+// Get Qt defines/settings
+
+#include "qglobal.h"
+
+#include <tchar.h>
+#include <io.h>
+#include <direct.h>
+#include <stdio.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <stdlib.h>
+#include <qt_windows.h>
+#include <limits.h>
+
+#if !defined(_WIN32_WINNT) || (_WIN32_WINNT-0 < 0x0500)
+typedef enum {
+ NameUnknown = 0,
+ NameFullyQualifiedDN = 1,
+ NameSamCompatible = 2,
+ NameDisplay = 3,
+ NameUniqueId = 6,
+ NameCanonical = 7,
+ NameUserPrincipal = 8,
+ NameCanonicalEx = 9,
+ NameServicePrincipal = 10,
+ NameDnsDomain = 12
+} EXTENDED_NAME_FORMAT, *PEXTENDED_NAME_FORMAT;
+#endif
+
+#define Q_FS_FAT
+#ifdef QT_LARGEFILE_SUPPORT
+#define QT_STATBUF struct _stati64 // non-ANSI defs
+#define QT_STATBUF4TSTAT struct _stati64 // non-ANSI defs
+#define QT_STAT ::_stati64
+#define QT_FSTAT ::_fstati64
+#else
+#define QT_STATBUF struct _stat // non-ANSI defs
+#define QT_STATBUF4TSTAT struct _stat // non-ANSI defs
+#define QT_STAT ::_stat
+#define QT_FSTAT ::_fstat
+#endif
+#define QT_STAT_REG _S_IFREG
+#define QT_STAT_DIR _S_IFDIR
+#define QT_STAT_MASK _S_IFMT
+#if defined(_S_IFLNK)
+# define QT_STAT_LNK _S_IFLNK
+#endif
+#define QT_FILENO _fileno
+#define QT_OPEN ::_open
+#define QT_CLOSE ::_close
+#ifdef QT_LARGEFILE_SUPPORT
+#define QT_LSEEK ::_lseeki64
+#ifndef UNICODE
+#define QT_TSTAT ::_stati64
+#else
+#define QT_TSTAT ::_wstati64
+#endif
+#else
+#define QT_LSEEK ::_lseek
+#ifndef UNICODE
+#define QT_TSTAT ::_stat
+#else
+#define QT_TSTAT ::_wstat
+#endif
+#endif
+#define QT_READ ::_read
+#define QT_WRITE ::_write
+#define QT_ACCESS ::_access
+#define QT_GETCWD ::_getcwd
+#define QT_CHDIR ::_chdir
+#define QT_MKDIR ::_mkdir
+#define QT_RMDIR ::_rmdir
+#define QT_OPEN_LARGEFILE 0
+#define QT_OPEN_RDONLY _O_RDONLY
+#define QT_OPEN_WRONLY _O_WRONLY
+#define QT_OPEN_RDWR _O_RDWR
+#define QT_OPEN_CREAT _O_CREAT
+#define QT_OPEN_TRUNC _O_TRUNC
+#define QT_OPEN_APPEND _O_APPEND
+#if defined(O_TEXT)
+# define QT_OPEN_TEXT _O_TEXT
+# define QT_OPEN_BINARY _O_BINARY
+#endif
+
+#include "../common/c89/qplatformdefs.h"
+
+#ifdef QT_LARGEFILE_SUPPORT
+#undef QT_FSEEK
+#undef QT_FTELL
+#undef QT_OFF_T
+
+#define QT_FSEEK ::fseeko64
+#define QT_FTELL ::ftello64
+#define QT_OFF_T off64_t
+#endif
+
+#define QT_SIGNAL_ARGS int
+
+#define QT_VSNPRINTF ::_vsnprintf
+#define QT_SNPRINTF ::_snprintf
+
+# define F_OK 0
+# define X_OK 1
+# define W_OK 2
+# define R_OK 4
+
+
+#endif // QPLATFORMDEFS_H
diff --git a/projects.pro b/projects.pro
index bf4dc5e..0b498f8 100644
--- a/projects.pro
+++ b/projects.pro
@@ -8,7 +8,7 @@ TEMPLATE = subdirs
cross_compile: CONFIG += nostrip
isEmpty(QT_BUILD_PARTS) { #defaults
- symbian {
+ symbian|integrity {
QT_BUILD_PARTS = libs tools examples demos
} else {
QT_BUILD_PARTS = libs tools examples demos docs translations
diff --git a/qmake/Makefile.win32-g++ b/qmake/Makefile.win32-g++
index d40dc29..5fa1e5e 100644
--- a/qmake/Makefile.win32-g++
+++ b/qmake/Makefile.win32-g++
@@ -27,7 +27,7 @@ CFLAGS = -c -o$@ -O \
-DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \
-DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT
CXXFLAGS = $(CFLAGS)
-LFLAGS = -static-libgcc -static-libstdc++ -s
+LFLAGS = -static-libgcc -s
LIBS = -lole32 -luuid -ladvapi32 -lkernel32
LINKQMAKE = g++ $(LFLAGS) -o qmake.exe $(OBJS) $(QTOBJS) $(LIBS)
ADDCLEAN =
diff --git a/qmake/generators/integrity/gbuild.cpp b/qmake/generators/integrity/gbuild.cpp
index f9fdb38..8df858a 100644
--- a/qmake/generators/integrity/gbuild.cpp
+++ b/qmake/generators/integrity/gbuild.cpp
@@ -64,7 +64,7 @@ GBuildMakefileGenerator::GBuildMakefileGenerator() : MakefileGenerator()
}
bool
-GBuildMakefileGenerator::write()
+GBuildMakefileGenerator::writeMakefile(QTextStream &text)
{
QStringList tmp;
QString filename(Option::output.fileName());
@@ -77,13 +77,13 @@ GBuildMakefileGenerator::write()
/* correct output for non-prl, non-recursive case */
QString outname(qmake_getpwd());
outname += QDir::separator();
- outname += fileInfo(Option::output.fileName()).baseName();
+ outname += strtarget;
outname += projectSuffix();
Option::output.close();
Option::output.setFileName(outname);
MakefileGenerator::openOutput(Option::output, QString());
- if (strtarget != fileInfo(project->projectFile()).baseName()) {
+ if (strtarget != fileInfo(project->projectFile()).baseName().section('.', -2, -2)) {
QString gpjname(strtarget);
QString outputName(qmake_getpwd());
outputName += QDir::separator();
@@ -141,18 +141,19 @@ GBuildMakefileGenerator::write()
ti << "\tHeapSize\t0x00D00000" << "\n";
ti << "\tTask\tInitial" << "\n";
ti << "\t\tStackSize\t0x30000" << "\n";
+ ti << "\t\tStartIt\tTrue" << "\n";
ti << "\tEndTask" << "\n";
ti << "EndAddressSpace" << "\n";
ti.flush();
/* change current project file to <projectname>_app.gpj and continue
* generation */
- filename.insert(filename.lastIndexOf("."), "_app");
+ outname.insert(outname.lastIndexOf("."), "_app");
Option::output.close();
- Option::output.setFileName(filename);
+ Option::output.setFileName(outname);
MakefileGenerator::openOutput(Option::output, QString());
} else if ((project->first("TEMPLATE") == "lib")
- && project->isActiveConfig("shared")) {
+ && project->isActiveConfig("dll")) {
QString gpjname(strtarget);
gpjname += "_shared";
gpjname += projectSuffix();
@@ -188,26 +189,28 @@ GBuildMakefileGenerator::write()
tl << "}\n"
"-sec\n"
"{\n"
- " .picbase __INTEGRITY_LibCBaseAddress :\n"
+ " .picbase __INTEGRITY_LibCBaseAddress :\n"
" .text :\n"
- " .syscall :\n"
+ " .syscall :\n"
" .intercall :\n"
" .interfunc :\n"
- " .secinfo :\n"
- " .rodata align(16) :\n"
- " .fixaddr :\n"
- " .fixtype :\n"
+ " .secinfo :\n"
+ " .rodata align(16) :\n"
+ " .fixaddr :\n"
+ " .fixtype :\n"
" .rombeg :\n"
" .textchecksum :\n"
" // The above sections may be large. Leave a bigger gap for large pages.\n"
- " .pidbase align(__INTEGRITY_MaxPageAlign) :\n"
+ " .pidbase align(__INTEGRITY_MaxPageAlign) :\n"
" .sdabase :\n"
" .data :\n"
" .toc :\n"
" .opd :\n"
" .datachecksum :\n"
- " .bss align(__INTEGRITY_MinPageAlign) :\n"
- " .heap :\n"
+ " .sbss : \n"
+ " .bss align(__INTEGRITY_MinPageAlign) :\n"
+ " .argsection(__INTEGRITY_MaxPageAlign) :\n"
+ " .heap : \n"
"}\n";
tl.flush();
dllbase += DLLOFFSET;
@@ -215,7 +218,9 @@ GBuildMakefileGenerator::write()
warn_msg(WarnParser, Option::output.fileName().toAscii());
QTextStream t(&Option::output);
- QString primaryTarget(project->values("QMAKE_CXX").at(0));
+ QString primaryTarget;
+ if (!project->values("QMAKE_CXX").isEmpty())
+ primaryTarget = project->values("QMAKE_CXX").at(0);
pathtoremove += QDir::separator();
filename.remove(qmake_getpwd());
@@ -254,6 +259,8 @@ GBuildMakefileGenerator::write()
t << "\t:sourceDir=." << "\n";
t << "\t:outputDir=work" << relpath << "\n";
+ t << "\t-I${%expand_path(.)}/work" << relpath << "\n";
+ t << "\t--cxx_include_directory ${%expand_path(.)}/work" << relpath << "\n";
if (filename.endsWith("projects.gpj")) {
t << "\t:sourceDir=work\n";
t << "\t-Iwork\n";
@@ -270,7 +277,8 @@ GBuildMakefileGenerator::write()
}
t << "\n";
- t << varGlue("DEFINES", "\t-D", "\n\t-D", "\n");
+ if (project->first("TEMPLATE") != "project")
+ t << varGlue("DEFINES", "\t-D", "\n\t-D", "\n");
t << "\t-I.\n\t-I" << specdir() << "\n";
t << varGlue("INCLUDEPATH", "\t-I", "\n\t-I", "\n");
@@ -306,9 +314,11 @@ GBuildMakefileGenerator::write()
continue;
if (!project->first((*it) + ".subdir").isEmpty())
gpjname = project->first((*it) + ".subdir");
+ /* some SUBDIRS are not actually subdirs, instead .pro files */
+ if (gpjname.endsWith(".pro"))
+ gpjname.chop(4);
else
- gpjname.replace("_", QDir::separator());
- gpjname += QDir::separator() + gpjname.section(QDir::separator(), -1);
+ gpjname += QDir::separator() + gpjname.section(QDir::separator(), -1);
gpjname += projectSuffix();
/* make relative */
if (!project->values("QT_SOURCE_TREE").isEmpty()) {
@@ -328,7 +338,7 @@ GBuildMakefileGenerator::write()
t << "\t-name " << tmpstr << "\n";
tmpstr.insert(tmpstr.lastIndexOf(QDir::separator()) + 1, "qrc_");
tmpstr.append(".cpp");
- t << "\t-o work/" << tmpstr << "\n";
+ t << "\t-o work/" << relpath << QDir::separator() << tmpstr << "\n";
}
}
{
@@ -340,7 +350,7 @@ GBuildMakefileGenerator::write()
tmpstr.insert(tmpstr.lastIndexOf(QDir::separator()) + 1, "ui_");
tmpstr.remove(".ui");
tmpstr.append(".h");
- t << "\t-o work/" << tmpstr << "\n";
+ t << "\t-o work/" << relpath << QDir::separator() << tmpstr << "\n";
}
}
@@ -363,7 +373,7 @@ GBuildMakefileGenerator::write()
{
QStringList &l = project->values("GENERATED_SOURCES");
for (QStringList::Iterator it = l.begin(); it != l.end(); ++it) {
- t << "work/" << (*it).section(QDir::separator(), -1) << "\n";
+ t << "work/" << relpath << QDir::separator() << (*it).section(QDir::separator(), -1) << "\n";
}
}
@@ -373,8 +383,9 @@ GBuildMakefileGenerator::write()
QString GBuildMakefileGenerator::writeOne(QString filename, QString pathtoremove)
{
QString s("");
+ QString origfilename(filename);
s += filename.remove(pathtoremove);
- if (filename.endsWith(Option::h_ext.first())) {
+ if (filename.endsWith(Option::h_ext.first()) && mocable(origfilename)) {
QString corename(filename.section(QDir::separator(), -1));
corename.remove(Option::h_ext.first());
corename.append(Option::cpp_ext.first());
@@ -382,6 +393,8 @@ QString GBuildMakefileGenerator::writeOne(QString filename, QString pathtoremove
s += "\t[MOC/Qt Header]\n";
s += "\t-o ";
s += "work/";
+ s += pathtoremove;
+ s += QDir::separator();
s += corename;
s += "\n";
} else if (filename.section(QDir::separator(), -1).startsWith("qrc_")) {
@@ -390,7 +403,7 @@ QString GBuildMakefileGenerator::writeOne(QString filename, QString pathtoremove
s += tmpstr;
s += ".qrc";
s += "\n";
- } else if (filename.endsWith(Option::cpp_ext.first())) {
+ } else if (filename.endsWith(Option::cpp_ext.first()) && mocable(origfilename)) {
QString tmpstr(filename.section("/", -1));
QString filepath(pathtoremove);
if (!project->values("QT_SOURCE_TREE").isEmpty()) {
@@ -406,6 +419,8 @@ QString GBuildMakefileGenerator::writeOne(QString filename, QString pathtoremove
s += " -o ";
tmpstr.replace(Option::cpp_ext.first(), Option::cpp_moc_ext);
s += "work/";
+ s += pathtoremove;
+ s += QDir::separator();
s += tmpstr;
s += "\n";
} else
diff --git a/qmake/generators/integrity/gbuild.h b/qmake/generators/integrity/gbuild.h
index 0927a2e..6f9a5c0 100644
--- a/qmake/generators/integrity/gbuild.h
+++ b/qmake/generators/integrity/gbuild.h
@@ -48,7 +48,7 @@ QT_BEGIN_NAMESPACE
class GBuildMakefileGenerator : public MakefileGenerator
{
- virtual bool write();
+ virtual bool writeMakefile(QTextStream &text);
QString projectSuffix() const { return QString(".gpj"); };
QString writeOne(QString filename, QString pathtoremove = "");
diff --git a/qmake/qmake.pri b/qmake/qmake.pri
index c2fc1d5..f2a3705 100644
--- a/qmake/qmake.pri
+++ b/qmake/qmake.pri
@@ -22,7 +22,8 @@ SOURCES += project.cpp property.cpp main.cpp generators/makefile.cpp \
generators/symbian/initprojectdeploy_symbian.cpp \
generators/integrity/gbuild.cpp \
windows/registry.cpp \
- symbian/epocroot.cpp
+ symbian/epocroot.cpp \
+ generators/integrity/gbuild.cpp
HEADERS += project.h property.h generators/makefile.h \
generators/unix/unixmake.h meta.h option.h cachekeys.h \
@@ -39,7 +40,8 @@ HEADERS += project.h property.h generators/makefile.h \
generators/symbian/initprojectdeploy_symbian.h \
generators/integrity/gbuild.h \
windows/registry_p.h \
- symbian/epocroot_p.h
+ symbian/epocroot_p.h \
+ generators/integrity/gbuild.h
contains(QT_EDITION, OpenSource) {
DEFINES += QMAKE_OPENSOURCE_EDITION
diff --git a/qmake/qmake.pro b/qmake/qmake.pro
index b602afa..38e0fce 100644
--- a/qmake/qmake.pro
+++ b/qmake/qmake.pro
@@ -25,6 +25,7 @@ INCLUDEPATH += . \
generators/win32 \
generators/mac \
generators/symbian \
+ generators/integrity \
$$QT_SOURCE_TREE/include \
$$QT_SOURCE_TREE/include/QtCore \
$$QT_SOURCE_TREE/qmake
diff --git a/src/3rdparty/webkit/.tag b/src/3rdparty/webkit/.tag
index 34446ae..12a28b8 100644
--- a/src/3rdparty/webkit/.tag
+++ b/src/3rdparty/webkit/.tag
@@ -1 +1 @@
-64cce100215c71575f19ca0b090c65fa97d4ba10
+52a11cec052aa40d3bbc06861be1177b649b4a99
diff --git a/src/3rdparty/webkit/ChangeLog b/src/3rdparty/webkit/ChangeLog
index bc11b4d..bbaf26d 100644
--- a/src/3rdparty/webkit/ChangeLog
+++ b/src/3rdparty/webkit/ChangeLog
@@ -1,3 +1,34 @@
+2011-11-09 Zeno Albisser <zeno.albisser@nokia.com>
+
+ [Qt] Unreviewed: Fix build on Mac.
+ https://bugreports.qt.nokia.com/browse/QTBUG-20619
+
+ This bug was introduced by the previous commit
+ for the same bugreport.
+
+ * Source/WebKit.pri:
+
+2011-11-09 Zeno Albisser <zeno.albisser@nokia.com>
+
+ [Qt] Unreviewed: Fix debug_and_release build on Windows.
+ https://bugreports.qt.nokia.com/browse/QTBUG-20619
+
+ This bug was introduced by the previous commit
+ for the same bugreport.
+
+ * Source/WebKit.pri:
+
+2011-11-03 Zeno Albisser <zeno.albisser@nokia.com>
+
+ [Qt] Unreviewed: Fix universal binary build on Mac.
+ https://bugreports.qt.nokia.com/browse/QTBUG-20619
+
+ When building a universal binary the debug version
+ exceeds the maximum size of a static library.
+ Therefore we do not allow this configuration.
+
+ * Source/WebKit.pri:
+
2011-08-06 Aron Rosenberg <arosenberg@logitech.com>
Reviewed by Benjamin Poulain.
diff --git a/src/3rdparty/webkit/Source/WebCore/ChangeLog b/src/3rdparty/webkit/Source/WebCore/ChangeLog
index da9d1b2..ead97bd 100755
--- a/src/3rdparty/webkit/Source/WebCore/ChangeLog
+++ b/src/3rdparty/webkit/Source/WebCore/ChangeLog
@@ -1,3 +1,41 @@
+2011-11-01 Zeno Albisser <zeno.albisser@nokia.com>
+
+ [Qt] bad codegen, pointer diff in JSC::JSCallbackConstructor::JSCallbackConstructor
+ https://bugs.webkit.org/show_bug.cgi?id=60951
+
+ Adjust symbols visibility for WebCore.
+
+ Reviewed by Simon Hausmann.
+
+ * WebCore.pro:
+
+2011-10-28 Zeno Albisser <zeno.albisser@nokia.com>
+
+ [Qt] Unreviewed: Build fix for MSVC2005
+
+ Patch by Andy Shaw <andy.shaw@digia.com>
+
+ * platform/win/SystemTimeWin.cpp:
+
+2011-10-13 Zeno Albisser <zeno.albisser@nokia.com>
+
+ [Qt] QtWebKit build error for Mac 32bit
+ https://bugs.webkit.org/show_bug.cgi?id=69914
+
+ In WebCore.pro and QtWebKit.pro we define NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES
+ when compiling with ENABLE_VIDEO and with WTF_USE_QTKIT.
+ But this is meant to be defined in NSGeometry.h under certain preconditions.
+ Without setting NS_BUILD_32_LIKE_64 none of these preconditions is
+ met and therefore NSGeometry.h will create several conflicting type definitions.
+
+ With this patch we create consistent definitions again.
+ Due to the order of include files we cannot remove
+ NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES from WebCore.pro.
+
+ Reviewed by Andreas Kling.
+
+ * WebCore.pro:
+
2011-09-12 Adam Klein <adamk@chromium.org>
Fix out-of-bounds access in Gradient::sortStopsIfNecessary
diff --git a/src/3rdparty/webkit/Source/WebCore/WebCore.pro b/src/3rdparty/webkit/Source/WebCore/WebCore.pro
index a305549..ceceee8 100644
--- a/src/3rdparty/webkit/Source/WebCore/WebCore.pro
+++ b/src/3rdparty/webkit/Source/WebCore/WebCore.pro
@@ -7,6 +7,8 @@ include($$PWD/../WebKit.pri)
include($$PWD/WebCore.pri)
include($$PWD/../JavaScriptCore/JavaScriptCore.pri)
+contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
+
TEMPLATE = lib
TARGET = $$WEBCORE_TARGET
CONFIG += staticlib
@@ -2973,6 +2975,9 @@ contains(DEFINES, ENABLE_VIDEO=1) {
platform/mac/WebWindowAnimation.mm
DEFINES+=NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES
+ contains(CONFIG, "x86") {
+ DEFINES+=NS_BUILD_32_LIKE_64
+ }
} else: contains(DEFINES, WTF_USE_GSTREAMER=1) {
HEADERS += \
diff --git a/src/3rdparty/webkit/Source/WebCore/bindings/js/JSExceptionBase.h b/src/3rdparty/webkit/Source/WebCore/bindings/js/JSExceptionBase.h
index a9366ed..7713002 100644
--- a/src/3rdparty/webkit/Source/WebCore/bindings/js/JSExceptionBase.h
+++ b/src/3rdparty/webkit/Source/WebCore/bindings/js/JSExceptionBase.h
@@ -27,7 +27,7 @@
#define JSExceptionBase_h
namespace JSC {
-
+
class JSValue;
} // namespace JSC
diff --git a/src/3rdparty/webkit/Source/WebCore/platform/win/SystemTimeWin.cpp b/src/3rdparty/webkit/Source/WebCore/platform/win/SystemTimeWin.cpp
index 547decc..c40a45a 100644
--- a/src/3rdparty/webkit/Source/WebCore/platform/win/SystemTimeWin.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/platform/win/SystemTimeWin.cpp
@@ -27,6 +27,9 @@
#include "SystemTime.h"
#include <limits>
+#ifndef _WIN32_WINNT
+#define _WIN32_WINNT 0x0500
+#endif
#include <windows.h>
namespace WebCore {
diff --git a/src/3rdparty/webkit/Source/WebKit.pri b/src/3rdparty/webkit/Source/WebKit.pri
index 5bd9577..c469d1a 100644
--- a/src/3rdparty/webkit/Source/WebKit.pri
+++ b/src/3rdparty/webkit/Source/WebKit.pri
@@ -10,6 +10,15 @@ CONFIG(QTDIR_build) {
# Make sure we compile both debug and release on mac when inside Qt.
# This line was extracted from qbase.pri instead of including the whole file
win32|mac:!macx-xcode:CONFIG += debug_and_release
+ # In case we are building a universal binary for Qt, building debug is not
+ # possible because we would exceed the maximum library size for 32bit.
+ mac:contains(QT_CONFIG, x86):contains(QT_CONFIG, x86_64) {
+ CONFIG(debug_and_release)|CONFIG(debug, debug|release) {
+ message(Building a universal binary with debug symbols is not possible. Building release!)
+ CONFIG -= debug_and_release debug
+ CONFIG += release
+ }
+ }
} else {
!CONFIG(release, debug|release) {
OBJECTS_DIR = obj/debug
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/Api/qwebpage.cpp b/src/3rdparty/webkit/Source/WebKit/qt/Api/qwebpage.cpp
index b3efe0f..8f0f153 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/Api/qwebpage.cpp
+++ b/src/3rdparty/webkit/Source/WebKit/qt/Api/qwebpage.cpp
@@ -3972,7 +3972,7 @@ quint64 QWebPage::bytesReceived() const
}
/*!
- \since 4.7
+ \since 4.8
\fn void QWebPage::viewportChangeRequested()
Page authors can provide the supplied values by using the viewport meta tag. More information
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog b/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog
index 32428f1..7ba98b8 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog
+++ b/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog
@@ -1,3 +1,39 @@
+2011-11-03 Jesus Sanchez-Palencia <jesus@webkit.org>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] QtWebKit should have documentation clarifying its mobile features usage
+ https://bugs.webkit.org/show_bug.cgi?id=41465
+
+ Add "QtWebKit Goes Mobile" documentation
+
+ * docs/qtwebkit-goes-mobile.qdoc: Added.
+ * docs/qtwebkit.qdoc: Linked to qtwebkit-goes-mobile documentation
+ * docs/webkitsnippets/qtwebkit_goes_mobile_snippets.cpp: Added.
+
+2011-11-01 Alexis Menard <alexis.menard@openbossa.org>
+
+ Unreviewed Qt documentation fix.
+
+ This signal is Qt 4.8 material.
+
+ * Api/qwebpage.cpp:
+
+2011-10-21 Zeno Albisser <zeno.albisser@nokia.com>
+
+ [Qt] WebKit build does not respect QMAKE_MAC_SDK variable.
+ https://bugs.webkit.org/show_bug.cgi?id=70596
+
+ Instead of only relying on DARWIN_MAJOR_VERSION we also
+ check QMAKE_MAC_SDK. In case QMAKE_MAC_SDK is not defined
+ we are still falling back to DARWIN_MAJOR_VERSION.
+
+ Patch by Andy Shaw <andy.shaw@digia.com>
+
+ Reviewed by Noam Rosenthal.
+
+ * QtWebKit.pro:
+
2011-09-06 Ademar de Souza Reis Jr. <ademar.reis@openbossa.org>
[Qt][Symbian] REGRESSION[94105] DumpRenderTree.exe doesn't build on Symbian
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/QtWebKit.pro b/src/3rdparty/webkit/Source/WebKit/qt/QtWebKit.pro
index 41b0d39..197aa98 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/QtWebKit.pro
+++ b/src/3rdparty/webkit/Source/WebKit/qt/QtWebKit.pro
@@ -233,6 +233,9 @@ contains(DEFINES, ENABLE_VIDEO=1) {
$$SOURCE_DIR/../WebKitLibraries/
DEFINES+=NSGEOMETRY_TYPES_SAME_AS_CGGEOMETRY_TYPES
+ contains(CONFIG, "x86") {
+ DEFINES+=NS_BUILD_32_LIKE_64
+ }
HEADERS += $$PWD/WebCoreSupport/WebSystemInterface.h \
$$PWD/WebCoreSupport/QTKitFullScreenVideoHandler.h
@@ -244,12 +247,12 @@ contains(DEFINES, ENABLE_VIDEO=1) {
# We can know the Mac OS version by using the Darwin major version
DARWIN_VERSION = $$split(QMAKE_HOST.version, ".")
DARWIN_MAJOR_VERSION = $$first(DARWIN_VERSION)
- equals(DARWIN_MAJOR_VERSION, "11") {
- LIBS += $$SOURCE_DIR/../WebKitLibraries/libWebKitSystemInterfaceLion.a
- } else:equals(DARWIN_MAJOR_VERSION, "10") {
- LIBS += $$SOURCE_DIR/../WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a
- } else:equals(DARWIN_MAJOR_VERSION, "9") {
+ equals(DARWIN_MAJOR_VERSION, "9") | contains(QMAKE_MAC_SDK, "/Developer/SDKs/MacOSX10.5.sdk") {
LIBS += $$SOURCE_DIR/../WebKitLibraries/libWebKitSystemInterfaceLeopard.a
+ } else: equals(DARWIN_MAJOR_VERSION, "10") | contains(QMAKE_MAC_SDK, "/Developer/SDKs/MacOSX10.6.sdk") {
+ LIBS += $$SOURCE_DIR/../WebKitLibraries/libWebKitSystemInterfaceSnowLeopard.a
+ } else: equals(DARWIN_MAJOR_VERSION, "11") | contains(QMAKE_MAC_SDK, "/Developer/SDKs/MacOSX10.7.sdk") {
+ LIBS += $$SOURCE_DIR/../WebKitLibraries/libWebKitSystemInterfaceLion.a
}
}
}
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/docs/qtwebkit-goes-mobile.qdoc b/src/3rdparty/webkit/Source/WebKit/qt/docs/qtwebkit-goes-mobile.qdoc
new file mode 100644
index 0000000..40144d1
--- /dev/null
+++ b/src/3rdparty/webkit/Source/WebKit/qt/docs/qtwebkit-goes-mobile.qdoc
@@ -0,0 +1,191 @@
+/*!
+ \inmodule QtWebKit
+ \page qtwebkit-goes-mobile.html
+ \title QtWebKit Goes Mobile
+ \contentspage QtWebKit
+ \section1 Overview
+
+ A lot of effort has been put into QtWebKit to make it attractive for
+ use on mobile devices.
+
+ The goal of this tutorial is to help you understand the mobile
+ features and how to make the best of them, in other words, how to
+ create a good mobile web view that can be used on touch devices.
+
+ If you want to target mobile devices you should consider using \l{QGraphicsWebView}
+ instead of \l{QWebView}. Since \l{QWebView} is based on the \l{QWidget}
+ system, it cannot easily support rotation, overlays, hardware accelerated
+ compositing and tiling. If you need a \l{QWidget} anyway, you can always
+ construct a \l{QGraphicsView} (which is a \l{QWidget}) with a \l{QGraphicsWebView} inside.
+
+ So let's start with a very simple \l{QGraphicsWebView} based "browser":
+
+ \snippet webkitsnippets/qtwebkit_goes_mobile_snippets.cpp 0
+
+ Here we set up a \l{QGraphicsView} application and add a
+ \l{QGraphicsWebView} to the scene. Notice
+ that we're disabling the scrollbars on the QGraphicsView because QtWebKit
+ handles scrolling and scrollbars automatically. This is to allow scrolling
+ optimizations and to enable web authors to interact with the scrollbars,
+ for instance, to style them differently.
+
+ On touch-based mobile devices a feature known as tiling is often used. It
+ is used due to the interaction model (touch) as well as a scrolling
+ optimization. With this optimization we will have to deal with scrolling
+ ourselves, and we will have to disable features like scroll bar styling.
+ This is not usually a problem, since mobile browsers do not usually show
+ scroll bars, but use scroll indicators instead.
+
+ Tiling basically means that the contents of the viewport is separated into
+ a grid of tiles, so that when you update an area, instead of just updating
+ the area, you actually update the whole tile or sub-regions of it.
+ This offers a few advantages for scrolling as, when you scroll, you do not need
+ to repaint the new visible area for each scroll step, but you simply update a row
+ of tiles each time; these tiles are often only partly on the screen.
+ This minimizes all the painting calls that we have to do and enables kinetic scrolling.
+
+ Loading, rendering, and laying out are blocking operations. Though barely
+ noticeable on desktop machines, these operations can block for a long time
+ on a mobile device, letting the user believe the application has become
+ unresponsive. Additionally, scrolling will also stall when the user uses
+ his fingers to scroll, leading to a bad user experience.
+
+ One way to overcome this issue, is to do all loading, laying out and
+ painting (basically all non-UI related work) in another thread or process, and
+ just blit the result from the web process/thread to the UI. There is research
+ in progress to enable this for a future version of QtWebKit, using WebKit2, but for now,
+ freezing the backing store can help when performing a zooming operation, for instance.
+ This will be discussed later, in the \l{#Enabling the Tiling}{Enabling the Tiling} section.
+
+ When using tiles, you can blit any tile available when scrolling. When no tile is available you
+ can show a checkerboard tile instead, not letting the scrolling wait for the
+ tiles to be updated. This results in a responsive interface, with the only
+ disadvantage that you might see checkerboard tiles from time to time.
+
+ The use of tiles also helps with zooming. Repainting at each zoom level change during
+ a zoom animation is basically impossible on a mobile device (or desktop for
+ that matter) and thus, with tiling, you can stop the tiles from being updated and
+ just scale the existing tiles. Then, at the end of the animation, update
+ tiles on top of the scaled ones. For now we will ignore the blocking
+ issue and concentrate on the tiling and the interaction model.
+ More information about Tiling can be found here: \l{http://doc.qt.nokia.com/4.7/qwebsettings.html#WebAttribute-enum} (see the entry for TiledBackingStoreEnabled).
+
+
+ \section1 Resize to Contents
+
+ When using tiling, we want the \l{QGraphicsWebView} to act as our
+ content, as it supports tiling. In order for this we need to make it
+ resize itself to the size of its contents. For this we will use
+ \l{QGraphicsWebView::resizesToContents}.
+
+ This setting removes the scroll bars for us on the main frame and
+ makes our \l{QGraphicsWebView} resize itself to the size of its content.
+
+ Enabling it is as easy as setting the property:
+
+ \snippet webkitsnippets/qtwebkit_goes_mobile_snippets.cpp 1
+
+ The property should be used in conjunction with the
+ QWebPage::preferredContentsSize property. If not explicitly set,
+ it is automatically set to a reasonable value.
+
+ If we expand our mobile web view to the size of the contents
+ of its contained page, the view will be bigger than the device screen.
+
+
+ \section1 Using a View as the Window onto the Contents
+
+ The idea is to have a custom widget which has a \l{QGraphicsWebView} as a
+ class member. Remember that the QGraphicsWebView will be as big as its
+ content's size, so this custom widget will serve as a viewport onto the
+ web view.
+
+ The following code snippet illustrates this:
+
+ \snippet webkitsnippets/qtwebkit_goes_mobile_snippets.cpp 2
+
+ In order to properly handle mouse events, you must install an event filter
+ on the web view or stack it behind its parent object
+ (\l{QGraphicsItem::ItemStacksBehindParent}). By doing this the mouse events will
+ reach a \c{MobileWebView} instance before they reach the member
+ \l{QGraphicsWebView}. Keep in mind that you'll need to add some logic in order
+ to distinguish between different mouse events and gestures, such as a
+ single click, double click and click-and-pan. Besides, scrolling and
+ zooming will have to be implemented manually.
+
+
+ \section1 Adjusting How Contents are Laid Out
+
+ When testing the above on a device, you will notice that many pages are not
+ laid out very nicely. In particular, the width of the content may be larger
+ than the width of the device. This is due to the way web contents are laid
+ out. First, the viewport width is used for fitting the contents. If the
+ contents do not fit due to a non-flexible element with a width larger than
+ the viewport width, the minimum possible width will be used. As most pages
+ are written with a desktop browser in mind, that makes only very few sites
+ fit into the width of a mobile device.
+
+ QtWebKit has a way to force a layout to a given width or height. What really
+ matters here is the width. If you lay out a page to a given width, it will get
+ that width and images might be cropped. The width or height is also used for
+ laying out fixed elements, but when we resize the \l{QGraphicsWebView} to the
+ size of the contents, fixed elements will not be relative to the view, which is
+ the behavior found on most mobile browsers.
+
+ We saw that the QWebPage::preferredContentsSize property is automatically set
+ to a reasonable value when using \l{QGraphicsWebView::resizesToContents}.
+
+ As you can imagine, laying out with a smaller viewport can cause pages to
+ break, therefore a default value has been chosen so that it almost breaks no
+ pages while still making pages fit. This value is 960x800. If the device
+ has a greater resolution, this value can be changed like this:
+
+ \snippet webkitsnippets/qtwebkit_goes_mobile_snippets.cpp 3
+
+ You can play around with this and find a suitable size for your device,
+ but we will keep the default size for now.
+
+
+ \section1 The 'viewport' Meta-Tag
+
+ As some sites do not work with 960 pixels width or want to have control of
+ how the page is laid out, QtWebKit, Android, Firefox Mobile and
+ the iPhone Safari browser support a meta-tag called \c viewport. This makes
+ it possible for a web page to let the browser know how it wants to be shown.
+ More info can be found in the
+ \l{http://developer.apple.com/safari/library/documentation/appleapplications/reference/safariwebcontent/usingtheviewport/usingtheviewport.html}{Safari Developer Library}.
+
+ You must connect the signal \c{QWebPage::viewportChangeRequested(const
+ QWebPage::ViewportHints& hints)} to a slot of your mobile web view and use what
+ is provided by \l{QWebPage::ViewportHints} to update your viewport size, scale
+ range, and so on.
+
+
+ \section1 Enabling the Tiling
+
+ We haven't actually enabled tiling yet, so let's go ahead and do that. That
+ is very simple as it is basically a setting:
+
+ \snippet webkitsnippets/qtwebkit_goes_mobile_snippets.cpp 4
+
+ Note that, if you are going to add animations to your zooming or scaling
+ operations or want to implement fancy kinetic scrolling you might want to
+ take a look at \l{QGraphicsWebView::setTiledBackingStoreFrozen()}. With this,
+ you can avoid updates to your tiles during an animation, for instance.
+
+
+ \section1 Avoiding Scrollable Subelements
+
+ One big issue with the above is that, iframes and sites using frames can
+ contain scrollable subelements. That doesn't work well with the touch
+ interaction model, as you want a finger swipe to scroll the whole page and not
+ end up just scrolling a subframe. Most mobile browsers work around this by
+ enabling something called frame flattening. Going straight to the point:
+
+ \snippet webkitsnippets/qtwebkit_goes_mobile_snippets.cpp 5
+
+ This will make all frames from a web page expand themselves to the size of
+ their contents, keeping us free of scrollable subareas.
+
+
+*/
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/docs/qtwebkit.qdoc b/src/3rdparty/webkit/Source/WebKit/qt/docs/qtwebkit.qdoc
index 1e76901..710d194 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/docs/qtwebkit.qdoc
+++ b/src/3rdparty/webkit/Source/WebKit/qt/docs/qtwebkit.qdoc
@@ -29,6 +29,9 @@
made fully editable to the user through the use of the \c{contenteditable}
attribute on HTML elements.
+ QtWebKit has been enhanced to become more attractive on the mobile front as well.
+ For more information see \l{QtWebKit Goes Mobile}.
+
QtWebKit is based on the Open Source WebKit engine. More information about
WebKit itself can be found on the \l{WebKit Open Source Project} Web site.
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/docs/webkitsnippets/qtwebkit_goes_mobile_snippets.cpp b/src/3rdparty/webkit/Source/WebKit/qt/docs/webkitsnippets/qtwebkit_goes_mobile_snippets.cpp
new file mode 100644
index 0000000..8126fbf
--- /dev/null
+++ b/src/3rdparty/webkit/Source/WebKit/qt/docs/webkitsnippets/qtwebkit_goes_mobile_snippets.cpp
@@ -0,0 +1,61 @@
+#if 0
+// ! [0]
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+ const int width = 640;
+ const int height = 480;
+
+ QGraphicsScene scene;
+
+ QGraphicsView view(&scene);
+ view.setFrameShape(QFrame::NoFrame);
+ view.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ view.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+
+ QGraphicsWebView webview;
+ webview.resize(width, height);
+ webview.load(QUrl("http://doc.qt.nokia.com/"));
+
+ scene.addItem(&webview);
+
+ view.resize(width, height);
+ view.show();
+
+ return app.exec();
+}
+// ! [0]
+
+
+// ! [1]
+webview.setResizesToContents(true);
+// ! [1]
+
+// ! [2]
+class MobileWebView : public QGraphicsWidget {
+ Q_OBJECT
+public:
+ MobileWebView(QGraphicsItem *parent = 0);
+ ~MobileWebView();
+
+ bool mousePress(const QPoint &value);
+ void mouseMove(const QPoint &value);
+ void mouseRelease(const QPoint &value);
+
+private:
+ QGraphicsWebView* webView;
+};
+// ! [2]
+
+// ! [3]
+webview.page()->setPreferredContentsSize(QSize(desiredWidth, desiredHeight));
+// ! [3]
+
+// ! [4]
+QWebSettings::globalSettings()->setAttribute(QWebSettings::TiledBackingStoreEnabled, true);
+// ! [4]
+
+// ! [5]
+QWebSettings::globalSettings()->setAttribute(QWebSettings::FrameFlatteningEnable, true);
+// ! [5]
+#endif
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/docs/webkitsnippets/webelement/main.cpp b/src/3rdparty/webkit/Source/WebKit/qt/docs/webkitsnippets/webelement/main.cpp
index b1781a6..59c124c 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/docs/webkitsnippets/webelement/main.cpp
+++ b/src/3rdparty/webkit/Source/WebKit/qt/docs/webkitsnippets/webelement/main.cpp
@@ -57,7 +57,7 @@ static void findButtonAndClick()
*/
QWebElement button = document.findFirst("input[type=submit]");
- button.evaluateJavaScript("click()");
+ button.evaluateJavaScript("this.click()");
//! [Calling a DOM element method]
diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION
index 6a40345..750e7e7 100644
--- a/src/3rdparty/webkit/VERSION
+++ b/src/3rdparty/webkit/VERSION
@@ -4,4 +4,4 @@ This is a snapshot of the Qt port of WebKit from
and has the sha1 checksum
- 64cce100215c71575f19ca0b090c65fa97d4ba10
+ 52a11cec052aa40d3bbc06861be1177b649b4a99
diff --git a/src/corelib/arch/qatomic_integrity.h b/src/corelib/arch/qatomic_integrity.h
index f957297..c72a48d 100644
--- a/src/corelib/arch/qatomic_integrity.h
+++ b/src/corelib/arch/qatomic_integrity.h
@@ -203,7 +203,7 @@ inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd)
template <typename T>
Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetOrdered(T *expectedValue, T *newValue)
{
- return TestAndSet((Address*)&_q_value, qt_addr(expectedValue), qt_addr(newValue)) == Success;
+ return TestAndSet(reinterpret_cast<Address *>(const_cast<T **>(&_q_value)), qt_addr(expectedValue), qt_addr(newValue)) == Success;
}
template <typename T>
@@ -231,7 +231,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreOrdered(T *newValue)
{
Address old_val;
do {
- old_val = *reinterpret_cast<Address *>(const_cast<T *>(newValue));
+ old_val = *reinterpret_cast<Address *>(const_cast<T *>(_q_value));
} while (TestAndSet(reinterpret_cast<Address *>(const_cast<T **>(&_q_value)), old_val, qt_addr(newValue)) != Success);
return reinterpret_cast<T *>(old_val);
}
@@ -259,7 +259,8 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue)
template <typename T>
Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueToAdd)
{
- AtomicModify(qt_p2addr(&_q_value), qt_addr(_q_value), qt_addr(_q_value) + valueToAdd * sizeof(T));
+ Address old_value;
+ AtomicModify(reinterpret_cast<volatile Address*>(&_q_value), &old_value, 0, valueToAdd * sizeof(T));
return _q_value;
}
diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h
index cfe5eea..e8c611b 100644
--- a/src/corelib/global/qglobal.h
+++ b/src/corelib/global/qglobal.h
@@ -1824,7 +1824,7 @@ inline T *q_check_ptr(T *p) { Q_CHECK_PTR(p); return p; }
#elif defined(_MSC_VER)
# define Q_FUNC_INFO __FUNCSIG__
#else
-# if defined(Q_OS_SOLARIS) || defined(Q_CC_XLC) || defined(Q_OS_SYMBIAN)
+# if defined(Q_OS_SOLARIS) || defined(Q_CC_XLC) || defined(Q_OS_SYMBIAN) || defined(Q_OS_INTEGRITY)
# define Q_FUNC_INFO __FILE__ "(line number unavailable)"
# else
/* These two macros makes it possible to turn the builtin line expander into a
diff --git a/src/corelib/io/qurltlds_p.h b/src/corelib/io/qurltlds_p.h
index f4f525c..a6590a8 100644
--- a/src/corelib/io/qurltlds_p.h
+++ b/src/corelib/io/qurltlds_p.h
@@ -59,6421 +59,6993 @@ QT_BEGIN_NAMESPACE
// for instructions see the program at
// util/corelib/qurl-generateTLDs
-static const quint16 tldCount = 3949;
+static const quint16 tldCount = 4287;
static const quint16 tldIndices[] = {
0,
-7,
-14,
-14,
-20,
-51,
+18,
+39,
61,
-93,
-100,
-100,
-116,
+68,
+78,
+78,
+99,
+99,
+112,
+125,
159,
-167,
-180,
-180,
-193,
-234,
-234,
-234,
-255,
-255,
-255,
-280,
-280,
-287,
-287,
-295,
-303,
-313,
-326,
-326,
+173,
+226,
+233,
+233,
+233,
+240,
+271,
+278,
+278,
+290,
+307,
+314,
+321,
+340,
+349,
+364,
380,
-393,
-413,
-419,
-419,
-419,
-424,
-438,
-438,
-469,
-515,
-515,
-515,
-534,
-534,
-557,
-557,
-557,
-557,
-572,
-572,
-572,
-579,
+403,
+433,
+440,
+447,
+454,
+480,
+480,
+490,
+530,
+540,
+547,
+554,
587,
-597,
-612,
-612,
-624,
-636,
-648,
-662,
-687,
-709,
-714,
-740,
-766,
-789,
-789,
-805,
-805,
-810,
-815,
-815,
-824,
-824,
-831,
-857,
+626,
+633,
+641,
+641,
+641,
+654,
+670,
+677,
+677,
+684,
+713,
+720,
+734,
+734,
+753,
+765,
+792,
+809,
+816,
+830,
+837,
+852,
869,
-891,
-891,
-916,
-916,
-916,
-927,
-934,
-964,
-971,
-987,
-987,
-987,
-1008,
-1008,
-1016,
-1016,
+892,
+912,
+918,
+949,
+967,
+1005,
1030,
-1030,
-1052,
-1075,
-1075,
-1082,
-1087,
-1115,
-1135,
-1135,
-1135,
-1172,
-1178,
-1178,
-1178,
-1202,
-1207,
-1220,
-1220,
-1266,
-1266,
-1266,
-1266,
-1272,
-1290,
-1316,
-1316,
-1332,
-1332,
-1339,
-1339,
-1352,
-1352,
-1389,
-1389,
-1408,
-1415,
-1437,
-1444,
-1489,
-1489,
-1502,
-1502,
-1512,
-1518,
-1539,
+1037,
+1037,
+1046,
+1053,
+1066,
+1073,
+1073,
+1080,
+1088,
+1132,
+1146,
+1167,
+1167,
+1167,
+1174,
+1190,
+1197,
+1197,
+1204,
+1226,
+1256,
+1283,
+1295,
+1295,
+1312,
+1312,
+1312,
+1329,
+1329,
+1350,
+1350,
+1378,
+1400,
+1400,
+1407,
+1433,
+1447,
+1462,
+1479,
+1479,
+1488,
+1513,
+1520,
+1534,
+1534,
+1534,
+1534,
+1534,
+1545,
1555,
-1562,
-1584,
-1598,
-1607,
-1607,
-1607,
-1632,
-1652,
-1652,
-1658,
-1658,
-1675,
-1682,
-1709,
-1733,
-1748,
-1776,
-1783,
-1783,
-1790,
-1797,
-1826,
-1850,
-1850,
-1856,
-1880,
-1887,
-1901,
-1921,
-1947,
-1961,
-1967,
-1967,
-1967,
-1972,
-1986,
-1986,
-1986,
-2009,
-2029,
-2029,
-2047,
-2061,
-2075,
-2075,
-2075,
-2075,
-2075,
-2075,
-2082,
-2082,
-2124,
-2124,
-2129,
-2162,
-2162,
-2162,
-2236,
-2256,
-2263,
-2276,
-2283,
-2313,
-2313,
-2347,
-2380,
-2387,
-2387,
-2387,
-2431,
-2438,
-2445,
-2452,
-2459,
-2459,
-2469,
+1565,
+1572,
+1582,
+1604,
+1634,
+1646,
+1646,
+1686,
+1686,
+1699,
+1722,
+1729,
+1754,
+1772,
+1787,
+1787,
+1787,
+1794,
+1805,
+1812,
+1819,
+1840,
+1868,
+1875,
+1889,
+1896,
+1912,
+1933,
+1964,
+1984,
+1984,
+1995,
+2002,
+2016,
+2016,
+2023,
+2023,
+2030,
+2043,
+2043,
+2043,
+2067,
+2104,
+2118,
+2134,
+2144,
+2151,
+2197,
+2211,
+2252,
+2282,
+2296,
+2303,
+2326,
+2345,
+2345,
+2363,
+2414,
+2426,
+2435,
+2449,
+2449,
+2449,
+2463,
+2473,
+2473,
+2473,
+2473,
2490,
-2516,
-2527,
-2540,
-2540,
-2586,
-2610,
-2630,
-2630,
-2653,
-2660,
-2669,
-2693,
-2693,
-2710,
-2710,
-2719,
-2719,
-2734,
-2740,
-2740,
-2753,
-2753,
-2763,
-2770,
-2775,
-2782,
-2789,
-2802,
-2820,
-2827,
-2827,
-2841,
-2855,
-2855,
-2865,
-2872,
-2884,
-2884,
-2919,
-2937,
-2955,
+2496,
+2509,
+2509,
+2568,
+2583,
+2583,
+2590,
+2599,
+2627,
+2635,
+2642,
+2682,
+2682,
+2689,
+2696,
+2696,
+2724,
+2771,
+2786,
+2805,
+2842,
+2858,
+2858,
+2873,
+2880,
+2887,
+2896,
+2896,
+2917,
+2923,
+2923,
+2936,
+2936,
+2936,
2962,
-3012,
-3042,
-3073,
-3083,
-3083,
-3100,
-3105,
-3112,
-3131,
-3131,
-3166,
-3180,
-3187,
-3194,
-3211,
-3218,
-3223,
-3233,
-3249,
-3259,
-3268,
-3314,
-3314,
-3324,
-3324,
-3336,
-3336,
-3336,
-3336,
-3350,
-3363,
-3376,
+2969,
+2982,
+2998,
+2998,
+3005,
+3019,
+3019,
+3075,
+3124,
+3124,
+3134,
+3134,
+3134,
+3134,
+3159,
+3169,
+3169,
+3176,
+3200,
+3207,
+3214,
+3238,
+3269,
+3294,
+3309,
+3323,
+3332,
+3332,
+3358,
+3383,
+3398,
3398,
-3416,
-3445,
-3464,
-3488,
-3488,
-3497,
-3545,
-3552,
-3552,
-3552,
-3566,
-3573,
-3573,
-3573,
-3581,
-3581,
-3603,
-3603,
-3615,
-3621,
-3621,
-3683,
-3683,
-3710,
-3710,
-3716,
-3716,
-3748,
-3770,
-3791,
+3428,
+3449,
+3459,
+3485,
+3504,
+3504,
+3511,
+3542,
+3542,
+3542,
+3584,
+3606,
+3625,
+3633,
+3642,
+3651,
+3658,
+3665,
+3671,
+3690,
+3690,
+3690,
+3707,
+3728,
+3737,
+3750,
+3772,
+3772,
+3786,
3803,
-3810,
-3817,
-3833,
-3846,
-3846,
-3852,
-3876,
+3811,
+3811,
+3834,
+3842,
3876,
-3882,
-3903,
-3910,
-3939,
-3939,
-3939,
+3899,
+3909,
+3916,
+3916,
3947,
-3962,
-3962,
-3981,
-3994,
-4021,
-4030,
-4042,
-4085,
-4085,
-4096,
+3947,
+3947,
+3947,
+3960,
+3978,
+3978,
+3995,
+3995,
+4026,
+4026,
+4049,
+4055,
+4055,
+4062,
+4073,
+4073,
+4073,
+4073,
+4090,
4096,
-4104,
-4123,
-4123,
-4123,
+4102,
+4102,
+4137,
4143,
-4154,
-4164,
+4143,
+4150,
+4150,
+4163,
+4182,
+4194,
4194,
4194,
4194,
-4205,
-4205,
-4222,
-4238,
-4301,
-4309,
-4322,
-4331,
-4331,
-4331,
-4331,
-4331,
-4347,
-4365,
-4375,
-4375,
-4385,
+4194,
+4194,
+4194,
+4246,
+4250,
+4250,
+4250,
+4250,
+4261,
+4275,
+4282,
+4282,
+4282,
+4282,
+4321,
+4334,
+4334,
+4344,
+4360,
+4369,
+4384,
+4398,
4398,
-4412,
-4430,
-4430,
-4437,
-4447,
-4463,
-4472,
-4472,
-4472,
-4484,
-4484,
-4484,
-4484,
-4484,
-4490,
-4490,
-4511,
-4511,
-4522,
-4522,
-4522,
-4522,
-4528,
-4528,
+4420,
+4420,
+4432,
+4432,
+4445,
+4445,
+4445,
+4445,
+4445,
+4445,
+4459,
+4483,
+4513,
+4513,
+4523,
+4523,
4534,
-4551,
-4551,
-4551,
-4564,
-4583,
-4583,
-4611,
-4611,
-4611,
-4622,
-4622,
-4649,
-4668,
-4677,
-4692,
-4692,
-4692,
-4705,
-4723,
-4723,
-4723,
-4729,
-4729,
-4743,
-4743,
-4750,
-4750,
-4763,
-4770,
-4776,
-4776,
-4776,
-4793,
-4811,
-4811,
-4811,
-4821,
-4821,
-4841,
-4857,
-4891,
-4897,
-4903,
-4903,
-4903,
-4919,
+4552,
+4563,
+4574,
+4581,
+4581,
+4581,
+4581,
+4581,
+4581,
+4593,
+4593,
+4593,
+4593,
+4593,
+4593,
+4605,
+4605,
+4605,
+4605,
+4639,
+4653,
+4661,
+4675,
+4675,
+4688,
+4711,
+4738,
+4748,
+4748,
+4748,
+4748,
+4754,
+4766,
+4779,
+4806,
+4816,
+4831,
+4855,
+4894,
+4905,
+4905,
+4905,
4935,
-4942,
-4958,
-4958,
-4975,
-4975,
-4975,
-4985,
-4985,
+4935,
+4943,
+4943,
+4943,
+4964,
+4984,
+5009,
+5020,
5020,
-5032,
-5032,
+5034,
5040,
-5053,
-5068,
-5079,
-5079,
-5101,
-5115,
-5115,
-5135,
-5154,
-5161,
-5161,
-5168,
-5168,
-5184,
-5210,
-5210,
-5238,
-5255,
-5278,
+5040,
+5056,
+5056,
+5056,
+5065,
+5075,
+5075,
+5092,
+5114,
+5130,
+5130,
+5130,
+5130,
+5130,
+5179,
+5179,
+5179,
+5179,
+5179,
+5179,
+5195,
+5203,
+5203,
+5203,
+5217,
+5231,
+5231,
+5263,
+5285,
5285,
-5308,
-5318,
-5327,
-5327,
-5333,
-5333,
-5340,
-5348,
-5355,
-5366,
-5377,
-5384,
-5408,
-5415,
-5422,
-5435,
-5442,
-5482,
-5482,
-5482,
-5482,
-5498,
+5285,
+5294,
+5300,
+5300,
+5307,
+5307,
+5307,
+5307,
+5307,
+5317,
+5317,
+5329,
+5354,
+5354,
+5372,
+5403,
+5403,
+5427,
+5436,
+5436,
+5436,
+5436,
+5469,
+5469,
+5488,
+5488,
+5504,
+5504,
5527,
-5534,
-5541,
-5572,
-5572,
-5572,
-5579,
-5591,
-5602,
-5602,
-5621,
-5621,
-5646,
-5664,
-5671,
-5671,
-5681,
+5538,
+5538,
+5538,
+5558,
+5580,
+5630,
+5630,
+5630,
+5638,
+5638,
+5667,
5696,
-5707,
-5716,
-5716,
-5723,
-5723,
-5732,
-5742,
-5742,
-5763,
-5770,
-5776,
-5790,
+5696,
+5696,
+5696,
+5713,
+5713,
+5752,
+5767,
5790,
-5797,
-5806,
-5816,
-5832,
-5882,
-5882,
-5882,
-5882,
-5893,
-5934,
-5934,
-5965,
-5965,
-5980,
-5980,
-5980,
-5980,
-6007,
-6017,
-6034,
-6051,
-6065,
-6075,
-6075,
-6091,
-6097,
-6097,
-6109,
-6109,
-6109,
-6122,
-6147,
-6168,
-6168,
-6191,
-6191,
-6191,
-6191,
-6191,
-6198,
-6217,
-6224,
-6224,
-6231,
-6245,
+5828,
+5828,
+5828,
+5874,
+5880,
+5880,
+5880,
+5892,
+5892,
+5911,
+5911,
+5920,
+5931,
+5944,
+5949,
+5949,
+5949,
+5949,
+5949,
+5949,
+5956,
+5956,
+5966,
+5975,
+5975,
+5985,
+5985,
+6014,
+6023,
+6041,
+6067,
+6078,
+6078,
+6078,
+6092,
+6092,
+6103,
+6103,
+6103,
+6119,
+6136,
+6177,
+6177,
+6177,
+6186,
+6186,
+6221,
+6228,
+6228,
+6228,
+6237,
+6237,
6252,
6252,
-6270,
-6270,
-6284,
-6305,
-6315,
+6261,
+6261,
+6272,
+6291,
+6291,
+6291,
+6291,
+6302,
+6302,
+6312,
6322,
-6322,
-6322,
-6329,
-6329,
-6329,
-6353,
-6361,
-6361,
-6375,
-6391,
-6405,
-6405,
-6415,
-6431,
-6431,
-6431,
-6431,
-6458,
-6475,
-6475,
-6475,
+6346,
+6366,
+6385,
+6413,
+6413,
+6449,
+6449,
+6459,
6482,
-6489,
-6496,
-6496,
-6503,
-6520,
-6520,
-6520,
-6527,
-6527,
-6544,
-6561,
-6573,
-6573,
+6493,
+6493,
+6517,
+6525,
+6552,
+6552,
6580,
-6580,
-6587,
-6587,
-6592,
-6592,
-6592,
-6592,
-6599,
-6599,
-6612,
-6633,
-6649,
-6649,
-6669,
-6676,
-6683,
-6683,
-6713,
-6720,
-6727,
-6736,
-6736,
-6746,
-6770,
-6807,
-6814,
-6827,
-6846,
-6846,
-6864,
-6864,
-6864,
-6864,
-6881,
-6888,
-6888,
-6888,
-6914,
-6935,
-6935,
-6935,
-6953,
-6959,
-6966,
+6586,
+6618,
+6653,
+6687,
+6687,
+6687,
+6687,
+6687,
+6717,
+6737,
+6737,
+6737,
+6737,
+6737,
+6741,
+6741,
+6741,
+6741,
+6741,
+6741,
+6748,
+6748,
+6748,
+6748,
+6748,
+6781,
+6801,
+6801,
+6801,
+6808,
+6826,
+6833,
+6850,
+6861,
+6861,
+6875,
+6911,
+6911,
+6911,
+6911,
+6911,
+6928,
+6928,
+6940,
+6951,
+6956,
+6970,
6983,
6983,
6983,
-7013,
-7023,
-7023,
-7023,
-7023,
-7037,
-7044,
-7058,
-7079,
-7086,
-7123,
-7134,
-7155,
-7168,
+7002,
+7010,
+7026,
+7026,
+7035,
+7035,
+7051,
+7051,
+7065,
+7065,
+7076,
+7076,
+7076,
+7104,
+7104,
+7104,
+7157,
+7178,
7178,
-7203,
-7227,
-7236,
+7178,
+7178,
+7210,
+7210,
+7223,
7258,
-7265,
-7274,
-7274,
-7303,
-7303,
-7314,
-7314,
-7345,
-7352,
-7367,
-7377,
-7388,
-7388,
-7402,
-7402,
+7258,
+7278,
+7291,
+7291,
+7291,
+7291,
+7291,
+7298,
+7298,
+7307,
+7307,
+7307,
+7307,
+7307,
+7307,
+7307,
+7317,
+7317,
+7323,
+7366,
+7391,
+7399,
+7399,
+7399,
7409,
-7421,
-7421,
-7467,
-7484,
+7409,
+7409,
+7435,
+7435,
+7443,
+7464,
7484,
7484,
-7491,
-7532,
-7532,
-7539,
-7546,
-7546,
-7553,
-7573,
-7573,
-7573,
-7580,
-7587,
-7594,
-7594,
-7594,
-7606,
-7606,
-7637,
-7637,
-7637,
-7664,
-7664,
+7492,
+7492,
+7527,
+7550,
+7555,
+7555,
+7555,
+7577,
+7608,
+7635,
+7645,
+7645,
+7651,
+7651,
7664,
-7677,
-7684,
-7701,
-7723,
-7723,
-7723,
-7723,
-7734,
-7734,
-7734,
-7748,
-7748,
-7748,
-7748,
-7759,
-7759,
-7775,
-7775,
-7782,
-7789,
-7817,
+7693,
+7703,
+7717,
+7733,
+7742,
+7742,
+7786,
+7786,
+7808,
7824,
-7831,
-7836,
-7865,
-7865,
-7876,
-7901,
-7901,
-7908,
-7918,
-7938,
-7945,
-7945,
-7957,
-7964,
-7979,
-7986,
-7994,
-8007,
-8007,
-8014,
-8021,
-8061,
+7824,
+7849,
+7859,
+7867,
+7895,
+7895,
+7920,
+7920,
+7920,
+7920,
+7932,
+7941,
+7941,
+7941,
+7941,
+7949,
+7962,
+7962,
+7974,
+7982,
+7982,
+8003,
+8012,
+8012,
+8040,
+8046,
8061,
-8071,
-8088,
-8131,
-8138,
-8153,
-8160,
-8160,
-8160,
-8175,
-8183,
-8197,
-8211,
-8211,
-8211,
-8243,
-8243,
-8243,
-8243,
-8259,
-8259,
-8259,
-8259,
-8259,
-8266,
-8275,
-8281,
-8281,
-8281,
-8281,
-8288,
-8288,
-8309,
-8309,
-8309,
-8330,
-8330,
-8330,
-8330,
-8337,
-8343,
-8343,
-8360,
-8370,
-8370,
-8380,
-8380,
-8386,
-8386,
-8397,
-8415,
-8415,
-8428,
-8454,
-8460,
+8082,
+8094,
+8109,
+8109,
+8118,
+8148,
+8161,
+8161,
+8170,
+8184,
+8190,
+8190,
+8190,
+8190,
+8213,
+8213,
+8223,
+8223,
+8235,
+8235,
+8235,
+8235,
+8235,
+8251,
+8261,
+8261,
+8270,
+8270,
+8270,
+8270,
+8270,
+8285,
+8303,
+8303,
+8303,
+8303,
+8303,
+8303,
+8303,
+8332,
+8332,
+8353,
+8353,
+8362,
+8362,
+8362,
+8396,
+8396,
+8403,
+8403,
+8403,
+8416,
+8416,
+8416,
+8416,
+8416,
+8426,
+8426,
+8426,
+8426,
+8449,
+8455,
+8455,
+8475,
8475,
8492,
-8526,
-8554,
-8554,
-8583,
-8583,
-8583,
-8598,
-8607,
-8617,
-8617,
+8510,
+8510,
+8532,
+8532,
+8532,
+8532,
+8544,
+8544,
+8544,
+8550,
+8576,
+8588,
+8588,
+8600,
+8600,
+8609,
+8615,
8642,
-8652,
-8652,
-8652,
-8662,
-8688,
-8688,
-8704,
-8704,
-8747,
-8765,
-8775,
-8783,
-8811,
-8835,
-8835,
-8835,
-8850,
-8859,
-8884,
-8910,
-8919,
-8952,
-8978,
-8978,
-8991,
-8991,
-8991,
-8999,
-8999,
-8999,
-9030,
-9030,
-9030,
-9030,
-9030,
-9041,
+8642,
+8661,
+8667,
+8667,
+8667,
+8687,
+8701,
+8708,
+8708,
+8728,
+8728,
+8728,
+8728,
+8737,
+8762,
+8789,
+8795,
+8809,
+8809,
+8822,
+8836,
+8836,
+8836,
+8836,
+8836,
+8853,
+8853,
+8853,
+8877,
+8891,
+8906,
+8931,
+8931,
+8931,
+8938,
+8963,
+8963,
+8981,
+8995,
+9013,
+9025,
+9025,
+9025,
+9037,
+9037,
+9048,
+9048,
+9048,
+9048,
+9048,
9048,
9048,
-9054,
-9054,
-9054,
-9086,
-9108,
-9108,
+9048,
+9058,
+9071,
+9083,
+9083,
+9083,
+9095,
9119,
9119,
-9130,
-9144,
-9152,
-9161,
-9174,
-9194,
-9207,
-9207,
-9207,
-9232,
-9242,
-9242,
-9271,
-9290,
-9308,
-9308,
-9308,
-9308,
-9320,
-9333,
-9343,
+9125,
+9125,
+9125,
+9156,
+9156,
+9167,
+9167,
+9167,
+9177,
+9177,
+9211,
+9211,
+9211,
+9225,
+9247,
+9247,
+9263,
+9277,
+9277,
+9294,
+9312,
+9312,
+9312,
+9312,
+9312,
+9312,
+9312,
+9312,
+9312,
+9331,
9356,
-9379,
-9379,
-9379,
-9395,
-9395,
-9406,
-9419,
-9419,
-9419,
-9419,
-9450,
-9485,
-9485,
-9497,
-9497,
-9505,
-9517,
-9528,
-9528,
-9551,
-9564,
-9586,
-9586,
-9608,
-9608,
-9626,
-9626,
-9626,
-9653,
-9653,
-9681,
-9681,
-9681,
-9698,
-9698,
-9698,
-9714,
-9729,
-9737,
-9737,
-9765,
-9765,
-9765,
-9765,
-9765,
-9825,
-9844,
-9866,
-9880,
-9880,
-9880,
-9880,
-9886,
-9895,
-9895,
-9895,
-9895,
-9895,
-9913,
-9913,
-9924,
-9958,
-9958,
+9367,
+9367,
+9387,
+9408,
+9408,
+9408,
+9430,
+9442,
+9442,
+9455,
+9471,
+9480,
+9480,
+9486,
+9486,
+9496,
+9496,
+9496,
+9496,
+9549,
+9549,
+9559,
+9571,
+9571,
+9571,
+9571,
+9590,
+9590,
+9590,
+9590,
+9590,
+9600,
+9616,
+9629,
+9668,
+9668,
+9668,
+9705,
+9724,
+9724,
+9724,
+9750,
+9750,
+9750,
+9756,
+9769,
+9769,
+9769,
+9786,
+9786,
+9820,
+9829,
+9829,
+9835,
+9847,
+9847,
+9861,
+9861,
+9861,
+9875,
+9889,
+9900,
+9909,
+9909,
+9909,
+9916,
+9916,
+9916,
+9916,
+9916,
+9916,
+9916,
+9926,
+9937,
+9943,
+9955,
+9961,
+9961,
+9961,
+9961,
9967,
-9975,
-9975,
-9975,
-9981,
-9998,
-9998,
-9998,
-10012,
-10036,
-10036,
-10066,
-10079,
-10097,
-10121,
-10133,
-10142,
-10142,
-10142,
-10156,
-10173,
-10173,
-10173,
-10196,
-10205,
-10205,
-10205,
-10205,
-10218,
-10234,
-10240,
-10240,
-10240,
-10264,
-10273,
-10286,
-10286,
-10286,
-10286,
-10299,
-10299,
-10309,
-10309,
-10339,
-10358,
-10358,
-10374,
-10374,
-10390,
-10390,
-10413,
-10413,
-10439,
-10461,
-10467,
-10467,
-10467,
-10492,
-10492,
-10501,
-10528,
-10528,
-10528,
-10539,
-10583,
-10583,
-10583,
-10613,
-10613,
-10619,
-10628,
-10645,
-10645,
-10645,
-10650,
-10671,
-10687,
-10709,
-10709,
-10709,
-10709,
-10709,
-10727,
-10727,
-10727,
-10727,
-10733,
-10733,
-10768,
-10768,
-10773,
-10780,
-10788,
-10788,
-10797,
-10797,
-10835,
-10835,
-10845,
-10852,
-10861,
-10861,
-10861,
-10861,
-10861,
-10861,
-10861,
-10875,
-10888,
-10907,
-10907,
-10907,
-10920,
-10920,
-10932,
-10946,
-10977,
+9967,
+9967,
+9967,
+9983,
+9999,
+9999,
+10005,
+10005,
+10022,
+10022,
+10027,
+10027,
+10037,
+10064,
+10064,
+10100,
+10109,
+10109,
+10126,
+10126,
+10169,
+10169,
+10169,
+10169,
+10176,
+10186,
+10200,
+10200,
+10200,
+10221,
+10221,
+10221,
+10221,
+10233,
+10233,
+10243,
+10275,
+10281,
+10287,
+10287,
+10287,
+10287,
+10307,
+10307,
+10329,
+10329,
+10329,
+10345,
+10345,
+10351,
+10351,
+10364,
+10377,
+10377,
+10392,
+10392,
+10402,
+10420,
+10420,
+10437,
+10437,
+10437,
+10462,
+10489,
+10519,
+10529,
+10543,
+10550,
+10550,
+10550,
+10550,
+10567,
+10567,
+10577,
+10577,
+10577,
+10584,
+10600,
+10635,
+10648,
+10691,
+10706,
+10726,
+10738,
+10756,
+10763,
+10763,
+10779,
+10793,
+10808,
+10815,
+10822,
+10828,
+10848,
+10855,
+10865,
+10872,
+10879,
+10905,
+10912,
+10912,
+10912,
+10919,
+10926,
+10945,
+10945,
+10956,
+10963,
10977,
-10997,
-11008,
-11037,
-11059,
-11059,
-11059,
-11067,
-11067,
-11067,
-11067,
-11067,
-11077,
-11091,
-11102,
-11102,
-11112,
-11125,
-11129,
-11129,
-11154,
-11154,
-11154,
-11164,
-11164,
-11189,
-11189,
-11189,
-11189,
-11189,
-11196,
-11196,
-11227,
-11238,
-11247,
-11256,
-11265,
+10984,
+11002,
+11014,
+11021,
+11021,
+11028,
+11044,
+11054,
+11061,
+11082,
+11104,
+11111,
+11127,
+11159,
+11183,
+11183,
+11190,
+11203,
+11209,
+11236,
+11236,
+11236,
11265,
-11286,
-11307,
-11330,
-11337,
-11378,
-11378,
-11389,
-11413,
-11454,
-11469,
-11475,
-11475,
-11475,
-11475,
-11503,
-11503,
-11503,
-11503,
-11534,
-11534,
-11550,
-11550,
-11557,
-11557,
-11557,
-11557,
-11574,
-11585,
-11585,
-11603,
+11288,
+11288,
+11308,
+11321,
+11328,
+11335,
+11374,
+11374,
+11400,
+11409,
+11416,
+11422,
+11440,
+11440,
+11456,
+11463,
+11463,
+11463,
+11463,
+11474,
+11487,
+11495,
+11527,
+11544,
+11572,
+11577,
+11584,
+11584,
+11594,
+11594,
+11601,
+11601,
+11607,
+11607,
+11622,
+11626,
+11626,
11626,
-11643,
-11643,
-11643,
-11643,
-11663,
-11663,
-11682,
-11696,
-11696,
-11696,
-11696,
-11706,
-11706,
-11706,
-11706,
-11723,
-11723,
-11757,
-11757,
-11773,
+11641,
+11646,
+11658,
+11658,
+11665,
+11690,
+11704,
+11711,
+11751,
+11777,
11795,
-11813,
-11836,
-11836,
-11883,
-11903,
-11952,
-11965,
-11965,
-11984,
-11997,
-12008,
-12008,
-12008,
-12024,
-12043,
-12065,
-12071,
-12099,
-12129,
-12140,
-12140,
-12146,
-12161,
-12161,
-12161,
-12161,
-12167,
+11795,
+11822,
+11841,
+11865,
+11872,
+11872,
+11879,
+11886,
+11902,
+11916,
+11932,
+11939,
+11946,
+11946,
+11959,
+11979,
+11987,
+12010,
+12017,
+12017,
+12022,
+12046,
+12046,
+12061,
+12073,
+12080,
+12080,
+12080,
+12109,
+12109,
+12115,
+12130,
+12152,
12167,
-12180,
-12186,
-12208,
-12226,
-12243,
-12243,
-12252,
-12252,
-12274,
-12289,
+12181,
+12181,
+12188,
+12210,
+12228,
+12255,
+12255,
+12279,
12302,
-12302,
-12313,
-12313,
-12313,
-12313,
-12358,
-12358,
-12358,
-12369,
-12375,
-12391,
-12391,
-12391,
-12391,
-12405,
-12410,
-12416,
-12416,
-12436,
-12436,
-12436,
-12443,
-12443,
-12462,
-12477,
-12492,
-12492,
-12503,
-12519,
-12525,
-12531,
-12571,
-12571,
-12591,
+12345,
+12361,
+12373,
+12373,
+12373,
+12373,
+12378,
+12394,
+12441,
+12455,
+12455,
+12466,
+12473,
+12480,
+12495,
+12495,
+12502,
+12510,
+12517,
+12527,
+12527,
+12549,
+12556,
12591,
-12601,
-12641,
-12641,
-12641,
-12657,
-12657,
-12657,
-12699,
-12699,
-12699,
-12712,
-12728,
-12744,
-12761,
-12769,
-12782,
-12793,
-12823,
-12836,
-12851,
-12863,
+12604,
+12620,
+12647,
+12668,
+12675,
+12675,
+12696,
+12709,
+12733,
+12773,
+12787,
+12815,
+12822,
+12832,
+12850,
+12850,
+12865,
+12872,
12890,
-12900,
-12900,
-12900,
-12910,
-12910,
-12924,
-12924,
-12924,
-12924,
-12924,
-12952,
-12984,
-13003,
-13038,
-13038,
-13056,
-13056,
-13056,
-13056,
-13074,
-13081,
-13093,
-13103,
-13103,
-13112,
-13119,
-13132,
-13132,
-13132,
-13141,
-13151,
-13183,
-13193,
-13206,
-13206,
-13206,
-13236,
-13252,
-13267,
-13267,
-13294,
+12913,
+12920,
+12927,
+12940,
+12964,
+12971,
+12993,
+13006,
+13006,
+13037,
+13059,
+13073,
+13085,
+13105,
+13105,
+13117,
+13117,
+13152,
+13176,
+13221,
+13228,
+13261,
+13293,
13307,
13307,
13307,
-13343,
-13349,
-13349,
-13349,
-13375,
-13375,
-13375,
-13384,
-13384,
-13384,
-13393,
-13393,
-13393,
-13402,
-13414,
-13425,
-13445,
-13467,
-13485,
-13499,
-13509,
-13528,
-13528,
-13549,
-13549,
-13559,
-13570,
-13570,
-13570,
-13570,
-13598,
-13637,
-13647,
-13647,
-13661,
-13673,
-13682,
-13687,
-13694,
-13694,
-13720,
-13733,
-13742,
-13748,
-13771,
-13795,
-13795,
-13814,
-13821,
-13821,
-13855,
-13862,
-13862,
-13862,
-13874,
-13874,
-13897,
-13909,
-13909,
-13947,
-13947,
-13952,
-13952,
+13307,
+13307,
+13327,
+13327,
+13345,
+13345,
+13352,
+13352,
+13352,
+13352,
+13371,
+13392,
+13399,
+13399,
+13399,
+13406,
+13406,
+13442,
+13442,
+13458,
+13458,
+13498,
+13505,
+13526,
+13543,
+13590,
+13617,
+13629,
+13666,
+13690,
+13690,
+13707,
+13732,
+13737,
+13744,
+13756,
+13796,
+13804,
+13867,
+13895,
+13913,
+13913,
+13938,
+13945,
+13945,
+13950,
13970,
-13979,
-13979,
-13979,
-14008,
-14049,
-14049,
-14049,
-14049,
-14049,
-14049,
-14060,
-14083,
-14083,
-14091,
-14101,
-14101,
-14101,
-14101,
-14118,
-14136,
-14195,
-14195,
-14195,
-14213,
-14213,
-14232,
-14232,
-14253,
-14253,
-14258,
-14275,
-14275,
-14304,
-14311,
-14311,
-14318,
-14318,
-14318,
-14318,
-14318,
-14318,
-14325,
-14325,
-14345,
-14345,
-14379,
-14389,
-14422,
-14422,
-14422,
-14422,
-14435,
-14441,
-14441,
+13982,
+13982,
+13989,
+14015,
+14027,
+14047,
+14047,
+14047,
+14075,
+14087,
+14087,
+14111,
+14111,
+14111,
+14111,
+14117,
+14139,
+14155,
+14167,
+14188,
+14216,
+14234,
+14248,
+14262,
+14276,
+14283,
+14297,
+14315,
+14322,
+14322,
+14344,
+14370,
+14391,
+14407,
+14407,
+14428,
+14451,
14460,
14460,
-14471,
-14471,
-14481,
-14495,
-14495,
-14495,
-14502,
-14502,
-14502,
-14502,
-14524,
-14533,
-14541,
-14552,
-14552,
-14552,
-14552,
-14563,
-14563,
-14568,
-14568,
-14585,
-14595,
-14602,
-14628,
-14628,
-14645,
-14672,
+14470,
+14470,
+14477,
+14477,
+14477,
+14515,
+14531,
+14545,
+14575,
+14599,
+14611,
+14627,
+14634,
+14656,
+14663,
+14670,
14678,
-14697,
-14697,
-14734,
-14757,
-14764,
-14771,
-14771,
+14678,
+14701,
+14701,
+14708,
+14715,
+14738,
+14744,
+14744,
14771,
-14796,
-14815,
-14822,
-14845,
-14861,
-14861,
-14861,
-14873,
-14873,
-14873,
-14902,
-14920,
-14920,
-14926,
-14926,
-14926,
-14941,
-14949,
-14949,
-14949,
-14949,
-14949,
-14960,
-14960,
-14971,
-14971,
+14805,
+14805,
+14805,
+14817,
+14826,
+14837,
+14849,
+14856,
+14856,
+14856,
+14867,
+14875,
+14901,
+14915,
+14933,
+14946,
+14953,
+14953,
14998,
15003,
15003,
-15003,
-15013,
-15013,
-15027,
-15027,
-15027,
-15043,
-15053,
-15063,
+15011,
+15028,
+15028,
+15038,
+15057,
+15064,
+15064,
+15064,
15074,
-15083,
-15093,
-15093,
-15121,
-15121,
-15128,
-15128,
-15144,
-15144,
-15144,
-15144,
-15165,
-15170,
-15170,
-15170,
-15170,
-15170,
-15170,
-15170,
-15186,
-15206,
-15206,
-15206,
-15224,
-15236,
-15236,
-15252,
-15258,
-15258,
-15258,
-15258,
-15264,
-15277,
-15288,
-15307,
-15307,
-15318,
-15328,
-15328,
-15334,
-15334,
-15363,
-15399,
-15399,
-15422,
-15438,
-15447,
-15447,
-15456,
-15456,
-15456,
-15495,
-15495,
-15495,
-15495,
-15511,
-15511,
-15530,
-15557,
+15074,
+15114,
+15129,
+15145,
+15160,
+15169,
+15169,
+15177,
+15190,
+15205,
+15230,
+15240,
+15240,
+15263,
+15278,
+15302,
+15311,
+15311,
+15311,
+15329,
+15361,
+15387,
+15400,
+15424,
+15483,
+15483,
+15509,
+15527,
+15527,
+15527,
+15547,
+15556,
15566,
-15582,
-15590,
-15590,
-15604,
-15604,
-15625,
-15635,
-15655,
-15655,
-15655,
-15655,
-15655,
-15665,
-15675,
-15675,
-15675,
-15675,
-15675,
-15682,
-15682,
-15682,
-15694,
-15719,
-15749,
-15749,
-15794,
-15794,
-15837,
-15854,
-15854,
-15861,
-15861,
-15861,
-15861,
-15884,
-15900,
-15911,
-15931,
-15931,
-15931,
-15931,
-15931,
-15963,
+15566,
+15566,
+15566,
+15571,
+15578,
+15587,
+15587,
+15587,
+15587,
+15601,
+15616,
+15623,
+15662,
+15677,
+15677,
+15715,
+15715,
+15715,
+15747,
+15786,
+15793,
+15793,
+15802,
+15809,
+15852,
+15852,
+15852,
+15866,
+15882,
+15882,
+15921,
+15921,
+15928,
+15938,
+15938,
+15950,
+15950,
15963,
-15996,
-16006,
-16013,
-16024,
+15988,
+15988,
+15995,
+16010,
16034,
-16049,
-16049,
-16049,
-16059,
-16059,
-16059,
-16059,
-16059,
-16059,
-16059,
-16064,
-16075,
-16104,
-16104,
-16117,
-16124,
-16124,
-16124,
-16124,
-16130,
-16145,
-16159,
-16190,
-16193,
-16196,
-16210,
-16224,
+16058,
+16069,
+16085,
+16094,
+16106,
+16121,
+16131,
+16131,
+16162,
+16169,
+16191,
+16201,
+16211,
+16211,
+16211,
+16223,
+16235,
+16235,
+16235,
+16235,
16243,
-16255,
-16261,
-16280,
-16283,
-16292,
-16295,
-16295,
-16301,
-16304,
-16322,
-16325,
-16328,
-16349,
-16355,
-16382,
-16408,
-16414,
-16414,
-16414,
-16458,
-16477,
-16480,
-16485,
-16488,
-16514,
-16520,
-16530,
-16530,
-16546,
-16562,
+16258,
+16258,
+16271,
+16285,
+16308,
+16347,
+16379,
+16392,
+16403,
+16410,
+16432,
+16474,
+16474,
+16491,
+16508,
+16508,
+16523,
+16523,
+16539,
+16539,
+16539,
+16539,
+16539,
+16549,
+16573,
+16597,
16597,
-16603,
-16622,
-16622,
-16646,
-16669,
-16672,
-16715,
-16715,
-16715,
-16718,
-16718,
-16727,
-16733,
-16752,
-16770,
-16787,
-16794,
-16810,
-16827,
-16840,
-16850,
-16876,
-16901,
-16901,
-16901,
+16604,
+16604,
+16614,
+16624,
+16632,
+16658,
+16658,
+16664,
+16688,
+16688,
+16688,
+16688,
+16698,
+16707,
+16721,
+16730,
+16759,
+16759,
+16766,
+16800,
+16819,
+16819,
+16834,
+16847,
+16863,
+16870,
+16880,
+16909,
+16909,
16916,
-16919,
-16926,
+16916,
+16922,
16943,
-16972,
-16978,
-16978,
-16978,
-16981,
-17008,
-17008,
-17016,
-17053,
-17053,
-17053,
-17053,
-17072,
-17086,
-17105,
-17139,
-17153,
-17162,
-17162,
-17177,
-17177,
-17177,
-17177,
-17195,
-17218,
-17221,
-17221,
+16959,
+16965,
+16965,
+17006,
+17030,
+17037,
+17037,
+17052,
+17059,
+17059,
+17059,
+17059,
+17085,
+17085,
+17099,
+17112,
+17145,
+17145,
+17151,
+17166,
+17166,
+17183,
+17183,
+17204,
+17211,
+17211,
17237,
-17276,
-17276,
-17300,
-17319,
-17339,
-17357,
-17370,
-17383,
-17400,
-17407,
-17419,
-17439,
-17439,
-17449,
-17465,
-17475,
-17504,
-17527,
-17527,
-17534,
-17548,
-17564,
-17564,
-17598,
-17598,
-17601,
-17630,
-17649,
-17669,
-17669,
-17679,
-17686,
-17757,
-17776,
-17796,
-17810,
-17840,
-17840,
+17252,
+17259,
+17266,
+17266,
+17273,
+17273,
+17273,
+17273,
+17283,
+17283,
+17283,
+17283,
+17283,
+17306,
+17327,
+17327,
+17338,
+17344,
+17368,
+17405,
+17405,
+17405,
+17426,
+17426,
+17443,
+17455,
+17466,
+17479,
+17531,
+17550,
+17550,
+17563,
+17597,
+17607,
+17677,
+17691,
+17701,
+17704,
+17714,
+17714,
+17736,
+17746,
+17756,
+17764,
+17800,
+17850,
+17853,
+17867,
17877,
-17884,
-17884,
-17911,
-17936,
-17970,
-17980,
-17995,
-17995,
-18008,
-18011,
-18036,
-18075,
-18097,
-18097,
-18104,
-18115,
-18115,
-18129,
-18134,
-18141,
-18141,
-18157,
-18180,
-18190,
-18217,
-18224,
-18252,
-18284,
-18284,
-18296,
+17887,
+17897,
+17927,
+17977,
+17987,
+17993,
+18000,
+18019,
+18034,
+18041,
+18051,
+18051,
+18065,
+18102,
+18117,
+18123,
+18144,
+18169,
+18182,
+18198,
+18218,
+18282,
+18289,
18299,
-18312,
-18322,
-18338,
-18348,
-18348,
-18363,
-18372,
-18387,
-18387,
-18390,
-18402,
-18445,
-18445,
-18445,
-18466,
-18479,
-18479,
-18498,
-18508,
-18511,
-18511,
-18511,
-18511,
-18511,
-18526,
-18558,
-18586,
-18622,
-18643,
-18670,
-18686,
-18710,
-18720,
-18739,
-18739,
-18742,
-18745,
+18317,
+18320,
+18323,
+18329,
+18361,
+18388,
+18388,
+18407,
+18420,
+18423,
+18471,
+18500,
+18500,
+18521,
+18524,
+18539,
+18553,
+18553,
+18566,
+18566,
+18573,
+18599,
+18602,
+18609,
+18628,
+18645,
+18648,
+18655,
+18666,
+18676,
+18683,
+18683,
+18683,
+18708,
+18715,
+18721,
+18747,
+18747,
+18761,
+18761,
18771,
-18774,
-18777,
-18791,
-18813,
-18816,
-18822,
-18839,
-18845,
+18788,
+18805,
+18805,
+18826,
+18832,
+18838,
+18848,
+18851,
18851,
-18854,
-18878,
-18881,
-18896,
-18896,
-18899,
-18926,
-18937,
-18940,
-18953,
-18963,
-19010,
-19010,
-19017,
-19046,
-19060,
-19060,
-19087,
+18868,
+18887,
+18890,
+18893,
+18893,
+18902,
+18921,
+18924,
+18927,
+18930,
+18933,
+18958,
+18958,
+18970,
+18989,
+18989,
+19029,
+19032,
+19053,
+19070,
+19073,
19095,
-19101,
-19101,
-19128,
-19146,
-19157,
-19157,
-19188,
-19198,
-19205,
-19223,
-19230,
-19255,
-19280,
-19280,
-19283,
-19292,
-19301,
-19320,
-19323,
-19323,
-19341,
-19341,
-19365,
-19378,
-19381,
+19102,
+19109,
+19119,
+19139,
+19165,
+19193,
+19209,
+19233,
+19261,
+19275,
+19316,
+19316,
+19316,
+19326,
+19326,
+19348,
+19354,
+19360,
+19367,
+19367,
+19367,
+19380,
+19387,
19394,
-19423,
+19420,
19433,
-19440,
-19466,
-19490,
-19490,
-19490,
-19497,
+19436,
+19447,
+19472,
+19482,
+19485,
+19495,
+19504,
19504,
-19511,
-19511,
-19518,
-19545,
-19568,
-19575,
-19575,
-19583,
-19586,
-19592,
-19592,
-19609,
-19622,
-19629,
-19641,
-19641,
-19656,
-19673,
-19700,
-19723,
-19733,
-19746,
-19759,
-19769,
-19782,
-19789,
-19795,
-19831,
-19834,
-19841,
-19851,
-19854,
-19880,
-19895,
-19898,
-19898,
+19521,
+19521,
+19521,
+19536,
+19536,
+19553,
+19553,
+19553,
+19567,
+19570,
+19570,
+19589,
+19602,
+19602,
+19610,
+19617,
+19620,
+19620,
+19635,
+19635,
+19663,
+19693,
+19696,
+19699,
+19728,
+19734,
+19760,
+19763,
+19766,
+19766,
+19783,
+19792,
+19792,
+19792,
+19809,
+19842,
+19845,
+19884,
19911,
-19922,
-19950,
-20020,
-20030,
+19941,
+19941,
+19956,
+19959,
+19994,
+20007,
+20019,
+20031,
+20041,
20059,
-20062,
-20089,
-20107,
-20151,
-20154,
-20175,
-20205,
-20208,
-20229,
-20229,
-20255,
-20261,
-20261,
-20283,
-20335,
-20362,
-20385,
-20392,
-20392,
-20392,
-20392,
-20418,
-20418,
-20418,
-20418,
-20443,
-20446,
-20446,
-20452,
-20452,
-20467,
-20467,
+20071,
+20074,
+20108,
+20115,
+20131,
+20131,
+20139,
+20159,
+20162,
+20181,
+20207,
+20213,
+20234,
+20240,
+20262,
+20265,
+20280,
+20299,
+20311,
+20323,
+20326,
+20326,
+20326,
+20329,
+20329,
+20329,
+20332,
+20332,
+20332,
+20376,
+20401,
+20428,
+20444,
+20444,
+20444,
+20460,
20489,
-20489,
-20498,
-20525,
-20554,
-20560,
-20575,
-20589,
+20499,
+20528,
+20548,
+20548,
+20567,
+20567,
+20567,
+20567,
20589,
-20589,
-20614,
-20652,
-20659,
-20659,
-20668,
-20679,
+20610,
+20621,
+20650,
+20650,
+20663,
+20666,
+20669,
20679,
-20679,
-20685,
-20685,
-20685,
-20685,
-20685,
-20685,
-20696,
-20733,
-20760,
+20695,
+20707,
+20726,
20766,
-20769,
-20792,
-20792,
-20792,
-20792,
-20813,
-20813,
-20813,
-20813,
-20826,
-20826,
-20846,
-20862,
-20880,
-20887,
-20901,
-20908,
-20933,
+20778,
+20793,
+20796,
+20821,
+20821,
+20824,
+20833,
+20849,
+20864,
+20864,
+20879,
+20879,
+20888,
+20888,
+20899,
+20899,
+20911,
+20911,
+20917,
20938,
-20958,
-20969,
-20978,
-20978,
-20978,
-20985,
-20985,
-20985,
-21000,
-21010,
-21010,
-21014,
-21026,
-21033,
-21041,
-21041,
+20961,
+20974,
+21001,
+21039,
21051,
21051,
-21064,
-21071,
-21113,
-21120,
-21120,
-21127,
-21134,
-21142,
-21164,
-21164,
-21164,
-21188,
-21195,
-21208,
-21215,
-21226,
-21226,
-21226,
-21238,
-21249,
-21255,
-21255,
-21265,
-21279,
-21296,
+21087,
+21104,
+21104,
+21126,
+21135,
+21138,
+21159,
+21165,
+21168,
+21174,
+21174,
+21213,
+21216,
+21250,
+21250,
+21263,
+21287,
21301,
-21315,
-21321,
-21331,
-21331,
-21331,
-21337,
-21343,
-21343,
-21351,
-21351,
-21361,
-21368,
-21383,
-21383,
+21310,
+21338,
+21365,
21389,
-21413,
-21437,
-21449,
-21462,
-21478,
-21506,
-21534,
-21546,
-21546,
-21557,
-21580,
-21595,
+21398,
+21420,
+21426,
+21429,
+21450,
+21453,
+21475,
+21507,
+21513,
+21516,
+21519,
+21522,
+21530,
+21533,
+21545,
+21548,
+21564,
+21564,
21595,
21595,
-21595,
-21626,
-21626,
-21646,
-21670,
-21676,
-21688,
-21688,
-21716,
-21731,
-21762,
-21762,
-21762,
+21607,
+21621,
+21621,
+21629,
+21650,
+21659,
+21659,
+21659,
+21659,
+21659,
+21659,
+21662,
+21662,
+21694,
+21694,
+21694,
+21704,
+21729,
21762,
-21762,
-21783,
-21789,
-21799,
-21828,
-21828,
-21837,
-21845,
-21868,
-21874,
-21874,
-21880,
-21880,
-21889,
-21901,
-21910,
-21941,
-21941,
-21959,
-21959,
-21959,
-21966,
-21966,
-21972,
-21972,
-21995,
-22011,
-22043,
-22043,
-22051,
-22051,
-22060,
-22060,
-22060,
-22074,
-22086,
-22086,
-22099,
-22099,
-22120,
-22120,
-22134,
-22144,
-22150,
-22158,
-22164,
-22164,
-22171,
-22199,
-22210,
-22210,
-22210,
-22220,
-22228,
-22228,
-22239,
-22261,
-22304,
-22304,
-22312,
-22349,
-22349,
-22349,
-22357,
-22381,
-22381,
-22390,
-22390,
-22390,
-22390,
-22402,
-22413,
-22413,
-22422,
-22422,
-22445,
-22445,
-22445,
-22456,
-22456,
-22469,
-22479,
-22501,
-22512,
-22528,
-22528,
-22528,
-22528,
-22528,
-22528,
-22528,
-22540,
-22540,
-22546,
-22546,
-22546,
-22546,
-22569,
-22591,
-22591,
-22591,
-22591,
-22610,
-22655,
-22655,
-22667,
-22667,
-22677,
-22677,
-22692,
-22692,
-22702,
-22702,
-22702,
-22717,
-22736,
-22750,
-22755,
-22780,
-22785,
-22822,
+21795,
+21816,
+21826,
+21826,
+21826,
+21829,
+21829,
+21838,
+21891,
+21900,
+21900,
+21913,
+21931,
+21931,
+21931,
+21948,
+21955,
+21955,
+21973,
+21973,
+21973,
+21998,
+21998,
+21998,
+22005,
+22005,
+22008,
+22016,
+22040,
+22071,
+22098,
+22098,
+22105,
+22141,
+22141,
+22141,
+22141,
+22154,
+22154,
+22154,
+22154,
+22154,
+22168,
+22176,
+22188,
+22188,
+22206,
+22217,
+22226,
+22226,
+22237,
+22260,
+22260,
+22273,
+22273,
+22283,
+22300,
+22314,
+22327,
+22334,
+22344,
+22344,
+22351,
+22351,
+22351,
+22367,
+22380,
+22392,
+22403,
+22415,
+22437,
+22454,
+22462,
+22462,
+22462,
+22470,
+22496,
+22522,
+22522,
+22539,
+22539,
+22539,
+22562,
+22580,
+22580,
+22596,
+22614,
+22630,
+22645,
+22645,
+22664,
+22664,
+22664,
+22701,
+22708,
+22719,
+22719,
+22719,
+22719,
+22719,
+22719,
+22719,
+22719,
+22740,
+22778,
+22778,
+22778,
+22791,
+22817,
22844,
-22859,
+22856,
+22856,
+22856,
+22856,
+22856,
+22864,
22871,
-22909,
-22949,
-22962,
-22973,
+22908,
+22920,
+22930,
+22930,
+22930,
+22950,
+22950,
+22961,
22979,
-22988,
-23007,
-23027,
-23035,
-23072,
-23082,
-23082,
-23109,
-23116,
-23130,
+23001,
+23014,
+23014,
+23026,
+23037,
+23037,
+23057,
+23057,
+23079,
+23111,
+23148,
23158,
23166,
-23166,
-23172,
-23177,
-23189,
-23219,
-23219,
-23250,
-23273,
-23281,
-23281,
-23281,
-23281,
-23281,
+23183,
+23183,
+23190,
+23212,
+23235,
+23235,
+23235,
+23235,
+23235,
+23235,
+23241,
+23241,
+23262,
+23262,
23287,
-23287,
-23299,
-23305,
+23300,
+23300,
23315,
23315,
-23321,
-23328,
-23334,
-23355,
+23327,
+23342,
+23342,
23355,
-23355,
-23355,
-23355,
-23366,
-23390,
-23396,
-23396,
-23396,
-23396,
-23402,
-23418,
-23424,
-23424,
-23438,
-23446,
-23446,
-23446,
-23500,
-23525,
-23569,
-23592,
-23592,
-23592,
-23605,
-23614,
-23614,
-23614,
-23627,
-23633,
-23657,
-23673,
+23399,
+23399,
+23439,
+23439,
+23439,
+23460,
+23467,
+23487,
+23487,
+23487,
+23487,
+23487,
+23506,
+23506,
+23517,
+23580,
+23580,
+23580,
+23594,
+23594,
+23594,
+23604,
+23604,
+23604,
+23604,
+23623,
+23635,
+23645,
+23645,
+23652,
+23658,
+23665,
23673,
23673,
-23689,
-23689,
-23701,
-23701,
-23701,
-23713,
-23713,
-23713,
+23700,
+23700,
+23716,
23738,
-23758,
-23775,
-23775,
-23794,
-23794,
-23803,
-23803,
-23803,
-23803,
-23813,
-23826,
-23845,
-23845,
-23845,
-23845,
-23872,
-23872,
-23872,
-23888,
-23888,
-23900,
-23900,
-23906,
-23906,
-23906,
-23906,
-23906,
-23924,
-23924,
-23924,
-23930,
-23930,
-23939,
-23949,
+23745,
+23745,
+23745,
+23751,
+23765,
+23778,
+23788,
+23788,
+23788,
+23788,
+23801,
+23821,
+23833,
+23840,
+23853,
+23866,
+23893,
+23893,
+23893,
+23921,
+23921,
+23931,
+23931,
+23931,
+23942,
+23942,
23971,
-23971,
-23971,
-24000,
-24012,
-24042,
-24042,
-24042,
-24042,
-24042,
-24070,
-24076,
-24094,
-24094,
-24094,
-24123,
-24123,
-24123,
-24134,
-24150,
-24150,
-24150,
-24150,
-24150,
-24150,
-24155,
-24179,
-24179,
-24189,
-24189,
-24189,
-24198,
-24198,
-24218,
-24218,
-24218,
-24234,
-24251,
-24257,
-24276,
-24305,
-24321,
-24321,
-24321,
-24334,
-24334,
-24334,
-24349,
-24356,
-24361,
-24372,
-24372,
-24372,
-24388,
-24396,
-24396,
-24402,
-24410,
-24410,
-24428,
-24428,
-24450,
-24450,
-24467,
-24485,
-24495,
-24495,
-24495,
-24507,
-24507,
-24514,
-24531,
-24531,
-24531,
-24531,
-24531,
-24537,
-24537,
-24558,
+23978,
+23978,
+23978,
+23994,
+24001,
+24001,
+24008,
+24023,
+24079,
+24079,
+24079,
+24091,
+24102,
+24119,
+24119,
+24126,
+24131,
+24147,
+24167,
+24191,
+24207,
+24217,
+24217,
+24243,
+24243,
+24254,
+24254,
+24254,
+24254,
+24275,
+24301,
+24309,
+24322,
+24336,
+24345,
+24364,
+24364,
+24364,
+24373,
+24382,
+24390,
+24390,
+24390,
+24390,
+24390,
+24397,
+24397,
+24404,
+24424,
+24424,
+24430,
+24440,
+24447,
+24460,
+24466,
+24496,
+24506,
+24506,
+24506,
+24506,
+24517,
+24530,
+24540,
+24557,
+24572,
+24572,
24572,
-24584,
-24584,
-24601,
-24601,
-24607,
-24615,
-24615,
-24632,
-24632,
-24632,
-24632,
-24661,
-24676,
-24676,
-24724,
-24751,
-24751,
-24774,
-24774,
-24783,
-24793,
-24793,
-24793,
-24813,
-24819,
-24819,
-24826,
-24826,
-24842,
-24858,
-24872,
-24872,
-24890,
-24890,
-24890,
-24890,
-24890,
-24890,
-24890,
-24890,
-24890,
-24906,
-24906,
-24917,
-24928,
-24947,
-24947,
-24947,
-24947,
-24947,
-24947,
-24947,
-24947,
-24947,
-24963,
-24983,
-24991,
-24991,
-24991,
-24991,
-24991,
-24991,
-24991,
-24991,
-25007,
-25007,
-25007,
-25007,
-25007,
-25007,
-25007,
-25030,
-25040,
-25040,
-25040,
-25040,
-25040,
-25059,
-25097,
-25132,
-25149,
-25159,
-25169,
-25169,
-25169,
-25192,
-25192,
-25192,
-25192,
-25205,
-25205,
-25216,
-25221,
-25221,
-25233,
-25233,
-25240,
-25250,
-25256,
-25273,
-25273,
-25303,
-25321,
-25321,
-25321,
-25333,
-25333,
-25333,
-25333,
-25370,
-25370,
-25402,
-25418,
-25418,
-25439,
-25439,
-25454,
-25454,
-25454,
-25463,
+24581,
+24591,
+24616,
+24631,
+24652,
+24652,
+24682,
+24688,
+24706,
+24729,
+24747,
+24747,
+24747,
+24747,
+24747,
+24747,
+24771,
+24801,
+24825,
+24825,
+24825,
+24857,
+24876,
+24892,
+24892,
+24915,
+24915,
+24934,
+24953,
+24953,
+24969,
+24969,
+24978,
+24978,
+24978,
+24986,
+25009,
+25033,
+25033,
+25033,
+25033,
+25044,
+25054,
+25054,
+25075,
+25096,
+25102,
+25113,
+25113,
+25135,
+25142,
+25152,
+25167,
+25174,
+25209,
+25209,
+25219,
+25226,
+25226,
+25242,
+25242,
+25247,
+25247,
+25255,
+25263,
+25270,
+25270,
+25305,
+25311,
+25311,
+25355,
+25368,
+25375,
+25375,
+25375,
+25375,
+25375,
+25375,
+25396,
+25406,
+25406,
+25406,
+25406,
+25406,
+25406,
+25406,
+25416,
25477,
-25526,
-25526,
-25526,
-25526,
+25484,
+25490,
+25497,
+25497,
+25517,
+25517,
+25517,
25545,
-25562,
-25572,
-25572,
-25582,
-25582,
-25582,
-25597,
-25610,
-25634,
-25641,
-25641,
-25641,
-25668,
-25668,
-25675,
-25707,
-25727,
-25727,
-25741,
-25756,
-25756,
-25779,
-25811,
-25811,
-25811,
-25817,
-25817,
-25817,
-25827,
-25827,
-25827,
-25827,
-25827,
-25836,
-25836,
-25836,
-25836,
-25850,
-25850,
-25860,
+25557,
+25574,
+25574,
+25574,
+25590,
+25596,
+25607,
+25607,
+25615,
+25615,
+25645,
+25658,
+25672,
+25672,
+25672,
+25689,
+25700,
+25723,
+25723,
+25723,
+25736,
+25736,
+25736,
+25736,
+25736,
+25764,
+25764,
+25772,
+25772,
+25772,
+25772,
+25772,
+25772,
+25772,
+25772,
+25804,
+25804,
+25804,
+25804,
+25830,
+25856,
+25856,
+25856,
+25872,
+25877,
25884,
25901,
-25922,
-25936,
-25946,
-25969,
-25969,
-25969,
-25969,
-25975,
+25901,
+25914,
+25929,
+25929,
+25952,
25975,
-25987,
-25987,
-26065,
-26065,
-26065,
-26084,
-26084,
-26103,
-26128,
-26141,
+25997,
+26022,
+26022,
+26046,
+26056,
+26056,
+26086,
+26129,
26151,
-26169,
-26169,
-26169,
-26180,
-26191,
-26191,
-26191,
-26197,
-26197,
+26160,
+26185,
+26194,
+26194,
26205,
-26211,
-26235,
-26235,
-26235,
-26235,
-26235,
-26235,
-26245,
-26245,
-26259,
-26259,
+26205,
+26214,
+26220,
+26231,
+26231,
+26231,
+26231,
+26241,
26259,
26259,
-26284,
-26284,
-26325,
-26325,
-26355,
-26364,
-26364,
-26402,
-26418,
-26418,
-26425,
-26432,
-26432,
-26454,
-26504,
-26513,
-26525,
-26525,
-26525,
-26525,
-26525,
-26545,
-26545,
-26571,
-26590,
-26597,
-26597,
-26597,
-26597,
-26597,
-26639,
-26648,
-26659,
-26666,
-26672,
-26672,
-26672,
-26672,
-26672,
-26694,
-26701,
-26701,
-26701,
-26724,
-26724,
-26746,
-26753,
-26774,
-26774,
-26774,
-26774,
-26806,
-26824,
-26824,
-26830,
-26852,
-26882,
-26882,
-26889,
-26889,
-26889,
-26889,
-26889,
-26889,
-26903,
-26911,
-26918,
-26918,
-26928,
-26948,
-26948,
-26970,
-26970,
-26985,
-26996,
-27045,
+26287,
+26293,
+26300,
+26300,
+26317,
+26335,
+26335,
+26335,
+26344,
+26374,
+26374,
+26374,
+26374,
+26374,
+26374,
+26392,
+26408,
+26416,
+26437,
+26437,
+26443,
+26457,
+26471,
+26485,
+26485,
+26485,
+26485,
+26485,
+26485,
+26506,
+26521,
+26550,
+26550,
+26564,
+26575,
+26598,
+26606,
+26606,
+26618,
+26618,
+26633,
+26649,
+26656,
+26656,
+26656,
+26656,
+26669,
+26669,
+26669,
+26679,
+26709,
+26718,
+26718,
+26725,
+26732,
+26732,
+26732,
+26755,
+26765,
+26765,
+26786,
+26807,
+26814,
+26814,
+26814,
+26837,
+26858,
+26881,
+26899,
+26909,
+26909,
+26909,
+26936,
+26936,
+26943,
+26957,
+26963,
+26980,
+27009,
+27041,
27045,
-27058,
-27058,
-27068,
-27068,
-27104,
-27155,
-27155,
-27155,
-27155,
-27155,
-27172,
-27172,
-27172,
-27172,
-27189,
-27195,
-27195,
-27223,
-27223,
-27223,
-27223,
-27244,
-27290,
-27322,
-27332,
-27364,
-27371,
-27371,
-27371,
-27401,
-27401,
-27417,
-27417,
-27431,
-27470,
-27470,
-27470,
-27470,
-27484,
-27484,
-27484,
-27484,
-27484,
-27496,
-27496,
-27515,
-27515,
-27543,
-27560,
-27576,
-27604,
-27622,
-27631,
-27631,
-27638,
-27649,
-27672,
-27682,
-27682,
-27682,
-27707,
-27717,
-27724,
+27091,
+27100,
+27109,
+27130,
+27141,
+27153,
+27153,
+27184,
+27190,
+27190,
+27190,
+27199,
+27214,
+27214,
+27230,
+27239,
+27239,
+27239,
+27239,
+27256,
+27268,
+27275,
+27275,
+27295,
+27295,
+27301,
+27301,
+27301,
+27340,
+27346,
+27346,
+27354,
+27373,
+27373,
+27373,
+27373,
+27392,
+27424,
+27460,
+27474,
+27474,
+27489,
+27497,
+27497,
+27497,
+27497,
+27547,
+27580,
+27580,
+27598,
+27598,
+27626,
+27626,
+27644,
+27644,
+27644,
+27668,
+27675,
+27702,
+27714,
27732,
-27755,
-27755,
-27755,
-27768,
-27768,
-27783,
-27789,
-27799,
-27799,
-27799,
-27818,
-27826,
-27838,
-27848,
-27848,
-27848,
-27855,
-27862,
-27862,
+27744,
+27744,
+27744,
+27744,
+27758,
+27758,
+27758,
+27764,
+27764,
+27771,
+27771,
+27781,
+27793,
+27793,
+27793,
+27808,
+27813,
+27813,
+27819,
+27831,
+27844,
+27867,
+27883,
27896,
-27921,
-27921,
-27943,
-27954,
-27954,
-27976,
-27976,
-27976,
-27985,
-28002,
-28012,
-28019,
-28034,
-28034,
-28046,
-28068,
-28097,
-28122,
-28122,
-28131,
-28137,
-28151,
-28151,
-28172,
-28190,
-28196,
-28211,
-28211,
-28264,
-28273,
-28286,
-28324,
-28324,
-28324,
-28354,
-28354,
-28361,
-28397,
-28417,
-28417,
-28424,
-28435,
-28461,
-28461,
-28470,
-28483,
-28483,
-28483,
-28483,
-28483,
-28483,
-28483,
-28515,
-28531,
-28531,
-28549,
-28575,
-28575,
-28575,
-28582,
-28599,
-28615,
-28630,
-28630,
-28672,
-28711,
-28723,
-28723,
-28731,
-28752,
-28752,
-28752,
-28763,
-28763,
-28775,
-28775,
-28775,
-28775,
-28775,
-28775,
-28805,
-28814,
-28830,
-28861,
-28882,
-28882,
-28902,
-28918,
-28937,
-28952,
-28959,
+27924,
+27924,
+27924,
+27924,
+27931,
+27931,
+27931,
+27931,
+27939,
+27945,
+27956,
+27968,
+27974,
+27984,
+27984,
+28007,
+28013,
+28026,
+28052,
+28058,
+28065,
+28093,
+28093,
+28101,
+28107,
+28129,
+28135,
+28149,
+28149,
+28168,
+28182,
+28188,
+28197,
+28197,
+28223,
+28235,
+28235,
+28235,
+28235,
+28235,
+28252,
+28279,
+28279,
+28285,
+28285,
+28311,
+28311,
+28317,
+28317,
+28329,
+28335,
+28368,
+28368,
+28368,
+28374,
+28374,
+28374,
+28409,
+28429,
+28429,
+28454,
+28472,
+28472,
+28472,
+28503,
+28520,
+28520,
+28532,
+28558,
+28558,
+28571,
+28577,
+28577,
+28592,
+28613,
+28636,
+28646,
+28652,
+28683,
+28695,
+28703,
+28703,
+28703,
+28703,
+28703,
+28726,
+28754,
+28761,
+28761,
+28777,
+28789,
+28789,
+28823,
+28844,
+28844,
+28852,
+28860,
+28860,
+28870,
+28888,
+28938,
+28978,
+28990,
28998,
-29009,
-29009,
-29009,
-29009,
-29019,
-29019,
-29019,
-29019,
-29019,
-29057,
-29069,
-29076,
-29076,
-29076,
-29076,
-29076,
-29082,
-29082,
-29082,
-29117,
-29117,
-29117,
-29117,
-29134,
-29134,
-29159,
-29159,
-29185,
-29185,
-29196,
-29196,
-29242,
+29016,
+29029,
+29029,
+29068,
+29068,
+29077,
+29077,
+29089,
+29110,
+29110,
+29116,
+29116,
+29116,
+29116,
+29127,
+29127,
+29136,
+29156,
+29163,
+29170,
+29170,
+29191,
+29191,
+29203,
+29203,
+29219,
+29236,
+29236,
+29236,
+29236,
29248,
-29256,
-29280,
-29301,
-29307,
-29307,
-29307,
-29314,
-29314,
-29338,
-29356,
-29367,
-29367,
-29381,
-29391,
-29399,
-29399,
-29414,
-29434,
-29434,
-29441,
-29473,
-29484,
-29503,
-29520,
-29520,
-29548,
-29565,
-29572,
-29572,
-29572,
-29572,
-29572,
-29597,
-29597,
-29620,
-29655,
-29660,
-29660,
-29660,
-29667,
-29674,
-29688,
-29698,
-29705,
-29728,
-29740,
-29740,
+29248,
+29254,
+29260,
+29260,
+29282,
+29282,
+29302,
+29302,
+29302,
+29312,
+29318,
+29341,
+29341,
+29353,
+29353,
+29359,
+29394,
+29400,
+29420,
+29420,
+29420,
+29436,
+29448,
+29448,
+29464,
+29483,
+29496,
+29513,
+29513,
+29525,
+29531,
+29544,
+29544,
+29557,
+29567,
+29577,
+29602,
+29622,
+29630,
+29641,
+29641,
+29641,
+29652,
+29652,
+29652,
+29652,
+29666,
+29672,
+29683,
+29704,
+29704,
+29704,
+29715,
+29715,
+29715,
+29723,
+29746,
+29746,
+29746,
+29756,
29761,
29761,
-29767,
-29780,
-29787,
-29794,
-29794,
-29807,
-29820,
-29820,
-29820,
-29820,
-29832,
-29844,
-29855,
-29855,
-29855,
-29867,
-29867,
-29867,
-29867,
-29881,
-29881,
-29905,
-29905,
-29905,
-29923,
-29923,
-29948,
-29948,
-29948,
-29976,
-29986,
-29996,
+29778,
+29789,
+29795,
+29795,
+29828,
+29836,
+29836,
+29836,
+29868,
+29878,
+29884,
+29908,
+29918,
+29928,
+29928,
+29928,
+29934,
+29952,
+29964,
+29970,
+29983,
29996,
-30030,
-30030,
-30054,
-30054,
-30070,
-30070,
-30070,
-30077,
-30077,
+30013,
+30020,
+30020,
+30031,
+30072,
30087,
-30107,
-30107,
-30115,
-30141,
-30178,
-30178,
-30201,
-30201,
-30201,
-30207,
-30229,
-30239,
-30254,
-30268,
-30277,
-30311,
-30323,
-30323,
-30331,
-30331,
-30331,
-30331,
-30331,
-30353,
-30365,
-30374,
-30374,
-30374,
-30380,
-30380,
-30380,
-30380,
-30410,
-30410,
-30410,
-30443,
-30443,
-30453,
+30087,
+30087,
+30093,
+30117,
+30163,
+30192,
+30199,
+30206,
+30206,
+30213,
+30247,
+30247,
+30270,
+30270,
+30270,
+30282,
+30303,
+30338,
+30345,
+30345,
+30355,
+30376,
+30376,
+30408,
+30420,
+30420,
+30427,
+30434,
+30441,
+30448,
+30448,
30462,
-30472,
-30472,
-30472,
-30472,
-30472,
-30472,
-30489,
-30500,
-30500,
-30500,
-30532,
-30532,
+30496,
+30526,
+30543,
30553,
-30577,
-30599,
-30599,
-30609,
-30640,
-30640,
-30640,
-30664,
-30676,
-30676,
-30676,
-30692,
-30719,
-30728,
-30728,
-30742,
-30742,
-30749,
-30749,
-30760,
-30770,
-30770,
-30783,
-30783,
-30783,
-30804,
-30847,
-30847,
-30847,
-30847,
-30857,
-30857,
-30857,
-30857,
-30875,
-30875,
-30895,
-30895,
-30921,
-30926,
-30926,
-30926,
-30945,
-30945,
-30945,
-30945,
-30959,
-30959,
-30959,
-30959,
-30972,
-30972,
-30984,
-31011,
-31011,
-31048,
-31056,
-31056,
-31070,
-31077,
-31077,
-31110,
-31110,
-31115,
-31122,
-31139,
-31159,
-31159,
-31165,
-31171,
-31171,
-31197,
-31204,
-31211,
-31211,
-31221,
-31228,
-31228,
-31245,
-31245,
-31245,
-31252,
-31265,
-31265,
-31265,
-31265,
-31294,
-31305,
+30563,
+30569,
+30588,
+30626,
+30626,
+30655,
+30677,
+30677,
+30677,
+30701,
+30701,
+30701,
+30716,
+30716,
+30716,
+30716,
+30732,
+30746,
+30746,
+30759,
+30759,
+30759,
+30759,
+30766,
+30766,
+30789,
+30798,
+30805,
+30819,
+30819,
+30837,
+30870,
+30870,
+30870,
+30887,
+30898,
+30909,
+30919,
+30925,
+30942,
+30949,
+30955,
+30955,
+30955,
+30979,
+30979,
+30988,
+30988,
+30988,
+30988,
+31003,
+31027,
+31027,
+31027,
+31027,
+31038,
+31051,
+31091,
+31106,
+31116,
+31143,
+31156,
+31169,
+31169,
+31188,
+31188,
+31209,
+31234,
+31267,
+31283,
+31296,
+31296,
+31296,
+31302,
+31309,
+31309,
+31309,
31320,
-31333,
-31333,
-31333,
-31343,
-31350,
-31357,
-31369,
-31369,
-31379,
-31385,
-31391,
-31407,
-31407,
-31407,
-31423,
-31423,
-31423,
-31434,
-31454,
-31470,
-31511,
-31521,
-31521,
-31521,
-31542,
-31582,
-31582,
-31597,
-31597,
-31597,
-31614,
-31623,
-31645,
-31645,
-31661,
-31661,
-31669,
-31669,
-31676,
-31676,
-31706,
-31720,
-31726,
-31743,
-31785,
-31804,
-31817,
-31817,
-31835,
-31846,
-31863,
-31885,
-31885,
-31896,
-31907,
-31907,
-31907,
-31922,
-31922,
-31929,
-31929,
-31929,
-31936,
-31943,
-31949,
-31949,
-31949,
-31959,
-32006,
-32024,
-32031,
-32031,
-32038,
-32063,
-32095,
-32095,
-32105,
-32105,
-32105,
-32105,
-32105,
-32125,
-32134,
-32140,
-32176,
-32185,
-32195,
-32195,
-32195,
-32195,
-32202,
-32202,
-32218,
-32236,
-32259,
+31338,
+31362,
+31362,
+31381,
+31400,
+31412,
+31412,
+31412,
+31412,
+31412,
+31425,
+31443,
+31465,
+31465,
+31486,
+31486,
+31486,
+31486,
+31493,
+31493,
+31500,
+31510,
+31533,
+31550,
+31560,
+31567,
+31615,
+31622,
+31636,
+31636,
+31646,
+31674,
+31686,
+31724,
+31759,
+31764,
+31795,
+31802,
+31809,
+31819,
+31831,
+31871,
+31871,
+31871,
+31888,
+31903,
+31917,
+31944,
+31958,
+31969,
+31969,
+31987,
+31994,
+31994,
+32001,
+32008,
+32040,
+32065,
+32065,
+32065,
+32082,
+32082,
+32082,
+32104,
+32122,
+32139,
+32139,
+32139,
+32163,
+32167,
+32167,
+32167,
+32180,
+32210,
+32210,
+32244,
+32263,
32294,
-32300,
-32305,
-32305,
-32305,
-32323,
-32337,
-32352,
-32359,
-32374,
-32381,
-32388,
-32388,
-32388,
-32402,
-32402,
-32402,
-32402,
-32418,
-32428,
-32428,
-32428,
-32450,
-32450,
-32450,
-32462,
-32467,
-32480,
-32480,
-32480,
-32487,
-32502,
-32509,
-32525,
-32560,
-32570,
-32583,
-32597,
-32623,
-32637,
-32644,
-32667,
-32707,
-32725,
-32725,
-32747,
-32747,
-32751,
-32758,
-32789,
-32807,
-32824,
-32824,
-32824,
-32824,
-32843,
-32843,
-32850,
-32876,
-32908,
-32915,
-32946,
-32965,
-32965,
-32982,
-33002,
-33009,
-33029,
-33064,
-33084,
-33098,
-33098,
-33098,
-33098,
-33110,
-33110,
-33151,
-33158,
-33180,
-33198,
-33205,
-33227,
-33227,
-33237,
-33237,
-33253,
-33258,
+32322,
+32329,
+32329,
+32343,
+32350,
+32350,
+32376,
+32405,
+32415,
+32452,
+32452,
+32461,
+32461,
+32461,
+32468,
+32482,
+32505,
+32512,
+32529,
+32540,
+32553,
+32553,
+32559,
+32577,
+32600,
+32600,
+32607,
+32624,
+32636,
+32636,
+32654,
+32654,
+32660,
+32672,
+32672,
+32672,
+32692,
+32692,
+32717,
+32717,
+32729,
+32736,
+32736,
+32736,
+32736,
+32743,
+32764,
+32764,
+32771,
+32783,
+32783,
+32805,
+32820,
+32847,
+32873,
+32892,
+32906,
+32906,
+32925,
+32943,
+32959,
+32959,
+32975,
+32975,
+32975,
+32981,
+32981,
+32981,
+32981,
+32986,
+32986,
+32998,
+32998,
+33008,
+33008,
+33031,
+33037,
+33037,
+33052,
+33052,
+33058,
+33058,
+33066,
+33066,
+33073,
+33101,
+33138,
+33138,
+33138,
+33156,
+33184,
+33209,
+33216,
+33232,
+33252,
33277,
-33292,
-33315,
+33277,
+33296,
33315,
-33333,
-33348,
-33348,
-33348,
-33348,
-33348,
-33348,
-33348,
-33355,
-33355,
-33355,
-33390,
-33408,
-33423,
-33437,
-33452,
-33458,
-33465,
-33480,
-33480,
+33321,
+33328,
+33340,
+33360,
+33372,
+33372,
+33372,
+33372,
+33372,
+33413,
+33422,
+33422,
+33422,
+33422,
+33443,
+33450,
+33450,
+33461,
+33461,
+33467,
+33474,
+33474,
33487,
-33494,
-33504,
-33511,
-33551,
-33551,
-33558,
-33589,
-33595,
-33595,
-33602,
-33627,
-33644,
-33668,
-33668,
-33668,
-33676,
-33676,
-33716,
-33728,
-33747,
+33498,
+33506,
+33513,
+33513,
+33519,
+33564,
+33575,
+33590,
+33608,
+33608,
+33626,
+33626,
+33648,
+33670,
+33670,
+33682,
+33682,
+33689,
+33689,
+33689,
+33689,
+33689,
+33689,
+33719,
+33731,
33747,
-33769,
-33775,
-33789,
-33803,
-33803,
-33810,
-33810,
-33810,
-33820,
-33820,
-33820,
-33820,
-33843,
-33843,
-33843,
-33879,
-33889,
-33889,
-33889,
-33903,
-33917,
-33931,
-33959,
-33993,
-34000,
-34014,
-34037,
-34043,
-34055,
-34055,
-34077,
-34083,
-34090,
-34099,
-34099,
-34115,
-34115,
-34133,
-34140,
-34167,
-34172,
-34184,
-34221,
-34245,
-34252,
-34252,
-34259,
-34318,
-34318,
-34325,
-34325,
-34352,
-34400,
-34415,
-34422,
-34422,
-34431,
-34438,
-34445,
-34445,
-34473,
-34473,
-34489,
-34489,
-34489,
-34489,
-34499,
-34499,
-34499,
-34516,
-34536,
-34551,
-34564,
+33752,
+33752,
+33766,
+33772,
+33772,
+33784,
+33822,
+33822,
+33833,
+33839,
+33839,
+33850,
+33850,
+33868,
+33886,
+33902,
+33902,
+33909,
+33918,
+33951,
+33970,
+33970,
+33970,
+34021,
+34021,
+34021,
+34045,
+34052,
+34052,
+34078,
+34096,
+34096,
+34096,
+34096,
+34108,
+34108,
+34121,
+34121,
+34127,
+34127,
+34127,
+34144,
+34157,
+34157,
+34157,
+34169,
+34169,
+34178,
+34201,
+34201,
+34231,
+34241,
+34241,
+34241,
+34241,
+34256,
+34267,
+34277,
+34287,
+34287,
+34287,
+34315,
+34333,
+34333,
+34333,
+34333,
+34374,
+34408,
+34421,
+34421,
+34421,
+34421,
+34439,
+34439,
+34449,
+34460,
+34483,
+34492,
+34507,
+34507,
+34533,
+34548,
+34548,
+34557,
+34557,
+34580,
+34580,
+34580,
+34580,
34580,
34580,
34580,
-34589,
-34589,
-34589,
-34613,
-34648,
-34648,
-34648,
-34655,
+34599,
+34609,
+34609,
+34630,
+34630,
+34649,
34664,
-34681,
-34681,
-34698,
-34698,
-34720,
-34736,
-34749,
-34749,
-34765,
-34778,
-34785,
-34795,
-34819,
-34819,
-34829,
-34841,
-34848,
-34854,
-34854,
-34854,
-34878,
-34894,
-34894,
-34900,
-34917,
-34934,
-34940,
-34970,
-34998,
-34998,
-35004,
-35004,
-35012,
-35012,
-35012,
-35020,
-35020,
-35032,
-35038,
-35062,
-35062,
-35062,
-35068,
-35068,
-35082,
-35092,
-35096,
-35107,
-35118,
-35134,
-35155,
-35155,
-35166,
-35178,
-35178,
-35195,
-35201,
-35201,
-35201,
-35226,
-35226,
-35226,
-35226,
-35256,
-35262,
-35272,
-35280,
-35299,
-35332,
-35354,
-35354,
-35354,
-35370,
-35386,
-35417,
-35417,
-35460,
-35473,
+34664,
+34700,
+34706,
+34706,
+34706,
+34706,
+34706,
+34706,
+34719,
+34719,
+34726,
+34753,
+34775,
+34780,
+34805,
+34820,
+34830,
+34855,
+34861,
+34890,
+34896,
+34896,
+34908,
+34908,
+34913,
+34926,
+34926,
+34932,
+34961,
+34971,
+34982,
+34982,
+35000,
+35000,
+35005,
+35015,
+35050,
+35060,
+35111,
+35123,
+35152,
+35158,
+35192,
+35205,
+35225,
+35245,
+35271,
+35290,
+35337,
+35345,
+35345,
+35355,
+35355,
+35355,
+35368,
+35378,
+35378,
+35378,
+35378,
+35403,
+35413,
+35453,
+35453,
+35453,
+35472,
+35472,
+35472,
+35472,
+35472,
+35472,
+35472,
35478,
-35495,
-35504,
-35504,
-35518,
-35552,
-35589,
-35624,
-35624,
-35637,
-35637,
-35643,
-35643,
-35669,
-35682,
-35695,
-35702,
-35709,
-35709,
-35726,
-35739,
+35509,
+35509,
+35522,
+35522,
+35539,
+35539,
+35548,
+35558,
+35569,
+35584,
+35601,
+35607,
+35607,
+35615,
+35615,
+35640,
+35640,
+35648,
+35648,
+35657,
+35672,
+35672,
+35686,
+35686,
+35686,
+35703,
+35708,
+35708,
+35724,
+35724,
35749,
35756,
-35756,
-35778,
-35803,
-35810,
-35829,
-35883,
-35899,
-35905,
-35911,
-35911,
-35923,
-35947,
-35954,
-35980,
-35987,
-36034,
-36052,
-36063,
-36095,
-36106,
-36106,
-36113,
-36120,
-36140,
-36140,
-36153,
-36160,
-36160,
-36167,
-36203,
-36203,
-36218,
-36218,
-36225,
-36253,
+35773,
+35779,
+35779,
+35779,
+35779,
+35785,
+35785,
+35785,
+35785,
+35801,
+35834,
+35834,
+35834,
+35834,
+35882,
+35925,
+35958,
+35995,
+36055,
+36055,
+36055,
+36061,
+36092,
+36108,
+36124,
+36124,
+36144,
+36144,
+36144,
+36144,
+36169,
+36189,
+36196,
+36202,
36259,
-36284,
-36296,
-36310,
-36324,
-36331,
-36344,
-36367,
-36367,
-36367,
-36412,
-36412,
-36422,
-36463,
-36463,
-36463,
-36479,
-36490,
-36513,
-36520,
-36520,
-36527,
-36527,
-36527,
-36540,
-36574,
-36594,
-36594,
-36605,
-36621,
-36621,
-36641,
-36641,
-36641,
-36659,
-36682,
-36682,
-36682,
-36682,
-36705,
-36705,
-36705,
-36720,
-36720,
-36755,
-36755,
-36771,
-36771,
-36771,
-36788,
-36806,
-36835,
+36276,
+36292,
+36328,
+36328,
+36328,
+36328,
+36328,
+36328,
+36335,
+36346,
+36346,
+36356,
+36356,
+36356,
+36356,
+36380,
+36386,
+36398,
+36414,
+36427,
+36427,
+36438,
+36460,
+36471,
+36489,
+36517,
+36536,
+36561,
+36578,
+36584,
+36622,
+36622,
+36628,
+36628,
+36640,
+36640,
+36640,
+36649,
+36654,
+36672,
+36683,
+36696,
+36706,
+36706,
+36718,
+36718,
+36718,
+36743,
+36769,
+36781,
+36814,
+36814,
+36823,
36845,
-36875,
-36875,
-36903,
-36921,
-36928,
-36928,
-36940,
-36940,
-36940,
-36966,
+36854,
+36867,
+36867,
+36867,
+36867,
+36867,
+36867,
+36867,
+36882,
+36882,
+36911,
+36916,
+36916,
+36939,
+36954,
+36954,
36966,
36973,
-36983,
-36998,
-37004,
+36973,
+36984,
+36984,
+37008,
+37014,
+37014,
37014,
37024,
-37024,
-37032,
-37038,
-37038,
-37061,
-37074,
-37074,
-37091,
-37098,
-37105,
-37105,
-37133,
-37141,
-37141,
+37037,
+37043,
+37043,
+37043,
+37049,
+37049,
+37054,
+37054,
+37054,
+37064,
+37064,
+37064,
+37089,
+37111,
+37111,
+37131,
+37131,
+37131,
+37131,
37148,
-37191,
-37191,
-37197,
-37197,
-37210,
-37224,
-37224,
-37231,
-37250,
-37257,
-37273,
-37273,
-37280,
-37287,
-37294,
-37300,
-37307,
-37330,
-37348,
-37348,
-37359,
-37359,
-37359,
-37377,
-37392,
-37398,
-37412,
-37431,
-37469,
-37486,
-37508,
-37517,
-37535,
-37535,
-37542,
+37159,
+37165,
+37165,
+37165,
+37165,
+37165,
+37165,
+37184,
+37190,
+37207,
+37207,
+37207,
+37252,
+37252,
+37266,
+37290,
+37290,
+37301,
+37301,
+37301,
+37301,
+37310,
+37310,
+37310,
+37310,
+37310,
+37310,
+37310,
+37310,
+37323,
+37323,
+37323,
+37323,
+37323,
+37323,
+37329,
+37329,
+37329,
+37329,
+37329,
+37344,
+37344,
+37353,
+37353,
+37371,
+37382,
+37395,
+37395,
+37395,
+37395,
+37406,
+37436,
+37479,
+37489,
+37489,
+37489,
+37499,
37542,
-37549,
-37549,
-37549,
-37549,
-37556,
-37576,
-37576,
-37583,
-37590,
-37597,
-37604,
-37604,
-37621,
-37635,
-37676,
-37676,
-37704,
-37711,
+37581,
+37593,
+37593,
+37601,
+37601,
+37618,
+37618,
+37624,
+37624,
+37624,
+37641,
+37641,
+37641,
+37667,
+37667,
+37714,
37728,
37728,
-37737,
-37737,
-37737,
-37750,
-37757,
-37778,
-37785,
-37785,
-37819,
-37826,
-37833,
-37843,
-37850,
-37869,
-37914,
-37921,
+37728,
+37728,
+37728,
+37728,
+37728,
+37741,
+37756,
+37767,
+37767,
+37783,
+37789,
+37789,
+37800,
+37807,
+37824,
+37824,
+37839,
+37874,
+37888,
+37888,
+37888,
+37899,
+37910,
+37910,
+37910,
+37910,
37935,
-37942,
-37949,
-37982,
-38013,
-38013,
-38013,
-38023,
-38057,
-38077,
-38097,
-38110,
-38117,
-38123,
-38133,
-38133,
-38133,
-38140,
-38140,
-38148,
-38159,
-38179,
-38192,
-38205,
-38218,
-38218,
-38218,
-38218,
-38218,
-38218,
-38218,
-38218,
-38218,
-38218,
-38218,
-38218,
-38225,
-38225,
-38230,
-38246,
-38258,
-38280,
-38287,
-38294,
-38294,
-38294,
-38301,
-38318,
-38318,
-38340,
-38371,
-38371,
-38384,
-38420,
-38440,
-38453,
+37943,
+37961,
+37961,
+37973,
+37973,
+37973,
+37973,
+37991,
+37991,
+37991,
+38004,
+38039,
+38039,
+38061,
+38061,
+38072,
+38078,
+38089,
+38112,
+38125,
+38165,
+38165,
+38165,
+38165,
+38177,
+38177,
+38195,
+38195,
+38206,
+38206,
+38206,
+38206,
+38206,
+38213,
+38219,
+38227,
+38227,
+38238,
+38250,
+38259,
+38268,
+38268,
+38302,
+38313,
+38313,
+38326,
+38352,
+38366,
+38391,
+38391,
+38400,
+38400,
+38434,
+38434,
+38445,
+38455,
+38475,
38481,
-38506,
-38522,
-38534,
-38559,
-38559,
-38559,
-38564,
-38564,
-38581,
-38604,
-38604,
-38611,
-38620,
-38626,
-38635,
-38635,
-38635,
-38666,
-38674,
-38688,
-38693,
-38710,
-38722,
-38722,
-38722,
-38729,
-38734,
-38752,
-38792,
-38818,
+38493,
+38493,
+38493,
+38525,
+38525,
+38525,
+38525,
+38525,
+38536,
+38552,
+38567,
+38579,
+38586,
+38586,
+38586,
+38601,
+38606,
+38628,
+38660,
+38670,
+38670,
+38670,
+38701,
+38707,
+38707,
+38725,
+38759,
+38773,
+38780,
+38802,
+38802,
+38809,
+38809,
+38819,
38825,
+38835,
+38835,
+38851,
+38851,
+38851,
+38851,
+38861,
38861,
-38902,
-38934,
-38949,
-38949,
-38960,
-38969,
-38985,
-38985,
-38996,
-39013,
-39024,
-39024,
+38867,
+38879,
+38879,
+38891,
+38911,
+38917,
+38929,
+38929,
+38951,
+38951,
+38958,
+38964,
+38964,
+38964,
+38964,
+38964,
+38973,
+38973,
+38973,
+38983,
+39008,
+39008,
+39008,
39032,
-39061,
-39074,
-39089,
-39123,
-39123,
-39123,
-39140,
-39161,
-39180,
-39206,
-39215,
-39254,
-39261,
-39277,
-39284,
-39314,
-39314,
+39039,
+39045,
+39055,
+39070,
+39070,
+39099,
+39117,
+39122,
+39122,
+39122,
+39122,
+39122,
+39122,
+39142,
+39162,
+39162,
+39162,
+39162,
+39172,
+39172,
+39178,
+39194,
+39205,
+39205,
+39232,
+39232,
+39241,
+39259,
+39259,
+39290,
+39290,
+39290,
+39290,
+39306,
+39306,
+39306,
+39312,
+39312,
+39322,
+39322,
39330,
-39340,
-39340,
-39371,
-39371,
+39341,
+39360,
+39367,
+39382,
39392,
-39430,
-39430,
-39437,
-39444,
-39461,
-39468,
-39468,
-39485,
-39517,
-39524,
-39538,
-39543,
-39548,
-39555,
-39581,
-39588,
-39588,
-39609,
-39609,
+39404,
+39431,
+39445,
+39454,
+39469,
+39469,
+39469,
+39469,
+39469,
+39482,
+39500,
+39500,
+39522,
+39532,
+39532,
+39551,
+39575,
+39597,
+39597,
+39597,
39616,
-39652,
-39670,
-39677,
-39677,
-39684,
-39691,
+39627,
+39627,
+39675,
+39675,
39702,
-39717,
-39717,
-39717,
-39724,
-39749,
-39760,
-39766,
-39775,
-39791,
-39791,
-39814,
-39827,
-39827,
-39837,
-39859};
+39718,
+39732,
+39732,
+39741,
+39741,
+39748,
+39793,
+39793,
+39793,
+39793,
+39793,
+39804,
+39804,
+39828,
+39828,
+39843,
+39850,
+39861,
+39861,
+39884,
+39899,
+39923,
+39944,
+39944,
+39954,
+39991,
+39991,
+40001,
+40001,
+40001,
+40001,
+40001,
+40007,
+40007,
+40007,
+40025,
+40025,
+40025,
+40037,
+40037,
+40037,
+40037,
+40048,
+40048,
+40048,
+40065,
+40065,
+40076,
+40098,
+40098,
+40108,
+40108,
+40124,
+40140,
+40158,
+40158,
+40170,
+40184,
+40184,
+40198,
+40211,
+40218,
+40244,
+40261,
+40261,
+40268,
+40268,
+40281,
+40293,
+40293,
+40302,
+40312,
+40324,
+40324,
+40324,
+40324,
+40324,
+40324,
+40324,
+40324,
+40324,
+40324,
+40324,
+40340,
+40340,
+40347,
+40354,
+40368,
+40368,
+40368,
+40384,
+40384,
+40384,
+40402,
+40412,
+40427,
+40459,
+40459,
+40475,
+40488,
+40488,
+40513,
+40528,
+40556,
+40565,
+40581,
+40581,
+40609,
+40609,
+40609,
+40609,
+40609,
+40633,
+40633,
+40643,
+40652,
+40652,
+40662,
+40662,
+40662,
+40662,
+40669,
+40669,
+40682,
+40682,
+40692,
+40716,
+40733,
+40733,
+40754,
+40781,
+40804,
+40829,
+40829,
+40858,
+40858,
+40858,
+40858,
+40869,
+40881,
+40881,
+40885,
+40895,
+40914,
+40933,
+40945,
+40955,
+40970,
+40970,
+40990,
+41019,
+41019,
+41030,
+41030,
+41036,
+41055,
+41055,
+41055,
+41070,
+41085,
+41091,
+41091,
+41097,
+41122,
+41128,
+41151,
+41151,
+41173,
+41173,
+41173,
+41202,
+41202,
+41212,
+41212,
+41212,
+41212,
+41212,
+41224,
+41238,
+41246,
+41274,
+41274,
+41286,
+41294,
+41305,
+41305,
+41320,
+41320,
+41320,
+41337,
+41350,
+41350,
+41379,
+41392,
+41392,
+41418,
+41430,
+41438,
+41438,
+41438,
+41453,
+41465,
+41513,
+41513,
+41520,
+41520,
+41520,
+41520,
+41530,
+41530,
+41530,
+41555,
+41583,
+41583,
+41583,
+41583,
+41583,
+41583,
+41583,
+41623,
+41623,
+41623,
+41633,
+41645,
+41645,
+41645,
+41645,
+41665,
+41689,
+41689,
+41689,
+41689,
+41689,
+41689,
+41689,
+41700,
+41728,
+41736,
+41736,
+41736,
+41736,
+41736,
+41736,
+41751,
+41773,
+41787,
+41801,
+41801,
+41848,
+41877,
+41877,
+41877,
+41877,
+41888,
+41902,
+41923,
+41992,
+41992,
+42011,
+42016,
+42016,
+42024,
+42024,
+42034,
+42047,
+42079,
+42098,
+42111,
+42111,
+42127,
+42133,
+42156,
+42191,
+42191,
+42191,
+42191,
+42191,
+42208,
+42208,
+42208,
+42208,
+42208,
+42208,
+42229,
+42229,
+42244,
+42270,
+42281,
+42296,
+42316,
+42316,
+42337,
+42363,
+42372,
+42372,
+42372,
+42372,
+42387,
+42394,
+42400,
+42412,
+42412,
+42423,
+42430,
+42456,
+42456,
+42474,
+42491,
+42503,
+42522,
+42522,
+42522,
+42540,
+42572,
+42581,
+42588,
+42605,
+42618,
+42683,
+42697,
+42697,
+42697,
+42714,
+42719,
+42743,
+42743,
+42743,
+42768,
+42768,
+42795,
+42808,
+42815,
+42815,
+42815,
+42843,
+42843,
+42877,
+42884,
+42899,
+42899,
+42913,
+42933,
+42956,
+42986,
+42997,
+42997,
+43004,
+43026,
+43046,
+43058,
+43058,
+43089,
+43113,
+43143,
+43150,
+43169,
+43191,
+43210,
+43217,
+43224,
+43234,
+43270,
+43287,
+43323,
+43323,
+43330,
+43340,
+43340,
+43359,
+43359,
+43359,
+43372,
+43372,
+43400,
+43411,
+43443,
+43459,
+43459,
+43459,
+43475,
+43475,
+43508,
+43508,
+43515,
+43515,
+43525,
+43541,
+43558,
+43570,
+43570,
+43587,
+43606,
+43655,
+43655,
+43661,
+43674,
+43674,
+43674,
+43680,
+43680,
+43694,
+43704,
+43715,
+43732,
+43743,
+43743,
+43771,
+43771,
+43801,
+43801,
+43828,
+43840,
+43851,
+43886,
+43904,
+43917,
+43940,
+43947,
+43961,
+43975,
+43993,
+43993,
+44007,
+44007,
+44031,
+44038,
+44045,
+44052,
+44052,
+44052,
+44070,
+44077,
+44104,
+44116,
+44130,
+44137,
+44144,
+44170,
+44186,
+44193,
+44193,
+44226,
+44250,
+44271,
+44278,
+44285,
+44285,
+44300,
+44307,
+44349,
+44363,
+44369,
+44369,
+44388,
+44419,
+44442,
+44467,
+44513};
static const char tldData[] = {
-"com.cn\0"
-"com.co\0"
-"hb.cn\0"
-"med.br\0conf.lv\0wallonie.museum\0"
-"namsos.no\0"
-"\xe7\xb6\xb2\xe7\xbb\x9c.hk\0farmers.museum\0rel.pl\0"
-"com.cu\0"
-"military.museum\0"
-"*.jm\0convent.museum\0cymru.museum\0malvik.no\0"
-"univ.sn\0"
-"gliding.aero\0"
-"wodzislaw.pl\0"
-"com.dm\0!pref.iwate.jp\0tran\xc3\xb8y.no\0pila.pl\0"
-"mb.it\0*.ke\0lib.ri.us\0"
-"com.ec\0*.kh\0tr\xc3\xb8gstad.no\0"
-"com.ee\0"
-"mobi.gp\0"
-"gran.no\0"
-"wa.gov.au\0"
-"com.dz\0kg.kr\0"
-"zoological.museum\0gjerstad.no\0haugesund.no\0kharkov.ua\0"
-"walbrzych.pl\0"
-"civilization.museum\0"
-"ha.no\0"
-"*.kw\0"
-"med.ec\0com.es\0"
-"med.ee\0otago.museum\0svelvik.no\0"
-"art.ht\0amber.museum\0elvendrell.museum\0rost.no\0"
-"jx.cn\0gratangen.no\0"
-"association.aero\0ca.it\0"
-"zaporizhzhe.ua\0"
-"com.fr\0"
-"szex.hu\0"
-"e-burg.ru\0"
-"com.ge\0bokn.no\0"
-"mordovia.ru\0"
-"com.gh\0*.mm\0"
-"com.gi\0z.se\0"
-"cahcesuolo.no\0"
-"hurdal.no\0joshkar-ola.ru\0"
-"cadaques.museum\0ma.us\0"
-"a.bg\0"
-"com.gn\0bozen.it\0tambov.ru\0"
-"*.gifu.jp\0*.tokyo.jp\0*.mt\0"
-"com.gp\0travel\0cc.tx.us\0"
-"com.gr\0hemne.no\0"
-"*.ni\0"
-"*.mz\0"
-"cc.il.us\0"
+"gov.ir\0karpacz.pl\0"
+"com.cn\0gov.is\0int.lk\0"
+"com.co\0gov.it\0!nls.uk\0"
+"gov.je\0"
+"hvaler.no\0"
+"prd.fr\0kvinnherad.no\0"
+"com.cu\0or.ug\0"
+"bible.museum\0"
+"*.kobe.jp\0bergen.no\0chernovtsy.ua\0"
+"gouv.bj\0or.tz\0"
+"karate.museum\0naturhistorisches.museum\0swiebodzin.pl\0"
+"gov.jo\0"
+"com.dm\0"
+"salvadordali.museum\0kvitsoy.no\0"
+"com.do\0"
+"pa.it\0or.us\0"
+"gov.kg\0lardal.no\0"
+"com.ec\0"
+"gov.ki\0"
+"com.ee\0tysfjord.no\0"
+"turek.pl\0"
+"gouv.ci\0com.eg\0"
+"gov.km\0skjak.no\0"
+"gov.kn\0int.mv\0somna.no\0"
+"journalist.aero\0com.dz\0int.mw\0"
+"gov.kp\0"
+"gov.la\0"
+"gov.lb\0"
+"gov.lc\0grandrapids.museum\0"
+"biella.it\0"
+"center.museum\0harvestcelebration.museum\0"
+"lib.mn.us\0"
+"com.es\0"
+"gov.ky\0"
+"*.tottori.jp\0gov.kz\0h\xc3\xb8nefoss.no\0"
+"lt.it\0gov.lk\0me.us\0is-an-anarchist.com\0"
+"vic.au\0"
+"rome.it\0"
+"oppeg\xc3\xa5rd.no\0"
+"gov.ma\0ilawa.pl\0"
+"gov.lr\0"
+"gov.lt\0"
+"mobi.gp\0gov.me\0hjelmeland.no\0"
+"gov.lv\0"
+"com.fr\0gov.mg\0"
+"gov.ly\0from-wi.com\0"
+"s.bg\0com.ge\0"
+"gov.mk\0intelligence.museum\0"
+"gov.ml\0melhus.no\0"
+"com.gh\0"
+"com.gi\0gov.mn\0"
+"gov.mo\0"
+"ambulance.aero\0"
+"stuff-4-sale.org\0"
+"gov.mr\0bokn.no\0univ.sn\0"
+"com.gn\0basel.museum\0"
+"te.ua\0"
+"com.gp\0gov.mu\0annefrank.museum\0"
+"vicenza.it\0gov.mv\0"
+"com.gr\0education.museum\0gov.mw\0gov.ng\0"
+"*.saga.jp\0england.museum\0"
+"gov.my\0"
+"hotel.lk\0"
+"int.pt\0"
+"nannestad.no\0"
"com.gy\0"
-"zj.cn\0oksnes.no\0museum.tt\0"
-"com.hk\0*.np\0"
-"rc.it\0baseball.museum\0"
-"com.hn\0exhibition.museum\0"
-"h\xc3\xa1""bmer.no\0"
+"com.hk\0"
+"!uba.ar\0"
+"research.aero\0a\xc3\xa9roport.ci\0gov.nr\0lib.tn.us\0"
+"com.hn\0prd.km\0"
+"udine.it\0podzone.net\0"
"com.hr\0"
-"fg.it\0stathelle.no\0defense.tn\0"
+"flor\xc3\xb8.no\0dn.ua\0"
"com.ht\0"
-"qld.gov.au\0*.nz\0"
-"davvenj\xc3\xa1rga.no\0*.om\0"
-"vang.no\0"
-"*.kumamoto.jp\0"
-"vercelli.it\0usenet.pl\0"
-"com.io\0stalbans.museum\0"
-"com.iq\0"
-"*.pg\0"
-"com.is\0klabu.no\0skiptvet.no\0"
-"med.ht\0field.museum\0"
-"gr.it\0gj\xc3\xb8vik.no\0tromsa.no\0lib.mi.us\0"
-"ca.na\0"
-"hagebostad.no\0k12.ma.us\0"
-"*.qa\0"
-"*.niigata.jp\0"
-"monzaebrianza.it\0com.jo\0comunica\xc3\xa7\xc3\xb5""es.museum\0"
-"gr.jp\0"
-"ballangen.no\0*.py\0"
-"scienceandindustry.museum\0"
-"nuoro.it\0com.kg\0"
-"com.ki\0"
-"im.it\0idv.tw\0"
-"*.akita.jp\0com.km\0r\xc3\xb8ros.no\0sopot.pl\0"
-"!pref.yamanashi.jp\0"
-"com.kp\0"
-"!pref.kochi.jp\0com.la\0"
-"com.lb\0"
-"com.lc\0stjordalshalsen.no\0sigdal.no\0cc.nm.us\0"
-"samnanger.no\0"
-"drobak.no\0"
-"vt.it\0"
-"catering.aero\0com.ky\0"
-"com.kz\0cc.ca.us\0"
-"com.lk\0"
-"grosseto.it\0mosvik.no\0"
-"namsskogan.no\0"
-"loten.no\0"
-"chirurgiens-dentistes.fr\0"
-"com.lr\0bremanger.no\0"
-"gs.cn\0"
-"com.lv\0lib.co.us\0"
-"com.mg\0"
-"passenger-association.aero\0"
-"com.ly\0yekaterinburg.ru\0"
-"vladivostok.ru\0"
-"com.mk\0beeldengeluid.museum\0"
-"com.ml\0"
-"art.pl\0"
-"com.mo\0"
-"britishcolumbia.museum\0tx.us\0"
-"com.na\0sakhalin.ru\0*.sv\0"
-"mc.it\0"
-"amsterdam.museum\0udm.ru\0"
-"com.mu\0"
+"fin.ec\0"
+"nativeamerican.museum\0"
+"gs.nl.no\0suldal.no\0fareast.ru\0"
+"carrara-massa.it\0varese.it\0"
+"warszawa.pl\0"
+"matta-varjjat.no\0"
+"com.io\0matera.it\0"
+"com.iq\0brunel.museum\0"
+"com.is\0*.kumamoto.jp\0gov.ph\0"
+"monzaedellabrianza.it\0"
+"gov.pk\0"
+"idv.hk\0gov.pl\0nakhodka.ru\0"
+"prd.mg\0int.ru\0"
+"gov.pn\0cpa.pro\0"
+"orland.no\0int.rw\0"
+"olawa.pl\0"
+"gov.pr\0isa-hockeynut.com\0"
+"gov.ps\0"
+"com.jo\0gov.pt\0"
+"saratov.ru\0"
+"school.na\0"
+"sm\xc3\xb8la.no\0"
+"com.kg\0"
+"k12.ia.us\0"
+"com.ki\0pacific.museum\0"
+"ap.it\0moma.museum\0kostroma.ru\0"
+"!siemens.om\0"
+"com.km\0circus.museum\0int.tj\0zhitomir.ua\0"
+"stavropol.ru\0"
+"com.kp\0is-a-player.com\0"
+"com.la\0"
+"com.lb\0cincinnati.museum\0"
+"firenze.it\0com.lc\0"
+"savona.it\0t.se\0"
+"int.tt\0"
+"pescara.it\0"
+"com.ky\0"
+"com.kz\0"
+"com.lk\0servegame.org\0"
+"fermo.it\0vennesla.no\0gov.sa\0"
+"gov.sb\0"
+"gov.rs\0gov.sc\0"
+"gov.sd\0"
+"hotel.hu\0gov.ru\0"
+"sshn.se\0blogsite.org\0"
+"com.lr\0lerdal.no\0gov.rw\0gov.sg\0"
+"*.shimane.jp\0abo.pa\0"
+"bus.museum\0"
+"com.lv\0"
+"com.mg\0gov.sl\0"
+"com.ly\0"
+"com.mk\0"
+"com.ml\0st.no\0"
+"com.mo\0habmer.no\0gov.st\0"
+"\xe7\xbd\x91\xe7\xbb\x9c.cn\0cmw.ru\0is-a-bookkeeper.com\0"
+"com.na\0int.vn\0"
+"doesntexist.com\0"
+"k12.pa.us\0"
+"gov.sy\0"
+"com.mu\0farmers.museum\0gov.tj\0ia.us\0gotdns.org\0"
"com.mv\0com.nf\0"
-"com.mw\0com.ng\0il.us\0"
-"geometre-expert.fr\0com.mx\0"
-"med.ly\0com.my\0"
-"ag.it\0"
-"*.tr\0"
-"!pref.oita.jp\0"
-"hoyanger.no\0skedsmo.no\0"
-"com.nr\0turystyka.pl\0"
-"koebenhavn.museum\0"
-"quebec.museum\0"
-"stord.no\0*.uk\0"
-"act.au\0"
-"br.it\0cb.it\0gyeonggi.kr\0jobs.tt\0lib.hi.us\0"
-"*.ve\0"
-"*.saga.jp\0wildlife.museum\0com.pa\0"
-"monzabrianza.it\0sciencehistory.museum\0stange.no\0oskol.ru\0principe.st\0*.uy\0"
-"plaza.museum\0com.pe\0"
-"com.pf\0"
-"eigersund.no\0"
+"fortmissoula.museum\0com.mw\0com.ng\0gov.tl\0"
+"stateofdelaware.museum\0com.mx\0"
+"com.my\0gov.tn\0"
+"gov.to\0"
+"namdalseid.no\0cc.ar.us\0"
+"kemerovo.ru\0gov.ua\0"
+"pavia.it\0turin.it\0"
+"childrensgarden.museum\0sciencecenter.museum\0gov.tt\0"
+"principe.st\0"
+"lucca.it\0"
+"com.nr\0gov.tw\0"
+"modern.museum\0"
+"lib.ga.us\0"
+"fc.it\0gorlice.pl\0"
+"rm.it\0"
+"otago.museum\0"
+"celtic.museum\0sciencecenters.museum\0khmelnitskiy.ua\0gov.vc\0"
+"sibenik.museum\0"
+"com.pa\0"
+"cc.wy.us\0"
+"sandiego.museum\0podlasie.pl\0"
+"asso.fr\0"
+"com.pe\0"
+"v\xc3\xa5gs\xc3\xb8y.no\0com.pf\0is-into-cartoons.com\0"
"com.ph\0"
-"manx.museum\0marylhurst.museum\0"
-"md.ci\0pi.it\0schweiz.museum\0com.pk\0"
-"grp.lk\0fr\xc3\xb8ya.no\0com.pl\0press.se\0"
-"us.com\0"
-"b.bg\0cremona.it\0communication.museum\0art.sn\0"
-"med.pa\0"
-"com.pr\0"
+"gov.vn\0"
+"act.au\0com.pk\0is-a-chef.org\0"
+"ascolipiceno.it\0hammerfest.no\0com.pl\0lib.pr.us\0"
+"rockart.museum\0"
+"opole.pl\0k12.wa.us\0"
+"science-fiction.museum\0ostrowwlkp.pl\0"
+"lunner.no\0pa.us\0"
+"asso.gp\0com.pr\0"
"com.ps\0"
"com.pt\0"
-"k12.in.us\0"
-"ah.cn\0bahcavuotna.no\0"
-"sondrio.it\0arkhangelsk.ru\0"
-"cargo.aero\0"
-"council.aero\0"
-"museum.mv\0hattfjelldal.no\0spydeberg.no\0med.pl\0"
-"niepce.museum\0museum.mw\0"
-"anthropology.museum\0"
-"pharmacien.fr\0smola.no\0"
-"fin.ec\0"
-"selbu.no\0"
-"workinggroup.aero\0nm.us\0"
-"museum.no\0com.re\0"
-"cc.vt.us\0"
-"village.museum\0"
-"ca.us\0"
-"*.sapporo.jp\0"
-"teramo.it\0"
+"tomsk.ru\0"
+"psi.br\0worse-than.tv\0"
+"es.kr\0"
+"money.museum\0"
+"!pref.kanagawa.jp\0rost.no\0"
+"gov.ws\0"
+"mjondalen.no\0"
+"\xe0\xa6\xac\xe0\xa6\xbe\xe0\xa6\x82\xe0\xa6\xb2\xe0\xa6\xbe\0"
+"sld.do\0"
+"*.miyazaki.jp\0"
+"mc.it\0eidfjord.no\0wlocl.pl\0com.re\0md.us\0\xe0\xb0\xad\xe0\xb0\xbe\xe0\xb0\xb0\xe0\xb0\xa4\xe0\xb1\x8d\0"
+"asso.ht\0environment.museum\0is-an-entertainer.com\0"
+"stokke.no\0"
+"*.yamaguchi.jp\0raholt.no\0"
+"\xe7\xbd\x91\xe7\xbb\x9c.hk\0"
"com.ro\0"
-"*.ye\0"
+"aseral.no\0aknoluokta.no\0"
"com.sa\0"
"com.sb\0"
-"so.it\0com.sc\0"
-"jolster.no\0com.sd\0"
-"com.ru\0"
+"artcenter.museum\0com.sc\0"
+"r.bg\0stjordalshalsen.no\0com.sd\0"
+"cremona.it\0hol.no\0com.ru\0"
+"aerobatic.aero\0"
"com.rw\0com.sg\0"
-"sydney.museum\0"
-"sa.edu.au\0"
-"tom.ru\0"
-"com.sl\0*.za\0"
-"\xe7\xbd\x91\xe7\xb5\xa1.hk\0naturbruksgymn.se\0com.sn\0"
-"assedic.fr\0com.so\0"
-"!pref.mie.jp\0*.yu\0"
-"med.sa\0"
-"newspaper.museum\0holmestrand.no\0dnepropetrovsk.ua\0"
-"christiansburg.museum\0roan.no\0"
-"pesaro-urbino.it\0med.sd\0com.st\0"
-"s\xc3\xb8gne.no\0"
-"nuernberg.museum\0"
-"*.zm\0"
-"com.sy\0"
-"*.nagano.jp\0com.tj\0"
-"nt.gov.au\0news.hu\0paderborn.museum\0"
-"boston.museum\0"
+"!educ.ar\0"
+"*.okinawa.jp\0shell.museum\0"
+"kommunalforbund.se\0wa.us\0"
+"asso.bj\0com.sl\0"
+"botanicalgarden.museum\0com.sn\0"
+"louvre.museum\0com.so\0"
+"e-burg.ru\0"
+"newmexico.museum\0cc.or.us\0"
+"!pref.hiroshima.jp\0"
+"com.st\0"
+"\xc3\xa1laheadju.no\0is-a-caterer.com\0"
+"pharmacien.fr\0mesaverde.museum\0lavagis.no\0"
+"com.sy\0is-a-green.com\0"
+"lans.museum\0com.tj\0"
+"asso.ci\0"
+"\xc3\xb8yer.no\0"
+"dyroy.no\0"
"com.tn\0"
"com.to\0"
-"broadcast.museum\0"
-"com.ua\0"
-"*.zw\0"
-"baikal.ru\0"
-"bykle.no\0com.tt\0"
-"verdal.no\0"
-"roros.no\0"
-"fi.cr\0carboniaiglesias.it\0chuvashia.ru\0com.tw\0"
-"k12.ca.us\0"
-"eidsvoll.no\0"
-"*.ishikawa.jp\0"
-"dolls.museum\0"
-"naval.museum\0"
-"karasjok.no\0tysvar.no\0"
-"bielawa.pl\0com.vc\0"
-"svalbard.no\0deatnu.no\0rnd.ru\0"
-"grandrapids.museum\0"
-"bauern.museum\0k12.pr.us\0"
-"press.ma\0"
-"*.kagawa.jp\0fribourg.museum\0przeworsk.pl\0com.vi\0"
-"com.uz\0"
-"babia-gora.pl\0"
-"com.vn\0"
-"med.pro\0"
-"suedtirol.it\0kursk.ru\0"
+"ss.it\0"
+"axis.museum\0com.ua\0"
+"fr\xc3\xb8ya.no\0com.tt\0"
+"nordreisa.no\0gouv.rw\0"
+"cc.me.us\0"
+"bv.nl\0com.tw\0"
+"*.chiba.jp\0tysv\xc3\xa6r.no\0"
+"oregon.museum\0"
+"como.it\0risor.no\0"
+"gouv.sn\0"
+"etc.br\0pasadena.museum\0"
+"publ.pt\0"
+"santafe.museum\0frogn.no\0komvux.se\0"
+"klabu.no\0is-a-chef.com\0"
+"muosat.no\0"
+"com.vc\0"
+"pv.it\0alaheadju.no\0hemsedal.no\0"
+"zt.ua\0com.vi\0"
+"gwangju.kr\0com.uz\0"
+"asso.dz\0loten.no\0"
+"museumvereniging.museum\0com.vn\0"
+"hembygdsforbund.museum\0"
+"mb.ca\0"
+"idv.tw\0"
+"and.museum\0"
+"zlg.br\0k12.ut.us\0"
+"ao.it\0"
+"nj.us\0"
+"avocat.fr\0averoy.no\0dyndns-web.com\0"
+"km.ua\0"
+"est.pr\0"
+"control.aero\0"
+"bill.museum\0\xe1\x83\x92\xe1\x83\x94\0"
+"s.se\0com.ws\0"
+"casadelamoneda.museum\0vestby.no\0is-a-celticsfan.org\0"
+"org\0"
+"treviso.it\0"
+"bauern.museum\0"
+"fin.tn\0"
+"tempioolbia.it\0trustee.museum\0herad.no\0"
+"mo-i-rana.no\0"
+"mielec.pl\0"
+"railroad.museum\0"
+"\xd8\xaa\xd9\x88\xd9\x86\xd8\xb3\0"
+"ostre-toten.no\0"
+"nature.museum\0"
+"wa.edu.au\0akrehamn.no\0"
+"k\xc3\xa5""fjord.no\0"
+"benevento.it\0"
+"services.aero\0"
+"madrid.museum\0hapmir.no\0"
+"archaeology.museum\0stordal.no\0"
+"mandal.no\0"
+"\xd8\xb3\xd9\x88\xd8\xb1\xd9\x8a\xd8\xa7\0"
+"endofinternet.org\0"
+"\xd8\xb3\xd9\x88\xd8\xb1\xd9\x8a\xd8\xa9\0"
+"l\xc3\xa6rdal.no\0"
+"rnd.ru\0"
+"brindisi.it\0"
"bonn.museum\0"
-"lt.it\0"
-"design.aero\0microlight.aero\0americanantiques.museum\0meland.no\0"
-"insurance.aero\0aarborte.no\0"
-"kh.ua\0"
-"macerata.it\0architecture.museum\0"
-"rovigo.it\0rawa-maz.pl\0"
-"store.nf\0levanger.no\0"
-"b\xc3\xa1jddar.no\0"
-"not.br\0"
-"com.ws\0"
-"!pref.kagawa.jp\0"
-"!omanpost.om\0"
-"vt.us\0"
-"gs.ah.no\0vladikavkaz.ru\0"
-"no.it\0"
-"in.na\0szkola.pl\0a.se\0"
-"aid.pl\0"
-"workshop.museum\0vegarshei.no\0"
-"sund.no\0"
-"bs.it\0flora.no\0"
-"agriculture.museum\0"
-"koeln.museum\0"
-"minnesota.museum\0k12.il.us\0"
-"froya.no\0"
-"aeroport.fr\0"
-"davvenjarga.no\0zgora.pl\0ivano-frankivsk.ua\0"
-"*.gunma.jp\0"
-"amot.no\0"
-"mus.br\0chungbuk.kr\0"
-"ggf.br\0lorenskog.no\0"
-"jeonbuk.kr\0"
-"k12.vi.us\0"
-"c.bg\0sande.more-og-romsdal.no\0"
-"perugia.it\0"
-"massa-carrara.it\0"
-"michigan.museum\0"
-"archaeology.museum\0mosj\xc3\xb8""en.no\0czest.pl\0koenig.ru\0\xe0\xb6\xbd\xe0\xb6\x82\xe0\xb6\x9a\xe0\xb7\x8f\0"
+"schokoladen.museum\0\xc3\xb8vre-eiker.no\0"
+"valley.museum\0"
"mobi.tt\0"
-"kraanghke.no\0"
-"cc.in.us\0"
-"re.it\0lib.vt.us\0"
-"dell-ogliastra.it\0"
-"s\xc3\xb8mna.no\0"
-"k12.wv.us\0"
-"gok.pk\0fh.se\0"
-"luzern.museum\0"
-"fi.it\0swidnica.pl\0"
-"cbg.ru\0"
+"kr\xc3\xa5""anghke.no\0"
+"lindesnes.no\0"
+"coloradoplateau.museum\0"
+"timekeeping.museum\0rade.no\0"
+"lib.co.us\0"
+"ce.it\0"
+"sor-fron.no\0"
+"nord-fron.no\0"
+"!nawras.om\0dyndns-pics.com\0"
+"mel\xc3\xb8y.no\0"
+"logistics.aero\0"
+"!pref.tochigi.jp\0sld.pa\0"
+"journalism.museum\0badaddja.no\0cc.ia.us\0"
+"finn\xc3\xb8y.no\0"
+"b\xc3\xa6rum.no\0meldal.no\0mazury.pl\0"
+"gouv.km\0"
+"biz.bb\0*.hokkaido.jp\0"
+"vyatka.ru\0lib.az.us\0"
+"biz.at\0resistance.museum\0"
+"adygeya.ru\0"
+"balestrand.no\0"
+"mb.it\0"
+"biz.az\0raisa.no\0"
+"zgora.pl\0"
+"gaular.no\0"
+"gs.st.no\0perm.ru\0"
+"culturalcenter.museum\0"
+"yosemite.museum\0"
+"ballooning.aero\0q.bg\0ullensaker.no\0on-the-web.tv\0"
+"sandnessjoen.no\0"
+"gouv.ml\0"
+"hn.cn\0test.tj\0"
+"is-a-guru.com\0"
+"uslivinghistory.museum\0cc.pa.us\0"
+"sport.hu\0kviteseid.no\0"
+"stryn.no\0"
+"rl.no\0"
+"vet.br\0"
+"k12.ny.us\0"
+"ulan-ude.ru\0"
+"rel.ht\0sr.it\0glas.museum\0"
+"mobi.na\0sirdal.no\0"
+"from-de.com\0is-a-socialist.com\0"
+"mer\xc3\xa5ker.no\0oster\xc3\xb8y.no\0"
+"cc.md.us\0"
+"ip6.arpa\0bu.no\0is-very-sweet.org\0"
+"on.ca\0homeunix.net\0"
+"divtasvuodna.no\0"
+"saltdal.no\0smolensk.ru\0"
+"lezajsk.pl\0"
+"oslo.no\0ralingen.no\0"
+"pu.it\0!pref.toyama.jp\0"
+"journal.aero\0stockholm.museum\0washingtondc.museum\0"
+"test.ru\0"
+"from-pr.com\0is-a-painter.com\0"
+"encyclopedic.museum\0cc.wa.us\0"
+"!pref.okinawa.jp\0"
+"educator.aero\0yk.ca\0sassari.it\0jobs.tt\0"
+"chtr.k12.ma.us\0"
+"it.ao\0paroch.k12.ma.us\0"
+"leasing.aero\0!pref.akita.jp\0kl\xc3\xa6""bu.no\0"
+"farmstead.museum\0ski.museum\0asso.re\0k12.vi.us\0"
+"an.it\0"
+"nissedal.no\0"
+"delmenhorst.museum\0"
+"6bone.pl\0"
+"act.edu.au\0"
+"field.museum\0"
+"r.se\0"
+"lib.ee\0"
+"lib.mi.us\0"
+"\xd8\xb9\xd9\x85\xd8\xa7\xd9\x86\0"
+"\xc3\xa1lt\xc3\xa1.no\0"
+"utazas.hu\0wodzislaw.pl\0wv.us\0"
+"floro.no\0"
+"sande.vestfold.no\0"
+"russia.museum\0podzone.org\0"
+"webhop.org\0"
+"vantaa.museum\0"
+"taranto.it\0"
+"baseball.museum\0"
+"!pref.ibaraki.jp\0"
+"\xc3\xb8stre-toten.no\0sosnowiec.pl\0from-mn.com\0"
+"sklep.pl\0"
+"frankfurt.museum\0heroy.nordland.no\0"
+"\xc3\xa5l.no\0"
+"milan.it\0"
+"chelyabinsk.ru\0"
+"cc.nj.us\0"
+"*.gunma.jp\0"
+"bamble.no\0bardu.no\0"
+"palermo.it\0"
+"horten.no\0"
"latina.it\0"
-"vibovalentia.it\0"
-"modum.no\0"
-"safety.aero\0"
-"sp.it\0"
-"science.museum\0ah.no\0"
-"norddal.no\0"
+"biz.ki\0asso.nc\0kursk.ru\0"
+"london.museum\0mx.na\0"
+"gemological.museum\0"
+"trading.aero\0holmestrand.no\0"
+"monza.it\0sec.ps\0is-with-theband.com\0"
+"\xc3\xa5snes.no\0"
+"berlev\xc3\xa5g.no\0powiat.pl\0"
+"biev\xc3\xa1t.no\0"
+"trentino.it\0jevnaker.no\0"
+"ivgu.no\0"
+"grane.no\0tysnes.no\0voss.no\0"
+"caltanissetta.it\0karm\xc3\xb8y.no\0"
+"am.br\0"
+"!pref.iwate.jp\0teaches-yoga.com\0"
+"railway.museum\0rel.pl\0cherkassy.ua\0"
+"\xe0\xae\x9a\xe0\xae\xbf\xe0\xae\x99\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xaa\xe0\xaf\x8d\xe0\xae\xaa\xe0\xaf\x82\xe0\xae\xb0\xe0\xaf\x8d\0"
+"bt.it\0suedtirol.it\0malselv.no\0"
+"grp.lk\0rennes\xc3\xb8y.no\0"
+"pro\0"
+"teo.br\0"
+"australia.museum\0rana.no\0club.tw\0"
+"lib.ms.us\0lib.nc.us\0"
+"biz.mv\0"
+"biz.mw\0iveland.no\0"
+"\xd9\x85\xd8\xb5\xd8\xb1\0"
+"\xd8\xa7\xd9\x84\xd8\xb3\xd8\xb9\xd9\x88\xd8\xaf\xd9\x8a\xd9\x87\0"
+"defense.tn\0"
+"sebastopol.ua\0"
+"nebraska.museum\0est-a-la-maison.com\0"
+"biz.nr\0mincom.tn\0"
+"does-it.net\0"
+"kharkov.ua\0"
+"p.bg\0"
+"exchange.aero\0"
+"media.museum\0"
+"n\xc3\xa6r\xc3\xb8y.no\0osen.no\0"
+"rnrt.tn\0"
+"in-the-band.net\0"
+"asnes.no\0"
+"nt.edu.au\0tw.cn\0"
+"l\xc3\xb8renskog.no\0"
+"catania.it\0"
+"roan.no\0tatarstan.ru\0!bl.uk\0"
+"bergbau.museum\0biz.pk\0\xd8\xa7\xd9\x84\xd8\xb3\xd8\xb9\xd9\x88\xd8\xaf\xd9\x8a\xd8\xa9\0dontexist.com\0"
+"biz.pl\0is-a-chef.net\0"
+"b\xc3\xa1hcavuotna.no\0hattfjelldal.no\0"
+"ta.it\0biz.pr\0"
+"wiki.br\0asso.km\0oregontrail.museum\0"
+"newhampshire.museum\0"
+"leikanger.no\0"
+"ato.br\0"
+"selbu.no\0"
+"k12.ks.us\0"
+"cz.it\0"
+"pt.it\0kids.museum\0\xc3\xb8ystre-slidre.no\0gos.pk\0"
+"napoli.it\0detroit.museum\0"
+"asso.mc\0"
+"syzran.ru\0"
+"olbiatempio.it\0folldal.no\0"
+"sumy.ua\0"
+"artsandcrafts.museum\0"
+"aero\0flekkefjord.no\0"
+"tana.no\0"
+"jamison.museum\0alstahaug.no\0tom.ru\0"
+"engerdal.no\0homeip.net\0"
+"mobi\0"
+"\xc4\x8d\xc3\xa1hcesuolo.no\0nh.us\0"
+"antiques.museum\0georgia.museum\0"
+"passenger-association.aero\0"
+"luster.no\0"
+"xz.cn\0"
+"paleo.museum\0"
+"olsztyn.pl\0sellsyourhome.org\0"
+"vdonsk.ru\0"
+"living.museum\0"
+"finearts.museum\0"
+"selje.no\0"
+"hanggliding.aero\0eng.br\0kamchatka.ru\0biz.tj\0"
+"naturalhistory.museum\0"
+"is-a-knight.org\0"
+"news.hu\0vrn.ru\0k12.sc.us\0"
+"mosvik.no\0"
+"nnov.ru\0"
+"s\xc3\xb8ndre-land.no\0uzhgorod.ua\0"
+"sex.hu\0pomorze.pl\0biz.tt\0"
+"from-ak.com\0"
+"gs.rl.no\0"
+"vaga.no\0"
+"hornindal.no\0"
+"rawa-maz.pl\0"
+"mine.nu\0"
+"flatanger.no\0lviv.ua\0"
+"czest.pl\0"
+"aquila.it\0copenhagen.museum\0"
+"tx.us\0"
+"h\xc3\xa6gebostad.no\0"
+"aosta.it\0utah.museum\0"
+"orkanger.no\0"
+"denmark.museum\0"
+"gs.bu.no\0"
+"sa.gov.au\0*.ibaraki.jp\0biz.vn\0"
+"for-our.info\0"
+"hitra.no\0"
+"panama.museum\0"
+"qc.ca\0"
+"\xc3\xa5mot.no\0lebtimnetz.de\0"
+"k12.ma.us\0"
+"from-ca.com\0"
+"stuff-4-sale.us\0"
+"pulawy.pl\0"
+"cc.wv.us\0"
+"nf.ca\0penza.ru\0"
+"reggiocalabria.it\0"
+"bs.it\0naturalsciences.museum\0"
+"beeldengeluid.museum\0"
+"hobol.no\0"
+"massa-carrara.it\0s\xc3\xb8r-varanger.no\0"
+"ngo.lk\0"
+"airline.aero\0"
+"voagat.no\0"
+"undersea.museum\0uk.net\0"
+"ma.us\0"
+"author.aero\0roma.it\0"
+"lyngdal.no\0vn.ua\0"
+"tjome.no\0brand.se\0"
+"lodi.it\0health.museum\0"
+"tv.bo\0hm.no\0"
+"tv.br\0"
+"o.bg\0wales.museum\0pisz.pl\0"
+"from-ut.com\0"
+"sor-odal.no\0"
+"vagan.no\0"
+"is.it\0"
+"omasvuotna.no\0serveftp.net\0"
+"kazimierz-dolny.pl\0"
+"hl.cn\0"
+"franziskaner.museum\0"
+"meeres.museum\0"
+"nov.ru\0"
+"aland.fi\0m\xc3\xa5s\xc3\xb8y.no\0"
+"busan.kr\0"
+"cartoonart.museum\0sex.pl\0"
+"santacruz.museum\0lib.il.us\0"
"cc.na\0"
-"re.kr\0"
-"dielddanuorri.no\0"
+"karasjohka.no\0"
+"l\xc3\xb8""dingen.no\0"
+"sp.it\0amot.no\0"
+"gamvik.no\0ngo.ph\0"
+"bremanger.no\0cieszyn.pl\0"
+"ltd.gi\0ngo.pl\0"
+"is-a-llama.com\0"
+"g12.br\0naturbruksgymn.se\0"
+"esp.br\0"
+"assn.lk\0childrens.museum\0"
+"pittsburgh.museum\0"
+"babia-gora.pl\0"
+"embroidery.museum\0"
+"*.nagano.jp\0"
+"flakstad.no\0"
+"bielawa.pl\0"
+"poznan.pl\0"
+"koeln.museum\0"
+"langevag.no\0"
+"upow.gov.pl\0"
+"americanantiques.museum\0"
+"al.it\0"
+"\xe6\x95\x8e\xe8\x82\xb2.hk\0fr\xc3\xa6na.no\0romskog.no\0"
+"loab\xc3\xa1t.no\0"
+"lierne.no\0"
+"archaeological.museum\0p.se\0\xed\x95\x9c\xea\xb5\xad\0"
+"spjelkavik.no\0"
+"is-a-photographer.com\0"
+"muenster.museum\0"
+"dyndns-ip.com\0"
+"!pref.fukuoka.jp\0"
+"game.tw\0k12.sd.us\0"
+"dovre.no\0evenes.no\0"
+"appspot.com\0altoadige.it\0"
+"steigen.no\0"
+"n\xc3\xa5\xc3\xa5mesjevuemie.no\0"
+"iglesias-carbonia.it\0"
+"dgca.aero\0nittedal.no\0"
+"dnsdojo.org\0"
+"homeunix.org\0"
+"columbia.museum\0"
+"gulen.no\0"
+"tv.it\0"
+"crimea.ua\0"
+"ltd.lk\0sologne.museum\0soundandvision.museum\0cc.nh.us\0"
+"amursk.ru\0"
+"grosseto.it\0"
+"is-a-therapist.com\0"
+"k12.nj.us\0"
+"massacarrara.it\0"
+"naval.museum\0"
+"ri.it\0environmentalconservation.museum\0"
+"farmequipment.museum\0virginia.museum\0"
+"not.br\0from-nj.com\0"
+"dolls.museum\0dnsalias.net\0"
+"al.no\0"
+"gorge.museum\0"
+"is-certified.com\0"
+"!pref.yamagata.jp\0dyndns-blog.com\0"
+"sejny.pl\0"
+"ws.na\0"
+"br.it\0cb.it\0"
+"usarts.museum\0"
+"masfjorden.no\0"
+"plants.museum\0"
+"kafjord.no\0"
+"cc.tx.us\0"
+"bmd.br\0"
+"lib.ne.us\0"
+"nalchik.ru\0"
+"tv.na\0"
+"bahn.museum\0"
+"lo.it\0"
+"jx.cn\0"
+"davvenj\xc3\xa1rga.no\0"
+"nes.akershus.no\0"
+"hl.no\0"
+"nsw.au\0plc.co.im\0"
+"n.bg\0"
+"\xe4\xb8\xaa\xe4\xba\xba.hk\0"
+"!pref.okayama.jp\0lib.wv.us\0"
+"haugesund.no\0ovre-eiker.no\0sopot.pl\0"
+"modum.no\0"
+"botanical.museum\0"
+"hk.cn\0m\xc3\xa1latvuopmi.no\0komi.ru\0is-found.org\0"
+"msk.ru\0"
+"\xe7\xb5\x84\xe7\xbb\x87.hk\0"
+"labour.museum\0"
+"issmarterthanyou.com\0"
+"rennesoy.no\0"
+"k12.oh.us\0"
+"!pref.oita.jp\0r\xc3\xb8st.no\0lukow.pl\0"
+"ge.it\0"
+"so.it\0"
+"huissier-justice.fr\0"
+"cc.ma.us\0is-a-cpa.com\0"
+"mulhouse.museum\0"
+"ol.no\0"
+"hoylandet.no\0"
+"agrigento.it\0"
+"nord-aurdal.no\0"
+"k12.ky.us\0"
+"is-a-democrat.com\0"
+"pr.it\0\xc3\xa5seral.no\0"
+"house.museum\0from-ct.com\0"
+"sci.eg\0j\xc3\xb8rpeland.no\0zp.ua\0"
+"motorcycle.museum\0szczecin.pl\0"
+"rad\xc3\xb8y.no\0"
+"bushey.museum\0"
+"adv.br\0"
+"k\xc3\xa1r\xc3\xa1\xc5\xa1johka.no\0"
+"s\xc3\xb8mna.no\0"
+"org.ac\0"
+"is-a-hunter.com\0"
+"org.ae\0\xd8\xa7\xdb\x8c\xd8\xb1\xd8\xa7\xd9\x86.ir\0jewish.museum\0"
+"org.af\0al.us\0"
+"org.ag\0andria-barletta-trani.it\0mari-el.ru\0"
+"vossevangen.no\0"
+"org.ai\0pubol.museum\0"
+"grimstad.no\0"
+"ln.cn\0b\xc3\xa1id\xc3\xa1r.no\0"
+"org.al\0"
+"org.an\0gs.hm.no\0"
+"viking.museum\0"
+"teramo.it\0o.se\0"
+"org.ba\0"
+"org.bb\0"
+"ne.jp\0"
+"d\xc3\xb8nna.no\0sn\xc3\xa5sa.no\0"
+"mil.ac\0"
+"nesset.no\0"
+"mil.ae\0"
+"org.bh\0"
+"org.bi\0corporation.museum\0"
+"org.az\0"
+"org.bm\0"
+"mil.al\0"
+"org.bo\0time.museum\0"
+"webhop.net\0"
+"org.br\0"
+"mil.ba\0org.bs\0"
+"org.bt\0"
+"ne.kr\0vanylven.no\0"
+"holtalen.no\0"
+"org.bw\0"
+"org.ci\0"
+"org.bz\0varoy.no\0"
+"elblag.pl\0"
+"mil.az\0"
+"andoy.no\0skierv\xc3\xa1.no\0"
+"org.cn\0better-than.tv\0"
+"org.co\0"
+"berkeley.museum\0"
+"mil.bo\0coal.museum\0neat-url.com\0"
+"operaunite.com\0sogne.no\0"
+"mil.br\0"
+"gd.cn\0org.cu\0"
+"sn.cn\0"
+"e164.arpa\0b\xc3\xa1hccavuotna.no\0"
+"baghdad.museum\0fylkesbibl.no\0"
+"*.ar\0mil.by\0klodzko.pl\0"
+"*.bd\0org.dm\0info.ht\0"
+"*.au\0info.hu\0"
+"org.do\0"
+"mil.cn\0"
+"mil.co\0!pref.kumamoto.jp\0elburg.museum\0"
+"civilaviation.aero\0org.ec\0"
+"skaun.no\0"
+"org.ee\0"
+"en.it\0"
+"*.bn\0org.eg\0ri.us\0"
+"is-a-techie.com\0"
+"org.dz\0"
+"skoczow.pl\0"
"force.museum\0"
-"torino.it\0cc.md.us\0"
-"artanddesign.museum\0pisz.pl\0"
-"olsztyn.pl\0"
-"unsa.ba\0rade.no\0vinnica.ua\0"
-"in.rs\0astrakhan.ru\0"
-"sogne.no\0"
-"homebuilt.aero\0"
-"polkowice.pl\0"
-"hole.no\0health.vn\0"
-"fj.cn\0"
-"davvesiida.no\0"
-"vic.au\0"
+"kchr.ru\0"
+"mil.do\0overhalla.no\0voronezh.ru\0"
+"fjaler.no\0nat.tn\0"
+"org.es\0daegu.kr\0oygarden.no\0"
+"*.ck\0"
+"mil.ec\0"
+"lib.dc.us\0"
+"mil.eg\0"
+"ca.it\0"
+"bahcavuotna.no\0"
+"biz\0"
+"vestv\xc3\xa5g\xc3\xb8y.no\0"
+"*.cy\0"
+"k-uralsk.ru\0"
+"org.ge\0"
+"milano.it\0!pref.kyoto.jp\0"
+"cim.br\0org.gg\0"
+"org.gh\0"
+"org.gi\0batsfjord.no\0marker.no\0lebork.pl\0"
+"bearalvahki.no\0froland.no\0"
+"collection.museum\0"
+"se.net\0lib.mt.us\0lib.nd.us\0"
+"org.gn\0from-id.com\0"
+"g\xc3\xa1ls\xc3\xa1.no\0porsanger.no\0"
+"org.gp\0"
+"org.gr\0"
+"sch.ae\0"
+"\xd0\xb8\xd0\xba\xd0\xbe\xd0\xbc.museum\0"
+"suisse.museum\0"
+"guernsey.museum\0"
+"mil.ge\0"
+"ppg.br\0"
+"mil.gh\0ne.pw\0"
+"*.er\0org.hk\0aca.pro\0"
+"info.ec\0"
+"*.et\0settlement.museum\0"
+"org.hn\0"
+"m.bg\0"
+"siljan.no\0iamallama.com\0"
+"*.fj\0lib.wy.us\0"
+"*.fk\0org.ht\0"
+"org.hu\0"
+"ddr.museum\0gb.net\0dudinka.ru\0"
+"gz.cn\0"
+"info.bb\0nic.im\0"
+"nic.in\0cesenaforli.it\0"
+"info.at\0org.im\0"
+"br.com\0org.in\0"
+"mil.hn\0"
+"eu.int\0org.iq\0prof.pr\0"
+"org.ir\0mosjoen.no\0"
+"info.az\0org.is\0merseine.nu\0"
+"org.je\0is-a-student.com\0"
+"mil.id\0olbia-tempio.it\0"
+"trani-barletta-andria.it\0!pref.miyazaki.jp\0"
+"ca.na\0k12.as.us\0"
+"from-hi.com\0"
+"*.gt\0"
+"*.gu\0sorfold.no\0"
+"org.jo\0!pref.shizuoka.jp\0quebec.museum\0tver.ru\0"
+"mil.in\0za.net\0"
+"\xc3\xb8ksnes.no\0"
+"mil.iq\0"
+"agr.br\0"
+"village.museum\0"
+"org.kg\0"
+"info.co\0"
+"org.ki\0"
+"alvdal.no\0"
+"bristol.museum\0sos.pl\0"
+"org.km\0"
+"org.kn\0foundation.museum\0\xe7\xb5\x84\xe7\xb9\x94.tw\0"
+"embaixada.st\0"
+"org.kp\0pskov.ru\0"
+"mil.jo\0org.la\0gop.pk\0pr.us\0"
+"\xd8\xa7\xd9\x8a\xd8\xb1\xd8\xa7\xd9\x86.ir\0org.lb\0"
+"org.lc\0"
+"*.il\0g\xc3\xa1\xc5\x8bgaviika.no\0"
+"essex.museum\0"
+"brandywinevalley.museum\0"
+"ravenna.it\0trolley.museum\0konskowola.pl\0"
+"mil.kg\0org.ky\0"
+"org.kz\0davvenjarga.no\0ne.ug\0"
+"org.lk\0"
+"rimini.it\0"
+"szczytno.pl\0ne.tz\0"
+"mil.km\0pila.pl\0"
+"atm.pl\0"
+"org.ma\0beskidy.pl\0"
+"org.lr\0is-an-actor.com\0"
+"org.ls\0"
+"mil.kr\0"
+"org.me\0ak.us\0"
+"mt.it\0*.jm\0org.lv\0ne.us\0"
+"org.mg\0"
+"info\0at-band-camp.net\0"
+"org.ly\0kh.ua\0"
+"*.kagoshima.jp\0org.mk\0kepno.pl\0"
+"mil.kz\0org.ml\0med.pro\0"
+"jobs\0gs.hl.no\0"
+"*.ke\0org.mn\0"
+"org.mo\0jur.pro\0n.se\0"
+"*.kh\0org.na\0"
+"!pref.wakayama.jp\0r\xc3\xa1hkker\xc3\xa1vju.no\0"
+"\xe0\xaa\xad\xe0\xaa\xbe\xe0\xaa\xb0\xe0\xaa\xa4\0\xd8\xa7\xd9\x84\xd9\x8a\xd9\x85\xd9\x86\0"
+"sch.gg\0org.mu\0figueres.museum\0zaporizhzhe.ua\0"
+"org.mv\0"
+"org.mw\0org.ng\0dyndns-at-work.com\0"
+"cat\0mil.lv\0org.mx\0gildesk\xc3\xa5l.no\0"
+"mil.mg\0org.my\0"
+"j\xc3\xb8lster.no\0!nel.uk\0"
+"*.kw\0ringerike.no\0"
+"org.nr\0"
+"planetarium.museum\0"
+"gc.ca\0newyork.museum\0"
+"mil.mv\0"
+"mil.my\0"
+"cadaques.museum\0samara.ru\0k12.ca.us\0"
+"missoula.museum\0"
+"ud.it\0anthropology.museum\0mil.no\0org.pa\0"
+"sch.id\0"
+"*.tokyo.jp\0vagsoy.no\0"
+"is-a-blogger.com\0"
+"!pref.kochi.jp\0scienceandhistory.museum\0org.pe\0"
+"pp.az\0*.mm\0org.pf\0cc.al.us\0"
+"mazowsze.pl\0"
+"countryestate.museum\0gs.ol.no\0org.ph\0"
+"kg.kr\0usantiques.museum\0"
+"ask\xc3\xb8y.no\0org.pk\0"
+"technology.museum\0org.pl\0"
+"*.mt\0"
+"org.pn\0"
+"from-wa.com\0"
+"sch.ir\0r\xc3\xa5""de.no\0udmurtia.ru\0blogdns.org\0"
+"fhsk.se\0"
+"experts-comptables.fr\0!city.fukuoka.jp\0*.ni\0sauherad.no\0org.pr\0"
+"media.hu\0sch.je\0*.mz\0org.ps\0"
+"leirvik.no\0org.pt\0"
+"rg.it\0v\xc3\xa5ler.\xc3\xb8stfold.no\0"
+"mil.pe\0"
+"*.np\0"
+"kvinesdal.no\0mil.ph\0"
+"surnadal.no\0"
+"sch.jo\0"
+"mil.pl\0here-for-more.info\0"
+"chungnam.kr\0"
+"viterbo.it\0fedje.no\0"
+"*.nz\0boldlygoingnowhere.org\0"
+"narviika.no\0"
+"kv\xc3\xa6nangen.no\0*.om\0\xd1\x80\xd1\x84\0"
+"ca.us\0"
+"ok.us\0doesntexist.org\0"
+"cultural.museum\0"
+"webhop.info\0"
+"l\xc3\xa1hppi.no\0usenet.pl\0"
+"carbonia-iglesias.it\0org.ro\0"
+"*.pg\0volgograd.ru\0"
+"org.sa\0isa.us\0"
+"psc.br\0org.sb\0"
+"org.rs\0org.sc\0"
+"org.sd\0"
+"org.ru\0org.se\0"
+"!city.shizuoka.jp\0"
+"org.sg\0"
+"sch.lk\0novosibirsk.ru\0"
+"naroy.no\0*.qa\0dnsdojo.net\0"
+"flesberg.no\0lutsk.ua\0"
+"kuban.ru\0org.sl\0"
+"org.sn\0kirovograd.ua\0"
+"!city.nagoya.jp\0org.so\0"
+"luroy.no\0"
+"name\0*.py\0"
+"org.st\0"
+"sch.ly\0castres.museum\0mil.ru\0cc.ri.us\0"
+"*.mie.jp\0nic.tj\0"
+"mil.rw\0org.sy\0"
+"cesena-forli.it\0org.sz\0org.tj\0"
+"tananger.no\0karasjok.no\0"
+"from-la.net\0"
+"is-a-soxfan.org\0"
+"org.tn\0"
+"l.bg\0drobak.no\0org.to\0"
+"hof.no\0"
+"org.ua\0"
+"pisa.it\0"
+"org.tt\0sells-for-u.com\0"
+"mil.st\0"
+"org.tw\0"
+"ltd.co.im\0thruhere.net\0"
+"hi.cn\0"
+"arteducation.museum\0mil.sy\0"
+"stjohn.museum\0mil.tj\0serveftp.org\0"
+"m\xc3\xa5lselv.no\0"
+"other.nf\0"
+"tel\0mil.to\0"
+"aarborte.no\0"
+"org.vc\0"
+"sokndal.no\0"
+"info.vn\0"
+"mansions.museum\0k12.nv.us\0"
+"mil.tw\0org.vi\0"
+"dyndns-remote.com\0"
"kongsberg.no\0"
-"pub.sa\0"
-"vv.it\0"
-"!pref.tottori.jp\0"
-"*.sendai.jp\0in.th\0"
-"lib.pa.us\0"
-"chiropractic.museum\0"
-"mobi.na\0aca.pro\0"
-"konyvelo.hu\0sciencecenters.museum\0"
-"he.cn\0"
-"in.ua\0"
-"!city.nagoya.jp\0"
-"muenchen.museum\0"
-"psi.br\0"
-"maryland.museum\0"
-"!statecouncil.om\0"
+"mil.tz\0"
+"homebuilt.aero\0zoology.museum\0tuva.ru\0org.vn\0"
+"*.sv\0"
+"2000.hu\0"
+"nore-og-uvdal.no\0"
+"crew.aero\0"
+"mil.vc\0from-mi.com\0"
+"\xe9\xa6\x99\xe6\xb8\xaf\0"
+"snoasa.no\0"
+"shop.ht\0southwest.museum\0*.tr\0lib.fl.us\0"
+"shop.hu\0rnu.tn\0"
+"is-uberleet.com\0"
+"simple-url.com\0"
+"frana.no\0"
+"frei.no\0"
+"charter.aero\0"
+"tinn.no\0org.ws\0"
+"riodejaneiro.museum\0*.uk\0"
+"lyngen.no\0"
+"fineart.museum\0info.tn\0"
+"modelling.aero\0"
+"aremark.no\0gratangen.no\0"
+"media.pl\0"
+"casino.hu\0info.tt\0"
+"bindal.no\0valer.hedmark.no\0*.ve\0"
+"stadt.museum\0rubtsovsk.ru\0"
+"*.niigata.jp\0"
+"usdecorativearts.museum\0"
+"brussels.museum\0naturalhistorymuseum.museum\0k12.id.us\0*.uy\0"
+"lakas.hu\0\xd1\x81\xd1\x80\xd0\xb1\0dyndns.tv\0"
+"ms.it\0mt.us\0nd.us\0"
+"indianmarket.museum\0"
+"slask.pl\0"
"tr\xc3\xa6na.no\0"
-"!pref.yamagata.jp\0jewishart.museum\0"
-"lu.it\0me.it\0"
-"chel.ru\0"
-"tatarstan.ru\0"
-"adult.ht\0in.us\0"
-"kafjord.no\0"
-"\xd7\x99\xd7\xa8\xd7\x95\xd7\xa9\xd7\x9c\xd7\x99\xd7\x9d.museum\0"
-"net.ac\0k12.ec\0"
-"net.ae\0bashkiria.ru\0"
-"net.af\0!omantel.om\0"
-"net.ag\0"
-"net.ai\0"
-"!pref.toyama.jp\0"
-"net.al\0timekeeping.museum\0"
-"net.an\0design.museum\0fin.tn\0"
-"ethnology.museum\0"
-"perso.ht\0asker.no\0b.se\0"
+"m.se\0"
+"sch.sa\0"
+"cuneo.it\0"
+"net.ac\0spb.ru\0"
+"gateway.museum\0"
+"net.ae\0"
+"net.af\0campobasso.it\0vlaanderen.museum\0"
+"net.ag\0info.ro\0"
+"net.ai\0watchandclock.museum\0gdansk.pl\0"
+"net.al\0valer.ostfold.no\0info.sd\0"
+"plc.ly\0capebreton.museum\0go.dyndns.org\0"
+"net.an\0"
+"cc.pr.us\0"
"net.ba\0"
-"net.bb\0flanders.museum\0"
-"mincom.tn\0"
-"frana.no\0"
-"bt.it\0"
-"net.bh\0"
-"auto.pl\0"
+"net.bb\0urbinopesaro.it\0ms.kr\0pilots.museum\0"
+"miners.museum\0"
+"bearalv\xc3\xa1hki.no\0"
+"net.bh\0!city.kobe.jp\0midtre-gauldal.no\0"
"net.az\0"
-"treviso.it\0"
-"war.museum\0"
-"net.bm\0"
-"langevag.no\0m\xc3\xa5lselv.no\0"
-"net.bo\0"
-"gol.no\0"
-"folkebibl.no\0"
+"lib.va.us\0"
+"net.bm\0*.ye\0"
+"net.bo\0ts.it\0"
+"com\0gloppen.no\0dyndns.ws\0"
"net.br\0"
-"net.bs\0troandin.no\0saotome.st\0lib.tn.us\0"
-"md.us\0k12.ut.us\0"
-"d.bg\0cambridge.museum\0\xc3\xa5s.no\0"
-"net.ci\0"
-"net.bz\0"
-"sch.ae\0undersea.museum\0odda.no\0"
+"net.bs\0info.pk\0"
+"net.bt\0info.pl\0cc.ak.us\0"
+"british.museum\0cc.ne.us\0"
+"tourism.tn\0"
+"scotland.museum\0"
+"siena.it\0"
+"net.ci\0*.za\0"
+"net.bz\0info.pr\0"
+"\xe5\x80\x8b\xe4\xba\xba.hk\0"
+"aerodrome.aero\0works.aero\0*.yu\0"
"net.cn\0"
-"net.co\0c.la\0"
+"net.co\0badajoz.museum\0"
+"k12.ak.us\0"
+"k12.me.us\0"
+"chukotka.ru\0"
+"net.cu\0*.zm\0"
+"info.na\0"
+"malatvuopmi.no\0"
+"north.museum\0"
+"art.br\0net.dm\0"
+"mod.gi\0info.mv\0info.nf\0"
+"net.do\0zoological.museum\0tgory.pl\0*.zw\0"
+"nb.ca\0muenchen.museum\0fosnes.no\0"
+"dnsalias.org\0"
"gliwice.pl\0"
-"aurskog-h\xc3\xb8land.no\0"
-"andria-trani-barletta.it\0"
-"net.cu\0loab\xc3\xa1t.no\0"
-"rep.kp\0"
-"\xe7\xbb\x84\xe7\xb9\x94.hk\0"
-"gallery.museum\0"
-"\xc3\xb8rland.no\0"
-"store.ro\0"
-"net.dm\0"
-"somna.no\0"
-"hemnes.no\0"
-"ringebu.no\0k12.ky.us\0"
"net.ec\0"
-"dn.ua\0"
-"tarnobrzeg.pl\0"
-"soc.lk\0"
-"romsa.no\0"
-"bamble.no\0"
-"net.dz\0lutsk.ua\0"
-"barlettatraniandria.it\0ta.it\0countryestate.museum\0"
-"kaszuby.pl\0"
-"*.yamaguchi.jp\0cranbrook.museum\0store.st\0"
-"southcarolina.museum\0lib.md.us\0"
-"textile.museum\0"
-"cheltenham.museum\0hurum.no\0"
-"*.oita.jp\0"
-"shop.ht\0cc.me.us\0"
-"shop.hu\0turin.it\0"
-"louvre.museum\0"
-"k12.ar.us\0"
-"consulting.aero\0"
-"gv.ao\0"
-"sauherad.no\0"
-"gv.at\0net.ge\0"
-"ostre-toten.no\0lib.ok.us\0"
-"net.gg\0pilots.museum\0"
-"2000.hu\0geology.museum\0"
+"salangen.no\0lib.de.us\0"
+"palmsprings.museum\0watch-and-clock.museum\0"
+"net.eg\0k12.vt.us\0"
+"bo.it\0r\xc3\xb8yken.no\0"
+"net.dz\0info.nr\0"
+"ah.cn\0lahppi.no\0"
+"\xe7\xb5\x84\xe7\xb9\x94.hk\0"
+"aircraft.aero\0pa.gov.pl\0"
+"!gobiernoelectronico.ar\0"
+"trd.br\0"
+"sandoy.no\0"
+"tozsde.hu\0"
+"info.la\0"
+"art.do\0stat.no\0osteroy.no\0"
+"local\0"
+"nrw.museum\0servebbs.net\0"
+"\xe6\x95\x99\xe8\x82\xb2.hk\0"
+"tychy.pl\0"
+"!pref.gifu.jp\0"
+"grong.no\0"
+"art.dz\0net.ge\0!pref.aichi.jp\0"
+"net.gg\0"
+"williamsburg.museum\0sor-aurdal.no\0"
+"barum.no\0tambov.ru\0"
+"western.museum\0"
+"rakkestad.no\0"
+"k.bg\0skierva.no\0"
"net.gn\0"
-"mazowsze.pl\0bir.ru\0"
-"net.gp\0"
-"net.gr\0"
-"oxford.museum\0"
-"per.la\0"
-"eastafrica.museum\0"
-"meeres.museum\0"
-"net.gy\0*.shizuoka.jp\0"
"\xe5\x95\x86\xe6\xa5\xad.tw\0"
+"net.gp\0halden.no\0pp.ru\0pp.se\0"
+"net.gr\0"
+"vi.it\0"
+"kopervik.no\0rygge.no\0"
+"vibovalentia.it\0"
+"gx.cn\0"
+"net.gy\0chocolate.museum\0mari.ru\0cc.ca.us\0"
+"bo.telemark.no\0cc.ok.us\0"
"net.hk\0"
+"hobby-site.com\0"
"net.hn\0"
-"philadelphiaarea.museum\0"
-"osen.no\0"
+"hellas.museum\0kalmykia.ru\0"
"net.ht\0net.id\0"
-"fundacio.museum\0"
-"j\xc3\xb8rpeland.no\0"
-"\xe6\x95\x99\xe8\x82\xb2.hk\0"
-"divtasvuodna.no\0"
-"student.aero\0sch.gg\0net.im\0"
-"\xe7\xbd\x91\xe7\xbb\x9c.cn\0net.in\0"
-"net.iq\0"
+"plaza.museum\0"
+"krager\xc3\xb8.no\0s\xc3\xa1l\xc3\xa1t.no\0k12.ok.us\0"
+"fr.it\0"
+"*.yamanashi.jp\0"
+"cv.ua\0kherson.ua\0"
+"net.im\0ullensvang.no\0"
+"net.in\0"
+"community.museum\0kirov.ru\0"
+"net.iq\0info.ki\0"
"net.ir\0"
"net.is\0"
"net.je\0"
-"kepno.pl\0lapy.pl\0"
-"per.nf\0"
-"gov\0*.shimane.jp\0"
-"artcenter.museum\0"
-"k\xc3\xa5""fjord.no\0"
-"net.jo\0"
-"eu.int\0"
-"c.se\0"
-"net.kg\0"
-"ce.it\0net.ki\0"
-"sch.id\0os.hedmark.no\0"
-"columbus.museum\0"
-"arteducation.museum\0"
-"net.kn\0"
-"kr.com\0"
-"net.la\0bushey.museum\0cc.gu.us\0"
-"net.lb\0"
-"net.lc\0"
-"gs.bu.no\0"
-"e164.arpa\0"
-"chieti.it\0labour.museum\0"
-"sch.ir\0creation.museum\0krodsherad.no\0"
-"net.ky\0"
-"net.kz\0me.us\0"
-"e.bg\0sch.je\0net.lk\0"
-"zlg.br\0suwalki.pl\0"
-"\xe5\x80\x8b\xe4\xba\xba.hk\0net.ma\0"
-"net.lr\0"
-"sch.jo\0notaires.km\0net.me\0"
-"net.lv\0karate.museum\0"
-"net.ly\0karm\xc3\xb8y.no\0"
-"rg.it\0"
+"bievat.no\0"
+"po.it\0verona.it\0gon.pk\0"
+"art.ht\0net.jo\0fed.us\0"
+"etnedal.no\0"
+"nx.cn\0"
+"from-ms.com\0from-nc.com\0"
+"durham.museum\0is-a-cubicle-slave.com\0"
+"*.yokohama.jp\0net.kg\0"
+"ancona.it\0net.ki\0"
+"sorreisa.no\0"
+"ulm.museum\0"
+"press.museum\0"
+"urn.arpa\0ogliastra.it\0!national-library-scotland.uk\0"
+"net.kn\0from-fl.com\0"
+"ac\0naples.it\0"
+"ad\0net.la\0openair.museum\0giske.no\0"
+"ae\0net.lb\0"
+"af\0frosinone.it\0!pref.kagoshima.jp\0net.lc\0b\xc3\xb8.nordland.no\0ms.us\0nc.us\0"
+"ag\0incheon.kr\0"
+"!mecon.ar\0"
+"ai\0"
+"\xe0\xb9\x84\xe0\xb8\x97\xe0\xb8\xa2\0"
+"al\0net.ky\0linz.museum\0"
+"am\0net.kz\0"
+"an\0net.lk\0"
+"ao\0l.se\0"
+"!pref.osaka.jp\0oceanographic.museum\0"
+"aq\0ba\0historical.museum\0bronnoysund.no\0poltava.ua\0"
+"bb\0"
+"as\0messina.it\0"
+"at\0net.ma\0"
+"be\0net.lr\0"
+"bf\0ggf.br\0"
+"aw\0bg\0l\xc3\xa4ns.museum\0\xc3\xa5""fjord.no\0"
+"ax\0bh\0net.me\0computerhistory.museum\0indian.museum\0"
+"bi\0net.lv\0"
+"az\0bj\0"
+"lom.no\0"
+"*.kagawa.jp\0net.ly\0"
+"bm\0juif.museum\0"
"net.mk\0"
-"net.ml\0evenes.no\0"
-"ngo.lk\0net.mo\0egyptian.museum\0"
-"marine.ru\0"
-"realestate.pl\0"
-"net.mu\0"
-"net.mv\0net.nf\0"
-"net.mw\0net.ng\0gda.pl\0"
+"bo\0net.ml\0"
+"ca\0fuoisku.no\0"
+"qld.edu.au\0br\0net.mo\0workshop.museum\0"
+"bs\0cc\0bryne.no\0"
+"bt\0cd\0"
+"za.org\0game-host.org\0"
+"cf\0*.kanagawa.jp\0berg.no\0"
+"tmp.br\0bw\0cg\0"
+"sk.ca\0ch\0net.mu\0"
+"by\0ci\0net.mv\0net.nf\0"
+"bz\0alessandria.it\0gyeongnam.kr\0net.mw\0net.ng\0is-a-nascarfan.com\0"
"net.mx\0"
-"freemasonry.museum\0net.my\0enebakk.no\0"
-"karlsoy.no\0"
-"\xe7\xbd\x91\xe7\xbb\x9c.hk\0\xc3\xb8rskog.no\0"
-"randaberg.no\0"
-"club.aero\0"
-"certification.aero\0sr.it\0"
-"center.museum\0so.gov.pl\0"
-"caa.aero\0"
-"sch.lk\0tvedestrand.no\0"
-"net.nr\0"
-"luroy.no\0"
-"aukra.no\0s\xc3\xa1lat.no\0lib.me.us\0"
-"ddr.museum\0"
-"york.museum\0stryn.no\0k12.nm.us\0"
-"per.sg\0"
-"judaica.museum\0"
-"verona.it\0"
-"agdenes.no\0"
-"cng.br\0sch.ly\0"
+"cl\0net.my\0"
+"cm\0groks-the.info\0"
+"cn\0"
+"co\0"
+"hi.us\0"
+"paragliding.aero\0tr.it\0ustka.pl\0"
+"cr\0baths.museum\0drammen.no\0"
+"mus.br\0vladimir.ru\0"
+"cu\0de\0net.nr\0"
+"cv\0"
+"volkenkunde.museum\0tourism.pl\0cc.mt.us\0cc.nd.us\0"
+"cx\0scienceandindustry.museum\0"
+"emergency.aero\0cz\0dj\0"
+"dk\0"
+"cnt.br\0sola.no\0"
+"dm\0izhevsk.ru\0"
+"do\0jondal.no\0"
+"tsk.ru\0"
+"government.aero\0k12.al.us\0"
+"ec\0"
"net.pa\0"
-"author.aero\0"
-"naturalhistory.museum\0steiermark.museum\0bu.no\0"
-"sn\xc3\xa5sa.no\0net.pe\0"
+"ee\0monzabrianza.it\0"
+"laquila.it\0re.it\0"
+"eg\0"
+"net.pe\0"
+"spy.museum\0"
+"dz\0khv.ru\0"
"net.ph\0"
-"savannahga.museum\0batsfjord.no\0lib.oh.us\0"
-"net.pk\0"
+"enna.it\0dyr\xc3\xb8y.no\0net.pk\0"
"net.pl\0"
-"net.pn\0"
-"washingtondc.museum\0"
-"net.pr\0"
-"net.ps\0"
-"net.pt\0"
-"nordkapp.no\0"
-"emergency.aero\0krokstadelva.no\0"
-"satx.museum\0ngo.ph\0omsk.ru\0"
-"texas.museum\0"
-"ngo.pl\0"
-"mantova.it\0gu.us\0"
-"!pref.shiga.jp\0isa.us\0"
-"usa.museum\0"
-"gb.net\0k12.vi\0"
-"iveland.no\0"
-"tempio-olbia.it\0"
-"net.sa\0"
+"ah.no\0"
+"mr.no\0net.pn\0\xe0\xa6\xad\xe0\xa6\xbe\xe0\xa6\xb0\xe0\xa6\xa4\0"
+"es\0medecin.km\0"
+"eu\0net.pr\0"
+"net.ps\0lib.ct.us\0"
+"net.pt\0!icnet.uk\0"
+"fi\0sund.no\0k12.wi.us\0"
+"bn.it\0"
+"ny.us\0"
+"ris\xc3\xb8r.no\0"
+"fm\0"
+"magazine.aero\0fo\0"
+"jeju.kr\0kartuzy.pl\0"
+"ga\0"
+"fr\0"
+"gd\0re.kr\0"
+"ge\0american.museum\0"
+"gf\0"
+"gg\0"
+"gh\0"
+"gi\0"
+"television.museum\0art.pl\0"
+"gl\0tolga.no\0"
+"gm\0dinosaur.museum\0"
+"forum.hu\0reklam.hu\0asker.no\0from-sc.com\0"
+"gp\0"
+"gq\0lecco.it\0trana.no\0"
+"gr\0os.hedmark.no\0"
+"gs\0"
+"!pref.gunma.jp\0net.sa\0"
"net.sb\0"
-"works.aero\0net.sc\0komvux.se\0"
-"net.sd\0"
-"net.ru\0"
-"0.bg\0"
-"forlicesena.it\0net.rw\0net.sg\0"
-"klodzko.pl\0"
-"detroit.museum\0wegrow.pl\0"
-"net.sl\0"
-"glogow.pl\0"
-"store.bb\0air.museum\0"
-"net.so\0"
-"katowice.pl\0"
-"nsk.ru\0"
-"pisa.it\0eid.no\0"
+"net.sc\0"
+"gw\0net.sd\0"
+"steam.museum\0net.ru\0"
+"uri.arpa\0gy\0homelinux.com\0"
+"krodsherad.no\0net.rw\0net.sg\0"
+"hk\0neues.museum\0"
+"sherbrooke.museum\0tr.no\0"
+"engineer.aero\0hm\0aver\xc3\xb8y.no\0"
+"hn\0ferrara.it\0"
+"maintenance.aero\0j.bg\0oristano.it\0net.sl\0"
+"hr\0net.so\0"
+"ht\0id\0sciences.museum\0"
+"hu\0ie\0"
+"vi.us\0"
"net.st\0"
-"film.hu\0"
-"tuva.ru\0d.se\0"
+"gaivuotna.no\0"
"net.th\0"
"net.sy\0"
-"viterbo.it\0tsaritsyn.ru\0perso.sn\0net.tj\0"
-"lib.gu.us\0"
-"plc.co.im\0sec.ps\0"
-"r\xc3\xa1hkker\xc3\xa1vju.no\0kazimierz-dolny.pl\0net.tn\0"
-"net.to\0"
-"veterinaire.km\0"
-"net.ua\0"
-"info.ht\0net.tt\0"
-"info.hu\0"
-"exchange.aero\0"
-"sch.sa\0net.tw\0"
-"andriatranibarletta.it\0perso.tn\0"
-"f.bg\0malselv.no\0"
-"net.vc\0"
-"trana.no\0"
-"ns.ca\0"
-"net.vi\0"
-"lucca.it\0oristano.it\0"
-"usarts.museum\0net.vn\0"
-"gon.pk\0"
-"pl.ua\0"
-"eastcoast.museum\0"
-"novara.it\0"
-"k12.ks.us\0"
-"dp.ua\0"
-"nesseby.no\0"
-"!pref.wakayama.jp\0"
-"repbody.aero\0"
-"jamison.museum\0lugansk.ua\0"
-"ss.it\0"
-"alessandria.it\0"
-"hadsel.no\0net.ws\0"
-"\xe0\xae\x9a\xe0\xae\xbf\xe0\xae\x99\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xaa\xe0\xaf\x8d\xe0\xae\xaa\xe0\xaf\x82\xe0\xae\xb0\xe0\xaf\x8d\0"
-"veterinaire.fr\0leirfjord.no\0"
-"massacarrara.it\0north.museum\0"
-"project.museum\0"
-"other.nf\0"
-"k12.nh.us\0"
-"mat.br\0artgallery.museum\0"
-"sr.gov.pl\0"
-"gamvik.no\0"
-"info.ec\0lancashire.museum\0"
-"fm.br\0ltd.co.im\0"
-"americana.museum\0southwest.museum\0cc.ak.us\0"
-"enna.it\0lunner.no\0"
-"v\xc3\xa5gan.no\0"
-"mari.ru\0"
-"accident-investigation.aero\0"
-"sor-aurdal.no\0lib.ny.us\0"
-"novosibirsk.ru\0"
-"bjugn.no\0"
-"n\xc3\xa6r\xc3\xb8y.no\0ostrowwlkp.pl\0"
-"info.bb\0foundation.museum\0"
-"brand.se\0"
-"info.at\0!pref.akita.jp\0l\xc3\xb8ten.no\0"
-"coal.museum\0miners.museum\0"
-"glass.museum\0"
-"info.az\0"
-"frog.museum\0szczytno.pl\0nov.ru\0"
-"sunndal.no\0"
-"gen.in\0"
-"gx.cn\0"
-"web.co\0*.mie.jp\0hobol.no\0\xe5\x8f\xb0\xe6\xb9\xbe\0"
-"logistics.aero\0plo.ps\0"
-"erotika.hu\0"
-"torsken.no\0"
-"exeter.museum\0"
-"info.co\0"
-"selje.no\0"
-"storfjord.no\0"
-"barum.no\0lind\xc3\xa5s.no\0"
-"leasing.aero\0"
-"championship.aero\0fst.br\0"
-"lierne.no\0"
-"!gobiernoelectronico.ar\0""1.bg\0"
-"corporation.museum\0"
-"al.it\0*.miyagi.jp\0"
-"*.aomori.jp\0"
-"\xd8\xa7\xd9\x84\xd8\xa7\xd8\xb1\xd8\xaf\xd9\x86\0"
-"amursk.ru\0"
-"vestvagoy.no\0"
-"\xd8\xa7\xdb\x8c\xd8\xb1\xd8\xa7\xd9\x86.ir\0cc.fl.us\0"
-"os.hordaland.no\0"
-"pistoia.it\0"
-"tver.ru\0e.se\0"
-"res.in\0*.yamagata.jp\0syzran.ru\0"
-"capebreton.museum\0sandnessj\xc3\xb8""en.no\0"
-"ternopil.ua\0"
+"im\0heritage.museum\0net.tj\0"
+"in\0bedzin.pl\0"
+"io\0"
+"isernia.it\0"
+"iq\0!pref.chiba.jp\0net.tn\0"
+"ir\0net.to\0"
+"is\0"
+"it\0net.ua\0"
+"og.ao\0je\0"
+"net.tt\0k12.ar.us\0"
+"jpn.com\0net.tw\0"
+"miasta.pl\0art.sn\0"
+"jo\0war.museum\0"
+"jp\0"
+"fie.ee\0kustanai.ru\0"
+"cyber.museum\0"
"shop.pl\0"
-"tank.museum\0"
-"m\xc3\xa5s\xc3\xb8y.no\0"
-"potenza.it\0time.museum\0"
-"mjondalen.no\0"
-"eng.br\0nedre-eiker.no\0"
-"air-surveillance.aero\0"
-"nt.au\0am.br\0pn.it\0"
-"oystre-slidre.no\0ug.gov.pl\0"
-"g.bg\0nesodden.no\0vologda.ru\0"
-"parma.it\0tula.ru\0"
-"*.nara.jp\0ak.us\0"
-"nt.ca\0konin.pl\0"
-"kiev.ua\0"
-"skierv\xc3\xa1.no\0vestre-toten.no\0"
-"ri.it\0botanical.museum\0farsund.no\0veg\xc3\xa5rshei.no\0dagestan.ru\0"
-"ind.br\0k-uralsk.ru\0"
-"rahkkeravju.no\0cmw.ru\0"
-"canada.museum\0"
-"fm.it\0"
-"cc.wi.us\0"
-"web.id\0aver\xc3\xb8y.no\0"
-"dudinka.ru\0"
-"baghdad.museum\0fitjar.no\0grane.no\0"
-"gs.fm.no\0"
-"sumy.ua\0"
-"al.no\0"
-"westfalen.museum\0"
-"oregon.museum\0"
-"bruxelles.museum\0elk.pl\0"
-"planetarium.museum\0sn\xc3\xa5""ase.no\0"
-"s\xc3\xb8rreisa.no\0"
-"gs.st.no\0skien.no\0"
-"bible.museum\0ivanovo.ru\0"
-"avellino.it\0"
-"tgory.pl\0"
-"family.museum\0"
-"ppg.br\0k12.as.us\0"
-"trader.aero\0gorlice.pl\0"
-"cc.al.us\0"
-"ogliastra.it\0"
-"is.it\0lib.nv.us\0"
-"dr.na\0"
-"media.hu\0nesna.no\0fl.us\0"
-"uri.arpa\0"
-"bjerkreim.no\0"
-"charter.aero\0"
-"genova.it\0"
-"it.ao\0botany.museum\0hapmir.no\0"
-"educational.museum\0"
-"helsinki.museum\0"
-"memorial.museum\0"
-"web.lk\0pharmacy.museum\0"
-"aircraft.aero\0appspot.com\0"
-"ferrara.it\0beskidy.pl\0"
-"hi.cn\0"
-"taxi.aero\0flekkefjord.no\0"
-"varoy.no\0"
-"ragusa.it\0ambulance.museum\0"
-"can.museum\0"
-"*.osaka.jp\0isleofman.museum\0fm.no\0warmia.pl\0"
-"educator.aero\0asmatart.museum\0"
-"mi.it\0"
-"kutno.pl\0"
-"skedsmokorset.no\0"
-"2.bg\0"
-"*.kagoshima.jp\0km.ua\0"
-"!city.sendai.jp\0"
-"web.nf\0st.no\0cc.ri.us\0"
-"reggiocalabria.it\0"
-"wi.us\0"
-"ancona.it\0newjersey.museum\0nnov.ru\0"
-"f.se\0"
-"ind.in\0"
-"info.vn\0"
-"andoy.no\0"
-"ch.it\0fredrikstad.no\0guovdageaidnu.no\0"
-"fjaler.no\0"
-"sa.com\0"
-"gs.nt.no\0"
-"masfjorden.no\0"
-"pordenone.it\0"
-"po.it\0basel.museum\0"
-"chambagri.fr\0"
-"h.bg\0web.pk\0"
-"london.museum\0"
-"sciencecenter.museum\0\xe0\xb9\x84\xe0\xb8\x97\xe0\xb8\xa2\0"
-"unbi.ba\0augustow.pl\0"
-"wolomin.pl\0"
-"notaires.fr\0tcm.museum\0al.us\0"
-"nu.ca\0!pref.nagano.jp\0"
-"info.tn\0"
-"lib.wa.us\0"
-"ed.ao\0info.tt\0"
-"barreau.bj\0"
-"k12.wy.us\0"
-"pp.az\0gop.pk\0"
-"int\0"
-"l\xc3\xb8renskog.no\0podhale.pl\0"
-"voagat.no\0"
-"telekommunikation.museum\0"
-"qld.au\0"
-"te.it\0freiburg.museum\0snasa.no\0"
-"gjemnes.no\0"
-"sejny.pl\0"
-"media.pl\0"
-"skjak.no\0"
-"watchandclock.museum\0"
-"ed.ci\0pacific.museum\0"
-"theater.museum\0info.ro\0"
-"uk.com\0"
-"campobasso.it\0aquarium.museum\0tysv\xc3\xa6r.no\0"
-"kragero.no\0"
-"windmill.museum\0info.sd\0"
-"sologne.museum\0sande.m\xc3\xb8re-og-romsdal.no\0"
-"nt.no\0cc.mi.us\0"
-"ed.cr\0"
-"academy.museum\0zachpomor.pl\0"
-"tananger.no\0v\xc3\xa1rgg\xc3\xa1t.no\0ri.us\0"
-"federation.aero\0"
-"web.tj\0"
-"matta-varjjat.no\0"
-"steigen.no\0"
-"local\0akrehamn.no\0"
-"!pref.chiba.jp\0info.pk\0"
-"info.pl\0""6bone.pl\0"
-"klepp.no\0kherson.ua\0"
-"ketrzyn.pl\0info.pr\0"
-"sweden.museum\0"
-"lardal.no\0"
-"!retina.ar\0gz.cn\0"
-"barletta-trani-andria.it\0vikna.no\0"
-"bearalv\xc3\xa1hki.no\0"
-"broker.aero\0gov.nc.tr\0"
-"info.na\0k12.fl.us\0"
-"hembygdsforbund.museum\0"
-"entertainment.aero\0jerusalem.museum\0l\xc3\xa6rdal.no\0"
-"hitra.no\0sogndal.no\0"
-"farmequipment.museum\0info.mv\0info.nf\0\xc3\xa5lg\xc3\xa5rd.no\0"
-"la-spezia.it\0"
-"skanland.no\0fam.pk\0"
-"skole.museum\0"
-"art.museum\0"
-"presidio.museum\0"
-"3.bg\0public.museum\0"
-"h\xc3\xb8yanger.no\0zagan.pl\0"
-"an.it\0"
-"philadelphia.museum\0info.nr\0"
-"pesarourbino.it\0g\xc3\xa1ivuotna.no\0"
-"poltava.ua\0"
-"nt.ro\0"
-"station.museum\0"
-"mi.th\0"
-"altoadige.it\0"
-"nu.it\0"
-"usculture.museum\0g.se\0"
-"h\xc3\xa1mm\xc3\xa1rfeasta.no\0"
-"daegu.kr\0info.la\0"
-"dovre.no\0"
-"ci.it\0horology.museum\0"
-"bergbau.museum\0"
-"press.museum\0"
-"gangwon.kr\0"
-"!city.kitakyushu.jp\0sor-varanger.no\0cc.hi.us\0"
-"fuossko.no\0"
-"zp.ua\0"
-"american.museum\0"
-"fl\xc3\xa5.no\0mi.us\0"
-"i.bg\0"
-"od.ua\0"
-"encyclopedic.museum\0"
-"ind.tn\0"
-"midatlantic.museum\0"
-"newyork.museum\0"
-"castres.museum\0"
-"act.edu.au\0"
-"topology.museum\0"
-"ed.jp\0"
-"of.by\0"
-"iris.arpa\0inf.br\0askim.no\0pyatigorsk.ru\0"
-"nord-fron.no\0nsn.us\0"
-"beardu.no\0"
-"agrar.hu\0corvette.museum\0chtr.k12.ma.us\0"
-"figueres.museum\0"
-"!pref.gunma.jp\0medizinhistorisches.museum\0"
-"tjeldsund.no\0"
-"nebraska.museum\0"
-"bellevue.museum\0"
-"abo.pa\0k12.al.us\0"
-"info.ki\0"
-"inf.cu\0sv.it\0"
-"jfk.museum\0"
-"!city.osaka.jp\0swinoujscie.pl\0"
-"bydgoszcz.pl\0"
-"!city.kyoto.jp\0"
-"uvic.museum\0"
-"madrid.museum\0steinkjer.no\0"
-"lib.ma.us\0"
-"sirdal.no\0"
-"n\xc3\xb8tter\xc3\xb8y.no\0"
-"taranto.it\0starnberg.museum\0"
-"vic.gov.au\0pvt.ge\0pors\xc3\xa1\xc5\x8bgu.no\0"
-"naroy.no\0ris\xc3\xb8r.no\0"
-"va.it\0salem.museum\0starachowice.pl\0"
-"!nawrastelecom.om\0"
-"town.museum\0te.ua\0"
-"se.net\0"
-"kemerovo.ru\0"
-"lerdal.no\0"
-"gs.va.no\0"
-"kms.ru\0"
-"consulado.st\0"
-"haram.no\0"
-"tysnes.no\0"
-"!pref.ibaraki.jp\0hamburg.museum\0"
-"\xc3\xa5rdal.no\0"
-"airline.aero\0"
-"crew.aero\0newhampshire.museum\0"
-"muenster.museum\0"
-"aerodrome.aero\0"
-"heroy.nordland.no\0belau.pw\0"
-"kamchatka.ru\0"
-"b\xc3\xa5""d\xc3\xa5""ddj\xc3\xa5.no\0lillehammer.no\0hi.us\0"
-"hk.cn\0"
-"!city.kobe.jp\0berlevag.no\0"
-"ardal.no\0"
-"askoy.no\0"
-"vardo.no\0"
-"fyresdal.no\0"
-"sassari.it\0"
-"video.hu\0drammen.no\0"
-"lyngen.no\0nakhodka.ru\0"
-"ip6.arpa\0games.hu\0"
-"online.museum\0"
-"k12.sd.us\0"
-"4.bg\0sebastopol.ua\0"
-"ao.it\0atlanta.museum\0"
-"lebork.pl\0"
-"ravenna.it\0"
-"railway.museum\0songdalen.no\0"
-"!pref.shimane.jp\0delaware.museum\0ed.pw\0"
-"f\xc3\xb8rde.no\0"
-"living.museum\0"
-"juif.museum\0"
-"lomza.pl\0"
-"h.se\0"
-"!bl.uk\0"
-"portland.museum\0\xe7\xb5\x84\xe7\xb9\x94.tw\0"
-"stj\xc3\xb8rdal.no\0"
-"lecce.it\0"
-"bz.it\0"
-"farmstead.museum\0va.no\0"
-"express.aero\0!nacion.ar\0"
-"presse.km\0gs.of.no\0"
-"\xe5\x8f\xb0\xe7\x81\xa3\0"
-"og.ao\0gyeongbuk.kr\0vestv\xc3\xa5g\xc3\xb8y.no\0"
-"prd.fr\0"
-"pp.ru\0pp.se\0"
-"forum.hu\0!pref.saga.jp\0"
-"kvalsund.no\0"
-"!city.kawasaki.jp\0n\xc3\xa5\xc3\xa5mesjevuemie.no\0"
-"j.bg\0"
-"vlaanderen.museum\0"
-"cc.va.us\0"
-"\xd8\xa7\xd9\x8a\xd8\xb1\xd8\xa7\xd9\x86.ir\0alabama.museum\0"
-"school.museum\0her\xc3\xb8y.m\xc3\xb8re-og-romsdal.no\0"
-"\xc3\xa5seral.no\0"
-"traniandriabarletta.it\0"
-"flog.br\0"
-"presse.ml\0"
-"k\xc3\xa1r\xc3\xa1\xc5\xa1johka.no\0"
-"historisch.museum\0"
-"farm.museum\0palmsprings.museum\0oslo.no\0dyroy.no\0stranda.no\0"
-"gs.rl.no\0r\xc3\xa5""de.no\0"
-"bomlo.no\0s\xc3\xb8rum.no\0"
-"jan-mayen.no\0ivgu.no\0"
-"coop\0"
-"agr.br\0k12.ak.us\0"
-"!nic.ar\0catanzaro.it\0fusa.no\0"
-"hu.com\0"
-"inf.mk\0"
-"vet.br\0"
-"k12.mt.us\0k12.nd.us\0"
-"vlog.br\0\xe5\x85\xac\xe5\x8f\xb8.cn\0sandnessjoen.no\0"
-"lib.az.us\0"
-"nsw.edu.au\0of.no\0\xc3\xb8stre-toten.no\0"
-"*.okinawa.jp\0"
-"vb.it\0"
-"asso.fr\0firenze.it\0"
-"trieste.it\0"
-"\xe5\x85\xac\xe5\x8f\xb8.hk\0"
-"museet.museum\0"
-"prd.km\0"
-"navuotna.no\0lib.ca.us\0"
-"cc.nv.us\0"
-"asso.gp\0"
-"meraker.no\0"
-"h\xc3\xa1pmir.no\0"
-"i.ph\0"
-"sx.cn\0jeonnam.kr\0"
-"halden.no\0"
-"fed.us\0"
-"medio-campidano.it\0tsk.ru\0"
-"barcelona.museum\0"
-"giessen.museum\0roma.museum\0"
-"hl.cn\0"
-"\xe0\xae\x87\xe0\xae\xb2\xe0\xae\x99\xe0\xaf\x8d\xe0\xae\x95\xe0\xaf\x88\0"
-"biz.bb\0benevento.it\0rl.no\0bygland.no\0"
-"port.fr\0asso.ht\0prd.mg\0"
-"biz.at\0"
-"tra.kp\0"
-"*.aichi.jp\0khabarovsk.ru\0"
-"campidano-medio.it\0"
-"biz.az\0"
-"newmexico.museum\0va.us\0"
-"finearts.museum\0"
-"murmansk.ru\0"
-"\xc3\xb8rsta.no\0radom.pl\0k12.sc.us\0"
-"5.bg\0kvinesdal.no\0"
-"ap.it\0"
-"*.fukushima.jp\0"
-"asso.bj\0"
-"mad.museum\0"
-"lebesby.no\0"
-"og.it\0glas.museum\0sauda.no\0"
-"i.se\0"
-"k12.tx.us\0"
-"asso.ci\0mk.ua\0"
-"cesena-forli.it\0"
-"lowicz.pl\0"
-"k12.id.us\0"
-"tas.gov.au\0"
-"lukow.pl\0"
-"utazas.hu\0"
-"maritimo.museum\0bjark\xc3\xb8y.no\0"
-"adm.br\0"
-"pr.it\0lib.vi.us\0"
-"bergamo.it\0k12.va.us\0"
-"k.bg\0"
-"railroad.museum\0"
-"!british-library.uk\0"
-"cincinnati.museum\0"
-"sorreisa.no\0"
-"asso.dz\0!nel.uk\0"
-"rm.it\0"
-"nv.us\0"
-"nx.cn\0gos.pk\0"
-"vic.edu.au\0"
-"biella.it\0tjome.no\0"
-"r\xc3\xb8yken.no\0"
-"beiarn.no\0"
-"qc.ca\0"
-"georgia.museum\0square.museum\0"
-"labor.museum\0omasvuotna.no\0cc.la.us\0"
-"br.com\0reggioemilia.it\0"
-"kristiansund.no\0"
-"sorum.no\0"
-"orsta.no\0"
-"furniture.museum\0surrey.museum\0eng.pro\0"
-"asn.lv\0balat.no\0"
-"lavangen.no\0sld.pa\0"
-"fla.no\0k12.ms.us\0k12.nc.us\0"
-"bardu.no\0"
-"donostia.museum\0"
-"club.tw\0"
-"elburg.museum\0"
-"gs.hl.no\0lodingen.no\0"
-"samara.ru\0"
-"vc.it\0*.nagasaki.jp\0"
-"fosnes.no\0"
-"fuel.aero\0"
-"qc.com\0"
-"skjervoy.no\0"
-"bill.museum\0kv\xc3\xa6""fjord.no\0"
-"skydiving.aero\0*.tokushima.jp\0"
-"!congresodelalengua3.ar\0laquila.it\0k12.ct.us\0"
-"gorge.museum\0linz.museum\0sherbrooke.museum\0"
-"tranoy.no\0ing.pa\0"
-"ptz.ru\0"
-"kr.it\0prato.it\0stat.no\0"
-"\xd0\xb8\xd0\xba\xd0\xbe\xd0\xbc.museum\0"
-"cosenza.it\0"
-"stj\xc3\xb8rdalshalsen.no\0"
-"finland.museum\0leka.no\0cc.pr.us\0"
-"historichouses.museum\0s\xc3\xa1l\xc3\xa1t.no\0"
-"venice.it\0"
-"biz.ki\0"
-"g\xc3\xa1ls\xc3\xa1.no\0"
-"\xe7\xbb\x84\xe7\xbb\x87.hk\0"
-"*.yamanashi.jp\0"
-"rad\xc3\xb8y.no\0"
-"6.bg\0"
-"fareast.ru\0"
-"paragliding.aero\0ba.it\0aq.it\0"
-"sk\xc3\xa5nland.no\0"
-"its.me\0"
-"us.na\0"
-"hl.no\0cc.ga.us\0"
-"ac\0granvin.no\0"
-"ad\0qld.edu.au\0!city.sapporo.jp\0"
-"ae\0"
-"af\0"
-"ag\0crotone.it\0"
-"dallas.museum\0"
-"ai\0brussels.museum\0"
-"dali.museum\0"
-"la.us\0"
-"al\0salzburg.museum\0"
-"am\0"
-"an\0cl.it\0"
-"ao\0"
-"aq\0ba\0"
-"bb\0"
-"as\0lajolla.museum\0"
-"at\0"
-"be\0"
-"bf\0inderoy.no\0snz.ru\0"
-"aw\0bg\0"
-"ax\0bh\0cim.br\0ltd.gi\0biz.mv\0"
-"bi\0xz.cn\0\xe7\xb5\x84\xe7\xb9\x94.hk\0biz.mw\0"
-"az\0bj\0"
-"bm\0tranibarlettaandria.it\0naamesjevuemie.no\0"
-"chattanooga.museum\0"
-"bo\0"
-"l.bg\0"
-"ca\0"
-"br\0stateofdelaware.museum\0"
-"bs\0cc\0"
-"cd\0biz.nr\0"
-"cf\0berlev\xc3\xa5g.no\0"
-"bw\0cg\0snaase.no\0"
-"ch\0harvestcelebration.museum\0ck.ua\0"
-"by\0ci\0"
-"bz\0bahccavuotna.no\0"
-"cl\0yuzhno-sakhalinsk.ru\0"
-"cm\0halsa.no\0lyngdal.no\0"
-"cn\0"
-"co\0rn.it\0childrens.museum\0frankfurt.museum\0"
-"cr\0"
-"pskov.ru\0"
-"cu\0de\0"
-"cv\0fr.it\0lib.ky.us\0"
-"aseral.no\0kvam.no\0"
-"cx\0hellas.museum\0"
-"hof.no\0"
-"cz\0dj\0k12.la.us\0"
-"dk\0moscow.museum\0"
-"sosnowiec.pl\0"
-"dm\0biz.pk\0"
-"schokoladen.museum\0biz.pl\0"
-"far.br\0arna.no\0tynset.no\0"
-"even\xc3\xa1\xc5\xa1\xc5\xa1i.no\0"
-"ec\0"
-"biz.pr\0"
-"ee\0celtic.museum\0"
-"scientist.aero\0modern.museum\0"
-"pr.us\0"
-"dz\0"
-"mj\xc3\xb8ndalen.no\0s\xc3\xb8r-odal.no\0"
-"!nic.tr\0"
-"conference.aero\0vestnes.no\0k12.mn.us\0"
-"!pref.hiroshima.jp\0"
-"es\0trapani.it\0"
-"fermo.it\0vard\xc3\xb8.no\0"
-"eu\0gs.hm.no\0r\xc3\xb8""d\xc3\xb8y.no\0stordal.no\0"
-"gc.ca\0!nhs.uk\0"
-"jgora.pl\0"
-"fi\0stjordal.no\0"
-"fm\0!mediaphone.om\0"
-"kirov.ru\0pvt.k12.ma.us\0"
-"fo\0"
-"ga\0hyllestad.no\0"
-"gov.ac\0fr\0andriabarlettatrani.it\0ga.us\0"
-"gov.ae\0gd\0estate.museum\0"
-"gov.af\0ge\0tolga.no\0"
-"gf\0asso.re\0cc.oh.us\0"
-"gg\0florida.museum\0"
-"presse.ci\0gh\0"
-"gi\0k12.dc.us\0"
-"ltd.lk\0orland.no\0"
-"gov.al\0"
-"gl\0tokke.no\0"
-"hanggliding.aero\0gm\0"
-"hareid.no\0"
-"gov.ba\0tj.cn\0gp\0"
-"gov.bb\0gq\0"
-"gov.as\0gr\0agrigento.it\0lc.it\0"
-"gs\0kalmykia.ru\0aero.tt\0"
-"gov.bf\0"
-"county.museum\0"
-"gov.bh\0hn.cn\0gw\0"
-"gov.az\0gy\0assn.lk\0guernsey.museum\0"
-"hk\0"
-"gov.bm\0h\xc3\xa6gebostad.no\0biz.tj\0"
-"hm\0computer.museum\0"
-"gov.bo\0hn\0kl\xc3\xa6""bu.no\0"
-"pulawy.pl\0"
-"gov.br\0"
-"trd.br\0gov.bs\0hr\0reggio-calabria.it\0historyofscience.museum\0lipetsk.ru\0"
-"gov.cd\0*.nagoya.jp\0"
-"ht\0id\0spjelkavik.no\0"
-"hu\0ie\0aero.mv\0"
-"marketplace.aero\0mn.it\0biz.tt\0"
-"gov.by\0saintlouis.museum\0mer\xc3\xa5ker.no\0"
-"gov.bz\0"
-"7.bg\0gov.cl\0virtual.museum\0"
-"gov.cm\0vennesla.no\0kr.ua\0"
-"gov.cn\0im\0ar.it\0galsa.no\0rovno.ua\0"
-"gov.co\0in\0"
-"io\0limanowa.pl\0"
-"iq\0k12.ga.us\0"
-"ir\0"
-"riik.ee\0is\0\xc3\xa1laheadju.no\0"
-"gov.cu\0it\0hawaii.museum\0seaport.museum\0"
-"je\0pubol.museum\0hm.no\0"
-"gov.cx\0"
-"*.chiba.jp\0"
-"*.kawasaki.jp\0"
-"k.se\0"
-"gov.dm\0"
-"aland.fi\0vik.no\0"
-"yk.ca\0jo\0kobierzyce.pl\0"
-"jp\0biz.vn\0"
-"presse.fr\0lib.il.us\0\xe9\xa6\x99\xe6\xb8\xaf\0"
-"gov.ec\0"
-"transport.museum\0bronnoy.no\0"
-"slg.br\0gov.ee\0asso.nc\0bievat.no\0"
-"nyny.museum\0"
+"net.vc\0"
"kg\0"
-"mo-i-rana.no\0"
-"gov.dz\0ki\0"
-"monmouth.museum\0"
-"suldal.no\0"
-"bc.ca\0km\0zt.ua\0"
-"pt.it\0kn\0"
-"fineart.museum\0"
-"la\0"
-"kr\0gulen.no\0"
-"m.bg\0mo.cn\0lc\0alaheadju.no\0g\xc3\xa1\xc5\x8bgaviika.no\0"
-"nowaruda.pl\0cc.ut.us\0"
-"br\xc3\xb8nn\xc3\xb8y.no\0"
-"ky\0li\0overhalla.no\0"
-"kz\0khv.ru\0"
+"agents.aero\0ki\0"
+"kristiansund.no\0navuotna.no\0"
+"krokstadelva.no\0rns.tn\0net.vi\0"
+"km\0"
+"kn\0"
+"ct.it\0karikatur.museum\0de.us\0"
+"pn.it\0"
+"production.aero\0la\0net.vn\0"
+"kr\0"
+"lc\0"
+"vibo-valentia.it\0"
+"skien.no\0"
+"ky\0li\0modalen.no\0"
+"kz\0photography.museum\0\xd8\xa7\xd9\x8a\xd8\xb1\xd8\xa7\xd9\x86\0"
"lk\0"
-"artdeco.museum\0"
-"ma\0fortworth.museum\0kostroma.ru\0"
-"ro.it\0kirkenes.no\0vestby.no\0"
-"urbino-pesaro.it\0ls\0mc\0alstahaug.no\0"
-"blog.br\0gov.ge\0lt\0md\0"
-"lu\0me\0botanicgarden.museum\0"
-"gov.gg\0lv\0oh.us\0"
-"gov.gh\0mg\0valley.museum\0"
-"gov.gi\0mh\0"
-"ly\0sandiego.museum\0"
-"mk\0"
-"ml\0"
-"gov.gn\0rollag.no\0naklo.pl\0"
-"mn\0"
-"mo\0"
-"mp\0leirvik.no\0"
-"gov.gr\0mq\0na\0cc.ks.us\0"
-"mr\0"
+"academy.museum\0oppegard.no\0limanowa.pl\0"
+"salerno.it\0maritimo.museum\0"
+"groundhandling.aero\0rindal.no\0"
+"marburg.museum\0"
+"ma\0"
+"in.na\0hurum.no\0vads\xc3\xb8.no\0olkusz.pl\0"
+"ls\0mc\0fhv.se\0"
+"ag.it\0lt\0md\0"
+"na.it\0lu\0me\0"
+"lv\0net.ws\0"
+"mg\0newport.museum\0"
+"mh\0loppa.no\0"
+"ly\0"
+"vercelli.it\0communications.museum\0"
+"edu\0mk\0"
+"*.saitama.jp\0ml\0"
+"mn\0k.se\0"
+"mo\0guovdageaidnu.no\0"
+"mp\0"
+"mq\0na\0kv\xc3\xa6""fjord.no\0"
+"mr\0eidskog.no\0ternopil.ua\0"
"ms\0nc\0"
-"valer.hedmark.no\0"
+"is-not-certified.com\0"
"mu\0ne\0"
-"mv\0nf\0"
+"reggioemilia.it\0mv\0nf\0"
"mw\0"
-"mx\0nord-odal.no\0jur.pro\0"
-"my\0"
-"gov.hk\0name.hr\0"
+"mx\0nordkapp.no\0"
+"my\0is-a-lawyer.com\0"
+"from-az.net\0"
+"safety.aero\0"
"nl\0"
-"astronomy.museum\0lib.nm.us\0"
-"catania.it\0"
"no\0"
-"skjerv\xc3\xb8y.no\0"
-"k12.ne.us\0"
-"monza-e-della-brianza.it\0!pref.fukushima.jp\0nr\0"
-"gov.ie\0"
-"stuttgart.museum\0nu\0cc.mn.us\0"
-"karasjohka.no\0"
-"engine.aero\0bearalvahki.no\0"
-"oyer.no\0"
-"ve.it\0"
-"gov.im\0froland.no\0cc.ar.us\0"
-"gov.in\0magadan.ru\0"
-"pescara.it\0"
-"gov.iq\0usdecorativearts.museum\0"
-"gov.ir\0pa\0"
-"gov.is\0"
-"gov.it\0lavagis.no\0"
-"gov.je\0"
-"naustdal.no\0pe\0k12.or.us\0"
-"gd.cn\0carraramassa.it\0pf\0"
-"ph\0"
-"cc.ny.us\0"
-"rissa.no\0"
-"info\0pk\0pomorze.pl\0"
+"nr\0"
+"pvt.ge\0cahcesuolo.no\0nu\0po.gov.pl\0kurgan.ru\0"
+"accident-prevention.aero\0"
+"alabama.museum\0lavangen.no\0"
+"histoire.museum\0"
+"knowsitall.info\0"
+"birdart.museum\0palace.museum\0"
+"k12.or.us\0"
+"chattanooga.museum\0rybnik.pl\0"
+"opoczno.pl\0parti.se\0"
+"settlers.museum\0pa\0"
+"r\xc3\xb8mskog.no\0pe\0\xd1\x83\xd0\xba\xd1\x80\0"
+"pf\0cc.ms.us\0cc.nc.us\0"
+"bolzano.it\0"
+"ph\0is-a-financialadvisor.com\0"
+"la-spezia.it\0"
+"pk\0"
"pl\0"
-"gov.jo\0asso.km\0pn\0"
-"*.okayama.jp\0cieszyn.pl\0"
-"freight.aero\0"
-"pr\0"
-"narvik.no\0ps\0"
-"!pref.aichi.jp\0elverum.no\0pt\0"
-"edunet.tn\0"
-"gov.kg\0"
-"flatanger.no\0marker.no\0pw\0"
-"gov.ki\0nuremberg.museum\0"
-"aip.ee\0"
-"gov.km\0"
-"gov.kn\0"
-"gov.kp\0"
-"rieti.it\0gov.la\0bajddar.no\0"
-"gov.lb\0aviation.museum\0"
-"gov.lc\0"
-"asso.mc\0"
-"re\0"
-"ut.us\0"
-"sa.gov.au\0gov.ky\0"
-"mo.it\0gov.kz\0"
-"gov.lk\0"
-"iraq.museum\0"
-"badajoz.museum\0"
-"8.bg\0inder\xc3\xb8y.no\0"
-"monticello.museum\0ro\0ks.ua\0"
-"gov.ma\0svizzera.museum\0"
-"gov.lr\0sa\0"
-"matera.it\0sb\0"
-"gov.lt\0rs\0sc\0"
-"gov.me\0sd\0"
-"gov.lv\0ru\0se\0"
-"gov.mg\0"
-"rw\0sg\0"
-"gov.ly\0assisi.museum\0kids.museum\0sh\0"
-"si\0"
-"gov.mk\0"
-"gov.ml\0sk\0"
-"sl\0"
-"gov.mn\0airguard.museum\0sm\0"
-"gov.mo\0l.se\0sn\0"
-"so\0"
-"gov.mr\0ks.us\0"
-"name.az\0sr\0"
-"naturhistorisches.museum\0tc\0"
-"trainer.aero\0cn.it\0urbinopesaro.it\0gov.mu\0nativeamerican.museum\0st\0td\0"
-"gov.mv\0su\0"
-"trentino.it\0gov.mw\0gov.ng\0tf\0"
+"vard\xc3\xb8.no\0"
+"v\xc3\xa1rgg\xc3\xa1t.no\0pn\0"
+"blogdns.net\0"
+"dyndns-at-home.com\0"
+"campidanomedio.it\0notteroy.no\0marine.ru\0"
+"greta.fr\0pr\0"
+"ps\0sakhalin.ru\0"
+"pt\0"
+"chirurgiens-dentistes.fr\0"
+"pw\0"
+"hamar.no\0"
+"montreal.museum\0"
+"likescandy.com\0"
+"*.hiroshima.jp\0"
+"agrar.hu\0"
+"lipetsk.ru\0"
+"augustow.pl\0"
+"in.rs\0"
+"portlligat.museum\0re\0"
+"avellino.it\0wroclaw.pl\0"
+"zachpomor.pl\0"
+"nsw.edu.au\0forgot.his.name\0"
+"nuremberg.museum\0kommune.no\0mosreg.ru\0"
+"og.it\0oh.us\0"
+"agriculture.museum\0giehtavuoatna.no\0"
+"time.no\0radom.pl\0"
+"zj.cn\0salem.museum\0ro\0"
+"cc.hi.us\0"
+"sa\0"
+"sb\0is-into-anime.com\0"
+"rs\0sc\0"
+"sd\0"
+"ru\0se\0"
+"oceanographique.museum\0utsira.no\0rw\0sg\0"
+"sh\0"
+"gv.ao\0loabat.no\0sorum.no\0si\0in.th\0"
+"sk\0lib.nh.us\0"
+"farsund.no\0sl\0k12.ga.us\0"
+"gj\xc3\xb8vik.no\0sm\0"
+"gv.at\0sn\0"
+"bozen.it\0presidio.museum\0so\0"
+"aviation.museum\0rzeszow.pl\0"
+"leirfjord.no\0dvrdns.org\0"
+"sr\0in.ua\0"
+"js.cn\0s\xc3\xb8r-odal.no\0tc\0"
+"st\0td\0"
+"su\0"
+"monticello.museum\0tf\0"
"tg\0"
-"co.ae\0venezia.it\0gov.my\0th\0"
-"!pref.ehime.jp\0sy\0"
-"co.ag\0lewismiller.museum\0ostrowiec.pl\0sz\0tj\0"
+"th\0ivano-frankivsk.ua\0"
+"virtual.museum\0pors\xc3\xa1\xc5\x8bgu.no\0sy\0"
+"sz\0tj\0"
"tk\0"
-"motorcycle.museum\0tl\0"
-"birdart.museum\0trogstad.no\0tm\0"
-"tn\0"
-"humanities.museum\0to\0"
-"pu.it\0gov.nr\0ua\0lib.ut.us\0"
-"co.ao\0"
-"co.ba\0trondheim.no\0tt\0"
-"in-addr.arpa\0tempioolbia.it\0!city.yokohama.jp\0mn.us\0"
-"n.bg\0schoenbrunn.museum\0tv\0"
-"co.at\0aremark.no\0tw\0ug\0"
-"jus.br\0"
-"co.bi\0bialowieza.pl\0ar.us\0"
-"audnedaln.no\0kustanai.ru\0"
+"tl\0"
+"tm\0"
+"i.bg\0tn\0"
+"to\0"
+"getmyip.com\0"
+"ua\0"
+"recreation.aero\0"
+"im.it\0tt\0in.us\0is-a-doctor.com\0"
+"altai.ru\0tv\0"
+"tula.ru\0tw\0ug\0"
+"firm.ht\0"
+"pilot.aero\0fitjar.no\0"
+"cc.ny.us\0"
"va\0"
-"us\0vc\0"
-"newport.museum\0"
-"kopervik.no\0gov.ph\0vg\0"
-"ny.us\0vi\0"
-"co.bw\0finn\xc3\xb8y.no\0gov.pk\0uz\0"
-"honefoss.no\0gov.pl\0lanbib.se\0"
-"co.ci\0"
-"gov.pn\0intl.tn\0"
-"act.gov.au\0vn\0"
-"television.museum\0gov.pr\0"
-"sykkylven.no\0v\xc3\xa5ler.hedmark.no\0gov.ps\0"
-"gov.pt\0"
-"co.cr\0vu\0"
-"legnica.pl\0"
-"sa.au\0"
-"bjarkoy.no\0"
-"openair.museum\0birkenes.no\0lib.nj.us\0"
-"fylkesbibl.no\0holt\xc3\xa5len.no\0"
-"iz.hr\0"
+"firm.in\0gol.no\0irkutsk.ru\0us\0vc\0"
+"lib.tx.us\0"
+"coastaldefence.museum\0vg\0"
+"jerusalem.museum\0romsa.no\0elk.pl\0"
+"przeworsk.pl\0komforb.se\0ga.us\0vi\0"
+"elvendrell.museum\0uz\0"
+"*.oita.jp\0"
+"vn\0"
+"gs.ah.no\0"
+"chiropractic.museum\0nationalheritage.museum\0gs.mr.no\0"
+"molde.no\0"
+"yaroslavl.ru\0"
+"forlicesena.it\0vu\0"
+"transport.museum\0"
+"fot.br\0"
+"aurskog-holand.no\0"
+"of.by\0cs.it\0waw.pl\0ct.us\0"
+"med.br\0"
"ws\0"
-"oceanographique.museum\0"
-"b\xc3\xa1id\xc3\xa1r.no\0cc.mo.us\0"
-"\xc3\xb8ygarden.no\0"
-"contemporary.museum\0"
-"gb.com\0cc.as.us\0"
-"belluno.it\0gov.sa\0"
-"gov.sb\0"
-"gov.rs\0gov.sc\0"
-"gov.sd\0"
-"!pref.nagasaki.jp\0gov.ru\0"
-"asia\0"
-"sa.cr\0gov.rw\0gov.sg\0"
-"kuzbass.ru\0"
-"gs.vf.no\0"
-"gov.sl\0"
-"norfolk.museum\0"
-"k12.de.us\0"
-"mil\0"
-"rendalen.no\0"
-"gov.st\0"
-"agro.pl\0"
-"orkdal.no\0"
-"le.it\0gov.sy\0"
-"gov.tj\0"
-"co.gg\0nore-og-uvdal.no\0v\xc3\xa5ler.\xc3\xb8stfold.no\0"
-"gov.tl\0"
-"gov.tn\0"
-"gov.to\0"
-"kids.us\0"
-"equipment.aero\0gov.ua\0"
-"!city.niigata.jp\0gov.tt\0"
-"sel.no\0"
-"l\xc3\xa4ns.museum\0"
-"gov.tw\0"
-"rennebu.no\0"
-"egersund.no\0"
-"medecin.km\0"
-"co.gy\0"
-"!mecon.ar\0"
-"berlin.museum\0"
-"carrara-massa.it\0"
-"9.bg\0"
-"pri.ee\0gov.vc\0"
-"at.it\0"
-"muosat.no\0"
-"co.id\0"
-"co.hu\0"
-"etne.no\0"
-"\xc3\xa1lt\xc3\xa1.no\0"
-"gov.vn\0"
-"modelling.aero\0"
-"co.im\0"
-"co.in\0\xc3\xa5krehamn.no\0m.se\0"
-"gouv.fr\0*.kitakyushu.jp\0"
-"narviika.no\0"
-"rennes\xc3\xb8y.no\0"
-"co.ir\0afjord.no\0"
-"lea\xc5\x8bgaviika.no\0buryatia.ru\0"
-"co.it\0coastaldefence.museum\0"
-"co.je\0vf.no\0"
-"osteroy.no\0"
-"uslivinghistory.museum\0"
-"aerobatic.aero\0"
-"mesaverde.museum\0mining.museum\0"
-"a\xc3\xa9roport.ci\0gov.ws\0"
-"co.jp\0copenhagen.museum\0"
-"pv.it\0"
-"r\xc3\xb8mskog.no\0"
-"vossevangen.no\0porsanger.no\0"
-"salat.no\0mo.us\0"
-"o.bg\0imperia.it\0carrier.museum\0"
-"carbonia-iglesias.it\0"
-"as.us\0"
-"alvdal.no\0"
-"state.museum\0mandal.no\0cn.ua\0"
-"cuneo.it\0"
-"gouv.ht\0"
-"!city.okayama.jp\0co.kr\0"
-"co.lc\0"
-"sa.it\0"
-"donna.no\0"
+"firm.co\0"
+"jfk.museum\0lorenskog.no\0"
+"kunstunddesign.museum\0cc.vi.us\0"
+"austin.museum\0music.museum\0"
+"ath.cx\0"
+"nesoddtangen.no\0is-a-republican.com\0"
+"astrakhan.ru\0"
+"kobierzyce.pl\0"
+"gran.no\0"
+"tonsberg.no\0"
+"championship.aero\0"
+"medecin.fr\0"
+"sanok.pl\0"
+"\xc3\xb8rland.no\0"
+"muncie.museum\0gs.tr.no\0"
+"dynalias.net\0"
+"b\xc3\xb8mlo.no\0"
+"usculture.museum\0"
+"emp.br\0med.ec\0"
+"jan-mayen.no\0"
+"med.ee\0"
+"lib.la.us\0"
+"imb.br\0"
+"b\xc3\xb8.telemark.no\0"
+"sykkylven.no\0"
+"from-nv.com\0"
+"r\xc3\xb8""d\xc3\xb8y.no\0"
"sortland.no\0"
-"tomsk.ru\0"
-"birthplace.museum\0l\xc3\xb8""dingen.no\0"
-"ge.it\0orenburg.ru\0"
-"cn.com\0"
-"co.ma\0"
-"co.ls\0skaun.no\0name.vn\0"
-"navigation.aero\0"
-"cagliari.it\0co.me\0portal.museum\0"
-"gouv.bj\0"
-"udine.it\0"
-"engineer.aero\0"
-"szczecin.pl\0"
-"wales.museum\0"
-"co.na\0bo.telemark.no\0"
-"austin.museum\0"
-"k12.mo.us\0"
-"co.mu\0"
-"gouv.ci\0"
-"co.mw\0"
-"esp.br\0"
-"naturalhistorymuseum.museum\0"
-"mosjoen.no\0"
-"solund.no\0"
-"name.tj\0"
-"sand\xc3\xb8y.no\0"
-"kunstunddesign.museum\0"
-"cartoonart.museum\0collection.museum\0gsm.pl\0"
+"audnedaln.no\0cc.de.us\0"
+"is-a-patsfan.org\0"
+"bar.pro\0"
"aure.no\0"
-"!pref.yamaguchi.jp\0historical.museum\0"
-"name.tt\0"
-"england.museum\0valle.no\0"
-"cc.ok.us\0"
-"salangen.no\0"
-"gloppen.no\0"
-"cc.co.us\0"
-"contemporaryart.museum\0"
-"tas.edu.au\0"
-"trading.aero\0"
-"mazury.pl\0"
-"!pref.aomori.jp\0co.pl\0"
-"opoczno.pl\0"
-"*.kobe.jp\0co.pn\0"
-"oppegard.no\0"
-"co.pw\0"
-"saltdal.no\0smolensk.ru\0"
-"na.it\0\xc4\x8d\xc3\xa1hcesuolo.no\0"
-"vgs.no\0evenassi.no\0"
-"parachuting.aero\0jl.cn\0maritime.museum\0bd.se\0"
-"badaddja.no\0"
-"bergen.no\0"
-"brussel.museum\0"
-"avoues.fr\0"
-"cesenaforli.it\0"
-"oregontrail.museum\0"
-"ullensaker.no\0"
-"jobs\0"
-"accident-prevention.aero\0"
-"n.se\0"
-"association.museum\0california.museum\0"
-"cultural.museum\0co.rs\0"
-"zoology.museum\0"
-"pruszkow.pl\0"
-"control.aero\0nt.edu.au\0net\0komforb.se\0"
-"lincoln.museum\0aurland.no\0name.pr\0co.rw\0"
-"ostroleka.pl\0"
-"isernia.it\0"
-"tm.fr\0"
-"gs.ol.no\0"
-"nb.ca\0marnardal.no\0"
-"williamsburg.museum\0"
-"!jet.uk\0"
-"suisse.museum\0\xc3\xa5""fjord.no\0flakstad.no\0"
-"karmoy.no\0"
-"yn.cn\0chesapeakebay.museum\0"
-"nsw.au\0"
-"amur.ru\0co.st\0"
-"imb.br\0siellak.no\0\xe7\xb6\xb2\xe8\xb7\xaf.tw\0"
-"name.na\0"
-"co.th\0"
-"p.bg\0"
-"co.sz\0co.tj\0"
-"name.mv\0\xc3\xa5lesund.no\0lib.in.us\0"
-"lucerne.museum\0naumburg.museum\0"
-"society.museum\0name.my\0"
-"tinn.no\0"
-"co.tt\0"
-"unj\xc3\xa1rga.no\0"
-"co.ug\0"
-"lib.wy.us\0"
-"co.tz\0"
-"ass.km\0"
-"ok.us\0"
-"tm.hu\0kongsvinger.no\0"
-"ibestad.no\0"
-"juedisches.museum\0co.us\0"
-"cq.cn\0"
-"rs.ba\0"
-"wa.edu.au\0co.vi\0"
-"co.uz\0"
-"health.museum\0"
-"grue.no\0"
-"automotive.museum\0journalism.museum\0settlement.museum\0"
-"qh.cn\0interactive.museum\0"
-"snillfjord.no\0!national-library-scotland.uk\0"
-"balsfjord.no\0lib.nh.us\0"
-"kolobrzeg.pl\0"
-"gs.tm.no\0"
-"h\xc3\xb8nefoss.no\0"
-"ol.no\0"
-"music.museum\0moareke.no\0"
-"b\xc3\xb8.nordland.no\0"
-"name.mk\0lier.no\0"
-"eidfjord.no\0"
-"sc.cn\0tm.km\0"
-"jelenia-gora.pl\0sanok.pl\0"
-"intelligence.museum\0"
-"srv.br\0elblag.pl\0"
-"judygarland.museum\0"
-"padua.it\0"
-"k12.co.us\0"
-"lindesnes.no\0"
-"name.jo\0izhevsk.ru\0"
-"yorkshire.museum\0mel\xc3\xb8y.no\0"
-"tm.mc\0lib.pr.us\0"
-"hjartdal.no\0"
-"tm.mg\0"
-"bari.it\0milano.it\0"
-"lg.jp\0"
-"zgrad.ru\0"
-"sm\xc3\xb8la.no\0"
-"communications.museum\0"
-"arts.co\0seoul.kr\0engerdal.no\0"
-"oster\xc3\xb8y.no\0"
-"\xe6\x95\x8e\xe8\x82\xb2.hk\0foggia.it\0verran.no\0"
-"orskog.no\0voronezh.ru\0kv.ua\0"
-"av.it\0"
-"tm.no\0nissedal.no\0"
-"historisches.museum\0gs.mr.no\0"
-"medecin.fr\0"
-"montreal.museum\0"
-"o.se\0"
-"!metro.tokyo.jp\0sola.no\0"
-"k12.tn.us\0"
-"floro.no\0"
-"milan.it\0*.shiga.jp\0"
-"berkeley.museum\0"
-"maintenance.aero\0"
-"ws.na\0"
-"lindas.no\0cc.ia.us\0"
-"brescia.it\0embroidery.museum\0"
-"arezzo.it\0tm.pl\0"
-"r\xc3\xa6lingen.no\0"
-"burghof.museum\0"
+"estate.museum\0hjartdal.no\0"
+"egyptian.museum\0deatnu.no\0"
+"francaise.museum\0"
+"gen.in\0dyndns-free.com\0"
+"dell-ogliastra.it\0"
+"building.museum\0"
+"tp.it\0from-in.com\0"
+"military.museum\0"
+"carrier.museum\0"
+"novara.it\0roros.no\0"
+"livorno.it\0barrell-of-knowledge.info\0"
"rec.br\0"
-"q.bg\0"
-"!nawras.om\0"
+"*.ehime.jp\0"
+"kirkenes.no\0donna.no\0"
+"pharmacy.museum\0york.museum\0k12.md.us\0"
+"rec.co\0rc.it\0"
+"castle.museum\0buryatia.ru\0"
+"torino.it\0cranbrook.museum\0"
+"from-ok.com\0"
+"intl.tn\0"
+"arq.br\0"
+"isleofman.museum\0localhistory.museum\0"
+"r\xc3\xb8yrvik.no\0"
+"surgut.ru\0"
+"med.ht\0catanzaro.it\0"
+"hamaroy.no\0"
+"marylhurst.museum\0"
+"air-surveillance.aero\0"
+"pro.az\0bl.it\0"
+"roma.museum\0"
+"*.hyogo.jp\0"
+"mo.cn\0brasil.museum\0"
+"fusa.no\0leitungsen.de\0"
+"pro.br\0pistoia.it\0homelinux.net\0"
+"catering.aero\0jogasz.hu\0zgorzelec.pl\0"
+"tromsa.no\0"
+"lier.no\0"
+"!city.saitama.jp\0"
+"fla.no\0"
+"bydgoszcz.pl\0press.se\0"
+"sk\xc3\xa5nland.no\0lowicz.pl\0"
+"li.it\0"
+"saves-the-whales.com\0"
+"state.museum\0from-nh.com\0"
+"servebbs.org\0"
+"boleslawiec.pl\0"
+"zakopane.pl\0"
+"larsson.museum\0"
+"stavanger.no\0"
+"amber.museum\0fauske.no\0jgora.pl\0orenburg.ru\0"
+"scientist.aero\0h.bg\0coop.ht\0bern.museum\0"
+"\xe7\xbb\x84\xe7\xbb\x87.hk\0sn\xc3\xa5""ase.no\0"
+"pro.ec\0"
+"illustration.museum\0"
+"he.cn\0homeunix.com\0"
+"gangwon.kr\0"
+"web.co\0sa.com\0assisi.museum\0epilepsy.museum\0s\xc3\xb8gne.no\0cc.oh.us\0"
+"b\xc3\xa5tsfjord.no\0"
+"v\xc3\xa5g\xc3\xa5.no\0"
+"rauma.no\0lib.gu.us\0"
+"from-wv.com\0"
+"\xe7\xae\x87\xe4\xba\xba.hk\0"
+"med.ly\0"
+"si.it\0"
+"web.do\0"
+"coop.br\0"
+"swinoujscie.pl\0from-nm.com\0"
+"gausdal.no\0i.ph\0"
+"lomza.pl\0is-saved.org\0"
+"qsl.br\0"
+"of.no\0"
+"nu.ca\0suli.hu\0"
+"!pref.mie.jp\0"
+"travel.pl\0"
+"dnsalias.com\0"
+"stpetersburg.museum\0"
+"cr.it\0dc.us\0"
+"gok.pk\0"
+"nord-odal.no\0"
+"vevelstad.no\0"
+"society.museum\0egersund.no\0"
+"cc.in.us\0writesthisblog.com\0"
+"koenig.ru\0"
+"arendal.no\0"
+"unbi.ba\0museum.tt\0dyndns.org\0"
+"bir.ru\0"
+"maryland.museum\0"
+"med.pa\0"
+"pro.ht\0"
+"mo.it\0press.ma\0"
+"lel.br\0!pref.yamaguchi.jp\0dnepropetrovsk.ua\0homedns.org\0"
+"*.aomori.jp\0"
+"can.museum\0"
+"aero.tt\0cc.ga.us\0"
+"med.pl\0"
+"i.se\0"
"hammarfeasta.no\0"
+"architecture.museum\0"
+"!pref.hokkaido.jp\0vf.no\0"
+"!pref.kagawa.jp\0"
+"hob\xc3\xb8l.no\0"
+"nyny.museum\0khabarovsk.ru\0"
+"sondrio.it\0"
+"*.tochigi.jp\0odda.no\0"
+"snaase.no\0starachowice.pl\0"
+"aero.mv\0"
+"tsaritsyn.ru\0"
+"*.shizuoka.jp\0"
+"cc.ct.us\0"
+"web.id\0doomdns.com\0"
+"bjugn.no\0"
+"gmina.pl\0"
+"firm.ro\0"
+"nom.ad\0"
+"rec.nf\0"
+"nom.ag\0samnanger.no\0"
+"to.it\0"
+"travel.tt\0"
+"med.sa\0"
+"depot.museum\0"
+"sh.cn\0"
+"tra.kp\0bahccavuotna.no\0med.sd\0"
+"idrett.no\0"
+"agrinet.tn\0"
+"t\xc3\xb8nsberg.no\0"
+"tyumen.ru\0"
+"yorkshire.museum\0"
+"!city.osaka.jp\0"
+"vadso.no\0"
+"k12.mi.us\0"
+"torino.museum\0vinnica.ua\0"
+"textile.museum\0"
+"union.aero\0algard.no\0"
+"*.miyagi.jp\0halloffame.museum\0"
+"cq.cn\0"
+"nom.br\0air.museum\0"
+"ragusa.it\0br\xc3\xb8nn\xc3\xb8y.no\0"
+"afjord.no\0oyer.no\0"
+"!city.niigata.jp\0pro.na\0"
+"!city.chiba.jp\0florida.museum\0"
+"far.br\0ruovat.no\0aid.pl\0"
+"nom.co\0humanities.museum\0pro.mv\0"
+"tydal.no\0k12.in.us\0"
+"web.lk\0kazan.ru\0"
+"nu.it\0os\xc3\xb8yro.no\0nv.us\0"
+"certification.aero\0"
+"cargo.aero\0firm.nf\0"
+"!pref.nagano.jp\0"
+"oryol.ru\0"
+"name.hr\0"
+"lesja.no\0isteingeek.de\0"
+"dallas.museum\0uw.gov.pl\0"
+"trapani.it\0"
+"lib.nj.us\0"
+"is-an-accountant.com\0"
+"southcarolina.museum\0"
+"ky.us\0"
+"karlsoy.no\0"
+"cosenza.it\0gjemnes.no\0"
+"web.nf\0"
+"oppdal.no\0"
+"is-a-nurse.com\0"
+"rec.ro\0"
+"geometre-expert.fr\0donostia.museum\0"
+"solund.no\0"
+"nom.es\0"
+"fhs.no\0vardo.no\0"
+"g.bg\0"
+"vega.no\0"
"moss.no\0"
-"on.ca\0"
-"gouv.rw\0"
-"luxembourg.museum\0"
-"rec.co\0british.museum\0"
-"reggio-emilia.it\0"
-"gouv.sn\0lib.wv.us\0"
-"avocat.fr\0"
-"simbirsk.ru\0"
-"jar.ru\0"
-"monza-brianza.it\0"
-"tm.ro\0"
-"imageandsound.museum\0"
-"jpn.com\0mr.no\0"
-"siracusa.it\0"
-"norilsk.ru\0tm.se\0"
+"pro.pr\0"
+"pesaro-urbino.it\0silk.museum\0il.us\0"
+"ve.it\0"
+"historisch.museum\0history.museum\0alesund.no\0"
+"airport.aero\0"
+"nom.fr\0"
+"museum.mv\0selfip.net\0"
+"museum.mw\0"
+"k12.mo.us\0"
+"cinema.museum\0mallorca.museum\0museum.no\0web.pk\0bieszczady.pl\0"
+"dni.us\0"
+"nt.au\0"
+"no.com\0"
+"botany.museum\0pl.ua\0"
+"parachuting.aero\0gjesdal.no\0"
+"gyeonggi.kr\0"
+"ham-radio-op.net\0"
+"bellevue.museum\0"
+"nt.ca\0"
+"vic.gov.au\0"
+"name.eg\0"
+"preservation.museum\0lib.ri.us\0"
+"randaberg.no\0"
+"public.museum\0"
+"bruxelles.museum\0"
+"nyc.museum\0"
+"bj.cn\0eisenbahn.museum\0"
+"bialystok.pl\0"
+"trainer.aero\0atlanta.museum\0"
+"name.az\0"
+"mn.it\0wloclawek.pl\0pro.tt\0mo.us\0"
+"sciencesnaturelles.museum\0"
+"s\xc3\xb8r-fron.no\0scrapping.cc\0"
+"federation.aero\0"
+"h.se\0"
+"uk.com\0"
+"qld.gov.au\0ad.jp\0"
+"glass.museum\0"
+"gallery.museum\0"
+"nom.km\0stalowa-wola.pl\0"
+"bashkiria.ru\0lib.ks.us\0"
+"comunica\xc3\xa7\xc3\xb5""es.museum\0"
+"modena.it\0web.tj\0!jet.uk\0"
+"dr\xc3\xb8""bak.no\0\xd8\xa7\xd9\x84\xd8\xa7\xd8\xb1\xd8\xaf\xd9\x86\0"
+"kaluga.ru\0"
+"fyresdal.no\0scrapper-site.net\0"
+"jorpeland.no\0polkowice.pl\0is-very-nice.org\0"
+"handson.museum\0pro.vn\0"
+"cc.dc.us\0"
+"barletta-trani-andria.it\0"
+"lubin.pl\0"
+"troms\xc3\xb8.no\0"
+"fjell.no\0"
+"fm.br\0"
+"potenza.it\0"
+"lib.ut.us\0"
+"versailles.museum\0"
+"nom.mg\0whaling.museum\0gu.us\0"
"tn.it\0"
-"jeju.kr\0"
-"!pref.fukuoka.jp\0"
-"*.hyogo.jp\0portlligat.museum\0"
-"!pref.osaka.jp\0"
-"siena.it\0sc.kr\0omaha.museum\0saskatchewan.museum\0"
-"phoenix.museum\0vanylven.no\0"
-"botanicalgarden.museum\0"
-"turek.pl\0"
-"vagsoy.no\0"
-"riodejaneiro.museum\0"
-"vi.it\0"
+"gsm.pl\0"
+"monza-brianza.it\0"
+"ac.ae\0is-leet.com\0"
+"gs.of.no\0"
+"furniture.museum\0isa-geek.org\0"
+"losangeles.museum\0"
+"lea\xc5\x8bgaviika.no\0"
+"coop.tt\0"
+"fuossko.no\0lib.sc.us\0"
+"ac.at\0"
+"ac.be\0eng.pro\0"
+"arts.co\0ra.it\0"
+"niepce.museum\0"
+"chesapeakebay.museum\0"
+"ski.no\0lapy.pl\0"
+"vic.edu.au\0v\xc3\xa5ler.hedmark.no\0"
+"tarnobrzeg.pl\0"
+"jeonnam.kr\0"
+"coop.mv\0buyshouses.net\0"
+"coop.mw\0"
+"tingvoll.no\0"
+"veterinaire.km\0"
+"ac.ci\0narvik.no\0"
+"nom.pa\0"
+"ac.cn\0nom.pe\0"
+"padova.it\0"
+"ac.cr\0k12.ec\0starnberg.museum\0"
+"gs.vf.no\0"
+"nom.pl\0"
"uy.com\0"
-"kristiansand.no\0"
-"sd.cn\0trento.it\0"
-"muncie.museum\0"
-"berg.no\0meldal.no\0"
+"traniandriabarletta.it\0"
+"hurdal.no\0"
+"perugia.it\0lib.nm.us\0"
+"est-mon-blogueur.com\0"
+"inf.br\0"
+"caserta.it\0from-tn.com\0"
+"botanicgarden.museum\0"
+"tree.museum\0grajewo.pl\0"
+"automotive.museum\0"
+"wielun.pl\0"
+"even\xc3\xa1\xc5\xa1\xc5\xa1i.no\0naustdal.no\0"
+"bio.br\0"
+"landes.museum\0"
+"lg.jp\0"
+"association.aero\0"
+"nordre-land.no\0ing.pa\0nom.re\0"
+"f.bg\0santabarbara.museum\0cbg.ru\0"
+"gov\0"
+"inf.cu\0andriatranibarletta.it\0maritime.museum\0"
+"volda.no\0"
+"is-by.us\0"
+"communication.museum\0"
+"ivanovo.ru\0"
+"lodingen.no\0"
+"honefoss.no\0swidnica.pl\0nom.ro\0"
+"gs.cn\0"
+"cc.nv.us\0"
+"veterinaire.fr\0"
"nes.buskerud.no\0"
-"saratov.ru\0"
-"gs.oslo.no\0"
-"harstad.no\0vaga.no\0"
-"research.museum\0"
-"brunel.museum\0ia.us\0"
-"test.tj\0"
-"columbia.museum\0"
-"ms.it\0stockholm.museum\0"
-"reklam.hu\0"
-"pomorskie.pl\0lg.ua\0"
-"bg.it\0historicalsociety.museum\0rns.tn\0"
-"mallorca.museum\0surgut.ru\0cc.sc.us\0"
-"ushistory.museum\0"
-"palana.ru\0"
-"snoasa.no\0"
-"naturalsciences.museum\0"
-"yaroslavl.ru\0"
-"unjarga.no\0"
-"p.se\0"
-"ingatlan.hu\0"
-"irc.pl\0"
-"savona.it\0"
-"cr.it\0"
-"test.ru\0cc.tn.us\0"
-"ms.kr\0museumvereniging.museum\0"
-"time.no\0k12.ia.us\0"
-"vladimir.ru\0"
-"correios-e-telecomunica\xc3\xa7\xc3\xb5""es.museum\0"
-"gouv.km\0nationalfirearms.museum\0"
-"m\xc3\xa1latvuopmi.no\0"
-"aero\0yosemite.museum\0"
-"r.bg\0school.na\0"
-"cc.vi.us\0"
-"*.wakayama.jp\0"
-"beauxarts.museum\0averoy.no\0ullensvang.no\0bar.pro\0"
-"!city.hiroshima.jp\0"
-"b\xc3\xa1hccavuotna.no\0"
-"frosta.no\0"
-"gdynia.pl\0"
-"medical.museum\0"
-"embaixada.st\0"
-"balsan.it\0vantaa.museum\0"
-"za.net\0"
-"!city.saitama.jp\0lib.ks.us\0"
-"fnd.br\0"
-"ru.com\0se.com\0hol.no\0modalen.no\0"
-"gouv.ml\0chukotka.ru\0"
-"malopolska.pl\0"
-"mansion.museum\0"
-"iki.fi\0children.museum\0"
-"cyber.museum\0rec.nf\0mo\xc3\xa5reke.no\0"
-"to.it\0"
-"hasvik.no\0"
-"\xc3\xb8yer.no\0"
-"arts.ro\0sc.ug\0"
-"lib.ar.us\0"
-"sc.tz\0cc.ms.us\0cc.nc.us\0"
-"etc.br\0poznan.pl\0"
-"cnt.br\0viking.museum\0"
-"*.miyazaki.jp\0"
-"melhus.no\0"
-"skodje.no\0vevelstad.no\0"
-"sc.us\0"
-"upow.gov.pl\0"
-"!city.fukuoka.jp\0brandywinevalley.museum\0natuurwetenschappen.museum\0tranby.no\0"
-"bahn.museum\0msk.ru\0"
-"delmenhorst.museum\0"
-"russia.museum\0fuoisku.no\0"
-"shell.museum\0"
-"r\xc3\xa1isa.no\0"
-"hs.kr\0udmurtia.ru\0"
-"palermo.it\0"
-"pilot.aero\0"
+"games.hu\0"
+"9.bg\0from-vt.com\0"
+"tank.museum\0"
+"udm.ru\0"
+"l\xc3\xb8ten.no\0tranoy.no\0"
+"fm.it\0"
+"media.aero\0iraq.museum\0\xc3\xa1k\xc5\x8boluokta.no\0"
+"ac.gn\0"
+"leka.no\0"
+"and\xc3\xb8y.no\0cc.ky.us\0"
+"!pref.tokushima.jp\0"
+"*.akita.jp\0coldwar.museum\0nt.no\0"
+"tur.br\0ns.ca\0smola.no\0homelinux.org\0"
+"square.museum\0"
+"coop.km\0stv.ru\0"
+"taxi.br\0"
+"konyvelo.hu\0stuttgart.museum\0hadsel.no\0lugansk.ua\0"
+"children.museum\0nuernberg.museum\0"
+"eastafrica.museum\0"
+"sa.edu.au\0ac.id\0jaworzno.pl\0"
+"mbone.pl\0cc.il.us\0"
+"kolobrzeg.pl\0malbork.pl\0"
+"iki.fi\0"
+"medizinhistorisches.museum\0"
+"levanger.no\0"
+"ac.im\0\xc3\xa5lg\xc3\xa5rd.no\0"
+"tm.fr\0ac.in\0"
+"ac.ir\0name.vn\0"
+"mn.us\0"
+"mat.br\0"
+"trento.it\0"
+"dnsdojo.com\0"
+"phoenix.museum\0"
+"g.se\0"
+"ac.jp\0"
+"graz.museum\0"
+"drangedal.no\0"
+"prato.it\0county.museum\0"
+"is-very-bad.org\0"
+"dynalias.org\0"
+"repbody.aero\0land-4-sale.us\0"
+"jus.br\0"
+"name.tj\0"
+"co.ae\0"
+"bajddar.no\0"
+"co.ag\0tm.hu\0"
+"ac.kr\0"
+"tj\xc3\xb8me.no\0"
+"baltimore.museum\0fm.no\0"
+"nt.ro\0"
+"kraanghke.no\0"
+"fl\xc3\xa5.no\0um.gov.pl\0name.tt\0"
+"co.ao\0"
+"fst.br\0"
+"co.ba\0birkenes.no\0lib.ia.us\0"
+"auto.pl\0"
+"co.at\0"
+"blog.br\0garden.museum\0"
"tn.us\0"
-"priv.hu\0"
-"li.it\0"
-"kr\xc3\xa5""anghke.no\0mosreg.ru\0"
-"lib.fl.us\0"
-"plants.museum\0"
-"ulsan.kr\0national.museum\0"
-"mil.ac\0!pref.nara.jp\0surgeonshall.museum\0"
-"mil.ae\0santacruz.museum\0vi.us\0"
-"wlocl.pl\0"
-"mt.it\0napoli.it\0alaska.museum\0arts.nf\0"
-"missoula.museum\0"
-"rec.ro\0"
-"mil.al\0"
-"marburg.museum\0waw.pl\0"
-"pharmaciens.km\0indianapolis.museum\0larsson.museum\0"
-"cc.sd.us\0"
-"mil.ba\0mobi\0"
-"indianmarket.museum\0"
-"recreation.aero\0padova.it\0"
-"varese.it\0parti.se\0"
-"mil.az\0"
-"mil.bo\0!pref.kagoshima.jp\0khmelnitskiy.ua\0"
-"rygge.no\0"
-"os\xc3\xb8yro.no\0"
-"mil.br\0"
-"cs.it\0"
-"austevoll.no\0fjell.no\0"
-"mil.by\0"
-"!pref.tokushima.jp\0org\0"
-"mil.cn\0gs.svalbard.no\0"
-"mil.co\0"
-"pz.it\0lib.va.us\0\xd1\x80\xd1\x84\0"
-"\xe4\xb8\xaa\xe4\xba\xba.hk\0ms.us\0nc.us\0k12.wi.us\0"
-"s.bg\0drangedal.no\0"
-"en.it\0"
-"culturalcenter.museum\0"
-"house.museum\0divttasvuotna.no\0"
-"fhs.no\0"
-"circus.museum\0"
-"priv.at\0"
-"mil.ec\0"
-"ruovat.no\0"
-"midsund.no\0vagan.no\0"
-"casadelamoneda.museum\0"
-"bristol.museum\0"
-"and.museum\0"
-"ascolipiceno.it\0computerhistory.museum\0vyatka.ru\0"
-"uhren.museum\0"
-"lahppi.no\0"
-"*.yokohama.jp\0cody.museum\0lib.al.us\0"
-"colonialwilliamsburg.museum\0indian.museum\0cc.ky.us\0"
-"tp.it\0biev\xc3\xa1t.no\0"
-"can.br\0royken.no\0"
-"id.ir\0"
-"mediocampidano.it\0tromso.no\0"
-"kartuzy.pl\0k12.ok.us\0"
-"*.saitama.jp\0stjohn.museum\0m\xc3\xa1tta-v\xc3\xa1rjjat.no\0"
-"mil.ge\0trani-barletta-andria.it\0"
-"lib.as.us\0"
-"swiebodzin.pl\0cc.mt.us\0cc.nd.us\0"
-"mil.gh\0"
-"science-fiction.museum\0\xd9\x82\xd8\xb7\xd8\xb1\0"
-"airtraffic.aero\0"
-"konskowola.pl\0"
-"scienceandhistory.museum\0nysa.pl\0sd.us\0"
-"balestrand.no\0"
-"oygarden.no\0"
-"her\xc3\xb8y.nordland.no\0"
-"!pref.ishikawa.jp\0strand.no\0"
-"\xe7\xb5\x84\xe7\xbb\x87.hk\0mil.hn\0"
-"gob.bo\0volda.no\0"
-"losangeles.museum\0larvik.no\0"
-"university.museum\0"
-"cc.dc.us\0"
-"mil.id\0"
-"sorfold.no\0"
-"watch-and-clock.museum\0"
-"flor\xc3\xb8.no\0"
-"nittedal.no\0oppeg\xc3\xa5rd.no\0"
-"k12.ri.us\0"
-"gob.cl\0"
-"komi.ru\0"
-"government.aero\0mil.in\0"
-"mil.iq\0id.lv\0"
-"culture.museum\0"
-"id.ly\0"
-"raholt.no\0"
-"lubin.pl\0grozny.ru\0"
-"kchr.ru\0"
-"nikolaev.ua\0"
-"lib.sd.us\0"
-"de.com\0"
-"mil.jo\0"
-"*.kanagawa.jp\0gaular.no\0miasta.pl\0"
-"bi.it\0rnu.tn\0uzhgorod.ua\0"
-"idrett.no\0v\xc3\xa5gs\xc3\xb8y.no\0"
-"wroclaw.pl\0"
-"res.aero\0ne.jp\0mil.kg\0"
-"\xc3\xa5mli.no\0"
-"education.museum\0"
-"dgca.aero\0"
-"mil.km\0"
-"trolley.museum\0"
-"cci.fr\0r.se\0"
-"archaeological.museum\0"
-"monzaedellabrianza.it\0mil.kr\0"
-"gob.es\0kvafjord.no\0ky.us\0"
-"lecco.it\0"
-"ct.it\0"
-"magazine.aero\0"
-"operaunite.com\0ne.kr\0"
-"mil.kz\0skoczow.pl\0"
-"nf.ca\0"
-"western.museum\0"
-"kunst.museum\0gaivuotna.no\0karpacz.pl\0spb.ru\0cc.id.us\0"
-"slask.pl\0"
-"youth.museum\0"
-"adv.br\0campidanomedio.it\0!songfest.om\0"
-"geelvinck.museum\0\xd8\xa7\xd9\x85\xd8\xa7\xd8\xb1\xd8\xa7\xd8\xaa\0"
-"mil.lv\0"
-"fie.ee\0mil.mg\0mt.us\0nd.us\0k12.vt.us\0"
-"t.bg\0ushuaia.museum\0"
-"off.ai\0"
-"irkutsk.ru\0"
-"stor-elvdal.no\0tourism.tn\0"
-"penza.ru\0"
-"bj.cn\0\xe4\xb8\xad\xe5\x9b\xbd\0"
-"civilwar.museum\0mil.mv\0opole.pl\0"
-"nes.akershus.no\0"
-"mil.my\0karelia.ru\0"
-"como.it\0sande.vestfold.no\0"
-"\xe4\xb8\xad\xe5\x9c\x8b\0"
-"gob.hn\0lib.la.us\0"
-"mil.no\0cc.wv.us\0"
-"boleslawiec.pl\0"
-"!pref.niigata.jp\0gs.sf.no\0dc.us\0k12.mi.us\0"
-"museum\0dep.no\0kv\xc3\xa6nangen.no\0l\xc3\xa1hppi.no\0"
-"film.museum\0"
-"frei.no\0"
-"notodden.no\0risor.no\0"
-"messina.it\0"
-"eidsberg.no\0"
-"krakow.pl\0lib.mt.us\0lib.nd.us\0"
-"rauma.no\0"
-"mulhouse.museum\0"
-"sibenik.museum\0grong.no\0mil.pe\0"
-"budejju.no\0k12.nv.us\0"
-"stavanger.no\0mil.ph\0"
-"forli-cesena.it\0"
-"naples.it\0cc.ne.us\0"
-"s\xc3\xb8r-aurdal.no\0"
-"mil.pl\0"
-"vibo-valentia.it\0ski.museum\0siedlce.pl\0"
-"bus.museum\0"
-"tozsde.hu\0"
-"!pref.shizuoka.jp\0santabarbara.museum\0"
-"zhitomir.ua\0"
-"pro.az\0"
-"ne.pw\0"
-"pro.br\0orkanger.no\0b\xc3\xb8.telemark.no\0"
-"roma.it\0cc.ct.us\0"
-"heritage.museum\0giske.no\0"
-"!pref.kumamoto.jp\0prof.pr\0"
-"*.kochi.jp\0"
-"andria-barletta-trani.it\0*.toyama.jp\0sveio.no\0"
-"id.us\0"
-"bolt.hu\0"
-"fetsund.no\0porsgrunn.no\0"
-"iglesias-carbonia.it\0"
-"sf.no\0"
-"mil.ru\0"
-"from.hr\0asnes.no\0mil.rw\0"
-"alesund.no\0sos.pl\0"
-"livorno.it\0"
-"crafts.museum\0"
-"aquila.it\0"
-"vega.no\0"
-"jewelry.museum\0"
-"sk\xc3\xa1nit.no\0chita.ru\0"
-"pro.ec\0"
-"fortmissoula.museum\0j\xc3\xb8lster.no\0"
-"pro\0mil.st\0"
-"busan.kr\0lib.ga.us\0"
-"dellogliastra.it\0"
-"aosta.it\0chungnam.kr\0gob.mx\0"
-"mil.sy\0k12.hi.us\0"
-"mil.tj\0"
-"ulan-ude.ru\0mil.to\0wv.us\0"
-"luster.no\0volgograd.ru\0"
-"pa.it\0kommunalforbund.se\0lib.tx.us\0"
-"s.se\0"
-"qsl.br\0"
-"mil.tw\0"
-"est.pr\0ens.tn\0"
-"lib.id.us\0"
-"mil.tz\0"
-"uscountryestate.museum\0"
-"agents.aero\0"
-"\xc3\xb8vre-eiker.no\0ne.ug\0"
-"pb.ao\0"
-"gob.pa\0ne.tz\0"
-"tur.br\0"
-"mil.vc\0"
-"or.at\0gob.pe\0"
-"s\xc3\xb8r-fron.no\0"
-"or.bi\0ne.us\0"
-"u.bg\0gob.pk\0"
-"stavern.no\0"
-"brindisi.it\0"
-"aknoluokta.no\0"
-"!pref.kyoto.jp\0tydal.no\0"
-"plc.ly\0muos\xc3\xa1t.no\0"
-"or.ci\0hamaroy.no\0priv.pl\0"
-"vestre-slidre.no\0gniezno.pl\0"
-"\xe7\xae\x87\xe4\xba\xba.hk\0"
-"andebu.no\0"
-"nieruchomosci.pl\0\xd8\xa7\xd9\x84\xd8\xb3\xd8\xb9\xd9\x88\xd8\xaf\xd9\x8a\xd8\xa9\0"
-"or.cr\0pro.ht\0bolzano.it\0"
-"ct.us\0k12.md.us\0"
-"za.org\0"
-"!icnet.uk\0"
-"localhistory.museum\0"
-"firm.ht\0"
-"lel.br\0tr.it\0kvanangen.no\0"
-"sondre-land.no\0t\xc3\xb8nsberg.no\0vefsn.no\0"
-"nature.museum\0yamal.ru\0"
-"rv.ua\0"
-"lans.museum\0lib.ne.us\0"
+"ac.ma\0grue.no\0"
+"co.bi\0!songfest.om\0"
+"bialowieza.pl\0"
+"ac.me\0"
+"cc.mo.us\0"
+"s\xc3\xa1lat.no\0vestre-toten.no\0"
+"engine.aero\0"
+"\xd8\xa7\xd9\x84\xd8\xb3\xd8\xb9\xd9\x88\xd8\xaf\xdb\x8c\xd8\xa9\0"
+"pyatigorsk.ru\0\xe0\xb6\xbd\xe0\xb6\x82\xe0\xb6\x9a\xe0\xb7\x8f\0"
+"co.bw\0"
+"co.ci\0dagestan.ru\0kids.us\0"
+"ac.mu\0"
+"ac.mw\0ac.ng\0"
+"od.ua\0"
+"belluno.it\0tm.km\0misconfused.org\0"
+"co.cr\0"
+"is-a-conservative.com\0isa-geek.com\0"
+"ab.ca\0*.ishikawa.jp\0"
+"*.nara.jp\0nedre-eiker.no\0"
+"dyndns-server.com\0"
+"\xe7\xbb\x84\xe7\xb9\x94.hk\0stranda.no\0lib.pa.us\0"
+"inf.mk\0f\xc3\xb8rde.no\0"
+"bi.it\0az.us\0"
+"ontario.museum\0saotome.st\0"
+"*.fukuoka.jp\0"
+"lg.ua\0"
+"video.hu\0tm.mc\0"
+"!omantel.om\0cc.gu.us\0"
+"skedsmokorset.no\0ac.pa\0"
+"nt.gov.au\0"
+"tm.mg\0"
+"taxi.aero\0dep.no\0prochowice.pl\0"
+"from-ma.com\0"
+"name.pr\0"
+"ingatlan.hu\0nesseby.no\0"
+"dali.museum\0dyndns-work.com\0"
+"kr.com\0"
+"dyndns-mail.com\0"
+"from-ar.com\0"
+"windmill.museum\0ac.pr\0from-co.net\0"
+"assassination.museum\0"
+"name.na\0"
+"arts.ro\0"
+"strand.no\0"
+"dyndns-office.com\0"
+"entertainment.aero\0name.mv\0kvalsund.no\0\xd8\xa7\xdb\x8c\xd8\xb1\xd8\xa7\xd9\x86\0"
+"!city.sapporo.jp\0tm.no\0is-very-good.org\0"
+"dyndns.info\0"
+"name.my\0"
+"e.bg\0pomorskie.pl\0"
+"folkebibl.no\0"
+"co.gg\0usa.museum\0lib.wa.us\0homeftp.org\0"
+"targi.pl\0"
+"vc.it\0ut.us\0"
+"livinghistory.museum\0"
+"hb.cn\0"
+"bronnoy.no\0"
+"haram.no\0"
+"museumcenter.museum\0"
+"ptz.ru\0"
+"fet.no\0"
+"8.bg\0co.gy\0ac.rs\0xxx\0"
+"ac.ru\0ac.se\0"
+"ac.rw\0k12.ne.us\0"
+"tm.pl\0gniezno.pl\0"
+"mo\xc3\xa5reke.no\0"
+"co.id\0"
+"co.hu\0"
+"christiansburg.museum\0"
+"wegrow.pl\0lanbib.se\0"
+"ryazan.ru\0"
+"co.im\0"
+"co.in\0brescia.it\0ac.th\0"
+"ac.sz\0ac.tj\0"
+"co.ir\0"
+"arts.nf\0tjeldsund.no\0is-a-geek.com\0"
+"co.it\0"
+"pi.it\0co.je\0name.mk\0"
+"helsinki.museum\0"
+"svalbard.no\0"
+"delaware.museum\0"
+"is-a-candidate.org\0"
+"adm.br\0ac.ug\0"
+"kalisz.pl\0k12.vi\0"
+"co.jp\0ac.tz\0"
+"tm.ro\0"
+"*.okayama.jp\0"
+"cymru.museum\0"
+"chieti.it\0"
+"lib.nv.us\0"
+"wa.gov.au\0konin.pl\0tm.se\0"
+"us.na\0dynathome.net\0"
+"name.jo\0"
+"!nacion.ar\0"
+"trieste.it\0"
+"ru.com\0se.com\0"
+"co.kr\0"
+"co.lc\0f.se\0"
+"theater.museum\0ac.vn\0"
+"\xc3\xb8rskog.no\0"
+"port.fr\0"
+"flog.br\0rahkkeravju.no\0"
+"krakow.pl\0"
+"coop\0"
+"co.ma\0moareke.no\0"
+"sogndal.no\0"
+"co.ls\0"
+"co.me\0skodje.no\0!statecouncil.om\0"
+"mail.pl\0"
+"educational.museum\0uhren.museum\0"
"lur\xc3\xb8y.no\0"
-"eu.com\0firm.in\0"
-"hjelmeland.no\0"
-"gs.tr.no\0"
-"casino.hu\0essex.museum\0tourism.pl\0"
-"rennesoy.no\0"
-"priv.no\0"
-"baths.museum\0mytis.ru\0"
-"tingvoll.no\0"
-"cc.az.us\0"
-"sh.cn\0"
-"!pref.miyazaki.jp\0s\xc3\xb8rfold.no\0"
-"aurskog-holand.no\0malatvuopmi.no\0"
-"lib.ct.us\0"
-"cc.pa.us\0"
-"pa.gov.pl\0"
-"firm.co\0cc.de.us\0"
-"nrw.museum\0"
-"daejeon.kr\0livinghistory.museum\0"
-"gildeskal.no\0lund.no\0"
-"\xc3\xb8ksnes.no\0stavropol.ru\0"
-"b\xc3\xa6rum.no\0r\xc3\xb8yrvik.no\0"
-"osoyro.no\0"
-"priv.me\0sula.no\0!parliament.uk\0"
-"nationalheritage.museum\0"
-"jaworzno.pl\0"
-"dinosaur.museum\0"
-"garden.museum\0trust.museum\0"
-"turen.tn\0"
-"kautokeino.no\0"
-"pro.na\0"
-"gorizia.it\0"
-"siljan.no\0"
-"or.id\0pro.mv\0"
-"bieszczady.pl\0www.ro\0"
-"lib.ee\0antiques.museum\0brasil.museum\0tr.no\0"
-"aejrie.no\0"
-"!pref.hokkaido.jp\0"
-"schlesisches.museum\0"
-"huissier-justice.fr\0or.it\0"
-"t.se\0"
-"environment.museum\0"
-"vindafjord.no\0"
-"edu.ac\0or.jp\0"
-"tree.museum\0"
-"groundhandling.aero\0edu.af\0"
-"rochester.museum\0sanfrancisco.museum\0"
-"ebiz.tw\0"
-"kirovograd.ua\0"
-"edu.al\0"
-"edu.an\0\xc3\xa1k\xc5\x8boluokta.no\0v\xc3\xa5g\xc3\xa5.no\0"
-"v.bg\0"
+"sf.no\0"
+"gb.com\0is-very-evil.org\0"
+"edunet.tn\0"
+"beardu.no\0"
+"co.na\0"
+"is-a-rockstar.com\0"
+"nowaruda.pl\0"
+"gr.it\0"
+"per.la\0co.mu\0"
+"marnardal.no\0"
+"co.mw\0wolomin.pl\0"
+"edu.ac\0"
+"tas.gov.au\0"
+"edu.af\0vlog.br\0!pref.niigata.jp\0cc.mn.us\0"
+"co.nl\0gs.nt.no\0"
+"co.no\0"
+"gr.jp\0!city.kawasaki.jp\0"
+"edu.al\0burghof.museum\0sunndal.no\0!omanpost.om\0"
+"tempio-olbia.it\0stj\xc3\xb8rdal.no\0"
+"edu.an\0"
+"za.com\0"
"edu.ba\0"
-"edu.bb\0nesset.no\0"
-"hornindal.no\0pro.pr\0"
-"or.kr\0"
-"az.us\0"
-"edu.bh\0volkenkunde.museum\0"
-"edu.bi\0"
+"edu.bb\0natuurwetenschappen.museum\0"
+"mining.museum\0kutno.pl\0"
+"cechire.com\0"
+"edu.bh\0kicks-ass.net\0"
+"edu.bi\0memorial.museum\0nesodden.no\0"
"edu.az\0"
-"b\xc3\xb8mlo.no\0"
-"edu.bm\0"
-"edu.bo\0tyumen.ru\0"
+"genova.it\0"
+"edu.bm\0sydney.museum\0"
+"edu.bo\0barrel-of-knowledge.info\0"
+"uvic.museum\0"
"edu.br\0"
-"edu.bs\0pa.us\0"
-"alto-adige.it\0whaling.museum\0"
-"*.iwate.jp\0"
-"edu.ci\0law.pro\0"
-"edu.bz\0de.us\0"
-"lib.ak.us\0"
-"edu.cn\0"
-"edu.co\0"
-"laspezia.it\0"
-"baidar.no\0"
-"ts.it\0"
-"or.na\0"
-"edu.cu\0hotel.lk\0"
-"show.aero\0or.mu\0"
-"sandnes.no\0"
-"museumcenter.museum\0"
-"edu.dm\0kazan.ru\0"
-"biz\0caltanissetta.it\0odessa.ua\0k12.oh.us\0"
-"crimea.ua\0"
-"research.aero\0lom.no\0"
-"edu.ec\0florence.it\0clock.museum\0sshn.se\0"
-"edu.ee\0game.tw\0"
-"!pref.okinawa.jp\0"
-"ilawa.pl\0"
-"edu.dz\0indiana.museum\0"
-"gs.jan-mayen.no\0"
-"publ.pt\0"
-"nom.ad\0"
-"skanit.no\0gdansk.pl\0k12.pa.us\0"
-"nom.ag\0edu.es\0"
-"if.ua\0"
-"pro.tt\0lib.de.us\0"
-"environmentalconservation.museum\0cc.or.us\0"
-"bern.museum\0nat.tn\0"
-"rubtsovsk.ru\0"
-"!educ.ar\0masoy.no\0"
-"bologna.it\0"
-"\xc3\xa5snes.no\0fhv.se\0"
-"*.tottori.jp\0radoy.no\0"
-"romskog.no\0"
-"malbork.pl\0"
-"olbiatempio.it\0"
-"edu.ge\0"
-"edu.gh\0"
-"edu.gi\0"
-"or.pw\0"
-"hob\xc3\xb8l.no\0"
-"nom.br\0edu.gn\0virginia.museum\0mbone.pl\0!nls.uk\0"
-"seljord.no\0pro.vn\0"
-"edu.gp\0"
-"edu.gr\0"
-"!uba.ar\0!pref.saitama.jp\0"
-"greta.fr\0gs.aa.no\0kvinnherad.no\0"
-"lib.sc.us\0"
-"js.cn\0nom.co\0edu.hk\0"
-"lesja.no\0"
-"bl.it\0"
-"edu.hn\0\xc3\xb8ystre-slidre.no\0mari-el.ru\0"
-"hotel.hu\0"
-"rindal.no\0"
-"edu.ht\0"
-"!pref.miyagi.jp\0"
-"midtre-gauldal.no\0"
-"xj.cn\0australia.museum\0"
-"ab.ca\0salvadordali.museum\0olawa.pl\0"
-"pc.it\0"
-"u.se\0"
-"edu.in\0b\xc3\xa1l\xc3\xa1t.no\0"
-"ln.cn\0alta.no\0"
-"chelyabinsk.ru\0"
-"edu.iq\0"
-"ontario.museum\0"
+"edu.bs\0"
+"edu.bt\0"
+"per.nf\0"
+"co.pl\0isla.pr\0"
+"mansion.museum\0is-an-engineer.com\0"
+"edu.ci\0co.pn\0\xd8\xa7\xd9\x84\xd8\xb3\xd8\xb9\xd9\x88\xd8\xaf\xdb\x8c\xdb\x83\0"
+"edu.bz\0\xe6\x94\xbf\xe5\xba\x9c.hk\0"
+"arezzo.it\0"
+"\xe6\x96\xb0\xe5\x8a\xa0\xe5\x9d\xa1\0"
+"kv.ua\0"
+"edu.cn\0stjordal.no\0"
+"edu.co\0amsterdam.museum\0pvt.k12.ma.us\0"
+"schlesisches.museum\0cc.tn.us\0"
+"consultant.aero\0co.pw\0"
+"edu.cu\0jewishart.museum\0"
+"!city.kyoto.jp\0"
+"jelenia-gora.pl\0"
+"ind.br\0edu.dm\0"
+"edu.do\0le.it\0"
+"edu.ec\0"
+"edu.ee\0wallonie.museum\0"
+"gs.fm.no\0"
+"edu.eg\0"
+"gangaviika.no\0"
+"edu.dz\0magadan.ru\0"
+"!pref.miyagi.jp\0americana.museum\0"
+"ed.ao\0d.bg\0co.rs\0"
+"b\xc3\xa1l\xc3\xa1t.no\0"
+"royrvik.no\0"
+"k12.co.us\0"
+"co.rw\0"
+"edu.es\0aejrie.no\0"
+"ae.org\0"
+"vb.it\0"
+"ha.cn\0rv.ua\0from-dc.com\0"
+"cc.az.us\0"
+"stor-elvdal.no\0"
+"plantation.museum\0co.st\0"
+"7.bg\0co.th\0"
+"trust.museum\0"
+"edu.ge\0co.sz\0co.tj\0lib.hi.us\0selfip.org\0"
+"for-better.biz\0"
+"k12.mn.us\0"
+"ed.ci\0edu.gh\0is-a-geek.org\0"
+"edu.gi\0fl.us\0"
+"student.aero\0"
+"klepp.no\0szkola.pl\0"
+"edu.gn\0veg\xc3\xa5rshei.no\0"
+"co.tt\0is-a-anarchist.com\0"
+"ar.com\0edu.gp\0is-a-bulls-fan.com\0"
+"ed.cr\0meland.no\0"
+"edu.gr\0co.ug\0"
+"co.tz\0"
+"per.sg\0"
+"mragowo.pl\0"
+"is-a-musician.com\0"
+"edu.hk\0broadcast.museum\0"
+"terni.it\0k12.wy.us\0"
+"edu.hn\0cn.it\0co.us\0"
+"inder\xc3\xb8y.no\0"
+"edu.ht\0co.vi\0"
+"stargard.pl\0co.uz\0"
+"texas.museum\0cc.ut.us\0"
+"seljord.no\0tromso.no\0"
+"ecn.br\0"
+"edu.in\0"
+"lib.as.us\0"
+"lib.ny.us\0is-slick.com\0"
+"edu.iq\0k12.il.us\0"
+"k12.tn.us\0"
"edu.is\0"
-"edu.it\0"
-"b\xc3\xa5tsfjord.no\0"
-"trysil.no\0or.th\0"
-"utsira.no\0"
-"nom.es\0edu.jo\0fhsk.se\0"
-"bale.museum\0"
-"w.bg\0"
-"lillesand.no\0"
-"edu.kg\0"
-"amusement.aero\0"
-"edu.ki\0"
-"fauske.no\0or.ug\0"
-"int.az\0askvoll.no\0eidskog.no\0cv.ua\0"
-"algard.no\0"
-"edu.km\0or.tz\0"
-"nom.fr\0edu.kn\0"
-"*.ibaraki.jp\0hoylandet.no\0"
-"int.bo\0edu.kp\0"
+"edu.it\0jewelry.museum\0monmouth.museum\0s\xc3\xb8rum.no\0"
+"ens.tn\0"
+"anthro.museum\0"
+"fuel.aero\0"
+"colonialwilliamsburg.museum\0"
+"broker.aero\0"
+"britishcolumbia.museum\0lucerne.museum\0"
+"*.kitakyushu.jp\0gs.tm.no\0beiarn.no\0"
+"e.se\0"
+"entomology.museum\0servebbs.com\0"
+"edu.jo\0"
+"vik.no\0"
+"slupsk.pl\0"
+"laspezia.it\0"
+"z.bg\0savannahga.museum\0stange.no\0snz.ru\0"
+"newspaper.museum\0"
+"asti.it\0edu.kg\0"
+"h\xc3\xb8ylandet.no\0"
+"ind.in\0edu.ki\0sarpsborg.no\0"
+"ebiz.tw\0wi.us\0"
+"daejeon.kr\0"
+"edu.km\0sand\xc3\xb8y.no\0"
+"edu.kn\0"
+"edu.kp\0"
"edu.la\0"
-"si.it\0edu.lb\0travel.pl\0"
-"edu.lc\0mx.na\0n\xc3\xa1vuotna.no\0ovre-eiker.no\0"
-"aa.no\0!siemens.om\0"
-"sciences.museum\0or.us\0"
-"cat\0"
-"edu.ky\0"
-"int.ci\0edu.kz\0firm.ro\0cc.wy.us\0"
-"edu.lk\0vaapste.no\0"
-"!pref.tochigi.jp\0"
-"int.co\0podlasie.pl\0"
-"edu.lr\0"
-"karikatur.museum\0jamal.ru\0"
-"gjovik.no\0krager\xc3\xb8.no\0k12.az.us\0"
-"edu.me\0"
-"ud.it\0edu.lv\0entomology.museum\0"
-"edu.mg\0moskenes.no\0"
-"\xe6\x94\xbf\xe5\xba\x9c.hk\0edu.ly\0"
-"stpetersburg.museum\0"
-"edu.mk\0"
-"edu.ml\0nordreisa.no\0"
-"!pref.fukui.jp\0lib.ms.us\0lib.nc.us\0"
-"edu.mn\0\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\0"
-"fot.br\0edu.mo\0"
-"iron.museum\0"
-"asti.it\0annefrank.museum\0stv.ru\0cc.nh.us\0"
+"air-traffic-control.aero\0edu.lb\0"
+"edu.lc\0steiermark.museum\0"
+"!rakpetroleum.om\0"
+"edu.ky\0convent.museum\0"
+"edu.kz\0czeladz.pl\0"
+"edu.lk\0lib.vi.us\0"
+"radio.br\0indiana.museum\0"
+"int\0"
+"fj.cn\0edu.lr\0"
+"sd.cn\0midsund.no\0tr\xc3\xb8gstad.no\0"
+"edu.me\0exeter.museum\0for-more.biz\0"
+"edu.lv\0from-or.com\0"
+"edu.mg\0!police.uk\0isa-geek.net\0"
+"flight.aero\0salzburg.museum\0"
+"edu.ly\0"
+"edu.mk\0nsn.us\0"
+"edu.ml\0"
+"hu.com\0edu.mn\0mosj\xc3\xb8""en.no\0"
+"edu.mo\0bomlo.no\0chernigov.ua\0"
+"lib.sd.us\0"
+"accident-investigation.aero\0store.nf\0"
+"rieti.it\0"
"edu.mv\0"
-"lodi.it\0edu.mw\0edu.ng\0"
-"gwangju.kr\0edu.mx\0"
+"edu.mw\0edu.ng\0"
+"edu.mx\0dyndns-wiki.com\0"
"edu.my\0"
-"soundandvision.museum\0"
-"lenvik.no\0"
-"ballooning.aero\0"
-"name\0"
-"jogasz.hu\0frogn.no\0"
-"history.museum\0"
-"consultant.aero\0edu.nr\0"
-"manchester.museum\0"
-"*.hiroshima.jp\0"
-"pol.dz\0"
-"*.tochigi.jp\0heimatunduhren.museum\0"
-"!pref.kanagawa.jp\0"
-"firm.nf\0edu.pa\0"
-"coop.ht\0pc.pl\0"
-"chicago.museum\0"
-"vn.ua\0"
+"ushistory.museum\0"
+"art.museum\0"
+"gliding.aero\0"
+"aa.no\0"
+"ed.jp\0trogstad.no\0"
+"show.aero\0r\xc3\xa6lingen.no\0"
+"edu.nr\0"
+"eastcoast.museum\0"
+"florence.it\0"
+"chel.ru\0grozny.ru\0"
+"bg.it\0"
+"from-tx.com\0"
+"surgeonshall.museum\0"
+"brumunddal.no\0sk\xc3\xa1nit.no\0"
+"manx.museum\0"
+"edu.pa\0"
"edu.pe\0"
-"tana.no\0edu.pf\0"
+"hawaii.museum\0edu.pf\0"
"edu.ph\0"
-"nom.km\0"
-"travel.tt\0"
-"edu.pk\0"
-"experts-comptables.fr\0edu.pl\0bryansk.ru\0"
-"edu.pn\0"
-"evje-og-hornnes.no\0warszawa.pl\0"
-"ac.ae\0"
-"edu.pr\0"
-"vaksdal.no\0edu.ps\0dni.us\0"
-"po.gov.pl\0edu.pt\0"
-"nordre-land.no\0vadso.no\0"
-"rnrt.tn\0"
-"sport.hu\0!pref.gifu.jp\0voss.no\0targi.pl\0"
-"flesberg.no\0"
-"photography.museum\0"
-"modena.it\0tonsberg.no\0"
-"ac.at\0"
-"ac.be\0coop.br\0"
-"services.aero\0"
-"nom.mg\0"
-"wielun.pl\0"
-"jefferson.museum\0wy.us\0"
-"pd.it\0ot.it\0neues.museum\0slattum.no\0"
-"vdonsk.ru\0"
-"ar.com\0edu.sa\0"
-"\xc3\xa5l.no\0edu.sb\0"
-"edu.rs\0edu.sc\0"
-"ac.ci\0int.is\0edu.sd\0!tsk.tr\0"
-"br\xc3\xb8nn\xc3\xb8ysund.no\0and\xc3\xb8y.no\0edu.ru\0"
-"pol.ht\0"
-"edu.rw\0edu.sg\0"
-"gyeongnam.kr\0olecko.pl\0"
-"ac.cn\0"
-"graz.museum\0"
-"coldwar.museum\0edu.sl\0"
-"ac.cr\0"
-"edu.sn\0"
-"hamar.no\0"
-"histoire.museum\0"
-"!city.shizuoka.jp\0"
-"edu.st\0"
-"oceanographic.museum\0nh.us\0"
-"x.bg\0"
-"surnadal.no\0"
-"fc.it\0costume.museum\0stalowa-wola.pl\0"
-"valer.ostfold.no\0edu.sy\0"
+"berlevag.no\0"
+"science.museum\0edu.pk\0"
+"edu.pl\0omsk.ru\0"
+"*.kawasaki.jp\0sells-it.net\0"
+"ass.km\0eidsvoll.no\0edu.pn\0"
+"agro.pl\0legnica.pl\0"
+"software.aero\0"
+"eidsberg.no\0edu.pr\0"
+"r\xc3\xa5holt.no\0edu.ps\0"
+"valle.no\0edu.pt\0"
+"gs.sf.no\0sel.no\0"
+"ha.no\0"
+"c.bg\0"
+"unj\xc3\xa1rga.no\0"
+"k12.pr.us\0"
+"uscountryestate.museum\0"
+"va.it\0"
+"joshkar-ola.ru\0"
+"tj.cn\0"
+"arna.no\0"
+"cn.com\0"
+"medio-campidano.it\0oskol.ru\0"
+"cagliari.it\0project.museum\0r\xc3\xb8ros.no\0"
+"rennebu.no\0edu.sa\0"
+"6.bg\0flanders.museum\0edu.sb\0"
+"harstad.no\0edu.rs\0edu.sc\0"
+"edu.sd\0"
+"res.aero\0edu.ru\0"
+"k12.ms.us\0k12.nc.us\0"
+"karelia.ru\0edu.rw\0edu.sg\0"
+"americanart.museum\0"
+"midatlantic.museum\0"
+"cn.ua\0"
+"edu.sl\0"
+"skanland.no\0"
+"porsgrunn.no\0edu.sn\0"
+"from-al.com\0"
+"m\xc3\xa1tta-v\xc3\xa1rjjat.no\0edu.st\0game-server.cc\0"
+"nesna.no\0"
+"online.museum\0edu.sy\0"
"edu.tj\0"
-"arq.br\0"
-"aeroclub.aero\0odo.br\0pe.ca\0\xe7\xb6\xb2\xe7\xb5\xa1.cn\0bronnoysund.no\0nom.pa\0"
+"podhale.pl\0"
+"pg.it\0"
"edu.to\0"
-"paleo.museum\0nom.pe\0edu.ua\0"
-"int.la\0trustee.museum\0forsand.no\0krasnoyarsk.ru\0"
-"!pref.hyogo.jp\0"
+"edu.ua\0mk.ua\0"
+"enebakk.no\0"
+"film.hu\0"
"edu.tt\0"
-"zarow.pl\0"
-"edu.tw\0"
-"nom.pl\0"
-"community.museum\0kvitsoy.no\0"
-"int.lk\0tychy.pl\0"
-"k12.me.us\0"
-"jondal.no\0edu.vc\0"
-"illustration.museum\0"
-"clinton.museum\0"
-"tas.au\0es.kr\0"
-"production.aero\0"
-"rodoy.no\0"
-"database.museum\0bodo.no\0"
-"anthro.museum\0landes.museum\0edu.vn\0"
-"nom.re\0"
-"altai.ru\0"
-"filatelia.museum\0"
-"sk.ca\0lezajsk.pl\0"
-"rockart.museum\0int.mv\0"
-"int.mw\0herad.no\0"
-"eti.br\0ac.gn\0"
-"fedje.no\0nom.ro\0"
-"money.museum\0"
-"\xd9\x85\xd8\xb5\xd8\xb1\0"
-"horten.no\0"
-"gangaviika.no\0mielec.pl\0"
-"uw.gov.pl\0"
-"moma.museum\0"
-"edu.ws\0"
-"go.ci\0"
-"tv.bo\0technology.museum\0"
-"s\xc3\xb8ndre-land.no\0"
-"tv.br\0"
-"jor.br\0lib.dc.us\0"
-"arboretum.museum\0"
-"go.cr\0"
-"artsandcrafts.museum\0\xd8\xaa\xd9\x88\xd9\x86\xd8\xb3\0"
-"psc.br\0ac.id\0!city.chiba.jp\0"
-"wa.au\0"
-"rome.it\0"
-"amli.no\0"
-"ac.im\0lo.it\0"
-"ac.in\0"
-"\xe7\xb6\xb2\xe7\xb5\xa1.hk\0durham.museum\0"
-"ac.ir\0"
-"torino.museum\0"
-"loabat.no\0"
-"com\0"
-"nalchik.ru\0"
+"ed.pw\0"
+"de.com\0artdeco.museum\0database.museum\0edu.tw\0"
"yakutia.ru\0"
-"settlers.museum\0"
-"!promocion.ar\0int.pt\0"
-"union.aero\0"
-"utah.museum\0"
-"giehtavuoatna.no\0"
-"ac.jp\0"
-"air-traffic-control.aero\0"
-"silk.museum\0usantiques.museum\0"
-"bn.it\0"
-"kalisz.pl\0"
-"perm.ru\0"
-"aoste.it\0bindal.no\0"
-"coloradoplateau.museum\0k12.gu.us\0"
-"frosinone.it\0forde.no\0"
-"epilepsy.museum\0"
-"olbia-tempio.it\0"
-"journalist.aero\0ac.kr\0*.sch.uk\0"
-"nic.im\0sciencesnaturelles.museum\0bedzin.pl\0"
-"nic.in\0pe.it\0"
-"w.se\0"
-"!pref.okayama.jp\0"
-"urn.arpa\0"
-"cinema.museum\0"
-"monza.it\0versailles.museum\0int.ru\0"
-"andasuolo.no\0skj\xc3\xa5k.no\0chernovtsy.ua\0"
-"nyc.museum\0int.rw\0paroch.k12.ma.us\0"
-"ringerike.no\0"
-"ac.ma\0"
-"org.ac\0civilaviation.aero\0"
-"rakkestad.no\0"
-"org.ae\0ac.me\0"
-"org.af\0"
-"org.ag\0"
-"org.ai\0stokke.no\0"
-"airport.aero\0"
+"judaica.museum\0"
+"space-to-rent.com\0"
+"mediocampidano.it\0"
+"*.nagoya.jp\0lib.ar.us\0"
+"lib.oh.us\0homeftp.net\0"
+"siracusa.it\0"
+"edu.vc\0"
+"namsskogan.no\0ind.tn\0cc.fl.us\0"
+"pruszkow.pl\0"
+"airtraffic.aero\0"
+"d.se\0"
+"cci.fr\0edu.vn\0"
+"va.no\0"
+"satx.museum\0"
+"y.bg\0kongsvinger.no\0!nawrastelecom.om\0"
+"bjarkoy.no\0"
+"rs.ba\0"
+"istmein.de\0"
+"cheltenham.museum\0"
+"balat.no\0flora.no\0"
+"national.museum\0"
+"ntr.br\0"
+"cc.co.us\0"
+"kvits\xc3\xb8y.no\0notodden.no\0bytom.pl\0"
+"evje-og-hornnes.no\0"
+"rotorcraft.aero\0dellogliastra.it\0*.shiga.jp\0edu.ws\0"
+"!pref.fukui.jp\0naklo.pl\0"
+"museum\0"
+"oystre-slidre.no\0belau.pw\0"
+"est-le-patron.com\0"
+"jessheim.no\0"
+"skole.museum\0"
+"sc.cn\0"
+"fi.cr\0agdenes.no\0"
+"austrheim.no\0"
+"for-the.biz\0"
+"meloy.no\0"
+"unsa.ba\0vladivostok.ru\0"
+"civilization.museum\0r\xc3\xa1isa.no\0"
"finnoy.no\0"
-"org.al\0"
-"org.an\0y.bg\0habmer.no\0"
-"stadt.museum\0holtalen.no\0"
-"int.tj\0"
-"org.ba\0gjerdrum.no\0"
-"org.bb\0ascoli-piceno.it\0molde.no\0r\xc3\xb8st.no\0tysfjord.no\0"
-"pe.kr\0rybnik.pl\0"
+"equipment.aero\0"
+"tas.edu.au\0"
+"\xe7\xb6\xb2\xe7\xb5\xa1.cn\0"
+"rovigo.it\0"
+"!pref.fukushima.jp\0stord.no\0"
+"store.ro\0cc.wi.us\0"
+"priv.hu\0carboniaiglesias.it\0kunst.museum\0"
+"sveio.no\0\xd8\xa7\xd9\x85\xd8\xa7\xd8\xb1\xd8\xa7\xd8\xaa\0doomdns.org\0"
+"ostroleka.pl\0"
+"hole.no\0lib.or.us\0"
+"k12.va.us\0"
+"av.it\0c.la\0"
+"contemporaryart.museum\0"
+"rovno.ua\0"
+"seaport.museum\0"
+"kristiansand.no\0mypets.ws\0"
+"lillehammer.no\0"
+"store.st\0"
+"h\xc3\xa1mm\xc3\xa1rfeasta.no\0z.se\0"
+"ulsan.kr\0lib.ak.us\0"
+"lib.ma.us\0"
+"conf.lv\0turystyka.pl\0"
+"lc.it\0dynalias.com\0"
+"geology.museum\0"
+"!city.hiroshima.jp\0westfalen.museum\0"
+"jl.cn\0"
+"space.museum\0"
+"vgs.no\0"
+"its.me\0artanddesign.museum\0"
+"seoul.kr\0\xd8\xa7\xd9\x84\xd9\x85\xd8\xba\xd8\xb1\xd8\xa8\0"
+"b.bg\0"
+"adult.ht\0pesarourbino.it\0"
+"bo.nordland.no\0"
+"k12.de.us\0"
+"iron.museum\0khakassia.ru\0"
+"go.ci\0"
+"pri.ee\0mantova.it\0dyndns.biz\0"
+"va.us\0"
+"myphotos.cc\0"
+"b.br\0"
+"skjerv\xc3\xb8y.no\0"
+"go.cr\0"
+"lincoln.museum\0kicks-ass.org\0"
+"mielno.pl\0"
+"tcm.museum\0"
+"california.museum\0"
+"5.bg\0"
+"\xe7\xb6\xb2\xe7\xb5\xa1.hk\0"
+"navigation.aero\0association.museum\0"
+"k12.az.us\0"
+"luxembourg.museum\0stathelle.no\0k12.mt.us\0k12.nd.us\0"
+"nikolaev.ua\0"
+"fi.it\0cody.museum\0slattum.no\0"
+"sd.us\0"
+"yekaterinburg.ru\0traeumtgerade.de\0"
+"freight.aero\0"
+"halsa.no\0kuzbass.ru\0"
+"express.aero\0pol.dz\0"
+"priv.at\0etne.no\0rollag.no\0"
+"gs.aa.no\0skanit.no\0"
+"!mediaphone.om\0murmansk.ru\0est-a-la-masion.com\0"
+"!nic.ar\0"
+"trysil.no\0"
+"s\xc3\xb8rreisa.no\0"
+"verran.no\0"
+"trani-andria-barletta.it\0"
+"gov.nc.tr\0"
+"skydiving.aero\0cl.it\0askim.no\0tynset.no\0"
+"\xe0\xae\x87\xe0\xae\xb2\xe0\xae\x99\xe0\xaf\x8d\xe0\xae\x95\xe0\xaf\x88\0"
+"sc.kr\0"
+"oxford.museum\0is-a-liberal.com\0"
+"clock.museum\0"
+"beauxarts.museum\0"
+"tokke.no\0"
+"lib.ok.us\0"
+"unjarga.no\0"
+"s\xc3\xb8r-aurdal.no\0"
+"!pref.tottori.jp\0"
+"mi.it\0"
+"kiev.ua\0"
+"\xc3\xa5lesund.no\0storfjord.no\0"
+"kvam.no\0"
+"padua.it\0"
+"baikal.ru\0c.se\0"
+"kautokeino.no\0"
+"paderborn.museum\0"
+"x.bg\0"
+"civilwar.museum\0"
+"sandnes.no\0is-a-geek.net\0"
+"pol.ht\0"
+"monzaebrianza.it\0"
+"vv.it\0"
"go.id\0"
-"ac.mu\0"
-"ac.mw\0ac.ng\0"
-"org.bh\0\xc3\xa5mot.no\0rana.no\0"
-"org.bi\0"
-"org.az\0belgorod.ru\0int.tt\0"
-"ae.org\0"
-"group.aero\0posts-and-telecommunications.museum\0"
-"org.bm\0salerno.it\0"
-"etnedal.no\0"
-"org.bo\0*.hokkaido.jp\0donetsk.ua\0"
-"ostroda.pl\0"
-"org.br\0"
-"org.bs\0"
-"go.it\0h\xc3\xb8ylandet.no\0"
-"zgorzelec.pl\0"
-"org.bw\0"
-"org.ci\0"
-"org.bz\0vicenza.it\0resistance.museum\0"
-"missile.museum\0"
-"org.cn\0"
-"org.co\0assassination.museum\0"
+"!metro.tokyo.jp\0"
+"microlight.aero\0arboretum.museum\0"
+"fortworth.museum\0naamesjevuemie.no\0for-some.biz\0"
+"indianapolis.museum\0research.museum\0www.ro\0"
+"vegarshei.no\0nysa.pl\0mordovia.ru\0"
+"venice.it\0freiburg.museum\0kragero.no\0"
+"creation.museum\0tvedestrand.no\0verdal.no\0\xe5\x8f\xb0\xe6\xb9\xbe\0from-wy.com\0"
+"go.it\0"
+"hemne.no\0karmoy.no\0gets-it.net\0"
+"naumburg.museum\0"
+"!city.sendai.jp\0"
+"civilisation.museum\0"
+"mill.museum\0broke-it.net\0"
+"!city.kitakyushu.jp\0"
+"res.in\0"
"go.jp\0"
-"tv.it\0austrheim.no\0ac.pa\0"
-"verbania.it\0"
-"palace.museum\0"
-"tmp.br\0int.vn\0"
-"org.cu\0"
-"paris.museum\0"
-"media.aero\0hokksund.no\0"
-"arts.museum\0gemological.museum\0hammerfest.no\0"
-"k12.ny.us\0"
-"org.dm\0hemsedal.no\0ringsaker.no\0sklep.pl\0"
-"h\xc3\xa5.no\0cc.nj.us\0"
-"rzeszow.pl\0"
-"go.kr\0gjesdal.no\0ac.pr\0"
-"org.ec\0"
-"org.ee\0"
-"media.museum\0"
-"terni.it\0touch.museum\0zakopane.pl\0"
-"journal.aero\0org.dz\0"
-"incheon.kr\0"
-"b\xc3\xa1hcavuotna.no\0"
-"leksvik.no\0ulvik.no\0"
-"plantation.museum\0"
-"org.es\0loyalist.museum\0"
-"gildesk\xc3\xa5l.no\0bytom.pl\0"
-"bo.nordland.no\0"
-"ambulance.aero\0iglesiascarbonia.it\0"
-"tw.cn\0\xe6\x96\xb0\xe5\x8a\xa0\xe5\x9d\xa1\0"
-"chocolate.museum\0"
-"pittsburgh.museum\0"
-"royrvik.no\0sor-odal.no\0ac.rs\0"
-"kaluga.ru\0"
-"org.ge\0erotica.hu\0ac.ru\0ac.se\0"
-"org.gg\0leangaviika.no\0ac.rw\0"
-"org.gh\0v\xc3\xa6r\xc3\xb8y.no\0"
-"org.gi\0"
-"jevnaker.no\0"
-"org.gn\0tv.na\0leikanger.no\0"
-"org.gp\0"
-"ask\xc3\xb8y.no\0"
-"org.gr\0wroc.pl\0"
-"ad.jp\0"
-"powiat.pl\0"
-"tj\xc3\xb8me.no\0"
-"coop.tt\0"
-"ac.th\0"
-"mragowo.pl\0ac.sz\0ac.tj\0"
-"org.hk\0bo.it\0"
+"pe.ca\0filatelia.museum\0imageandsound.museum\0\xc3\xb8ygarden.no\0"
"philately.museum\0"
-"org.hn\0"
-"fet.no\0"
-"axis.museum\0mansions.museum\0"
-"wiki.br\0"
-"org.ht\0"
-"org.hu\0piacenza.it\0scotland.museum\0cpa.pro\0"
-"ac.ug\0"
-"coop.mv\0x.se\0"
-"coop.mw\0ac.tz\0"
-"bmd.br\0"
-"org.im\0ralingen.no\0"
-"org.in\0"
-"cz.it\0lib.ia.us\0"
-"org.iq\0"
-"org.ir\0"
-"org.is\0"
-"nl.ca\0"
-"org.je\0"
-"childrensgarden.museum\0"
-"kvits\xc3\xb8y.no\0go.pw\0"
-"sokndal.no\0"
-"ra.it\0grimstad.no\0"
-"denmark.museum\0"
-"ac.vn\0"
-"ecn.br\0org.jo\0"
-"bialystok.pl\0nj.us\0"
-"z.bg\0bilbao.museum\0stargard.pl\0nic.tj\0"
-"eisenbahn.museum\0"
-"fe.it\0bryne.no\0vrn.ru\0"
-"cc.wa.us\0"
-"sex.hu\0skierva.no\0"
-"org.kg\0"
-"org.ki\0"
-"org.km\0"
-"org.kn\0khakassia.ru\0"
-"org.kp\0"
-"org.la\0"
-"org.lb\0"
-"org.lc\0"
-"francaise.museum\0"
-"panama.museum\0"
-"rotorcraft.aero\0gateway.museum\0olkusz.pl\0"
-"org.ky\0czeladz.pl\0ryazan.ru\0"
-"org.kz\0"
-"org.lk\0dyr\xc3\xb8y.no\0"
-"raisa.no\0"
-"dlugoleka.pl\0"
-"org.ma\0"
-"org.lr\0prochowice.pl\0"
-"org.ls\0"
-"org.me\0sandoy.no\0s\xc3\xb8r-varanger.no\0"
-"org.lv\0"
-"org.mg\0"
-"tel\0go.th\0"
-"org.ly\0"
-"steam.museum\0go.tj\0"
-"org.mk\0pasadena.museum\0jessheim.no\0lib.mn.us\0"
-"org.ml\0"
-"software.aero\0"
-"org.mn\0"
-"org.mo\0"
-"*.fukui.jp\0decorativearts.museum\0"
-"spy.museum\0org.na\0jorpeland.no\0"
-"vads\xc3\xb8.no\0"
-"org.mu\0building.museum\0gausdal.no\0"
-"org.mv\0nannestad.no\0"
-"org.mw\0org.ng\0go.ug\0"
-"vr.it\0org.mx\0"
-"org.my\0"
-"go.tz\0"
-"oppdal.no\0"
-"uk.net\0"
-"coop.km\0"
-"*.kyoto.jp\0"
-"sarpsborg.no\0org.nr\0"
-"chernigov.ua\0"
-"ha.cn\0no.com\0"
-"space.museum\0"
-"org.pa\0"
-"*.ar\0"
-"usgarden.museum\0"
-"*.bd\0org.pe\0"
-"*.au\0org.pf\0um.gov.pl\0"
-"bio.br\0"
-"org.ph\0"
-"org.pk\0"
-"fr\xc3\xa6na.no\0org.pl\0"
-"nord-aurdal.no\0org.pn\0"
-"*.bn\0handson.museum\0agrinet.tn\0"
-"kviteseid.no\0"
-"rel.ht\0virtuel.museum\0atm.pl\0org.pr\0"
-"org.ps\0cherkassy.ua\0"
-"org.pt\0wa.us\0"
-"*.bt\0arendal.no\0magnitka.ru\0"
-"depot.museum\0porsangu.no\0"
-"laakesvuemie.no\0"
-"sor-fron.no\0"
+"eti.br\0galsa.no\0"
+"gs.svalbard.no\0snasa.no\0from-ga.com\0"
+"gda.pl\0"
+"imperia.it\0"
+"presse.km\0"
+"philadelphiaarea.museum\0"
+"go.kr\0"
+"moskenes.no\0"
+"!pref.aomori.jp\0"
+"ringsaker.no\0"
+"v\xc3\xa6r\xc3\xb8y.no\0"
+"\xd7\x99\xd7\xa8\xd7\x95\xd7\xa9\xd7\x9c\xd7\x99\xd7\x9d.museum\0"
+"gotdns.com\0"
+"\xc3\xa5mli.no\0vefsn.no\0"
+"notaires.km\0topology.museum\0"
+"szex.hu\0leksvik.no\0"
+"*.yamagata.jp\0siedlce.pl\0"
+"newjersey.museum\0"
+"no.it\0"
+"moscow.museum\0travel\0is-a-teacher.com\0"
+"ks.ua\0"
+"from-ne.com\0"
+"gs.va.no\0"
+"y.se\0"
+"is-a-designer.com\0"
+"kaszuby.pl\0"
+"youth.museum\0"
+"presse.ml\0"
+"macerata.it\0"
+"alaska.museum\0bygland.no\0"
+"tas.au\0bale.museum\0fam.pk\0"
+"arts.museum\0"
+"kr.it\0stavern.no\0palana.ru\0ks.us\0"
+"vikna.no\0"
+"loyalist.museum\0if.ua\0"
+"parma.it\0"
+"council.aero\0"
+"schweiz.museum\0"
+"club.aero\0reggio-calabria.it\0"
+"a.bg\0"
+"store.bb\0likes-pie.com\0"
+"dr.na\0froya.no\0"
+"town.museum\0"
+"\xc3\xa5s.no\0"
+"donetsk.ua\0"
+"\xc3\xb8rsta.no\0dontexist.net\0"
+"sx.cn\0"
+"gdynia.pl\0"
+"steinkjer.no\0"
+"sc.ug\0"
+"sc.tz\0"
+"4.bg\0"
+"glogow.pl\0"
"heroy.more-og-romsdal.no\0"
-"*.ck\0"
-"!rakpetroleum.om\0"
-"kr\xc3\xb8""dsherad.no\0mail.pl\0"
-"mod.gi\0"
-"gs.nl.no\0"
-"mb.ca\0"
-"pavia.it\0"
-"civilisation.museum\0folldal.no\0"
-"suli.hu\0"
-"brumunddal.no\0"
-"*.cy\0"
-"pg.it\0troms\xc3\xb8.no\0"
-"sex.pl\0y.se\0"
-"org.ro\0"
-"*.do\0"
-"caserta.it\0org.sa\0"
-"za.com\0halloffame.museum\0org.sb\0lviv.ua\0"
-"mill.museum\0org.rs\0org.sc\0"
-"org.sd\0"
-"idv.hk\0!omanmobile.om\0org.ru\0org.se\0"
-"langev\xc3\xa5g.no\0r\xc3\xa5holt.no\0starostwo.gov.pl\0"
-"trani-andria-barletta.it\0org.sg\0"
-"*.eg\0hvaler.no\0"
-"*.ehime.jp\0"
-"gmina.pl\0"
-"bod\xc3\xb8.no\0org.sl\0"
-"edu\0org.sn\0"
-"org.so\0lib.wi.us\0"
-"kommune.no\0"
-"nome.pt\0"
-"*.er\0namdalseid.no\0k12.wa.us\0"
-"nm.cn\0org.st\0"
-"*.et\0d\xc3\xb8nna.no\0"
-"jewish.museum\0preservation.museum\0"
-"slupsk.pl\0org.sy\0"
-"art.br\0org.sz\0org.tj\0"
-"ntr.br\0*.fj\0ski.no\0"
-"*.fk\0rimini.it\0grajewo.pl\0"
-"loppa.no\0"
-"franziskaner.museum\0notteroy.no\0org.tn\0"
-"org.to\0"
-"nesoddtangen.no\0"
-"org.ua\0"
-"discovery.museum\0wloclawek.pl\0"
-"lakas.hu\0org.tt\0"
-"kurgan.ru\0"
-"baltimore.museum\0nkz.ru\0org.tw\0"
-"com.ac\0castle.museum\0"
-"*.fukuoka.jp\0sandefjord.no\0varggat.no\0"
-"com.af\0"
-"com.ag\0"
-"ato.br\0k12.nj.us\0"
-"com.ai\0"
-"city.hu\0oryol.ru\0"
-"com.al\0nl.no\0mielno.pl\0cc.ma.us\0"
-"org.vc\0"
-"com.an\0g12.br\0"
-"*.gt\0"
-"*.gu\0"
-"com.ba\0"
-"com.bb\0americanart.museum\0"
-"org.vi\0"
+"corvette.museum\0sc.us\0"
+"!british-library.uk\0"
+"!pref.saitama.jp\0"
+"muos\xc3\xa1t.no\0"
+"go.pw\0"
+"interactive.museum\0"
+"mi.th\0"
+"br\xc3\xb8nn\xc3\xb8ysund.no\0"
+"lajolla.museum\0porsangu.no\0plo.ps\0bryansk.ru\0"
+"pe.it\0amli.no\0"
+"yamal.ru\0!parliament.uk\0"
+"webhop.biz\0"
+"cc.va.us\0"
+"n\xc3\xa1vuotna.no\0"
+"mi.us\0"
+"dyn-o-saur.com\0"
+"cc.sd.us\0"
+"pe.kr\0nsk.ru\0b.se\0"
+"aurland.no\0"
+"gyeongbuk.kr\0"
+"w.bg\0go.th\0"
+"!promocion.ar\0laakesvuemie.no\0"
+"her\xc3\xb8y.m\xc3\xb8re-og-romsdal.no\0go.tj\0lib.ky.us\0"
+"k12.fl.us\0"
+"foggia.it\0"
+"sa.au\0juedisches.museum\0schoenbrunn.museum\0"
+"trader.aero\0usgarden.museum\0selfip.biz\0"
+"simbirsk.ru\0"
+"lund.no\0"
+"barcelona.museum\0"
+"go.ug\0"
+"granvin.no\0go.tz\0"
+"portal.museum\0evenassi.no\0"
+"judygarland.museum\0lancashire.museum\0lib.id.us\0"
+"design.museum\0"
+"walbrzych.pl\0"
+"*.tokushima.jp\0"
+"ibestad.no\0"
+"aquarium.museum\0"
+"sa.cr\0"
+"erotika.hu\0"
+"h\xc3\xa5.no\0"
+"!pref.shimane.jp\0"
+"costume.museum\0"
+"hagebostad.no\0yuzhno-sakhalinsk.ru\0"
+"mj\xc3\xb8ndalen.no\0"
+"lind\xc3\xa5s.no\0"
+"bergamo.it\0"
+"sande.more-og-romsdal.no\0"
+"priv.pl\0"
+"exhibition.museum\0"
+"from-pa.com\0"
+"birthplace.museum\0"
+"eigersund.no\0"
+"vaapste.no\0!nic.tr\0dyndns-home.com\0"
+"historichouses.museum\0"
+"forsand.no\0"
+"at.it\0"
+"jolster.no\0"
+"consulting.aero\0off.ai\0"
+"\xe0\xa8\xad\xe0\xa8\xbe\xe0\xa8\xb0\xe0\xa8\xa4\0"
+"!pref.nagasaki.jp\0kr.ua\0!nhs.uk\0!nic.uk\0"
+"design.aero\0"
+"h\xc3\xb8yanger.no\0x.se\0"
+"venezia.it\0"
+"qld.au\0"
+"fh.se\0"
+"priv.no\0"
+"lebesby.no\0"
+"rendalen.no\0"
+"lecce.it\0"
+"bod\xc3\xb8.no\0"
+"perso.ht\0farm.museum\0\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\0"
+"gorizia.it\0"
+"*.sapporo.jp\0"
+"computer.museum\0lenvik.no\0"
+"crafts.museum\0"
+"columbus.museum\0chita.ru\0"
+"ardal.no\0"
+"lewismiller.museum\0station.museum\0"
+"vologda.ru\0"
+"lib.in.us\0"
+"k12.dc.us\0lib.vt.us\0"
+"id.ir\0"
+"film.museum\0"
+"genoa.it\0museet.museum\0forde.no\0"
+"vaksdal.no\0"
+"gs.jan-mayen.no\0"
+"!pref.shiga.jp\0"
+"magnitka.ru\0"
+"us.com\0"
+"gob.bo\0priv.me\0"
+"3.bg\0"
+"sciencehistory.museum\0"
+"discovery.museum\0\xd8\xa7\xd9\x84\xd8\xac\xd8\xb2\xd8\xa7\xd8\xa6\xd8\xb1\0"
+"tranby.no\0"
+"andria-trani-barletta.it\0fg.it\0"
+"sa.it\0"
+"ck.ua\0from-ny.net\0"
+"svizzera.museum\0larvik.no\0law.pro\0"
+"sweden.museum\0"
+"gob.cl\0"
+"consulado.st\0cc.ks.us\0"
+"nkz.ru\0"
+"orskog.no\0"
+"bc.ca\0"
+"baidar.no\0"
+"conference.aero\0"
+"warmia.pl\0"
+"bz.it\0"
+"pd.it\0ot.it\0"
+"selfip.info\0"
+"gob.do\0ballangen.no\0"
+"nm.cn\0"
+"hoyanger.no\0"
+"gob.ec\0nuoro.it\0id.lv\0"
+"eun.eg\0"
+"id.ly\0"
+"salat.no\0"
+"royken.no\0"
+"!pref.hyogo.jp\0tysvar.no\0"
+"!congresodelalengua3.ar\0"
+"gob.es\0"
+"iz.hr\0"
+"avoues.fr\0"
+"xj.cn\0masoy.no\0"
+"sanfrancisco.museum\0cc.sc.us\0"
+"office-on-the.net\0"
+"a.se\0"
+"v.bg\0!pref.ehime.jp\0"
+"contemporary.museum\0"
+"balsan.it\0"
+"vt.it\0"
+"fribourg.museum\0"
+"*.kochi.jp\0"
+"odo.br\0historisches.museum\0"
+"caa.aero\0"
+"!pref.ishikawa.jp\0"
+"fredrikstad.no\0os.hordaland.no\0"
+"fundacio.museum\0"
+"bd.se\0"
+"so.gov.pl\0"
+"alta.no\0"
+"selfip.com\0"
+"freemasonry.museum\0"
+"gob.hn\0"
+"amusement.aero\0"
+"\xe7\xb6\xb2\xe8\xb7\xaf.tw\0"
+"s\xc3\xb8rfold.no\0"
+"suwalki.pl\0cc.mi.us\0\xe4\xb8\xad\xe5\x9b\xbd\0"
+"g\xc3\xa1ivuotna.no\0"
+"bykle.no\0"
+"culture.museum\0"
+"\xc3\xa5krehamn.no\0"
+"is-into-games.com\0"
+"\xe7\xb6\xb2\xe7\xbb\x9c.hk\0troandin.no\0"
+"k12.la.us\0"
+"hokksund.no\0\xe4\xb8\xad\xe5\x9c\x8b\0"
+"pz.it\0is-an-actress.com\0"
+"presse.ci\0gjerstad.no\0"
+"qc.com\0chungbuk.kr\0"
+"meraker.no\0"
+"group.aero\0telekommunikation.museum\0skiptvet.no\0"
+"portland.museum\0torsken.no\0"
+"horology.museum\0"
+"!pref.nara.jp\0"
+"jamal.ru\0"
+"fnd.br\0"
+"barlettatraniandria.it\0frog.museum\0lib.ca.us\0"
+"ketrzyn.pl\0"
+"*.aichi.jp\0touch.museum\0"
+"clinton.museum\0"
+"\xe8\x87\xba\xe7\x81\xa3\0"
+"vestnes.no\0"
+"!pref.saga.jp\0rodoy.no\0"
+"hemnes.no\0w.se\0"
+"norddal.no\0ftpaccess.cc\0"
"kunstsammlung.museum\0"
+"hasvik.no\0"
+"correios-e-telecomunica\xc3\xa7\xc3\xb5""es.museum\0"
+"lib.al.us\0"
+"la.us\0"
+"!city.yokohama.jp\0"
+"b\xc3\xa1jddar.no\0"
+"siellak.no\0"
+"jefferson.museum\0"
+"h\xc3\xa1""bmer.no\0"
+"presse.fr\0from-va.com\0"
+"k12.ct.us\0"
+"wildlife.museum\0"
+"namsos.no\0id.us\0"
+"koebenhavn.museum\0"
+"from-oh.com\0"
+"n\xc3\xb8tter\xc3\xb8y.no\0"
+"boston.museum\0"
+"gildeskal.no\0"
+"gob.mx\0"
+"notaires.fr\0berlin.museum\0"
+"ethnology.museum\0"
+"eid.no\0"
+"lillesand.no\0"
+"2.bg\0\xe5\x8f\xb0\xe7\x81\xa3\0"
+"radoy.no\0"
+"skj\xc3\xa5k.no\0"
+"katowice.pl\0"
+"hs.kr\0odessa.ua\0"
+"slg.br\0"
+"gob.pa\0"
+"nl.ca\0vang.no\0"
+"orsta.no\0gob.pe\0"
+"university.museum\0"
+"k12.wv.us\0"
+"ci.it\0zagan.pl\0"
+"pc.it\0gob.pk\0is-a-bruinsfan.org\0"
+"airguard.museum\0"
+"langev\xc3\xa5g.no\0"
+"bjark\xc3\xb8y.no\0trondheim.no\0"
+"giessen.museum\0"
+"fetsund.no\0is-into-cars.com\0"
+"turen.tn\0"
+"home.dyndns.org\0"
+"forli-cesena.it\0from-md.com\0"
+"nationalfirearms.museum\0"
+"k12.gu.us\0"
+"aukra.no\0"
+"osoyro.no\0"
+"irc.pl\0"
+"austevoll.no\0"
+"orkdal.no\0"
+"aeroclub.aero\0sr.gov.pl\0"
+"marketplace.aero\0"
+"endoftheinternet.org\0"
+"\xe5\x85\xac\xe5\x8f\xb8.cn\0geelvinck.museum\0"
+"tranibarlettaandria.it\0"
+"u.bg\0is-a-linux-user.org\0"
+"skjervoy.no\0vestre-slidre.no\0"
+"bologna.it\0"
+"vs.it\0vt.us\0"
+"mil\0"
+"oksnes.no\0"
+"\xe5\x85\xac\xe5\x8f\xb8.hk\0perso.sn\0"
+"aurskog-h\xc3\xb8land.no\0"
+"blogdns.com\0"
+"gjovik.no\0"
+"chicago.museum\0"
+"saskatchewan.museum\0"
+"eu.com\0malvik.no\0from-ky.com\0"
+"assedic.fr\0"
+"pb.ao\0"
+"fuettertdasnetz.de\0"
+"*.fukushima.jp\0"
+"or.at\0perso.tn\0"
+"sv.it\0"
+"dp.ua\0"
+"monza-e-della-brianza.it\0"
+"or.bi\0"
+"sauda.no\0malopolska.pl\0"
+"heimatunduhren.museum\0"
+"can.br\0\xe0\xae\x87\xe0\xae\xa8\xe0\xaf\x8d\xe0\xae\xa4\xe0\xae\xbf\xe0\xae\xaf\xe0\xae\xbe\0"
+"\xc3\xa5rdal.no\0"
+"is-lost.org\0"
+"family.museum\0"
+"riik.ee\0"
+"jor.br\0or.ci\0virtuel.museum\0"
+"belgorod.ru\0"
+"!mod.uk\0"
+"svelvik.no\0"
+"norfolk.museum\0"
+"or.cr\0tran\xc3\xb8y.no\0"
+"chuvashia.ru\0"
+"insurance.aero\0surrey.museum\0"
+"bjerkreim.no\0"
+"ushuaia.museum\0askvoll.no\0"
+"*.toyama.jp\0"
+"bari.it\0"
+"pc.pl\0mytis.ru\0"
+"ar.it\0as.us\0"
+"iris.arpa\0divttasvuotna.no\0arkhangelsk.ru\0nm.us\0"
+"rep.kp\0"
+"\xe7\xbd\x91\xe7\xb5\xa1.hk\0"
+"leangaviika.no\0lindas.no\0"
+"kr\xc3\xb8""dsherad.no\0spydeberg.no\0"
+"urbino-pesaro.it\0paris.museum\0lib.me.us\0"
+"ug.gov.pl\0"
+"*.sendai.jp\0"
+"iglesiascarbonia.it\0"
+"from-mt.com\0from-nd.com\0"
+"inderoy.no\0"
+"from-ks.com\0groks-this.info\0"
+"from.hr\0"
+"hobby-site.org\0"
+"decorativearts.museum\0"
+"davvesiida.no\0"
+"canada.museum\0"
+"asn.lv\0b\xc3\xa5""d\xc3\xa5""ddj\xc3\xa5.no\0is-a-personaltrainer.com\0"
+"h\xc3\xa1pmir.no\0endofinternet.net\0"
+"erotica.hu\0"
+"dontexist.org\0"
+"chambagri.fr\0nome.pt\0"
+"pordenone.it\0brussel.museum\0songdalen.no\0dielddanuorri.no\0ostroda.pl\0"
+"sells-for-less.com\0"
+"1.bg\0"
+"bolt.hu\0"
+"k12.nh.us\0"
+"dlugoleka.pl\0"
+"fe.it\0holt\xc3\xa5len.no\0\xe0\xa4\xad\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xa4\0"
+"ro.it\0andasuolo.no\0"
+"vestvagoy.no\0"
+"carraramassa.it\0"
+"qh.cn\0"
+"or.id\0nieruchomosci.pl\0"
+"norilsk.ru\0cc.la.us\0readmyblog.org\0"
+"press.aero\0nl.no\0"
+"skedsmo.no\0olecko.pl\0"
+"!omanmobile.om\0"
+"ch.it\0stj\xc3\xb8rdalshalsen.no\0"
+"asia\0or.it\0"
+"aip.ee\0bodo.no\0"
+"is-a-landscaper.com\0"
+"is-a-libertarian.com\0"
+"sande.m\xc3\xb8re-og-romsdal.no\0"
+"cc.id.us\0"
+"krasnoyarsk.ru\0"
+"int.az\0"
+"or.jp\0"
+"piacenza.it\0"
+"*.iwate.jp\0"
+"int.bo\0"
+"lib.mo.us\0forgot.her.name\0"
+"sula.no\0k12.tx.us\0"
+"ambulance.museum\0"
+"lu.it\0me.it\0"
+"!pref.yamanashi.jp\0"
+"workinggroup.aero\0"
+"int.ci\0ringebu.no\0sandefjord.no\0"
+"zgrad.ru\0"
+"gov.ac\0"
+"is-an-artist.com\0"
+"gov.ae\0or.kr\0"
+"gov.af\0alto-adige.it\0asmatart.museum\0rochester.museum\0budejju.no\0"
+"srv.br\0int.co\0"
+"astronomy.museum\0"
+"t.bg\0"
+"gov.al\0reggio-emilia.it\0"
+"medical.museum\0k12.ri.us\0"
+"!retina.ar\0gov.ba\0askoy.no\0"
+"gov.bb\0vr.it\0"
+"gov.as\0"
+"gov.bf\0bilbao.museum\0kms.ru\0"
+"gov.bh\0gjerdrum.no\0sondre-land.no\0"
+"\xd9\x82\xd8\xb7\xd8\xb1\0"
+"gov.az\0city.hu\0"
+"school.museum\0"
+"gov.bm\0net\0rissa.no\0"
+"aeroport.fr\0mad.museum\0"
+"gov.bo\0hareid.no\0ostrowiec.pl\0"
+"*.kyoto.jp\0"
+"gov.br\0"
+"gov.bs\0hamburg.museum\0"
+"gov.bt\0gov.cd\0or.na\0"
+"from-sd.com\0"
+"te.it\0historicalsociety.museum\0"
+"or.mu\0artgallery.museum\0"
+"gov.by\0stalbans.museum\0jar.ru\0"
+"gov.bz\0"
+"campidano-medio.it\0"
+"gov.cl\0missile.museum\0"
+"gov.cm\0shacknet.nu\0"
+"gov.cn\0"
+"gov.co\0"
+"v\xc3\xa5gan.no\0"
+"posts-and-telecommunications.museum\0"
+"cng.br\0frosta.no\0"
+"andriabarlettatrani.it\0kvanangen.no\0"
+"gov.cu\0"
+"sigdal.no\0"
+"gov.cx\0from-il.com\0"
+"omaha.museum\0"
+"gov.dm\0is-a-hard-worker.com\0"
+"\xd8\xa8\xda\xbe\xd8\xa7\xd8\xb1\xd8\xaa\0"
+"gov.do\0*.gifu.jp\0vladikavkaz.ru\0"
+"sor-varanger.no\0"
+"gov.ec\0cc.vt.us\0"
+"gov.ee\0*.wakayama.jp\0kvafjord.no\0"
+"gov.eg\0"
+"health.vn\0"
+"gov.dz\0zarow.pl\0"
+"starostwo.gov.pl\0"
+"from-me.org\0"
+"cambridge.museum\0"
+"jeonbuk.kr\0wroc.pl\0"
+"md.ci\0ba.it\0aq.it\0labor.museum\0ar.us\0from-ri.com\0"
+"wa.au\0"
+"in-addr.arpa\0"
+"yn.cn\0"
+"vindafjord.no\0"
+"andebu.no\0"
+"or.pw\0u.se\0"
+"ascoli-piceno.it\0"
+"act.gov.au\0"
+"pharmaciens.km\0balsfjord.no\0"
+"barreau.bj\0soc.lk\0from-mo.com\0"
+"!city.okayama.jp\0lib.md.us\0"
+"from-ia.com\0"
+"*.osaka.jp\0"
+"gouv.fr\0gov.ge\0philadelphia.museum\0"
+"saintlouis.museum\0"
+"gov.gg\0wy.us\0"
+"com.ac\0gov.gh\0ulvik.no\0"
+"gov.gi\0"
+"luzern.museum\0"
+"com.af\0int.is\0"
+"com.ag\0gs.oslo.no\0"
+"com.ai\0gov.gn\0"
+"historyofscience.museum\0"
+"com.al\0"
+"gov.gr\0"
+"com.an\0"
+"com.ba\0*.fukui.jp\0"
+"com.bb\0"
+"minnesota.museum\0lib.wi.us\0"
+"is-gone.com\0"
+"realestate.pl\0"
+"gov.hk\0"
"com.aw\0"
-"flight.aero\0com.bh\0lib.mo.us\0org.vn\0"
-"com.bi\0adygeya.ru\0"
+"com.bh\0her\xc3\xb8y.nordland.no\0"
+"com.bi\0aoste.it\0"
"com.az\0"
-"art.dz\0"
-"com.bm\0"
-"dr\xc3\xb8""bak.no\0"
-"com.bo\0isla.pr\0"
-"com.br\0"
-"com.bs\0ustka.pl\0kuban.ru\0"
-"press.aero\0"
-"vs.it\0"
-"meloy.no\0"
-"*.il\0ulm.museum\0"
-"com.by\0com.ci\0genoa.it\0"
-"com.bz\0sn.cn\0"
-"lib.or.us\0"
-"santafe.museum\0org.ws\0"
+"hyllestad.no\0varggat.no\0cc.as.us\0"
+"com.bm\0amur.ru\0cc.nm.us\0"
+"snillfjord.no\0pub.sa\0"
+"com.bo\0"
+"gov.ie\0"
+"com.br\0gouv.ht\0"
+"com.bs\0"
+"com.bt\0crotone.it\0int.la\0sandnessj\xc3\xb8""en.no\0"
+"0.bg\0*.sch.uk\0"
+"or.th\0"
+"gov.im\0verbania.it\0"
+"com.by\0com.ci\0gov.in\0k12.nm.us\0"
+"com.bz\0michigan.museum\0"
+"*.nagasaki.jp\0elverum.no\0"
+"gov.iq\0rn.it\0finland.museum\0manchester.museum\0"
};
QT_END_NAMESPACE
diff --git a/src/corelib/io/qurltlds_p.h.INFO b/src/corelib/io/qurltlds_p.h.INFO
index 5781c2c..44f6608 100644
--- a/src/corelib/io/qurltlds_p.h.INFO
+++ b/src/corelib/io/qurltlds_p.h.INFO
@@ -9,8 +9,8 @@ Those arrays in qurltlds_p.h are derived from the Public
Suffix List ([2]), which was originally provided by
Jo Hermans <jo.hermans@gmail.com>.
-The file qurltlds_p.h was last generated Friday,
-November 19th 15:24 2010.
+The file qurltlds_p.h was last generated Wednesday,
+November 9th 12:20 2011 CET.
----
[1] list: http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1
diff --git a/src/corelib/kernel/qpointer.cpp b/src/corelib/kernel/qpointer.cpp
index c7fcf4f..87e903f 100644
--- a/src/corelib/kernel/qpointer.cpp
+++ b/src/corelib/kernel/qpointer.cpp
@@ -97,7 +97,7 @@
Note that class \c T must inherit QObject, or a compilation or
link error will result.
- \sa QSharedPointer, QObject, QObjectCleanupHandler
+ \sa QSharedPointer, QWeakPointer, QObject, QObjectCleanupHandler
*/
/*!
diff --git a/src/corelib/kernel/qtranslator.cpp b/src/corelib/kernel/qtranslator.cpp
index dfc90e8..692c78c 100644
--- a/src/corelib/kernel/qtranslator.cpp
+++ b/src/corelib/kernel/qtranslator.cpp
@@ -408,13 +408,26 @@ bool QTranslator::load(const QString & filename, const QString & directory,
Q_D(QTranslator);
d->clear();
+ QString fname = filename;
QString prefix;
if (QFileInfo(filename).isRelative()) {
#ifdef Q_OS_SYMBIAN
- if (directory.isEmpty())
+ //TFindFile doesn't like path in the filename
+ QString dir(directory);
+ int slash = filename.lastIndexOf(QLatin1Char('/'));
+ slash = qMax(slash, filename.lastIndexOf(QLatin1Char('\\')));
+ if (slash >=0) {
+ //so move the path component into the directory prefix
+ if (dir.isEmpty())
+ dir = filename.left(slash + 1);
+ else
+ dir = dir + QLatin1Char('/') + filename.left(slash + 1);
+ fname = fname.mid(slash + 1);
+ }
+ if (dir.isEmpty())
prefix = QCoreApplication::applicationDirPath();
else
- prefix = QFileInfo(directory).absoluteFilePath(); //TFindFile doesn't like dirty paths
+ prefix = QFileInfo(dir).absoluteFilePath(); //TFindFile doesn't like dirty paths
if (prefix.length() > 2 && prefix.at(1) == QLatin1Char(':') && prefix.at(0).isLetter())
prefix[0] = QLatin1Char('Y');
#else
@@ -428,7 +441,6 @@ bool QTranslator::load(const QString & filename, const QString & directory,
QString nativePrefix = QDir::toNativeSeparators(prefix);
#endif
- QString fname = filename;
QString realname;
QString delims;
delims = search_delimiters.isNull() ? QString::fromLatin1("_.") : search_delimiters;
diff --git a/src/corelib/tools/qline.cpp b/src/corelib/tools/qline.cpp
index 9c7c243..7e3dd34 100644
--- a/src/corelib/tools/qline.cpp
+++ b/src/corelib/tools/qline.cpp
@@ -488,7 +488,8 @@ bool QLineF::isNull() const
/*!
\fn qreal QLineF::dx() const
- Returns the horizontal component of the line's vector.
+ Returns the horizontal component of the line's vector.
+ Return value is positive if x2() >= x1() and negative if x2() < x1().
\sa dy(), pointAt()
*/
@@ -497,6 +498,7 @@ bool QLineF::isNull() const
\fn qreal QLineF::dy() const
Returns the vertical component of the line's vector.
+ Return value is positive if y2() >= y1() and negative if y2() < y1().
\sa dx(), pointAt()
*/
@@ -506,7 +508,8 @@ bool QLineF::isNull() const
Sets the length of the line to the given \a length. QLineF will
move the end point - p2() - of the line to give the line its new length.
-
+ If the given \a length is negative the angle() is also changed.
+
If the line is a null line, the length will remain zero regardless
of the length specified.
@@ -762,7 +765,7 @@ QLineF::IntersectType QLineF::intersect(const QLineF &l, QPointF *intersectionPo
\since 4.4
- Returns the angle (in degrees) from this line to the given \a
+ Returns the angle (in positive degrees) from this line to the given \a
line, taking the direction of the lines into account. If the lines
do not intersect within their range, it is the intersection point of
the extended lines that serves as origin (see
diff --git a/src/corelib/tools/qlist.cpp b/src/corelib/tools/qlist.cpp
index 18bfe24..2e95ef8 100644
--- a/src/corelib/tools/qlist.cpp
+++ b/src/corelib/tools/qlist.cpp
@@ -469,8 +469,8 @@ void **QListData::erase(void **xi)
\snippet doc/src/snippets/code/src_corelib_tools_qlistdata.cpp 0
Qt includes a QStringList class that inherits QList\<QString\>
- and adds a few convenience functions, such as QStringList::join()
- and QStringList::find(). (QString::split() creates QStringLists
+ and adds a convenience function QStringList::join().
+ (QString::split() creates QStringLists
from strings.)
QList stores a list of items. The default constructor creates an
diff --git a/src/corelib/tools/qlocale_tools.cpp b/src/corelib/tools/qlocale_tools.cpp
index df31bf9..750379c 100644
--- a/src/corelib/tools/qlocale_tools.cpp
+++ b/src/corelib/tools/qlocale_tools.cpp
@@ -2253,6 +2253,13 @@ static int quorem(Bigint *b, Bigint *S)
* calculation.
*/
+#if defined(Q_OS_WIN) && defined (Q_CC_GNU) && !defined(_clear87) // See QTBUG-7576
+extern "C" {
+__attribute__ ((dllimport)) unsigned int __cdecl __MINGW_NOTHROW _control87 (unsigned int unNew, unsigned int unMask);
+__attribute__ ((dllimport)) unsigned int __cdecl __MINGW_NOTHROW _clearfp (void); /* Clear the FPU status word */
+}
+# define _clear87 _clearfp
+#endif
/* This actually sometimes returns a pointer to a string literal
cast to a char*. Do NOT try to modify the return value. */
diff --git a/src/corelib/tools/qregexp.cpp b/src/corelib/tools/qregexp.cpp
index ba1609f..e3a771a 100644
--- a/src/corelib/tools/qregexp.cpp
+++ b/src/corelib/tools/qregexp.cpp
@@ -66,6 +66,7 @@ int qFindString(const QChar *haystack, int haystackLen, int from,
#define RXERR_DISABLED QT_TRANSLATE_NOOP("QRegExp", "disabled feature used")
#define RXERR_CHARCLASS QT_TRANSLATE_NOOP("QRegExp", "bad char class syntax")
#define RXERR_LOOKAHEAD QT_TRANSLATE_NOOP("QRegExp", "bad lookahead syntax")
+#define RXERR_LOOKBEHIND QT_TRANSLATE_NOOP("QRegExp", "lookbehinds not supported, see QTBUG-2371")
#define RXERR_REPETITION QT_TRANSLATE_NOOP("QRegExp", "bad repetition syntax")
#define RXERR_OCTAL QT_TRANSLATE_NOOP("QRegExp", "invalid octal value")
#define RXERR_LEFTDELIM QT_TRANSLATE_NOOP("QRegExp", "missing left delim")
@@ -3231,6 +3232,9 @@ int QRegExpEngine::getToken()
#endif
case ':':
return Tok_MagicLeftParen;
+ case '<':
+ error(RXERR_LOOKBEHIND);
+ return Tok_MagicLeftParen;
default:
error(RXERR_LOOKAHEAD);
return Tok_MagicLeftParen;
diff --git a/src/dbus/qdbuspendingcall.cpp b/src/dbus/qdbuspendingcall.cpp
index ea84742..2278db4 100644
--- a/src/dbus/qdbuspendingcall.cpp
+++ b/src/dbus/qdbuspendingcall.cpp
@@ -180,9 +180,12 @@ bool QDBusPendingCallPrivate::setReplyCallback(QObject *target, const char *memb
if (metaTypes.at(count) == QDBusMetaTypeId::message)
--count;
- // QList<int> is actually a vector
- // kids, don't try this at home
- setMetaTypes(count, count ? &metaTypes.at(1) : 0);
+ if (count == 0) {
+ setMetaTypes(count, 0);
+ } else {
+ QVector<int> types = QVector<int>::fromList(metaTypes);
+ setMetaTypes(count, types.constData() + 1);
+ }
return true;
}
diff --git a/src/declarative/util/qdeclarativepixmapcache.cpp b/src/declarative/util/qdeclarativepixmapcache.cpp
index 3557425..b23ac73 100644
--- a/src/declarative/util/qdeclarativepixmapcache.cpp
+++ b/src/declarative/util/qdeclarativepixmapcache.cpp
@@ -90,8 +90,9 @@ public:
~QDeclarativePixmapReply();
QDeclarativePixmapData *data;
- QDeclarativePixmapReader *reader;
+ QDeclarativeEngine *engineForReader; // always access reader inside readerMutex.
QSize requestSize;
+ QUrl url;
bool loading;
int redirectCount;
@@ -147,6 +148,7 @@ public:
void cancel(QDeclarativePixmapReply *rep);
static QDeclarativePixmapReader *instance(QDeclarativeEngine *engine);
+ static QDeclarativePixmapReader *existingInstance(QDeclarativeEngine *engine);
protected:
void run();
@@ -176,6 +178,7 @@ private:
static int downloadProgress;
static int threadNetworkRequestDone;
static QHash<QDeclarativeEngine *,QDeclarativePixmapReader*> readers;
+public:
static QMutex readerMutex;
};
@@ -326,6 +329,22 @@ QDeclarativePixmapReader::~QDeclarativePixmapReader()
readers.remove(engine);
readerMutex.unlock();
+ mutex.lock();
+ // manually cancel all outstanding jobs.
+ foreach (QDeclarativePixmapReply *reply, jobs) {
+ delete reply;
+ }
+ jobs.clear();
+ QList<QDeclarativePixmapReply*> activeJobs = replies.values();
+ foreach (QDeclarativePixmapReply *reply, activeJobs) {
+ if (reply->loading) {
+ cancelled.append(reply);
+ reply->data = 0;
+ }
+ }
+ if (threadObject) threadObject->processJobs();
+ mutex.unlock();
+
eventLoopQuitHack->deleteLater();
wait();
}
@@ -433,9 +452,8 @@ void QDeclarativePixmapReader::processJobs()
if (!jobs.isEmpty() && replies.count() < IMAGEREQUEST_MAX_REQUEST_COUNT) {
QDeclarativePixmapReply *runningJob = jobs.takeLast();
runningJob->loading = true;
-
- QUrl url = runningJob->data->url;
- QSize requestSize = runningJob->data->requestSize;
+ QUrl url = runningJob->url;
+ QSize requestSize = runningJob->requestSize;
locker.unlock();
processJob(runningJob, url, requestSize);
locker.relock();
@@ -459,7 +477,6 @@ void QDeclarativePixmapReader::processJob(QDeclarativePixmapReply *runningJob, c
errorCode = QDeclarativePixmapReply::Loading;
errorStr = QDeclarativePixmap::tr("Failed to get image from provider: %1").arg(url.toString());
}
-
mutex.lock();
if (!cancelled.contains(runningJob)) runningJob->postReply(errorCode, errorStr, readSize, image);
mutex.unlock();
@@ -487,10 +504,8 @@ void QDeclarativePixmapReader::processJob(QDeclarativePixmapReply *runningJob, c
QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true);
QNetworkReply *reply = networkAccessManager()->get(req);
-
QMetaObject::connect(reply, replyDownloadProgress, runningJob, downloadProgress);
QMetaObject::connect(reply, replyFinished, threadObject, threadNetworkRequestDone);
-
replies.insert(reply, runningJob);
}
}
@@ -498,22 +513,27 @@ void QDeclarativePixmapReader::processJob(QDeclarativePixmapReply *runningJob, c
QDeclarativePixmapReader *QDeclarativePixmapReader::instance(QDeclarativeEngine *engine)
{
- readerMutex.lock();
+ // XXX NOTE: must be called within readerMutex locking.
QDeclarativePixmapReader *reader = readers.value(engine);
if (!reader) {
reader = new QDeclarativePixmapReader(engine);
readers.insert(engine, reader);
}
- readerMutex.unlock();
return reader;
}
+QDeclarativePixmapReader *QDeclarativePixmapReader::existingInstance(QDeclarativeEngine *engine)
+{
+ // XXX NOTE: must be called within readerMutex locking.
+ return readers.value(engine, 0);
+}
+
QDeclarativePixmapReply *QDeclarativePixmapReader::getImage(QDeclarativePixmapData *data)
{
mutex.lock();
QDeclarativePixmapReply *reply = new QDeclarativePixmapReply(data);
- reply->reader = this;
+ reply->engineForReader = engine;
jobs.append(reply);
// XXX
if (threadObject) threadObject->processJobs();
@@ -692,7 +712,7 @@ void QDeclarativePixmapStore::flushCache()
}
QDeclarativePixmapReply::QDeclarativePixmapReply(QDeclarativePixmapData *d)
-: data(d), reader(0), requestSize(d->requestSize), loading(false), redirectCount(0)
+: data(d), engineForReader(0), requestSize(d->requestSize), url(d->url), loading(false), redirectCount(0)
{
if (finishedIndex == -1) {
finishedIndex = QDeclarativePixmapReply::staticMetaObject.indexOfSignal("finished()");
@@ -750,8 +770,14 @@ void QDeclarativePixmapData::release()
if (refCount == 0) {
if (reply) {
- reply->reader->cancel(reply);
+ QDeclarativePixmapReply *cancelReply = reply;
+ reply->data = 0;
reply = 0;
+ QDeclarativePixmapReader::readerMutex.lock();
+ QDeclarativePixmapReader *reader = QDeclarativePixmapReader::existingInstance(cancelReply->engineForReader);
+ if (reader)
+ reader->cancel(cancelReply);
+ QDeclarativePixmapReader::readerMutex.unlock();
}
if (pixmapStatus == QDeclarativePixmap::Ready) {
@@ -1013,13 +1039,12 @@ void QDeclarativePixmap::load(QDeclarativeEngine *engine, const QUrl &url, const
if (!engine)
return;
- QDeclarativePixmapReader *reader = QDeclarativePixmapReader::instance(engine);
-
d = new QDeclarativePixmapData(url, requestSize);
if (options & QDeclarativePixmap::Cache)
d->addToCache();
-
- d->reply = reader->getImage(d);
+ QDeclarativePixmapReader::readerMutex.lock();
+ d->reply = QDeclarativePixmapReader::instance(engine)->getImage(d);
+ QDeclarativePixmapReader::readerMutex.unlock();
} else {
d = *iter;
d->addref();
diff --git a/src/gui/dialogs/qfiledialog.cpp b/src/gui/dialogs/qfiledialog.cpp
index 817cd38..970d111 100644
--- a/src/gui/dialogs/qfiledialog.cpp
+++ b/src/gui/dialogs/qfiledialog.cpp
@@ -869,6 +869,7 @@ Q_AUTOTEST_EXPORT QString qt_tildeExpansion(const QString &path, bool *expanded
if (!path.startsWith(QLatin1Char('~')))
return path;
QString ret = path;
+#if !defined(Q_OS_INTEGRITY)
QStringList tokens = ret.split(QDir::separator());
if (tokens.first() == QLatin1String("~")) {
ret.replace(0, 1, QDir::homePath());
@@ -899,6 +900,7 @@ Q_AUTOTEST_EXPORT QString qt_tildeExpansion(const QString &path, bool *expanded
}
if (expanded != 0)
*expanded = true;
+#endif
return ret;
}
#endif
diff --git a/src/gui/dialogs/qmessagebox.cpp b/src/gui/dialogs/qmessagebox.cpp
index 149e267..ba00cd8 100644
--- a/src/gui/dialogs/qmessagebox.cpp
+++ b/src/gui/dialogs/qmessagebox.cpp
@@ -153,7 +153,7 @@ public:
expandedTo(QApplication::globalStrut());
opt.text = label(HideLabel);
sz = fm.size(Qt::TextShowMnemonic, opt.text);
- ret.expandedTo(style()->sizeFromContents(QStyle::CT_PushButton, &opt, sz, this).
+ ret = ret.expandedTo(style()->sizeFromContents(QStyle::CT_PushButton, &opt, sz, this).
expandedTo(QApplication::globalStrut()));
return ret;
}
diff --git a/src/gui/embedded/qscreenintegrityfb_qws.cpp b/src/gui/embedded/qscreenintegrityfb_qws.cpp
index 6f30812..5b1e0d5 100644
--- a/src/gui/embedded/qscreenintegrityfb_qws.cpp
+++ b/src/gui/embedded/qscreenintegrityfb_qws.cpp
@@ -64,7 +64,8 @@ public:
~QIntfbScreenPrivate();
FBHandle handle;
- struct FBInfoStruct fbinfo;
+ FBInfo fbinfo;
+ FBDriver *fbdrv;
QWSMouseHandler *mouse;
#ifndef QT_NO_QWS_KEYBOARD
@@ -172,15 +173,14 @@ static QIntfbScreen *connected = 0;
bool QIntfbScreen::connect(const QString &displaySpec)
{
- FBDriver *fbdev;
-
- CheckSuccess(gh_FB_get_driver(0, &fbdev));
- CheckSuccess(gh_FB_init_device(fbdev, 0, &d_ptr->handle));
+ CheckSuccess(gh_FB_get_driver(0, &d_ptr->fbdrv));
+ CheckSuccess(gh_FB_check_info(d_ptr->fbdrv, &d_ptr->fbinfo));
+ CheckSuccess(gh_FB_open(d_ptr->fbdrv, &d_ptr->fbinfo, &d_ptr->handle));
CheckSuccess(gh_FB_get_info(d_ptr->handle, &d_ptr->fbinfo));
- data = (uchar *)d_ptr->fbinfo.start;
+ data = (uchar *)d_ptr->fbinfo.Start;
- d = d_ptr->fbinfo.bitsperpixel;
+ d = d_ptr->fbinfo.BitsPerPixel;
switch (d) {
case 1:
setPixelFormat(QImage::Format_Mono);
@@ -205,24 +205,24 @@ bool QIntfbScreen::connect(const QString &displaySpec)
#ifdef QT_QWS_DEPTH_GENERIC
#if Q_BYTE_ORDER != Q_BIG_ENDIAN
qt_set_generic_blit(this, 24,
- d_ptr->fbinfo.redbits,
- d_ptr->fbinfo.greenbits,
- d_ptr->fbinfo.bluebits,
- d_ptr->fbinfo.alphabits,
- d_ptr->fbinfo.redoffset,
- d_ptr->fbinfo.greenoffset,
- d_ptr->fbinfo.blueoffset,
- d_ptr->fbinfo.alphaoffset);
+ d_ptr->fbinfo.Red.Bits,
+ d_ptr->fbinfo.Green.Bits,
+ d_ptr->fbinfo.Blue.Bits,
+ d_ptr->fbinfo.Alpha.Bits,
+ d_ptr->fbinfo.Red.Offset,
+ d_ptr->fbinfo.Green.Offset,
+ d_ptr->fbinfo.Blue.Offset,
+ d_ptr->fbinfo.Alpha.Offset);
#else
qt_set_generic_blit(this, 24,
- d_ptr->fbinfo.redbits,
- d_ptr->fbinfo.greenbits,
- d_ptr->fbinfo.bluebits,
- d_ptr->fbinfo.alphabits,
- 16 - d_ptr->fbinfo.redoffset,
- 16 - d_ptr->fbinfo.greenoffset,
- 16 - d_ptr->fbinfo.blueoffset,
- d_ptr->fbinfo.alphaoffset);
+ d_ptr->fbinfo.Red.Bits,
+ d_ptr->fbinfo.Green.Bits,
+ d_ptr->fbinfo.Blue.Bits,
+ d_ptr->fbinfo.Alpha.Bits,
+ 16 - d_ptr->fbinfo.Red.Offset,
+ 16 - d_ptr->fbinfo.Green.Offset,
+ 16 - d_ptr->fbinfo.Blue.Offset,
+ 16 - d_ptr->fbinfo.Alpha.Offset);
#endif
#endif
break;
@@ -231,31 +231,31 @@ bool QIntfbScreen::connect(const QString &displaySpec)
#ifdef QT_QWS_DEPTH_GENERIC
#if Q_BYTE_ORDER != Q_BIG_ENDIAN
qt_set_generic_blit(this, 32,
- d_ptr->fbinfo.redbits,
- d_ptr->fbinfo.greenbits,
- d_ptr->fbinfo.bluebits,
- d_ptr->fbinfo.alphabits,
- d_ptr->fbinfo.redoffset,
- d_ptr->fbinfo.greenoffset,
- d_ptr->fbinfo.blueoffset,
- d_ptr->fbinfo.alphaoffset);
+ d_ptr->fbinfo.Red.Bits,
+ d_ptr->fbinfo.Green.Bits,
+ d_ptr->fbinfo.Blue.Bits,
+ d_ptr->fbinfo.Alpha.Bits,
+ d_ptr->fbinfo.Red.Offset,
+ d_ptr->fbinfo.Green.Offset,
+ d_ptr->fbinfo.Blue.Offset,
+ d_ptr->fbinfo.Alpha.Offset);
#else
qt_set_generic_blit(this, 32,
- d_ptr->fbinfo.redbits,
- d_ptr->fbinfo.greenbits,
- d_ptr->fbinfo.bluebits,
- d_ptr->fbinfo.alphabits,
- 24 - d_ptr->fbinfo.redoffset,
- 24 - d_ptr->fbinfo.greenoffset,
- 24 - d_ptr->fbinfo.blueoffset,
- d_ptr->fbinfo.alphaoffset ? 24 - d_ptr->fbinfo.alphaoffset : 0);
+ d_ptr->fbinfo.Red.Bits,
+ d_ptr->fbinfo.Green.Bits,
+ d_ptr->fbinfo.Blue.Bits,
+ d_ptr->fbinfo.Alpha.Bits,
+ 24 - d_ptr->fbinfo.Red.Offset,
+ 24 - d_ptr->fbinfo.Green.Offset,
+ 24 - d_ptr->fbinfo.Blue.Offset,
+ 24 - d_ptr->fbinfo.Alpha.Offset);
#endif
#endif
break;
}
- dw = w = d_ptr->fbinfo.width;
- dh = h = d_ptr->fbinfo.height;
+ dw = w = d_ptr->fbinfo.Width;
+ dh = h = d_ptr->fbinfo.Height;
/* assumes no padding */
lstep = w * ((d + 7) >> 3);
@@ -286,72 +286,6 @@ void QIntfbScreen::disconnect()
bool QIntfbScreen::initDevice()
{
-
- CheckSuccess(gh_FB_set_info(d_ptr->handle, &d_ptr->fbinfo, false));
- CheckSuccess(gh_FB_get_info(d_ptr->handle, &d_ptr->fbinfo));
- data = (uchar *)d_ptr->fbinfo.start;
- d = d_ptr->fbinfo.bitsperpixel;
- dw = w = d_ptr->fbinfo.width;
- dh = h = d_ptr->fbinfo.height;
- mapsize = d_ptr->fbinfo.length;
- /* assumes no padding */
- lstep = w * ((d + 7) >> 3);
-
- mapsize = size = h * lstep;
-
- data = (uchar *)d_ptr->fbinfo.start;
-
- d = d_ptr->fbinfo.bitsperpixel;
- switch (d) {
- case 1:
- setPixelFormat(QImage::Format_Mono);
- break;
- case 8:
- setPixelFormat(QImage::Format_Indexed8);
- break;
- case 12:
- setPixelFormat(QImage::Format_RGB444);
- break;
- case 15:
- setPixelFormat(QImage::Format_RGB555);
- break;
- case 16:
- setPixelFormat(QImage::Format_RGB16);
- break;
- case 18:
- setPixelFormat(QImage::Format_RGB666);
- break;
- case 24:
- setPixelFormat(QImage::Format_RGB888);
- break;
- case 32:
- setPixelFormat(QImage::Format_ARGB32_Premultiplied);
- break;
- }
-#ifdef QT_QWS_DEPTH_GENERIC
-#if defined(__BIG_ENDIAN__)
- qt_set_generic_blit(this, d,
- d_ptr->fbinfo.redbits,
- d_ptr->fbinfo.greenbits,
- d_ptr->fbinfo.bluebits,
- d_ptr->fbinfo.alphabits,
- 24 - d_ptr->fbinfo.redoffset,
- 24 - d_ptr->fbinfo.greenoffset,
- 24 - d_ptr->fbinfo.blueoffset,
- d_ptr->fbinfo.alphaoffset ? 24 - d_ptr->fbinfo.alphaoffset : 0);
-#else
- qt_set_generic_blit(this, d,
- d_ptr->fbinfo.redbits,
- d_ptr->fbinfo.greenbits,
- d_ptr->fbinfo.bluebits,
- d_ptr->fbinfo.alphabits,
- d_ptr->fbinfo.redoffset,
- d_ptr->fbinfo.greenoffset,
- d_ptr->fbinfo.blueoffset,
- d_ptr->fbinfo.alphaoffset);
-#endif
-#endif
-
#ifndef QT_NO_QWS_CURSOR
QScreenCursor::initSoftwareCursor();
#endif
@@ -384,9 +318,9 @@ void QIntfbScreen::setDirty(const QRect& rect)
FBRect fbrect;
fbrect.dx = rect.x();
fbrect.dy = rect.y();
- fbrect.width = rect.width();
- fbrect.height = rect.height();
- gh_FB_expose(d_ptr->handle, &fbrect);
+ fbrect.Width = rect.width();
+ fbrect.Height = rect.height();
+ gh_FB_expose(d_ptr->handle, &fbrect, 0);
}
void QIntfbScreen::setBrightness(int b)
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index 73e8eed..9ea0b83 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -1157,7 +1157,6 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent, const Q
if (q_ptr == fsi || q_ptr->isAncestorOf(fsi)) {
parentFocusScopeItem = fsi;
p->d_ptr->focusScopeItem = 0;
- fsi->d_ptr->focusScopeItemChange(false);
}
break;
}
@@ -1261,6 +1260,10 @@ void QGraphicsItemPrivate::setParentItemHelper(QGraphicsItem *newParent, const Q
if (!inDestructor && (transformData || (newParent && newParent->d_ptr->transformData)))
transformChanged();
+ // Reparenting is finished, now safe to notify the previous focusScopeItem about changes
+ if (parentFocusScopeItem)
+ parentFocusScopeItem->d_ptr->focusScopeItemChange(false);
+
// Restore the sub focus chain.
if (subFocusItem) {
subFocusItem->d_ptr->setSubFocus(newParent);
diff --git a/src/gui/kernel/qwidget_x11.cpp b/src/gui/kernel/qwidget_x11.cpp
index f99cc2c..52e3046 100644
--- a/src/gui/kernel/qwidget_x11.cpp
+++ b/src/gui/kernel/qwidget_x11.cpp
@@ -1336,40 +1336,12 @@ QPoint QWidgetPrivate::mapFromGlobal(const QPoint &pos) const
QPoint QWidget::mapToGlobal(const QPoint &pos) const
{
Q_D(const QWidget);
- QPoint offset = data->crect.topLeft();
- const QWidget *w = this;
- const QWidget *p = w->parentWidget();
- while (!w->isWindow() && p) {
- w = p;
- p = p->parentWidget();
- offset += w->data->crect.topLeft();
- }
-
- const QWidgetPrivate *wd = w->d_func();
- QTLWExtra *tlw = wd->topData();
- if (!tlw->embedded)
- return pos + offset;
-
return d->mapToGlobal(pos);
}
QPoint QWidget::mapFromGlobal(const QPoint &pos) const
{
Q_D(const QWidget);
- QPoint offset = data->crect.topLeft();
- const QWidget *w = this;
- const QWidget *p = w->parentWidget();
- while (!w->isWindow() && p) {
- w = p;
- p = p->parentWidget();
- offset += w->data->crect.topLeft();
- }
-
- const QWidgetPrivate *wd = w->d_func();
- QTLWExtra *tlw = wd->topData();
- if (!tlw->embedded)
- return pos - offset;
-
return d->mapFromGlobal(pos);
}
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index fb5ce96..72357a6 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -9509,7 +9509,7 @@ void qt_draw_helper(QPainterPrivate *p, const QPainterPath &path, QPainterPrivat
\oldcode
void *visual = QPaintDevice::x11AppVisual(screen);
\newcode
- void *visual = qApp->x11Info(screen).visual();
+ void *visual = widget->x11Info().appVisual(screen);
\endcode
\sa QWidget::x11Info(), QPixmap::x11Info()
@@ -9521,7 +9521,7 @@ void qt_draw_helper(QPainterPrivate *p, const QPainterPath &path, QPainterPrivat
\oldcode
unsigned long colormap = QPaintDevice::x11AppColormap(screen);
\newcode
- unsigned long colormap = qApp->x11Info(screen).colormap();
+ unsigned long colormap = widget->x11Info().appColormap(screen);
\endcode
\sa QWidget::x11Info(), QPixmap::x11Info()
@@ -9533,7 +9533,7 @@ void qt_draw_helper(QPainterPrivate *p, const QPainterPath &path, QPainterPrivat
\oldcode
Display *display = QPaintDevice::x11AppDisplay();
\newcode
- Display *display = qApp->x11Info().display();
+ Display *display = widget->x11Info().display();
\endcode
\sa QWidget::x11Info(), QPixmap::x11Info()
@@ -9545,7 +9545,7 @@ void qt_draw_helper(QPainterPrivate *p, const QPainterPath &path, QPainterPrivat
\oldcode
int screen = QPaintDevice::x11AppScreen();
\newcode
- int screen = qApp->x11Info().screen();
+ int screen = widget->x11Info().appScreen();
\endcode
\sa QWidget::x11Info(), QPixmap::x11Info()
@@ -9557,7 +9557,7 @@ void qt_draw_helper(QPainterPrivate *p, const QPainterPath &path, QPainterPrivat
\oldcode
int depth = QPaintDevice::x11AppDepth(screen);
\newcode
- int depth = qApp->x11Info(screen).depth();
+ int depth = widget->x11Info().appDepth(screen);
\endcode
\sa QWidget::x11Info(), QPixmap::x11Info()
@@ -9569,7 +9569,7 @@ void qt_draw_helper(QPainterPrivate *p, const QPainterPath &path, QPainterPrivat
\oldcode
int cells = QPaintDevice::x11AppCells(screen);
\newcode
- int cells = qApp->x11Info(screen).cells();
+ int cells = widget->x11Info().appCells(screen);
\endcode
\sa QWidget::x11Info(), QPixmap::x11Info()
@@ -9581,7 +9581,7 @@ void qt_draw_helper(QPainterPrivate *p, const QPainterPath &path, QPainterPrivat
\oldcode
unsigned long window = QPaintDevice::x11AppRootWindow(screen);
\newcode
- unsigned long window = qApp->x11Info(screen).appRootWindow();
+ unsigned long window = widget->x11Info().appRootWindow(screen);
\endcode
\sa QWidget::x11Info(), QPixmap::x11Info()
@@ -9593,7 +9593,7 @@ void qt_draw_helper(QPainterPrivate *p, const QPainterPath &path, QPainterPrivat
\oldcode
bool isDefault = QPaintDevice::x11AppDefaultColormap(screen);
\newcode
- bool isDefault = qApp->x11Info(screen).defaultColormap();
+ bool isDefault = widget->x11Info().appDefaultColormap(screen);
\endcode
\sa QWidget::x11Info(), QPixmap::x11Info()
@@ -9605,7 +9605,7 @@ void qt_draw_helper(QPainterPrivate *p, const QPainterPath &path, QPainterPrivat
\oldcode
bool isDefault = QPaintDevice::x11AppDefaultVisual(screen);
\newcode
- bool isDefault = qApp->x11Info(screen).defaultVisual();
+ bool isDefault = widget->x11Info().appDefaultVisual(screen);
\endcode
\sa QWidget::x11Info(), QPixmap::x11Info()
@@ -9625,7 +9625,7 @@ void qt_draw_helper(QPainterPrivate *p, const QPainterPath &path, QPainterPrivat
\oldcode
bool isDefault = QPaintDevice::x11AppDpiX(screen);
\newcode
- bool isDefault = qApp->x11Info(screen).appDpiX();
+ bool isDefault = widget->x11Info().appDpiX(screen);
\endcode
\sa QWidget::x11Info(), QPixmap::x11Info()
@@ -9637,7 +9637,7 @@ void qt_draw_helper(QPainterPrivate *p, const QPainterPath &path, QPainterPrivat
\oldcode
bool isDefault = QPaintDevice::x11AppDpiY(screen);
\newcode
- bool isDefault = qApp->x11Info(screen).appDpiY();
+ bool isDefault = widget->x11Info().appDpiY(screen);
\endcode
\sa QWidget::x11Info(), QPixmap::x11Info()
diff --git a/src/gui/styles/qmacstyle_mac.mm b/src/gui/styles/qmacstyle_mac.mm
index 1c1713c..4d6252f 100644
--- a/src/gui/styles/qmacstyle_mac.mm
+++ b/src/gui/styles/qmacstyle_mac.mm
@@ -2920,10 +2920,14 @@ void QMacStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPai
QVector<QLineF> a(2);
a << QLineF(x1, y1, x2, y2);
a << QLineF(x2, y2, x3, y3);
- if (opt->palette.currentColorGroup() == QPalette::Active)
- p->setPen(QPen(Qt::white, 3));
- else
+ if (opt->palette.currentColorGroup() == QPalette::Active) {
+ if (opt->state & State_On)
+ p->setPen(QPen(opt->palette.highlightedText().color(), 3));
+ else
+ p->setPen(QPen(opt->palette.text().color(), 3));
+ } else {
p->setPen(QPen(QColor(100, 100, 100), 3));
+ }
p->save();
p->setRenderHint(QPainter::Antialiasing);
p->drawLines(a);
@@ -4548,6 +4552,107 @@ QRect QMacStyle::subElementRect(SubElement sr, const QStyleOption *opt,
rect.setTop(rect.top() + SIZE(6 /* AHIG */, 3 /* guess */, 2 /* AHIG */));
}
break;
+#ifndef QT_NO_DOCKWIDGET
+ case SE_DockWidgetCloseButton:
+ case SE_DockWidgetFloatButton:
+ case SE_DockWidgetTitleBarText:
+ case SE_DockWidgetIcon: {
+ int iconSize = proxy()->pixelMetric(PM_SmallIconSize, opt, widget);
+ int buttonMargin = proxy()->pixelMetric(PM_DockWidgetTitleBarButtonMargin, opt, widget);
+ QRect srect = opt->rect;
+
+ const QStyleOptionDockWidget *dwOpt
+ = qstyleoption_cast<const QStyleOptionDockWidget*>(opt);
+ bool canClose = dwOpt == 0 ? true : dwOpt->closable;
+ bool canFloat = dwOpt == 0 ? false : dwOpt->floatable;
+ const QStyleOptionDockWidgetV2 *v2
+ = qstyleoption_cast<const QStyleOptionDockWidgetV2*>(opt);
+ bool verticalTitleBar = v2 == 0 ? false : v2->verticalTitleBar;
+
+ // If this is a vertical titlebar, we transpose and work as if it was
+ // horizontal, then transpose again.
+ if (verticalTitleBar) {
+ QSize size = srect.size();
+ size.transpose();
+ srect.setSize(size);
+ }
+
+ do {
+ int right = srect.right();
+ int left = srect.left();
+
+ QRect closeRect;
+ if (canClose) {
+ QSize sz = standardIcon(QStyle::SP_TitleBarCloseButton,
+ opt, widget).actualSize(QSize(iconSize, iconSize));
+ sz += QSize(buttonMargin, buttonMargin);
+ if (verticalTitleBar)
+ sz.transpose();
+ closeRect = QRect(left,
+ srect.center().y() - sz.height()/2,
+ sz.width(), sz.height());
+ left = closeRect.right() + 1;
+ }
+ if (sr == SE_DockWidgetCloseButton) {
+ rect = closeRect;
+ break;
+ }
+
+ QRect floatRect;
+ if (canFloat) {
+ QSize sz = standardIcon(QStyle::SP_TitleBarNormalButton,
+ opt, widget).actualSize(QSize(iconSize, iconSize));
+ sz += QSize(buttonMargin, buttonMargin);
+ if (verticalTitleBar)
+ sz.transpose();
+ floatRect = QRect(left,
+ srect.center().y() - sz.height()/2,
+ sz.width(), sz.height());
+ left = floatRect.right() + 1;
+ }
+ if (sr == SE_DockWidgetFloatButton) {
+ rect = floatRect;
+ break;
+ }
+
+ QRect iconRect;
+ if (const QDockWidget *dw = qobject_cast<const QDockWidget*>(widget)) {
+ QIcon icon;
+ if (dw->isFloating())
+ icon = dw->windowIcon();
+ if (!icon.isNull()
+ && icon.cacheKey() != QApplication::windowIcon().cacheKey()) {
+ QSize sz = icon.actualSize(QSize(rect.height(), rect.height()));
+ if (verticalTitleBar)
+ sz.transpose();
+ iconRect = QRect(right - sz.width(), srect.center().y() - sz.height()/2,
+ sz.width(), sz.height());
+ right = iconRect.left() - 1;
+ }
+ }
+ if (sr == SE_DockWidgetIcon) {
+ rect = iconRect;
+ break;
+ }
+
+ QRect textRect = QRect(left, srect.top(),
+ right - left, srect.height());
+ if (sr == SE_DockWidgetTitleBarText) {
+ rect = textRect;
+ break;
+ }
+ } while (false);
+
+ if (verticalTitleBar) {
+ rect = QRect(srect.left() + rect.top() - srect.top(),
+ srect.top() + srect.right() - rect.right(),
+ rect.height(), rect.width());
+ } else {
+ rect = visualRect(opt->direction, srect, rect);
+ }
+ break;
+ }
+#endif
default:
rect = QWindowsStyle::subElementRect(sr, opt, widget);
break;
diff --git a/src/gui/styles/qwindowsstyle.cpp b/src/gui/styles/qwindowsstyle.cpp
index 2244c11..6ab29b9 100644
--- a/src/gui/styles/qwindowsstyle.cpp
+++ b/src/gui/styles/qwindowsstyle.cpp
@@ -133,6 +133,26 @@ QWindowsStylePrivate::QWindowsStylePrivate()
startTime.start();
}
+void QWindowsStylePrivate::startAnimation(QObject *o, QProgressBar *bar)
+{
+ if (!animatedProgressBars.contains(bar)) {
+ animatedProgressBars << bar;
+ if (!animateTimer) {
+ Q_ASSERT(animationFps > 0);
+ animateTimer = o->startTimer(1000 / animationFps);
+ }
+ }
+}
+
+void QWindowsStylePrivate::stopAnimation(QObject *o, QProgressBar *bar)
+{
+ animatedProgressBars.removeAll(bar);
+ if (animatedProgressBars.isEmpty() && animateTimer) {
+ o->killTimer(animateTimer);
+ animateTimer = 0;
+ }
+}
+
// Returns true if the toplevel parent of \a widget has seen the Alt-key
bool QWindowsStylePrivate::hasSeenAlt(const QWidget *widget) const
{
@@ -150,10 +170,8 @@ void QWindowsStyle::timerEvent(QTimerEvent *event)
if (event->timerId() == d->animateTimer) {
Q_ASSERT(d->animationFps> 0);
d->animateStep = d->startTime.elapsed() / (1000 / d->animationFps);
- foreach (QProgressBar *bar, d->bars) {
- if ((bar->minimum() == 0 && bar->maximum() == 0))
- bar->update();
- }
+ foreach (QProgressBar *bar, d->animatedProgressBars)
+ bar->update();
}
#endif // QT_NO_PROGRESSBAR
event->ignore();
@@ -215,29 +233,23 @@ bool QWindowsStyle::eventFilter(QObject *o, QEvent *e)
break;
#ifndef QT_NO_PROGRESSBAR
case QEvent::StyleChange:
+ case QEvent::Paint:
case QEvent::Show:
if (QProgressBar *bar = qobject_cast<QProgressBar *>(o)) {
- if (!d->bars.contains(bar)) {
- d->bars << bar;
- if (d->bars.size() == 1) {
- Q_ASSERT(d->animationFps> 0);
- if (d->animateTimer == 0)
- d->animateTimer = startTimer(1000 / d->animationFps);
- }
- }
+ // Animation by timer for progress bars that have their min and
+ // max values the same
+ if (bar->minimum() == bar->maximum())
+ d->startAnimation(this, bar);
+ else
+ d->stopAnimation(this, bar);
}
break;
case QEvent::Destroy:
case QEvent::Hide:
- // reinterpret_cast because there is no type info when getting
- // the destroy event. We know that it is a QProgressBar.
- if (QProgressBar *bar = reinterpret_cast<QProgressBar *>(o)) {
- d->bars.removeAll(bar);
- if (d->bars.isEmpty() && d->animateTimer) {
- killTimer(d->animateTimer);
- d->animateTimer = 0;
- }
- }
+ // Do static_cast because there is no type info when getting
+ // the destroy event. We know that it is a QProgressBar, since
+ // we only install a widget event filter for QScrollBars.
+ d->stopAnimation(this, static_cast<QProgressBar *>(o));
break;
#endif // QT_NO_PROGRESSBAR
default:
@@ -343,7 +355,7 @@ void QWindowsStyle::unpolish(QWidget *widget)
if (QProgressBar *bar=qobject_cast<QProgressBar *>(widget)) {
Q_D(QWindowsStyle);
widget->removeEventFilter(this);
- d->bars.removeAll(bar);
+ d->stopAnimation(this, bar);
}
#endif
}
diff --git a/src/gui/styles/qwindowsstyle_p.h b/src/gui/styles/qwindowsstyle_p.h
index b9f39a0..1e517e9 100644
--- a/src/gui/styles/qwindowsstyle_p.h
+++ b/src/gui/styles/qwindowsstyle_p.h
@@ -71,13 +71,15 @@ class QWindowsStylePrivate : public QCommonStylePrivate
Q_DECLARE_PUBLIC(QWindowsStyle)
public:
QWindowsStylePrivate();
+ void startAnimation(QObject *o, QProgressBar *bar);
+ void stopAnimation(QObject *o, QProgressBar *bar);
bool hasSeenAlt(const QWidget *widget) const;
bool altDown() const { return alt_down; }
bool alt_down;
QList<const QWidget *> seenAlt;
int menuBarTimer;
- QList<QProgressBar *> bars;
+ QList<QProgressBar *> animatedProgressBars;
int animationFps;
int animateTimer;
QElapsedTimer startTime;
diff --git a/src/gui/styles/qwindowsvistastyle.cpp b/src/gui/styles/qwindowsvistastyle.cpp
index 5525468..8051014 100644
--- a/src/gui/styles/qwindowsvistastyle.cpp
+++ b/src/gui/styles/qwindowsvistastyle.cpp
@@ -2508,6 +2508,7 @@ QWindowsVistaStylePrivate::QWindowsVistaStylePrivate() :
QWindowsVistaStylePrivate::~QWindowsVistaStylePrivate()
{
+ qDeleteAll(animations);
delete m_treeViewHelper;
}
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp
index 796c455..d5d8a12 100644
--- a/src/gui/text/qfontdatabase.cpp
+++ b/src/gui/text/qfontdatabase.cpp
@@ -91,6 +91,8 @@ QT_BEGIN_NAMESPACE
bool qt_enable_test_font = false;
+static QString styleStringHelper(int weight, QFont::Style style);
+
Q_AUTOTEST_EXPORT void qt_setQtEnableTestFont(bool value)
{
qt_enable_test_font = value;
@@ -358,32 +360,20 @@ struct QtFontFoundry
QtFontStyle *QtFontFoundry::style(const QtFontStyle::Key &key, const QString &styleName, bool create)
{
int pos = 0;
- if (count) {
- // if styleName for searching first if possible
- if (!styleName.isEmpty()) {
- for (; pos < count; pos++) {
- if (styles[pos]->styleName == styleName)
- return styles[pos];
- }
- }
- int low = 0;
- int high = count;
- pos = count / 2;
- while (high > low) {
+ for (; pos < count; pos++) {
+ bool hasStyleName = !styleName.isEmpty(); // search styleName first if available
+ if (hasStyleName && !styles[pos]->styleName.isEmpty()) {
+ if (styles[pos]->styleName == styleName)
+ return styles[pos];
+ } else {
if (styles[pos]->key == key)
return styles[pos];
- if (styles[pos]->key < key)
- low = pos + 1;
- else
- high = pos;
- pos = (high + low) / 2;
}
- pos = low;
}
if (!create)
return 0;
-// qDebug("adding key (weight=%d, style=%d, oblique=%d stretch=%d) at %d", key.weight, key.style, key.oblique, key.stretch, pos);
+ // qDebug("adding key (weight=%d, style=%d, stretch=%d) at %d", key.weight, key.style, key.stretch, pos);
if (!(count % 8)) {
QtFontStyle **newStyles = (QtFontStyle **)
realloc(styles, (((count+8) >> 3) << 3) * sizeof(QtFontStyle *));
@@ -393,13 +383,11 @@ QtFontStyle *QtFontFoundry::style(const QtFontStyle::Key &key, const QString &st
QtFontStyle *style = new QtFontStyle(key);
style->styleName = styleName;
- memmove(styles + pos + 1, styles + pos, (count-pos)*sizeof(QtFontStyle *));
styles[pos] = style;
count++;
return styles[pos];
}
-
struct QtFontFamily
{
enum WritingSystemStatus {
@@ -1132,7 +1120,7 @@ QT_BEGIN_INCLUDE_NAMESPACE
#endif
QT_END_INCLUDE_NAMESPACE
-#if !defined(Q_WS_X11)
+#if !defined(Q_WS_X11) && !defined(Q_WS_MAC)
QString QFontDatabase::resolveFontFamilyAlias(const QString &family)
{
return family;
diff --git a/src/gui/text/qfontdatabase_mac.cpp b/src/gui/text/qfontdatabase_mac.cpp
index fc8247d..81500c7 100644
--- a/src/gui/text/qfontdatabase_mac.cpp
+++ b/src/gui/text/qfontdatabase_mac.cpp
@@ -104,9 +104,8 @@ if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_5) {
const int numFonts = CFArrayGetCount(fonts);
for(int i = 0; i < numFonts; ++i) {
CTFontDescriptorRef font = (CTFontDescriptorRef)CFArrayGetValueAtIndex(fonts, i);
-
- QCFString family_name = (CFStringRef)CTFontDescriptorCopyAttribute(font, kCTFontFamilyNameAttribute);
- QCFString style_name = (CFStringRef)CTFontDescriptorCopyAttribute(font, kCTFontStyleNameAttribute);
+ QCFString family_name = (CFStringRef)CTFontDescriptorCopyLocalizedAttribute(font, kCTFontFamilyNameAttribute, NULL);
+ QCFString style_name = (CFStringRef)CTFontDescriptorCopyLocalizedAttribute(font, kCTFontStyleNameAttribute, NULL);
QtFontFamily *family = db->family(family_name, true);
for(int ws = 1; ws < QFontDatabase::WritingSystemsCount; ++ws)
family->writingSystems[ws] = QtFontFamily::Supported;
@@ -251,7 +250,7 @@ static inline float weightToFloat(unsigned int weight)
return (weight - 50) / 100.0;
}
-static QFontEngine *loadFromDatabase(const QFontDef &req, const QFontPrivate *d)
+static QFontEngine *loadFromDatabase(QFontDef &req, const QFontPrivate *d)
{
#if defined(QT_MAC_USE_COCOA)
QCFString fontName = NULL;
@@ -302,7 +301,7 @@ found:
QCFString actualName;
if (ATSFontFamilyGetName(familyRef, kATSOptionFlagsDefault, &actualName) == noErr)
req.family = actualName;
- return new QFontEngineMacMulti(familyRef, req, fontDef, d->kerning);
+ return new QFontEngineMacMulti(familyRef, fontRef, req, d->kerning);
}
#endif
return NULL;
@@ -489,4 +488,25 @@ bool QFontDatabase::supportsThreadedFontRendering()
return true;
}
+QString QFontDatabase::resolveFontFamilyAlias(const QString &family)
+{
+ QCFString expectedFamily = QCFString(family);
+
+ QCFType<CFMutableDictionaryRef> attributes = CFDictionaryCreateMutable(NULL, 0,
+ &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
+ CFDictionaryAddValue(attributes, kCTFontFamilyNameAttribute, expectedFamily);
+ QCFType<CTFontDescriptorRef> descriptor = CTFontDescriptorCreateWithAttributes(attributes);
+
+ QCFType<CFMutableSetRef> mandatoryAttributes = CFSetCreateMutable(NULL, 0, &kCFTypeSetCallBacks);
+ CFSetAddValue(mandatoryAttributes, kCTFontFamilyNameAttribute);
+
+ QCFType<CTFontRef> font = CTFontCreateWithFontDescriptor(descriptor, 0.0, NULL);
+ QCFType<CTFontDescriptorRef> matched = CTFontDescriptorCreateMatchingFontDescriptor(descriptor, mandatoryAttributes);
+ if (!matched)
+ return family;
+
+ QCFString familyName = (CFStringRef) CTFontDescriptorCopyLocalizedAttribute(matched, kCTFontFamilyNameAttribute, NULL);
+ return familyName;
+}
+
QT_END_NAMESPACE
diff --git a/src/gui/text/qfontdatabase_x11.cpp b/src/gui/text/qfontdatabase_x11.cpp
index 922a97f..df25aa6 100644
--- a/src/gui/text/qfontdatabase_x11.cpp
+++ b/src/gui/text/qfontdatabase_x11.cpp
@@ -1361,6 +1361,7 @@ static void initializeDb()
// let's fake one...
equiv = foundry->style(key, QString(), true);
+ equiv->styleName = styleStringHelper(key.weight, QFont::Style(key.style));
equiv->smoothScalable = true;
QtFontSize *equiv_size = equiv->pixelSize(SMOOTH_SCALABLE, true);
diff --git a/src/gui/text/qfontengine_mac.mm b/src/gui/text/qfontengine_mac.mm
index 6186b2f..14ded69 100644
--- a/src/gui/text/qfontengine_mac.mm
+++ b/src/gui/text/qfontengine_mac.mm
@@ -369,7 +369,7 @@ int QFontEngineMacMulti::fontIndexForFontID(ATSUFontID id) const
bool QFontEngineMacMulti::stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, QTextEngine::ShaperFlags flags) const
{
- return stringToCMap(str, len, glyphs, nglyphs, flags, /*logClusters=*/0, /*charAttributes=*/0);
+ return stringToCMap(str, len, glyphs, nglyphs, flags, /*logClusters=*/0, /*charAttributes=*/0, /*si=*/0);
}
bool QFontEngineMacMulti::stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, QTextEngine::ShaperFlags flags,
diff --git a/src/gui/text/qtextcontrol.cpp b/src/gui/text/qtextcontrol.cpp
index 5babbc2..ffcd90b 100644
--- a/src/gui/text/qtextcontrol.cpp
+++ b/src/gui/text/qtextcontrol.cpp
@@ -2029,10 +2029,7 @@ void QTextControlPrivate::focusEvent(QFocusEvent *e)
#endif
))) {
#endif
- cursorOn = (interactionFlags & Qt::TextSelectableByKeyboard);
- if (interactionFlags & Qt::TextEditable) {
- setBlinkingCursorEnabled(true);
- }
+ setBlinkingCursorEnabled(interactionFlags & (Qt::TextEditable | Qt::TextSelectableByKeyboard));
#ifdef QT_KEYPAD_NAVIGATION
}
#endif
@@ -2808,7 +2805,7 @@ void QTextControl::setTextInteractionFlags(Qt::TextInteractionFlags flags)
d->interactionFlags = flags;
if (d->hasFocus)
- d->setBlinkingCursorEnabled(flags & Qt::TextEditable);
+ d->setBlinkingCursorEnabled(flags & (Qt::TextEditable | Qt::TextSelectableByKeyboard));
}
Qt::TextInteractionFlags QTextControl::textInteractionFlags() const
diff --git a/src/gui/widgets/qdatetimeedit.cpp b/src/gui/widgets/qdatetimeedit.cpp
index d9ff8a6..62c6e20 100644
--- a/src/gui/widgets/qdatetimeedit.cpp
+++ b/src/gui/widgets/qdatetimeedit.cpp
@@ -2532,8 +2532,10 @@ void QDateTimeEditPrivate::syncCalendarWidget()
{
Q_Q(QDateTimeEdit);
if (monthCalendar) {
+ const bool sb = monthCalendar->blockSignals(true);
monthCalendar->setDateRange(q->minimumDate(), q->maximumDate());
monthCalendar->setDate(q->date());
+ monthCalendar->blockSignals(sb);
}
}
diff --git a/src/gui/widgets/qgroupbox.cpp b/src/gui/widgets/qgroupbox.cpp
index 56fb2dd..db068cf 100644
--- a/src/gui/widgets/qgroupbox.cpp
+++ b/src/gui/widgets/qgroupbox.cpp
@@ -733,6 +733,10 @@ void QGroupBox::mouseReleaseEvent(QMouseEvent *event)
}
Q_D(QGroupBox);
+ if (!d->overCheckBox) {
+ event->ignore();
+ return;
+ }
QStyleOptionGroupBox box;
initStyleOption(&box);
QStyle::SubControl released = style()->hitTestComplexControl(QStyle::CC_GroupBox, &box,
diff --git a/src/gui/widgets/qplaintextedit.cpp b/src/gui/widgets/qplaintextedit.cpp
index f2fca8f..3b2c8fd 100644
--- a/src/gui/widgets/qplaintextedit.cpp
+++ b/src/gui/widgets/qplaintextedit.cpp
@@ -1900,7 +1900,7 @@ void QPlainTextEdit::paintEvent(QPaintEvent *e)
}
}
- bool drawCursor = (editable
+ bool drawCursor = ((editable || (textInteractionFlags() & Qt::TextSelectableByKeyboard))
&& context.cursorPosition >= blpos
&& context.cursorPosition < blpos + bllen);
diff --git a/src/gui/widgets/qprogressbar.cpp b/src/gui/widgets/qprogressbar.cpp
index 1b0a1a1..c583a78 100644
--- a/src/gui/widgets/qprogressbar.cpp
+++ b/src/gui/widgets/qprogressbar.cpp
@@ -341,11 +341,17 @@ int QProgressBar::value() const
void QProgressBar::setRange(int minimum, int maximum)
{
Q_D(QProgressBar);
- d->minimum = minimum;
- d->maximum = qMax(minimum, maximum);
- if ( d->value <(d->minimum-1) || d->value > d->maximum)
- reset();
+ if (minimum != d->minimum || maximum != d->maximum) {
+ d->minimum = minimum;
+ d->maximum = qMax(minimum, maximum);
+
+ if (d->value < (d->minimum - 1) || d->value > d->maximum)
+ reset();
+ else
+ update();
+ }
}
+
/*!
\property QProgressBar::textVisible
\brief whether the current completed percentage should be displayed
diff --git a/src/gui/widgets/qvalidator.cpp b/src/gui/widgets/qvalidator.cpp
index b32bea8..4362f2b 100644
--- a/src/gui/widgets/qvalidator.cpp
+++ b/src/gui/widgets/qvalidator.cpp
@@ -400,8 +400,9 @@ QValidator::State QIntValidator::validate(QString & input, int&) const
qlonglong entered = QLocalePrivate::bytearrayToLongLong(buff.constData(), 10, &ok, &overflow);
if (overflow || !ok)
return Invalid;
+
if (entered >= b && entered <= t) {
- locale().toInt(input, &ok);
+ locale().toInt(input, &ok, 10);
return ok ? Acceptable : Intermediate;
}
diff --git a/src/imports/shaders/shadereffect.cpp b/src/imports/shaders/shadereffect.cpp
index f40d6b8..a5164e2 100644
--- a/src/imports/shaders/shadereffect.cpp
+++ b/src/imports/shaders/shadereffect.cpp
@@ -61,6 +61,7 @@ ShaderEffect::~ShaderEffect()
void ShaderEffect::prepareBufferedDraw(QPainter *painter)
{
+#ifndef QT_NO_DYNAMIC_CAST
// This workaround needed because QGraphicsEffect seems to always utilize default painters worldtransform
// instead of the active painters worldtransform.
const ShaderEffectBuffer *effectBuffer = dynamic_cast<ShaderEffectBuffer*> (painter->device());
@@ -70,6 +71,9 @@ void ShaderEffect::prepareBufferedDraw(QPainter *painter)
} else {
savedWorldTransform = painter->worldTransform();
}
+#else
+ Q_UNUSED(painter);
+#endif
}
void ShaderEffect::draw (QPainter *painter)
diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp
index 4f2145e..0365703 100644
--- a/src/network/access/qhttpnetworkconnection.cpp
+++ b/src/network/access/qhttpnetworkconnection.cpp
@@ -387,6 +387,11 @@ bool QHttpNetworkConnectionPrivate::handleAuthenticateChallenge(QAbstractSocket
// send any pending requests
copyCredentials(i, auth, isProxy);
}
+ } else if (priv->phase == QAuthenticatorPrivate::Start) {
+ // If the url's authenticator has a 'user' set we will end up here (phase is only set to 'Done' by
+ // parseHttpResponse above if 'user' is empty). So if credentials were supplied with the request,
+ // such as in the case of an XMLHttpRequest, this is our only opportunity to cache them.
+ emit reply->cacheCredentials(reply->request(), auth);
}
// - Changing values in QAuthenticator will reset the 'phase'. Therefore if it is still "Done"
// then nothing was filled in by the user or the cache
diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp
index 9b2a6e8..b9db7fe 100644
--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
@@ -201,7 +201,6 @@ bool QHttpNetworkConnectionChannel::sendRequest()
|| (!url.password().isEmpty() && url.password() != auth.password())) {
auth.setUser(url.userName());
auth.setPassword(url.password());
- emit reply->cacheCredentials(request, &auth);
connection->d_func()->copyCredentials(connection->d_func()->indexOf(socket), &auth, false);
}
// clear the userinfo, since we use the same request for resending
@@ -789,6 +788,7 @@ void QHttpNetworkConnectionChannel::detectPipeliningSupport()
&& (!serverHeaderField.contains("Netscape-Enterprise/3."))
// this is adpoted from the knowledge of the Nokia 7.x browser team (DEF143319)
&& (!serverHeaderField.contains("WebLogic"))
+ && (!serverHeaderField.startsWith("Rocket")) // a Python Web Server, see Web2py.com
) {
pipeliningSupported = QHttpNetworkConnectionChannel::PipeliningProbablySupported;
} else {
diff --git a/src/network/access/qhttpnetworkreply.cpp b/src/network/access/qhttpnetworkreply.cpp
index 6173b39..3dc8b2f 100644
--- a/src/network/access/qhttpnetworkreply.cpp
+++ b/src/network/access/qhttpnetworkreply.cpp
@@ -472,8 +472,10 @@ int QHttpNetworkReplyPrivate::gunzipBodyPartially(QByteArray &compressed, QByteA
void QHttpNetworkReplyPrivate::gunzipBodyPartiallyEnd()
{
- inflateEnd(&inflateStrm);
- initInflate = false;
+ if (initInflate) {
+ inflateEnd(&inflateStrm);
+ initInflate = false;
+ }
}
#endif
diff --git a/src/network/access/qhttpthreaddelegate.cpp b/src/network/access/qhttpthreaddelegate.cpp
index 092fa7d..68c2292 100644
--- a/src/network/access/qhttpthreaddelegate.cpp
+++ b/src/network/access/qhttpthreaddelegate.cpp
@@ -312,8 +312,6 @@ void QHttpThreadDelegate::startRequest()
// some signals are only interesting when normal asynchronous style is used
connect(httpReply,SIGNAL(readyRead()), this, SLOT(readyReadSlot()));
connect(httpReply,SIGNAL(dataReadProgress(int, int)), this, SLOT(dataReadProgressSlot(int,int)));
- connect(httpReply, SIGNAL(cacheCredentials(QHttpNetworkRequest,QAuthenticator*)),
- this, SLOT(cacheCredentialsSlot(QHttpNetworkRequest,QAuthenticator*)));
#ifndef QT_NO_OPENSSL
connect(httpReply,SIGNAL(sslErrors(const QList<QSslError>)), this, SLOT(sslErrorsSlot(QList<QSslError>)));
#endif
@@ -325,6 +323,9 @@ void QHttpThreadDelegate::startRequest()
connect(httpReply, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)),
this, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)));
}
+
+ connect(httpReply, SIGNAL(cacheCredentials(QHttpNetworkRequest,QAuthenticator*)),
+ this, SLOT(cacheCredentialsSlot(QHttpNetworkRequest,QAuthenticator*)));
}
// This gets called from the user thread or by the synchronous HTTP timeout timer
diff --git a/src/network/access/qnetworkdiskcache.cpp b/src/network/access/qnetworkdiskcache.cpp
index af6ba1d..a567c2d 100644
--- a/src/network/access/qnetworkdiskcache.cpp
+++ b/src/network/access/qnetworkdiskcache.cpp
@@ -478,7 +478,7 @@ void QNetworkDiskCache::updateMetaData(const QNetworkCacheMetaData &metaData)
}
/*!
- Returns the current maximum size for the disk cache.
+ Returns the current maximum size in bytes for the disk cache.
\sa setMaximumCacheSize()
*/
@@ -489,7 +489,7 @@ qint64 QNetworkDiskCache::maximumCacheSize() const
}
/*!
- Sets the maximum size of the disk cache to be \a size.
+ Sets the maximum size of the disk cache to be \a size in bytes.
If the new size is smaller then the current cache size then the cache will call expire().
diff --git a/src/network/socket/qhttpsocketengine.cpp b/src/network/socket/qhttpsocketengine.cpp
index 5c672ec..b62bc05 100644
--- a/src/network/socket/qhttpsocketengine.cpp
+++ b/src/network/socket/qhttpsocketengine.cpp
@@ -614,6 +614,10 @@ void QHttpSocketEngine::slotSocketReadNotification()
bool willClose;
QString proxyConnectionHeader = responseHeader.value(QLatin1String("Proxy-Connection"));
+ // Although most proxies use the unofficial Proxy-Connection header, the Connection header
+ // from http spec is also allowed.
+ if (proxyConnectionHeader.isEmpty())
+ proxyConnectionHeader = responseHeader.value(QLatin1String("Connection"));
proxyConnectionHeader = proxyConnectionHeader.toLower();
if (proxyConnectionHeader == QLatin1String("close")) {
willClose = true;
diff --git a/src/network/ssl/qssl.cpp b/src/network/ssl/qssl.cpp
index b556328..01297c9 100644
--- a/src/network/ssl/qssl.cpp
+++ b/src/network/ssl/qssl.cpp
@@ -141,9 +141,15 @@ QT_BEGIN_NAMESPACE
\value SslOptionDisableServerNameIndication Disables the SSL server
name indication extension. When enabled, this tells the server the virtual
host being accessed allowing it to respond with the correct certificate.
+ \value SslOptionDisableLegacyRenegotiation Disables the older insecure
+ mechanism for renegotiating the connection parameters. When enabled, this
+ option can allow connections for legacy servers, but it introduces the
+ possibility that an attacker could inject plaintext into the SSL session.
By default, SslOptionDisableEmptyFragments is turned on since this causes
- problems with a large number of servers, but the other options are disabled.
+ problems with a large number of servers. SslOptionDisableLegacyRenegotiation
+ is also turned on, since it introduces a security risk. The other options
+ are turned off.
Note: Availability of above options depends on the version of the SSL
backend in use.
diff --git a/src/network/ssl/qssl.h b/src/network/ssl/qssl.h
index 453d4da..571aa1f 100644
--- a/src/network/ssl/qssl.h
+++ b/src/network/ssl/qssl.h
@@ -87,7 +87,8 @@ namespace QSsl {
SslOptionDisableEmptyFragments = 0x01,
SslOptionDisableSessionTickets = 0x02,
SslOptionDisableCompression = 0x04,
- SslOptionDisableServerNameIndication = 0x08
+ SslOptionDisableServerNameIndication = 0x08,
+ SslOptionDisableLegacyRenegotiation = 0x10
};
Q_DECLARE_FLAGS(SslOptions, SslOption)
}
diff --git a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp
index 2a2ad55..85cd06c 100644
--- a/src/network/ssl/qsslcertificate.cpp
+++ b/src/network/ssl/qsslcertificate.cpp
@@ -814,6 +814,9 @@ static const char *certificate_blacklist[] = {
// "(has not been seen in the wild so far)", "Stichting TTP Infos CA," // compromised during DigiNotar breach
"1184640175", "DigiNotar Root CA", // DigiNotar intermediate cross-signed by Entrust
"1184644297", "DigiNotar Root CA", // DigiNotar intermediate cross-signed by Entrust
+
+ "120001705", "Digisign Server ID (Enrich)", // (Malaysian) Digicert Sdn. Bhd. cross-signed by Verizon CyberTrust
+ "1276011370", "Digisign Server ID - (Enrich)", // (Malaysian) Digicert Sdn. Bhd. cross-signed by Entrust
0
};
diff --git a/src/network/ssl/qsslconfiguration.cpp b/src/network/ssl/qsslconfiguration.cpp
index e24076e..727130b 100644
--- a/src/network/ssl/qsslconfiguration.cpp
+++ b/src/network/ssl/qsslconfiguration.cpp
@@ -201,7 +201,7 @@ bool QSslConfiguration::isNull() const
d->privateKey.isNull() &&
d->peerCertificate.isNull() &&
d->peerCertificateChain.count() == 0 &&
- d->sslOptions == 0);
+ d->sslOptions == QSsl::SslOptionDisableEmptyFragments|QSsl::SslOptionDisableLegacyRenegotiation);
}
/*!
diff --git a/src/network/ssl/qsslconfiguration_p.h b/src/network/ssl/qsslconfiguration_p.h
index b83edb9..a711eeb 100644
--- a/src/network/ssl/qsslconfiguration_p.h
+++ b/src/network/ssl/qsslconfiguration_p.h
@@ -82,7 +82,8 @@ public:
QSslConfigurationPrivate()
: protocol(QSsl::SecureProtocols),
peerVerifyMode(QSslSocket::AutoVerifyPeer),
- peerVerifyDepth(0)
+ peerVerifyDepth(0),
+ sslOptions(QSsl::SslOptionDisableEmptyFragments|QSsl::SslOptionDisableLegacyRenegotiation)
{ }
QSslCertificate peerCertificate;
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
index 3942209..5f520f7 100644
--- a/src/network/ssl/qsslsocket_openssl.cpp
+++ b/src/network/ssl/qsslsocket_openssl.cpp
@@ -298,6 +298,14 @@ init_context:
else
options &= ~SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS;
+#ifdef SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION
+ // This option is disabled by default, so we need to be able to clear it
+ if (configuration.sslOptions & QSsl::SslOptionDisableLegacyRenegotiation)
+ options &= ~SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION;
+ else
+ options |= SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION;
+#endif
+
#ifdef SSL_OP_NO_TICKET
if (configuration.sslOptions & QSsl::SslOptionDisableSessionTickets)
options |= SSL_OP_NO_TICKET;
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
index f5fe739..2db5b79 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
@@ -2108,6 +2108,10 @@ bool QGL2PaintEngineEx::begin(QPaintDevice *pdev)
return false;
d->ctx = d->device->context();
+#ifdef Q_OS_SYMBIAN
+ if (!d->ctx)
+ return false;
+#endif
d->ctx->d_ptr->active_engine = this;
const QSize sz = d->device->size();
diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp
index 08b9ca3..2fc3dea 100644
--- a/src/opengl/qgl.cpp
+++ b/src/opengl/qgl.cpp
@@ -5499,7 +5499,8 @@ QGLExtensions::Extensions QGLExtensions::currentContextExtensions()
glExtensions |= NVFloatBuffer;
if (extensions.match("GL_ARB_pixel_buffer_object"))
glExtensions |= PixelBufferObject;
- if (extensions.match("GL_IMG_texture_format_BGRA8888"))
+ if (extensions.match("GL_IMG_texture_format_BGRA8888")
+ || extensions.match("GL_EXT_texture_format_BGRA8888"))
glExtensions |= BGRATextureFormat;
#if defined(QT_OPENGL_ES_2)
glExtensions |= FramebufferObject;
@@ -5540,6 +5541,9 @@ QGLExtensions::Extensions QGLExtensions::currentContextExtensions()
glGetBooleanv(FRAMEBUFFER_SRGB_CAPABLE_EXT, &srgbCapableFramebuffers);
if (srgbCapableFramebuffers)
glExtensions |= SRGBFrameBuffer;
+ // Clear possible error which is generated if
+ // FRAMEBUFFER_SRGB_CAPABLE_EXT isn't supported.
+ glGetError();
}
return glExtensions;
diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp
index d93efb4..e963f8c 100644
--- a/src/opengl/qwindowsurface_gl.cpp
+++ b/src/opengl/qwindowsurface_gl.cpp
@@ -192,6 +192,14 @@ public:
if (!initializing && !widget && !cleanedUp) {
initializing = true;
widget = new QGLWidget(QGLFormat(QGL::SingleBuffer | QGL::NoDepthBuffer | QGL::NoStencilBuffer));
+#ifdef Q_OS_SYMBIAN
+ if (!widget->context()->isValid()) {
+ delete widget;
+ widget = 0;
+ initializing = false;
+ return 0;
+ }
+#endif
widget->resize(1, 1);
// We don't need this internal widget to appear in QApplication::topLevelWidgets()
@@ -369,7 +377,7 @@ QGLWindowSurface::~QGLWindowSurface()
#ifdef Q_OS_SYMBIAN
// Destroy the context if necessary.
- if (!qt_gl_share_widget()->context()->isSharing())
+ if (qt_gl_share_widget() && !qt_gl_share_context()->isSharing())
qt_destroy_gl_share_widget();
#endif
}
@@ -420,7 +428,12 @@ void QGLWindowSurface::hijackWindow(QWidget *widget)
ctx = new QGLContext(surfaceFormat, widget);
ctx->create(qt_gl_share_context());
-
+#ifdef Q_OS_SYMBIAN
+ if (!ctx->isValid()) {
+ delete ctx;
+ return;
+ }
+#endif
#ifndef QT_NO_EGL
static bool checkedForNOKSwapRegion = false;
static bool haveNOKSwapRegion = false;
@@ -468,6 +481,10 @@ QPaintDevice *QGLWindowSurface::paintDevice()
{
updateGeometry();
+#ifdef Q_OS_SYMBIAN
+ // On symbian we always return glDevice, even if it's invalid
+ return &d_ptr->glDevice;
+#else
if (d_ptr->pb)
return d_ptr->pb;
@@ -479,6 +496,7 @@ QPaintDevice *QGLWindowSurface::paintDevice()
Q_ASSERT(d_ptr->fbo);
return d_ptr->fbo;
+#endif
}
static void drawTexture(const QRectF &rect, GLuint tex_id, const QSize &texSize, const QRectF &src = QRectF());
@@ -693,6 +711,10 @@ void QGLWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoint &
QGLContext *previous_ctx = const_cast<QGLContext *>(QGLContext::currentContext());
QGLContext *ctx = reinterpret_cast<QGLContext *>(parent->d_func()->extraData()->glContext);
+#ifdef Q_OS_SYMBIAN
+ if (!ctx)
+ return;
+#endif
// QPainter::end() should have unbound the fbo, otherwise something is very wrong...
Q_ASSERT(!d_ptr->fbo || !d_ptr->fbo->isBound());
@@ -892,7 +914,10 @@ void QGLWindowSurface::updateGeometry() {
hijackWindow(window());
QGLContext *ctx = reinterpret_cast<QGLContext *>(wd->extraData()->glContext);
-
+#ifdef Q_OS_SYMBIAN
+ if (!ctx)
+ return;
+#endif
#ifdef Q_WS_MAC
ctx->updatePaintDevice();
#endif
diff --git a/src/src.pro b/src/src.pro
index 9314fbd..c51683b 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -8,7 +8,7 @@ SRC_SUBDIRS += src_corelib src_xml src_network src_sql src_testlib
nacl: SRC_SUBDIRS -= src_network src_testlib
!symbian:contains(QT_CONFIG, dbus):SRC_SUBDIRS += src_dbus
!contains(QT_CONFIG, no-gui): SRC_SUBDIRS += src_gui
-!wince*:!symbian:!vxworks:contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_qt3support
+!wince*:!symbian:!vxworks:!integrity:contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_qt3support
!wince*:!symbian-abld:!symbian-sbsv2:include(tools/tools.pro)
win32:!win32-g++*:SRC_SUBDIRS += src_activeqt
diff --git a/src/xml/sax/qxml.cpp b/src/xml/sax/qxml.cpp
index 0c7f2ab..c4c5f0c 100644
--- a/src/xml/sax/qxml.cpp
+++ b/src/xml/sax/qxml.cpp
@@ -1321,7 +1321,8 @@ QXmlInputSource::QXmlInputSource(QIODevice *dev)
{
init();
d->inputDevice = dev;
- d->inputDevice->setTextModeEnabled(false);
+ if (dev->isOpen())
+ d->inputDevice->setTextModeEnabled(false);
}
#ifdef QT3_SUPPORT
diff --git a/tests/auto/declarative/qdeclarativeimage/data/qtbug_22125.qml b/tests/auto/declarative/qdeclarativeimage/data/qtbug_22125.qml
new file mode 100644
index 0000000..8588028
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/qtbug_22125.qml
@@ -0,0 +1,44 @@
+import QtQuick 1.1
+
+Item {
+ id: root
+ width: 800
+ height: 800
+
+ GridView {
+ anchors.fill: parent
+ delegate: Image {
+ source: imagePath;
+ asynchronous: true
+ smooth: true
+ width: 200
+ height: 200
+ }
+ model: ListModel {
+ ListElement {
+ imagePath: "http://127.0.0.1:14451/big256.png"
+ }
+ ListElement {
+ imagePath: "http://127.0.0.1:14451/big256.png"
+ }
+ ListElement {
+ imagePath: "http://127.0.0.1:14451/big256.png"
+ }
+ ListElement {
+ imagePath: "http://127.0.0.1:14451/colors.png"
+ }
+ ListElement {
+ imagePath: "http://127.0.0.1:14451/colors1.png"
+ }
+ ListElement {
+ imagePath: "http://127.0.0.1:14451/big.jpeg"
+ }
+ ListElement {
+ imagePath: "http://127.0.0.1:14451/heart.png"
+ }
+ ListElement {
+ imagePath: "http://127.0.0.1:14451/green.png"
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
index a35d69a..f67c5b5 100644
--- a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
+++ b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
@@ -94,6 +94,7 @@ private slots:
void resetSourceSize();
void testQtQuick11Attributes();
void testQtQuick11Attributes_data();
+ void readerCrash_QTBUG_22125();
private:
template<typename T>
@@ -762,6 +763,46 @@ void tst_qdeclarativeimage::testQtQuick11Attributes_data()
<< ":1 \"Image.cache\" is not available in QtQuick 1.0.\n";
}
+void tst_qdeclarativeimage::readerCrash_QTBUG_22125()
+{
+ {
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ server.serveDirectory(SRCDIR "/data/", TestHTTPServer::Delay);
+
+ {
+ QDeclarativeView view(QUrl::fromLocalFile(SRCDIR "/data/qtbug_22125.qml"));
+ view.show();
+ qApp->processEvents();
+ qApp->processEvents();
+ // shouldn't crash when the view drops out of scope due to
+ // QDeclarativePixmapData attempting to dereference a pointer to
+ // the destroyed reader.
+ }
+
+ // shouldn't crash when deleting cancelled QDeclarativePixmapReplys.
+ QTest::qWait(1000);
+ qApp->processEvents(QEventLoop::DeferredDeletion);
+ }
+
+ {
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ server.serveDirectory(SRCDIR "/data/");
+
+ {
+ QDeclarativeView view(QUrl::fromLocalFile(SRCDIR "/data/qtbug_22125.qml"));
+ view.show();
+ qApp->processEvents();
+ QTest::qWait(1000);
+ qApp->processEvents();
+ // shouldn't crash when the view drops out of scope due to
+ // the reader thread accessing self-deleted QDeclarativePixmapReplys.
+ }
+ qApp->processEvents();
+ }
+}
+
/*
Find an item with the specified objectName. If index is supplied then the
item must also evaluate the {index} expression equal to index
diff --git a/tests/auto/qbytearray/qbytearray.pro b/tests/auto/qbytearray/qbytearray.pro
index f195dc8..b954ca0 100644
--- a/tests/auto/qbytearray/qbytearray.pro
+++ b/tests/auto/qbytearray/qbytearray.pro
@@ -14,6 +14,8 @@ wince* {
DEFINES += SRCDIR=\\\"./\\\"
} else:symbian {
TARGET.EPOCHEAPSIZE="0x100 0x800000"
+} else:integrity {
+ DEFINES += SRCDIR=\"/\"
} else {
DEFINES += SRCDIR=\\\"$$PWD/\\\"
}
diff --git a/tests/auto/qchar/qchar.pro b/tests/auto/qchar/qchar.pro
index 1681220..cbbde7c 100644
--- a/tests/auto/qchar/qchar.pro
+++ b/tests/auto/qchar/qchar.pro
@@ -10,6 +10,8 @@ DEPLOYMENT += deploy
symbian: {
DEFINES += SRCDIR=""
+} else:integrity {
+ DEFINES += SRCDIR=\"/\"
} else {
DEFINES += SRCDIR=\\\"$$PWD/\\\"
}
diff --git a/tests/auto/qelapsedtimer/qelapsedtimer.pro b/tests/auto/qelapsedtimer/qelapsedtimer.pro
index 8768876..1d74fc5 100644
--- a/tests/auto/qelapsedtimer/qelapsedtimer.pro
+++ b/tests/auto/qelapsedtimer/qelapsedtimer.pro
@@ -7,6 +7,8 @@ wince* {
} else:symbian {
# do not define SRCDIR at all
TARGET.EPOCHEAPSIZE = 0x100000 0x3000000
+} else:integrity {
+ DEFINES += SRCDIR=\"/\"
} else {
DEFINES += SRCDIR=\\\"$$PWD/\\\"
}
diff --git a/tests/auto/qfileinfo/qfileinfo.pro b/tests/auto/qfileinfo/qfileinfo.pro
index 7a2cf9c..d0e284b 100644
--- a/tests/auto/qfileinfo/qfileinfo.pro
+++ b/tests/auto/qfileinfo/qfileinfo.pro
@@ -26,6 +26,8 @@ wince* {
DEFINES += SRCDIR=\\\"\\\"
} else:symbian {
# do not define SRCDIR at all
+} else:integrity {
+ DEFINES += SRCDIR=\"/\"
} else {
DEFINES += SRCDIR=\\\"$$PWD/\\\"
}
diff --git a/tests/auto/qfontdatabase/tst_qfontdatabase.cpp b/tests/auto/qfontdatabase/tst_qfontdatabase.cpp
index 735c7e4..7bbd32d 100644
--- a/tests/auto/qfontdatabase/tst_qfontdatabase.cpp
+++ b/tests/auto/qfontdatabase/tst_qfontdatabase.cpp
@@ -80,6 +80,10 @@ private slots:
void addAppFont_data();
void addAppFont();
+
+#ifdef Q_WS_MAC
+ void localizedFonts();
+#endif
};
tst_QFontDatabase::tst_QFontDatabase()
@@ -275,5 +279,15 @@ void tst_QFontDatabase::addAppFont()
QVERIFY(db.families() == oldFamilies);
}
+#ifdef Q_WS_MAC
+void tst_QFontDatabase::localizedFonts()
+{
+ QFontDatabase db;
+
+ QVERIFY(db.hasFamily(QString::fromUtf8("ヒラギノ明朝 Pro")));
+ QVERIFY(!db.hasFamily(QString::fromUtf8("NotValidFont")));
+}
+#endif
+
QTEST_MAIN(tst_QFontDatabase)
#include "tst_qfontdatabase.moc"
diff --git a/tests/auto/qgroupbox/tst_qgroupbox.cpp b/tests/auto/qgroupbox/tst_qgroupbox.cpp
index f1388bc..f3d26ef 100644
--- a/tests/auto/qgroupbox/tst_qgroupbox.cpp
+++ b/tests/auto/qgroupbox/tst_qgroupbox.cpp
@@ -83,6 +83,7 @@ private slots:
void toggledVsClicked();
void childrenAreDisabled();
void propagateFocus();
+ void task_QTBUG_19170_ignoreMouseReleseEvent();
private:
bool checked;
@@ -473,5 +474,27 @@ void tst_QGroupBox::propagateFocus()
QTRY_COMPARE(qApp->focusWidget(), static_cast<QWidget*>(&lineEdit));
}
+void tst_QGroupBox::task_QTBUG_19170_ignoreMouseReleseEvent()
+{
+ QGroupBox box;
+ box.setCheckable(true);
+ box.setChecked(false);
+ box.setTitle("This is a test for QTBUG-19170");
+ box.show();
+
+ QStyleOptionGroupBox option;
+ option.initFrom(&box);
+ option.subControls = QStyle::SubControls(QStyle::SC_All);
+ QRect rect = box.style()->subControlRect(QStyle::CC_GroupBox, &option,
+ QStyle::SC_GroupBoxCheckBox, &box);
+
+ QTest::mouseClick(&box, Qt::LeftButton, 0, rect.center());
+ QCOMPARE(box.isChecked(), true);
+
+ box.setChecked(false);
+ QTest::mouseRelease(&box, Qt::LeftButton, 0, rect.center());
+ QCOMPARE(box.isChecked(), false);
+}
+
QTEST_MAIN(tst_QGroupBox)
#include "tst_qgroupbox.moc"
diff --git a/tests/auto/qintvalidator/tst_qintvalidator.cpp b/tests/auto/qintvalidator/tst_qintvalidator.cpp
index d537635..7e36093 100644
--- a/tests/auto/qintvalidator/tst_qintvalidator.cpp
+++ b/tests/auto/qintvalidator/tst_qintvalidator.cpp
@@ -168,6 +168,15 @@ void tst_QIntValidator::validate_data()
QTest::newRow("8.9") << -1 << 100 << QString("5") << ACC;
QTest::newRow("8.10") << -1 << 100 << QString("+") << INT;
QTest::newRow("8.11") << -1 << 100 << QString("+50") << ACC;
+
+ QTest::newRow("9.0") << -10 << 10 << QString("000") << ACC;
+ QTest::newRow("9.1") << -10 << 10 << QString("008") << ACC;
+ QTest::newRow("9.2") << -10 << 10 << QString("-008") << ACC;
+ QTest::newRow("9.3") << -10 << 10 << QString("00010") << ACC;
+ QTest::newRow("9.4") << -10 << 10 << QString("-00010") << ACC;
+ QTest::newRow("9.5") << -10 << 10 << QString("00020") << INV;
+ QTest::newRow("9.6") << -10 << 10 << QString("-00020") << INV;
+
}
void tst_QIntValidator::validateArabic()
diff --git a/tests/auto/qlibrary/qlibrary.pro b/tests/auto/qlibrary/qlibrary.pro
index 5dc129f..b351753 100644
--- a/tests/auto/qlibrary/qlibrary.pro
+++ b/tests/auto/qlibrary/qlibrary.pro
@@ -6,6 +6,8 @@ symbian: {
# Can't build two versions of lib with same name in symbian, so just build one
SUBDIRS = lib2 \
tst
+} else:integrity {
+# no shared support, empty test
} else {
SUBDIRS = lib \
lib2 \
diff --git a/tests/auto/qmessagebox/tst_qmessagebox.cpp b/tests/auto/qmessagebox/tst_qmessagebox.cpp
index ed085ce..06e242c 100644
--- a/tests/auto/qmessagebox/tst_qmessagebox.cpp
+++ b/tests/auto/qmessagebox/tst_qmessagebox.cpp
@@ -720,7 +720,8 @@ void tst_QMessageBox::detailsButtonText()
QAbstractButton* btn = NULL;
foreach(btn, list) {
if (btn && (btn->inherits("QPushButton"))) {
- if (btn->text() != QMessageBox::tr("OK") && btn->text() != QMessageBox::tr("Show Details...")) {
+ if (btn->text().remove("&") != QMessageBox::tr("OK")
+ && btn->text() != QMessageBox::tr("Show Details...")) {
QFAIL(qPrintable(QString("Unexpected messagebox button text: %1").arg(btn->text())));
}
}
diff --git a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp
index d1c376a..0125fc0 100644
--- a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp
+++ b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp
@@ -417,6 +417,12 @@ void tst_QNetworkCookieJar::effectiveTLDs_data()
QTest::newRow("yes7") << "org.ws" << true;
QTest::newRow("yes8") << "co.uk" << true;
QTest::newRow("yes9") << "wallonie.museum" << true;
+ QTest::newRow("yes10") << "dyndns-at-home.com" << true;
+ QTest::newRow("yes11") << "forgot.her.name" << true;
+ QTest::newRow("yes12") << "is-a-llama.com" << true;
+ QTest::newRow("yes13") << "gov.uk" << true;
+ QTest::newRow("yes14") << "manchester.museum" << true;
+ QTest::newRow("yes15") << "gov.ir" << true;
QTest::newRow("no1") << "anything.com" << false;
QTest::newRow("no2") << "anything.de" << false;
diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
index 3d1e35e..371ac57 100644
--- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
@@ -168,6 +168,7 @@ public Q_SLOTS:
void gotError();
void authenticationRequired(QNetworkReply*,QAuthenticator*);
void proxyAuthenticationRequired(const QNetworkProxy &,QAuthenticator*);
+ void pipeliningHelperSlot();
#ifndef QT_NO_OPENSSL
void sslErrors(QNetworkReply*,const QList<QSslError> &);
@@ -368,6 +369,7 @@ private Q_SLOTS:
void qtbug15311doubleContentLength();
void qtbug18232gzipContentLengthZero();
+ void nb279420gzipNoContentLengthEmptyContentDisconnect();
void synchronousRequest_data();
void synchronousRequest();
@@ -378,6 +380,8 @@ private Q_SLOTS:
void httpAbort();
void dontInsertPartialContentIntoTheCache();
+ void synchronousAuthenticationCache();
+ void pipelining();
// NOTE: This test must be last!
void parentingRepliesToTheApp();
@@ -499,6 +503,14 @@ protected:
client->setParent(this);
++totalConnections;
}
+
+ virtual void reply() {
+ // we need to emulate the bytesWrittenSlot call if the data is empty.
+ if (dataToTransmit.size() == 0)
+ QMetaObject::invokeMethod(this, "bytesWrittenSlot", Qt::QueuedConnection);
+ else
+ client->write(dataToTransmit);
+ }
private:
void connectSocketSignals()
{
@@ -532,11 +544,7 @@ public slots:
if (multiple)
receivedData.remove(0, doubleEndlPos+4);
- // we need to emulate the bytesWrittenSlot call if the data is empty.
- if (dataToTransmit.size() == 0)
- QMetaObject::invokeMethod(this, "bytesWrittenSlot", Qt::QueuedConnection);
- else
- client->write(dataToTransmit);
+ reply();
}
}
@@ -6134,6 +6142,28 @@ void tst_QNetworkReply::qtbug18232gzipContentLengthZero()
QCOMPARE(reply->readAll(), QByteArray());
}
+// Reproduced a crash in QHttpNetworkReplyPrivate::gunzipBodyPartiallyEnd
+// where zlib inflateEnd was called for uninitialized zlib stream
+void tst_QNetworkReply::nb279420gzipNoContentLengthEmptyContentDisconnect()
+{
+ // Response with no Content-Length in header and empty content
+ QByteArray response("HTTP/1.0 200 OK\r\nContent-Encoding: gzip\r\n\r\n");
+ MiniHttpServer server(response);
+ server.doClose = true;
+
+ QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort())));
+ QNetworkReplyPtr reply = manager.get(request);
+
+ connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+ QTestEventLoop::instance().enterLoop(10);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+ QVERIFY(reply->isFinished());
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
+ QCOMPARE(reply->size(), qint64(0));
+ QVERIFY(!reply->header(QNetworkRequest::ContentLengthHeader).isValid());
+ QCOMPARE(reply->readAll(), QByteArray());
+}
+
void tst_QNetworkReply::synchronousRequest_data()
{
QTest::addColumn<QUrl>("url");
@@ -6344,6 +6374,117 @@ void tst_QNetworkReply::dontInsertPartialContentIntoTheCache()
QCOMPARE(memoryCache->m_insertedUrls.count(), 0);
}
+void tst_QNetworkReply::synchronousAuthenticationCache()
+{
+ class MiniAuthServer : public MiniHttpServer {
+ public:
+ MiniAuthServer(QThread *thread) : MiniHttpServer(QByteArray(), false, thread) {};
+ virtual void reply() {
+
+ dataToTransmit =
+ "HTTP/1.0 401 Unauthorized\r\n"
+ "WWW-Authenticate: Basic realm=\"QNetworkAccessManager Test Realm\"\r\n"
+ "Content-Length: 4\r\n"
+ "Connection: close\r\n"
+ "Content-Type: text/plain\r\n"
+ "\r\n"
+ "auth";
+ QRegExp rx("Authorization: Basic ([^\r\n]*)\r\n");
+ if (rx.indexIn(receivedData) > 0) {
+ if (QByteArray::fromBase64(rx.cap(1).toLatin1()) == "login:password") {
+ dataToTransmit =
+ "HTTP/1.0 200 OK\r\n"
+ "Content-Type: text/plain\r\n"
+ "Content-Length: 2\r\n"
+ "\r\n"
+ "OK";
+ }
+ }
+ receivedData.clear();
+ MiniHttpServer::reply();
+ }
+ };
+
+ // when using synchronous commands, we need a different event loop for
+ // the server thread, because the client is never returning to the
+ // event loop
+ QScopedPointer<QThread, QThreadCleanup> serverThread(new QThread);
+ QScopedPointer<MiniHttpServer, QDeleteLaterCleanup> server(new MiniAuthServer(serverThread.data()));
+ server->doClose = true;
+
+ //1) URL without credentials, we are not authenticated
+ {
+ QUrl url = "http://localhost:" + QString::number(server->serverPort()) + "/path";
+ QNetworkRequest request(url);
+ request.setAttribute(QNetworkRequest::SynchronousRequestAttribute, true);
+
+ QNetworkReplyPtr reply = manager.get(request);
+ QVERIFY(reply->isFinished());
+ QCOMPARE(reply->error(), QNetworkReply::AuthenticationRequiredError);
+ }
+
+ //2) URL with credentials, we are authenticated
+ {
+ QUrl url = "http://login:password@localhost:" + QString::number(server->serverPort()) + "/path2";
+ QNetworkRequest request(url);
+ request.setAttribute(QNetworkRequest::SynchronousRequestAttribute, true);
+
+ QNetworkReplyPtr reply = manager.get(request);
+ QVERIFY(reply->isFinished());
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
+ QCOMPARE(reply->readAll().constData(), "OK");
+ }
+
+ //3) URL without credentials, we are authenticated because they are cached
+ {
+ QUrl url = "http://localhost:" + QString::number(server->serverPort()) + "/path3";
+ QNetworkRequest request(url);
+ request.setAttribute(QNetworkRequest::SynchronousRequestAttribute, true);
+
+ QNetworkReplyPtr reply = manager.get(request);
+ QVERIFY(reply->isFinished());
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
+ QCOMPARE(reply->readAll().constData(), "OK");
+ }
+}
+
+void tst_QNetworkReply::pipelining()
+{
+ QString urlString("http://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/echo.cgi?");
+ QList<QNetworkReplyPtr> replies;
+ for (int a = 0; a < 20; a++) {
+ QNetworkRequest request(urlString + QString::number(a));
+ request.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, QVariant(true));
+ replies.append(manager.get(request));
+ connect(replies.at(a), SIGNAL(finished()), this, SLOT(pipeliningHelperSlot()));
+ }
+ QTestEventLoop::instance().enterLoop(20);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+}
+
+void tst_QNetworkReply::pipeliningHelperSlot() {
+ static int a = 0;
+
+ // check that pipelining was used in at least one of the replies
+ static bool pipeliningWasUsed = false;
+ QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender());
+ bool pipeliningWasUsedInReply = reply->attribute(QNetworkRequest::HttpPipeliningWasUsedAttribute).toBool();
+ if (pipeliningWasUsedInReply)
+ pipeliningWasUsed = true;
+
+ // check that the contents match (the response to echo.cgi?3 should return 3 etc.)
+ QString urlQueryString = reply->url().queryItems().at(0).first;
+ QString content = reply->readAll();
+ QVERIFY2(urlQueryString == content, "data corruption with pipelining detected");
+
+ a++;
+
+ if (a == 20) { // all replies have finished
+ QTestEventLoop::instance().exitLoop();
+ QVERIFY2(pipeliningWasUsed, "pipelining was not used in any of the replies when trying to test pipelining");
+ }
+}
+
// NOTE: This test must be last testcase in tst_qnetworkreply!
void tst_QNetworkReply::parentingRepliesToTheApp()
{
diff --git a/tests/auto/qplugin/qplugin.pro b/tests/auto/qplugin/qplugin.pro
index 37a12da..1dcf0a7 100644
--- a/tests/auto/qplugin/qplugin.pro
+++ b/tests/auto/qplugin/qplugin.pro
@@ -22,7 +22,7 @@ mac {
SUBDIRS = debugplugin releaseplugin
tst_qplugin_pro.depends += debugplugin releaseplugin
}
-SUBDIRS += tst_qplugin.pro
+!integrity:SUBDIRS += tst_qplugin.pro
CONFIG += parallel_test
diff --git a/tests/auto/qpluginloader/qpluginloader.pro b/tests/auto/qpluginloader/qpluginloader.pro
index 6e41b4c..cb25b0f 100644
--- a/tests/auto/qpluginloader/qpluginloader.pro
+++ b/tests/auto/qpluginloader/qpluginloader.pro
@@ -1,10 +1,10 @@
QT = core
TEMPLATE = subdirs
CONFIG += ordered
-SUBDIRS = lib \
+!integrity:SUBDIRS = lib \
theplugin \
tst
-!win32: !macx-*: !symbian: SUBDIRS += almostplugin
+!win32: !macx-*: !symbian: !integrity: SUBDIRS += almostplugin
TARGET = tst_qpluginloader
# no special install rule for subdir
diff --git a/tests/auto/qprogressbar/tst_qprogressbar.cpp b/tests/auto/qprogressbar/tst_qprogressbar.cpp
index 04b7ce7..878cce8 100644
--- a/tests/auto/qprogressbar/tst_qprogressbar.cpp
+++ b/tests/auto/qprogressbar/tst_qprogressbar.cpp
@@ -63,6 +63,7 @@ private slots:
void text();
void format();
void setValueRepaint();
+ void setMinMaxRepaint();
void sizeHint();
void formatedText_data();
void formatedText();
@@ -216,6 +217,44 @@ void tst_QProgressBar::setValueRepaint()
}
}
+void tst_QProgressBar::setMinMaxRepaint()
+{
+ ProgressBar pbar;
+ pbar.setMinimum(0);
+ pbar.setMaximum(10);
+ pbar.setFormat("%v");
+ pbar.show();
+ QTest::qWaitForWindowShown(&pbar);
+
+ QApplication::processEvents();
+
+ // No repaint when setting minimum to the current minimum
+ pbar.repainted = false;
+ pbar.setMinimum(0);
+ QTest::qWait(50);
+ QTRY_VERIFY(!pbar.repainted);
+
+ // No repaint when setting maximum to the current maximum
+ pbar.repainted = false;
+ pbar.setMaximum(10);
+ QTest::qWait(50);
+ QTRY_VERIFY(!pbar.repainted);
+
+ // Repaint when setting minimum
+ for (int i = 9; i >= 0; i--) {
+ pbar.repainted = false;
+ pbar.setMinimum(i);
+ QTRY_VERIFY(pbar.repainted);
+ }
+
+ // Repaint when setting maximum
+ for (int i = 0; i < 10; ++i) {
+ pbar.repainted = false;
+ pbar.setMaximum(i);
+ QTRY_VERIFY(pbar.repainted);
+ }
+}
+
void tst_QProgressBar::sizeHint()
{
ProgressBar bar;
diff --git a/tests/auto/qresourceengine/qresourceengine.pro b/tests/auto/qresourceengine/qresourceengine.pro
index 9ca6994..6359549 100644
--- a/tests/auto/qresourceengine/qresourceengine.pro
+++ b/tests/auto/qresourceengine/qresourceengine.pro
@@ -40,6 +40,8 @@ wince*|symbian:{
testsub2.path = testqrc/test/test
DEPLOYMENT += deploy test alias other search1 search2 sub testsub testsub2
!symbian:DEFINES += SRCDIR=\\\"\\\"
+} else:integrity {
+ DEFINES += SRCDIR=\"/\"
} else {
DEFINES += SRCDIR=\\\"$$PWD/\\\"
}
diff --git a/tests/auto/qsharedpointer/qsharedpointer.pro b/tests/auto/qsharedpointer/qsharedpointer.pro
index 014006e..37ab4ce 100644
--- a/tests/auto/qsharedpointer/qsharedpointer.pro
+++ b/tests/auto/qsharedpointer/qsharedpointer.pro
@@ -9,7 +9,12 @@ HEADERS += forwarddeclared.h \
wrapper.h
QT = core
-!symbian:DEFINES += SRCDIR=\\\"$$PWD/\\\"
+
+integrity {
+ DEFINES += SRCDIR=\"/\"
+} else:!symbian {
+ DEFINES += SRCDIR=\\\"$$PWD/\\\"
+}
include(externaltests.pri)
CONFIG += parallel_test
diff --git a/tests/auto/qtemporaryfile/qtemporaryfile.pro b/tests/auto/qtemporaryfile/qtemporaryfile.pro
index 64a043b..4cbc76d 100644
--- a/tests/auto/qtemporaryfile/qtemporaryfile.pro
+++ b/tests/auto/qtemporaryfile/qtemporaryfile.pro
@@ -7,6 +7,8 @@ symbian {
testData.files = tst_qtemporaryfile.cpp
testData.path = .
DEPLOYMENT += testData
+} else:integrity {
+ DEFINES += SRCDIR=\"/\"
}else {
DEFINES += SRCDIR=\\\"$$PWD/\\\"
}
diff --git a/tests/auto/qtextboundaryfinder/qtextboundaryfinder.pro b/tests/auto/qtextboundaryfinder/qtextboundaryfinder.pro
index 5f3cb11..c52ca52 100644
--- a/tests/auto/qtextboundaryfinder/qtextboundaryfinder.pro
+++ b/tests/auto/qtextboundaryfinder/qtextboundaryfinder.pro
@@ -2,7 +2,11 @@ load(qttest_p4)
QT = core
HEADERS +=
SOURCES += tst_qtextboundaryfinder.cpp
-!symbian:*:DEFINES += SRCDIR=\\\"$$PWD\\\"
+integrity {
+ DEFINES += SRCDIR=\"/\"
+} else:!symbian {
+ DEFINES += SRCDIR=\\\"$$PWD/\\\"
+}
wince*|symbian:{
addFiles.files = data
diff --git a/tests/auto/qtranslator/i18n/hellotr_en.qm b/tests/auto/qtranslator/i18n/hellotr_en.qm
new file mode 100644
index 0000000..cc42afe
--- /dev/null
+++ b/tests/auto/qtranslator/i18n/hellotr_en.qm
Binary files differ
diff --git a/tests/auto/qtranslator/tst_qtranslator.cpp b/tests/auto/qtranslator/tst_qtranslator.cpp
index 8e2ed15..6f65e6a 100644
--- a/tests/auto/qtranslator/tst_qtranslator.cpp
+++ b/tests/auto/qtranslator/tst_qtranslator.cpp
@@ -66,6 +66,10 @@ protected:
private slots:
void load();
void load2();
+ void loadSubdir();
+ void loadSubdir2();
+ void loadSubdir3();
+ void loadSubdir4();
void threadLoad();
void testLanguageChange();
void plural();
@@ -124,6 +128,38 @@ void tst_QTranslator::load2()
QCOMPARE(tor.translate("QPushButton", "Hello world!"), QString::fromLatin1("Hallo Welt!"));
}
+void tst_QTranslator::loadSubdir()
+{
+ QTranslator tor( 0 );
+ tor.load("hellotr_en_GB", "i18n");
+ QVERIFY(!tor.isEmpty());
+ QCOMPARE(tor.translate("QPushButton", "Hello world!"), QString::fromLatin1("Hallo Welt!"));
+}
+
+void tst_QTranslator::loadSubdir2()
+{
+ QTranslator tor( 0 );
+ tor.load("i18n/hellotr_en_GB");
+ QVERIFY(!tor.isEmpty());
+ QCOMPARE(tor.translate("QPushButton", "Hello world!"), QString::fromLatin1("Hallo Welt!"));
+}
+
+void tst_QTranslator::loadSubdir3()
+{
+ QTranslator tor( 0 );
+ tor.load(QString(QLatin1String("i18n%1hellotr_en_GB")).arg(QDir::separator()));
+ QVERIFY(!tor.isEmpty());
+ QCOMPARE(tor.translate("QPushButton", "Hello world!"), QString::fromLatin1("Hallo Welt!"));
+}
+
+void tst_QTranslator::loadSubdir4()
+{
+ QTranslator tor( 0 );
+ tor.load("./hellotr_en_GB", "i18n");
+ QVERIFY(!tor.isEmpty());
+ QCOMPARE(tor.translate("QPushButton", "Hello world!"), QString::fromLatin1("Hallo Welt!"));
+}
+
class TranslatorThread : public QThread
{
void run() {
@@ -249,10 +285,10 @@ void tst_QTranslator::loadFromResource()
void tst_QTranslator::loadDirectory()
{
- QVERIFY(QFileInfo("../qtranslator").isDir());
+ QVERIFY(QFileInfo("i18n").isDir());
QTranslator tor;
- tor.load("qtranslator", "..");
+ tor.load("qtranslator", "i18n");
QVERIFY(tor.isEmpty());
}
diff --git a/tests/auto/selftests/selftests.pro b/tests/auto/selftests/selftests.pro
index 74cd075..1494e38 100644
--- a/tests/auto/selftests/selftests.pro
+++ b/tests/auto/selftests/selftests.pro
@@ -12,5 +12,6 @@ INSTALLS =
QT = core
+integrity: SUBDIRS -= test
CONFIG += parallel_test
diff --git a/tests/manual/qssloptions/main.cpp b/tests/manual/qssloptions/main.cpp
index 6f2f361..727ad23 100644
--- a/tests/manual/qssloptions/main.cpp
+++ b/tests/manual/qssloptions/main.cpp
@@ -56,6 +56,7 @@ int main(int argc, char **argv)
out << "disable_session_tickets" << endl;
out << "disable_compression" << endl;
out << "disable_sni" << endl;
+ out << "enable_unsafe_reneg" << endl;
return 1;
}
@@ -75,6 +76,8 @@ int main(int argc, char **argv)
config.setSslOption(QSsl::SslOptionDisableCompression, true);
else if (option == QLatin1String("disable_sni"))
config.setSslOption(QSsl::SslOptionDisableServerNameIndication, true);
+ else if (option == QStringLiteral("enable_unsafe_reneg"))
+ config.setSslOption(QSsl::SslOptionDisableLegacyRenegotiation, false);
}
QSslConfiguration::setDefaultConfiguration(config);
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index e6d8526..60996e3 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -1263,17 +1263,18 @@ void Configure::parseCmdLine()
}
cout << "See the README file for a list of supported operating systems and compilers." << endl;
} else {
- if (dictionary[ "QMAKESPEC" ].endsWith("-icc") ||
- dictionary[ "QMAKESPEC" ].endsWith("-msvc") ||
- dictionary[ "QMAKESPEC" ].endsWith("-msvc.net") ||
- dictionary[ "QMAKESPEC" ].endsWith("-msvc2002") ||
- dictionary[ "QMAKESPEC" ].endsWith("-msvc2003") ||
- dictionary[ "QMAKESPEC" ].endsWith("-msvc2005") ||
- dictionary[ "QMAKESPEC" ].endsWith("-msvc2008") ||
- dictionary[ "QMAKESPEC" ].endsWith("-msvc2010")) {
+ const QString qmakeSpec = dictionary[ "QMAKESPEC" ];
+ if (qmakeSpec.endsWith("-icc") ||
+ qmakeSpec.endsWith("-msvc") ||
+ qmakeSpec.endsWith("-msvc.net") ||
+ qmakeSpec.endsWith("-msvc2002") ||
+ qmakeSpec.endsWith("-msvc2003") ||
+ qmakeSpec.endsWith("-msvc2005") ||
+ qmakeSpec.endsWith("-msvc2008") ||
+ qmakeSpec.endsWith("-msvc2010")) {
if (dictionary[ "MAKE" ].isEmpty()) dictionary[ "MAKE" ] = "nmake";
dictionary[ "QMAKEMAKEFILE" ] = "Makefile.win32";
- } else if (dictionary[ "QMAKESPEC" ] == QString("win32-g++")) {
+ } else if (qmakeSpec.contains("win32-g++")) {
if (dictionary[ "MAKE" ].isEmpty()) dictionary[ "MAKE" ] = "mingw32-make";
if (Environment::detectExecutable("sh.exe")) {
dictionary[ "QMAKEMAKEFILE" ] = "Makefile.win32-g++-sh";
@@ -1329,7 +1330,7 @@ void Configure::parseCmdLine()
}
}
- useUnixSeparators = (dictionary["QMAKESPEC"] == "win32-g++");
+ useUnixSeparators = dictionary["QMAKESPEC"].contains("win32-g++");
// Allow tests for private classes to be compiled against internal builds
if (dictionary["BUILDDEV"] == "yes")
@@ -2201,7 +2202,9 @@ bool Configure::checkAvailability(const QString &part)
} else if (part == "MULTIMEDIA" || part == "SCRIPT" || part == "SCRIPTTOOLS" || part == "DECLARATIVE") {
available = true;
} else if (part == "WEBKIT") {
- available = (dictionary.value("QMAKESPEC") == "win32-msvc2005") || (dictionary.value("QMAKESPEC") == "win32-msvc2008") || (dictionary.value("QMAKESPEC") == "win32-msvc2010") || (dictionary.value("QMAKESPEC") == "win32-g++");
+ const QString qmakeSpec = dictionary.value("QMAKESPEC");
+ available = qmakeSpec == "win32-msvc2005" || qmakeSpec == "win32-msvc2008" ||
+ qmakeSpec == "win32-msvc2010" || qmakeSpec.startsWith("win32-g++");
if (dictionary[ "SHARED" ] == "no") {
cout << endl << "WARNING: Using static linking will disable the WebKit module." << endl
<< endl;
@@ -2376,7 +2379,7 @@ bool Configure::verifyConfiguration()
dictionary["SQL_SQLITE_LIB"] = "qt"; // Set to Qt's bundled lib an continue
}
- if (dictionary["QMAKESPEC"].endsWith("-g++")
+ if (dictionary["QMAKESPEC"].contains("-g++")
&& dictionary["SQL_OCI"] != "no") {
cout << "WARNING: Qt does not support compiling the Oracle database driver with" << endl
<< "MinGW, due to lack of such support from Oracle. Consider disabling the" << endl
@@ -2456,7 +2459,7 @@ void Configure::generateBuildKey()
QString spec = dictionary["QMAKESPEC"];
QString compiler = "msvc"; // ICC is compatible
- if (spec.endsWith("-g++"))
+ if (spec.contains("-g++"))
compiler = "mingw";
else if (spec.endsWith("-borland"))
compiler = "borland";
@@ -2874,7 +2877,7 @@ void Configure::generateOutputVars()
if (!qmakeStylePlugins.isEmpty())
qmakeVars += QString("style-plugins += ") + qmakeStylePlugins.join(" ");
- if (dictionary["QMAKESPEC"].endsWith("-g++")) {
+ if (dictionary["QMAKESPEC"].contains("-g++")) {
QString includepath = qgetenv("INCLUDE");
bool hasSh = Environment::detectExecutable("sh.exe");
QChar separator = (!includepath.contains(":\\") && hasSh ? QChar(':') : QChar(';'));
diff --git a/tools/configure/environment.cpp b/tools/configure/environment.cpp
index f9b3e85..78e1d87 100644
--- a/tools/configure/environment.cpp
+++ b/tools/configure/environment.cpp
@@ -120,6 +120,9 @@ QString Environment::detectQMakeSpec()
spec = "win32-icc";
break;
case CC_MINGW:
+ spec = "win32-g++-4.6";
+ break;
+ case CC_MINGW_44:
spec = "win32-g++";
break;
case CC_BORLAND:
@@ -173,6 +176,12 @@ Compiler Environment::detectCompiler()
if (executable.length() && Environment::detectExecutable(executable)) {
++installed;
detectedCompiler = compiler_info[i].compiler;
+ if (detectedCompiler == CC_MINGW) {
+ bool is64bit;
+ const int version = detectGPlusPlusVersion(executable, &is64bit);
+ if (version < 0x040600)
+ detectedCompiler = CC_MINGW_44;
+ }
break;
}
}
@@ -184,7 +193,7 @@ Compiler Environment::detectCompiler()
}
return detectedCompiler;
#endif
-};
+}
/*!
Returns true if the \a executable could be loaded, else false.
@@ -214,6 +223,81 @@ bool Environment::detectExecutable(const QString &executable)
}
/*!
+ Determine the g++ version.
+*/
+
+int Environment::detectGPlusPlusVersion(const QString &executable,
+ bool *is64bit)
+{
+ QRegExp regexp(QLatin1String("[gG]\\+\\+[\\.exEX]{0,4} ([^\\s]+) (\\d+)\\.(\\d+)\\.(\\d+)"));
+ QString stdOut = readProcessStandardOutput(executable + QLatin1String(" --version"));
+ if (regexp.indexIn(stdOut) != -1) {
+ const QString compiler = regexp.cap(1);
+ // Check for "tdm64-1"
+ *is64bit = compiler.contains(QLatin1String("64"));
+ const int major = regexp.cap(2).toInt();
+ const int minor = regexp.cap(3).toInt();
+ const int patch = regexp.cap(4).toInt();
+ return (major << 16) + (minor << 8) + patch;
+ }
+ *is64bit = false;
+ return 0;
+}
+
+/*!
+ Run a process and return its standard output.
+*/
+
+QString Environment::readProcessStandardOutput(const QString &commandLine)
+{
+ QString stdOut;
+ TCHAR tempFileName[MAX_PATH];
+ TCHAR tempPathBuffer[MAX_PATH];
+ if (!GetTempPath(MAX_PATH, tempPathBuffer)
+ || !GetTempFileName(tempPathBuffer, TEXT("qtconfigure"), 0, tempFileName))
+ return stdOut;
+
+ STARTUPINFO startInfo;
+ memset(&startInfo, 0, sizeof(startInfo));
+ startInfo.cb = sizeof(startInfo);
+ startInfo.dwFlags |= STARTF_USESTDHANDLES;
+
+ SECURITY_ATTRIBUTES securityAttributes;
+ securityAttributes.nLength = sizeof(SECURITY_ATTRIBUTES);
+ securityAttributes.bInheritHandle = TRUE;
+ securityAttributes.lpSecurityDescriptor = NULL;
+
+ startInfo.hStdOutput = CreateFile(tempFileName, GENERIC_WRITE, 0, &securityAttributes, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+ if (startInfo.hStdOutput == INVALID_HANDLE_VALUE)
+ return stdOut;
+
+ PROCESS_INFORMATION procInfo;
+ memset(&procInfo, 0, sizeof(procInfo));
+
+ if (!CreateProcess(0, (wchar_t*)commandLine.utf16(),
+ 0, 0, TRUE,
+ 0,
+ 0, 0, &startInfo, &procInfo)) {
+ CloseHandle(startInfo.hStdOutput);
+ DeleteFile(tempFileName);
+ return stdOut;
+ }
+
+ WaitForSingleObject(procInfo.hProcess, INFINITE);
+ CloseHandle(procInfo.hThread);
+ CloseHandle(procInfo.hProcess);
+ CloseHandle(startInfo.hStdOutput);
+ QFile file(QString::fromWCharArray(tempFileName));
+
+ if (file.open(QIODevice::Text| QIODevice::ReadOnly)) {
+ stdOut = QString::fromLocal8Bit(file.readAll());
+ file.close();
+ }
+ DeleteFile(tempFileName);
+ return stdOut;
+}
+
+/*!
Creates a commandling from \a program and it \a arguments,
escaping characters that needs it.
*/
diff --git a/tools/configure/environment.h b/tools/configure/environment.h
index 9bbd096..81c232a 100644
--- a/tools/configure/environment.h
+++ b/tools/configure/environment.h
@@ -49,6 +49,7 @@ enum Compiler {
CC_UNKNOWN = 0,
CC_BORLAND = 0x01,
CC_MINGW = 0x02,
+ CC_MINGW_44 = 0x21,
CC_INTEL = 0x03,
CC_NET2003 = 0x71,
CC_NET2005 = 0x80,
@@ -63,6 +64,8 @@ public:
static Compiler detectCompiler();
static QString detectQMakeSpec();
static bool detectExecutable(const QString &executable);
+ static int detectGPlusPlusVersion(const QString &executable, bool *is64bit);
+ static QString readProcessStandardOutput(const QString &commandLine);
static int execute(QStringList arguments, const QStringList &additionalEnv, const QStringList &removeEnv);
static bool cpdir(const QString &srcDir,
diff --git a/tools/designer/src/components/propertyeditor/propertyeditor.pri b/tools/designer/src/components/propertyeditor/propertyeditor.pri
index 60219e1..e5e4d46 100644
--- a/tools/designer/src/components/propertyeditor/propertyeditor.pri
+++ b/tools/designer/src/components/propertyeditor/propertyeditor.pri
@@ -4,8 +4,13 @@
INCLUDEPATH += $$PWD
-include(../../../../shared/qtpropertybrowser/qtpropertybrowser.pri)
-include(../../../../shared/qtgradienteditor/qtcolorbutton.pri)
+contains(CONFIG, static) { # see shared.pri
+ INCLUDEPATH *= $$QT_SOURCE_TREE/tools/shared/qtpropertybrowser
+ INCLUDEPATH *= $$QT_SOURCE_TREE/tools/shared/qtgradienteditor
+} else {
+ include(../../../../shared/qtpropertybrowser/qtpropertybrowser.pri)
+ include(../../../../shared/qtgradienteditor/qtcolorbutton.pri)
+}
FORMS += $$PWD/paletteeditor.ui \
$$PWD/stringlisteditor.ui \
diff --git a/tools/designer/src/lib/shared/shared.pri b/tools/designer/src/lib/shared/shared.pri
index 9d50911..b07f565 100644
--- a/tools/designer/src/lib/shared/shared.pri
+++ b/tools/designer/src/lib/shared/shared.pri
@@ -2,7 +2,17 @@
INCLUDEPATH += $$PWD
contains(QT_CONFIG, script): QT += script
-include(../../../../shared/qtpropertybrowser/qtpropertybrowserutils.pri)
+# When linking dynamically, use only the QKeySequenceEdit widget of
+# the property browser solution as the other symbols of the property
+# browser solution must not be duplicated (see e7762b60d51). When linking
+# statically, add the property browser solution to make the library self-contained
+# and use only the include path in the property editor (see propertyeditor.pri)
+
+contains(CONFIG, static) {
+ include(../../../../shared/qtpropertybrowser/qtpropertybrowser.pri)
+} else {
+ include(../../../../shared/qtpropertybrowser/qtpropertybrowserutils.pri)
+}
include(../../../../shared/deviceskin/deviceskin.pri)
include(../../../../../src/tools/rcc/rcc.pri)
include(../../../../shared/findwidget/findwidget.pri)
diff --git a/tools/qdoc3/htmlgenerator.cpp b/tools/qdoc3/htmlgenerator.cpp
index 85ce9ac..923d523 100644
--- a/tools/qdoc3/htmlgenerator.cpp
+++ b/tools/qdoc3/htmlgenerator.cpp
@@ -217,6 +217,10 @@ void HtmlGenerator::initializeGenerator(const Config &config)
headerStyles = config.getString(HtmlGenerator::format() +
Config::dot +
CONFIG_HEADERSTYLES);
+
+ QString prefix = CONFIG_QHP + Config::dot + "Qt" + Config::dot;
+ manifestDir = "qthelp://" + config.getString(prefix + "namespace");
+ manifestDir += "/" + config.getString(prefix + "virtualFolder") + "/";
}
void HtmlGenerator::terminateGenerator()
@@ -4398,7 +4402,7 @@ void HtmlGenerator::generateManifestFile(QString manifest, QString element)
writer.writeStartElement(element);
writer.writeAttribute("name", en->title());
//QString docUrl = projectUrl + "/" + en->fileBase() + ".html";
- QString docUrl = "%REPLACEME%/" + en->fileBase() + ".html";
+ QString docUrl = manifestDir + en->fileBase() + ".html";
writer.writeAttribute("docUrl", docUrl);
foreach (const Node* child, en->childNodes()) {
if (child->subType() == Node::File) {
@@ -4412,7 +4416,7 @@ void HtmlGenerator::generateManifestFile(QString manifest, QString element)
}
}
//writer.writeAttribute("imageUrl", projectUrl + "/" + en->imageFileName());
- writer.writeAttribute("imageUrl", "%REPLACEME%/" + en->imageFileName());
+ writer.writeAttribute("imageUrl", manifestDir + en->imageFileName());
writer.writeStartElement("description");
Text brief = en->doc().briefText();
if (!brief.isEmpty())
diff --git a/tools/qdoc3/htmlgenerator.h b/tools/qdoc3/htmlgenerator.h
index 62a7f605..baf7c30 100644
--- a/tools/qdoc3/htmlgenerator.h
+++ b/tools/qdoc3/htmlgenerator.h
@@ -274,6 +274,7 @@ class HtmlGenerator : public PageGenerator
QString projectDescription;
QString projectUrl;
QString navigationLinks;
+ QString manifestDir;
QStringList stylesheets;
QStringList customHeadElements;
const Tree *myTree;
diff --git a/tools/qdoc3/qdoc3.pro b/tools/qdoc3/qdoc3.pro
index bb5ff83..254ba92 100644
--- a/tools/qdoc3/qdoc3.pro
+++ b/tools/qdoc3/qdoc3.pro
@@ -15,6 +15,11 @@ qdoc_bootstrapped {
CONFIG -= debug_and_release_target
}
+# Increase the stack size on MSVC to 4M to avoid a stack overflow
+win32-msvc*:{
+    QMAKE_LFLAGS += /STACK:\"4194304\"
+}
+
!isEmpty(QT_BUILD_TREE):DESTDIR = $$QT_BUILD_TREE/bin
#CONFIG += debug
build_all:!build_pass {
diff --git a/translations/qt_ru.ts b/translations/qt_ru.ts
index 348b1ce..aebbac2 100644
--- a/translations/qt_ru.ts
+++ b/translations/qt_ru.ts
@@ -1816,14 +1816,6 @@ to
<context>
<name>QDeclarativeImportDatabase</name>
<message>
- <source>cannot load module &quot;%1&quot;: File name case mismatch for &quot;%2&quot;</source>
- <translation>невозможно загрузить модуль «%1»: Регистр имени файла не соответствует «%2»</translation>
- </message>
- <message>
- <source>module &quot;%1&quot; definition &quot;%2&quot; not readable</source>
- <translation>невозможно прочитать определение «%2» модуля «%1»</translation>
- </message>
- <message>
<source>plugin cannot be loaded for module &quot;%1&quot;: %2</source>
<translation>не удалось загрузить плагин для модуля «%1»: %2</translation>
</message>
@@ -1876,8 +1868,8 @@ to
<translation>не является типом</translation>
</message>
<message>
- <source>File name case mismatch for &quot;%2&quot;</source>
- <translation>Регистр имени файла не соответствует «%2»</translation>
+ <source>File name case mismatch for &quot;%1&quot;</source>
+ <translation>Регистр имени файла не соответствует «%1»</translation>
</message>
</context>
<context>
@@ -4977,7 +4969,11 @@ Please choose a different file name.</source>
</message>
<message>
<source>bad lookahead syntax</source>
- <translation>неправильный предварительный синтаксис</translation>
+ <translation>неправильный синтаксис lookahead</translation>
+ </message>
+ <message>
+ <source>lookbehinds not supported, see QTBUG-2371</source>
+ <translation>lookbehind не поддерживается, см. QTBUG-2371</translation>
</message>
<message>
<source>bad repetition syntax</source>