summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/Qt5Config.cmake.in43
-rw-r--r--src/corelib/animation/qabstractanimation.h4
-rw-r--r--src/corelib/animation/qanimationgroup.h4
-rw-r--r--src/corelib/animation/qparallelanimationgroup.h4
-rw-r--r--src/corelib/animation/qpauseanimation.h4
-rw-r--r--src/corelib/animation/qpropertyanimation.h4
-rw-r--r--src/corelib/animation/qsequentialanimationgroup.h4
-rw-r--r--src/corelib/animation/qvariantanimation.h4
-rw-r--r--src/corelib/arch/qatomic_alpha.h13
-rw-r--r--src/corelib/arch/qatomic_armv5.h15
-rw-r--r--src/corelib/arch/qatomic_armv6.h7
-rw-r--r--src/corelib/arch/qatomic_armv7.h5
-rw-r--r--src/corelib/arch/qatomic_bfin.h13
-rw-r--r--src/corelib/arch/qatomic_bootstrap.h7
-rw-r--r--src/corelib/arch/qatomic_cxx11.h5
-rw-r--r--src/corelib/arch/qatomic_gcc.h6
-rw-r--r--src/corelib/arch/qatomic_ia64.h7
-rw-r--r--src/corelib/arch/qatomic_integrity.h13
-rw-r--r--src/corelib/arch/qatomic_mips.h7
-rw-r--r--src/corelib/arch/qatomic_msvc.h6
-rw-r--r--src/corelib/arch/qatomic_power.h13
-rw-r--r--src/corelib/arch/qatomic_s390.h13
-rw-r--r--src/corelib/arch/qatomic_sh4a.h7
-rw-r--r--src/corelib/arch/qatomic_sparc.h13
-rw-r--r--src/corelib/arch/qatomic_unix.h6
-rw-r--r--src/corelib/arch/qatomic_vxworks.h18
-rw-r--r--src/corelib/arch/qatomic_x86.h7
-rw-r--r--src/corelib/codecs/qicucodec.cpp3
-rw-r--r--src/corelib/codecs/qtextcodec.cpp34
-rw-r--r--src/corelib/codecs/qtextcodec.h4
-rw-r--r--src/corelib/codecs/qtextcodec_p.h2
-rw-r--r--src/corelib/corelib.pro16
-rw-r--r--src/corelib/doc/snippets/code/doc_src_properties.cpp21
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp34
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_kernel_qcoreapplication.cpp7
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_kernel_qmath.cpp63
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_tools_qpoint.cpp14
-rw-r--r--src/corelib/doc/snippets/qmessageauthenticationcode/main.cpp62
-rw-r--r--src/corelib/doc/src/objectmodel/properties.qdoc26
-rw-r--r--src/corelib/global/global.pri2
-rw-r--r--src/corelib/global/qcompilerdetection.h8
-rw-r--r--src/corelib/global/qendian.h4
-rw-r--r--src/corelib/global/qfeatures.h3
-rw-r--r--src/corelib/global/qfeatures.txt7
-rw-r--r--src/corelib/global/qflags.h4
-rw-r--r--src/corelib/global/qglobal.cpp42
-rw-r--r--src/corelib/global/qglobal.h139
-rw-r--r--src/corelib/global/qglobalstatic.cpp524
-rw-r--r--src/corelib/global/qglobalstatic.h142
-rw-r--r--src/corelib/global/qisenum.h3
-rw-r--r--src/corelib/global/qlibraryinfo.h4
-rw-r--r--src/corelib/global/qlogging.cpp115
-rw-r--r--src/corelib/global/qlogging.h3
-rw-r--r--src/corelib/global/qnamespace.h18
-rw-r--r--src/corelib/global/qnamespace.qdoc33
-rw-r--r--src/corelib/global/qnumeric.h4
-rw-r--r--src/corelib/global/qprocessordetection.h1
-rw-r--r--src/corelib/global/qsysinfo.h3
-rw-r--r--src/corelib/global/qsystemdetection.h60
-rw-r--r--src/corelib/global/qt_windows.h5
-rw-r--r--src/corelib/global/qtypeinfo.h3
-rw-r--r--src/corelib/global/qtypetraits.h3
-rw-r--r--src/corelib/io/io.pri19
-rw-r--r--src/corelib/io/qabstractfileengine.cpp31
-rw-r--r--src/corelib/io/qabstractfileengine_p.h8
-rw-r--r--src/corelib/io/qbuffer.h4
-rw-r--r--src/corelib/io/qdatastream.cpp3
-rw-r--r--src/corelib/io/qdatastream.h9
-rw-r--r--src/corelib/io/qdebug.cpp73
-rw-r--r--src/corelib/io/qdebug.h16
-rw-r--r--src/corelib/io/qdir.h4
-rw-r--r--src/corelib/io/qdiriterator.h4
-rw-r--r--src/corelib/io/qfile.h4
-rw-r--r--src/corelib/io/qfiledevice.h4
-rw-r--r--src/corelib/io/qfileinfo.h4
-rw-r--r--src/corelib/io/qfilesystemengine.cpp3
-rw-r--r--src/corelib/io/qfilesystemengine_unix.cpp18
-rw-r--r--src/corelib/io/qfilesystemwatcher.h4
-rw-r--r--src/corelib/io/qfsfileengine.cpp16
-rw-r--r--src/corelib/io/qfsfileengine_p.h3
-rw-r--r--src/corelib/io/qfsfileengine_unix.cpp23
-rw-r--r--src/corelib/io/qfsfileengine_win.cpp29
-rw-r--r--src/corelib/io/qiodevice.h4
-rw-r--r--src/corelib/io/qlockfile.cpp346
-rw-r--r--src/corelib/io/qlockfile.h91
-rw-r--r--src/corelib/io/qlockfile_p.h104
-rw-r--r--src/corelib/io/qlockfile_unix.cpp207
-rw-r--r--src/corelib/io/qlockfile_win.cpp138
-rw-r--r--src/corelib/io/qprocess.cpp96
-rw-r--r--src/corelib/io/qprocess.h10
-rw-r--r--src/corelib/io/qprocess_unix.cpp36
-rw-r--r--src/corelib/io/qresource.cpp9
-rw-r--r--src/corelib/io/qresource.h4
-rw-r--r--src/corelib/io/qsavefile.cpp316
-rw-r--r--src/corelib/io/qsavefile.h90
-rw-r--r--src/corelib/io/qsavefile_p.h75
-rw-r--r--src/corelib/io/qsettings.h4
-rw-r--r--src/corelib/io/qstandardpaths.h4
-rw-r--r--src/corelib/io/qtemporarydir.cpp14
-rw-r--r--src/corelib/io/qtemporarydir.h4
-rw-r--r--src/corelib/io/qtemporaryfile.cpp60
-rw-r--r--src/corelib/io/qtemporaryfile.h6
-rw-r--r--src/corelib/io/qtemporaryfile_p.h103
-rw-r--r--src/corelib/io/qtextstream.cpp218
-rw-r--r--src/corelib/io/qtextstream.h5
-rw-r--r--src/corelib/io/qtextstream_p.h185
-rw-r--r--src/corelib/io/qtldurl.cpp18
-rw-r--r--src/corelib/io/qurl.cpp38
-rw-r--r--src/corelib/io/qurl.h7
-rw-r--r--src/corelib/io/qurlidna.cpp29
-rw-r--r--src/corelib/io/qurlquery.h4
-rw-r--r--src/corelib/io/qurltlds_p.h15867
-rw-r--r--src/corelib/io/qwindowspipereader_p.h4
-rw-r--r--src/corelib/io/qwindowspipewriter_p.h4
-rw-r--r--src/corelib/io/qwinoverlappedionotifier_p.h4
-rw-r--r--src/corelib/itemmodels/qabstractitemmodel.cpp44
-rw-r--r--src/corelib/itemmodels/qabstractitemmodel.h11
-rw-r--r--src/corelib/itemmodels/qabstractproxymodel.cpp9
-rw-r--r--src/corelib/itemmodels/qabstractproxymodel.h7
-rw-r--r--src/corelib/itemmodels/qidentityproxymodel.h4
-rw-r--r--src/corelib/itemmodels/qitemselectionmodel.h4
-rw-r--r--src/corelib/itemmodels/qsortfilterproxymodel.h4
-rw-r--r--src/corelib/itemmodels/qstringlistmodel.cpp4
-rw-r--r--src/corelib/itemmodels/qstringlistmodel.h4
-rw-r--r--src/corelib/json/qjsonarray.h4
-rw-r--r--src/corelib/json/qjsondocument.cpp39
-rw-r--r--src/corelib/json/qjsondocument.h17
-rw-r--r--src/corelib/json/qjsonobject.h4
-rw-r--r--src/corelib/json/qjsonvalue.h4
-rw-r--r--src/corelib/kernel/kernel.pri2
-rw-r--r--src/corelib/kernel/qabstracteventdispatcher.h4
-rw-r--r--src/corelib/kernel/qabstractnativeeventfilter.h4
-rw-r--r--src/corelib/kernel/qbasictimer.h4
-rw-r--r--src/corelib/kernel/qcore_mac_p.h12
-rw-r--r--src/corelib/kernel/qcore_unix.cpp21
-rw-r--r--src/corelib/kernel/qcore_unix_p.h54
-rw-r--r--src/corelib/kernel/qcoreapplication.cpp114
-rw-r--r--src/corelib/kernel/qcoreapplication.h25
-rw-r--r--src/corelib/kernel/qcoreevent.h4
-rw-r--r--src/corelib/kernel/qeventdispatcher_blackberry.cpp18
-rw-r--r--src/corelib/kernel/qeventdispatcher_blackberry_p.h2
-rw-r--r--src/corelib/kernel/qeventdispatcher_glib.cpp4
-rw-r--r--src/corelib/kernel/qeventdispatcher_unix.cpp51
-rw-r--r--src/corelib/kernel/qeventdispatcher_unix_p.h11
-rw-r--r--src/corelib/kernel/qeventloop.h4
-rw-r--r--src/corelib/kernel/qeventloop_p.h4
-rw-r--r--src/corelib/kernel/qfunctions_nacl.h4
-rw-r--r--src/corelib/kernel/qfunctions_p.h3
-rw-r--r--src/corelib/kernel/qfunctions_vxworks.cpp10
-rw-r--r--src/corelib/kernel/qfunctions_vxworks.h53
-rw-r--r--src/corelib/kernel/qfunctions_wince.h3
-rw-r--r--src/corelib/kernel/qmath.cpp87
-rw-r--r--src/corelib/kernel/qmath.h28
-rw-r--r--src/corelib/kernel/qmetaobject.h4
-rw-r--r--src/corelib/kernel/qmetatype.cpp8
-rw-r--r--src/corelib/kernel/qmetatype.h37
-rw-r--r--src/corelib/kernel/qmetatype_p.h2
-rw-r--r--src/corelib/kernel/qmimedata.h4
-rw-r--r--src/corelib/kernel/qobject.cpp4
-rw-r--r--src/corelib/kernel/qobject.h8
-rw-r--r--src/corelib/kernel/qobject_impl.h7
-rw-r--r--src/corelib/kernel/qobject_p.h77
-rw-r--r--src/corelib/kernel/qobjectcleanuphandler.h4
-rw-r--r--src/corelib/kernel/qobjectdefs.h4
-rw-r--r--src/corelib/kernel/qobjectdefs_impl.h7
-rw-r--r--src/corelib/kernel/qpointer.h100
-rw-r--r--src/corelib/kernel/qsharedmemory.h4
-rw-r--r--src/corelib/kernel/qsharedmemory_p.h2
-rw-r--r--src/corelib/kernel/qsharedmemory_unix.cpp3
-rw-r--r--src/corelib/kernel/qsignalmapper.h4
-rw-r--r--src/corelib/kernel/qsocketnotifier.h4
-rw-r--r--src/corelib/kernel/qsystemsemaphore.h4
-rw-r--r--src/corelib/kernel/qtimer.h4
-rw-r--r--src/corelib/kernel/qtimerinfo_unix.cpp84
-rw-r--r--src/corelib/kernel/qtimerinfo_unix_p.h14
-rw-r--r--src/corelib/kernel/qtranslator.h4
-rw-r--r--src/corelib/kernel/qvariant.cpp10
-rw-r--r--src/corelib/kernel/qvariant.h30
-rw-r--r--src/corelib/kernel/qwineventnotifier.h4
-rw-r--r--src/corelib/mimetypes/qmimedatabase.h3
-rw-r--r--src/corelib/mimetypes/qmimetype.h3
-rw-r--r--src/corelib/plugin/qfactoryinterface.h4
-rw-r--r--src/corelib/plugin/qlibrary.cpp173
-rw-r--r--src/corelib/plugin/qlibrary.h4
-rw-r--r--src/corelib/plugin/qlibrary_p.h9
-rw-r--r--src/corelib/plugin/qlibrary_unix.cpp2
-rw-r--r--src/corelib/plugin/qplugin.h4
-rw-r--r--src/corelib/plugin/qpluginloader.h4
-rw-r--r--src/corelib/plugin/quuid.h4
-rw-r--r--src/corelib/statemachine/qabstractstate.h4
-rw-r--r--src/corelib/statemachine/qabstracttransition.h4
-rw-r--r--src/corelib/statemachine/qeventtransition.h4
-rw-r--r--src/corelib/statemachine/qfinalstate.h4
-rw-r--r--src/corelib/statemachine/qhistorystate.h4
-rw-r--r--src/corelib/statemachine/qsignaltransition.h4
-rw-r--r--src/corelib/statemachine/qstate.h4
-rw-r--r--src/corelib/statemachine/qstatemachine.h4
-rw-r--r--src/corelib/thread/qatomic.h4
-rw-r--r--src/corelib/thread/qbasicatomic.h6
-rw-r--r--src/corelib/thread/qexception.h2
-rw-r--r--src/corelib/thread/qfuture.h2
-rw-r--r--src/corelib/thread/qfutureinterface.h3
-rw-r--r--src/corelib/thread/qfuturesynchronizer.h3
-rw-r--r--src/corelib/thread/qfuturewatcher.h3
-rw-r--r--src/corelib/thread/qgenericatomic.h6
-rw-r--r--src/corelib/thread/qmutex.h4
-rw-r--r--src/corelib/thread/qmutex_p.h9
-rw-r--r--src/corelib/thread/qmutex_unix.cpp11
-rw-r--r--src/corelib/thread/qoldbasicatomic.h6
-rw-r--r--src/corelib/thread/qreadwritelock.h4
-rw-r--r--src/corelib/thread/qresultstore.h2
-rw-r--r--src/corelib/thread/qrunnable.h2
-rw-r--r--src/corelib/thread/qsemaphore.h4
-rw-r--r--src/corelib/thread/qthread.cpp1
-rw-r--r--src/corelib/thread/qthread.h4
-rw-r--r--src/corelib/thread/qthread_p.h1
-rw-r--r--src/corelib/thread/qthread_unix.cpp36
-rw-r--r--src/corelib/thread/qthread_win.cpp5
-rw-r--r--src/corelib/thread/qthreadpool.h2
-rw-r--r--src/corelib/thread/qthreadstorage.h4
-rw-r--r--src/corelib/thread/qwaitcondition.h4
-rw-r--r--src/corelib/thread/qwaitcondition_unix.cpp46
-rw-r--r--src/corelib/thread/thread.pri2
-rw-r--r--src/corelib/tools/qalgorithms.h4
-rw-r--r--src/corelib/tools/qarraydata.h4
-rw-r--r--src/corelib/tools/qarraydataops.h4
-rw-r--r--src/corelib/tools/qarraydatapointer.h4
-rw-r--r--src/corelib/tools/qbitarray.h4
-rw-r--r--src/corelib/tools/qbytearray.h4
-rw-r--r--src/corelib/tools/qbytearraymatcher.h4
-rw-r--r--src/corelib/tools/qcache.h4
-rw-r--r--src/corelib/tools/qchar.cpp147
-rw-r--r--src/corelib/tools/qchar.h132
-rw-r--r--src/corelib/tools/qcollator_p.h4
-rw-r--r--src/corelib/tools/qcontainerfwd.h4
-rw-r--r--src/corelib/tools/qcontiguouscache.h4
-rw-r--r--src/corelib/tools/qcryptographichash.cpp157
-rw-r--r--src/corelib/tools/qcryptographichash.h11
-rw-r--r--src/corelib/tools/qdatetime.cpp35
-rw-r--r--src/corelib/tools/qdatetime.h4
-rw-r--r--src/corelib/tools/qdatetime_p.h3
-rw-r--r--src/corelib/tools/qeasingcurve.h4
-rw-r--r--src/corelib/tools/qelapsedtimer.h4
-rw-r--r--src/corelib/tools/qelapsedtimer_mac.cpp6
-rw-r--r--src/corelib/tools/qelapsedtimer_unix.cpp10
-rw-r--r--src/corelib/tools/qfreelist_p.h4
-rw-r--r--src/corelib/tools/qharfbuzz_p.h76
-rw-r--r--src/corelib/tools/qhash.cpp20
-rw-r--r--src/corelib/tools/qhash.h23
-rw-r--r--src/corelib/tools/qiterator.h4
-rw-r--r--src/corelib/tools/qline.h4
-rw-r--r--src/corelib/tools/qlinkedlist.h4
-rw-r--r--src/corelib/tools/qlist.h4
-rw-r--r--src/corelib/tools/qlocale.cpp306
-rw-r--r--src/corelib/tools/qlocale.h139
-rw-r--r--src/corelib/tools/qlocale.qdoc149
-rw-r--r--src/corelib/tools/qlocale_data_p.h751
-rw-r--r--src/corelib/tools/qlocale_mac.mm2
-rw-r--r--src/corelib/tools/qlocale_p.h6
-rw-r--r--src/corelib/tools/qmap.cpp20
-rw-r--r--src/corelib/tools/qmap.h21
-rw-r--r--src/corelib/tools/qmargins.cpp234
-rw-r--r--src/corelib/tools/qmargins.h133
-rw-r--r--src/corelib/tools/qmessageauthenticationcode.cpp283
-rw-r--r--src/corelib/tools/qmessageauthenticationcode.h80
-rw-r--r--src/corelib/tools/qpair.h4
-rw-r--r--src/corelib/tools/qpodlist_p.h4
-rw-r--r--src/corelib/tools/qpoint.cpp18
-rw-r--r--src/corelib/tools/qpoint.h10
-rw-r--r--src/corelib/tools/qqueue.h4
-rw-r--r--src/corelib/tools/qrect.h10
-rw-r--r--src/corelib/tools/qrefcount.h4
-rw-r--r--src/corelib/tools/qregexp.h4
-rw-r--r--src/corelib/tools/qregularexpression.cpp149
-rw-r--r--src/corelib/tools/qregularexpression.h16
-rw-r--r--src/corelib/tools/qscopedpointer.h3
-rw-r--r--src/corelib/tools/qscopedpointer_p.h2
-rw-r--r--src/corelib/tools/qscopedvaluerollback.h2
-rw-r--r--src/corelib/tools/qset.h15
-rw-r--r--src/corelib/tools/qset.qdoc10
-rw-r--r--src/corelib/tools/qshareddata.h4
-rw-r--r--src/corelib/tools/qsharedpointer.cpp86
-rw-r--r--src/corelib/tools/qsharedpointer.h7
-rw-r--r--src/corelib/tools/qsharedpointer_impl.h38
-rw-r--r--src/corelib/tools/qsimd_p.h4
-rw-r--r--src/corelib/tools/qsize.h4
-rw-r--r--src/corelib/tools/qstack.h4
-rw-r--r--src/corelib/tools/qstring.cpp418
-rw-r--r--src/corelib/tools/qstring.h34
-rw-r--r--src/corelib/tools/qstringbuilder.h4
-rw-r--r--src/corelib/tools/qstringlist.cpp12
-rw-r--r--src/corelib/tools/qstringlist.h16
-rw-r--r--src/corelib/tools/qstringmatcher.h4
-rw-r--r--src/corelib/tools/qtextboundaryfinder.cpp11
-rw-r--r--src/corelib/tools/qtextboundaryfinder.h4
-rw-r--r--src/corelib/tools/qtimeline.h4
-rw-r--r--src/corelib/tools/qunicodetables.cpp11948
-rw-r--r--src/corelib/tools/qunicodetables_p.h113
-rw-r--r--src/corelib/tools/qunicodetools.cpp7
-rw-r--r--src/corelib/tools/qvarlengtharray.h9
-rw-r--r--src/corelib/tools/qvarlengtharray.qdoc20
-rw-r--r--src/corelib/tools/qvector.h4
-rw-r--r--src/corelib/tools/tools.pri5
-rw-r--r--src/corelib/xml/qxmlstream.h4
304 files changed, 23502 insertions, 13928 deletions
diff --git a/src/corelib/Qt5Config.cmake.in b/src/corelib/Qt5Config.cmake.in
new file mode 100644
index 0000000000..408dd64496
--- /dev/null
+++ b/src/corelib/Qt5Config.cmake.in
@@ -0,0 +1,43 @@
+
+if (CMAKE_VERSION VERSION_LESS 2.8.9)
+ message(FATAL_ERROR \"Qt5 requires at least CMake version 2.8.9\")
+endif()
+
+if (NOT Qt5_FIND_COMPONENTS)
+ set(Qt5_NOT_FOUND_MESSAGE \"The Qt5 package requires at least one component\")
+ set(Qt5_FOUND False)
+ return()
+endif()
+
+set(_Qt5_FIND_PARTS_REQUIRED)
+if (Qt5_FIND_REQUIRED)
+ set(_Qt5_FIND_PARTS_REQUIRED REQUIRED)
+endif()
+set(_Qt5_FIND_PARTS_QUIET)
+if (Qt5_FIND_QUIETLY)
+ set(_Qt5_FIND_PARTS_QUIET QUIET)
+endif()
+
+get_filename_component(_qt5_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
+
+set(_Qt5_NOTFOUND_MESSAGE)
+
+foreach(module ${Qt5_FIND_COMPONENTS})
+ find_package(Qt5${module}
+ ${_Qt5_FIND_PARTS_QUIET}
+ ${_Qt5_FIND_PARTS_REQUIRED}
+ PATHS \"${_qt5_install_prefix}\" NO_DEFAULT_PATH
+ )
+ if (NOT Qt5${module}_FOUND)
+ if (Qt5_FIND_REQUIRED_${module})
+ set(_Qt5_NOTFOUND_MESSAGE \"${_Qt5_NOTFOUND_MESSAGE}Failed to find Qt5 component \\\"${module}\\\" config file at \\\"${_qt5_install_prefix}/lib/cmake/Qt5${module}/Qt5${module}Config.cmake\\\"\\n\")
+ elseif(NOT Qt5_FIND_QUIETLY)
+ message(WARNING \"Failed to find Qt5 component \\\"${module}\\\" config file at \\\"${_qt5_install_prefix}/lib/cmake/Qt5${module}/Qt5${module}Config.cmake\\\"\")
+ endif()
+ endif()
+endforeach()
+
+if (_Qt5_NOTFOUND_MESSAGE)
+ set(Qt5_NOT_FOUND_MESSAGE \"${_Qt5_NOTFOUND_MESSAGE}\")
+ set(Qt5_FOUND False)
+endif()
diff --git a/src/corelib/animation/qabstractanimation.h b/src/corelib/animation/qabstractanimation.h
index e1884aa533..f1aa6c0d78 100644
--- a/src/corelib/animation/qabstractanimation.h
+++ b/src/corelib/animation/qabstractanimation.h
@@ -44,8 +44,6 @@
#include <QtCore/qobject.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -177,6 +175,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QABSTRACTANIMATION_H
diff --git a/src/corelib/animation/qanimationgroup.h b/src/corelib/animation/qanimationgroup.h
index 987efa0f94..cf32f844d3 100644
--- a/src/corelib/animation/qanimationgroup.h
+++ b/src/corelib/animation/qanimationgroup.h
@@ -44,8 +44,6 @@
#include <QtCore/qabstractanimation.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -82,6 +80,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif //QANIMATIONGROUP_H
diff --git a/src/corelib/animation/qparallelanimationgroup.h b/src/corelib/animation/qparallelanimationgroup.h
index ad9c0ccae7..31810cfca2 100644
--- a/src/corelib/animation/qparallelanimationgroup.h
+++ b/src/corelib/animation/qparallelanimationgroup.h
@@ -44,8 +44,6 @@
#include <QtCore/qanimationgroup.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -80,6 +78,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QPARALLELANIMATIONGROUP
diff --git a/src/corelib/animation/qpauseanimation.h b/src/corelib/animation/qpauseanimation.h
index 49abad4e5f..5c770015ef 100644
--- a/src/corelib/animation/qpauseanimation.h
+++ b/src/corelib/animation/qpauseanimation.h
@@ -44,8 +44,6 @@
#include <QtCore/qanimationgroup.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -78,6 +76,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QPAUSEANIMATION_H
diff --git a/src/corelib/animation/qpropertyanimation.h b/src/corelib/animation/qpropertyanimation.h
index 7b53eb3d96..f6b92cb515 100644
--- a/src/corelib/animation/qpropertyanimation.h
+++ b/src/corelib/animation/qpropertyanimation.h
@@ -44,8 +44,6 @@
#include <QtCore/qvariantanimation.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -83,6 +81,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QPROPERTYANIMATION_H
diff --git a/src/corelib/animation/qsequentialanimationgroup.h b/src/corelib/animation/qsequentialanimationgroup.h
index 9070720669..51b4227599 100644
--- a/src/corelib/animation/qsequentialanimationgroup.h
+++ b/src/corelib/animation/qsequentialanimationgroup.h
@@ -44,8 +44,6 @@
#include <QtCore/qanimationgroup.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -90,6 +88,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif //QSEQUENTIALANIMATIONGROUP_H
diff --git a/src/corelib/animation/qvariantanimation.h b/src/corelib/animation/qvariantanimation.h
index b5ebbd235a..83018c30ae 100644
--- a/src/corelib/animation/qvariantanimation.h
+++ b/src/corelib/animation/qvariantanimation.h
@@ -48,8 +48,6 @@
#include <QtCore/qvariant.h>
#include <QtCore/qpair.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -124,6 +122,4 @@ void qRegisterAnimationInterpolator(QVariant (*func)(const T &from, const T &to,
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif //QVARIANTANIMATION_H
diff --git a/src/corelib/arch/qatomic_alpha.h b/src/corelib/arch/qatomic_alpha.h
index b842859336..71cb112d47 100644
--- a/src/corelib/arch/qatomic_alpha.h
+++ b/src/corelib/arch/qatomic_alpha.h
@@ -44,10 +44,17 @@
#include <QtCore/qoldbasicatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
+#if 0
+// silence syncqt warnings
+QT_END_NAMESPACE
+QT_END_HEADER
+
+#pragma qt_sync_skip_header_check
+#pragma qt_sync_stop_processing
+#endif
+
#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE
inline bool QBasicAtomicInt::isReferenceCountingNative()
@@ -517,6 +524,4 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueTo
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_ALPHA_H
diff --git a/src/corelib/arch/qatomic_armv5.h b/src/corelib/arch/qatomic_armv5.h
index cdb9c8f979..e0a50b3c24 100644
--- a/src/corelib/arch/qatomic_armv5.h
+++ b/src/corelib/arch/qatomic_armv5.h
@@ -45,15 +45,12 @@
#include <QtCore/qgenericatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
#if 0
// silence syncqt warnings
QT_END_NAMESPACE
-QT_END_HEADER
-
+#pragma qt_sync_skip_header_check
#pragma qt_sync_stop_processing
#endif
@@ -167,12 +164,20 @@ __asm T QBasicAtomicOps<4>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL
template<> template <typename T> inline
T QBasicAtomicOps<4>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW
{
+#if defined(__thumb__)
+ register T originalValue;
+ do {
+ originalValue = _q_value;
+ } while (_q_cmpxchg(originalValue, newValue, &_q_value) != 0);
+ return originalValue;
+#else
T originalValue;
asm volatile("swp %0,%2,[%3]"
: "=&r"(originalValue), "=m" (_q_value)
: "r"(newValue), "r"(&_q_value)
: "cc", "memory");
return originalValue;
+#endif
}
#endif // Q_CC_RVCT
@@ -190,6 +195,4 @@ T QBasicAtomicOps<4>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveTy
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_ARMV5_H
diff --git a/src/corelib/arch/qatomic_armv6.h b/src/corelib/arch/qatomic_armv6.h
index 38ab1983d6..7f5939e391 100644
--- a/src/corelib/arch/qatomic_armv6.h
+++ b/src/corelib/arch/qatomic_armv6.h
@@ -45,15 +45,12 @@
#include <QtCore/qgenericatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
#if 0
// silence syncqt warnings
QT_END_NAMESPACE
-QT_END_HEADER
-
+#pragma qt_sync_skip_header_check
#pragma qt_sync_stop_processing
#endif
@@ -729,6 +726,4 @@ void QBasicAtomicOps<size>::orderedMemoryFence(const T &) Q_DECL_NOTHROW
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_ARMV6_H
diff --git a/src/corelib/arch/qatomic_armv7.h b/src/corelib/arch/qatomic_armv7.h
index fc5dbc9175..1929ae0ab3 100644
--- a/src/corelib/arch/qatomic_armv7.h
+++ b/src/corelib/arch/qatomic_armv7.h
@@ -54,11 +54,12 @@
#if 0
// silence syncqt warnings
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
QT_END_NAMESPACE
-QT_END_HEADER
+
+#pragma qt_sync_skip_header_check
+#pragma qt_sync_stop_processing
#endif
#endif // QATOMIC_ARMV7_H
diff --git a/src/corelib/arch/qatomic_bfin.h b/src/corelib/arch/qatomic_bfin.h
index 24c9ea77e1..79519308a4 100644
--- a/src/corelib/arch/qatomic_bfin.h
+++ b/src/corelib/arch/qatomic_bfin.h
@@ -44,10 +44,17 @@
#include <QtCore/qoldbasicatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
+#if 0
+// silence syncqt warnings
+QT_END_NAMESPACE
+QT_END_HEADER
+
+#pragma qt_sync_skip_header_check
+#pragma qt_sync_stop_processing
+#endif
+
#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_NOT_NATIVE
inline bool QBasicAtomicInt::isReferenceCountingNative()
@@ -340,6 +347,4 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueTo
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_BFIN_H
diff --git a/src/corelib/arch/qatomic_bootstrap.h b/src/corelib/arch/qatomic_bootstrap.h
index 5b2a2f86fd..160e0abdf3 100644
--- a/src/corelib/arch/qatomic_bootstrap.h
+++ b/src/corelib/arch/qatomic_bootstrap.h
@@ -45,15 +45,12 @@
#include <QtCore/qgenericatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
#if 0
// silence syncqt warnings
QT_END_NAMESPACE
-QT_END_HEADER
-
+#pragma qt_sync_skip_header_check
#pragma qt_sync_stop_processing
#endif
@@ -98,6 +95,4 @@ template <typename T> struct QAtomicOps: QGenericAtomicOps<QAtomicOps<T> >
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_BOOTSTRAP_H
diff --git a/src/corelib/arch/qatomic_cxx11.h b/src/corelib/arch/qatomic_cxx11.h
index f7a7ba4295..3119edaf45 100644
--- a/src/corelib/arch/qatomic_cxx11.h
+++ b/src/corelib/arch/qatomic_cxx11.h
@@ -45,14 +45,12 @@
#include <QtCore/qgenericatomic.h>
#include <atomic>
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
#if 0
// silence syncqt warnings
QT_END_NAMESPACE
-QT_END_HEADER
-
+#pragma qt_sync_skip_header_check
#pragma qt_sync_stop_processing
#endif
@@ -247,6 +245,5 @@ template <typename T> struct QAtomicOps
#endif
QT_END_NAMESPACE
-QT_END_HEADER
#endif // QATOMIC_CXX0X_H
diff --git a/src/corelib/arch/qatomic_gcc.h b/src/corelib/arch/qatomic_gcc.h
index 0940ed082f..bd296053e5 100644
--- a/src/corelib/arch/qatomic_gcc.h
+++ b/src/corelib/arch/qatomic_gcc.h
@@ -44,14 +44,12 @@
#include <QtCore/qgenericatomic.h>
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
#if 0
// silence syncqt warnings
QT_END_NAMESPACE
-QT_END_HEADER
-
+#pragma qt_sync_skip_header_check
#pragma qt_sync_stop_processing
#endif
@@ -132,6 +130,4 @@ template <typename T> struct QAtomicOps: QGenericAtomicOps<QAtomicOps<T> >
};
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_GCC_H
diff --git a/src/corelib/arch/qatomic_ia64.h b/src/corelib/arch/qatomic_ia64.h
index 1a5259aa09..d4b187ffea 100644
--- a/src/corelib/arch/qatomic_ia64.h
+++ b/src/corelib/arch/qatomic_ia64.h
@@ -45,15 +45,12 @@
#include <QtCore/qgenericatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
#if 0
// silence syncqt warnings
QT_END_NAMESPACE
-QT_END_HEADER
-
+#pragma qt_sync_skip_header_check
#pragma qt_sync_stop_processing
#endif
@@ -1089,6 +1086,4 @@ T QBasicAtomicOps<size>::fetchAndAddOrdered(T &_q_value, typename QAtomicAdditiv
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_IA64_H
diff --git a/src/corelib/arch/qatomic_integrity.h b/src/corelib/arch/qatomic_integrity.h
index 50654e6713..f8cfc8ce5b 100644
--- a/src/corelib/arch/qatomic_integrity.h
+++ b/src/corelib/arch/qatomic_integrity.h
@@ -45,10 +45,17 @@
#include <QtCore/qoldbasicatomic.h>
#include <INTEGRITY.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
+#if 0
+// silence syncqt warnings
+QT_END_NAMESPACE
+QT_END_HEADER
+
+#pragma qt_sync_skip_header_check
+#pragma qt_sync_stop_processing
+#endif
+
#define qt_i2addr(a) reinterpret_cast<Address *>(const_cast<int *>(a))
#define qt_p2addr(a) reinterpret_cast<Address *>(const_cast<void *>(a))
#define qt_addr(a) reinterpret_cast<Address>(a)
@@ -284,7 +291,5 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueTo
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_INTEGRITY_H
diff --git a/src/corelib/arch/qatomic_mips.h b/src/corelib/arch/qatomic_mips.h
index 98ac928184..7716750332 100644
--- a/src/corelib/arch/qatomic_mips.h
+++ b/src/corelib/arch/qatomic_mips.h
@@ -45,15 +45,12 @@
#include <QtCore/qgenericatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
#if 0
// silence syncqt warnings
QT_END_NAMESPACE
-QT_END_HEADER
-
+#pragma qt_sync_skip_header_check
#pragma qt_sync_stop_processing
#endif
@@ -362,6 +359,4 @@ T QBasicAtomicOps<8>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveTy
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_MIPS_H
diff --git a/src/corelib/arch/qatomic_msvc.h b/src/corelib/arch/qatomic_msvc.h
index 58b2f30bb7..4f91e3d9da 100644
--- a/src/corelib/arch/qatomic_msvc.h
+++ b/src/corelib/arch/qatomic_msvc.h
@@ -214,14 +214,12 @@ extern "C" {
////////////////////////////////////////////////////////////////////////////////////////////////////
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
#if 0
// silence syncqt warnings
QT_END_NAMESPACE
-QT_END_HEADER
-
+#pragma qt_sync_skip_header_check
#pragma qt_sync_stop_processing
#endif
@@ -383,6 +381,4 @@ inline T *QAtomicOps<T *>::fetchAndAddRelaxed(T *&_q_value, qptrdiff valueToAdd)
#undef QT_INTERLOCKED_EXCHANGE_ADD_POINTER
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_MSVC_H
diff --git a/src/corelib/arch/qatomic_power.h b/src/corelib/arch/qatomic_power.h
index 5e4de3f9fd..ad1c619d56 100644
--- a/src/corelib/arch/qatomic_power.h
+++ b/src/corelib/arch/qatomic_power.h
@@ -44,10 +44,17 @@
#include <QtCore/qoldbasicatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
+#if 0
+// silence syncqt warnings
+QT_END_NAMESPACE
+QT_END_HEADER
+
+#pragma qt_sync_skip_header_check
+#pragma qt_sync_stop_processing
+#endif
+
#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE
inline bool QBasicAtomicInt::isReferenceCountingNative()
@@ -511,6 +518,4 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueTo
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_POWER_H
diff --git a/src/corelib/arch/qatomic_s390.h b/src/corelib/arch/qatomic_s390.h
index c24c243c03..0469f44e5f 100644
--- a/src/corelib/arch/qatomic_s390.h
+++ b/src/corelib/arch/qatomic_s390.h
@@ -44,10 +44,17 @@
#include <QtCore/qoldbasicatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
+#if 0
+// silence syncqt warnings
+QT_END_NAMESPACE
+QT_END_HEADER
+
+#pragma qt_sync_skip_header_check
+#pragma qt_sync_stop_processing
+#endif
+
#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE
inline bool QBasicAtomicInt::isReferenceCountingNative()
@@ -423,6 +430,4 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueTo
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_S390_H
diff --git a/src/corelib/arch/qatomic_sh4a.h b/src/corelib/arch/qatomic_sh4a.h
index 0fd96d1f0f..08f75e44f2 100644
--- a/src/corelib/arch/qatomic_sh4a.h
+++ b/src/corelib/arch/qatomic_sh4a.h
@@ -44,14 +44,15 @@
#include <QtCore/qoldbasicatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
QT_END_NAMESPACE
-QT_END_HEADER
+#if 0
+#pragma qt_sync_skip_header_check
+#pragma qt_sync_stop_processing
+#endif
#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE
diff --git a/src/corelib/arch/qatomic_sparc.h b/src/corelib/arch/qatomic_sparc.h
index 1bf625fbb1..8aea33ce85 100644
--- a/src/corelib/arch/qatomic_sparc.h
+++ b/src/corelib/arch/qatomic_sparc.h
@@ -44,10 +44,17 @@
#include <QtCore/qoldbasicatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
+#if 0
+// silence syncqt warnings
+QT_END_NAMESPACE
+QT_END_HEADER
+
+#pragma qt_sync_skip_header_check
+#pragma qt_sync_stop_processing
+#endif
+
#if defined(_LP64)
#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE
@@ -522,6 +529,4 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueTo
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_SPARC_H
diff --git a/src/corelib/arch/qatomic_unix.h b/src/corelib/arch/qatomic_unix.h
index 0e9c105d57..03c7d2eee8 100644
--- a/src/corelib/arch/qatomic_unix.h
+++ b/src/corelib/arch/qatomic_unix.h
@@ -44,14 +44,12 @@
#include <QtCore/qgenericatomic.h>
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
#if 0
// silence syncqt warnings
QT_END_NAMESPACE
-QT_END_HEADER
-
+#pragma qt_sync_skip_header_check
#pragma qt_sync_stop_processing
#endif
@@ -112,6 +110,4 @@ struct QAtomicOps<T *> : QGenericAtomicOps<QAtomicOps<T *> >
};
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_UNIX_H
diff --git a/src/corelib/arch/qatomic_vxworks.h b/src/corelib/arch/qatomic_vxworks.h
index a8664cf752..57e3b6a32b 100644
--- a/src/corelib/arch/qatomic_vxworks.h
+++ b/src/corelib/arch/qatomic_vxworks.h
@@ -42,8 +42,6 @@
#ifndef QATOMIC_VXWORKS_H
#define QATOMIC_VXWORKS_H
-QT_BEGIN_HEADER
-
#if defined(__ppc)
# include <QtCore/qatomic_power.h>
#else // generic implementation with taskLock()
@@ -56,14 +54,28 @@ QT_BEGIN_HEADER
# include <vxWorksCommon.h>
# include <taskLib.h>
#else
+#if defined(_WRS_KERNEL)
extern "C" int taskLock();
extern "C" int taskUnlock();
+#else
+inline int taskLock() { return 0; }
+inline int taskUnlock() { return 0; }
+#endif
#endif
QT_BEGIN_NAMESPACE
+#if 0
+// silence syncqt warnings
+QT_END_NAMESPACE
+QT_END_HEADER
+
+#pragma qt_sync_skip_header_check
+#pragma qt_sync_stop_processing
+#endif
+
#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_NOT_NATIVE
inline bool QBasicAtomicInt::isReferenceCountingNative()
@@ -315,6 +327,4 @@ QT_END_NAMESPACE
#endif // generic implementation with taskLock()
-QT_END_HEADER
-
#endif // QATOMIC_VXWORKS_H
diff --git a/src/corelib/arch/qatomic_x86.h b/src/corelib/arch/qatomic_x86.h
index 077cfd1336..f8180ad9d6 100644
--- a/src/corelib/arch/qatomic_x86.h
+++ b/src/corelib/arch/qatomic_x86.h
@@ -45,15 +45,12 @@
#include <QtCore/qgenericatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
#if 0
// silence syncqt warnings
QT_END_NAMESPACE
-QT_END_HEADER
-
+#pragma qt_sync_skip_header_check
#pragma qt_sync_stop_processing
#endif
@@ -423,6 +420,4 @@ template <> struct QBasicAtomicOps<8>: QGenericAtomicOps<QBasicAtomicOps<8> >
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_X86_H
diff --git a/src/corelib/codecs/qicucodec.cpp b/src/corelib/codecs/qicucodec.cpp
index 000f6872b5..9afae8c0ee 100644
--- a/src/corelib/codecs/qicucodec.cpp
+++ b/src/corelib/codecs/qicucodec.cpp
@@ -457,7 +457,8 @@ QTextCodec *QIcuCodec::codecForNameUnlocked(const char *name)
if (!qstrcmp(name, "windows-874-2000")
|| !qstrcmp(name, "windows-874")
|| !qstrcmp(name, "MS874")
- || !qstrcmp(name, "x-windows-874"))
+ || !qstrcmp(name, "x-windows-874")
+ || !qstrcmp(name, "ISO 8859-11"))
name = "TIS-620";
UErrorCode error = U_ZERO_ERROR;
diff --git a/src/corelib/codecs/qtextcodec.cpp b/src/corelib/codecs/qtextcodec.cpp
index 0e671518ef..1a5c9f6766 100644
--- a/src/corelib/codecs/qtextcodec.cpp
+++ b/src/corelib/codecs/qtextcodec.cpp
@@ -89,7 +89,7 @@
#include <stdlib.h>
#include <ctype.h>
#include <locale.h>
-#if defined (_XOPEN_UNIX) && !defined(Q_OS_QNX) && !defined(Q_OS_OSF) && !defined(Q_OS_LINUX_ANDROID)
+#if defined (_XOPEN_UNIX) && !defined(Q_OS_QNX) && !defined(Q_OS_OSF) && !defined(Q_OS_ANDROID)
# include <langinfo.h>
#endif
@@ -1043,28 +1043,30 @@ QString QTextDecoder::toUnicode(const QByteArray &ba)
QTextCodec *QTextCodec::codecForHtml(const QByteArray &ba, QTextCodec *defaultCodec)
{
// determine charset
- int pos;
- QTextCodec *c = 0;
-
- c = QTextCodec::codecForUtfText(ba, c);
+ QTextCodec *c = QTextCodec::codecForUtfText(ba, 0);
if (!c) {
QByteArray header = ba.left(512).toLower();
- if ((pos = header.indexOf("http-equiv=")) != -1) {
- if ((pos = header.lastIndexOf("meta ", pos)) != -1) {
- pos = header.indexOf("charset=", pos) + int(strlen("charset="));
- if (pos != -1) {
- int pos2 = header.indexOf('\"', pos+1);
- QByteArray cs = header.mid(pos, pos2-pos);
- // qDebug("found charset: %s", cs.data());
- c = QTextCodec::codecForName(cs);
+ int pos = header.indexOf("meta ");
+ if (pos != -1) {
+ pos = header.indexOf("charset=", pos);
+ if (pos != -1) {
+ pos += qstrlen("charset=");
+
+ int pos2 = pos;
+ // The attribute can be closed with either """, "'", ">" or "/",
+ // none of which are valid charset characters.
+ while (++pos2 < header.size()) {
+ char ch = header.at(pos2);
+ if (ch == '\"' || ch == '\'' || ch == '>') {
+ c = QTextCodec::codecForName(header.mid(pos, pos2 - pos));
+ return c ? c : defaultCodec;
+ }
}
}
}
}
- if (!c)
- c = defaultCodec;
- return c;
+ return defaultCodec;
}
/*!
diff --git a/src/corelib/codecs/qtextcodec.h b/src/corelib/codecs/qtextcodec.h
index ac0bc77ea5..35ff83a27a 100644
--- a/src/corelib/codecs/qtextcodec.h
+++ b/src/corelib/codecs/qtextcodec.h
@@ -45,8 +45,6 @@
#include <QtCore/qstring.h>
#include <QtCore/qlist.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -166,6 +164,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QTEXTCODEC_H
diff --git a/src/corelib/codecs/qtextcodec_p.h b/src/corelib/codecs/qtextcodec_p.h
index 18629f4bf3..0fec1e80c7 100644
--- a/src/corelib/codecs/qtextcodec_p.h
+++ b/src/corelib/codecs/qtextcodec_p.h
@@ -60,7 +60,7 @@ QT_BEGIN_NAMESPACE
#ifndef QT_NO_TEXTCODEC
-#if defined(Q_OS_MAC) || defined(Q_OS_IOS) || defined(Q_OS_LINUX_ANDROID) || defined(Q_OS_QNX)
+#if defined(Q_OS_MAC) || defined(Q_OS_IOS) || defined(Q_OS_ANDROID) || defined(Q_OS_QNX)
#define QT_LOCALE_IS_UTF8
#endif
diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro
index 4462203a11..b1f1a60b6c 100644
--- a/src/corelib/corelib.pro
+++ b/src/corelib/corelib.pro
@@ -16,6 +16,12 @@ win32-g++*:QMAKE_CXXFLAGS_CXX11 = -std=gnu++0x
QMAKE_DOCS = $$PWD/doc/qtcore.qdocconf
+ANDROID_JAR_DEPENDENCIES = \
+ jar/QtAndroid.jar
+ANDROID_LIB_DEPENDENCIES = \
+ plugins/platforms/android/libqtforandroid.so \
+ libs/libgnustl_shared.so
+
load(qt_module)
include(animation/animation.pri)
@@ -63,10 +69,16 @@ ctest_macros_file.input = $$PWD/Qt5CTestMacros.cmake
ctest_macros_file.output = $$DESTDIR/cmake/Qt5Core/Qt5CTestMacros.cmake
ctest_macros_file.CONFIG = verbatim
-QMAKE_SUBSTITUTES += ctest_macros_file
+cmake_umbrella_config_file.input = $$PWD/Qt5Config.cmake.in
+cmake_umbrella_config_file.output = $$DESTDIR/cmake/Qt5/Qt5Config.cmake
+
+cmake_qt5_umbrella_module_files.files = $$cmake_umbrella_config_file.output
+cmake_qt5_umbrella_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5
+
+QMAKE_SUBSTITUTES += ctest_macros_file cmake_umbrella_config_file
ctest_qt5_module_files.files += $$ctest_macros_file.output
ctest_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5Core
-INSTALLS += ctest_qt5_module_files
+INSTALLS += ctest_qt5_module_files cmake_qt5_umbrella_module_files
diff --git a/src/corelib/doc/snippets/code/doc_src_properties.cpp b/src/corelib/doc/snippets/code/doc_src_properties.cpp
index 9a25918d47..7a70200cce 100644
--- a/src/corelib/doc/snippets/code/doc_src_properties.cpp
+++ b/src/corelib/doc/snippets/code/doc_src_properties.cpp
@@ -40,8 +40,8 @@
//! [0]
Q_PROPERTY(type name
- READ getFunction
- [WRITE setFunction]
+ (READ getFunction [WRITE setFunction] |
+ MEMBER memberName [(READ getFunction | WRITE setFunction)])
[RESET resetFunction]
[NOTIFY notifySignal]
[REVISION int]
@@ -130,3 +130,20 @@ object->setProperty("priority", "VeryHigh");
//! [7]
Q_CLASSINFO("Version", "3.0.0")
//! [7]
+
+//! [8]
+ Q_PROPERTY(QColor color MEMBER m_color NOTIFY colorChanged)
+ Q_PROPERTY(qreal spacing MEMBER m_spacing NOTIFY spacingChanged)
+ Q_PROPERTY(QString text MEMBER m_text NOTIFY textChanged)
+ ...
+signals:
+ void colorChanged();
+ void spacingChanged();
+ void textChanged(const QString &newText);
+
+private:
+ QColor m_color;
+ qreal m_spacing;
+ QString m_text;
+//! [8]
+
diff --git a/src/corelib/doc/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp b/src/corelib/doc/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp
index 2f81b15752..c448c75206 100644
--- a/src/corelib/doc/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp
+++ b/src/corelib/doc/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp
@@ -97,3 +97,37 @@ beginResetModel();
myData.clear();
endResetModel();
//! [11]
+
+//! [12]
+class CustomDataProxy : public QSortFilterProxyModel
+{
+ Q_OBJECT
+public:
+ CustomDataProxy(QObject *parent)
+ : QSortFilterProxyModel(parent)
+ {
+ }
+
+ ...
+
+ QVariant data(const QModelIndex &index, int role)
+ {
+ if (role != Qt::BackgroundRole)
+ return QSortFilterProxyModel::data(index, role);
+
+ if (m_customData.contains(index.row()))
+ return m_customData.value(index.row());
+ return QSortFilterProxyModel::data(index, role);
+ }
+
+private slots:
+ void resetInternalData()
+ {
+ m_customData.clear();
+ }
+
+private:
+ QHash<int, QVariant> m_customData;
+};
+//! [12]
+
diff --git a/src/corelib/doc/snippets/code/src_corelib_kernel_qcoreapplication.cpp b/src/corelib/doc/snippets/code/src_corelib_kernel_qcoreapplication.cpp
index cbb5a9db5d..c349a6dbba 100644
--- a/src/corelib/doc/snippets/code/src_corelib_kernel_qcoreapplication.cpp
+++ b/src/corelib/doc/snippets/code/src_corelib_kernel_qcoreapplication.cpp
@@ -57,7 +57,14 @@ foreach (const QString &path, app.libraryPaths())
//! [3]
+// Called once QCoreApplication exists
+static void preRoutineMyDebugTool()
+{
+ MyDebugTool* tool = new MyDebugTool(QCoreApplication::instance());
+ QCoreApplication::instance()->installEventFilter(tool);
+}
+Q_COREAPP_STARTUP_FUNCTION(preRoutineMyDebugTool)
//! [3]
diff --git a/src/corelib/doc/snippets/code/src_corelib_kernel_qmath.cpp b/src/corelib/doc/snippets/code/src_corelib_kernel_qmath.cpp
new file mode 100644
index 0000000000..71a2a09a7d
--- /dev/null
+++ b/src/corelib/doc/snippets/code/src_corelib_kernel_qmath.cpp
@@ -0,0 +1,63 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Laszlo Papp <lpapp@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+//! [0]
+float degrees = 180.0f
+float radians = qDegreesToRadians(degrees)
+//! [0]
+
+
+//! [1]
+double degrees = 180.0
+double radians = qDegreesToRadians(degrees)
+//! [1]
+
+
+//! [2]
+float radians = float(M_PI)
+float degrees = qRadiansToDegrees(radians)
+//! [2]
+
+
+//! [3]
+double radians = M_PI
+double degrees = qRadiansToDegrees(radians)
+//! [3]
+
diff --git a/src/corelib/doc/snippets/code/src_corelib_tools_qpoint.cpp b/src/corelib/doc/snippets/code/src_corelib_tools_qpoint.cpp
index a83fd9a71f..8c6751cbaa 100644
--- a/src/corelib/doc/snippets/code/src_corelib_tools_qpoint.cpp
+++ b/src/corelib/doc/snippets/code/src_corelib_tools_qpoint.cpp
@@ -79,6 +79,13 @@ p *= 2.5; // p becomes (-3, 10)
//! [5]
+//! [16]
+QPoint p( 3, 7);
+QPoint q(-1, 4);
+int lengthSquared = QPoint::dotProduct(p, q); // lengthSquared becomes 25
+//! [16]
+
+
//! [6]
QPoint p(-3, 10);
p /= 2.5; // p becomes (-1, 4)
@@ -147,3 +154,10 @@ p *= 2.5; // p becomes (-2.75, 10.25)
QPointF p(-2.75, 10.25);
p /= 2.5; // p becomes (-1.1, 4.1)
//! [15]
+
+
+//! [17]
+QPointF p( 3.1, 7.1);
+QPointF q(-1.0, 4.1);
+int lengthSquared = QPointF::dotProduct(p, q); // lengthSquared becomes 26.01
+//! [17]
diff --git a/src/corelib/doc/snippets/qmessageauthenticationcode/main.cpp b/src/corelib/doc/snippets/qmessageauthenticationcode/main.cpp
new file mode 100644
index 0000000000..4441fbd9a1
--- /dev/null
+++ b/src/corelib/doc/snippets/qmessageauthenticationcode/main.cpp
@@ -0,0 +1,62 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Ruslan Nigmatullin <euroelessar@yandex.ru>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
+** of its contributors may be used to endorse or promote products derived
+** from this software without specific prior written permission.
+**
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore>
+
+int main(int argc, char *argv[])
+{
+ QCoreApplication app(argc, argv);
+
+//! [0]
+ QByteArray key = "key";
+ QByteArray message = "The quick brown fox jumps over the lazy dog";
+//! [0]
+
+//! [1]
+ QMessageAuthenticationCode code(QCryptographicHash::Sha1);
+ code.setKey(key);
+ code.addData(message);
+ code.result().toHex(); // returns "de7c9b85b8b78aa6bc8a7a36f70a90701c9db4d9"
+//! [1]
+
+//! [2]
+ QMessageAuthenticationCode::hash(message, key, QCryptographicHash::Sha1).toHex();
+//! [2]
+}
diff --git a/src/corelib/doc/src/objectmodel/properties.qdoc b/src/corelib/doc/src/objectmodel/properties.qdoc
index 66325ca6c0..37f54621a1 100644
--- a/src/corelib/doc/src/objectmodel/properties.qdoc
+++ b/src/corelib/doc/src/objectmodel/properties.qdoc
@@ -53,16 +53,22 @@
\snippet code/doc_src_properties.cpp 1
+ Here is an example showing how to export member variables as Qt
+ properties using the \c MEMBER keyword.
+ Note that a \c NOTIFY signal must be specified to allow QML property bindings.
+
+ \snippet code/doc_src_properties.cpp 8
+
A property behaves like a class data member, but it has additional
features accessible through the \l {Meta-Object System}.
\list
- \li A \c READ accessor function is required. It is for reading the
- property value. Ideally, a const function is used for this purpose,
- and it must return either the property's type or a pointer or
- reference to that type. e.g., QWidget::focus is a read-only property
- with \c READ function, QWidget::hasFocus().
+ \li A \c READ accessor function is required if no \c MEMBER variable was
+ specified. It is for reading the property value. Ideally, a const function
+ is used for this purpose, and it must return either the property's type or a
+ pointer or reference to that type. e.g., QWidget::focus is a read-only
+ property with \c READ function, QWidget::hasFocus().
\li A \c WRITE accessor function is optional. It is for setting the
property value. It must return void and must take exactly one
@@ -71,6 +77,13 @@
QWidget::setEnabled(). Read-only properties do not need \c WRITE
functions. e.g., QWidget::focus has no \c WRITE function.
+ \li A \c MEMBER variable association is required if no \c READ accessor
+ function is specified. This makes the given member variable
+ readable and writable without the need of creating \c READ and \c WRITE accessor
+ functions. It's still possible to use \c READ or \c WRITE accessor functions in
+ addition to \c MEMBER variable association (but not both), if you need to
+ control the variable access.
+
\li A \c RESET function is optional. It is for setting the property
back to its context specific default value. e.g., QWidget::cursor
has the typical \c READ and \c WRITE functions, QWidget::cursor()
@@ -82,6 +95,9 @@
\li A \c NOTIFY signal is optional. If defined, it should specify one
existing signal in that class that is emitted whenever the value
of the property changes.
+ \c NOTIFY signals for \c MEMBER variables must take zero or one parameter,
+ which must be of the same type as the property. The parameter will take the
+ new value of the property.
\li A \c REVISION number is optional. If included, it defines
the property and its notifier signal to be used in a particular
diff --git a/src/corelib/global/global.pri b/src/corelib/global/global.pri
index 01756c8419..6ac32cd35d 100644
--- a/src/corelib/global/global.pri
+++ b/src/corelib/global/global.pri
@@ -9,6 +9,7 @@ HEADERS += \
global/qendian.h \
global/qnumeric_p.h \
global/qnumeric.h \
+ global/qglobalstatic.h \
global/qlibraryinfo.h \
global/qlogging.h \
global/qtypeinfo.h \
@@ -19,6 +20,7 @@ HEADERS += \
SOURCES += \
global/qglobal.cpp \
+ global/qglobalstatic.cpp \
global/qlibraryinfo.cpp \
global/qmalloc.cpp \
global/qnumeric.cpp \
diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h
index 15229e03a0..e547d58c2e 100644
--- a/src/corelib/global/qcompilerdetection.h
+++ b/src/corelib/global/qcompilerdetection.h
@@ -157,6 +157,10 @@
# define Q_CC_CLANG
# define Q_ASSUME_IMPL(expr) if (expr){} else __builtin_unreachable()
# define Q_UNREACHABLE_IMPL() __builtin_unreachable()
+# if !defined(__has_extension)
+# /* Compatibility with older Clang versions */
+# define __has_extension __has_feature
+# endif
# else
/* Plain GCC */
# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405
@@ -179,6 +183,7 @@
# define Q_TYPEOF(expr) __typeof__(expr)
# define Q_DECL_DEPRECATED __attribute__ ((__deprecated__))
# define Q_DECL_ALIGN(n) __attribute__((__aligned__(n)))
+# define Q_DECL_UNUSED __attribute__((__unused__))
# define Q_LIKELY(expr) __builtin_expect(!!(expr), true)
# define Q_UNLIKELY(expr) __builtin_expect(!!(expr), false)
# define Q_NORETURN __attribute__((__noreturn__))
@@ -816,6 +821,9 @@
#ifndef Q_DECL_HIDDEN
# define Q_DECL_HIDDEN
#endif
+#ifndef Q_DECL_UNUSED
+# define Q_DECL_UNUSED
+#endif
#ifndef Q_FUNC_INFO
# if defined(Q_OS_SOLARIS) || defined(Q_CC_XLC)
# define Q_FUNC_INFO __FILE__ "(line number unavailable)"
diff --git a/src/corelib/global/qendian.h b/src/corelib/global/qendian.h
index cdffb10d5a..c9c4d23aab 100644
--- a/src/corelib/global/qendian.h
+++ b/src/corelib/global/qendian.h
@@ -52,8 +52,6 @@
#include <byteswap.h>
#endif
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -386,6 +384,4 @@ template <> inline qint8 qbswap<qint8>(qint8 source)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QENDIAN_H
diff --git a/src/corelib/global/qfeatures.h b/src/corelib/global/qfeatures.h
index 7ae4863da3..a751f9af56 100644
--- a/src/corelib/global/qfeatures.h
+++ b/src/corelib/global/qfeatures.h
@@ -154,6 +154,9 @@
// Properties
//#define QT_NO_PROPERTIES
+// QRegularExpression
+//#define QT_NO_REGULAREXPRESSION
+
// Resize Handler
//#define QT_NO_RESIZEHANDLER
diff --git a/src/corelib/global/qfeatures.txt b/src/corelib/global/qfeatures.txt
index a97309b876..c27463897f 100644
--- a/src/corelib/global/qfeatures.txt
+++ b/src/corelib/global/qfeatures.txt
@@ -28,6 +28,13 @@ Requires:
Name: CssParser
SeeAlso: ???
+Feature: REGULAREXPRESSION
+Description: Perl-compatible regular expression APIs
+Section: Kernel
+Requires:
+Name: QRegularExpression
+SeeAlso: ???
+
Feature: CONCURRENT
Description: Provides a high-level multi-threaded APIs
Section: Kernel
diff --git a/src/corelib/global/qflags.h b/src/corelib/global/qflags.h
index 4b75383213..4722fe2282 100644
--- a/src/corelib/global/qflags.h
+++ b/src/corelib/global/qflags.h
@@ -47,8 +47,6 @@
#include <QtCore/qtypeinfo.h>
#include <QtCore/qtypetraits.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QFlag
@@ -152,6 +150,4 @@ typedef uint Flags;
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QFLAGS_H
diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp
index f0fb9c1a02..c591cc5b49 100644
--- a/src/corelib/global/qglobal.cpp
+++ b/src/corelib/global/qglobal.cpp
@@ -68,7 +68,7 @@
# endif
#endif
-#if defined(Q_OS_VXWORKS)
+#if defined(Q_OS_VXWORKS) && defined(_WRS_KERNEL)
# include <envLib.h>
#endif
@@ -2193,6 +2193,10 @@ bool qEnvironmentVariableIsSet(const char *varName) Q_DECL_NOEXCEPT
\a varName. It will create the variable if it does not exist. It
returns 0 if the variable could not be set.
+ Calling qputenv with an empty value removes the environment variable on
+ Windows, and makes it set (but empty) on Unix. Prefer using qunsetenv()
+ for fully portable behavior.
+
\note qputenv() was introduced because putenv() from the standard
C library was deprecated in VC2005 (and later versions). qputenv()
uses the replacement function in VC, and calls the standard C
@@ -2219,6 +2223,39 @@ bool qputenv(const char *varName, const QByteArray& value)
#endif
}
+/*!
+ \relates <QtGlobal>
+
+ This function deletes the variable \a varName from the environment.
+
+ Returns true on success.
+
+ \since 5.1
+
+ \sa qputenv(), qgetenv()
+*/
+bool qunsetenv(const char *varName)
+{
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ return _putenv_s(varName, "") == 0;
+#elif (defined(_POSIX_VERSION) && (_POSIX_VERSION-0) >= 200112L) || defined(Q_OS_BSD4)
+ // POSIX.1-2001 and BSD have unsetenv
+ return unsetenv(varName) == 0;
+#elif defined(Q_CC_MINGW)
+ // On mingw, putenv("var=") removes "var" from the environment
+ QByteArray buffer(varName);
+ buffer += '=';
+ return putenv(buffer.constData()) == 0;
+#else
+ // Fallback to putenv("var=") which will insert an empty var into the
+ // environment and leak it
+ QByteArray buffer(varName);
+ buffer += '=';
+ char *envVar = qstrdup(buffer.constData());
+ return putenv(envVar) == 0;
+#endif
+}
+
#if defined(Q_OS_UNIX) && !defined(QT_NO_THREAD)
# if defined(Q_OS_INTEGRITY) && defined(__GHS_VERSION_NUMBER) && (__GHS_VERSION_NUMBER < 500)
@@ -2814,8 +2851,7 @@ bool QInternal::activateCallbacks(Callback cb, void **parameters)
As a rule of thumb, \c QT_BEGIN_NAMESPACE should appear in all Qt header
and Qt source files after the last \c{#include} line and before the first
- declaration. In Qt headers using \c QT_BEGIN_HEADER, \c QT_BEGIN_NAMESPACE
- follows \c QT_BEGIN_HEADER immediately.
+ declaration.
If that rule can't be followed because, e.g., \c{#include} lines and
declarations are wildly mixed, place \c QT_BEGIN_NAMESPACE before
diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h
index 13bdc7553f..233743f3ce 100644
--- a/src/corelib/global/qglobal.h
+++ b/src/corelib/global/qglobal.h
@@ -45,11 +45,11 @@
#include <stddef.h>
-#define QT_VERSION_STR "5.0.2"
+#define QT_VERSION_STR "5.1.0"
/*
QT_VERSION is (major << 16) + (minor << 8) + patch.
*/
-#define QT_VERSION 0x050002
+#define QT_VERSION 0x050100
/*
can be used like #if (QT_VERSION >= QT_VERSION_CHECK(4, 4, 0))
*/
@@ -151,6 +151,7 @@ namespace QT_NAMESPACE {}
#endif /* __cplusplus */
+// ### Qt6: remove me.
#define QT_BEGIN_HEADER
#define QT_END_HEADER
@@ -158,7 +159,6 @@ namespace QT_NAMESPACE {}
# define QT_LARGEFILE_SUPPORT 64
#endif
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
/*
@@ -512,6 +512,16 @@ template <typename T>
Q_DECL_CONSTEXPR inline const T &qBound(const T &min, const T &val, const T &max)
{ return qMax(min, qMin(max, val)); }
+#ifdef Q_OS_DARWIN
+# define QT_MAC_PLATFORM_SDK_EQUAL_OR_ABOVE(osx, ios) \
+ (defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= osx) || \
+ (defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= ios)
+
+# define QT_MAC_DEPLOYMENT_TARGET_BELOW(osx, ios) \
+ (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && osx != __MAC_NA && __MAC_OS_X_VERSION_MIN_REQUIRED < osx) || \
+ (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && ios != __IPHONE_NA && __IPHONE_OS_VERSION_MIN_REQUIRED < ios)
+#endif
+
/*
Data stream functions are provided by many classes (defined in qdatastream.h)
*/
@@ -664,125 +674,6 @@ typedef void (*QFunctionPointer)();
# define Q_UNIMPLEMENTED() qWarning("%s:%d: %s: Unimplemented code.", __FILE__, __LINE__, Q_FUNC_INFO)
#endif
-#if defined(QT_NO_THREAD)
-
-template <typename T>
-class QGlobalStatic
-{
-public:
- T *pointer;
- inline QGlobalStatic(T *p) : pointer(p) { }
- inline ~QGlobalStatic() { pointer = 0; }
-};
-
-#define Q_GLOBAL_STATIC(TYPE, NAME) \
- static TYPE *NAME() \
- { \
- static TYPE thisVariable; \
- static QGlobalStatic<TYPE > thisGlobalStatic(&thisVariable); \
- return thisGlobalStatic.pointer; \
- }
-
-#define Q_GLOBAL_STATIC_WITH_ARGS(TYPE, NAME, ARGS) \
- static TYPE *NAME() \
- { \
- static TYPE thisVariable ARGS; \
- static QGlobalStatic<TYPE > thisGlobalStatic(&thisVariable); \
- return thisGlobalStatic.pointer; \
- }
-
-#define Q_GLOBAL_STATIC_WITH_INITIALIZER(TYPE, NAME, INITIALIZER) \
- static TYPE *NAME() \
- { \
- static TYPE thisVariable; \
- static QGlobalStatic<TYPE > thisGlobalStatic(0); \
- if (!thisGlobalStatic.pointer) { \
- TYPE *x = thisGlobalStatic.pointer = &thisVariable; \
- INITIALIZER; \
- } \
- return thisGlobalStatic.pointer; \
- }
-
-#else
-
-// forward declaration, since qatomic.h needs qglobal.h
-template <typename T> class QBasicAtomicPointer;
-
-// POD for Q_GLOBAL_STATIC
-template <typename T>
-class QGlobalStatic
-{
-public:
- QBasicAtomicPointer<T> pointer;
- bool destroyed;
-};
-
-// Created as a function-local static to delete a QGlobalStatic<T>
-template <typename T>
-class QGlobalStaticDeleter
-{
-public:
- QGlobalStatic<T> &globalStatic;
- QGlobalStaticDeleter(QGlobalStatic<T> &_globalStatic)
- : globalStatic(_globalStatic)
- { }
-
- inline ~QGlobalStaticDeleter()
- {
- delete globalStatic.pointer.load();
- globalStatic.pointer.store(0);
- globalStatic.destroyed = true;
- }
-};
-
-#define Q_GLOBAL_STATIC(TYPE, NAME) \
- static TYPE *NAME() \
- { \
- static QGlobalStatic<TYPE > thisGlobalStatic \
- = { Q_BASIC_ATOMIC_INITIALIZER(0), false }; \
- if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { \
- TYPE *x = new TYPE; \
- if (!thisGlobalStatic.pointer.testAndSetOrdered(0, x)) \
- delete x; \
- else \
- static QGlobalStaticDeleter<TYPE > cleanup(thisGlobalStatic); \
- } \
- return thisGlobalStatic.pointer.load(); \
- }
-
-#define Q_GLOBAL_STATIC_WITH_ARGS(TYPE, NAME, ARGS) \
- static TYPE *NAME() \
- { \
- static QGlobalStatic<TYPE > thisGlobalStatic \
- = { Q_BASIC_ATOMIC_INITIALIZER(0), false }; \
- if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { \
- TYPE *x = new TYPE ARGS; \
- if (!thisGlobalStatic.pointer.testAndSetOrdered(0, x)) \
- delete x; \
- else \
- static QGlobalStaticDeleter<TYPE > cleanup(thisGlobalStatic); \
- } \
- return thisGlobalStatic.pointer.load(); \
- }
-
-#define Q_GLOBAL_STATIC_WITH_INITIALIZER(TYPE, NAME, INITIALIZER) \
- static TYPE *NAME() \
- { \
- static QGlobalStatic<TYPE > thisGlobalStatic \
- = { Q_BASIC_ATOMIC_INITIALIZER(0), false }; \
- if (!thisGlobalStatic.pointer.load() && !thisGlobalStatic.destroyed) { \
- QScopedPointer<TYPE > x(new TYPE); \
- INITIALIZER; \
- if (thisGlobalStatic.pointer.testAndSetOrdered(0, x.data())) { \
- static QGlobalStaticDeleter<TYPE > cleanup(thisGlobalStatic); \
- x.take(); \
- } \
- } \
- return thisGlobalStatic.pointer.load(); \
- }
-
-#endif
-
Q_DECL_CONSTEXPR static inline bool qFuzzyCompare(double p1, double p2)
{
return (qAbs(p1 - p2) <= 0.000000000001 * qMin(qAbs(p1), qAbs(p2)));
@@ -1053,6 +944,7 @@ Q_CORE_EXPORT QString qtTrId(const char *id, int n = -1);
class QByteArray;
Q_CORE_EXPORT QByteArray qgetenv(const char *varName);
Q_CORE_EXPORT bool qputenv(const char *varName, const QByteArray& value);
+Q_CORE_EXPORT bool qunsetenv(const char *varName);
Q_CORE_EXPORT bool qEnvironmentVariableIsEmpty(const char *varName) Q_DECL_NOEXCEPT;
Q_CORE_EXPORT bool qEnvironmentVariableIsSet(const char *varName) Q_DECL_NOEXCEPT;
@@ -1087,7 +979,8 @@ template <typename T> struct QEnableIf<true, T> { typedef T Type; };
}
QT_END_NAMESPACE
-QT_END_HEADER
+// Q_GLOBAL_STATIC
+#include <QtCore/qglobalstatic.h>
// qDebug and friends
#include <QtCore/qlogging.h>
diff --git a/src/corelib/global/qglobalstatic.cpp b/src/corelib/global/qglobalstatic.cpp
new file mode 100644
index 0000000000..8474d132b4
--- /dev/null
+++ b/src/corelib/global/qglobalstatic.cpp
@@ -0,0 +1,524 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Intel Corporation.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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, Digia gives you certain additional
+** rights. These rights are described in the Digia 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.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qglobalstatic.h"
+
+/*!
+ \macro Q_GLOBAL_STATIC(Type, VariableName)
+ \since 5.1
+ \relates QGlobalStatic
+
+ Creates a global and static object of type \l QGlobalStatic, of name \a
+ VariableName and that behaves as a pointer to \a Type. The object created
+ by Q_GLOBAL_STATIC initializes itself on the first use, which means that it
+ will not increase the application or the library's load time. Additionally,
+ the object is initialized in a thread-safe manner on all platforms.
+
+ The typical use of this macro is as follows, in a global context (that is,
+ outside of any function bodies):
+
+ \code
+ Q_GLOBAL_STATIC(MyType, staticType)
+ \endcode
+
+ This macro is intended to replace global static objects that are not POD
+ (Plain Old Data, or in C++11 terms, not made of a trivial type), hence the
+ name. For example, the following C++ code creates a global static:
+
+ \code
+ static MyType staticType;
+ \endcode
+
+ Compared to Q_GLOBAL_STATIC, and assuming that \c MyType is a class or
+ struct that has a constructor, a destructor, or is otherwise non-POD, the
+ above has the following drawbacks:
+
+ \list
+ \li it requires load-time initialization of \c MyType (that is, the
+ default constructor for \c MyType is called when the library or
+ application is loaded);
+
+ \li the type will be initialized even if it is never used;
+
+ \li the order of initialization and destruction among different
+ translation units is not determined, leading to possible uses before
+ initialization or after destruction;
+
+ \li if it is found inside a function (that is, not global), it will be
+ initialized on first use, but many current compilers (as of 2013) do
+ not guarantee that the initialization will be thread-safe;
+ \endlist
+
+ The Q_GLOBAL_STATIC macro solves all of the above problems by guaranteeing
+ thread-safe initialization on first use and allowing the user to query for
+ whether the type has already been destroyed, to avoid the
+ use-after-destruction problem (see QGlobalStatic::isDestroyed()).
+
+ \section1 Constructor and destructor
+
+ For Q_GLOBAL_STATIC, the type \c Type must be publicly
+ default-constructible and publicly destructible. For
+ Q_GLOBAL_STATIC_WITH_ARGS(), there must be a public constructor that
+ matches the arguments passed.
+
+ It is not possible to use Q_GLOBAL_STATIC with types that have protected or
+ private default constructors or destructors (for Q_GLOBAL_STATIC_WITH_ARGS(),
+ a protected or private constructor matching the arguments). If the type in
+ question has those members as protected, it is possible to overcome the
+ issue by deriving from the type and creating public a constructor and
+ destructor. If the type has them as private, a friend declaration is
+ necessary before deriving.
+
+ For example, the following is enough to create \c MyType based on a
+ previously-defined \c MyOtherType which has a protected default constructor
+ and/or a protected destructor (or has them as private, but that defines \c
+ MyType as a friend).
+
+ \code
+ class MyType : public MyOtherType { };
+ Q_GLOBAL_STATIC(MyType, staticType)
+ \endcode
+
+ No body for \c MyType is required since the destructor is an implicit
+ member and so is the default constructor if no other constructors are
+ defined. For use with Q_GLOBAL_STATIC_WITH_ARGS(), however, a suitable
+ constructor body is necessary:
+
+ \code
+ class MyType : public MyOtherType
+ {
+ public:
+ MyType(int i) : MyOtherType(i) {}
+ };
+ Q_GLOBAL_STATIC_WITH_ARGS(MyType, staticType, (42))
+ \endcode
+
+ Alternatively, if the compiler supports C++11 inheriting constructors, one could write:
+
+ \code
+ class MyType : public MyOtherType
+ {
+ public:
+ using MyOtherType::MyOtherType;
+ };
+ Q_GLOBAL_STATIC_WITH_ARGS(MyType, staticType, (42))
+ \endcode
+
+ \section1 Placement
+
+ The Q_GLOBAL_STATIC macro creates a type that is necessarily static, at the
+ global scope. It is not possible to place the Q_GLOBAL_STATIC macro inside
+ a function (doing so will result in compilation errors).
+
+ More importantly, this macro should be placed in source files, never in
+ headers. Since the resulting object is has static linkage, if the macro is
+ placed in a header and included by multiple source files, the object will
+ be defined multiple times and will not cause linking errors. Instead, each
+ translation unit will refer to a different object, which could lead to
+ subtle and hard-to-track errors.
+
+ \section1 Non-recommended uses
+
+ Note that the macro is not recommended for use with types that are POD or
+ that have C++11 constexpr constructors (trivially constructible and
+ destructible). For those types, it is still recommended to use regular
+ static, whether global or function-local.
+
+ This macro will work, but it will add unnecessary overhead.
+
+ \section1 Reentrancy, thread-safety, deadlocks, and exception-safety on construction
+
+ The Q_GLOBAL_STATIC macro creates an object that initializes itself on
+ first use in a thread-safe manner: if multiple threads attempt to
+ initialize the object at the same time, only one thread will proceed to
+ initialize, while all other threads wait for completion.
+
+ If the initialization process throws an exception, the initialization is
+ deemed not complete and will be attempted again when control reaches any
+ use of the object. If there are any threads waiting for initialization, one
+ of them will be woken up to attempt to initialize.
+
+ The macro makes no guarantee about reentrancy from the same thread. If the
+ global static object is accessed directly or indirectly from inside the
+ constructor, a deadlock will surely happen.
+
+ In addition, if two Q_GLOBAL_STATIC objects are being initialized on two
+ different threads and each one's initialization sequence accesses the
+ other, a deadlock might happen. For that reason, it is recommended to keep
+ global static constructors simple or, failing that, to ensure that there's
+ no cross-dependency of uses of global static during construction.
+
+ \section1 Destruction
+
+ If the object is never used during the lifetime of the program, aside from
+ the QGlobalStatic::exists() and QGlobalStatic::isDestroyed() functions, the
+ contents of type \a Type will not be created and there will not be any
+ exit-time operation.
+
+ If the object is created, it will be destroyed at exit-time, similar to the
+ C \c atexit function. On most systems, in fact, the destructor will also be
+ called if the library or plugin is unloaded from memory before exit.
+
+ Since the destruction is meant to happen at program exit, no thread-safety
+ is provided. This includes the case of plugin or library unload. In
+ addition, since destructors are not supposed to throw exceptions, no
+ exception safety is provided either.
+
+ However, reentrancy is permitted: during destruction, it is possible to
+ access the global static object and the pointer returned will be the same
+ as it was before destruction began. After the destruction has completed,
+ accessing the global static object is not permitted, except as noted in the
+ \l QGlobalStatic API.
+
+ \omit
+ \section1 Compatibility with Qt 4 and Qt 5.0
+
+ This macro, in its current form and behavior, was introduced in Qt 5.1.
+ Prior to that version, Qt had another macro with the same name that was
+ private API. This section is not meant to document how to use
+ Q_GLOBAL_STATIC in those versions, but instead to serve as a porting guide
+ for Qt code that used those macros.
+
+ The Qt 4 Q_GLOBAL_STATIC macro differed in behavior in the following ways:
+
+ \list
+ \li the object created was not of type \l QGlobalStatic, but instead
+ it was a function that returned a pointer to \a Type; that means the
+ \l QGlobalStatic API was not present;
+
+ \li the initialization was thread-safe, but not guaranteed to be
+ unique: instead, if N threads tried to initialize the object at the
+ same time, N objects would be created on the heap and N-1 would be
+ destroyed;
+
+ \li the object was always created on the heap.
+ \endlist
+
+ \section1 Implementation details
+
+ Q_GLOBAL_STATIC is implemented by creating a QBasicAtomicInt called the \c
+ guard and a free, inline function called \c innerFunction. The guard
+ variable is initialized to value 0 (chosen so that the guard can be placed
+ in the .bss section of the binary file), which denotes that construction
+ has not yet taken place (uninitialized). The inner function is implemented
+ by the helper macro Q_GLOBAL_STATIC_INTERNAL.
+
+ Both the guard variable and the inner function are passed as template
+ parameters to QGlobalStatic, along with the type \a Type. Both should also
+ have static linkage or be placed inside an anonymous namespace, so that the
+ visibility of Q_GLOBAL_STATIC is that of a global static. To permit
+ multiple Q_GLOBAL_STATIC per translation unit, the guard variable and the
+ inner function must have unique names, which can be accomplished by
+ concatenating with \a VariableName or by placing them in a namespace that
+ has \a VariableName as part of the name. To simplify and improve
+ readability on Q_GLOBAL_STATIC_INTERNAL, we chose the namespace solution.
+ It's also required for C++98 builds, since static symbols cannot be used as
+ template parameters.
+
+ The guard variable can assume the following values:
+
+ \list
+ \li -2: object was once initialized but has been destroyed already;
+ \li -1: object was initialized and is still valid;
+ \li 0: object was not initialized yet;
+ \li +1: object is being initialized and any threads encountering this
+ value must wait for completion (not used in the current implementation).
+ \endlist
+
+ Collectively, all positive values indicate that the initialization is
+ progressing and must be waited on, whereas all negative values indicate
+ that the initialization has terminated and must not be attempted again.
+ Positive values are not used in the current implementation, but were in
+ earlier versions. They could be used again in the future.
+
+ The QGlobalStatic::exists() and QGlobalStatic::isDestroyed() functions
+ operate solely on the guard variable: the former returns true if the guard
+ is negative, whereas the latter returns true only if it is -2.
+
+ The Q_GLOBAL_STATIC_INTERNAL macro implements the actual construction and
+ destruction. There are two implementations of it: one for compilers that
+ support thread-safe initialization of function-local statics and one for
+ compilers that don't. Thread-safe initialization is required by C++11 in
+ [stmt.decl], but as of the time of this writing, only compilers based on
+ the IA-64 C++ ABI implemented it properly. The implementation requiring
+ thread-safe initialization is also used on the Qt bootstrapped tools, which
+ define QT_NO_THREAD.
+
+ The implementation requiring thread-safe initialization from the compiler
+ is the simplest: it creates the \a Type object as a function-local static
+ and returns its address. The actual object is actually inside a holder
+ structure so holder's destructor can set the guard variable to the value -2
+ (destroyed) when the type has finished destruction. Since we need to set
+ the guard \b after the destruction has finished, this code needs to be in a
+ base struct's destructor. And it only sets to -2 (destroyed) if it finds
+ the guard at -1 (initialized): this is done to ensure that the guard isn't
+ set to -2 in the event the type's constructor threw an exception. A holder
+ structure is used to avoid creating two statics, which the ABI might
+ require duplicating the thread-safe control structures for.
+
+ The other implementation is similar to Qt 4's Q_GLOBAL_STATIC, but unlike
+ that one, it uses a \l QBasicMutex to provide locking. It is also more
+ efficient memory-wise. It use a simple double-checked locking of the mutex
+ and then creates the contents on the heap. After that, it creates a
+ function-local structure called "Cleanup", whose destructor will be run at
+ program exit and will actually destroy the contents.
+
+ \endomit
+
+ \sa Q_GLOBAL_STATIC_WITH_ARGS(), QGlobalStatic
+*/
+
+/*!
+ \macro Q_GLOBAL_STATIC_WITH_ARGS(Type, VariableName, Arguments)
+ \since 5.1
+ \relates QGlobalStatic
+
+ Creates a global and static object of type \l QGlobalStatic, of name \a
+ VariableName, initialized by the arguments \a Arguments and that behaves as
+ a pointer to \a Type. The object created by Q_GLOBAL_STATIC_WITH_ARGS
+ initializes itself on the first use, which means that it will not increase
+ the application or the library's load time. Additionally, the object is
+ initialized in a thread-safe manner on all platforms.
+
+ The typical use of this macro is as follows, in a global context (that is,
+ outside of any function bodies):
+
+ \code
+ Q_GLOBAL_STATIC_WITH_ARGS(MyType, staticType, (42, "Hello", "World"))
+ \endcode
+
+ The \a Arguments macro parameter must always include the parentheses or, if
+ C++11 uniform initialization is allowed, the braces.
+
+ Aside from the actual initialization of the contents with the supplied
+ arguments, this macro behaves identically to Q_GLOBAL_STATIC(). Please
+ see that macro's documentation for more information.
+
+ \sa Q_GLOBAL_STATIC(), QGlobalStatic
+*/
+
+/*!
+ \class QGlobalStatic
+ \threadsafe
+ \inmodule QtCore
+ \since 5.1
+ \brief The QGlobalStatic class is used to implement a global static object
+
+ The QGlobalStatic class is the front-end API exported when
+ Q_GLOBAL_STATIC() is used. See the documentation for the macro for a
+ discussion on when to use it and its requirements.
+
+ Normally, you will never use this class directly, but instead you will use
+ the Q_GLOBAL_STATIC() or Q_GLOBAL_STATIC_WITH_ARGS() macros, as
+ follows:
+
+ \code
+ Q_GLOBAL_STATIC(MyType, staticType)
+ \endcode
+
+ The above example creates an object of type QGlobalStatic called \c
+ staticType. After the above declaration, the \c staticType object may be
+ used as if it were a pointer, guaranteed to be initialized exactly once. In
+ addition to the use as a pointer, the object offers two methods to
+ determine the current status of the global: exists() and isDestroyed().
+
+ \sa Q_GLOBAL_STATIC(), Q_GLOBAL_STATIC_WITH_ARGS()
+*/
+
+/*!
+ \typedef QGlobalStatic::Type
+
+ This type is equivalent to the \c Type parameter passed to the
+ Q_GLOBAL_STATIC() or Q_GLOBAL_STATIC_WITH_ARGS() macros. It is used in the
+ return types of some functions.
+*/
+
+/*!
+ \fn bool QGlobalStatic::isDestroyed() const
+
+ This function returns true if the global static object has already
+ completed destruction (that is, if the destructor for the type has already
+ returned). In specific, note that this function returns false if
+ the destruction is still in progress.
+
+ Once this function has returned true once, it will never return
+ false again until either the program is restarted or the plugin or library
+ containing the global static is unloaded and reloaded.
+
+ This function is safe to call at any point in the program execution: it
+ cannot fail and cannot cause a deadlock. Additionally, it will not cause
+ the contents to be created if they have not yet been created.
+
+ This function is useful in code that may be executed at program shutdown,
+ to determine whether the contents may still be accessed or not.
+
+ \omit
+ Due to the non-atomic nature of destruction, it's possible that
+ QGlobalStatic::isDestroyed might return false for a short time after the
+ destructor has finished. However, since the destructor is only run in an
+ environment where concurrent multithreaded access is impossible, no one can
+ see that state. (omitted because it's useless information)
+ \endomit
+
+ \sa exists()
+*/
+
+/*!
+ \fn bool QGlobalStatic::exists() const
+
+ This function returns true if the global static object has already
+ completed initialization (that is, if the constructor for the type has
+ already returned). In specific, note that this function returns false if
+ the initialization is still in progress.
+
+ Once this function has returned true once, it will never return false again
+ until either the program is restarted or the plugin or library containing
+ the global static is unloaded and reloaded.
+
+ This function is safe to call at any point in the program execution: it
+ cannot fail and cannot cause a deadlock. Additionally, it will not cause
+ the contents to be created if they have not yet been created.
+
+ This function is useful if one can determine the initial conditions of the
+ global static object and would prefer to avoid a possibly expensive
+ construction operation.
+
+ For example, in the following code sample, this function is used to
+ short-circuit the creation of the global static called \c globalState and
+ returns a default value:
+
+ \code
+ Q_GLOBAL_STATIC(MyType, globalState)
+ QString someState()
+ {
+ if (globalState.exists())
+ return globalState->someState;
+ return QString();
+ }
+ \endcode
+
+ \b{Thread-safety notice:} this function is thread-safe in the sense that it
+ may be called from any thread at any time and will always return a valid
+ reply. But due to the non-atomic nature of construction, this function may
+ return false for a short time after the construction has completed.
+
+ \b{Memory ordering notice:} this function does not impose any memory
+ ordering guarantees. That is instead provided by the accessor functions
+ that return the pointer or reference to the contents. If you bypass the
+ accessor functions and attempt to access some global state set by the
+ constructor, be sure to use the correct memory ordering semantics provided
+ by \l QAtomicInt or \l QAtomicPointer.
+
+ \sa isDestroyed()
+*/
+
+/*!
+ \fn QGlobalStatic::operator Type*()
+
+ This function returns the address of the contents of this global static. If
+ the contents have not yet been created, they will be created thread-safely
+ by this function. If the contents have already been destroyed, this
+ function will return a null pointer.
+
+ This function can be used, for example, to store the pointer to the
+ contents of the global static in a local variable, thus avoiding multiple
+ calls to the function. The implementation of Q_GLOBAL_STATIC() is quite
+ efficient already, but in performance-critical sections it might be useful
+ to help the compiler a little. For example:
+
+ \code
+ Q_GLOBAL_STATIC(MyType, globalState)
+ QString someState()
+ {
+ MyType *state = globalState;
+ if (!state) {
+ // we're in a post-destruction state
+ return QString();
+ }
+ if (state->condition)
+ return state->value1;
+ else
+ return state->value2;
+ }
+ \endcode
+
+ \sa operator->(), operator*()
+*/
+
+/*!
+ \fn Type *QGlobalStatic::operator()()
+ \deprecated
+
+ This function returns the address of the contents of this global static. If
+ the contents have not yet been created, they will be created thread-safely
+ by this function. If the contents have already been destroyed, this
+ function will return a null pointer.
+
+ This function is equivalent to \l {operator Type *()}. It is provided for
+ compatibility with the private Q_GLOBAL_STATIC implementation that existed
+ in Qt 4.x and 5.0. New code should avoid using it and should instead treat
+ the object as a smart pointer.
+*/
+
+/*!
+ \fn Type *QGlobalStatic::operator->()
+
+ This function returns the address of the contents of this global static. If
+ the contents have not yet been created, they will be created thread-safely
+ by this function.
+
+ This function does not check if the contents have already been destroyed and
+ will never return null. If this function is called after the object has
+ been destroyed, it will return a dangling pointer that should not be
+ dereferenced.
+*/
+
+/*!
+ \fn Type &QGlobalStatic::operator*()
+
+ This function returns a reference to the contents of this global static. If
+ the contents have not yet been created, they will be created thread-safely
+ by this function.
+
+ This function does not check if the contents have already been destroyed.
+ If this function is called after the object has been destroyed, it will
+ return an invalid reference that must not be used.
+*/
diff --git a/src/corelib/global/qglobalstatic.h b/src/corelib/global/qglobalstatic.h
new file mode 100644
index 0000000000..a6268e057e
--- /dev/null
+++ b/src/corelib/global/qglobalstatic.h
@@ -0,0 +1,142 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Intel Corporation
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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, Digia gives you certain additional
+** rights. These rights are described in the Digia 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.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore/qglobal.h>
+
+#ifndef QGLOBALSTATIC_H
+#define QGLOBALSTATIC_H
+
+#include <QtCore/qatomic.h>
+
+QT_BEGIN_NAMESPACE
+
+namespace QtGlobalStatic {
+enum GuardValues {
+ Destroyed = -2,
+ Initialized = -1,
+ Uninitialized = 0,
+ Initializing = 1
+};
+}
+
+#if defined(QT_NO_THREAD) || defined(Q_CC_GNU)
+// some compilers support thread-safe statics
+// The IA-64 C++ ABI requires this, so we know that all GCC versions since 3.4
+// support it. C++11 also requires this behavior.
+// Clang and Intel CC masquerade as GCC when compiling on Linux and Mac OS X.
+
+#define Q_GLOBAL_STATIC_INTERNAL(ARGS) \
+ Q_DECL_HIDDEN inline Type *innerFunction() \
+ { \
+ struct HolderBase { \
+ ~HolderBase() Q_DECL_NOTHROW \
+ { if (guard.load() == QtGlobalStatic::Initialized) \
+ guard.store(QtGlobalStatic::Destroyed); } \
+ }; \
+ static struct Holder : public HolderBase { \
+ Type value; \
+ Holder() \
+ Q_DECL_NOEXCEPT_EXPR(noexcept(Type ARGS)) \
+ : value ARGS \
+ { guard.store(QtGlobalStatic::Initialized); } \
+ } holder; \
+ return &holder.value; \
+ }
+#else
+// We don't know if this compiler supports thread-safe global statics
+// so use our own locked implementation
+
+QT_END_NAMESPACE
+#include <QtCore/qmutex.h>
+QT_BEGIN_NAMESPACE
+
+#define Q_GLOBAL_STATIC_INTERNAL(ARGS) \
+ Q_DECL_HIDDEN inline Type *innerFunction() \
+ { \
+ static Type *d; \
+ static QBasicMutex mutex; \
+ int x = guard.loadAcquire(); \
+ if (Q_UNLIKELY(x >= QtGlobalStatic::Uninitialized)) { \
+ QMutexLocker locker(&mutex); \
+ if (guard.load() == QtGlobalStatic::Uninitialized) { \
+ d = new Type ARGS; \
+ static struct Cleanup { \
+ ~Cleanup() { \
+ delete d; \
+ guard.store(QtGlobalStatic::Destroyed); \
+ } \
+ } cleanup; \
+ guard.store(QtGlobalStatic::Initialized); \
+ } \
+ } \
+ return d; \
+ }
+#endif
+
+// this class must be POD, unless the compiler supports thread-safe statics
+template <typename T, T *(&innerFunction)(), QBasicAtomicInt &guard>
+struct QGlobalStatic
+{
+ typedef T Type;
+
+ bool isDestroyed() const { return guard.load() <= QtGlobalStatic::Destroyed; }
+ bool exists() const { return guard.load() == QtGlobalStatic::Initialized; }
+ operator Type *() { if (isDestroyed()) return 0; return innerFunction(); }
+ Type *operator()() { if (isDestroyed()) return 0; return innerFunction(); }
+ Type *operator->() { return innerFunction(); }
+ Type &operator*() { return *innerFunction(); }
+};
+
+#define Q_GLOBAL_STATIC_WITH_ARGS(TYPE, NAME, ARGS) \
+ namespace { namespace Q_QGS_ ## NAME { \
+ typedef TYPE Type; \
+ QBasicAtomicInt guard = Q_BASIC_ATOMIC_INITIALIZER(QtGlobalStatic::Uninitialized); \
+ Q_GLOBAL_STATIC_INTERNAL(ARGS) \
+ } } \
+ static QGlobalStatic<TYPE, \
+ Q_QGS_ ## NAME::innerFunction, \
+ Q_QGS_ ## NAME::guard> NAME;
+
+#define Q_GLOBAL_STATIC(TYPE, NAME) \
+ Q_GLOBAL_STATIC_WITH_ARGS(TYPE, NAME, ())
+
+QT_END_NAMESPACE
+#endif // QGLOBALSTATIC_H
diff --git a/src/corelib/global/qisenum.h b/src/corelib/global/qisenum.h
index 073d5a591f..577007b455 100644
--- a/src/corelib/global/qisenum.h
+++ b/src/corelib/global/qisenum.h
@@ -62,9 +62,6 @@
#endif
// shut up syncqt
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QISENUM_H
diff --git a/src/corelib/global/qlibraryinfo.h b/src/corelib/global/qlibraryinfo.h
index 054231b084..1a00a14caf 100644
--- a/src/corelib/global/qlibraryinfo.h
+++ b/src/corelib/global/qlibraryinfo.h
@@ -45,8 +45,6 @@
#include <QtCore/qstring.h>
#include <QtCore/qdatetime.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class Q_CORE_EXPORT QLibraryInfo
@@ -103,6 +101,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QLIBRARYINFO_H
diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp
index 60ba19e625..6a127e1786 100644
--- a/src/corelib/global/qlogging.cpp
+++ b/src/corelib/global/qlogging.cpp
@@ -57,6 +57,10 @@
#include <slog2.h>
#endif
+#ifdef Q_OS_ANDROID
+#include <android/log.h>
+#endif
+
#include <stdio.h>
QT_BEGIN_NAMESPACE
@@ -73,7 +77,7 @@ static bool isFatal(QtMsgType msgType)
return true;
if (msgType == QtWarningMsg) {
- static bool fatalWarnings = qEnvironmentVariableIsSet("QT_FATAL_WARNINGS");
+ static bool fatalWarnings = !qEnvironmentVariableIsEmpty("QT_FATAL_WARNINGS");
return fatalWarnings;
}
@@ -115,6 +119,7 @@ static bool isFatal(QtMsgType msgType)
extern bool usingWinMain;
#endif
+#ifdef Q_OS_WIN
static inline void convert_to_wchar_t_elided(wchar_t *d, size_t space, const char *s) Q_DECL_NOEXCEPT
{
size_t len = qstrlen(s);
@@ -128,6 +133,7 @@ static inline void convert_to_wchar_t_elided(wchar_t *d, size_t space, const cha
*d++ = *s++;
*d++ = 0;
}
+#endif
#if !defined(QT_NO_EXCEPTIONS)
/*!
@@ -521,6 +527,11 @@ static const char functionTokenC[] = "%{function}";
static const char pidTokenC[] = "%{pid}";
static const char appnameTokenC[] = "%{appname}";
static const char threadidTokenC[] = "%{threadid}";
+static const char ifDebugTokenC[] = "%{if-debug}";
+static const char ifWarningTokenC[] = "%{if-warning}";
+static const char ifCriticalTokenC[] = "%{if-critical}";
+static const char ifFatalTokenC[] = "%{if-fatal}";
+static const char endifTokenC[] = "%{endif}";
static const char emptyTokenC[] = "";
static const char defaultPattern[] = "%{message}";
@@ -607,6 +618,10 @@ void QMessagePattern::setPattern(const QString &pattern)
tokens = new const char*[lexemes.size() + 1];
tokens[lexemes.size()] = 0;
+ bool nestedIfError = false;
+ bool inIf = false;
+ QString error;
+
for (int i = 0; i < lexemes.size(); ++i) {
const QString lexeme = lexemes.at(i);
if (lexeme.startsWith(QLatin1String("%{"))
@@ -630,23 +645,28 @@ void QMessagePattern::setPattern(const QString &pattern)
tokens[i] = appnameTokenC;
else if (lexeme == QLatin1String(threadidTokenC))
tokens[i] = threadidTokenC;
- else {
- tokens[i] = emptyTokenC;
- QString error = QStringLiteral("QT_MESSAGE_PATTERN: Unknown placeholder %1\n")
+#define IF_TOKEN(LEVEL) \
+ else if (lexeme == QLatin1String(LEVEL)) { \
+ if (inIf) \
+ nestedIfError = true; \
+ tokens[i] = LEVEL; \
+ inIf = true; \
+ }
+ IF_TOKEN(ifDebugTokenC)
+ IF_TOKEN(ifWarningTokenC)
+ IF_TOKEN(ifCriticalTokenC)
+ IF_TOKEN(ifFatalTokenC)
+#undef IF_TOKEN
+ else if (lexeme == QLatin1String(endifTokenC)) {
+ tokens[i] = endifTokenC;
+ if (!inIf && !nestedIfError)
+ error += QStringLiteral("QT_MESSAGE_PATTERN: %{endif} without an %{if-*}\n");
+ inIf = false;
+ } else {
+ tokens[i] = emptyTokenC;
+ error += QStringLiteral("QT_MESSAGE_PATTERN: Unknown placeholder %1\n")
.arg(lexeme);
-
-#if defined(Q_OS_WINCE)
- OutputDebugString(reinterpret_cast<const wchar_t*>(error.utf16()));
- continue;
-#elif defined(Q_OS_WIN) && defined(QT_BUILD_CORE_LIB)
- if (usingWinMain) {
- OutputDebugString(reinterpret_cast<const wchar_t*>(error.utf16()));
- continue;
- }
-#endif
- fprintf(stderr, "%s", error.toLocal8Bit().constData());
- fflush(stderr);
}
} else {
char *literal = new char[lexeme.size() + 1];
@@ -656,6 +676,24 @@ void QMessagePattern::setPattern(const QString &pattern)
tokens[i] = literal;
}
}
+ if (nestedIfError)
+ error += QStringLiteral("QT_MESSAGE_PATTERN: %{if-*} cannot be nested\n");
+ else if (inIf)
+ error += QStringLiteral("QT_MESSAGE_PATTERN: missing %{endif}\n");
+ if (!error.isEmpty()) {
+#if defined(Q_OS_WINCE)
+ OutputDebugString(reinterpret_cast<const wchar_t*>(error.utf16()));
+ if (0)
+#elif defined(Q_OS_WIN) && defined(QT_BUILD_CORE_LIB)
+ if (usingWinMain) {
+ OutputDebugString(reinterpret_cast<const wchar_t*>(error.utf16()));
+ } else
+#endif
+ {
+ fprintf(stderr, "%s", error.toLocal8Bit().constData());
+ fflush(stderr);
+ }
+ }
literals = new const char*[literalsVar.size() + 1];
literals[literalsVar.size()] = 0;
memcpy(literals, literalsVar.constData(), literalsVar.size() * sizeof(const char*));
@@ -735,10 +773,16 @@ Q_CORE_EXPORT QString qMessageFormatString(QtMsgType type, const QMessageLogCont
if (pattern->tokens[0] == 0)
return message;
+ bool skip = false;
+
// we do not convert file, function, line literals to local encoding due to overhead
for (int i = 0; pattern->tokens[i] != 0; ++i) {
const char *token = pattern->tokens[i];
- if (token == messageTokenC) {
+ if (token == endifTokenC) {
+ skip = false;
+ } else if (skip) {
+ // do nothing
+ } else if (token == messageTokenC) {
message.append(str);
} else if (token == categoryTokenC) {
message.append(QLatin1String(context.category));
@@ -770,6 +814,14 @@ Q_CORE_EXPORT QString qMessageFormatString(QtMsgType type, const QMessageLogCont
message.append(QLatin1String("0x"));
message.append(QString::number(qlonglong(QThread::currentThread()->currentThread()), 16));
#endif
+#define HANDLE_IF_TOKEN(LEVEL) \
+ } else if (token == if##LEVEL##TokenC) { \
+ skip = type != Qt##LEVEL##Msg;
+ HANDLE_IF_TOKEN(Debug)
+ HANDLE_IF_TOKEN(Warning)
+ HANDLE_IF_TOKEN(Critical)
+ HANDLE_IF_TOKEN(Fatal)
+#undef HANDLE_IF_TOKEN
} else {
message.append(QLatin1String(token));
}
@@ -787,6 +839,24 @@ Q_CORE_EXPORT QtMsgHandler qInstallMsgHandler(QtMsgHandler);
static QtMsgHandler msgHandler = 0; // pointer to debug handler (without context)
static QtMessageHandler messageHandler = 0; // pointer to debug handler (with context)
+#ifdef Q_OS_ANDROID
+static void android_default_message_handler(QtMsgType type,
+ const QMessageLogContext &context,
+ const QString &message)
+{
+ android_LogPriority priority;
+ switch (type) {
+ case QtDebugMsg: priority = ANDROID_LOG_DEBUG; break;
+ case QtWarningMsg: priority = ANDROID_LOG_WARN; break;
+ case QtCriticalMsg: priority = ANDROID_LOG_ERROR; break;
+ case QtFatalMsg: priority = ANDROID_LOG_FATAL; break;
+ };
+
+ __android_log_print(priority, "Qt", "%s:%d (%s): %s", qPrintable(context.file), context.line,
+ qPrintable(context.function), qPrintable(message));
+}
+#endif //Q_OS_ANDROID
+
/*!
\internal
*/
@@ -807,6 +877,8 @@ static void qDefaultMessageHandler(QtMsgType type, const QMessageLogContext &con
#if defined(QT_USE_SLOG2)
slog2_default_handler(type, logMessage.toLocal8Bit().constData());
+#elif defined(Q_OS_ANDROID)
+ android_default_message_handler(type, context, logMessage);
#else
fprintf(stderr, "%s", logMessage.toLocal8Bit().constData());
fflush(stderr);
@@ -1009,6 +1081,15 @@ void qErrnoWarning(int code, const char *msg, ...)
\row \li \c %{type} \li "debug", "warning", "critical" or "fatal"
\endtable
+ You can also use conditionals on the type of the message using \c %{if-debug},
+ \c %{if-warning}, \c %{if-critical} or \c %{if-fatal} followed by an \c %{endif}.
+ What is inside the \c %{if-*} and \c %{endif} will only be printed if the type matches.
+
+ Example:
+ \code
+ QT_MESSAGE_PATTERN="[%{if-debug}D%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}] %{file}:%{line} - %{message}"
+ \endcode
+
The default \a pattern is "%{message}".
The \a pattern can also be changed at runtime by setting the QT_MESSAGE_PATTERN
diff --git a/src/corelib/global/qlogging.h b/src/corelib/global/qlogging.h
index 7d8f7313c8..a6f244698d 100644
--- a/src/corelib/global/qlogging.h
+++ b/src/corelib/global/qlogging.h
@@ -49,7 +49,6 @@
#pragma qt_no_master_include
#endif
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
/*
@@ -172,6 +171,4 @@ Q_CORE_EXPORT QtMessageHandler qInstallMessageHandler(QtMessageHandler);
Q_CORE_EXPORT void qSetMessagePattern(const QString &messagePattern);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QLOGGING_H
diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h
index e6cd166832..41bca2a443 100644
--- a/src/corelib/global/qnamespace.h
+++ b/src/corelib/global/qnamespace.h
@@ -44,8 +44,6 @@
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -327,6 +325,15 @@ public:
Q_DECLARE_FLAGS(WindowStates, WindowState)
+ enum ApplicationState {
+ ApplicationSuspended = 0x00000000,
+ ApplicationHidden = 0x00000001,
+ ApplicationInactive = 0x00000002,
+ ApplicationActive = 0x00000004
+ };
+
+ Q_DECLARE_FLAGS(ApplicationStates, ApplicationState)
+
enum ScreenOrientation {
PrimaryOrientation = 0x00000000,
PortraitOrientation = 0x00000001,
@@ -1300,6 +1307,8 @@ public:
ImhPreferLatin = 0x200,
+ ImhMultiLine = 0x400,
+
ImhDigitsOnly = 0x10000,
ImhFormattedNumbersOnly = 0x20000,
ImhUppercaseOnly = 0x40000,
@@ -1397,7 +1406,8 @@ public:
ItemIsDropEnabled = 8,
ItemIsUserCheckable = 16,
ItemIsEnabled = 32,
- ItemIsTristate = 64
+ ItemIsTristate = 64,
+ ItemNeverHasChildren = 128
};
Q_DECLARE_FLAGS(ItemFlags, ItemFlag)
@@ -1603,6 +1613,4 @@ public:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QNAMESPACE_H
diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc
index cb18dde724..8ec206a572 100644
--- a/src/corelib/global/qnamespace.qdoc
+++ b/src/corelib/global/qnamespace.qdoc
@@ -1783,6 +1783,36 @@
*/
/*!
+ \enum Qt::ApplicationState
+
+ \keyword application state
+
+ This enum type is used to specify the current state of the application.
+
+ The states are
+
+ \value ApplicationSuspended The application is about to suspend. When entering this state, the
+ application should save its state, cease all activities, and be
+ prepared for code execution to stop. While suspended, the
+ application can be killed at any time without further warnings
+ (e.g. when low memory forces the OS to purge suspended applications).
+ \value ApplicationHidden The application is hidden and runs in the background. This
+ is the normal state for applications that need to do background
+ processing, like playing music, while the user interacts with
+ other applications. The application should free up all graphical
+ resources when entering this state.
+ \value ApplicationInactive The application is visible, but not selected to be in front.
+ On desktop platforms, this typically means that the user
+ activated another application. On mobile platforms, it is
+ more common to enter this state when the OS is interrupting
+ the user with e.g. incoming calls or SMS-messages.
+ While in this state, consider reducing CPU-intensive tasks.
+ \value ApplicationActive The application is visible and selected to be in front.
+
+ \since 5.1
+*/
+
+/*!
\enum Qt::ScreenOrientation
This enum type specifies the various orientations a screen might have.
@@ -2315,6 +2345,8 @@
\value ImhTime The text editor functions as a time field.
\value ImhPreferLatin Latin characters are preferred (but not required).
+ \value ImhMultiLine Multiple lines can be entered into the text field.
+
Flags that restrict input (exclusive flags):
\value ImhDigitsOnly Only digits are allowed.
@@ -2441,6 +2473,7 @@
\value ItemIsUserCheckable It can be checked or unchecked by the user.
\value ItemIsEnabled The user can interact with the item.
\value ItemIsTristate The item is checkable with three separate states.
+ \value ItemNeverHasChildren The item never has child items.
Note that checkable items need to be given both a suitable set of flags
and an initial state, indicating whether the item is checked or not.
diff --git a/src/corelib/global/qnumeric.h b/src/corelib/global/qnumeric.h
index f8e84825c0..25db5443eb 100644
--- a/src/corelib/global/qnumeric.h
+++ b/src/corelib/global/qnumeric.h
@@ -44,8 +44,6 @@
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -65,6 +63,4 @@ Q_CORE_EXPORT double qInf();
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QNUMERIC_H
diff --git a/src/corelib/global/qprocessordetection.h b/src/corelib/global/qprocessordetection.h
index c005c5446e..86023d1703 100644
--- a/src/corelib/global/qprocessordetection.h
+++ b/src/corelib/global/qprocessordetection.h
@@ -118,6 +118,7 @@
# define Q_PROCESSOR_ARM_V6
# define Q_PROCESSOR_ARM_V5
# elif defined(__ARM_ARCH_5TEJ__) \
+ || defined(__ARM_ARCH_5TE__) \
|| (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM-0 >= 5) \
|| (defined(_M_ARM) && _M_ARM-0 >= 5)
# define Q_PROCESSOR_ARM_V5
diff --git a/src/corelib/global/qsysinfo.h b/src/corelib/global/qsysinfo.h
index c95c1674eb..edeef3c461 100644
--- a/src/corelib/global/qsysinfo.h
+++ b/src/corelib/global/qsysinfo.h
@@ -44,7 +44,6 @@
#ifndef QSYSINFO_H
#define QSYSINFO_H
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
/*
@@ -151,6 +150,4 @@ public:
};
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSYSINFO_H
diff --git a/src/corelib/global/qsystemdetection.h b/src/corelib/global/qsystemdetection.h
index 5f9671932f..0caac3d797 100644
--- a/src/corelib/global/qsystemdetection.h
+++ b/src/corelib/global/qsystemdetection.h
@@ -50,6 +50,8 @@
The operating system, must be one of: (Q_OS_x)
DARWIN - Darwin OS (synonym for Q_OS_MAC)
+ MAC - Mac OS X or iOS (iPhoneOS)
+ IOS - iOS (treated as a variant of Mac OS)
MSDOS - MS-DOS and Windows
OS2 - OS/2
OS2EMX - XFree86 on OS/2 (not PM)
@@ -78,6 +80,7 @@
LYNX - LynxOS
BSD4 - Any BSD 4.4 system
UNIX - Any UNIX BSD/SYSV system
+ ANDROID - Android platform
*/
#if defined(__APPLE__) && (defined(__GNUC__) || defined(__xlC__) || defined(__xlc__))
@@ -88,6 +91,9 @@
# else
# define Q_OS_DARWIN32
# endif
+#elif defined(ANDROID)
+# define Q_OS_ANDROID
+# define Q_OS_LINUX
#elif defined(__CYGWIN__)
# define Q_OS_CYGWIN
#elif !defined(SAG_COM) && (defined(WIN64) || defined(_WIN64) || defined(__WIN64__))
@@ -166,6 +172,10 @@
# elif defined(Q_OS_DARWIN32)
# define Q_OS_MAC32
# endif
+# include <TargetConditionals.h>
+# if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
+# define Q_OS_IOS
+# endif
#endif
#if defined(Q_OS_WIN)
@@ -175,30 +185,50 @@
#endif
#ifdef Q_OS_DARWIN
-# ifdef MAC_OS_X_VERSION_MIN_REQUIRED
-# undef MAC_OS_X_VERSION_MIN_REQUIRED
+# include <Availability.h>
+# if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) || __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_6
+# undef __MAC_OS_X_VERSION_MIN_REQUIRED
+# define __MAC_OS_X_VERSION_MIN_REQUIRED __MAC_10_6
# endif
-# define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_4
# include <AvailabilityMacros.h>
-# if !defined(MAC_OS_X_VERSION_10_3)
-# define MAC_OS_X_VERSION_10_3 MAC_OS_X_VERSION_10_2 + 1
+# if !defined(MAC_OS_X_VERSION_MIN_REQUIRED) || MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6
+# undef MAC_OS_X_VERSION_MIN_REQUIRED
+# define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_6
# endif
-# if !defined(MAC_OS_X_VERSION_10_4)
-# define MAC_OS_X_VERSION_10_4 MAC_OS_X_VERSION_10_3 + 1
+#
+# // Numerical checks are preferred to named checks, but to be safe
+# // we define the missing version names in case Qt uses them.
+#
+# if !defined(__MAC_10_7)
+# define __MAC_10_7 1070
# endif
-# if !defined(MAC_OS_X_VERSION_10_5)
-# define MAC_OS_X_VERSION_10_5 MAC_OS_X_VERSION_10_4 + 1
-# endif
-# if !defined(MAC_OS_X_VERSION_10_6)
-# define MAC_OS_X_VERSION_10_6 MAC_OS_X_VERSION_10_5 + 1
+# if !defined(__MAC_10_8)
+# define __MAC_10_8 1080
# endif
# if !defined(MAC_OS_X_VERSION_10_7)
-# define MAC_OS_X_VERSION_10_7 MAC_OS_X_VERSION_10_6 + 1
+# define MAC_OS_X_VERSION_10_7 1070
# endif
# if !defined(MAC_OS_X_VERSION_10_8)
-# define MAC_OS_X_VERSION_10_8 MAC_OS_X_VERSION_10_7 + 1
+# define MAC_OS_X_VERSION_10_8 1080
+# endif
+#
+# if !defined(__IPHONE_4_3)
+# define __IPHONE_4_3 40300
+# endif
+# if !defined(__IPHONE_5_0)
+# define __IPHONE_5_0 50000
+# endif
+# if !defined(__IPHONE_5_1)
+# define __IPHONE_5_1 50100
+# endif
+# if !defined(__IPHONE_6_0)
+# define __IPHONE_6_0 60000
+# endif
+# if !defined(__IPHONE_6_1)
+# define __IPHONE_6_1 60100
# endif
-# if (MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_8)
+#
+# if (__MAC_OS_X_VERSION_MAX_ALLOWED > __MAC_10_8)
# warning "This version of Mac OS X is unsupported"
# endif
#endif
diff --git a/src/corelib/global/qt_windows.h b/src/corelib/global/qt_windows.h
index 26b55336ed..c3266c5487 100644
--- a/src/corelib/global/qt_windows.h
+++ b/src/corelib/global/qt_windows.h
@@ -42,6 +42,11 @@
#ifndef QT_WINDOWS_H
#define QT_WINDOWS_H
+#if 0
+#pragma qt_sync_skip_header_check
+#pragma qt_sync_stop_processing
+#endif
+
#if defined(Q_CC_BOR)
// Borland's windows.h does not set these correctly, resulting in
// unusable WinSDK standard dialogs
diff --git a/src/corelib/global/qtypeinfo.h b/src/corelib/global/qtypeinfo.h
index 754aa6712b..8e34c9792d 100644
--- a/src/corelib/global/qtypeinfo.h
+++ b/src/corelib/global/qtypeinfo.h
@@ -44,7 +44,6 @@
#ifndef QTYPEINFO_H
#define QTYPEINFO_H
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
/*
@@ -241,6 +240,4 @@ Q_DECLARE_TYPEINFO(long double, Q_PRIMITIVE_TYPE);
#endif
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QTYPEINFO_H
diff --git a/src/corelib/global/qtypetraits.h b/src/corelib/global/qtypetraits.h
index 54b48667b4..7ccad067d0 100644
--- a/src/corelib/global/qtypetraits.h
+++ b/src/corelib/global/qtypetraits.h
@@ -109,7 +109,6 @@
#include <utility> // For pair
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
namespace QtPrivate {
@@ -505,6 +504,4 @@ Q_STATIC_ASSERT(( is_signed<qint64>::value));
} // namespace QtPrivate
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QTYPETRAITS_H
diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri
index f57dcebe33..3f100593bb 100644
--- a/src/corelib/io/io.pri
+++ b/src/corelib/io/io.pri
@@ -18,14 +18,19 @@ HEADERS += \
io/qipaddress_p.h \
io/qiodevice.h \
io/qiodevice_p.h \
+ io/qlockfile.h \
+ io/qlockfile_p.h \
io/qnoncontiguousbytedevice_p.h \
io/qprocess.h \
io/qprocess_p.h \
io/qtextstream.h \
+ io/qtextstream_p.h \
io/qtemporarydir.h \
io/qtemporaryfile.h \
+ io/qtemporaryfile_p.h \
io/qresource_p.h \
io/qresource_iterator_p.h \
+ io/qsavefile.h \
io/qstandardpaths.h \
io/qurl.h \
io/qurl_p.h \
@@ -58,6 +63,7 @@ SOURCES += \
io/qfileinfo.cpp \
io/qipaddress.cpp \
io/qiodevice.cpp \
+ io/qlockfile.cpp \
io/qnoncontiguousbytedevice.cpp \
io/qprocess.cpp \
io/qtextstream.cpp \
@@ -65,6 +71,7 @@ SOURCES += \
io/qtemporaryfile.cpp \
io/qresource.cpp \
io/qresource_iterator.cpp \
+ io/qsavefile.cpp \
io/qstandardpaths.cpp \
io/qurl.cpp \
io/qurlidna.cpp \
@@ -81,6 +88,7 @@ SOURCES += \
win32 {
SOURCES += io/qsettings_win.cpp
SOURCES += io/qfsfileengine_win.cpp
+ SOURCES += io/qlockfile_win.cpp
SOURCES += io/qfilesystemwatcher_win.cpp
HEADERS += io/qfilesystemwatcher_win_p.h
@@ -105,15 +113,16 @@ win32 {
SOURCES += \
io/qfsfileengine_unix.cpp \
io/qfilesystemengine_unix.cpp \
+ io/qlockfile_unix.cpp \
io/qprocess_unix.cpp \
io/qfilesystemiterator_unix.cpp \
- !nacl:macx-*: {
+ !nacl:mac: {
SOURCES += io/qfilesystemengine_mac.cpp
SOURCES += io/qsettings_mac.cpp
}
- macx-*: {
- !ios {
+ mac {
+ macx {
SOURCES += io/qstandardpaths_mac.cpp
} else {
SOURCES += io/qstandardpaths_unix.cpp
@@ -124,13 +133,13 @@ win32 {
SOURCES += io/qstandardpaths_unix.cpp
}
- linux-*|if(qnx:contains(QT_CONFIG, inotify)) {
+ linux|if(qnx:contains(QT_CONFIG, inotify)) {
SOURCES += io/qfilesystemwatcher_inotify.cpp
HEADERS += io/qfilesystemwatcher_inotify_p.h
}
!nacl {
- freebsd-*|macx-*|darwin-*|openbsd-*:{
+ freebsd-*|mac|darwin-*|openbsd-*:{
SOURCES += io/qfilesystemwatcher_kqueue.cpp
HEADERS += io/qfilesystemwatcher_kqueue_p.h
}
diff --git a/src/corelib/io/qabstractfileengine.cpp b/src/corelib/io/qabstractfileengine.cpp
index 2d9cb85d9f..9cdbbbbb25 100644
--- a/src/corelib/io/qabstractfileengine.cpp
+++ b/src/corelib/io/qabstractfileengine.cpp
@@ -400,6 +400,19 @@ bool QAbstractFileEngine::close()
}
/*!
+ \since 5.1
+
+ Flushes and syncs the file to disk.
+
+ Returns true if successful; otherwise returns false.
+ The default implementation always returns false.
+*/
+bool QAbstractFileEngine::syncToDisk()
+{
+ return false;
+}
+
+/*!
Flushes the open file, returning true if successful; otherwise returns
false.
@@ -496,6 +509,24 @@ bool QAbstractFileEngine::rename(const QString &newName)
}
/*!
+ \since 5.1
+
+ Requests that the file be renamed to \a newName in the file
+ system. If the new name already exists, it must be overwritten.
+ If the operation succeeds, returns true; otherwise returns
+ false.
+
+ This virtual function must be reimplemented by all subclasses.
+
+ \sa setFileName()
+ */
+bool QAbstractFileEngine::renameOverwrite(const QString &newName)
+{
+ Q_UNUSED(newName);
+ return false;
+}
+
+/*!
Creates a link from the file currently specified by fileName() to
\a newName. What a link is depends on the underlying filesystem
(be it a shortcut on Windows or a symbolic link on Unix). Returns
diff --git a/src/corelib/io/qabstractfileengine_p.h b/src/corelib/io/qabstractfileengine_p.h
index 868b086b57..dd64e3d71f 100644
--- a/src/corelib/io/qabstractfileengine_p.h
+++ b/src/corelib/io/qabstractfileengine_p.h
@@ -66,7 +66,7 @@ class QVariant;
class QAbstractFileEngineIterator;
class QAbstractFileEnginePrivate;
-class Q_AUTOTEST_EXPORT QAbstractFileEngine
+class Q_CORE_EXPORT QAbstractFileEngine
{
public:
enum FileFlag {
@@ -124,6 +124,7 @@ public:
virtual bool open(QIODevice::OpenMode openMode);
virtual bool close();
virtual bool flush();
+ virtual bool syncToDisk();
virtual qint64 size() const;
virtual qint64 pos() const;
virtual bool seek(qint64 pos);
@@ -131,6 +132,7 @@ public:
virtual bool remove();
virtual bool copy(const QString &newName);
virtual bool rename(const QString &newName);
+ virtual bool renameOverwrite(const QString &newName);
virtual bool link(const QString &newName);
virtual bool mkdir(const QString &dirName, bool createParentDirectories) const;
virtual bool rmdir(const QString &dirName, bool recurseParentDirectories) const;
@@ -208,7 +210,7 @@ private:
Q_DECLARE_OPERATORS_FOR_FLAGS(QAbstractFileEngine::FileFlags)
-class Q_AUTOTEST_EXPORT QAbstractFileEngineHandler
+class Q_CORE_EXPORT QAbstractFileEngineHandler
{
public:
QAbstractFileEngineHandler();
@@ -217,7 +219,7 @@ public:
};
class QAbstractFileEngineIteratorPrivate;
-class Q_AUTOTEST_EXPORT QAbstractFileEngineIterator
+class Q_CORE_EXPORT QAbstractFileEngineIterator
{
public:
QAbstractFileEngineIterator(QDir::Filters filters, const QStringList &nameFilters);
diff --git a/src/corelib/io/qbuffer.h b/src/corelib/io/qbuffer.h
index f246f1375f..de0fe9f36a 100644
--- a/src/corelib/io/qbuffer.h
+++ b/src/corelib/io/qbuffer.h
@@ -45,8 +45,6 @@
#include <QtCore/qiodevice.h>
#include <QtCore/qbytearray.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -106,6 +104,4 @@ inline void QBuffer::setData(const char *adata, int alen)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QBUFFER_H
diff --git a/src/corelib/io/qdatastream.cpp b/src/corelib/io/qdatastream.cpp
index 544e9e8592..8f788ac355 100644
--- a/src/corelib/io/qdatastream.cpp
+++ b/src/corelib/io/qdatastream.cpp
@@ -251,7 +251,7 @@ QT_BEGIN_NAMESPACE
return retVal;
enum {
- DefaultStreamVersion = QDataStream::Qt_5_0
+ DefaultStreamVersion = QDataStream::Qt_5_1
};
/*!
@@ -539,6 +539,7 @@ void QDataStream::setByteOrder(ByteOrder bo)
\value Qt_4_8 Same as Qt_4_6.
\value Qt_4_9 Same as Qt_4_6.
\value Qt_5_0 Version 13 (Qt 5.0)
+ \value Qt_5_1 Same as Qt_5_0.
\sa setVersion(), version()
*/
diff --git a/src/corelib/io/qdatastream.h b/src/corelib/io/qdatastream.h
index 092f3a15b3..6017ba5e7d 100644
--- a/src/corelib/io/qdatastream.h
+++ b/src/corelib/io/qdatastream.h
@@ -50,8 +50,6 @@
#error qdatastream.h must be included before any header file that defines Status
#endif
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -87,8 +85,9 @@ public:
Qt_4_7 = Qt_4_6,
Qt_4_8 = Qt_4_7,
Qt_4_9 = Qt_4_8,
- Qt_5_0 = 13
-#if QT_VERSION >= 0x050100
+ Qt_5_0 = 13,
+ Qt_5_1 = Qt_5_0
+#if QT_VERSION >= 0x050200
#error Add the datastream version for this Qt version
#endif
};
@@ -434,6 +433,4 @@ inline QDataStream& operator<<(QDataStream& s, const QPair<T1, T2>& p)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QDATASTREAM_H
diff --git a/src/corelib/io/qdebug.cpp b/src/corelib/io/qdebug.cpp
index bd43963139..9cb5609dac 100644
--- a/src/corelib/io/qdebug.cpp
+++ b/src/corelib/io/qdebug.cpp
@@ -47,6 +47,9 @@
#endif
#include "qdebug.h"
+#include <private/qtextstream_p.h>
+
+QT_BEGIN_NAMESPACE
// This file is needed to force compilation of QDebug into the kernel library.
@@ -170,6 +173,8 @@
between writes.
\since 5.0
+
+ \sa QDebugStateSaver
*/
/*!
@@ -179,6 +184,8 @@
automatic insertion of spaces is disabled.
\since 5.0
+
+ \sa QDebugStateSaver
*/
/*!
@@ -321,3 +328,69 @@
\fn QDebug &QDebug::operator<<(QTextStreamManipulator m)
\internal
*/
+
+/*!
+ \class QDebugStateSaver
+
+ \brief Convenience class for custom QDebug operators
+
+ Saves the settings used by QDebug, and restores them upon destruction.
+
+ The automatic insertion of spaces between writes is one of the settings
+ that QDebugStateSaver stores for the duration of the current block.
+
+ The settings of the internal QTextStream are also saved and restored,
+ so that using << hex in a QDebug operator doesn't affect other QDebug
+ operators.
+
+ \since 5.1
+*/
+
+class QDebugStateSaverPrivate
+{
+public:
+ QDebugStateSaverPrivate(QDebug &dbg)
+ : m_dbg(dbg),
+ m_spaces(dbg.autoInsertSpaces()),
+ m_streamParams(dbg.stream->ts.d_ptr->params)
+ {
+ }
+ void restoreState()
+ {
+ m_dbg.setAutoInsertSpaces(m_spaces);
+ m_dbg.stream->ts.d_ptr->params = m_streamParams;
+ }
+
+ QDebug &m_dbg;
+
+ // QDebug state
+ const bool m_spaces;
+
+ // QTextStream state
+ const QTextStreamPrivate::Params m_streamParams;
+};
+
+
+/*!
+ Creates a QDebugStateSaver instance, which saves the settings
+ currently used by \a dbg.
+
+ \sa QDebug::setAutoInsertSpaces(), QDebug::autoInsertSpaces()
+*/
+QDebugStateSaver::QDebugStateSaver(QDebug &dbg)
+ : d(new QDebugStateSaverPrivate(dbg))
+{
+}
+
+/*!
+ Destroyes a QDebugStateSaver instance, which restores the settings
+ used by \a dbg when the QDebugStateSaver instance was created.
+
+ \sa QDebug::setAutoInsertSpaces(), QDebug::autoInsertSpaces()
+*/
+QDebugStateSaver::~QDebugStateSaver()
+{
+ d->restoreState();
+}
+
+QT_END_NAMESPACE
diff --git a/src/corelib/io/qdebug.h b/src/corelib/io/qdebug.h
index be8252fbb2..ce72fcd26d 100644
--- a/src/corelib/io/qdebug.h
+++ b/src/corelib/io/qdebug.h
@@ -53,14 +53,13 @@
#include <QtCore/qset.h>
#include <QtCore/qcontiguouscache.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class Q_CORE_EXPORT QDebug
{
friend class QMessageLogger;
+ friend class QDebugStateSaverPrivate;
struct Stream {
Stream(QIODevice *device) : ts(device), ref(1), type(QtDebugMsg), space(true), message_output(false) {}
Stream(QString *string) : ts(string, QIODevice::WriteOnly), ref(1), type(QtDebugMsg), space(true), message_output(false) {}
@@ -132,6 +131,17 @@ public:
Q_DECLARE_SHARED(QDebug)
+class QDebugStateSaverPrivate;
+class Q_CORE_EXPORT QDebugStateSaver
+{
+public:
+ QDebugStateSaver(QDebug &dbg);
+ ~QDebugStateSaver();
+private:
+ Q_DISABLE_COPY(QDebugStateSaver)
+ QScopedPointer<QDebugStateSaverPrivate> d;
+};
+
class QNoDebug
{
public:
@@ -279,6 +289,4 @@ inline QDebug operator<<(QDebug debug, const QFlags<T> &flags)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QDEBUG_H
diff --git a/src/corelib/io/qdir.h b/src/corelib/io/qdir.h
index 00091bb0d1..dbb6d93d2e 100644
--- a/src/corelib/io/qdir.h
+++ b/src/corelib/io/qdir.h
@@ -47,8 +47,6 @@
#include <QtCore/qstringlist.h>
#include <QtCore/qshareddata.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -236,6 +234,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug debug, const QDir &dir);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QDIR_H
diff --git a/src/corelib/io/qdiriterator.h b/src/corelib/io/qdiriterator.h
index f0601e602e..4a96005570 100644
--- a/src/corelib/io/qdiriterator.h
+++ b/src/corelib/io/qdiriterator.h
@@ -44,8 +44,6 @@
#include <QtCore/qdir.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -91,6 +89,4 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QDirIterator::IteratorFlags)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/io/qfile.h b/src/corelib/io/qfile.h
index 2e86af3703..2e75e29995 100644
--- a/src/corelib/io/qfile.h
+++ b/src/corelib/io/qfile.h
@@ -50,8 +50,6 @@
#error qfile.h must be included before any header file that defines open
#endif
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QTemporaryFile;
@@ -154,6 +152,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QFILE_H
diff --git a/src/corelib/io/qfiledevice.h b/src/corelib/io/qfiledevice.h
index fc07097b1c..fc2779086a 100644
--- a/src/corelib/io/qfiledevice.h
+++ b/src/corelib/io/qfiledevice.h
@@ -45,8 +45,6 @@
#include <QtCore/qiodevice.h>
#include <QtCore/qstring.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QFileDevicePrivate;
@@ -142,6 +140,4 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QFileDevice::Permissions)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QFILEDEVICE_H
diff --git a/src/corelib/io/qfileinfo.h b/src/corelib/io/qfileinfo.h
index 938114f9d1..211c18d0a0 100644
--- a/src/corelib/io/qfileinfo.h
+++ b/src/corelib/io/qfileinfo.h
@@ -47,8 +47,6 @@
#include <QtCore/qshareddata.h>
#include <QtCore/qmetatype.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -159,6 +157,4 @@ QT_END_NAMESPACE
Q_DECLARE_METATYPE(QFileInfo)
-QT_END_HEADER
-
#endif // QFILEINFO_H
diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp
index 0fd77fbeb5..71ecc4a0a0 100644
--- a/src/corelib/io/qfilesystemengine.cpp
+++ b/src/corelib/io/qfilesystemengine.cpp
@@ -272,8 +272,7 @@ void QFileSystemMetaData::fillFromStatBuf(const QT_STATBUF &statBuffer)
// Attributes
entryFlags |= QFileSystemMetaData::ExistsAttribute;
size_ = statBuffer.st_size;
-#if defined (Q_OS_MAC) && !defined(Q_OS_IOS) \
- && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
+#if defined (Q_OS_MAC) && !defined(Q_OS_IOS)
if (statBuffer.st_flags & UF_HIDDEN) {
entryFlags |= QFileSystemMetaData::HiddenAttribute;
knownFlagsMask |= QFileSystemMetaData::HiddenAttribute;
diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp
index 4af01f6730..4bfb03a41e 100644
--- a/src/corelib/io/qfilesystemengine_unix.cpp
+++ b/src/corelib/io/qfilesystemengine_unix.cpp
@@ -169,7 +169,7 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry,
if (entry.isEmpty() || entry.isRoot())
return entry;
-#if !defined(Q_OS_MAC) && !defined(Q_OS_QNX) && _POSIX_VERSION < 200809L
+#if !defined(Q_OS_MAC) && !defined(Q_OS_QNX) && !defined(Q_OS_ANDROID) && _POSIX_VERSION < 200809L
// realpath(X,0) is not supported
Q_UNUSED(data);
return QFileSystemEntry(slowCanonicalized(absoluteName(entry).filePath()));
@@ -286,7 +286,7 @@ QString QFileSystemEngine::resolveUserName(uint userId)
struct passwd *pw = 0;
#if !defined(Q_OS_INTEGRITY)
-#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD)
+#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) && !defined(Q_OS_VXWORKS)
struct passwd entry;
getpwuid_r(userId, &entry, buf.data(), buf.size(), &pw);
#else
@@ -310,7 +310,7 @@ QString QFileSystemEngine::resolveGroupName(uint groupId)
struct group *gr = 0;
#if !defined(Q_OS_INTEGRITY)
-#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD)
+#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) && !defined(Q_OS_VXWORKS)
size_max = sysconf(_SC_GETGR_R_SIZE_MAX);
if (size_max == -1)
size_max = 1024;
@@ -360,12 +360,10 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM
if (!data.hasFlags(QFileSystemMetaData::DirectoryType))
what |= QFileSystemMetaData::DirectoryType;
}
-# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
if (what & QFileSystemMetaData::HiddenAttribute) {
// Mac OS >= 10.5: st_flags & UF_HIDDEN
what |= QFileSystemMetaData::PosixStatFlags;
}
-# endif // MAC_OS_X_VERSION_MAX_ALLOWED...
#endif // defined(Q_OS_MAC) && !defined(Q_OS_IOS)
if (what & QFileSystemMetaData::PosixStatFlags)
@@ -685,8 +683,16 @@ QFileSystemEntry QFileSystemEngine::currentPath()
}
#else
char currentName[PATH_MAX+1];
- if (::getcwd(currentName, PATH_MAX))
+ if (::getcwd(currentName, PATH_MAX)) {
+#if defined(Q_OS_VXWORKS) && defined(VXWORKS_VXSIM)
+ QByteArray dir(currentName);
+ if (dir.indexOf(':') < dir.indexOf('/'))
+ dir.remove(0, dir.indexOf(':')+1);
+
+ qstrncpy(currentName, dir.constData(), PATH_MAX);
+#endif
result = QFileSystemEntry(QByteArray(currentName), QFileSystemEntry::FromNativePath());
+ }
# if defined(QT_DEBUG)
if (result.isEmpty())
qWarning("QFileSystemEngine::currentPath: getcwd() failed");
diff --git a/src/corelib/io/qfilesystemwatcher.h b/src/corelib/io/qfilesystemwatcher.h
index e2f48ce0bf..5a326075ba 100644
--- a/src/corelib/io/qfilesystemwatcher.h
+++ b/src/corelib/io/qfilesystemwatcher.h
@@ -46,8 +46,6 @@
#ifndef QT_NO_FILESYSTEMWATCHER
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -90,7 +88,5 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QT_NO_FILESYSTEMWATCHER
#endif // QFILESYSTEMWATCHER_H
diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp
index 3963416084..f0f3c935e6 100644
--- a/src/corelib/io/qfsfileengine.cpp
+++ b/src/corelib/io/qfsfileengine.cpp
@@ -419,6 +419,17 @@ bool QFSFileEngine::flush()
}
/*!
+ \reimp
+*/
+bool QFSFileEngine::syncToDisk()
+{
+ Q_D(QFSFileEngine);
+ if ((d->openMode & QIODevice::WriteOnly) == 0)
+ return true;
+ return d->nativeSyncToDisk();
+}
+
+/*!
\internal
*/
bool QFSFileEnginePrivate::flushFh()
@@ -908,6 +919,11 @@ bool QFSFileEngine::supportsExtension(Extension extension) const
\reimp
*/
+
+/*! \fn bool QFSFileEngine::renameOverwrite(const QString &newName)
+ \reimp
+*/
+
/*! \fn bool QFSFileEngine::rmdir(const QString &name, bool recurseParentDirectories) const
\reimp
*/
diff --git a/src/corelib/io/qfsfileengine_p.h b/src/corelib/io/qfsfileengine_p.h
index d19310b6b6..21f38fea1d 100644
--- a/src/corelib/io/qfsfileengine_p.h
+++ b/src/corelib/io/qfsfileengine_p.h
@@ -81,6 +81,7 @@ public:
bool open(QIODevice::OpenMode flags, FILE *fh);
bool close();
bool flush();
+ bool syncToDisk();
qint64 size() const;
qint64 pos() const;
bool seek(qint64);
@@ -88,6 +89,7 @@ public:
bool remove();
bool copy(const QString &newName);
bool rename(const QString &newName);
+ bool renameOverwrite(const QString &newName);
bool link(const QString &newName);
bool mkdir(const QString &dirName, bool createParentDirectories) const;
bool rmdir(const QString &dirName, bool recurseParentDirectories) const;
@@ -149,6 +151,7 @@ public:
bool nativeClose();
bool closeFdFh();
bool nativeFlush();
+ bool nativeSyncToDisk();
bool flushFh();
qint64 nativeSize() const;
#ifndef Q_OS_WIN
diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp
index 482f65e7f6..a5f077bd0b 100644
--- a/src/corelib/io/qfsfileengine_unix.cpp
+++ b/src/corelib/io/qfsfileengine_unix.cpp
@@ -258,6 +258,23 @@ bool QFSFileEnginePrivate::nativeFlush()
/*!
\internal
+ \since 5.1
+*/
+bool QFSFileEnginePrivate::nativeSyncToDisk()
+{
+ Q_Q(QFSFileEngine);
+#if defined(_POSIX_SYNCHRONIZED_IO) && _POSIX_SYNCHRONIZED_IO > 0
+ const int ret = fdatasync(nativeHandle());
+#else
+ const int ret = fsync(nativeHandle());
+#endif
+ if (ret != 0)
+ q->setError(QFile::WriteError, qt_error_string(errno));
+ return ret == 0;
+}
+
+/*!
+ \internal
*/
qint64 QFSFileEnginePrivate::nativeRead(char *data, qint64 len)
{
@@ -388,6 +405,12 @@ bool QFSFileEngine::copy(const QString &newName)
return ret;
}
+bool QFSFileEngine::renameOverwrite(const QString &newName)
+{
+ // On Unix, rename() overwrites.
+ return rename(newName);
+}
+
bool QFSFileEngine::rename(const QString &newName)
{
Q_D(QFSFileEngine);
diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp
index 24631f11c7..23ab507dad 100644
--- a/src/corelib/io/qfsfileengine_win.cpp
+++ b/src/corelib/io/qfsfileengine_win.cpp
@@ -198,15 +198,25 @@ bool QFSFileEnginePrivate::nativeFlush()
return true;
}
- // Windows native mode; flushing is
- // unnecessary. FlushFileBuffers(), the equivalent of sync() or
- // fsync() on Unix, does a low-level flush to the disk, and we
- // don't expose an API for this.
+ // Windows native mode; flushing is unnecessary.
return true;
}
/*
\internal
+ \since 5.1
+*/
+bool QFSFileEnginePrivate::nativeSyncToDisk()
+{
+ if (fh || fd != -1) {
+ // stdlib / stdio mode. No API available.
+ return false;
+ }
+ return FlushFileBuffers(fileHandle);
+}
+
+/*
+ \internal
*/
qint64 QFSFileEnginePrivate::nativeSize() const
{
@@ -507,6 +517,17 @@ bool QFSFileEngine::rename(const QString &newName)
return ret;
}
+bool QFSFileEngine::renameOverwrite(const QString &newName)
+{
+ Q_D(QFSFileEngine);
+ bool ret = ::MoveFileEx((wchar_t*)d->fileEntry.nativeFilePath().utf16(),
+ (wchar_t*)QFileSystemEntry(newName).nativeFilePath().utf16(),
+ MOVEFILE_REPLACE_EXISTING | MOVEFILE_COPY_ALLOWED) != 0;
+ if (!ret)
+ setError(QFile::RenameError, QSystemError(::GetLastError(), QSystemError::NativeError).toString());
+ return ret;
+}
+
bool QFSFileEngine::mkdir(const QString &name, bool createParentDirectories) const
{
return QFileSystemEngine::createDirectory(QFileSystemEntry(name), createParentDirectories);
diff --git a/src/corelib/io/qiodevice.h b/src/corelib/io/qiodevice.h
index 96a8971639..39c2d70492 100644
--- a/src/corelib/io/qiodevice.h
+++ b/src/corelib/io/qiodevice.h
@@ -54,8 +54,6 @@
#error qiodevice.h must be included before any header file that defines open
#endif
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -177,6 +175,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug debug, QIODevice::OpenMode modes);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QIODEVICE_H
diff --git a/src/corelib/io/qlockfile.cpp b/src/corelib/io/qlockfile.cpp
new file mode 100644
index 0000000000..5d56a67f48
--- /dev/null
+++ b/src/corelib/io/qlockfile.cpp
@@ -0,0 +1,346 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 David Faure <faure+bluesystems@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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, Digia gives you certain additional
+** rights. These rights are described in the Digia 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.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qlockfile.h"
+#include "qlockfile_p.h"
+
+#include <QtCore/qthread.h>
+#include <QtCore/qelapsedtimer.h>
+#include <QtCore/qdatetime.h>
+
+QT_BEGIN_NAMESPACE
+
+/*!
+ \class QLockFile
+ \inmodule QtCore
+ \brief The QLockFile class provides locking between processes using a file.
+ \since 5.1
+
+ A lock file can be used to prevent multiple processes from accessing concurrently
+ the same resource. For instance, a configuration file on disk, or a socket, a port,
+ a region of shared memory...
+
+ Serialization is only guaranteed if all processes that access the shared resource
+ use QLockFile, with the same file path.
+
+ QLockFile supports two use cases:
+ to protect a resource for a short-term operation (e.g. verifying if a configuration
+ file has changed before saving new settings), and for long-lived protection of a
+ resource (e.g. a document opened by a user in an editor) for an indefinite amount of time.
+
+ When protecting for a short-term operation, it is acceptable to call lock() and wait
+ until any running operation finishes.
+ When protecting a resource over a long time, however, the application should always
+ call setStaleLockTime(0) and then tryLock() with a short timeout, in order to
+ warn the user that the resource is locked.
+
+ If the process holding the lock crashes, the lock file stays on disk and can prevent
+ any other process from accessing the shared resource, ever. For this reason, QLockFile
+ tries to detect such a "stale" lock file, based on the process ID written into the file,
+ and (in case that process ID got reused meanwhile), on the last modification time of
+ the lock file (30s by default, for the use case of a short-lived operation).
+ If the lock file is found to be stale, it will be deleted.
+
+ For the use case of protecting a resource over a long time, you should therefore call
+ setStaleLockTime(0), and when tryLock() returns LockFailedError, inform the user
+ that the document is locked, possibly using getLockInfo() for more details.
+*/
+
+/*!
+ \enum QLockFile::LockError
+
+ This enum describes the result of the last call to lock() or tryLock().
+
+ \value NoError The lock was acquired successfully.
+ \value LockFailedError The lock could not be acquired because another process holds it.
+ \value PermissionError The lock file could not be created, for lack of permissions
+ in the parent directory.
+ \value UnknownError Another error happened, for instance a full partition
+ prevented writing out the lock file.
+*/
+
+/*!
+ Constructs a new lock file object.
+ The object is created in an unlocked state.
+ When calling lock() or tryLock(), a lock file named \a fileName will be created,
+ if it doesn't already exist.
+
+ \sa lock(), unlock()
+*/
+QLockFile::QLockFile(const QString &fileName)
+ : d_ptr(new QLockFilePrivate(fileName))
+{
+}
+
+/*!
+ Destroys the lock file object.
+ If the lock was acquired, this will release the lock, by deleting the lock file.
+*/
+QLockFile::~QLockFile()
+{
+ unlock();
+}
+
+/*!
+ Sets \a staleLockTime to be the time in milliseconds after which
+ a lock file is considered stale.
+ The default value is 30000, i.e. 30 seconds.
+ If your application typically keeps the file locked for more than 30 seconds
+ (for instance while saving megabytes of data for 2 minutes), you should set
+ a bigger value using setStaleLockTime().
+
+ The value of \a staleLockTime is used by lock() and tryLock() in order
+ to determine when an existing lock file is considered stale, i.e. left over
+ by a crashed process. This is useful for the case where the PID got reused
+ meanwhile, so the only way to detect a stale lock file is by the fact that
+ it has been around for a long time.
+
+ \sa staleLockTime()
+*/
+void QLockFile::setStaleLockTime(int staleLockTime)
+{
+ Q_D(QLockFile);
+ d->staleLockTime = staleLockTime;
+}
+
+/*!
+ Returns the time in milliseconds after which
+ a lock file is considered stale.
+
+ \sa setStaleLockTime()
+*/
+int QLockFile::staleLockTime() const
+{
+ Q_D(const QLockFile);
+ return d->staleLockTime;
+}
+
+/*!
+ Returns true if the lock was acquired by this QLockFile instance,
+ otherwise returns false.
+
+ \sa lock(), unlock(), tryLock()
+*/
+bool QLockFile::isLocked() const
+{
+ Q_D(const QLockFile);
+ return d->isLocked;
+}
+
+/*!
+ Creates the lock file.
+
+ If another process (or another thread) has created the lock file already,
+ this function will block until that process (or thread) releases it.
+
+ Calling this function multiple times on the same lock from the same
+ thread without unlocking first is not allowed. This function will
+ \e dead-lock when the file is locked recursively.
+
+ Returns true if the lock was acquired, false if it could not be acquired
+ due to an unrecoverable error, such as no permissions in the parent directory.
+
+ \sa unlock(), tryLock()
+*/
+bool QLockFile::lock()
+{
+ return tryLock(-1);
+}
+
+/*!
+ Attempts to create the lock file. This function returns true if the
+ lock was obtained; otherwise it returns false. If another process (or
+ another thread) has created the lock file already, this function will
+ wait for at most \a timeout milliseconds for the lock file to become
+ available.
+
+ Note: Passing a negative number as the \a timeout is equivalent to
+ calling lock(), i.e. this function will wait forever until the lock
+ file can be locked if \a timeout is negative.
+
+ If the lock was obtained, it must be released with unlock()
+ before another process (or thread) can successfully lock it.
+
+ Calling this function multiple times on the same lock from the same
+ thread without unlocking first is not allowed, this function will
+ \e always return false when attempting to lock the file recursively.
+
+ \sa lock(), unlock()
+*/
+bool QLockFile::tryLock(int timeout)
+{
+ Q_D(QLockFile);
+ QElapsedTimer timer;
+ if (timeout > 0)
+ timer.start();
+ int sleepTime = 100;
+ forever {
+ d->lockError = d->tryLock_sys();
+ switch (d->lockError) {
+ case NoError:
+ d->isLocked = true;
+ return true;
+ case PermissionError:
+ case UnknownError:
+ return false;
+ case LockFailedError:
+ if (!d->isLocked && d->isApparentlyStale()) {
+ // Stale lock from another thread/process
+ // Ensure two processes don't remove it at the same time
+ QLockFile rmlock(d->fileName + QStringLiteral(".rmlock"));
+ if (rmlock.tryLock()) {
+ if (d->isApparentlyStale() && d->removeStaleLock())
+ continue;
+ }
+ }
+ break;
+ }
+ if (timeout == 0 || (timeout > 0 && timer.hasExpired(timeout)))
+ return false;
+ QThread::msleep(sleepTime);
+ if (sleepTime < 5 * 1000)
+ sleepTime *= 2;
+ }
+ // not reached
+ return false;
+}
+
+/*!
+ \fn void QLockFile::unlock()
+ Releases the lock, by deleting the lock file.
+
+ Calling unlock() without locking the file first, does nothing.
+
+ \sa lock(), tryLock()
+*/
+
+/*!
+ Retrieves information about the current owner of the lock file.
+
+ If tryLock() returns false, and error() returns LockFailedError,
+ this function can be called to find out more information about the existing
+ lock file:
+ \list
+ \li the PID of the application (returned in \a pid)
+ \li the \a hostname it's running on (useful in case of networked filesystems),
+ \li the name of the application which created it (returned in \a appname),
+ \endlist
+
+ Note that tryLock() automatically deleted the file if there is no
+ running application with this PID, so LockFailedError can only happen if there is
+ an application with this PID (it could be unrelated though).
+
+ This can be used to inform users about the existing lock file and give them
+ the choice to delete it. After removing the file using removeStaleLockFile(),
+ the application can call tryLock() again.
+
+ This function returns true if the information could be successfully retrieved, false
+ if the lock file doesn't exist or doesn't contain the expected data.
+ This can happen if the lock file was deleted between the time where tryLock() failed
+ and the call to this function. Simply call tryLock() again if this happens.
+*/
+bool QLockFile::getLockInfo(qint64 *pid, QString *hostname, QString *appname) const
+{
+ Q_D(const QLockFile);
+ return d->getLockInfo(pid, hostname, appname);
+}
+
+bool QLockFilePrivate::getLockInfo(qint64 *pid, QString *hostname, QString *appname) const
+{
+ QFile reader(fileName);
+ if (!reader.open(QIODevice::ReadOnly))
+ return false;
+
+ QByteArray pidLine = reader.readLine();
+ pidLine.chop(1);
+ QByteArray appNameLine = reader.readLine();
+ appNameLine.chop(1);
+ QByteArray hostNameLine = reader.readLine();
+ hostNameLine.chop(1);
+ if (pidLine.isEmpty() || appNameLine.isEmpty())
+ return false;
+
+ qint64 thePid = pidLine.toLongLong();
+ if (pid)
+ *pid = thePid;
+ if (appname)
+ *appname = QString::fromUtf8(appNameLine);
+ if (hostname)
+ *hostname = QString::fromUtf8(hostNameLine);
+ return thePid > 0;
+}
+
+/*!
+ Attempts to forcefully remove an existing lock file.
+
+ Calling this is not recommended when protecting a short-lived operation: QLockFile
+ already takes care of removing lock files after they are older than staleLockTime().
+
+ This method should only be called when protecting a resource for a long time, i.e.
+ with staleLockTime(0), and after tryLock() returned LockFailedError, and the user
+ agreed on removing the lock file.
+
+ Returns true on success, false if the lock file couldn't be removed. This happens
+ on Windows, when the application owning the lock is still running.
+*/
+bool QLockFile::removeStaleLockFile()
+{
+ Q_D(QLockFile);
+ if (d->isLocked) {
+ qWarning("removeStaleLockFile can only be called when not holding the lock");
+ return false;
+ }
+ return d->removeStaleLock();
+}
+
+/*!
+ Returns the lock file error status.
+
+ If tryLock() returns false, this function can be called to find out
+ the reason why the locking failed.
+*/
+QLockFile::LockError QLockFile::error() const
+{
+ Q_D(const QLockFile);
+ return d->lockError;
+}
+
+QT_END_NAMESPACE
diff --git a/src/corelib/io/qlockfile.h b/src/corelib/io/qlockfile.h
new file mode 100644
index 0000000000..4c8b6bf31a
--- /dev/null
+++ b/src/corelib/io/qlockfile.h
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 David Faure <faure+bluesystems@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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, Digia gives you certain additional
+** rights. These rights are described in the Digia 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.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QLOCKFILE_H
+#define QLOCKFILE_H
+
+#include <QtCore/qstring.h>
+#include <QtCore/qscopedpointer.h>
+
+QT_BEGIN_HEADER
+
+QT_BEGIN_NAMESPACE
+
+class QLockFilePrivate;
+
+class Q_CORE_EXPORT QLockFile
+{
+public:
+ QLockFile(const QString &fileName);
+ ~QLockFile();
+
+ bool lock();
+ bool tryLock(int timeout = 0);
+ void unlock();
+
+ void setStaleLockTime(int);
+ int staleLockTime() const;
+
+ bool isLocked() const;
+ bool getLockInfo(qint64 *pid, QString *hostname, QString *appname) const;
+ bool removeStaleLockFile();
+
+ enum LockError {
+ NoError = 0,
+ LockFailedError = 1,
+ PermissionError = 2,
+ UnknownError = 3
+ };
+ LockError error() const;
+
+protected:
+ QScopedPointer<QLockFilePrivate> d_ptr;
+
+private:
+ Q_DECLARE_PRIVATE(QLockFile)
+ Q_DISABLE_COPY(QLockFile)
+};
+
+QT_END_NAMESPACE
+
+QT_END_HEADER
+
+#endif // QLOCKFILE_H
diff --git a/src/corelib/io/qlockfile_p.h b/src/corelib/io/qlockfile_p.h
new file mode 100644
index 0000000000..e046e87cf4
--- /dev/null
+++ b/src/corelib/io/qlockfile_p.h
@@ -0,0 +1,104 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 David Faure <faure+bluesystems@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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, Digia gives you certain additional
+** rights. These rights are described in the Digia 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.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QLOCKFILE_P_H
+#define QLOCKFILE_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <QtCore/qlockfile.h>
+#include <QtCore/qfile.h>
+
+#ifdef Q_OS_WIN
+#include <qt_windows.h>
+#endif
+
+QT_BEGIN_NAMESPACE
+
+class QLockFilePrivate
+{
+public:
+ QLockFilePrivate(const QString &fn)
+ : fileName(fn),
+#ifdef Q_OS_WIN
+ fileHandle(INVALID_HANDLE_VALUE),
+#else
+ fileHandle(-1),
+#endif
+ staleLockTime(30 * 1000), // 30 seconds
+ lockError(QLockFile::NoError),
+ isLocked(false)
+ {
+ }
+ QLockFile::LockError tryLock_sys();
+ bool removeStaleLock();
+ bool getLockInfo(qint64 *pid, QString *hostname, QString *appname) const;
+ // Returns true if the lock belongs to dead PID, or is old.
+ // The attempt to delete it will tell us if it was really stale or not, though.
+ bool isApparentlyStale() const;
+
+#ifdef Q_OS_UNIX
+ static int checkFcntlWorksAfterFlock();
+#endif
+
+ QString fileName;
+#ifdef Q_OS_WIN
+ Qt::HANDLE fileHandle;
+#else
+ int fileHandle;
+#endif
+ int staleLockTime; // "int milliseconds" is big enough for 24 days
+ QLockFile::LockError lockError;
+ bool isLocked;
+};
+
+QT_END_NAMESPACE
+
+#endif /* QLOCKFILE_P_H */
diff --git a/src/corelib/io/qlockfile_unix.cpp b/src/corelib/io/qlockfile_unix.cpp
new file mode 100644
index 0000000000..ed3b399fbf
--- /dev/null
+++ b/src/corelib/io/qlockfile_unix.cpp
@@ -0,0 +1,207 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 David Faure <faure+bluesystems@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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, Digia gives you certain additional
+** rights. These rights are described in the Digia 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.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "private/qlockfile_p.h"
+
+#include "QtCore/qtemporaryfile.h"
+#include "QtCore/qcoreapplication.h"
+#include "QtCore/qfileinfo.h"
+#include "QtCore/qdebug.h"
+
+#include "private/qcore_unix_p.h" // qt_safe_open
+#include "private/qabstractfileengine_p.h"
+#include "private/qtemporaryfile_p.h"
+
+#include <sys/file.h> // flock
+#include <sys/types.h> // kill
+#include <signal.h> // kill
+
+QT_BEGIN_NAMESPACE
+
+static QString localHostName() // from QHostInfo::localHostName()
+{
+ char hostName[512];
+ if (gethostname(hostName, sizeof(hostName)) == -1)
+ return QString();
+ hostName[sizeof(hostName) - 1] = '\0';
+ return QString::fromLocal8Bit(hostName);
+}
+
+// ### merge into qt_safe_write?
+static qint64 qt_write_loop(int fd, const char *data, qint64 len)
+{
+ qint64 pos = 0;
+ while (pos < len) {
+ const qint64 ret = qt_safe_write(fd, data + pos, len - pos);
+ if (ret == -1) // e.g. partition full
+ return pos;
+ pos += ret;
+ }
+ return pos;
+}
+
+int QLockFilePrivate::checkFcntlWorksAfterFlock()
+{
+ QTemporaryFile file;
+ if (!file.open())
+ return -2;
+ const int fd = file.d_func()->engine()->handle();
+ if (flock(fd, LOCK_EX | LOCK_NB) == -1) // other threads, and other processes on a local fs
+ return -3;
+ struct flock flockData;
+ flockData.l_type = F_WRLCK;
+ flockData.l_whence = SEEK_SET;
+ flockData.l_start = 0;
+ flockData.l_len = 0; // 0 = entire file
+ flockData.l_pid = getpid();
+ if (fcntl(fd, F_SETLK, &flockData) == -1) // for networked filesystems
+ return 0;
+ return 1;
+}
+
+static QBasicAtomicInt fcntlOK = Q_BASIC_ATOMIC_INITIALIZER(-1);
+
+/*!
+ \internal
+ Checks that the OS isn't using POSIX locks to emulate flock().
+ Mac OS X is one of those.
+*/
+static bool fcntlWorksAfterFlock()
+{
+ int value = fcntlOK.load();
+ if (Q_UNLIKELY(value == -1)) {
+ value = QLockFilePrivate::checkFcntlWorksAfterFlock();
+ fcntlOK.store(value);
+ }
+ return value == 1;
+}
+
+static bool setNativeLocks(int fd)
+{
+ if (flock(fd, LOCK_EX | LOCK_NB) == -1) // other threads, and other processes on a local fs
+ return false;
+ struct flock flockData;
+ flockData.l_type = F_WRLCK;
+ flockData.l_whence = SEEK_SET;
+ flockData.l_start = 0;
+ flockData.l_len = 0; // 0 = entire file
+ flockData.l_pid = getpid();
+ if (fcntlWorksAfterFlock() && fcntl(fd, F_SETLK, &flockData) == -1) // for networked filesystems
+ return false;
+ return true;
+}
+
+QLockFile::LockError QLockFilePrivate::tryLock_sys()
+{
+ const QByteArray lockFileName = QFile::encodeName(fileName);
+ const int fd = qt_safe_open(lockFileName.constData(), O_WRONLY | O_CREAT | O_EXCL, 0644);
+ if (fd < 0) {
+ switch (errno) {
+ case EEXIST:
+ return QLockFile::LockFailedError;
+ case EACCES:
+ case EROFS:
+ return QLockFile::PermissionError;
+ default:
+ return QLockFile::UnknownError;
+ }
+ }
+ // Ensure nobody else can delete the file while we have it
+ if (!setNativeLocks(fd))
+ qWarning() << "setNativeLocks failed:" << strerror(errno);
+
+ // We hold the lock, continue.
+ fileHandle = fd;
+
+ // Assemble data, to write in a single call to write
+ // (otherwise we'd have to check every write call)
+ QByteArray fileData;
+ fileData += QByteArray::number(QCoreApplication::applicationPid());
+ fileData += '\n';
+ fileData += qAppName().toUtf8();
+ fileData += '\n';
+ fileData += localHostName().toUtf8();
+ fileData += '\n';
+
+ QLockFile::LockError error = QLockFile::NoError;
+ if (qt_write_loop(fd, fileData.constData(), fileData.size()) < fileData.size())
+ error = QLockFile::UnknownError; // partition full
+ return error;
+}
+
+bool QLockFilePrivate::removeStaleLock()
+{
+ const QByteArray lockFileName = QFile::encodeName(fileName);
+ const int fd = qt_safe_open(lockFileName.constData(), O_WRONLY, 0644);
+ if (fd < 0) // gone already?
+ return false;
+ bool success = setNativeLocks(fd) && (::unlink(lockFileName) == 0);
+ close(fd);
+ return success;
+}
+
+bool QLockFilePrivate::isApparentlyStale() const
+{
+ qint64 pid;
+ QString hostname, appname;
+ if (!getLockInfo(&pid, &hostname, &appname))
+ return false;
+ if (hostname == localHostName()) {
+ if (::kill(pid, 0) == -1 && errno == ESRCH)
+ return true; // PID doesn't exist anymore
+ }
+ const qint64 age = QFileInfo(fileName).lastModified().msecsTo(QDateTime::currentDateTime());
+ return staleLockTime > 0 && age > staleLockTime;
+}
+
+void QLockFile::unlock()
+{
+ Q_D(QLockFile);
+ if (!d->isLocked)
+ return;
+ close(d->fileHandle);
+ d->fileHandle = -1;
+ QFile::remove(d->fileName);
+ d->lockError = QLockFile::NoError;
+ d->isLocked = false;
+}
+
+QT_END_NAMESPACE
diff --git a/src/corelib/io/qlockfile_win.cpp b/src/corelib/io/qlockfile_win.cpp
new file mode 100644
index 0000000000..b5f6d9f3da
--- /dev/null
+++ b/src/corelib/io/qlockfile_win.cpp
@@ -0,0 +1,138 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 David Faure <faure+bluesystems@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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, Digia gives you certain additional
+** rights. These rights are described in the Digia 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.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "private/qlockfile_p.h"
+#include "private/qfilesystementry_p.h"
+#include <qt_windows.h>
+
+#include "QtCore/qcoreapplication.h"
+#include "QtCore/qfileinfo.h"
+#include "QtCore/qdatetime.h"
+#include "QtCore/qdebug.h"
+
+QT_BEGIN_NAMESPACE
+
+QLockFile::LockError QLockFilePrivate::tryLock_sys()
+{
+ SECURITY_ATTRIBUTES securityAtts = { sizeof(SECURITY_ATTRIBUTES), NULL, FALSE };
+ const QFileSystemEntry fileEntry(fileName);
+ // When writing, allow others to read.
+ // When reading, QFile will allow others to read and write, all good.
+ // Adding FILE_SHARE_DELETE would allow forceful deletion of stale files,
+ // but Windows doesn't allow recreating it while this handle is open anyway,
+ // so this would only create confusion (can't lock, but no lock file to read from).
+ const DWORD dwShareMode = FILE_SHARE_READ;
+ HANDLE fh = CreateFile((const wchar_t*)fileEntry.nativeFilePath().utf16(),
+ GENERIC_WRITE,
+ dwShareMode,
+ &securityAtts,
+ CREATE_NEW, // error if already exists
+ FILE_ATTRIBUTE_NORMAL,
+ NULL);
+ if (fh == INVALID_HANDLE_VALUE) {
+ const DWORD lastError = GetLastError();
+ switch (lastError) {
+ case ERROR_SHARING_VIOLATION:
+ case ERROR_ALREADY_EXISTS:
+ case ERROR_FILE_EXISTS:
+ case ERROR_ACCESS_DENIED: // readonly file, or file still in use by another process. Assume the latter, since we don't create it readonly.
+ return QLockFile::LockFailedError;
+ default:
+ qWarning() << "Got unexpected locking error" << lastError;
+ return QLockFile::UnknownError;
+ }
+ }
+
+ // We hold the lock, continue.
+ fileHandle = fh;
+ // Assemble data, to write in a single call to write
+ // (otherwise we'd have to check every write call)
+ QByteArray fileData;
+ fileData += QByteArray::number(QCoreApplication::applicationPid());
+ fileData += '\n';
+ fileData += qAppName().toUtf8();
+ fileData += '\n';
+ //fileData += localHostname(); // gethostname requires winsock init, see QHostInfo...
+ fileData += '\n';
+ DWORD bytesWritten = 0;
+ QLockFile::LockError error = QLockFile::NoError;
+ if (!WriteFile(fh, fileData.constData(), fileData.size(), &bytesWritten, NULL) || !FlushFileBuffers(fh))
+ error = QLockFile::UnknownError; // partition full
+ return error;
+}
+
+bool QLockFilePrivate::removeStaleLock()
+{
+ // QFile::remove fails on Windows if the other process is still using the file, so it's not stale.
+ return QFile::remove(fileName);
+}
+
+bool QLockFilePrivate::isApparentlyStale() const
+{
+ qint64 pid;
+ QString hostname, appname;
+ if (!getLockInfo(&pid, &hostname, &appname))
+ return false;
+
+ HANDLE procHandle = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pid);
+ if (!procHandle)
+ return true;
+ // We got a handle but check if process is still alive
+ DWORD dwR = ::WaitForSingleObject(procHandle, 0);
+ ::CloseHandle(procHandle);
+ if (dwR == WAIT_TIMEOUT)
+ return true;
+ const qint64 age = QFileInfo(fileName).lastModified().msecsTo(QDateTime::currentDateTime());
+ return staleLockTime > 0 && age > staleLockTime;
+}
+
+void QLockFile::unlock()
+{
+ Q_D(QLockFile);
+ if (!d->isLocked)
+ return;
+ CloseHandle(d->fileHandle);
+ QFile::remove(d->fileName);
+ d->lockError = QLockFile::NoError;
+ d->isLocked = false;
+}
+
+QT_END_NAMESPACE
diff --git a/src/corelib/io/qprocess.cpp b/src/corelib/io/qprocess.cpp
index 8409e7e479..3993cf5002 100644
--- a/src/corelib/io/qprocess.cpp
+++ b/src/corelib/io/qprocess.cpp
@@ -458,6 +458,9 @@ void QProcessPrivate::Channel::clear()
the program you want to run as arguments to start(). Arguments
are supplied as individual strings in a QStringList.
+ Alternatively, you can set the program to run with setProgram()
+ and setArguments(), and then call start() or open().
+
For example, the following code snippet runs the analog clock
example in the Fusion style on X11 platforms by passing strings
containing "-style" and "fusion" as two items in the list of
@@ -1946,6 +1949,58 @@ void QProcess::start(const QString &program, const QStringList &arguments, OpenM
return;
}
+ d->program = program;
+ d->arguments = arguments;
+
+ open(mode);
+}
+
+/*!
+ \since 5.1
+ \overload
+
+ Starts the program set by setProgram() with arguments set by setArguments().
+ The OpenMode is set to \a mode.
+
+ This method is a convenient alias to open().
+
+ \sa open(), setProgram(), setArguments()
+ */
+void QProcess::start(OpenMode mode)
+{
+ open(mode);
+}
+
+/*!
+ Starts the program set by setProgram() in a new process, if none is already
+ running, passing the command line arguments set by setArguments(). The OpenMode
+ is set to \a mode.
+
+ The QProcess object will immediately enter the Starting state. If the
+ process starts successfully, QProcess will emit started(); otherwise,
+ error() will be emitted. If the QProcess object is already running a
+ process, a warning may be printed at the console, the function will return false,
+ and the existing process will continue running.
+
+ \note Processes are started asynchronously, which means the started()
+ and error() signals may be delayed. Call waitForStarted() to make
+ sure the process has started (or has failed to start) and those signals
+ have been emitted. In this regard, a true return value merly means the process
+ was correcty initialized, not that the program was actually started.
+
+*/
+bool QProcess::open(OpenMode mode)
+{
+ Q_D(QProcess);
+ if (d->processState != NotRunning) {
+ qWarning("QProcess::start: Process is already running");
+ return false;
+ }
+ if (d->program.isEmpty()) {
+ qWarning("QProcess::start: program not set");
+ return false;
+ }
+
#if defined QPROCESS_DEBUG
qDebug() << "QProcess::start(" << program << ',' << arguments << ',' << mode << ')';
#endif
@@ -1967,14 +2022,13 @@ void QProcess::start(const QString &program, const QStringList &arguments, OpenM
d->stdoutChannel.closed = false;
d->stderrChannel.closed = false;
- d->program = program;
- d->arguments = arguments;
-
d->exitCode = 0;
d->exitStatus = NormalExit;
d->processError = QProcess::UnknownError;
d->errorString.clear();
d->startProcess();
+
+ return true;
}
@@ -2074,6 +2128,24 @@ QString QProcess::program() const
}
/*!
+ \since 5.1
+
+ Set the \a program to use when starting the process.
+ That function must be call before open()
+
+ \sa start(), setArguments(), program()
+*/
+void QProcess::setProgram(const QString &program)
+{
+ Q_D(QProcess);
+ if (d->processState != NotRunning) {
+ qWarning("QProcess::setProgram: Process is already running");
+ return;
+ }
+ d->program = program;
+}
+
+/*!
Returns the command line arguments the process was last started with.
\sa start()
@@ -2085,6 +2157,24 @@ QStringList QProcess::arguments() const
}
/*!
+ \since 5.1
+
+ Set the \a arguments to pass to the called program when starting the process.
+ That function must be call before open()
+
+ \sa start(), setProgram(), arguments()
+*/
+void QProcess::setArguments(const QStringList &arguments)
+{
+ Q_D(QProcess);
+ if (d->processState != NotRunning) {
+ qWarning("QProcess::setProgram: Process is already running");
+ return;
+ }
+ d->arguments = arguments;
+}
+
+/*!
Attempts to terminate the process.
The process may not exit as a result of calling this function (it is given
diff --git a/src/corelib/io/qprocess.h b/src/corelib/io/qprocess.h
index 2c6746b0ab..29adf37f74 100644
--- a/src/corelib/io/qprocess.h
+++ b/src/corelib/io/qprocess.h
@@ -46,8 +46,6 @@
#include <QtCore/qstringlist.h>
#include <QtCore/qshareddata.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -138,8 +136,14 @@ public:
void start(const QString &program, const QStringList &arguments, OpenMode mode = ReadWrite);
void start(const QString &command, OpenMode mode = ReadWrite);
+ void start(OpenMode mode = ReadWrite);
+ bool open(OpenMode mode = ReadWrite) Q_DECL_OVERRIDE;
+
QString program() const;
+ void setProgram(const QString &program);
+
QStringList arguments() const;
+ void setArguments(const QStringList & arguments);
ProcessChannelMode readChannelMode() const;
void setReadChannelMode(ProcessChannelMode mode);
@@ -261,6 +265,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QPROCESS_H
diff --git a/src/corelib/io/qprocess_unix.cpp b/src/corelib/io/qprocess_unix.cpp
index e159bf8f30..997848851d 100644
--- a/src/corelib/io/qprocess_unix.cpp
+++ b/src/corelib/io/qprocess_unix.cpp
@@ -328,16 +328,18 @@ void QProcessManager::unlock()
mutex.unlock();
}
-static void qt_create_pipe(int *pipe)
+static int qt_create_pipe(int *pipe)
{
if (pipe[0] != -1)
qt_safe_close(pipe[0]);
if (pipe[1] != -1)
qt_safe_close(pipe[1]);
- if (qt_safe_pipe(pipe) != 0) {
+ int pipe_ret = qt_safe_pipe(pipe);
+ if (pipe_ret != 0) {
qWarning("QProcessPrivate::createPipe: Cannot create pipe %p: %s",
pipe, qPrintable(qt_error_string(errno)));
}
+ return pipe_ret;
}
void QProcessPrivate::destroyPipe(int *pipe)
@@ -374,7 +376,8 @@ bool QProcessPrivate::createChannel(Channel &channel)
if (channel.type == Channel::Normal) {
// we're piping this channel to our own process
- qt_create_pipe(channel.pipe);
+ if (qt_create_pipe(channel.pipe) != 0)
+ return false;
// create the socket notifiers
if (threadData->eventDispatcher) {
@@ -458,7 +461,8 @@ bool QProcessPrivate::createChannel(Channel &channel)
Q_ASSERT(sink->pipe[0] == INVALID_Q_PIPE && sink->pipe[1] == INVALID_Q_PIPE);
Q_PIPE pipe[2] = { -1, -1 };
- qt_create_pipe(pipe);
+ if (qt_create_pipe(pipe) != 0)
+ return false;
sink->pipe[0] = pipe[0];
source->pipe[1] = pipe[1];
@@ -548,10 +552,15 @@ void QProcessPrivate::startProcess()
// Initialize pipes
if (!createChannel(stdinChannel) ||
!createChannel(stdoutChannel) ||
- !createChannel(stderrChannel))
+ !createChannel(stderrChannel) ||
+ qt_create_pipe(childStartedPipe) != 0 ||
+ qt_create_pipe(deathPipe) != 0) {
+ processError = QProcess::FailedToStart;
+ q->setErrorString(qt_error_string(errno));
+ emit q->error(processError);
+ cleanup();
return;
- qt_create_pipe(childStartedPipe);
- qt_create_pipe(deathPipe);
+ }
if (threadData->eventDispatcher) {
startupSocketNotifier = new QSocketNotifier(childStartedPipe[0],
@@ -1001,9 +1010,9 @@ static int select_msecs(int nfds, fd_set *fdread, fd_set *fdwrite, int timeout)
if (timeout < 0)
return qt_safe_select(nfds, fdread, fdwrite, 0, 0);
- struct timeval tv;
+ struct timespec tv;
tv.tv_sec = timeout / 1000;
- tv.tv_usec = (timeout % 1000) * 1000;
+ tv.tv_nsec = (timeout % 1000) * 1000 * 1000;
return qt_safe_select(nfds, fdread, fdwrite, 0, &tv);
}
@@ -1339,10 +1348,15 @@ bool QProcessPrivate::startDetached(const QString &program, const QStringList &a
// To catch the startup of the child
int startedPipe[2];
- qt_safe_pipe(startedPipe);
+ if (qt_safe_pipe(startedPipe) != 0)
+ return false;
// To communicate the pid of the child
int pidPipe[2];
- qt_safe_pipe(pidPipe);
+ if (qt_safe_pipe(pidPipe) != 0) {
+ qt_safe_close(startedPipe[0]);
+ qt_safe_close(startedPipe[1]);
+ return false;
+ }
pid_t childPid = fork();
if (childPid == 0) {
diff --git a/src/corelib/io/qresource.cpp b/src/corelib/io/qresource.cpp
index 0ce3ce3611..7dfc9b977c 100644
--- a/src/corelib/io/qresource.cpp
+++ b/src/corelib/io/qresource.cpp
@@ -62,15 +62,6 @@
//#define DEBUG_RESOURCE_MATCH
-#if defined(Q_OS_VXWORKS)
-# if defined(m_data)
-# undef m_data
-# endif
-# if defined(m_len)
-# undef m_len
-# endif
-#endif
-
QT_BEGIN_NAMESPACE
diff --git a/src/corelib/io/qresource.h b/src/corelib/io/qresource.h
index 1623792e0b..88467bd53b 100644
--- a/src/corelib/io/qresource.h
+++ b/src/corelib/io/qresource.h
@@ -47,8 +47,6 @@
#include <QtCore/qstringlist.h>
#include <QtCore/qlist.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -98,6 +96,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QRESOURCE_H
diff --git a/src/corelib/io/qsavefile.cpp b/src/corelib/io/qsavefile.cpp
new file mode 100644
index 0000000000..fee6a4c4d8
--- /dev/null
+++ b/src/corelib/io/qsavefile.cpp
@@ -0,0 +1,316 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 David Faure <faure@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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, Digia gives you certain additional
+** rights. These rights are described in the Digia 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.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qplatformdefs.h"
+#include "qsavefile.h"
+#include "private/qsavefile_p.h"
+#include "qfileinfo.h"
+#include "qabstractfileengine_p.h"
+#include "qdebug.h"
+#include "qtemporaryfile.h"
+#include "private/qiodevice_p.h"
+#include "private/qtemporaryfile_p.h"
+
+QT_BEGIN_NAMESPACE
+
+QSaveFilePrivate::QSaveFilePrivate()
+ : writeError(QFileDevice::NoError)
+{
+}
+
+QSaveFilePrivate::~QSaveFilePrivate()
+{
+}
+
+/*!
+ \class QSaveFile
+ \inmodule QtCore
+ \brief The QSaveFile class provides an interface for safely writing to files.
+
+ \ingroup io
+
+ \reentrant
+
+ \since 5.1
+
+ QSaveFile is an I/O device for writing text and binary files, without losing
+ existing data if the writing operation fails.
+
+ While writing, the contents will be written to a temporary file, and if
+ no error happened, commit() will move it to the final file. This ensures that
+ no data at the final file is lost in case an error happens while writing,
+ and no partially-written file is ever present at the final location. Always
+ use QSaveFile when saving entire documents to disk.
+
+ QSaveFile automatically detects errors while writing, such as the full partition
+ situation, where write() cannot write all the bytes. It will remember that
+ an error happened, and will discard the temporary file in commit().
+
+ Much like with QFile, the file is opened with open(). Data is usually read
+ and written using QDataStream or QTextStream, but you can also call the
+ QIODevice-inherited functions read(), readLine(), readAll(), write().
+
+ Unlike QFile, calling close() is not allowed. commit() replaces it. If commit()
+ was not called and the QSaveFile instance is destroyed, the temporary file is
+ discarded.
+
+ To abort saving due to an application error, call cancelWriting(), so that
+ even a call to commit() later on will not save.
+
+ \sa QTextStream, QDataStream, QFileInfo, QDir, QFile, QTemporaryFile
+*/
+
+/*!
+ Constructs a new file object with the given \a parent.
+*/
+QSaveFile::QSaveFile(QObject *parent)
+ : QFileDevice(*new QSaveFilePrivate, parent)
+{
+}
+/*!
+ Constructs a new file object to represent the file with the given \a name.
+*/
+QSaveFile::QSaveFile(const QString &name)
+ : QFileDevice(*new QSaveFilePrivate, 0)
+{
+ Q_D(QSaveFile);
+ d->fileName = name;
+}
+/*!
+ Constructs a new file object with the given \a parent to represent the
+ file with the specified \a name.
+*/
+QSaveFile::QSaveFile(const QString &name, QObject *parent)
+ : QFileDevice(*new QSaveFilePrivate, parent)
+{
+ Q_D(QSaveFile);
+ d->fileName = name;
+}
+
+/*!
+ Destroys the file object, discarding the saved contents unless commit() was called.
+*/
+QSaveFile::~QSaveFile()
+{
+ Q_D(QSaveFile);
+ QFileDevice::close();
+ if (d->fileEngine) {
+ d->fileEngine->remove();
+ delete d->fileEngine;
+ d->fileEngine = 0;
+ }
+}
+
+/*!
+ Returns the name set by setFileName() or to the QSaveFile
+ constructor.
+
+ \sa setFileName()
+*/
+QString QSaveFile::fileName() const
+{
+ return d_func()->fileName;
+}
+
+/*!
+ Sets the \a name of the file. The name can have no path, a
+ relative path, or an absolute path.
+
+ \sa QFile::setFileName(), fileName()
+*/
+void QSaveFile::setFileName(const QString &name)
+{
+ d_func()->fileName = name;
+}
+
+/*!
+ Opens the file using OpenMode \a mode, returning true if successful;
+ otherwise false.
+
+ Important: the \a mode must include QIODevice::WriteOnly.
+ It may also have additional flags, such as QIODevice::Text and QIODevice::Unbuffered.
+
+ QIODevice::ReadWrite and QIODevice::Append are not supported at the moment.
+
+ \sa QIODevice::OpenMode, setFileName()
+*/
+bool QSaveFile::open(OpenMode mode)
+{
+ Q_D(QSaveFile);
+ if (isOpen()) {
+ qWarning("QSaveFile::open: File (%s) already open", qPrintable(fileName()));
+ return false;
+ }
+ unsetError();
+ if ((mode & (ReadOnly | WriteOnly)) == 0) {
+ qWarning("QSaveFile::open: Open mode not specified");
+ return false;
+ }
+ // In the future we could implement ReadWrite by copying from the existing file to the temp file...
+ if ((mode & ReadOnly) || (mode & Append)) {
+ qWarning("QSaveFile::open: Unsupported open mode 0x%x", int(mode));
+ return false;
+ }
+
+ // check if existing file is writable
+ QFileInfo existingFile(d->fileName);
+ if (existingFile.exists() && !existingFile.isWritable()) {
+ d->setError(QFileDevice::WriteError, QSaveFile::tr("Existing file %1 is not writable").arg(d->fileName));
+ d->writeError = QFileDevice::WriteError;
+ return false;
+ }
+ d->fileEngine = new QTemporaryFileEngine(d->fileName);
+ // Same as in QFile: QIODevice provides the buffering, so there's no need to request it from the file engine.
+ if (!d->fileEngine->open(mode | QIODevice::Unbuffered)) {
+ QFileDevice::FileError err = d->fileEngine->error();
+ if (err == QFileDevice::UnspecifiedError)
+ err = QFileDevice::OpenError;
+ d->setError(err, d->fileEngine->errorString());
+ delete d->fileEngine;
+ d->fileEngine = 0;
+ return false;
+ }
+
+ QFileDevice::open(mode);
+ if (existingFile.exists())
+ setPermissions(existingFile.permissions());
+ return true;
+}
+
+/*!
+ \reimp
+ This method has been made private so that it cannot be called, in order to prevent mistakes.
+ In order to finish writing the file, call commit().
+ If instead you want to abort writing, call cancelWriting().
+*/
+void QSaveFile::close()
+{
+ qFatal("QSaveFile::close called");
+}
+
+/*!
+ Commits the changes to disk, if all previous writes were successful.
+
+ It is mandatory to call this at the end of the saving operation, otherwise the file will be
+ discarded.
+
+ If an error happened during writing, deletes the temporary file and returns false.
+ Otherwise, renames it to the final fileName and returns true on success.
+ Finally, closes the device.
+
+ \sa cancelWriting()
+*/
+bool QSaveFile::commit()
+{
+ Q_D(QSaveFile);
+ if (!d->fileEngine)
+ return false;
+
+ if (!isOpen()) {
+ qWarning("QSaveFile::commit: File (%s) is not open", qPrintable(fileName()));
+ return false;
+ }
+ QFileDevice::close(); // calls flush()
+
+ // Sync to disk if possible. Ignore errors (e.g. not supported).
+ d->fileEngine->syncToDisk();
+
+ if (d->writeError != QFileDevice::NoError) {
+ d->fileEngine->remove();
+ d->writeError = QFileDevice::NoError;
+ delete d->fileEngine;
+ d->fileEngine = 0;
+ return false;
+ }
+ // atomically replace old file with new file
+ // Can't use QFile::rename for that, must use the file engine directly
+ Q_ASSERT(d->fileEngine);
+ if (!d->fileEngine->renameOverwrite(d->fileName)) {
+ d->setError(d->fileEngine->error(), d->fileEngine->errorString());
+ d->fileEngine->remove();
+ delete d->fileEngine;
+ d->fileEngine = 0;
+ return false;
+ }
+ delete d->fileEngine;
+ d->fileEngine = 0;
+ return true;
+}
+
+/*!
+ Cancels writing the new file.
+
+ If the application changes its mind while saving, it can call cancelWriting(),
+ which sets an error code so that commit() will discard the temporary file.
+
+ Alternatively, it can simply make sure not to call commit().
+
+ Further write operations are possible after calling this method, but none
+ of it will have any effect, the written file will be discarded.
+
+ \sa commit()
+*/
+void QSaveFile::cancelWriting()
+{
+ Q_D(QSaveFile);
+ if (!isOpen())
+ return;
+ d->setError(QFileDevice::WriteError, QSaveFile::tr("Writing canceled by application"));
+ d->writeError = QFileDevice::WriteError;
+}
+
+/*!
+ \reimp
+*/
+qint64 QSaveFile::writeData(const char *data, qint64 len)
+{
+ Q_D(QSaveFile);
+ if (d->writeError != QFileDevice::NoError)
+ return -1;
+
+ const qint64 ret = QFileDevice::writeData(data, len);
+
+ if (d->error != QFileDevice::NoError)
+ d->writeError = d->error;
+ return ret;
+}
+
+QT_END_NAMESPACE
diff --git a/src/corelib/io/qsavefile.h b/src/corelib/io/qsavefile.h
new file mode 100644
index 0000000000..32af4a708e
--- /dev/null
+++ b/src/corelib/io/qsavefile.h
@@ -0,0 +1,90 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 David Faure <faure@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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, Digia gives you certain additional
+** rights. These rights are described in the Digia 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.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QSAVEFILE_H
+#define QSAVEFILE_H
+
+#include <QtCore/qfiledevice.h>
+#include <QtCore/qstring.h>
+
+#ifdef open
+#error qsavefile.h must be included before any header file that defines open
+#endif
+
+QT_BEGIN_NAMESPACE
+
+
+class QAbstractFileEngine;
+class QSaveFilePrivate;
+
+class Q_CORE_EXPORT QSaveFile : public QFileDevice
+{
+ Q_OBJECT
+ Q_DECLARE_PRIVATE(QSaveFile)
+
+public:
+
+ explicit QSaveFile(const QString &name);
+ explicit QSaveFile(QObject *parent = 0);
+ explicit QSaveFile(const QString &name, QObject *parent);
+ ~QSaveFile();
+
+ QString fileName() const Q_DECL_OVERRIDE;
+ void setFileName(const QString &name);
+
+ bool open(OpenMode flags) Q_DECL_OVERRIDE;
+ bool commit();
+
+ void cancelWriting();
+
+protected:
+ qint64 writeData(const char *data, qint64 len) Q_DECL_OVERRIDE;
+
+private:
+ void close() Q_DECL_OVERRIDE;
+
+private:
+ Q_DISABLE_COPY(QSaveFile)
+};
+
+QT_END_NAMESPACE
+
+#endif // QSAVEFILE_H
diff --git a/src/corelib/io/qsavefile_p.h b/src/corelib/io/qsavefile_p.h
new file mode 100644
index 0000000000..27e687835b
--- /dev/null
+++ b/src/corelib/io/qsavefile_p.h
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 David Faure <faure@kde.org>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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, Digia gives you certain additional
+** rights. These rights are described in the Digia 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.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QSAVEFILE_P_H
+#define QSAVEFILE_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "private/qfiledevice_p.h"
+
+QT_BEGIN_NAMESPACE
+
+class QSaveFilePrivate : public QFileDevicePrivate
+{
+ Q_DECLARE_PUBLIC(QSaveFile)
+
+protected:
+ QSaveFilePrivate();
+ ~QSaveFilePrivate();
+
+ QString fileName;
+
+ QFileDevice::FileError writeError;
+};
+
+QT_END_NAMESPACE
+
+#endif // QSAVEFILE_P_H
diff --git a/src/corelib/io/qsettings.h b/src/corelib/io/qsettings.h
index 99b8ac108f..a720b3d709 100644
--- a/src/corelib/io/qsettings.h
+++ b/src/corelib/io/qsettings.h
@@ -47,8 +47,6 @@
#include <QtCore/qstring.h>
#include <QtCore/qscopedpointer.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
QT_END_NAMESPACE
@@ -198,6 +196,4 @@ QT_END_NAMESPACE
#endif // QT_NO_SETTINGS
-QT_END_HEADER
-
#endif // QSETTINGS_H
diff --git a/src/corelib/io/qstandardpaths.h b/src/corelib/io/qstandardpaths.h
index 9b95d26ce1..2376b7d6c8 100644
--- a/src/corelib/io/qstandardpaths.h
+++ b/src/corelib/io/qstandardpaths.h
@@ -44,8 +44,6 @@
#include <QtCore/qstringlist.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -102,6 +100,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSTANDARDPATHS_H
diff --git a/src/corelib/io/qtemporarydir.cpp b/src/corelib/io/qtemporarydir.cpp
index 6782fcb986..755c31f371 100644
--- a/src/corelib/io/qtemporarydir.cpp
+++ b/src/corelib/io/qtemporarydir.cpp
@@ -52,7 +52,7 @@
#endif
#include <stdlib.h> // mkdtemp
-#if defined(Q_OS_QNX) || defined(Q_OS_WIN)
+#if defined(Q_OS_QNX) || defined(Q_OS_WIN) || defined(Q_OS_ANDROID)
#include <private/qfilesystemengine_p.h>
#endif
@@ -94,9 +94,9 @@ static QString defaultTemplateName()
return QDir::tempPath() + QLatin1Char('/') + baseName + QLatin1String("-XXXXXX");
}
-#if defined(Q_OS_QNX ) || defined(Q_OS_WIN)
-static char *mkdtemp(char *templateName)
+static char *q_mkdtemp(char *templateName)
{
+#if defined(Q_OS_QNX ) || defined(Q_OS_WIN) || defined(Q_OS_ANDROID)
static const char letters[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
const size_t length = strlen(templateName);
@@ -137,17 +137,17 @@ static char *mkdtemp(char *templateName)
}
}
return 0;
-}
-#elif defined(Q_OS_LINUX_ANDROID)
-extern char *mkdtemp(char *);
+#else
+ return mkdtemp(templateName);
#endif
+}
void QTemporaryDirPrivate::create(const QString &templateName)
{
QByteArray buffer = QFile::encodeName(templateName);
if (!buffer.endsWith("XXXXXX"))
buffer += "XXXXXX";
- if (mkdtemp(buffer.data())) { // modifies buffer
+ if (q_mkdtemp(buffer.data())) { // modifies buffer
success = true;
path = QFile::decodeName(buffer.constData());
}
diff --git a/src/corelib/io/qtemporarydir.h b/src/corelib/io/qtemporarydir.h
index b22c8f9329..47252cb5e5 100644
--- a/src/corelib/io/qtemporarydir.h
+++ b/src/corelib/io/qtemporarydir.h
@@ -45,8 +45,6 @@
#include <QtCore/qdir.h>
#include <QtCore/QScopedPointer>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -79,6 +77,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QTEMPORARYDIR_H
diff --git a/src/corelib/io/qtemporaryfile.cpp b/src/corelib/io/qtemporaryfile.cpp
index 9408727d25..d3a6e3c238 100644
--- a/src/corelib/io/qtemporaryfile.cpp
+++ b/src/corelib/io/qtemporaryfile.cpp
@@ -44,10 +44,9 @@
#ifndef QT_NO_TEMPORARYFILE
#include "qplatformdefs.h"
+#include "private/qtemporaryfile_p.h"
#include "private/qfile_p.h"
-#include "private/qfsfileengine_p.h"
#include "private/qsystemerror_p.h"
-#include "private/qfilesystemengine_p.h"
#if !defined(Q_OS_WIN)
#include "private/qcore_unix_p.h" // overrides QT_OPEN
@@ -218,36 +217,6 @@ static bool createFileFromTemplate(NativeFileHandle &file,
}
//************* QTemporaryFileEngine
-class QTemporaryFileEngine : public QFSFileEngine
-{
- Q_DECLARE_PRIVATE(QFSFileEngine)
-public:
- QTemporaryFileEngine(const QString &file, bool fileIsTemplate = true)
- : QFSFileEngine(), filePathIsTemplate(fileIsTemplate),
- filePathWasTemplate(fileIsTemplate)
- {
- Q_D(QFSFileEngine);
- d->fileEntry = QFileSystemEntry(file);
-
- if (!filePathIsTemplate)
- QFSFileEngine::setFileName(file);
- }
-
- ~QTemporaryFileEngine();
-
- bool isReallyOpen();
- void setFileName(const QString &file);
- void setFileTemplate(const QString &fileTemplate);
-
- bool open(QIODevice::OpenMode flags);
- bool remove();
- bool rename(const QString &newName);
- bool close();
-
- bool filePathIsTemplate;
- bool filePathWasTemplate;
-};
-
QTemporaryFileEngine::~QTemporaryFileEngine()
{
QFSFileEngine::close();
@@ -398,6 +367,12 @@ bool QTemporaryFileEngine::rename(const QString &newName)
return QFSFileEngine::rename(newName);
}
+bool QTemporaryFileEngine::renameOverwrite(const QString &newName)
+{
+ QFSFileEngine::close();
+ return QFSFileEngine::renameOverwrite(newName);
+}
+
bool QTemporaryFileEngine::close()
{
// Don't close the file, just seek to the front.
@@ -407,19 +382,6 @@ bool QTemporaryFileEngine::close()
}
//************* QTemporaryFilePrivate
-class QTemporaryFilePrivate : public QFilePrivate
-{
- Q_DECLARE_PUBLIC(QTemporaryFile)
-
-protected:
- QTemporaryFilePrivate();
- ~QTemporaryFilePrivate();
-
- QAbstractFileEngine *engine() const;
-
- bool autoRemove;
- QString templateName;
-};
QTemporaryFilePrivate::QTemporaryFilePrivate() : autoRemove(true)
{
@@ -440,7 +402,7 @@ QAbstractFileEngine *QTemporaryFilePrivate::engine() const
return fileEngine;
}
-static QString defaultTemplateName()
+QString QTemporaryFilePrivate::defaultTemplateName()
{
QString baseName;
#if defined(QT_BUILD_CORE_LIB)
@@ -506,7 +468,7 @@ QTemporaryFile::QTemporaryFile()
: QFile(*new QTemporaryFilePrivate)
{
Q_D(QTemporaryFile);
- d->templateName = defaultTemplateName();
+ d->templateName = QTemporaryFilePrivate::defaultTemplateName();
}
QTemporaryFile::QTemporaryFile(const QString &templateName)
@@ -529,7 +491,7 @@ QTemporaryFile::QTemporaryFile()
: QFile(*new QTemporaryFilePrivate, 0)
{
Q_D(QTemporaryFile);
- d->templateName = defaultTemplateName();
+ d->templateName = QTemporaryFilePrivate::defaultTemplateName();
}
/*!
@@ -565,7 +527,7 @@ QTemporaryFile::QTemporaryFile(QObject *parent)
: QFile(*new QTemporaryFilePrivate, parent)
{
Q_D(QTemporaryFile);
- d->templateName = defaultTemplateName();
+ d->templateName = QTemporaryFilePrivate::defaultTemplateName();
}
/*!
diff --git a/src/corelib/io/qtemporaryfile.h b/src/corelib/io/qtemporaryfile.h
index b497d9de93..09aa53c33b 100644
--- a/src/corelib/io/qtemporaryfile.h
+++ b/src/corelib/io/qtemporaryfile.h
@@ -49,14 +49,13 @@
#error qtemporaryfile.h must be included before any header file that defines open
#endif
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
#ifndef QT_NO_TEMPORARYFILE
class QTemporaryFilePrivate;
+class QLockFilePrivate;
class Q_CORE_EXPORT QTemporaryFile : public QFile
{
@@ -98,6 +97,7 @@ protected:
private:
friend class QFile;
+ friend class QLockFilePrivate;
Q_DISABLE_COPY(QTemporaryFile)
};
@@ -105,6 +105,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QTEMPORARYFILE_H
diff --git a/src/corelib/io/qtemporaryfile_p.h b/src/corelib/io/qtemporaryfile_p.h
new file mode 100644
index 0000000000..d274f60ecc
--- /dev/null
+++ b/src/corelib/io/qtemporaryfile_p.h
@@ -0,0 +1,103 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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, Digia gives you certain additional
+** rights. These rights are described in the Digia 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.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QTEMPORARYFILE_P_H
+#define QTEMPORARYFILE_P_H
+
+#include "private/qfsfileengine_p.h"
+#include "private/qfilesystemengine_p.h"
+#include "private/qfile_p.h"
+
+QT_BEGIN_NAMESPACE
+
+class QTemporaryFilePrivate : public QFilePrivate
+{
+ Q_DECLARE_PUBLIC(QTemporaryFile)
+
+protected:
+ QTemporaryFilePrivate();
+ ~QTemporaryFilePrivate();
+
+ QAbstractFileEngine *engine() const;
+
+ bool autoRemove;
+ QString templateName;
+
+ static QString defaultTemplateName();
+
+ friend class QLockFilePrivate;
+};
+
+class QTemporaryFileEngine : public QFSFileEngine
+{
+ Q_DECLARE_PRIVATE(QFSFileEngine)
+public:
+ QTemporaryFileEngine(const QString &file, bool fileIsTemplate = true)
+ : QFSFileEngine(), filePathIsTemplate(fileIsTemplate),
+ filePathWasTemplate(fileIsTemplate)
+ {
+ Q_D(QFSFileEngine);
+ d->fileEntry = QFileSystemEntry(file);
+
+ if (!filePathIsTemplate)
+ QFSFileEngine::setFileName(file);
+ }
+
+ ~QTemporaryFileEngine();
+
+ bool isReallyOpen();
+ void setFileName(const QString &file);
+ void setFileTemplate(const QString &fileTemplate);
+
+ bool open(QIODevice::OpenMode flags);
+ bool remove();
+ bool rename(const QString &newName);
+ bool renameOverwrite(const QString &newName);
+ bool close();
+
+ bool filePathIsTemplate;
+ bool filePathWasTemplate;
+};
+
+QT_END_NAMESPACE
+
+#endif /* QTEMPORARYFILE_P_H */
+
diff --git a/src/corelib/io/qtextstream.cpp b/src/corelib/io/qtextstream.cpp
index 70c6eed9da..8459cdd158 100644
--- a/src/corelib/io/qtextstream.cpp
+++ b/src/corelib/io/qtextstream.cpp
@@ -226,12 +226,10 @@ static const int QTEXTSTREAM_BUFFERSIZE = 16384;
*/
#include "qtextstream.h"
+#include "private/qtextstream_p.h"
#include "qbuffer.h"
#include "qfile.h"
#include "qnumeric.h"
-#ifndef QT_NO_TEXTCODEC
-#include "qtextcodec.h"
-#endif
#ifndef Q_OS_WINCE
#include <locale.h>
#endif
@@ -315,119 +313,7 @@ QT_END_NAMESPACE
QT_BEGIN_NAMESPACE
-#ifndef QT_NO_QOBJECT
-class QDeviceClosedNotifier : public QObject
-{
- Q_OBJECT
-public:
- inline QDeviceClosedNotifier()
- { }
-
- inline void setupDevice(QTextStream *stream, QIODevice *device)
- {
- disconnect();
- if (device)
- connect(device, SIGNAL(aboutToClose()), this, SLOT(flushStream()));
- this->stream = stream;
- }
-
-public Q_SLOTS:
- inline void flushStream() { stream->flush(); }
-
-private:
- QTextStream *stream;
-};
-#endif
-
//-------------------------------------------------------------------
-class QTextStreamPrivate
-{
- Q_DECLARE_PUBLIC(QTextStream)
-public:
- QTextStreamPrivate(QTextStream *q_ptr);
- ~QTextStreamPrivate();
- void reset();
-
- // device
- QIODevice *device;
-#ifndef QT_NO_QOBJECT
- QDeviceClosedNotifier deviceClosedNotifier;
-#endif
- bool deleteDevice;
-
- // string
- QString *string;
- int stringOffset;
- QIODevice::OpenMode stringOpenMode;
-
-#ifndef QT_NO_TEXTCODEC
- // codec
- QTextCodec *codec;
- QTextCodec::ConverterState readConverterState;
- QTextCodec::ConverterState writeConverterState;
- QTextCodec::ConverterState *readConverterSavedState;
- bool autoDetectUnicode;
-#endif
-
- // i/o
- enum TokenDelimiter {
- Space,
- NotSpace,
- EndOfLine
- };
-
- QString read(int maxlen);
- bool scan(const QChar **ptr, int *tokenLength,
- int maxlen, TokenDelimiter delimiter);
- inline const QChar *readPtr() const;
- inline void consumeLastToken();
- inline void consume(int nchars);
- void saveConverterState(qint64 newPos);
- void restoreToSavedConverterState();
- int lastTokenSize;
-
- // Return value type for getNumber()
- enum NumberParsingStatus {
- npsOk,
- npsMissingDigit,
- npsInvalidPrefix
- };
-
- inline bool getChar(QChar *ch);
- inline void ungetChar(QChar ch);
- NumberParsingStatus getNumber(qulonglong *l);
- bool getReal(double *f);
-
- inline void write(const QString &data);
- inline void putString(const QString &ch, bool number = false);
- void putNumber(qulonglong number, bool negative);
-
- // buffers
- bool fillReadBuffer(qint64 maxBytes = -1);
- void resetReadBuffer();
- void flushWriteBuffer();
- QString writeBuffer;
- QString readBuffer;
- int readBufferOffset;
- int readConverterSavedStateOffset; //the offset between readBufferStartDevicePos and that start of the buffer
- qint64 readBufferStartDevicePos;
-
- // streaming parameters
- int realNumberPrecision;
- int integerBase;
- int fieldWidth;
- QChar padChar;
- QTextStream::FieldAlignment fieldAlignment;
- QTextStream::RealNumberNotation realNumberNotation;
- QTextStream::NumberFlags numberFlags;
-
- // status
- QTextStream::Status status;
-
- QLocale locale;
-
- QTextStream *q_ptr;
-};
/*!
\internal
@@ -481,10 +367,7 @@ static void copyConverterStateHelper(QTextCodec::ConverterState *dest,
}
#endif
-/*!
- \internal
-*/
-void QTextStreamPrivate::reset()
+void QTextStreamPrivate::Params::reset()
{
realNumberPrecision = 6;
integerBase = 0;
@@ -493,6 +376,14 @@ void QTextStreamPrivate::reset()
fieldAlignment = QTextStream::AlignRight;
realNumberNotation = QTextStream::SmartNotation;
numberFlags = 0;
+}
+
+/*!
+ \internal
+*/
+void QTextStreamPrivate::reset()
+{
+ params.reset();
device = 0;
deleteDevice = false;
@@ -985,15 +876,17 @@ inline void QTextStreamPrivate::putString(const QString &s, bool number)
QString tmp = s;
// handle padding
- int padSize = fieldWidth - s.size();
+ int padSize = params.fieldWidth - s.size();
if (padSize > 0) {
- QString pad(padSize, padChar);
- if (fieldAlignment == QTextStream::AlignLeft) {
- tmp.append(QString(padSize, padChar));
- } else if (fieldAlignment == QTextStream::AlignRight
- || fieldAlignment == QTextStream::AlignAccountingStyle) {
- tmp.prepend(QString(padSize, padChar));
- if (fieldAlignment == QTextStream::AlignAccountingStyle && number) {
+ QString pad(padSize, params.padChar);
+ switch (params.fieldAlignment) {
+ case QTextStream::AlignLeft:
+ tmp.append(pad);
+ break;
+ case QTextStream::AlignRight:
+ case QTextStream::AlignAccountingStyle:
+ tmp.prepend(pad);
+ if (params.fieldAlignment == QTextStream::AlignAccountingStyle && number) {
const QChar sign = s.size() > 0 ? s.at(0) : QChar();
if (sign == locale.negativeSign() || sign == locale.positiveSign()) {
QChar *data = tmp.data();
@@ -1001,9 +894,11 @@ inline void QTextStreamPrivate::putString(const QString &s, bool number)
data[0] = sign;
}
}
- } else if (fieldAlignment == QTextStream::AlignCenter) {
- tmp.prepend(QString(padSize/2, padChar));
- tmp.append(QString(padSize - padSize/2, padChar));
+ break;
+ case QTextStream::AlignCenter:
+ tmp.prepend(QString(padSize/2, params.padChar));
+ tmp.append(QString(padSize - padSize/2, params.padChar));
+ break;
}
}
@@ -1175,13 +1070,7 @@ void QTextStream::reset()
{
Q_D(QTextStream);
- d->realNumberPrecision = 6;
- d->integerBase = 0;
- d->fieldWidth = 0;
- d->padChar = QLatin1Char(' ');
- d->fieldAlignment = QTextStream::AlignRight;
- d->realNumberNotation = QTextStream::SmartNotation;
- d->numberFlags = 0;
+ d->params.reset();
}
/*!
@@ -1400,7 +1289,7 @@ QString *QTextStream::string() const
void QTextStream::setFieldAlignment(FieldAlignment mode)
{
Q_D(QTextStream);
- d->fieldAlignment = mode;
+ d->params.fieldAlignment = mode;
}
/*!
@@ -1411,7 +1300,7 @@ void QTextStream::setFieldAlignment(FieldAlignment mode)
QTextStream::FieldAlignment QTextStream::fieldAlignment() const
{
Q_D(const QTextStream);
- return d->fieldAlignment;
+ return d->params.fieldAlignment;
}
/*!
@@ -1432,7 +1321,7 @@ QTextStream::FieldAlignment QTextStream::fieldAlignment() const
void QTextStream::setPadChar(QChar ch)
{
Q_D(QTextStream);
- d->padChar = ch;
+ d->params.padChar = ch;
}
/*!
@@ -1443,7 +1332,7 @@ void QTextStream::setPadChar(QChar ch)
QChar QTextStream::padChar() const
{
Q_D(const QTextStream);
- return d->padChar;
+ return d->params.padChar;
}
/*!
@@ -1461,7 +1350,7 @@ QChar QTextStream::padChar() const
void QTextStream::setFieldWidth(int width)
{
Q_D(QTextStream);
- d->fieldWidth = width;
+ d->params.fieldWidth = width;
}
/*!
@@ -1472,7 +1361,7 @@ void QTextStream::setFieldWidth(int width)
int QTextStream::fieldWidth() const
{
Q_D(const QTextStream);
- return d->fieldWidth;
+ return d->params.fieldWidth;
}
/*!
@@ -1486,7 +1375,7 @@ int QTextStream::fieldWidth() const
void QTextStream::setNumberFlags(NumberFlags flags)
{
Q_D(QTextStream);
- d->numberFlags = flags;
+ d->params.numberFlags = flags;
}
/*!
@@ -1497,7 +1386,7 @@ void QTextStream::setNumberFlags(NumberFlags flags)
QTextStream::NumberFlags QTextStream::numberFlags() const
{
Q_D(const QTextStream);
- return d->numberFlags;
+ return d->params.numberFlags;
}
/*!
@@ -1513,7 +1402,7 @@ QTextStream::NumberFlags QTextStream::numberFlags() const
void QTextStream::setIntegerBase(int base)
{
Q_D(QTextStream);
- d->integerBase = base;
+ d->params.integerBase = base;
}
/*!
@@ -1525,7 +1414,7 @@ void QTextStream::setIntegerBase(int base)
int QTextStream::integerBase() const
{
Q_D(const QTextStream);
- return d->integerBase;
+ return d->params.integerBase;
}
/*!
@@ -1539,7 +1428,7 @@ int QTextStream::integerBase() const
void QTextStream::setRealNumberNotation(RealNumberNotation notation)
{
Q_D(QTextStream);
- d->realNumberNotation = notation;
+ d->params.realNumberNotation = notation;
}
/*!
@@ -1550,7 +1439,7 @@ void QTextStream::setRealNumberNotation(RealNumberNotation notation)
QTextStream::RealNumberNotation QTextStream::realNumberNotation() const
{
Q_D(const QTextStream);
- return d->realNumberNotation;
+ return d->params.realNumberNotation;
}
/*!
@@ -1567,10 +1456,10 @@ void QTextStream::setRealNumberPrecision(int precision)
Q_D(QTextStream);
if (precision < 0) {
qWarning("QTextStream::setRealNumberPrecision: Invalid precision (%d)", precision);
- d->realNumberPrecision = 6;
+ d->params.realNumberPrecision = 6;
return;
}
- d->realNumberPrecision = precision;
+ d->params.realNumberPrecision = precision;
}
/*!
@@ -1582,7 +1471,7 @@ void QTextStream::setRealNumberPrecision(int precision)
int QTextStream::realNumberPrecision() const
{
Q_D(const QTextStream);
- return d->realNumberPrecision;
+ return d->params.realNumberPrecision;
}
/*!
@@ -1722,7 +1611,7 @@ QTextStreamPrivate::NumberParsingStatus QTextStreamPrivate::getNumber(qulonglong
consumeLastToken();
// detect int encoding
- int base = integerBase;
+ int base = params.integerBase;
if (base == 0) {
QChar ch;
if (!getChar(&ch))
@@ -2300,6 +2189,7 @@ void QTextStreamPrivate::putNumber(qulonglong number, bool negative)
QString result;
unsigned flags = 0;
+ const QTextStream::NumberFlags numberFlags = params.numberFlags;
if (numberFlags & QTextStream::ShowBase)
flags |= QLocalePrivate::ShowBase;
if (numberFlags & QTextStream::ForceSign)
@@ -2315,7 +2205,7 @@ void QTextStreamPrivate::putNumber(qulonglong number, bool negative)
flags |= QLocalePrivate::ThousandsGroup;
const QLocalePrivate *dd = locale.d;
- int base = integerBase ? integerBase : 10;
+ int base = params.integerBase ? params.integerBase : 10;
if (negative && base == 10) {
result = dd->longLongToString(-static_cast<qlonglong>(number), -1,
base, -1, flags);
@@ -2330,7 +2220,7 @@ void QTextStreamPrivate::putNumber(qulonglong number, bool negative)
result = dd->unsLongLongToString(number, -1, base, -1, flags);
// workaround for backward compatibility - in octal form with
// ShowBase flag set zero should be written as '00'
- if (number == 0 && base == 8 && numberFlags & QTextStream::ShowBase
+ if (number == 0 && base == 8 && params.numberFlags & QTextStream::ShowBase
&& result == QLatin1String("0")) {
result.prepend(QLatin1Char('0'));
}
@@ -2524,7 +2414,7 @@ QTextStream &QTextStream::operator<<(double f)
flags |= QLocalePrivate::Alternate;
const QLocalePrivate *dd = d->locale.d;
- QString num = dd->doubleToString(f, d->realNumberPrecision, form, -1, flags);
+ QString num = dd->doubleToString(f, d->params.realNumberPrecision, form, -1, flags);
d->putString(num, true);
return *this;
}
@@ -2605,13 +2495,13 @@ QTextStream &QTextStream::operator<<(const void *ptr)
{
Q_D(QTextStream);
CHECK_VALID_STREAM(*this);
- int oldBase = d->integerBase;
- NumberFlags oldFlags = d->numberFlags;
- d->integerBase = 16;
- d->numberFlags |= ShowBase;
+ const int oldBase = d->params.integerBase;
+ const NumberFlags oldFlags = d->params.numberFlags;
+ d->params.integerBase = 16;
+ d->params.numberFlags |= ShowBase;
d->putNumber(reinterpret_cast<quintptr>(ptr), false);
- d->integerBase = oldBase;
- d->numberFlags = oldFlags;
+ d->params.integerBase = oldBase;
+ d->params.numberFlags = oldFlags;
return *this;
}
@@ -3130,7 +3020,3 @@ QLocale QTextStream::locale() const
QT_END_NAMESPACE
-#ifndef QT_NO_QOBJECT
-#include "qtextstream.moc"
-#endif
-
diff --git a/src/corelib/io/qtextstream.h b/src/corelib/io/qtextstream.h
index 3c25e0587a..6d143bdca7 100644
--- a/src/corelib/io/qtextstream.h
+++ b/src/corelib/io/qtextstream.h
@@ -54,8 +54,6 @@
#error qtextstream.h must be included before any header file that defines Status
#endif
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -194,6 +192,7 @@ public:
private:
Q_DISABLE_COPY(QTextStream)
+ friend class QDebugStateSaverPrivate;
QScopedPointer<QTextStreamPrivate> d_ptr;
};
@@ -284,6 +283,4 @@ inline QTextStreamManipulator qSetRealNumberPrecision(int precision)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QTEXTSTREAM_H
diff --git a/src/corelib/io/qtextstream_p.h b/src/corelib/io/qtextstream_p.h
new file mode 100644
index 0000000000..d5d5288426
--- /dev/null
+++ b/src/corelib/io/qtextstream_p.h
@@ -0,0 +1,185 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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, Digia gives you certain additional
+** rights. These rights are described in the Digia 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.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QTEXTSTREAM_P_H
+#define QTEXTSTREAM_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "qtextstream.h"
+#ifndef QT_NO_TEXTCODEC
+#include "qtextcodec.h"
+#endif
+
+QT_BEGIN_NAMESPACE
+
+#ifndef QT_NO_QOBJECT
+class QDeviceClosedNotifier : public QObject
+{
+ Q_OBJECT
+public:
+ inline QDeviceClosedNotifier()
+ { }
+
+ inline void setupDevice(QTextStream *stream, QIODevice *device)
+ {
+ disconnect();
+ if (device)
+ connect(device, SIGNAL(aboutToClose()), this, SLOT(flushStream()));
+ this->stream = stream;
+ }
+
+public Q_SLOTS:
+ inline void flushStream() { stream->flush(); }
+
+private:
+ QTextStream *stream;
+};
+#endif
+
+class QTextStreamPrivate
+{
+ Q_DECLARE_PUBLIC(QTextStream)
+public:
+ QTextStreamPrivate(QTextStream *q_ptr);
+ ~QTextStreamPrivate();
+ void reset();
+
+ // device
+ QIODevice *device;
+#ifndef QT_NO_QOBJECT
+ QDeviceClosedNotifier deviceClosedNotifier;
+#endif
+ bool deleteDevice;
+
+ // string
+ QString *string;
+ int stringOffset;
+ QIODevice::OpenMode stringOpenMode;
+
+#ifndef QT_NO_TEXTCODEC
+ // codec
+ QTextCodec *codec;
+ QTextCodec::ConverterState readConverterState;
+ QTextCodec::ConverterState writeConverterState;
+ QTextCodec::ConverterState *readConverterSavedState;
+ bool autoDetectUnicode;
+#endif
+
+ // i/o
+ enum TokenDelimiter {
+ Space,
+ NotSpace,
+ EndOfLine
+ };
+
+ QString read(int maxlen);
+ bool scan(const QChar **ptr, int *tokenLength,
+ int maxlen, TokenDelimiter delimiter);
+ inline const QChar *readPtr() const;
+ inline void consumeLastToken();
+ inline void consume(int nchars);
+ void saveConverterState(qint64 newPos);
+ void restoreToSavedConverterState();
+ int lastTokenSize;
+
+ // Return value type for getNumber()
+ enum NumberParsingStatus {
+ npsOk,
+ npsMissingDigit,
+ npsInvalidPrefix
+ };
+
+ inline bool getChar(QChar *ch);
+ inline void ungetChar(QChar ch);
+ NumberParsingStatus getNumber(qulonglong *l);
+ bool getReal(double *f);
+
+ inline void write(const QString &data);
+ inline void putString(const QString &ch, bool number = false);
+ void putNumber(qulonglong number, bool negative);
+
+ // buffers
+ bool fillReadBuffer(qint64 maxBytes = -1);
+ void resetReadBuffer();
+ void flushWriteBuffer();
+ QString writeBuffer;
+ QString readBuffer;
+ int readBufferOffset;
+ int readConverterSavedStateOffset; //the offset between readBufferStartDevicePos and that start of the buffer
+ qint64 readBufferStartDevicePos;
+
+ // streaming parameters
+ class Params
+ {
+ public:
+ void reset();
+
+ int realNumberPrecision;
+ int integerBase;
+ int fieldWidth;
+ QChar padChar;
+ QTextStream::FieldAlignment fieldAlignment;
+ QTextStream::RealNumberNotation realNumberNotation;
+ QTextStream::NumberFlags numberFlags;
+ };
+ Params params;
+
+ // status
+ QTextStream::Status status;
+
+ QLocale locale;
+
+ QTextStream *q_ptr;
+};
+
+QT_END_NAMESPACE
+
+#endif // QTEXTSTREAM_P_H
diff --git a/src/corelib/io/qtldurl.cpp b/src/corelib/io/qtldurl.cpp
index 436e6a4568..dd4301e9f1 100644
--- a/src/corelib/io/qtldurl.cpp
+++ b/src/corelib/io/qtldurl.cpp
@@ -51,12 +51,22 @@ QT_BEGIN_NAMESPACE
static bool containsTLDEntry(const QString &entry)
{
int index = qt_hash(entry) % tldCount;
- int currentDomainIndex = tldIndices[index];
- while (currentDomainIndex < tldIndices[index+1]) {
- QString currentEntry = QString::fromUtf8(tldData + currentDomainIndex);
+
+ // select the right chunk from the big table
+ short chunk = 0;
+ uint chunkIndex = tldIndices[index], offset = 0;
+ while (tldIndices[index] >= tldChunks[chunk] && chunk < tldChunkCount) {
+ chunkIndex -= tldChunks[chunk];
+ offset += tldChunks[chunk];
+ chunk++;
+ }
+
+ // check all the entries from the given index
+ while (chunkIndex < tldIndices[index+1] - offset) {
+ QString currentEntry = QString::fromUtf8(tldData[chunk] + chunkIndex);
if (currentEntry == entry)
return true;
- currentDomainIndex += qstrlen(tldData + currentDomainIndex) + 1; // +1 for the ending \0
+ chunkIndex += qstrlen(tldData[chunk] + chunkIndex) + 1; // +1 for the ending \0
}
return false;
}
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp
index 7ff23d931c..c71bb3afac 100644
--- a/src/corelib/io/qurl.cpp
+++ b/src/corelib/io/qurl.cpp
@@ -333,11 +333,6 @@ static inline QString ftpScheme()
return QStringLiteral("ftp");
}
-static inline QString httpScheme()
-{
- return QStringLiteral("http");
-}
-
static inline QString fileScheme()
{
return QStringLiteral("file");
@@ -660,7 +655,7 @@ static const ushort encodedFragmentActions[] = {
encode(']'), // 6
0
};
-static const ushort * const decodedFragmentInUrlActions = 0;
+//static const ushort * const decodedFragmentInUrlActions = 0;
static const ushort * const decodedFragmentInIsolationActions = 0;
// the query is handled specially: the decodedQueryXXX tables are run with
@@ -3765,6 +3760,37 @@ QString QUrl::errorString() const
}
/*!
+ \since 5.1
+
+ Converts a list of \a urls into a list of QStrings, using toString(\a options).
+*/
+QStringList QUrl::toStringList(const QList<QUrl> &urls, FormattingOptions options)
+{
+ QStringList lst;
+ lst.reserve(urls.size());
+ foreach (const QUrl &url, urls)
+ lst.append(url.toString(options));
+ return lst;
+
+}
+
+/*!
+ \since 5.1
+
+ Converts a list of strings representing \a urls into a list of urls, using QUrl(str, \a mode).
+ Note that this means all strings must be urls, not for instance local paths.
+*/
+QList<QUrl> QUrl::fromStringList(const QStringList &urls, ParsingMode mode)
+{
+ QList<QUrl> lst;
+ lst.reserve(urls.size());
+ foreach (const QString &str, urls) {
+ lst.append(QUrl(str, mode));
+ }
+ return lst;
+}
+
+/*!
\typedef QUrl::DataPtr
\internal
*/
diff --git a/src/corelib/io/qurl.h b/src/corelib/io/qurl.h
index bd35b44f17..de4ce754fb 100644
--- a/src/corelib/io/qurl.h
+++ b/src/corelib/io/qurl.h
@@ -50,8 +50,6 @@
#include <QtCore/qpair.h>
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -322,6 +320,9 @@ public:
static QString fromAce(const QByteArray &);
static QByteArray toAce(const QString &);
static QStringList idnWhitelist();
+ static QStringList toStringList(const QList<QUrl> &uris, FormattingOptions options = FormattingOptions(PrettyDecoded));
+ static QList<QUrl> fromStringList(const QStringList &uris, ParsingMode mode = TolerantMode);
+
static void setIdnWhitelist(const QStringList &);
friend Q_CORE_EXPORT uint qHash(const QUrl &url, uint seed = 0) Q_DECL_NOTHROW;
@@ -381,6 +382,4 @@ QT_END_NAMESPACE
# include <QtCore/qurlquery.h>
#endif
-QT_END_HEADER
-
#endif // QURL_H
diff --git a/src/corelib/io/qurlidna.cpp b/src/corelib/io/qurlidna.cpp
index e2cd481035..fac1703da8 100644
--- a/src/corelib/io/qurlidna.cpp
+++ b/src/corelib/io/qurlidna.cpp
@@ -2336,27 +2336,42 @@ Q_AUTOTEST_EXPORT QString qt_punycodeDecoder(const QString &pc)
}
static const char * const idn_whitelist[] = {
- "ac", "ar", "at",
+ "ac", "ar", "asia", "at",
"biz", "br",
- "cat", "ch", "cl", "cn",
+ "cat", "ch", "cl", "cn", "com",
"de", "dk",
"es",
"fi",
"gr",
"hu",
- "info", "io", "is",
+ "il", "info", "io", "is", "ir",
"jp",
"kr",
- "li", "lt",
+ "li", "lt", "lu", "lv",
"museum",
- "no",
+ "name", "net", "no", "nu", "nz",
"org",
+ "pl", "pr",
"se", "sh",
- "th", "tm", "tw",
+ "tel", "th", "tm", "tw",
+ "ua",
"vn",
+ "xn--fiqs8s", // China
+ "xn--fiqz9s", // China
+ "xn--fzc2c9e2c", // Sri Lanka
+ "xn--j6w193g", // Hong Kong
+ "xn--kprw13d", // Taiwan
+ "xn--kpry57d", // Taiwan
+ "xn--mgba3a4f16a", // Iran
+ "xn--mgba3a4fra", // Iran
"xn--mgbaam7a8h", // UAE
+ "xn--mgbayh7gpa", // Jordan
"xn--mgberp4a5d4ar", // Saudi Arabia
- "xn--wgbh1c" // Egypt
+ "xn--ogbpf8fl", // Syria
+ "xn--p1ai", // Russian Federation
+ "xn--wgbh1c", // Egypt
+ "xn--wgbl6a", // Qatar
+ "xn--xkc2al3hye2a" // Sri Lanka
};
static const size_t idn_whitelist_size = sizeof idn_whitelist / sizeof *idn_whitelist;
diff --git a/src/corelib/io/qurlquery.h b/src/corelib/io/qurlquery.h
index 319fe3cf22..c515bf78c7 100644
--- a/src/corelib/io/qurlquery.h
+++ b/src/corelib/io/qurlquery.h
@@ -50,8 +50,6 @@
#include <QtCore/qstringlist.h>
#endif
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QUrlQueryPrivate;
@@ -173,6 +171,4 @@ inline QList<QByteArray> QUrl::allEncodedQueryItemValues(const QByteArray &key)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QURLQUERY_H
diff --git a/src/corelib/io/qurltlds_p.h b/src/corelib/io/qurltlds_p.h
index f4f525ced7..dfc69f500b 100644
--- a/src/corelib/io/qurltlds_p.h
+++ b/src/corelib/io/qurltlds_p.h
@@ -59,6423 +59,9898 @@ QT_BEGIN_NAMESPACE
// for instructions see the program at
// util/corelib/qurl-generateTLDs
-static const quint16 tldCount = 3949;
-static const quint16 tldIndices[] = {
+static const quint16 tldCount = 6063;
+static const quint32 tldIndices[] = {
0,
-7,
-14,
-14,
-20,
-51,
-61,
-93,
-100,
-100,
-116,
-159,
-167,
-180,
-180,
-193,
-234,
-234,
-234,
-255,
-255,
-255,
-280,
-280,
+13,
+19,
+36,
+66,
+90,
+90,
+113,
+130,
+151,
+151,
+151,
+168,
+179,
+196,
+203,
+222,
+222,
+237,
+237,
+251,
+258,
287,
287,
-295,
-303,
-313,
-326,
-326,
-380,
-393,
-413,
-419,
-419,
-419,
-424,
-438,
-438,
-469,
-515,
-515,
-515,
-534,
-534,
-557,
-557,
-557,
-557,
-572,
-572,
-572,
-579,
-587,
-597,
-612,
-612,
-624,
-636,
-648,
-662,
-687,
-709,
-714,
-740,
-766,
-789,
-789,
-805,
-805,
-810,
-815,
-815,
-824,
-824,
-831,
-857,
-869,
-891,
-891,
-916,
-916,
-916,
-927,
-934,
-964,
-971,
+287,
+287,
+287,
+314,
+336,
+352,
+352,
+352,
+369,
+369,
+377,
+396,
+396,
+396,
+405,
+405,
+431,
+431,
+442,
+451,
+485,
+495,
+509,
+509,
+509,
+524,
+524,
+533,
+533,
+552,
+552,
+552,
+552,
+577,
+577,
+593,
+593,
+593,
+593,
+593,
+593,
+622,
+643,
+643,
+658,
+691,
+703,
+715,
+731,
+731,
+747,
+781,
+793,
+793,
+814,
+826,
+851,
+851,
+866,
+885,
+914,
+929,
+929,
+929,
+941,
+947,
+947,
987,
987,
987,
-1008,
-1008,
-1016,
-1016,
-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,
-1555,
-1562,
+1003,
+1061,
+1080,
+1080,
+1080,
+1104,
+1104,
+1138,
+1148,
+1148,
+1148,
+1148,
+1160,
+1179,
+1179,
+1208,
+1208,
+1225,
+1225,
+1273,
+1273,
+1291,
+1291,
+1304,
+1304,
+1304,
+1304,
+1318,
+1335,
+1335,
+1335,
+1349,
+1349,
+1364,
+1364,
+1364,
+1364,
+1402,
+1402,
+1402,
+1402,
+1430,
+1455,
+1506,
+1537,
+1537,
+1559,
+1573,
+1578,
+1578,
+1578,
+1578,
1584,
-1598,
-1607,
-1607,
-1607,
-1632,
-1652,
-1652,
-1658,
-1658,
-1675,
+1592,
+1599,
+1599,
+1599,
+1606,
+1641,
+1641,
+1663,
+1663,
+1663,
+1663,
+1663,
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,
-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,
-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,
+1682,
+1689,
+1689,
+1689,
+1715,
+1731,
+1731,
+1741,
+1761,
+1777,
+1777,
+1777,
+1777,
+1777,
+1796,
+1796,
+1824,
+1847,
+1847,
+1854,
+1876,
+1876,
+1876,
+1908,
+1908,
+1925,
+1952,
+1974,
+1991,
+2010,
+2010,
+2010,
+2010,
+2028,
+2048,
+2066,
+2066,
+2091,
+2119,
+2151,
+2151,
+2151,
+2175,
+2175,
+2175,
+2205,
+2219,
+2232,
+2281,
+2281,
+2281,
+2302,
+2311,
+2327,
+2327,
+2327,
+2340,
+2340,
+2340,
+2368,
+2386,
+2404,
+2414,
+2423,
+2423,
+2423,
+2423,
+2443,
+2443,
+2450,
+2487,
+2487,
+2487,
+2487,
+2494,
+2509,
+2509,
+2509,
+2535,
+2545,
+2615,
+2615,
+2615,
+2633,
+2633,
+2641,
+2688,
+2688,
+2688,
+2702,
+2708,
+2730,
+2748,
+2748,
+2748,
+2748,
+2764,
+2798,
+2807,
+2815,
+2826,
+2826,
+2835,
+2864,
+2864,
+2898,
+2898,
+2905,
+2915,
+2922,
+2922,
+2938,
+2938,
+2967,
+2967,
+2967,
+2986,
+2986,
+3002,
+3008,
+3018,
+3052,
+3066,
+3099,
+3099,
+3115,
+3115,
+3115,
+3159,
+3159,
+3172,
+3186,
+3186,
+3262,
+3262,
+3262,
+3305,
3336,
3350,
-3363,
-3376,
-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,
-3803,
-3810,
-3817,
-3833,
-3846,
-3846,
-3852,
-3876,
-3876,
-3882,
-3903,
-3910,
-3939,
-3939,
-3939,
-3947,
-3962,
-3962,
-3981,
-3994,
-4021,
-4030,
-4042,
-4085,
-4085,
-4096,
-4096,
-4104,
-4123,
-4123,
-4123,
-4143,
-4154,
-4164,
-4194,
-4194,
-4194,
-4205,
-4205,
-4222,
-4238,
-4301,
-4309,
-4322,
-4331,
-4331,
-4331,
-4331,
-4331,
-4347,
-4365,
-4375,
-4375,
-4385,
-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,
+3394,
+3411,
+3411,
+3424,
+3483,
+3505,
+3532,
+3532,
+3532,
+3538,
+3538,
+3561,
+3575,
+3580,
+3601,
+3601,
+3601,
+3601,
+3601,
+3601,
+3601,
+3601,
+3635,
+3635,
+3635,
+3686,
+3704,
+3704,
+3736,
+3749,
+3783,
+3783,
+3816,
+3840,
+3877,
+3885,
+3885,
+3885,
+3885,
+3907,
+3944,
+3944,
+3956,
+3963,
+3963,
+3963,
+3963,
+3975,
+3975,
+3975,
+3993,
+4038,
+4062,
+4062,
+4062,
+4071,
+4071,
+4084,
+4097,
+4119,
+4119,
+4119,
+4135,
+4135,
+4166,
+4178,
+4178,
+4208,
+4225,
+4285,
+4300,
+4300,
+4300,
+4300,
+4318,
+4318,
+4318,
+4336,
+4348,
+4354,
+4354,
+4388,
+4388,
+4416,
+4433,
+4433,
+4433,
+4433,
+4433,
+4433,
+4450,
+4450,
+4450,
+4450,
+4467,
+4467,
+4480,
+4514,
+4524,
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,
-4935,
-4942,
-4958,
-4958,
-4975,
-4975,
-4975,
-4985,
-4985,
-5020,
-5032,
+4552,
+4552,
+4572,
+4572,
+4599,
+4641,
+4659,
+4659,
+4659,
+4666,
+4666,
+4666,
+4717,
+4769,
+4785,
+4797,
+4797,
+4815,
+4853,
+4859,
+4868,
+4894,
+4894,
+4894,
+4920,
+4930,
+4972,
+4972,
+5005,
+5005,
+5023,
+5023,
5032,
-5040,
-5053,
-5068,
-5079,
-5079,
-5101,
-5115,
-5115,
-5135,
-5154,
-5161,
-5161,
-5168,
-5168,
-5184,
-5210,
-5210,
-5238,
-5255,
-5278,
-5285,
-5308,
-5318,
-5327,
-5327,
-5333,
-5333,
-5340,
-5348,
-5355,
-5366,
-5377,
-5384,
-5408,
-5415,
-5422,
-5435,
-5442,
-5482,
-5482,
-5482,
-5482,
-5498,
-5527,
-5534,
-5541,
-5572,
-5572,
-5572,
-5579,
-5591,
-5602,
-5602,
-5621,
-5621,
-5646,
-5664,
-5671,
-5671,
-5681,
-5696,
-5707,
-5716,
-5716,
-5723,
-5723,
-5732,
+5059,
+5059,
+5080,
+5094,
+5100,
+5100,
+5100,
+5100,
+5100,
+5118,
+5145,
+5145,
+5145,
+5153,
+5221,
+5256,
+5289,
+5296,
+5306,
+5306,
+5343,
+5343,
+5343,
+5362,
+5369,
+5433,
+5451,
+5451,
+5451,
+5470,
+5470,
+5470,
+5490,
+5506,
+5528,
+5548,
+5548,
+5548,
+5548,
+5563,
+5576,
+5585,
+5636,
+5636,
+5661,
+5661,
+5668,
+5685,
+5698,
+5715,
5742,
-5742,
-5763,
-5770,
-5776,
-5790,
-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,
-6252,
-6252,
-6270,
-6270,
-6284,
-6305,
-6315,
-6322,
-6322,
-6322,
-6329,
-6329,
-6329,
-6353,
-6361,
-6361,
-6375,
-6391,
-6405,
-6405,
-6415,
-6431,
-6431,
-6431,
-6431,
-6458,
-6475,
-6475,
-6475,
-6482,
-6489,
-6496,
-6496,
-6503,
-6520,
-6520,
-6520,
-6527,
-6527,
+5748,
+5756,
+5800,
+5800,
+5800,
+5827,
+5827,
+5846,
+5864,
+5910,
+5926,
+5941,
+5952,
+5952,
+5958,
+5958,
+5976,
+5985,
+5991,
+5991,
+5991,
+5998,
+5998,
+5998,
+6011,
+6011,
+6060,
+6076,
+6088,
+6105,
+6124,
+6124,
+6124,
+6157,
+6157,
+6157,
+6157,
+6174,
+6190,
+6190,
+6190,
+6209,
+6228,
+6228,
+6228,
+6228,
+6234,
+6234,
+6234,
+6234,
+6234,
+6249,
+6264,
+6264,
+6290,
+6308,
+6346,
+6362,
+6362,
+6400,
+6420,
+6432,
+6455,
+6455,
+6464,
+6491,
+6491,
+6491,
+6497,
+6524,
+6544,
+6544,
+6544,
6544,
-6561,
-6573,
-6573,
-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,
+6559,
+6576,
+6619,
+6682,
+6682,
+6716,
+6716,
+6716,
+6716,
+6716,
+6716,
+6730,
+6745,
+6783,
+6783,
+6801,
+6817,
+6841,
+6841,
+6858,
+6858,
6914,
-6935,
-6935,
-6935,
-6953,
-6959,
-6966,
-6983,
-6983,
-6983,
-7013,
-7023,
-7023,
-7023,
-7023,
+6925,
+6943,
+6954,
+6954,
+6954,
+6973,
+6973,
+6973,
+6987,
+6987,
+6987,
+7005,
7037,
-7044,
-7058,
-7079,
-7086,
-7123,
-7134,
-7155,
-7168,
+7037,
+7050,
+7050,
+7075,
+7090,
+7090,
+7096,
+7108,
+7124,
+7124,
+7136,
+7136,
+7146,
+7169,
7178,
-7203,
-7227,
-7236,
-7258,
-7265,
-7274,
-7274,
-7303,
-7303,
-7314,
-7314,
-7345,
-7352,
-7367,
-7377,
-7388,
-7388,
-7402,
-7402,
-7409,
-7421,
-7421,
-7467,
-7484,
-7484,
-7484,
+7197,
+7197,
+7197,
+7204,
+7204,
+7268,
+7268,
+7288,
+7311,
+7311,
+7321,
+7334,
+7334,
+7387,
+7417,
+7426,
+7444,
+7444,
+7460,
+7470,
7491,
-7532,
-7532,
-7539,
-7546,
-7546,
-7553,
-7573,
-7573,
-7573,
-7580,
-7587,
-7594,
-7594,
-7594,
-7606,
-7606,
-7637,
-7637,
-7637,
-7664,
-7664,
-7664,
-7677,
-7684,
-7701,
-7723,
-7723,
-7723,
-7723,
-7734,
-7734,
-7734,
-7748,
-7748,
-7748,
-7748,
-7759,
-7759,
-7775,
-7775,
-7782,
-7789,
-7817,
-7824,
-7831,
-7836,
-7865,
-7865,
+7516,
+7516,
+7535,
+7535,
+7555,
+7555,
+7555,
+7555,
+7575,
+7597,
+7597,
+7597,
+7597,
+7607,
+7627,
+7627,
+7652,
+7710,
+7710,
+7719,
+7737,
+7737,
+7737,
+7737,
+7737,
+7747,
+7747,
+7753,
+7773,
+7773,
+7793,
+7828,
+7841,
+7860,
+7860,
+7876,
7876,
7901,
7901,
-7908,
-7918,
-7938,
-7945,
-7945,
-7957,
-7964,
-7979,
-7986,
-7994,
-8007,
-8007,
-8014,
-8021,
-8061,
-8061,
-8071,
-8088,
-8131,
-8138,
-8153,
-8160,
-8160,
-8160,
-8175,
-8183,
+7901,
+7911,
+7911,
+7911,
+7911,
+7924,
+7941,
+7951,
+7983,
+7983,
+7990,
+8008,
+8008,
+8018,
+8018,
+8031,
+8056,
+8063,
+8077,
+8077,
+8090,
+8100,
+8165,
+8192,
+8192,
+8192,
+8192,
+8197,
8197,
-8211,
-8211,
-8211,
-8243,
-8243,
-8243,
-8243,
-8259,
-8259,
-8259,
-8259,
-8259,
-8266,
-8275,
-8281,
-8281,
-8281,
-8281,
-8288,
-8288,
+8197,
+8197,
+8197,
+8197,
+8227,
+8237,
+8253,
+8253,
8309,
8309,
8309,
-8330,
-8330,
-8330,
-8330,
-8337,
-8343,
-8343,
-8360,
-8370,
-8370,
-8380,
-8380,
-8386,
-8386,
-8397,
-8415,
-8415,
-8428,
-8454,
-8460,
-8475,
-8492,
-8526,
+8309,
+8329,
+8329,
+8329,
+8345,
+8378,
+8398,
+8420,
+8420,
+8420,
+8436,
+8452,
+8497,
+8538,
8554,
8554,
8583,
8583,
8583,
-8598,
-8607,
-8617,
-8617,
+8616,
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,
-9048,
-9048,
-9054,
-9054,
-9054,
-9086,
-9108,
-9108,
-9119,
-9119,
-9130,
-9144,
-9152,
-9161,
-9174,
-9194,
-9207,
-9207,
-9207,
-9232,
-9242,
-9242,
-9271,
-9290,
-9308,
-9308,
-9308,
-9308,
-9320,
-9333,
-9343,
-9356,
-9379,
-9379,
+8672,
+8690,
+8699,
+8699,
+8715,
+8715,
+8737,
+8767,
+8767,
+8767,
+8780,
+8800,
+8837,
+8867,
+8896,
+8931,
+8948,
+8959,
+8981,
+9002,
+9008,
+9017,
+9017,
+9017,
+9017,
+9044,
+9044,
+9044,
+9069,
+9087,
+9087,
+9087,
+9087,
+9104,
+9136,
+9173,
+9173,
+9199,
+9199,
+9199,
+9199,
+9222,
+9233,
+9257,
+9257,
+9257,
+9272,
+9272,
+9284,
+9316,
+9346,
+9346,
+9346,
+9362,
9379,
-9395,
-9395,
-9406,
-9419,
-9419,
-9419,
-9419,
-9450,
-9485,
-9485,
-9497,
-9497,
-9505,
-9517,
-9528,
-9528,
+9404,
+9413,
+9413,
+9413,
+9439,
+9439,
+9447,
+9460,
+9479,
+9479,
+9486,
+9499,
+9506,
+9506,
+9513,
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,
-9967,
-9975,
-9975,
-9975,
-9981,
-9998,
-9998,
-9998,
+9551,
+9577,
+9577,
+9634,
+9634,
+9671,
+9693,
+9700,
+9700,
+9732,
+9774,
+9774,
+9780,
+9827,
+9851,
+9875,
+9875,
+9911,
+9937,
+9937,
+9944,
+9944,
+9944,
+9964,
+9992,
+9999,
+9999,
+9999,
+10006,
10012,
-10036,
-10036,
-10066,
-10079,
-10097,
+10019,
+10026,
+10047,
+10059,
+10059,
+10076,
+10083,
+10083,
+10083,
+10089,
+10089,
+10089,
+10096,
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,
+10121,
+10137,
+10137,
+10137,
+10137,
+10154,
+10161,
+10161,
+10168,
+10177,
+10177,
+10231,
+10238,
+10261,
+10268,
+10288,
+10295,
+10303,
+10320,
+10344,
+10387,
+10421,
+10421,
+10421,
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,
+10517,
+10535,
+10552,
+10577,
+10577,
+10577,
+10577,
+10577,
+10615,
+10621,
+10639,
+10639,
+10639,
+10682,
+10682,
+10698,
+10698,
+10716,
10727,
-10727,
-10727,
-10733,
-10733,
-10768,
-10768,
-10773,
-10780,
-10788,
-10788,
+10750,
+10774,
+10781,
10797,
-10797,
-10835,
-10835,
-10845,
-10852,
-10861,
-10861,
-10861,
-10861,
-10861,
-10861,
-10861,
-10875,
-10888,
-10907,
-10907,
-10907,
-10920,
-10920,
-10932,
-10946,
-10977,
-10977,
-10997,
-11008,
-11037,
-11059,
-11059,
-11059,
-11067,
-11067,
-11067,
-11067,
-11067,
-11077,
-11091,
-11102,
+10804,
+10804,
+10804,
+10816,
+10836,
+10850,
+10850,
+10857,
+10857,
+10878,
+10878,
+10934,
+10934,
+10934,
+10934,
+10934,
+10934,
+10934,
+10941,
+10941,
+10941,
+10948,
+10973,
+10984,
+11015,
+11015,
+11015,
+11041,
+11058,
+11066,
+11066,
+11066,
+11087,
+11097,
11102,
-11112,
-11125,
+11108,
+11115,
+11122,
+11122,
+11122,
11129,
-11129,
-11154,
-11154,
-11154,
-11164,
-11164,
-11189,
-11189,
-11189,
-11189,
-11189,
-11196,
-11196,
-11227,
-11238,
-11247,
-11256,
-11265,
-11265,
-11286,
+11160,
+11194,
+11194,
+11215,
+11224,
+11224,
+11280,
+11297,
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,
-11626,
-11643,
-11643,
-11643,
-11643,
-11663,
-11663,
-11682,
-11696,
-11696,
-11696,
-11696,
-11706,
-11706,
-11706,
-11706,
-11723,
-11723,
-11757,
-11757,
-11773,
-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,
-12167,
-12180,
-12186,
-12208,
-12226,
-12243,
-12243,
-12252,
-12252,
-12274,
-12289,
-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,
-12591,
-12601,
-12641,
-12641,
-12641,
-12657,
-12657,
-12657,
-12699,
-12699,
-12699,
-12712,
-12728,
-12744,
-12761,
-12769,
-12782,
-12793,
-12823,
-12836,
-12851,
-12863,
-12890,
-12900,
-12900,
-12900,
-12910,
-12910,
-12924,
-12924,
-12924,
-12924,
-12924,
-12952,
-12984,
-13003,
-13038,
-13038,
-13056,
-13056,
-13056,
+11319,
+11352,
+11364,
+11364,
+11399,
+11399,
+11430,
+11430,
+11445,
+11478,
+11500,
+11508,
+11526,
+11526,
+11539,
+11539,
+11583,
+11583,
+11624,
+11654,
+11654,
+11661,
+11679,
+11714,
+11721,
+11733,
+11769,
+11778,
+11786,
+11805,
+11820,
+11857,
+11864,
+11877,
+11877,
+11892,
+11892,
+11892,
+11908,
+11915,
+11922,
+11940,
+11947,
+11975,
+11998,
+12021,
+12028,
+12028,
+12046,
+12068,
+12086,
+12109,
+12116,
+12130,
+12150,
+12150,
+12150,
+12150,
+12157,
+12182,
+12205,
+12212,
+12219,
+12219,
+12229,
+12229,
+12229,
+12250,
+12271,
+12285,
+12285,
+12292,
+12330,
+12330,
+12349,
+12349,
+12357,
+12357,
+12357,
+12357,
+12389,
+12409,
+12409,
+12448,
+12459,
+12473,
+12480,
+12489,
+12489,
+12497,
+12535,
+12542,
+12568,
+12575,
+12590,
+12620,
+12645,
+12652,
+12665,
+12672,
+12683,
+12683,
+12709,
+12716,
+12723,
+12746,
+12746,
+12746,
+12771,
+12771,
+12796,
+12796,
+12803,
+12803,
+12803,
+12838,
+12856,
+12872,
+12872,
+12872,
+12872,
+12872,
+12872,
+12889,
+12899,
+12899,
+12899,
+12899,
+12917,
+12934,
+12934,
+12947,
+12969,
+12969,
+12976,
+13012,
13056,
-13074,
-13081,
-13093,
-13103,
-13103,
-13112,
-13119,
-13132,
-13132,
-13132,
-13141,
-13151,
-13183,
-13193,
-13206,
-13206,
-13206,
-13236,
-13252,
-13267,
-13267,
-13294,
-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,
-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,
+13063,
+13092,
+13118,
+13142,
+13163,
+13202,
+13237,
+13256,
+13284,
+13295,
+13302,
+13326,
+13355,
+13372,
+13383,
+13398,
+13424,
+13452,
+13452,
+13452,
+13494,
+13533,
+13547,
+13547,
+13551,
+13558,
+13610,
+13657,
+13665,
+13692,
+13692,
+13707,
+13714,
+13714,
+13714,
+13728,
+13728,
+13750,
+13763,
+13782,
+13782,
+13819,
+13840,
+13840,
+13858,
+13867,
+13888,
+13925,
+13925,
+13950,
+13960,
+13960,
+13974,
+14014,
+14051,
+14067,
+14086,
+14095,
+14102,
+14102,
+14102,
+14123,
+14123,
+14123,
+14144,
+14168,
+14168,
+14175,
+14175,
+14175,
+14175,
+14186,
+14237,
+14237,
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,
-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,
-14678,
-14697,
-14697,
-14734,
-14757,
-14764,
-14771,
-14771,
-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,
-14998,
-15003,
-15003,
-15003,
-15013,
-15013,
-15027,
-15027,
-15027,
-15043,
-15053,
-15063,
-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,
-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,
-15963,
-15996,
-16006,
-16013,
-16024,
+14258,
+14258,
+14292,
+14292,
+14328,
+14338,
+14338,
+14338,
+14364,
+14390,
+14390,
+14423,
+14454,
+14469,
+14512,
+14512,
+14512,
+14512,
+14512,
+14512,
+14512,
+14525,
+14535,
+14550,
+14572,
+14578,
+14591,
+14603,
+14603,
+14603,
+14619,
+14619,
+14619,
+14619,
+14656,
+14679,
+14700,
+14725,
+14725,
+14725,
+14725,
+14725,
+14730,
+14751,
+14767,
+14767,
+14767,
+14767,
+14787,
+14820,
+14837,
+14837,
+14865,
+14865,
+14882,
+14882,
+14882,
+14882,
+14882,
+14892,
+14892,
+14892,
+14912,
+14929,
+14947,
+14947,
+14947,
+14947,
+14947,
+14947,
+14966,
+15018,
+15034,
+15044,
+15055,
+15055,
+15073,
+15118,
+15118,
+15118,
+15146,
+15158,
+15169,
+15175,
+15175,
+15175,
+15181,
+15181,
+15181,
+15247,
+15279,
+15292,
+15292,
+15292,
+15292,
+15326,
+15331,
+15365,
+15389,
+15398,
+15412,
+15426,
+15433,
+15433,
+15433,
+15433,
+15469,
+15490,
+15490,
+15506,
+15523,
+15553,
+15553,
+15571,
+15571,
+15585,
+15602,
+15602,
+15602,
+15602,
+15602,
+15631,
+15658,
+15669,
+15699,
+15716,
+15716,
+15757,
+15789,
+15796,
+15796,
+15796,
+15796,
+15815,
+15840,
+15898,
+15898,
+15919,
+15933,
+15933,
+15940,
+15946,
+15946,
+15964,
+15964,
+15964,
+15973,
+15979,
+16008,
+16019,
+16019,
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,
-16243,
-16255,
-16261,
-16280,
-16283,
-16292,
-16295,
-16295,
-16301,
-16304,
+16042,
+16057,
+16073,
+16095,
+16095,
+16112,
+16121,
+16139,
+16139,
+16139,
+16148,
+16148,
+16148,
+16148,
+16165,
+16187,
+16187,
+16199,
+16199,
+16215,
+16215,
+16215,
+16231,
+16240,
+16284,
+16305,
+16305,
16322,
-16325,
-16328,
-16349,
-16355,
-16382,
-16408,
-16414,
-16414,
-16414,
-16458,
-16477,
-16480,
-16485,
-16488,
-16514,
-16520,
-16530,
-16530,
-16546,
-16562,
-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,
-16916,
-16919,
-16926,
-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,
-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,
+16343,
+16362,
+16383,
+16393,
+16393,
+16411,
+16419,
+16425,
+16436,
+16461,
+16468,
+16468,
+16468,
+16490,
+16490,
+16490,
+16507,
+16528,
+16528,
+16528,
+16538,
+16555,
+16566,
+16566,
+16590,
+16590,
+16605,
+16623,
+16636,
+16636,
+16636,
+16656,
+16666,
+16696,
+16713,
+16743,
+16760,
+16781,
+16797,
+16811,
+16811,
+16823,
+16838,
+16859,
+16879,
+16879,
+16879,
+16902,
+16908,
+16908,
+16908,
+16908,
+16966,
+16966,
+16966,
+16975,
+16992,
+16992,
+16992,
+17033,
+17069,
+17069,
+17100,
+17117,
+17133,
+17151,
+17151,
+17159,
+17203,
+17203,
+17220,
+17226,
+17226,
+17245,
+17245,
+17259,
+17259,
+17269,
+17295,
+17295,
+17295,
+17353,
+17386,
+17394,
+17394,
+17394,
+17409,
+17409,
+17442,
+17442,
+17454,
+17509,
+17509,
+17509,
+17532,
+17532,
+17532,
+17550,
+17561,
+17561,
+17561,
+17561,
+17561,
+17561,
+17561,
+17561,
+17561,
+17575,
+17581,
+17581,
+17581,
+17620,
+17627,
+17640,
+17640,
+17677,
+17677,
+17688,
+17688,
+17722,
+17734,
+17747,
+17757,
+17757,
17757,
-17776,
-17796,
-17810,
-17840,
-17840,
-17877,
-17884,
-17884,
-17911,
-17936,
-17970,
+17803,
+17820,
+17846,
+17892,
+17892,
+17899,
+17899,
+17919,
+17919,
+17968,
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,
-18299,
-18312,
-18322,
-18338,
-18348,
-18348,
-18363,
-18372,
-18387,
-18387,
-18390,
+17996,
+18021,
+18021,
+18021,
+18021,
+18050,
+18050,
+18072,
+18102,
+18119,
+18119,
+18132,
+18132,
+18132,
+18146,
+18146,
+18165,
+18184,
+18184,
+18192,
+18192,
+18192,
+18223,
+18223,
+18223,
+18231,
+18231,
+18231,
+18231,
+18257,
+18270,
+18300,
+18313,
+18331,
+18331,
+18331,
+18351,
+18351,
+18382,
+18392,
+18392,
+18392,
18402,
+18402,
+18418,
18445,
-18445,
-18445,
-18466,
-18479,
-18479,
-18498,
-18508,
-18511,
-18511,
-18511,
-18511,
-18511,
-18526,
-18558,
-18586,
-18622,
+18519,
+18519,
+18528,
+18542,
+18571,
+18595,
+18616,
+18628,
+18628,
18643,
-18670,
-18686,
-18710,
-18720,
-18739,
-18739,
-18742,
-18745,
-18771,
-18774,
-18777,
-18791,
-18813,
-18816,
-18822,
-18839,
-18845,
-18851,
-18854,
-18878,
-18881,
-18896,
-18896,
-18899,
-18926,
-18937,
-18940,
-18953,
-18963,
-19010,
-19010,
-19017,
-19046,
-19060,
-19060,
-19087,
-19095,
-19101,
-19101,
-19128,
-19146,
-19157,
-19157,
-19188,
+18678,
+18690,
+18715,
+18731,
+18731,
+18751,
+18763,
+18763,
+18763,
+18779,
+18793,
+18793,
+18824,
+18840,
+18840,
+18856,
+18856,
+18864,
+18864,
+18902,
+18902,
+18933,
+18946,
+18946,
+18946,
+18946,
+18946,
+18946,
+18955,
+18955,
+18973,
+18979,
+18992,
+18992,
+18992,
+19008,
+19016,
+19016,
+19033,
+19033,
+19044,
+19044,
+19044,
+19044,
+19082,
+19129,
+19149,
19198,
-19205,
-19223,
-19230,
-19255,
-19280,
-19280,
-19283,
-19292,
-19301,
-19320,
-19323,
-19323,
-19341,
-19341,
-19365,
-19378,
-19381,
-19394,
-19423,
-19433,
-19440,
+19210,
+19210,
+19210,
+19219,
+19219,
+19219,
+19227,
+19261,
+19261,
+19268,
+19291,
+19319,
+19319,
+19319,
+19331,
+19359,
+19369,
+19369,
+19384,
+19384,
+19406,
+19413,
19466,
-19490,
-19490,
-19490,
-19497,
-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,
-19911,
-19922,
-19950,
-20020,
+19482,
+19482,
+19494,
+19515,
+19522,
+19570,
+19570,
+19570,
+19610,
+19625,
+19632,
+19639,
+19658,
+19665,
+19672,
+19672,
+19679,
+19679,
+19692,
+19719,
+19749,
+19756,
+19776,
+19807,
+19817,
+19817,
+19837,
+19844,
+19876,
+19906,
+19906,
+19923,
+19923,
+19942,
+19958,
+19973,
+19995,
+20002,
+20023,
20030,
-20059,
-20062,
-20089,
-20107,
-20151,
-20154,
-20175,
+20036,
+20036,
+20060,
+20060,
+20066,
+20073,
+20108,
+20116,
+20131,
+20131,
+20131,
+20166,
+20183,
+20202,
20205,
-20208,
-20229,
-20229,
-20255,
-20261,
-20261,
-20283,
-20335,
-20362,
-20385,
-20392,
-20392,
-20392,
-20392,
-20418,
-20418,
-20418,
+20215,
+20233,
+20233,
+20236,
+20243,
+20253,
+20281,
+20284,
+20294,
+20297,
+20315,
+20355,
+20400,
+20415,
20418,
+20428,
20443,
-20446,
-20446,
-20452,
-20452,
+20461,
20467,
-20467,
-20489,
-20489,
-20498,
-20525,
-20554,
-20560,
+20470,
+20476,
+20499,
+20499,
+20513,
+20513,
+20516,
+20523,
+20546,
+20549,
20575,
-20589,
-20589,
-20589,
-20614,
-20652,
-20659,
-20659,
-20668,
-20679,
-20679,
-20679,
-20685,
+20615,
+20615,
+20618,
+20682,
20685,
-20685,
-20685,
-20685,
-20685,
-20696,
-20733,
-20760,
-20766,
-20769,
-20792,
-20792,
-20792,
-20792,
-20813,
-20813,
-20813,
-20813,
-20826,
-20826,
-20846,
-20862,
-20880,
+20691,
+20700,
+20727,
+20776,
+20779,
+20800,
+20816,
+20858,
20887,
-20901,
-20908,
-20933,
-20938,
-20958,
-20969,
-20978,
-20978,
-20978,
-20985,
-20985,
-20985,
-21000,
-21010,
-21010,
-21014,
-21026,
-21033,
-21041,
-21041,
-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,
-21301,
-21315,
-21321,
-21331,
-21331,
-21331,
-21337,
-21343,
-21343,
-21351,
-21351,
-21361,
-21368,
-21383,
-21383,
-21389,
-21413,
-21437,
-21449,
-21462,
-21478,
-21506,
-21534,
-21546,
-21546,
-21557,
-21580,
-21595,
-21595,
-21595,
-21595,
-21626,
-21626,
-21646,
-21670,
-21676,
-21688,
-21688,
-21716,
-21731,
-21762,
-21762,
-21762,
-21762,
-21762,
-21783,
-21789,
-21799,
-21828,
-21828,
+20898,
+20898,
+20898,
+20923,
+20926,
+20949,
+20952,
+20959,
+20965,
+20974,
+20980,
+20996,
+20996,
+21021,
+21039,
+21039,
+21052,
+21055,
+21076,
+21079,
+21091,
+21094,
+21114,
+21114,
+21117,
+21117,
+21124,
+21143,
+21196,
+21196,
+21196,
+21196,
+21196,
+21205,
+21212,
+21261,
+21278,
+21293,
+21333,
+21354,
+21366,
+21373,
+21408,
+21433,
+21439,
+21442,
+21442,
+21445,
+21448,
+21460,
+21463,
+21466,
+21476,
+21479,
+21529,
+21568,
+21574,
+21574,
+21577,
+21604,
+21611,
+21611,
+21631,
+21649,
+21689,
+21692,
+21714,
+21752,
+21752,
+21780,
+21787,
+21813,
21837,
-21845,
-21868,
-21874,
-21874,
-21880,
-21880,
-21889,
-21901,
-21910,
-21941,
-21941,
-21959,
-21959,
-21959,
-21966,
-21966,
-21972,
-21972,
-21995,
-22011,
+21840,
+21857,
+21885,
+21888,
+21888,
+21911,
+21918,
+21928,
+21928,
+21934,
+21970,
+21983,
+21992,
+22012,
+22019,
+22036,
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,
+22050,
+22078,
+22112,
+22115,
+22122,
+22125,
+22174,
+22208,
+22211,
+22221,
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,
+22240,
+22254,
+22254,
+22273,
+22291,
+22327,
+22355,
+22358,
+22368,
+22368,
+22368,
+22368,
+22384,
+22397,
+22415,
+22418,
+22418,
+22439,
+22459,
+22459,
22469,
-22479,
-22501,
-22512,
-22528,
-22528,
-22528,
-22528,
-22528,
-22528,
-22528,
-22540,
+22488,
+22507,
+22524,
+22524,
22540,
+22543,
22546,
22546,
22546,
22546,
-22569,
-22591,
-22591,
-22591,
-22591,
-22610,
-22655,
-22655,
-22667,
-22667,
-22677,
-22677,
-22692,
-22692,
-22702,
-22702,
-22702,
-22717,
-22736,
+22553,
+22575,
+22581,
+22584,
+22587,
+22595,
+22607,
+22607,
+22614,
+22624,
+22650,
+22686,
+22699,
+22705,
+22718,
22750,
-22755,
-22780,
-22785,
-22822,
-22844,
-22859,
-22871,
-22909,
-22949,
-22962,
-22973,
-22979,
-22988,
-23007,
-23027,
-23035,
-23072,
-23082,
-23082,
-23109,
-23116,
-23130,
-23158,
-23166,
-23166,
-23172,
-23177,
-23189,
-23219,
-23219,
-23250,
-23273,
-23281,
-23281,
-23281,
-23281,
-23281,
+22753,
+22772,
+22782,
+22789,
+22825,
+22838,
+22890,
+22913,
+22916,
+22926,
+22932,
+22946,
+22986,
+22986,
+23015,
+23050,
+23073,
+23076,
+23079,
+23101,
+23132,
+23152,
+23211,
+23237,
+23240,
+23259,
+23284,
23287,
-23287,
-23299,
-23305,
-23315,
-23315,
-23321,
-23328,
-23334,
-23355,
-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,
-23673,
-23673,
-23689,
-23689,
-23701,
-23701,
-23701,
-23713,
-23713,
-23713,
-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,
-23971,
-23971,
-23971,
-24000,
-24012,
-24042,
-24042,
-24042,
-24042,
-24042,
-24070,
-24076,
-24094,
-24094,
-24094,
-24123,
-24123,
-24123,
-24134,
-24150,
+23302,
+23308,
+23311,
+23311,
+23311,
+23318,
+23325,
+23339,
+23352,
+23369,
+23380,
+23430,
+23437,
+23457,
+23460,
+23466,
+23473,
+23516,
+23519,
+23522,
+23534,
+23549,
+23568,
+23589,
+23609,
+23631,
+23642,
+23645,
+23676,
+23683,
+23693,
+23696,
+23730,
+23746,
+23790,
+23807,
+23819,
+23840,
+23843,
+23843,
+23868,
+23885,
+23898,
+23905,
+23921,
+23921,
+23938,
+23979,
+23988,
+23994,
+24022,
+24029,
+24059,
+24059,
+24081,
+24100,
+24100,
+24107,
+24131,
24150,
-24150,
-24150,
-24150,
-24150,
-24155,
-24179,
-24179,
-24189,
-24189,
-24189,
-24198,
-24198,
-24218,
-24218,
-24218,
-24234,
-24251,
-24257,
-24276,
+24181,
+24181,
+24184,
+24187,
+24209,
+24239,
+24252,
+24265,
+24271,
+24274,
+24300,
24305,
-24321,
-24321,
-24321,
-24334,
-24334,
-24334,
-24349,
-24356,
-24361,
-24372,
-24372,
-24372,
-24388,
-24396,
-24396,
-24402,
-24410,
-24410,
-24428,
-24428,
-24450,
-24450,
+24308,
+24311,
+24314,
+24330,
+24333,
+24333,
+24333,
+24336,
+24339,
+24345,
+24348,
+24351,
+24378,
+24384,
+24422,
+24435,
+24446,
24467,
-24485,
-24495,
-24495,
-24495,
-24507,
-24507,
-24514,
-24531,
-24531,
-24531,
+24470,
+24473,
+24492,
+24505,
+24508,
+24508,
24531,
-24531,
-24537,
-24537,
-24558,
-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,
+24551,
+24593,
+24617,
+24640,
+24652,
+24652,
+24668,
+24668,
+24668,
+24717,
+24748,
+24748,
+24766,
+24769,
+24775,
+24791,
+24791,
+24829,
+24829,
+24851,
+24861,
+24867,
+24913,
+24946,
+24946,
+24965,
+24968,
+24968,
+24981,
+24981,
+24994,
+24994,
+25009,
+25012,
+25015,
+25026,
+25031,
+25043,
+25043,
+25056,
+25056,
+25056,
+25056,
+25062,
+25075,
+25099,
+25106,
+25118,
+25118,
+25118,
+25118,
+25126,
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,
-25477,
-25526,
-25526,
-25526,
-25526,
-25545,
-25562,
-25572,
-25572,
-25582,
-25582,
-25582,
+25183,
+25183,
+25200,
+25219,
+25225,
+25241,
+25247,
+25259,
+25274,
+25322,
+25322,
+25336,
+25336,
+25336,
+25360,
+25368,
+25368,
+25368,
+25374,
+25381,
+25387,
+25398,
+25417,
+25417,
+25417,
+25431,
+25466,
+25492,
+25500,
+25549,
+25569,
+25569,
+25590,
+25590,
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,
+25616,
+25622,
+25640,
+25640,
+25640,
+25655,
+25655,
+25671,
+25671,
+25691,
+25706,
+25706,
+25706,
+25738,
+25738,
+25746,
+25759,
+25759,
+25781,
+25781,
+25802,
+25815,
25860,
-25884,
-25901,
-25922,
-25936,
-25946,
-25969,
-25969,
-25969,
-25969,
-25975,
-25975,
-25987,
-25987,
-26065,
-26065,
+25860,
+25867,
+25877,
+25877,
+25877,
+25913,
+25913,
+25953,
+25980,
+26002,
+26013,
+26026,
+26026,
+26032,
+26032,
+26038,
+26050,
+26050,
+26059,
26065,
-26084,
-26084,
-26103,
+26071,
+26087,
+26122,
26128,
-26141,
-26151,
-26169,
-26169,
-26169,
-26180,
-26191,
-26191,
-26191,
-26197,
-26197,
-26205,
-26211,
-26235,
-26235,
-26235,
-26235,
-26235,
-26235,
-26245,
-26245,
-26259,
-26259,
-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,
+26146,
+26164,
+26185,
+26212,
+26212,
+26229,
+26229,
+26236,
+26248,
+26266,
+26290,
+26311,
+26311,
+26311,
+26311,
+26321,
+26352,
+26365,
+26371,
+26371,
+26394,
+26403,
+26435,
+26435,
+26435,
+26435,
+26485,
+26516,
+26522,
+26528,
+26565,
+26565,
+26600,
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,
-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,
+26649,
+26649,
+26649,
+26649,
+26700,
+26735,
+26745,
+26759,
+26778,
+26778,
+26801,
+26810,
+26810,
+26829,
+26836,
+26849,
+26849,
+26856,
+26856,
+26874,
+26883,
+26883,
+26883,
+26883,
+26899,
+26915,
+26915,
+26915,
+26915,
+26936,
+26951,
+26958,
+26958,
+26975,
+26994,
+27000,
+27010,
+27041,
+27066,
+27073,
+27110,
+27150,
+27150,
+27168,
+27168,
+27175,
+27184,
+27184,
+27184,
+27196,
+27209,
+27224,
+27242,
+27242,
+27248,
+27248,
+27278,
+27298,
+27314,
+27320,
+27363,
27371,
27371,
-27371,
-27401,
-27401,
-27417,
-27417,
+27393,
+27399,
+27399,
+27405,
+27405,
+27405,
+27411,
+27418,
+27425,
+27431,
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,
-27732,
-27755,
-27755,
-27755,
-27768,
-27768,
-27783,
-27789,
-27799,
-27799,
-27799,
-27818,
-27826,
-27838,
-27848,
-27848,
-27848,
-27855,
-27862,
-27862,
-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,
+27455,
+27469,
+27475,
+27475,
+27475,
+27475,
+27475,
+27500,
+27500,
+27523,
+27523,
+27558,
+27574,
+27580,
+27650,
+27663,
+27679,
+27679,
+27733,
+27745,
+27754,
+27761,
+27774,
+27774,
+27782,
+27816,
+27854,
+27854,
+27875,
+27875,
+27875,
+27930,
+27947,
+27967,
+27967,
+27979,
+27986,
+28007,
+28015,
+28036,
+28036,
+28060,
+28060,
+28078,
+28078,
+28078,
+28085,
+28085,
+28091,
+28105,
+28119,
+28119,
+28157,
+28157,
+28163,
+28175,
+28196,
+28196,
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,
+28230,
+28230,
+28230,
+28230,
+28256,
+28265,
+28265,
+28281,
+28281,
+28299,
+28310,
+28325,
+28325,
+28344,
+28353,
+28353,
+28389,
+28389,
+28389,
+28399,
+28421,
+28444,
+28444,
+28478,
+28525,
+28525,
28549,
-28575,
-28575,
-28575,
-28582,
-28599,
-28615,
-28630,
-28630,
+28549,
+28579,
+28579,
+28594,
+28607,
+28621,
+28638,
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,
-28998,
-29009,
-29009,
-29009,
-29009,
-29019,
-29019,
-29019,
-29019,
-29019,
-29057,
-29069,
-29076,
-29076,
-29076,
-29076,
-29076,
-29082,
-29082,
-29082,
-29117,
-29117,
-29117,
+28679,
+28679,
+28679,
+28690,
+28738,
+28748,
+28748,
+28748,
+28748,
+28748,
+28769,
+28803,
+28810,
+28810,
+28819,
+28819,
+28819,
+28826,
+28853,
+28853,
+28853,
+28860,
+28873,
+28898,
+28898,
+28913,
+28913,
+28913,
+28930,
+28930,
+28956,
+28981,
+29024,
+29024,
+29044,
+29044,
+29074,
+29085,
+29104,
29117,
-29134,
-29134,
-29159,
-29159,
-29185,
-29185,
-29196,
-29196,
-29242,
-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,
-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,
-29996,
-30030,
-30030,
-30054,
-30054,
-30070,
-30070,
-30070,
-30077,
-30077,
-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,
-30462,
-30472,
-30472,
-30472,
-30472,
-30472,
-30472,
-30489,
-30500,
-30500,
-30500,
-30532,
-30532,
-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,
+29125,
+29125,
+29146,
+29153,
+29153,
+29160,
+29175,
+29189,
+29189,
+29214,
+29214,
+29214,
+29224,
+29224,
+29224,
+29234,
+29299,
+29318,
+29325,
+29325,
+29343,
+29400,
+29417,
+29417,
+29436,
+29436,
+29436,
+29436,
+29454,
+29460,
+29460,
+29478,
+29478,
+29478,
+29487,
+29487,
+29516,
+29516,
+29549,
+29559,
+29559,
+29576,
+29587,
+29609,
+29609,
+29630,
+29630,
+29644,
+29644,
+29644,
+29644,
+29664,
+29664,
+29686,
+29711,
+29734,
+29734,
+29741,
+29752,
+29752,
+29778,
+29798,
+29805,
+29819,
+29835,
+29842,
+29849,
+29866,
+29884,
+29891,
+29891,
+29919,
+29943,
+29993,
+30000,
+30010,
+30016,
+30046,
+30069,
+30085,
+30085,
+30102,
+30124,
+30143,
+30150,
+30150,
+30169,
+30169,
+30216,
+30230,
+30256,
+30256,
+30265,
+30280,
+30304,
+30320,
+30324,
+30340,
+30354,
+30364,
+30382,
+30396,
+30396,
+30407,
+30457,
+30473,
+30490,
+30490,
+30490,
+30514,
+30514,
+30539,
+30562,
+30583,
+30615,
+30622,
+30622,
+30629,
+30638,
+30662,
+30662,
+30688,
+30712,
+30712,
+30721,
+30721,
+30721,
+30721,
+30721,
+30758,
+30792,
+30811,
+30811,
+30811,
+30843,
+30843,
+30876,
+30876,
+30876,
+30876,
+30889,
+30909,
+30923,
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,
-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,
+30980,
+31031,
+31059,
+31078,
+31108,
+31125,
+31137,
+31174,
+31200,
+31200,
+31200,
+31200,
+31207,
+31237,
+31237,
+31259,
+31279,
+31307,
+31335,
+31378,
+31378,
+31378,
+31378,
+31397,
+31437,
+31443,
+31467,
+31467,
+31483,
+31527,
+31537,
+31548,
+31557,
+31564,
+31564,
+31589,
+31603,
+31647,
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,
-32294,
+31677,
+31677,
+31690,
+31709,
+31709,
+31762,
+31769,
+31776,
+31799,
+31841,
+31841,
+31848,
+31869,
+31875,
+31875,
+31904,
+31904,
+31925,
+31939,
+31952,
+31984,
+31984,
+31984,
+32029,
+32029,
+32029,
+32045,
+32055,
+32086,
+32086,
+32124,
+32152,
+32152,
+32159,
+32159,
+32184,
+32190,
+32211,
+32231,
+32231,
+32238,
+32261,
+32268,
+32284,
+32284,
+32284,
+32284,
32300,
-32305,
-32305,
-32305,
32323,
-32337,
-32352,
-32359,
-32374,
-32381,
-32388,
-32388,
-32388,
-32402,
+32351,
+32358,
+32396,
+32396,
+32396,
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,
+32414,
+32414,
+32438,
+32449,
+32455,
+32483,
+32490,
+32510,
+32541,
+32548,
+32578,
+32585,
+32592,
+32592,
+32592,
+32616,
+32625,
+32641,
+32671,
+32681,
+32681,
+32688,
+32711,
+32737,
+32754,
+32761,
+32761,
+32777,
+32810,
+32817,
+32817,
+32817,
+32817,
+32817,
+32844,
+32867,
+32901,
+32943,
+32956,
+32974,
+32983,
+33004,
+33004,
+33050,
+33066,
+33072,
+33072,
+33080,
+33080,
33110,
33110,
-33151,
-33158,
-33180,
-33198,
-33205,
-33227,
-33227,
-33237,
-33237,
-33253,
-33258,
-33277,
-33292,
-33315,
-33315,
-33333,
-33348,
-33348,
-33348,
+33134,
+33157,
+33164,
+33200,
+33200,
+33207,
+33244,
+33244,
+33309,
+33316,
+33316,
+33316,
+33316,
+33316,
+33323,
+33341,
33348,
-33348,
-33348,
-33348,
-33355,
-33355,
-33355,
-33390,
-33408,
-33423,
-33437,
-33452,
-33458,
-33465,
-33480,
-33480,
+33361,
+33394,
+33394,
+33394,
+33394,
+33432,
+33442,
+33470,
+33470,
+33470,
+33487,
33487,
-33494,
-33504,
-33511,
-33551,
-33551,
-33558,
-33589,
-33595,
-33595,
+33487,
+33516,
+33548,
+33562,
+33562,
+33569,
+33584,
+33584,
+33584,
33602,
-33627,
-33644,
-33668,
-33668,
-33668,
-33676,
-33676,
-33716,
-33728,
-33747,
-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,
+33621,
+33621,
+33629,
+33645,
+33645,
+33652,
+33652,
+33672,
+33691,
+33707,
+33714,
+33721,
+33721,
+33735,
+33766,
+33772,
+33772,
+33772,
+33779,
+33779,
+33824,
+33844,
+33844,
+33850,
+33867,
+33867,
+33874,
+33874,
+33874,
+33874,
+33901,
+33946,
+33960,
+33971,
+34019,
+34050,
34077,
-34083,
-34090,
-34099,
-34099,
-34115,
-34115,
-34133,
-34140,
-34167,
-34172,
-34184,
-34221,
-34245,
-34252,
-34252,
+34084,
+34103,
+34110,
+34121,
+34128,
+34157,
+34193,
+34193,
+34220,
34259,
-34318,
+34272,
+34272,
+34272,
+34279,
+34294,
+34300,
+34313,
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,
-34580,
-34580,
-34580,
-34589,
+34333,
+34347,
+34354,
+34361,
+34368,
+34368,
+34368,
+34408,
+34433,
+34467,
+34504,
+34504,
+34547,
+34547,
+34554,
+34561,
+34561,
+34561,
+34582,
34589,
-34589,
-34613,
-34648,
-34648,
-34648,
-34655,
-34664,
-34681,
-34681,
-34698,
-34698,
-34720,
-34736,
+34611,
+34627,
+34637,
+34637,
+34637,
+34641,
+34666,
+34666,
+34683,
+34690,
+34690,
+34699,
+34699,
+34716,
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,
+34756,
+34756,
+34756,
+34756,
+34777,
+34777,
+34777,
+34820,
+34827,
+34862,
+34874,
+34881,
+34881,
+34903,
+34903,
+34903,
+34920,
+34949,
+34949,
+34949,
+34949,
+34968,
+34968,
+35003,
+35003,
+35015,
+35039,
+35039,
+35081,
+35093,
+35093,
+35115,
+35115,
+35132,
+35132,
+35132,
+35132,
+35157,
35226,
-35226,
-35256,
-35262,
-35272,
-35280,
+35241,
+35248,
+35266,
+35266,
+35273,
+35273,
+35273,
+35273,
+35299,
35299,
-35332,
-35354,
-35354,
-35354,
-35370,
-35386,
-35417,
-35417,
-35460,
-35473,
-35478,
-35495,
-35504,
-35504,
-35518,
-35552,
-35589,
-35624,
-35624,
-35637,
-35637,
-35643,
-35643,
-35669,
-35682,
-35695,
-35702,
-35709,
-35709,
-35726,
-35739,
-35749,
-35756,
-35756,
-35778,
-35803,
-35810,
-35829,
-35883,
+35306,
+35334,
+35365,
+35365,
+35406,
+35428,
+35428,
+35441,
+35474,
+35506,
+35506,
+35529,
+35529,
+35548,
+35555,
+35574,
+35574,
+35574,
+35595,
+35630,
+35644,
+35649,
+35698,
+35750,
+35750,
+35762,
+35762,
+35762,
+35798,
+35842,
+35849,
+35866,
+35878,
+35885,
+35892,
35899,
-35905,
-35911,
-35911,
+35899,
+35906,
+35906,
+35906,
35923,
-35947,
-35954,
-35980,
-35987,
-36034,
-36052,
-36063,
-36095,
-36106,
-36106,
+35944,
+35951,
+35961,
+35978,
+35984,
+35992,
+36023,
+36060,
+36076,
+36085,
36113,
-36120,
-36140,
-36140,
-36153,
-36160,
-36160,
-36167,
-36203,
-36203,
-36218,
-36218,
-36225,
-36253,
-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,
-36845,
-36875,
-36875,
-36903,
-36921,
-36928,
-36928,
-36940,
-36940,
-36940,
-36966,
-36966,
-36973,
-36983,
-36998,
-37004,
-37014,
-37024,
-37024,
-37032,
-37038,
-37038,
-37061,
-37074,
-37074,
-37091,
-37098,
-37105,
-37105,
-37133,
-37141,
-37141,
-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,
-37542,
-37549,
-37549,
-37549,
-37549,
-37556,
-37576,
-37576,
-37583,
-37590,
-37597,
-37604,
-37604,
-37621,
-37635,
-37676,
-37676,
-37704,
-37711,
-37728,
+36144,
+36144,
+36159,
+36166,
+36166,
+36173,
+36173,
+36201,
+36201,
+36220,
+36227,
+36227,
+36227,
+36247,
+36263,
+36270,
+36270,
+36315,
+36315,
+36322,
+36330,
+36354,
+36408,
+36420,
+36420,
+36440,
+36454,
+36454,
+36454,
+36461,
+36474,
+36529,
+36569,
+36667,
+36674,
+36674,
+36700,
+36707,
+36707,
+36714,
+36721,
+36721,
+36731,
+36760,
+36781,
+36793,
+36800,
+36800,
+36847,
+36854,
+36868,
+36938,
+36945,
+36967,
+36967,
+36992,
+37008,
+37050,
+37050,
+37050,
+37068,
+37081,
+37088,
+37113,
+37145,
+37145,
+37145,
+37145,
+37165,
+37171,
+37171,
+37198,
+37198,
+37211,
+37239,
+37247,
+37298,
+37341,
+37341,
+37367,
+37400,
+37422,
+37458,
+37492,
+37530,
+37530,
+37530,
+37537,
+37551,
+37566,
+37592,
+37614,
+37614,
+37631,
+37638,
+37645,
+37652,
+37664,
+37702,
+37714,
+37721,
37728,
-37737,
-37737,
-37737,
-37750,
-37757,
-37778,
-37785,
-37785,
-37819,
-37826,
-37833,
-37843,
-37850,
-37869,
-37914,
-37921,
-37935,
+37740,
+37770,
+37770,
+37793,
+37809,
+37830,
+37830,
+37841,
+37841,
+37867,
+37867,
+37883,
+37890,
+37890,
+37910,
+37926,
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,
-38481,
-38506,
-38522,
-38534,
+37957,
+37991,
+38010,
+38010,
+38026,
+38079,
+38086,
+38093,
+38112,
+38119,
+38136,
+38136,
+38155,
+38189,
+38210,
+38220,
+38248,
+38278,
+38278,
+38314,
+38339,
+38339,
+38354,
+38370,
+38385,
+38399,
+38417,
+38441,
+38469,
+38476,
+38483,
+38499,
+38499,
+38499,
+38521,
38559,
-38559,
-38559,
-38564,
-38564,
-38581,
-38604,
-38604,
-38611,
-38620,
-38626,
-38635,
-38635,
-38635,
-38666,
-38674,
+38599,
+38617,
+38624,
+38624,
+38660,
+38673,
38688,
-38693,
-38710,
-38722,
-38722,
-38722,
-38729,
-38734,
-38752,
-38792,
-38818,
-38825,
+38742,
+38774,
+38774,
+38799,
+38799,
+38830,
+38861,
+38861,
38861,
+38861,
+38861,
+38890,
38902,
-38934,
-38949,
-38949,
-38960,
-38969,
-38985,
-38985,
-38996,
-39013,
-39024,
-39024,
-39032,
-39061,
-39074,
+38909,
+38944,
+38989,
+39007,
+39045,
+39063,
39089,
-39123,
-39123,
-39123,
-39140,
-39161,
-39180,
-39206,
-39215,
-39254,
-39261,
-39277,
-39284,
-39314,
-39314,
-39330,
-39340,
-39340,
-39371,
-39371,
-39392,
+39096,
+39109,
+39109,
+39114,
+39127,
+39162,
+39177,
+39177,
+39200,
+39218,
+39226,
+39226,
+39257,
+39293,
+39293,
+39324,
+39324,
+39352,
+39364,
+39364,
+39377,
+39395,
+39395,
+39413,
39430,
-39430,
-39437,
-39444,
-39461,
-39468,
-39468,
-39485,
-39517,
-39524,
-39538,
-39543,
-39548,
-39555,
+39459,
+39469,
+39469,
+39479,
+39479,
+39479,
+39503,
+39518,
+39528,
+39528,
+39528,
+39540,
+39565,
+39565,
39581,
-39588,
-39588,
-39609,
-39609,
-39616,
-39652,
+39605,
+39622,
+39653,
+39670,
39670,
-39677,
-39677,
-39684,
-39691,
-39702,
-39717,
-39717,
-39717,
-39724,
-39749,
-39760,
-39766,
-39775,
-39791,
-39791,
-39814,
-39827,
-39827,
-39837,
-39859};
+39670,
+39670,
+39683,
+39689,
+39708,
+39743,
+39743,
+39743,
+39743,
+39743,
+39750,
+39750,
+39750,
+39761,
+39761,
+39777,
+39805,
+39845,
+39855,
+39855,
+39855,
+39855,
+39887,
+39887,
+39887,
+39887,
+39916,
+39916,
+39936,
+39943,
+39962,
+39962,
+39976,
+39976,
+40005,
+40011,
+40011,
+40011,
+40039,
+40051,
+40071,
+40087,
+40087,
+40087,
+40099,
+40099,
+40099,
+40148,
+40170,
+40170,
+40183,
+40183,
+40210,
+40210,
+40210,
+40210,
+40210,
+40221,
+40221,
+40221,
+40221,
+40243,
+40271,
+40271,
+40293,
+40309,
+40314,
+40329,
+40329,
+40354,
+40354,
+40354,
+40354,
+40373,
+40383,
+40383,
+40383,
+40383,
+40396,
+40404,
+40411,
+40417,
+40417,
+40417,
+40417,
+40424,
+40462,
+40473,
+40473,
+40479,
+40479,
+40510,
+40539,
+40539,
+40539,
+40539,
+40539,
+40539,
+40539,
+40556,
+40556,
+40577,
+40588,
+40588,
+40588,
+40588,
+40597,
+40614,
+40623,
+40623,
+40623,
+40623,
+40635,
+40635,
+40635,
+40652,
+40652,
+40652,
+40663,
+40702,
+40724,
+40724,
+40724,
+40724,
+40724,
+40750,
+40750,
+40759,
+40781,
+40781,
+40791,
+40817,
+40817,
+40817,
+40817,
+40817,
+40840,
+40891,
+40891,
+40891,
+40936,
+40990,
+40997,
+41022,
+41071,
+41086,
+41086,
+41102,
+41110,
+41131,
+41157,
+41157,
+41198,
+41216,
+41216,
+41216,
+41235,
+41235,
+41235,
+41247,
+41273,
+41273,
+41273,
+41286,
+41286,
+41320,
+41351,
+41377,
+41403,
+41403,
+41416,
+41426,
+41426,
+41442,
+41458,
+41458,
+41458,
+41470,
+41470,
+41487,
+41498,
+41525,
+41525,
+41544,
+41550,
+41581,
+41598,
+41608,
+41645,
+41654,
+41687,
+41715,
+41715,
+41721,
+41763,
+41776,
+41800,
+41800,
+41800,
+41826,
+41853,
+41879,
+41879,
+41898,
+41908,
+41908,
+41908,
+41926,
+41926,
+41926,
+41943,
+41962,
+41972,
+41998,
+42013,
+42027,
+42027,
+42064,
+42064,
+42073,
+42073,
+42087,
+42101,
+42101,
+42138,
+42148,
+42185,
+42185,
+42208,
+42244,
+42284,
+42284,
+42311,
+42311,
+42321,
+42367,
+42367,
+42367,
+42413,
+42413,
+42427,
+42427,
+42447,
+42486,
+42486,
+42486,
+42509,
+42518,
+42556,
+42556,
+42556,
+42568,
+42586,
+42586,
+42586,
+42605,
+42605,
+42605,
+42628,
+42638,
+42651,
+42651,
+42651,
+42660,
+42681,
+42731,
+42769,
+42769,
+42769,
+42794,
+42802,
+42831,
+42862,
+42862,
+42862,
+42862,
+42911,
+42911,
+42931,
+42946,
+42946,
+42977,
+42994,
+43024,
+43024,
+43024,
+43030,
+43030,
+43084,
+43116,
+43163,
+43163,
+43175,
+43175,
+43175,
+43175,
+43175,
+43175,
+43200,
+43206,
+43206,
+43217,
+43249,
+43249,
+43268,
+43268,
+43285,
+43285,
+43306,
+43306,
+43306,
+43306,
+43324,
+43342,
+43342,
+43361,
+43375,
+43375,
+43375,
+43391,
+43418,
+43424,
+43424,
+43436,
+43443,
+43443,
+43443,
+43473,
+43473,
+43473,
+43486,
+43486,
+43501,
+43501,
+43534,
+43552,
+43567,
+43583,
+43583,
+43599,
+43599,
+43621,
+43621,
+43630,
+43646,
+43663,
+43663,
+43680,
+43680,
+43680,
+43692,
+43720,
+43753,
+43765,
+43778,
+43795,
+43795,
+43795,
+43811,
+43811,
+43811,
+43823,
+43879,
+43895,
+43895,
+43930,
+43930,
+43954,
+43954,
+43971,
+43971,
+43971,
+44004,
+44029,
+44038,
+44048,
+44060,
+44060,
+44060,
+44066,
+44075,
+44090,
+44100,
+44137,
+44157,
+44166,
+44175,
+44175,
+44180,
+44188,
+44210,
+44220,
+44220,
+44220,
+44220,
+44220,
+44220,
+44236,
+44246,
+44255,
+44279,
+44279,
+44302,
+44332,
+44332,
+44332,
+44352,
+44368,
+44391,
+44391,
+44391,
+44420,
+44420,
+44444,
+44479,
+44479,
+44497,
+44510,
+44510,
+44510,
+44510,
+44510,
+44510,
+44543,
+44550,
+44550,
+44557,
+44623,
+44623,
+44642,
+44642,
+44642,
+44679,
+44691,
+44774,
+44774,
+44774,
+44819,
+44836,
+44895,
+44895,
+44930,
+44945,
+44945,
+45013,
+45020,
+45083,
+45099,
+45111,
+45119,
+45129,
+45136,
+45148,
+45148,
+45148,
+45154,
+45171,
+45171,
+45171,
+45171,
+45171,
+45182,
+45182,
+45208,
+45217,
+45255,
+45255,
+45274,
+45274,
+45274,
+45303,
+45309,
+45323,
+45323,
+45354,
+45363,
+45372,
+45372,
+45388,
+45421,
+45449,
+45463,
+45477,
+45504,
+45504,
+45521,
+45521,
+45537,
+45556,
+45556,
+45563,
+45569,
+45569,
+45569,
+45587,
+45593,
+45611,
+45616,
+45616,
+45628,
+45648,
+45692,
+45710,
+45740,
+45773,
+45787,
+45805,
+45811,
+45828,
+45828,
+45861,
+45875,
+45881,
+45881,
+45881,
+45891,
+45891,
+45908,
+45920,
+45920,
+45932,
+45932,
+45932,
+45932,
+45947,
+45966,
+45966,
+46003,
+46039,
+46045,
+46081,
+46087,
+46104,
+46133,
+46150,
+46165,
+46176,
+46176,
+46176,
+46176,
+46181,
+46187,
+46187,
+46187,
+46187,
+46196,
+46202,
+46202,
+46202,
+46213,
+46213,
+46218,
+46218,
+46235,
+46235,
+46235,
+46235,
+46240,
+46302,
+46302,
+46324,
+46324,
+46324,
+46324,
+46324,
+46324,
+46324,
+46324,
+46344,
+46344,
+46356,
+46365,
+46365,
+46396,
+46396,
+46402,
+46430,
+46444,
+46467,
+46492,
+46492,
+46534,
+46563,
+46563,
+46584,
+46595,
+46605,
+46616,
+46616,
+46629,
+46629,
+46654,
+46660,
+46676,
+46676,
+46676,
+46682,
+46682,
+46682,
+46682,
+46711,
+46728,
+46728,
+46728,
+46728,
+46782,
+46797,
+46802,
+46818,
+46818,
+46824,
+46853,
+46853,
+46870,
+46876,
+46876,
+46928,
+46961,
+46981,
+46981,
+47023,
+47023,
+47023,
+47023,
+47075,
+47112,
+47134,
+47146,
+47162,
+47172,
+47172,
+47172,
+47177,
+47177,
+47177,
+47182,
+47193,
+47193,
+47214,
+47256,
+47278,
+47289,
+47338,
+47344,
+47344,
+47367,
+47367,
+47414,
+47423,
+47423,
+47434,
+47451,
+47464,
+47464,
+47464,
+47464,
+47464,
+47479,
+47479,
+47520,
+47520,
+47533,
+47546,
+47552,
+47561,
+47573,
+47573,
+47573,
+47591,
+47591,
+47591,
+47591,
+47596,
+47609,
+47609,
+47620,
+47650,
+47650,
+47650,
+47655,
+47693,
+47708,
+47708,
+47732,
+47737,
+47742,
+47754,
+47768,
+47800,
+47818,
+47818,
+47829,
+47850,
+47850,
+47908,
+47908,
+47930,
+47936,
+47936,
+47978,
+47978,
+47983,
+48002,
+48012,
+48025,
+48025,
+48034,
+48049,
+48083,
+48093,
+48138,
+48138,
+48153,
+48182,
+48205,
+48205,
+48205,
+48212,
+48212,
+48212,
+48234,
+48234,
+48234,
+48234,
+48250,
+48264,
+48264,
+48280,
+48280,
+48295,
+48295,
+48295,
+48295,
+48319,
+48319,
+48319,
+48328,
+48328,
+48334,
+48356,
+48356,
+48362,
+48419,
+48469,
+48488,
+48494,
+48534,
+48534,
+48559,
+48569,
+48583,
+48604,
+48620,
+48670,
+48688,
+48688,
+48697,
+48710,
+48710,
+48710,
+48724,
+48751,
+48757,
+48770,
+48782,
+48797,
+48835,
+48835,
+48840,
+48886,
+48906,
+48922,
+48931,
+48931,
+48951,
+48951,
+48951,
+48962,
+48962,
+48969,
+49033,
+49033,
+49033,
+49074,
+49116,
+49116,
+49123,
+49130,
+49130,
+49164,
+49170,
+49187,
+49206,
+49215,
+49234,
+49261,
+49261,
+49273,
+49324,
+49324,
+49357,
+49404,
+49404,
+49429,
+49448,
+49448,
+49466,
+49472,
+49499,
+49499,
+49499,
+49543,
+49572,
+49579,
+49622,
+49632,
+49685,
+49724,
+49724,
+49724,
+49724,
+49724,
+49761,
+49769,
+49769,
+49797,
+49797,
+49832,
+49832,
+49832,
+49859,
+49859,
+49873,
+49884,
+49884,
+49920,
+49920,
+49931,
+49947,
+49961,
+49978,
+50008,
+50038,
+50038,
+50038,
+50060,
+50076,
+50089,
+50089,
+50089,
+50102,
+50130,
+50130,
+50146,
+50146,
+50146,
+50151,
+50159,
+50184,
+50206,
+50233,
+50250,
+50250,
+50266,
+50274,
+50274,
+50274,
+50274,
+50287,
+50315,
+50315,
+50315,
+50327,
+50327,
+50334,
+50334,
+50366,
+50372,
+50402,
+50402,
+50434,
+50474,
+50494,
+50494,
+50510,
+50510,
+50510,
+50510,
+50510,
+50510,
+50515,
+50515,
+50536,
+50557,
+50578,
+50595,
+50595,
+50595,
+50620,
+50626,
+50626,
+50644,
+50656,
+50671,
+50671,
+50671,
+50695,
+50730,
+50730,
+50740,
+50746,
+50750,
+50765,
+50771,
+50771,
+50817,
+50817,
+50828,
+50837,
+50837,
+50844,
+50844,
+50894,
+50894,
+50905,
+50905,
+50905,
+50944,
+50944,
+50944,
+50975,
+51011,
+51024,
+51024,
+51024,
+51042,
+51042,
+51042,
+51054,
+51054,
+51064,
+51073,
+51073,
+51073,
+51073,
+51073,
+51073,
+51098,
+51117,
+51117,
+51117,
+51137,
+51137,
+51137,
+51200,
+51221,
+51246,
+51246,
+51272,
+51307,
+51334,
+51334,
+51334,
+51334,
+51354,
+51354,
+51370,
+51377,
+51377,
+51415,
+51431,
+51431,
+51431,
+51450,
+51450,
+51456,
+51499,
+51517,
+51529,
+51550,
+51550,
+51558,
+51569,
+51569,
+51569,
+51569,
+51569,
+51569,
+51584,
+51584,
+51584,
+51598,
+51638,
+51638,
+51638,
+51671,
+51683,
+51710,
+51710,
+51731,
+51766,
+51775,
+51808,
+51829,
+51861,
+51861,
+51861,
+51877,
+51877,
+51889,
+51889,
+51889,
+51911,
+51946,
+51946,
+51966,
+51966,
+51966,
+51966,
+51980,
+51985,
+51997,
+51997,
+51997,
+51997,
+52004,
+52004,
+52004,
+52004,
+52017,
+52032,
+52032,
+52032,
+52063,
+52063,
+52076,
+52095,
+52107,
+52121,
+52121,
+52121,
+52121,
+52121,
+52121,
+52149,
+52184,
+52213,
+52213,
+52213,
+52213,
+52213,
+52213,
+52246,
+52257,
+52286,
+52286,
+52316,
+52316,
+52329,
+52329,
+52329,
+52365,
+52365,
+52365,
+52365,
+52372,
+52386,
+52386,
+52412,
+52420,
+52430,
+52430,
+52436,
+52436,
+52448,
+52454,
+52454,
+52454,
+52479,
+52497,
+52497,
+52512,
+52531,
+52531,
+52551,
+52571,
+52609,
+52609,
+52623,
+52623,
+52635,
+52656,
+52656,
+52668,
+52689,
+52689,
+52706,
+52706,
+52716,
+52716,
+52732,
+52749,
+52755,
+52772,
+52772,
+52772,
+52772,
+52801,
+52801,
+52830,
+52841,
+52841,
+52841,
+52864,
+52864,
+52864,
+52864,
+52864,
+52875,
+52885,
+52893,
+52914,
+52936,
+52960,
+52980,
+53001,
+53001,
+53001,
+53001,
+53001,
+53023,
+53039,
+53039,
+53039,
+53056,
+53069,
+53069,
+53127,
+53145,
+53162,
+53162,
+53183,
+53199,
+53230,
+53244,
+53251,
+53251,
+53269,
+53269,
+53284,
+53320,
+53326,
+53326,
+53359,
+53359,
+53377,
+53404,
+53404,
+53436,
+53454,
+53471,
+53481,
+53498,
+53517,
+53517,
+53517,
+53517,
+53536,
+53557,
+53603,
+53617,
+53617,
+53636,
+53663,
+53663,
+53682,
+53682,
+53702,
+53702,
+53702,
+53717,
+53717,
+53757,
+53769,
+53788,
+53788,
+53788,
+53788,
+53788,
+53809,
+53809,
+53823,
+53840,
+53840,
+53866,
+53907,
+53942,
+53942,
+53942,
+53979,
+54003,
+54003,
+54024,
+54024,
+54024,
+54024,
+54024,
+54043,
+54043,
+54059,
+54069,
+54110,
+54131,
+54142,
+54160,
+54177,
+54177,
+54177,
+54187,
+54187,
+54205,
+54212,
+54212,
+54244,
+54270,
+54280,
+54292,
+54292,
+54292,
+54309,
+54309,
+54335,
+54335,
+54335,
+54343,
+54365,
+54379,
+54379,
+54414,
+54414,
+54414,
+54414,
+54414,
+54448,
+54448,
+54458,
+54490,
+54496,
+54513,
+54521,
+54583,
+54583,
+54603,
+54637,
+54658,
+54658,
+54666,
+54682,
+54691,
+54691,
+54726,
+54743,
+54784,
+54784,
+54794,
+54825,
+54825,
+54825,
+54839,
+54866,
+54866,
+54899,
+54899,
+54908,
+54908,
+54936,
+54936,
+54942,
+54942,
+54977,
+54977,
+54977,
+54977,
+54977,
+54977,
+54977,
+54977,
+54977,
+54988,
+54988,
+54995,
+55056,
+55082,
+55082,
+55082,
+55092,
+55104,
+55128,
+55128,
+55148,
+55170,
+55170,
+55170,
+55210,
+55229,
+55251,
+55308,
+55308,
+55326,
+55336,
+55355,
+55355,
+55355,
+55355,
+55368,
+55375,
+55382,
+55382,
+55382,
+55389,
+55389,
+55389,
+55415,
+55425,
+55467,
+55467,
+55481,
+55492,
+55492,
+55492,
+55516,
+55516,
+55516,
+55529,
+55540,
+55540,
+55560,
+55560,
+55577,
+55577,
+55577,
+55584,
+55584,
+55602,
+55602,
+55602,
+55638,
+55638,
+55655,
+55655,
+55655,
+55655,
+55655,
+55672,
+55680,
+55680,
+55698,
+55715,
+55754,
+55762,
+55802,
+55802,
+55802,
+55808,
+55825,
+55825,
+55825,
+55865,
+55865,
+55865,
+55885,
+55891,
+55901,
+55901,
+55918,
+55945,
+55945,
+55971,
+55978,
+55991,
+56004,
+56011,
+56026,
+56026,
+56041,
+56049,
+56049,
+56071,
+56122,
+56122,
+56149,
+56149,
+56149,
+56169,
+56169,
+56181,
+56181,
+56181,
+56181,
+56181,
+56196,
+56196,
+56255,
+56281,
+56281,
+56299,
+56299,
+56336,
+56342,
+56342,
+56375,
+56381,
+56381,
+56381,
+56387,
+56410,
+56426,
+56426,
+56436,
+56436,
+56436,
+56457,
+56457,
+56457,
+56464,
+56464,
+56478,
+56490,
+56490,
+56490,
+56511,
+56511,
+56517,
+56531,
+56548,
+56548,
+56548,
+56554,
+56570,
+56593,
+56605,
+56619,
+56619,
+56638,
+56638,
+56638,
+56638,
+56650,
+56668,
+56685,
+56698,
+56698,
+56698,
+56709,
+56722,
+56739,
+56739,
+56755,
+56773,
+56812,
+56828,
+56834,
+56865,
+56865,
+56865,
+56865,
+56871,
+56893,
+56911,
+56937,
+56937,
+56937,
+56937,
+56976,
+56976,
+57000,
+57009,
+57027,
+57073,
+57073,
+57124,
+57124,
+57149,
+57190,
+57221,
+57243,
+57253,
+57279,
+57300,
+57300,
+57338,
+57338,
+57338,
+57347,
+57359,
+57380,
+57380,
+57380,
+57403,
+57409,
+57424,
+57433,
+57450,
+57472,
+57472,
+57480,
+57480,
+57480,
+57480,
+57491,
+57518,
+57518,
+57518,
+57533,
+57533,
+57533,
+57533,
+57553,
+57553,
+57553,
+57588,
+57595,
+57610,
+57619,
+57619,
+57661,
+57691,
+57691,
+57691,
+57691,
+57707,
+57713,
+57731,
+57731,
+57750,
+57750,
+57756,
+57791,
+57791,
+57791,
+57791,
+57791,
+57805,
+57829,
+57867,
+57867,
+57867,
+57873,
+57893,
+57912,
+57912,
+57948,
+57948,
+57973,
+57979,
+57979,
+57979,
+57990,
+58009,
+58027,
+58039,
+58056,
+58056,
+58080,
+58080,
+58080,
+58115,
+58115,
+58115,
+58115,
+58122,
+58122,
+58122,
+58122,
+58122,
+58153,
+58168,
+58175,
+58175,
+58188,
+58212,
+58237,
+58237,
+58237,
+58275,
+58275,
+58275,
+58275,
+58313,
+58322,
+58343,
+58352,
+58379,
+58379,
+58388,
+58401,
+58418,
+58430,
+58444,
+58469,
+58479,
+58484,
+58503,
+58521,
+58545,
+58572,
+58582,
+58597,
+58630,
+58630,
+58637,
+58654,
+58654,
+58690,
+58690,
+58697,
+58707,
+58713,
+58713,
+58713,
+58730,
+58730,
+58730,
+58763,
+58817,
+58817,
+58817,
+58817,
+58838,
+58838,
+58838,
+58866,
+58902,
+58902,
+58902,
+58911,
+58911,
+58930,
+58930,
+58960,
+58960,
+58988,
+59006,
+59043,
+59061,
+59061,
+59097,
+59122,
+59122,
+59122,
+59122,
+59122,
+59122,
+59122,
+59122,
+59151,
+59167,
+59187,
+59204,
+59212,
+59222,
+59222,
+59222,
+59238,
+59266,
+59285,
+59300,
+59315,
+59315,
+59315,
+59330,
+59343,
+59375,
+59375,
+59395,
+59413,
+59428,
+59428,
+59428,
+59456,
+59466,
+59486,
+59508,
+59508,
+59517,
+59524,
+59542,
+59542,
+59549,
+59549,
+59557,
+59571,
+59587,
+59587,
+59642,
+59668,
+59679,
+59679,
+59694,
+59734,
+59744,
+59758,
+59771,
+59771,
+59786,
+59793,
+59802,
+59820,
+59831,
+59870,
+59896,
+59896,
+59917,
+59932,
+59932,
+59942,
+59942,
+59962,
+59969,
+59969,
+60007,
+60038,
+60050,
+60057,
+60064,
+60102,
+60102,
+60109,
+60116,
+60132,
+60146,
+60165,
+60181,
+60201,
+60201,
+60208,
+60224,
+60245,
+60328,
+60328,
+60335,
+60342,
+60349,
+60349,
+60401,
+60401,
+60401,
+60436,
+60467,
+60467,
+60474,
+60497,
+60504,
+60545,
+60545,
+60569,
+60592,
+60632,
+60638,
+60645,
+60654,
+60654,
+60654,
+60684,
+60684,
+60701,
+60701,
+60718,
+60744,
+60751,
+60751,
+60751,
+60751,
+60776,
+60792,
+60799,
+60799,
+60806,
+60806,
+60845,
+60872,
+60890,
+60890,
+60930,
+60930,
+60930,
+60930,
+60930,
+60948,
+60992,
+61000,
+61000,
+61017,
+61017,
+61044,
+61061,
+61087,
+61107,
+61107,
+61107,
+61107,
+61123,
+61123,
+61142,
+61142,
+61142,
+61184,
+61207,
+61227,
+61227,
+61276,
+61283,
+61290,
+61313,
+61342,
+61376,
+61383,
+61383,
+61390,
+61390,
+61415,
+61424,
+61449,
+61461,
+61461,
+61495,
+61495,
+61502,
+61502,
+61548,
+61548,
+61548,
+61570,
+61602,
+61619,
+61628,
+61628,
+61628,
+61659,
+61673,
+61680,
+61706,
+61729,
+61753,
+61753,
+61753,
+61753,
+61763,
+61796,
+61796,
+61813,
+61820,
+61820,
+61845,
+61852,
+61877,
+61884,
+61904,
+61912,
+61912,
+61912,
+61949,
+61949,
+61961,
+61961,
+61968,
+61968,
+61968,
+61968,
+62014,
+62026,
+62047,
+62068,
+62075,
+62075,
+62082,
+62089,
+62099,
+62128,
+62155,
+62184,
+62184,
+62213,
+62220,
+62245,
+62274,
+62318,
+62338,
+62359,
+62359,
+62359,
+62388,
+62408,
+62415,
+62415,
+62421,
+62421,
+62429,
+62440,
+62440,
+62470,
+62470,
+62470,
+62494,
+62535,
+62542,
+62549,
+62556,
+62564,
+62571,
+62578,
+62611,
+62618,
+62645,
+62655,
+62667,
+62676,
+62701,
+62720,
+62720,
+62727,
+62752,
+62759,
+62766,
+62782,
+62794,
+62794,
+62804,
+62804,
+62814,
+62831,
+62839,
+62846,
+62852,
+62886,
+62886,
+62900,
+62910,
+62929,
+62943,
+62950,
+62972,
+62985,
+62985,
+62985,
+62998,
+63014,
+63041,
+63067,
+63067,
+63085,
+63101,
+63108,
+63108,
+63115,
+63135,
+63135,
+63142,
+63149,
+63149,
+63156,
+63173,
+63173,
+63180,
+63212,
+63219,
+63236,
+63236,
+63247,
+63298,
+63310,
+63343,
+63343,
+63343,
+63356,
+63356,
+63374,
+63374,
+63374,
+63374,
+63381,
+63401,
+63421,
+63436,
+63459,
+63459,
+63500,
+63506,
+63516,
+63528,
+63551,
+63551,
+63567,
+63615,
+63615,
+63651,
+63679,
+63693,
+63700,
+63734,
+63734,
+63748,
+63763,
+63763,
+63763,
+63775,
+63815,
+63861,
+63884,
+63884,
+63899,
+63907,
+63943,
+63943,
+63950,
+63950,
+63964,
+63964,
+63964,
+63996,
+64003,
+64012,
+64012,
+64106,
+64124,
+64131,
+64131,
+64138,
+64158,
+64158,
+64177,
+64208,
+64208,
+64220,
+64220,
+64220,
+64235,
+64243,
+64258,
+64258,
+64280,
+64290,
+64301,
+64321,
+64334,
+64341,
+64357,
+64400,
+64400,
+64407,
+64407,
+64414,
+64414,
+64433,
+64454,
+64472,
+64502,
+64523,
+64523,
+64582,
+64589,
+64589,
+64619,
+64619,
+64619,
+64619,
+64638,
+64638,
+64638,
+64648,
+64660,
+64660,
+64676,
+64676,
+64695,
+64705,
+64705,
+64732,
+64732,
+64732,
+64738,
+64764,
+64774,
+64787,
+64830,
+64854,
+64888,
+64893,
+64902,
+64938,
+64967,
+64997,
+64997,
+65015,
+65046,
+65072,
+65072,
+65097,
+65110,
+65110,
+65110,
+65110,
+65110,
+65110,
+65122,
+65122,
+65122,
+65129,
+65170,
+65187,
+65187,
+65210,
+65228,
+65235,
+65251,
+65259,
+65259,
+65259,
+65274,
+65274,
+65287,
+65307,
+65323,
+65323,
+65323,
+65362,
+65384,
+65384,
+65400,
+65400,
+65400,
+65400,
+65423,
+65430,
+65457,
+65457,
+65457,
+65476,
+65476,
+65476,
+65476,
+65486,
+65486,
+65521,
+65550,
+65550,
+65550,
+65584,
+65584,
+65584,
+65584,
+65584,
+65601,
+65621,
+65631,
+65672,
+65692,
+65719,
+65719,
+65743,
+65766,
+65766,
+65782,
+65788,
+65828,
+65854,
+65868,
+65877,
+65897,
+65909,
+65936,
+65936,
+65948,
+65948,
+65968,
+65989,
+65989,
+65989,
+65989,
+66016,
+66016,
+66032,
+66039,
+66039,
+66039,
+66055,
+66066,
+66098,
+66114,
+66140,
+66140,
+66174,
+66174,
+66174,
+66220,
+66249,
+66249,
+66249,
+66249,
+66268,
+66276,
+66295,
+66314,
+66322,
+66343,
+66343,
+66343,
+66395,
+66395,
+66413,
+66413,
+66422,
+66430,
+66430,
+66449,
+66449,
+66460,
+66486,
+66492,
+66492,
+66492,
+66492,
+66492,
+66492,
+66510,
+66510,
+66519,
+66530,
+66563,
+66563,
+66573,
+66573,
+66573,
+66612,
+66612,
+66612,
+66625,
+66625,
+66642,
+66642,
+66642,
+66658,
+66672,
+66672,
+66680,
+66715,
+66724,
+66724,
+66740,
+66745,
+66753,
+66769,
+66802,
+66802,
+66802,
+66802,
+66829,
+66843,
+66858,
+66875,
+66893,
+66893,
+66893,
+66933,
+66933,
+66945,
+66945,
+66945,
+66945,
+66956,
+66976,
+66976,
+66976,
+66985,
+67003,
+67003,
+67010,
+67031,
+67031,
+67051,
+67064,
+67083,
+67091,
+67116,
+67116,
+67141,
+67190,
+67220,
+67220,
+67220,
+67233,
+67241,
+67241,
+67275,
+67281,
+67292,
+67302,
+67302,
+67315,
+67379,
+67395,
+67405,
+67421,
+67421,
+67475,
+67483,
+67526,
+67526,
+67546,
+67546,
+67546,
+67571,
+67579,
+67637,
+67659,
+67676,
+67676,
+67676,
+67705,
+67723,
+67739,
+67739,
+67777,
+67792,
+67792,
+67811,
+67811,
+67819,
+67860,
+67876,
+67876,
+67899,
+67915,
+67955,
+67955,
+67969,
+67979,
+67991,
+67991,
+67991,
+68006,
+68020,
+68020,
+68020,
+68045,
+68057,
+68072,
+68072,
+68086,
+68097,
+68113,
+68120,
+68129,
+68136,
+68155,
+68170,
+68170,
+68195,
+68241,
+68258,
+68287,
+68313,
+68325,
+68342,
+68384,
+68416,
+68427,
+68461,
+68461,
+68476,
+68498,
+68498,
+68506,
+68513,
+68533,
+68546,
+68563,
+68563,
+68581,
+68621,
+68634,
+68657,
+68657,
+68657,
+68676,
+68707,
+68726,
+68739,
+68753,
+68753,
+68753,
+68753,
+68765,
+68798,
+68804,
+68819,
+68819,
+68819,
+68847,
+68856,
+68872,
+68872,
+68904,
+68915,
+68942,
+68953,
+68962,
+68980,
+69007,
+69013,
+69024,
+69038,
+69069,
+69082,
+69108,
+69116,
+69134,
+69157,
+69180,
+69180,
+69201,
+69217,
+69217,
+69234,
+69257,
+69257,
+69257,
+69312,
+69312,
+69330,
+69343,
+69360,
+69360,
+69383,
+69402,
+69423,
+69434,
+69455,
+69455,
+69488,
+69496,
+69541,
+69559,
+69559,
+69578,
+69587,
+69587,
+69622,
+69622,
+69630,
+69654,
+69667,
+69674,
+69685,
+69696,
+69734,
+69749,
+69759,
+69759,
+69759,
+69759,
+69790,
+69805,
+69805,
+69823,
+69823,
+69823,
+69839,
+69861,
+69871,
+69871,
+69871,
+69916,
+69916,
+69931,
+69931,
+69931,
+69931,
+69949,
+70014,
+70026,
+70026,
+70026,
+70050,
+70077,
+70113,
+70152,
+70165,
+70182,
+70191,
+70191,
+70191,
+70206,
+70206,
+70206,
+70206,
+70206,
+70230,
+70230,
+70230,
+70230,
+70244,
+70244,
+70244,
+70251,
+70251,
+70251,
+70288,
+70315,
+70357,
+70363,
+70363,
+70376,
+70376,
+70387,
+70387,
+70397,
+70397,
+70397,
+70434,
+70460,
+70476,
+70476,
+70476,
+70507,
+70507,
+70515,
+70534,
+70534,
+70554,
+70570,
+70580,
+70594,
+70623,
+70623,
+70641,
+70641,
+70641,
+70641,
+70641,
+70674,
+70704,
+70735,
+70735,
+70735,
+70748,
+70748,
+70757,
+70802,
+70852,
+70873,
+70873,
+70892,
+70923,
+70923,
+70935,
+70935,
+70941,
+70941,
+70960,
+70980,
+70980,
+71023,
+71034,
+71034,
+71034,
+71045,
+71045,
+71045,
+71045,
+71045,
+71083,
+71093,
+71115,
+71115,
+71131,
+71131,
+71131,
+71141,
+71148,
+71148,
+71166,
+71186,
+71186,
+71201,
+71209,
+71209,
+71238,
+71246,
+71246,
+71246,
+71246,
+71258,
+71258,
+71258,
+71258,
+71276,
+71276,
+71276,
+71291,
+71309,
+71309,
+71309,
+71309,
+71318,
+71318,
+71318,
+71332,
+71342,
+71342,
+71356,
+71388,
+71388,
+71397,
+71407,
+71407,
+71407,
+71425,
+71436,
+71436,
+71466,
+71466,
+71491,
+71491,
+71527,
+71540,
+71540,
+71560,
+71584,
+71600,
+71600,
+71632,
+71648,
+71678,
+71689,
+71703,
+71703,
+71727,
+71742,
+71742,
+71742,
+71759,
+71759,
+71774,
+71780,
+71780,
+71780,
+71799,
+71819,
+71819,
+71837,
+71849,
+71867,
+71867,
+71867,
+71867,
+71867,
+71867,
+71867,
+71867,
+71867,
+71890,
+71890,
+71941,
+71941,
+71972,
+72002,
+72016,
+72037,
+72053,
+72053,
+72053,
+72053,
+72106,
+72131,
+72131,
+72131,
+72152,
+72159,
+72159,
+72171,
+72176,
+72207,
+72207,
+72207,
+72207,
+72221,
+72221,
+72237,
+72264,
+72264,
+72264,
+72280,
+72289,
+72307,
+72326,
+72343,
+72343,
+72343,
+72370,
+72370,
+72370,
+72370,
+72370,
+72396,
+72402,
+72402,
+72402,
+72430,
+72430,
+72449,
+72489,
+72499,
+72499,
+72550,
+72550,
+72573,
+72588,
+72623,
+72623,
+72623,
+72641,
+72652,
+72670,
+72684,
+72684,
+72684,
+72684,
+72699,
+72699,
+72699,
+72699,
+72699,
+72718,
+72769,
+72774,
+72786,
+72799,
+72799,
+72799,
+72837,
+72867,
+72915,
+72935,
+72935,
+72935,
+72953,
+72973,
+72973,
+72973,
+72973,
+73005,
+73005,
+73018,
+73018,
+73028,
+73058,
+73068,
+73068,
+73090,
+73102,
+73114,
+73142,
+73180,
+73180,
+73223,
+73247,
+73247,
+73247,
+73247,
+73247,
+73247,
+73247,
+73256,
+73256,
+73304,
+73321,
+73328,
+73328,
+73328,
+73389,
+73405,
+73405,
+73425,
+73425,
+73425,
+73443,
+73460,
+73476,
+73476,
+73498,
+73518,
+73533,
+73563,
+73591,
+73628,
+73628,
+73648,
+73667,
+73736,
+73736,
+73736,
+73756,
+73756,
+73756,
+73803,
+73803,
+73803,
+73803,
+73831,
+73863,
+73875,
+73875,
+73875,
+73875,
+73875,
+73908,
+73931,
+73942,
+73942,
+73953,
+73982,
+74007,
+74066,
+74075,
+74075,
+74108,
+74108,
+74108,
+74114,
+74167,
+74178,
+74178,
+74178,
+74199,
+74199,
+74218,
+74218,
+74248,
+74248,
+74248,
+74248,
+74248,
+74272,
+74272,
+74290,
+74326,
+74349,
+74349,
+74349,
+74367,
+74367,
+74367,
+74385,
+74410,
+74429,
+74429,
+74475,
+74497,
+74497,
+74513,
+74527,
+74551,
+74581,
+74581,
+74581,
+74638,
+74644,
+74644,
+74665,
+74691,
+74691,
+74691,
+74691,
+74701,
+74701,
+74708,
+74721,
+74721,
+74721,
+74761,
+74801,
+74801,
+74808,
+74825,
+74833,
+74833,
+74850,
+74870,
+74870,
+74893,
+74893,
+74928,
+74928,
+74928,
+74928,
+74938,
+74938,
+74938,
+74938,
+74938,
+74938,
+74938,
+74938,
+74949,
+74949,
+74981,
+75000,
+75019,
+75029,
+75029,
+75029,
+75044,
+75054,
+75071,
+75071,
+75089,
+75103,
+75103,
+75103,
+75103,
+75103,
+75103,
+75103,
+75103,
+75103,
+75103,
+75120,
+75120,
+75120,
+75120,
+75165,
+75165,
+75165,
+75165,
+75185,
+75191,
+75208,
+75208,
+75236,
+75252,
+75269,
+75292,
+75311,
+75318,
+75318,
+75344,
+75359,
+75359,
+75359,
+75423,
+75423,
+75444,
+75444,
+75444,
+75457,
+75464,
+75476,
+75493,
+75516,
+75516,
+75516,
+75532,
+75539};
-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"
+static const char *tldData[] = {
+"vgs.no\0ah.no\0"
+"ma.us\0"
+"mizunami.gifu.jp\0"
+"saitama.jp\0kimino.wakayama.jp\0"
+"int.bo\0cambridge.museum\0"
+"andasuolo.no\0lardal.no\0"
+"transport.museum\0"
+"nishinomiya.hyogo.jp\0"
+"is-into-cars.com\0"
+"karlsoy.no\0"
+"bungoono.oita.jp\0"
+"int.ci\0"
+"chikujo.fukuoka.jp\0"
+"aisai.aichi.jp\0"
+"os.hedmark.no\0"
+"int.co\0"
+"komaki.aichi.jp\0seki.gifu.jp\0"
+"wanouchi.gifu.jp\0lib.ri.us\0"
+"higashiosaka.osaka.jp\0"
+"org\0cechire.com\0"
+"satte.saitama.jp\0"
+"berg.no\0"
+"saitama.saitama.jp\0"
+"cc.sd.us\0"
+"act.gov.au\0mansion.museum\0"
+"fe.it\0y.se\0"
+"gunma.jp\0"
+"otoyo.kochi.jp\0miyoshi.saitama.jp\0"
+"sa.gov.au\0"
+"online.museum\0"
+"abiko.chiba.jp\0"
+"!educ.ar\0"
+"agematsu.nagano.jp\0"
+"akiruno.tokyo.jp\0lund.no\0"
+"kasuga.hyogo.jp\0"
+"nakano.tokyo.jp\0homeunix.net\0"
+"ambulance.aero\0sv.it\0"
+"shiso.hyogo.jp\0"
+"fuso.aichi.jp\0delmenhorst.museum\0"
+"dali.museum\0"
+"brindisi.it\0"
+"midori.gunma.jp\0"
+"nantan.kyoto.jp\0"
+"takaishi.osaka.jp\0imizu.toyama.jp\0"
+"tonsberg.no\0"
+"countryestate.museum\0"
+"rawa-maz.pl\0"
+"yokoshibahikari.chiba.jp\0"
+"ontario.museum\0"
+"certification.aero\0"
+"franziskaner.museum\0cc.nj.us\0"
+"genkai.saga.jp\0"
+"tysfjord.no\0"
+"ra.it\0"
+"air-traffic-control.aero\0ina.ibaraki.jp\0"
+"in-the-band.net\0"
+"ainan.ehime.jp\0oita.oita.jp\0!national-library-scotland.uk\0"
+"kamiichi.toyama.jp\0"
+"ogata.akita.jp\0smola.no\0"
+"matsushima.miyagi.jp\0langev\xc3\xa5g.no\0"
+"vard\xc3\xb8.no\0"
+"limanowa.pl\0"
+"is-a-bruinsfan.org\0"
+"yufu.oita.jp\0berkeley.museum\0"
+"torino.it\0per.la\0"
+"noheji.aomori.jp\0koebenhavn.museum\0isa-geek.com\0"
+"choyo.kumamoto.jp\0"
+"s\xc3\xb8r-odal.no\0"
+"int.is\0bir.ru\0"
+"jefferson.museum\0"
+"brasil.museum\0"
+"sologne.museum\0"
+"shimosuwa.nagano.jp\0setagaya.tokyo.jp\0"
+"tokoname.aichi.jp\0lerdal.no\0"
+"!retina.ar\0boston.museum\0"
+"bologna.it\0kimobetsu.hokkaido.jp\0yuzawa.niigata.jp\0"
+"obuse.nagano.jp\0gs.svalbard.no\0"
+"furudono.fukushima.jp\0"
+"isla.pr\0ny.us\0"
+"5.bg\0"
+"lt.ua\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"
+"per.nf\0"
+"int.la\0"
+"kumakogen.ehime.jp\0nasu.tochigi.jp\0"
+"shirataka.yamagata.jp\0"
+"vet.br\0graz.museum\0"
+"int.lk\0"
+"plc.co.im\0md.us\0k12.gu.us\0"
+"wildlife.museum\0"
+"stokke.no\0"
+"stordal.no\0oskol.ru\0"
+"kosaka.akita.jp\0"
+"kitami.hokkaido.jp\0"
+"higashimatsuyama.saitama.jp\0"
+"s\xc3\xb8rreisa.no\0poznan.pl\0"
+"\xd1\x81\xd1\x80\xd0\xb1\0"
+"tokuyama.yamaguchi.jp\0"
+"tosa.kochi.jp\0est-le-patron.com\0"
+"hachijo.tokyo.jp\0"
+"ibaraki.osaka.jp\0rindal.no\0"
+"taishi.osaka.jp\0ol.no\0"
+"int.mv\0lib.az.us\0"
+"int.mw\0hjartdal.no\0"
+"imb.br\0\xc3\xb8ksnes.no\0"
+"ishikawa.jp\0osen.no\0"
+"nakamura.kochi.jp\0"
+"seiyo.ehime.jp\0mincom.tn\0"
+"chieti.it\0sakado.saitama.jp\0"
+"enebakk.no\0cc.ca.us\0from-hi.com\0"
+"kokonoe.oita.jp\0auto.pl\0"
+"venice.it\0shimada.shizuoka.jp\0"
+"surrey.museum\0"
+"audnedaln.no\0"
+"minamifurano.hokkaido.jp\0axis.museum\0webhop.info\0"
+"is-not-certified.com\0"
+"volda.no\0"
+"is-a-lawyer.com\0"
+"oga.akita.jp\0"
+"higashimatsushima.miyagi.jp\0"
+"tonaki.okinawa.jp\0"
+"somna.no\0rovno.ua\0"
+"nt.gov.au\0"
+"cc.pr.us\0"
+"cs.it\0bieszczady.pl\0"
+"per.sg\0"
+"research.museum\0endoftheinternet.org\0"
+"int.pt\0"
+"costume.museum\0"
+"eisenbahn.museum\0slask.pl\0"
+"gdynia.pl\0"
+"wa.au\0pol.dz\0fukui.jp\0higashishirakawa.gifu.jp\0botanicalgarden.museum\0"
+"automotive.museum\0"
+"sshn.se\0"
+"nogata.fukuoka.jp\0cc.nm.us\0is-an-anarchist.com\0"
+"dontexist.com\0"
+"an.it\0"
+"uenohara.yamanashi.jp\0"
+"midtre-gauldal.no\0"
+"hm.no\0komvux.se\0"
+"hidaka.wakayama.jp\0hobby-site.org\0"
+"giske.no\0"
+"sund.no\0"
+"troms\xc3\xb8.no\0"
+"zagan.pl\0"
+"chikusei.ibaraki.jp\0wlocl.pl\0"
+"in-addr.arpa\0notaires.fr\0altai.ru\0"
+"int.ru\0"
+"aquila.it\0"
+"int.rw\0"
+"ito.shizuoka.jp\0"
+"missoula.museum\0kolobrzeg.pl\0"
+"assabu.hokkaido.jp\0"
+"sld.do\0meloy.no\0"
+"ak.us\0"
+"k12.md.us\0"
+"kawanishi.yamagata.jp\0is-lost.org\0"
+"ochi.kochi.jp\0"
+"amami.kagoshima.jp\0gamo.shiga.jp\0"
+"yamazoe.nara.jp\0"
+"shirako.chiba.jp\0matsuda.kanagawa.jp\0int.tj\0"
+"ota.tokyo.jp\0"
+"kicks-ass.net\0"
+"yamato.fukushima.jp\0shinjo.okayama.jp\0baltimore.museum\0ushistory.museum\0pro\0"
+"mallorca.museum\0hoyanger.no\0hobby-site.com\0"
+"narvik.no\0olsztyn.pl\0warmia.pl\0"
+"pol.ht\0int.tt\0"
+"mizusawa.iwate.jp\0h\xc3\xb8yanger.no\0przeworsk.pl\0"
+"matsuno.ehime.jp\0"
+"folkebibl.no\0"
+"pb.ao\0taranto.it\0nomi.ishikawa.jp\0chizu.tottori.jp\0alta.no\0"
+"8.bg\0okazaki.aichi.jp\0"
+"goshiki.hyogo.jp\0lib.wi.us\0"
+"or.at\0"
+"stateofdelaware.museum\0"
+"modern.museum\0"
+"\xd1\x80\xd1\x84\0"
+"or.bi\0himi.toyama.jp\0"
+"kitaaiki.nagano.jp\0toga.toyama.jp\0"
+"kutchan.hokkaido.jp\0tamaki.mie.jp\0finnoy.no\0int.vn\0"
+"fujisawa.iwate.jp\0"
+"homebuilt.aero\0cranbrook.museum\0"
+"kv\xc3\xa6""fjord.no\0"
+"or.ci\0saigawa.fukuoka.jp\0kutno.pl\0"
+"asuke.aichi.jp\0kanonji.kagawa.jp\0"
+"higashikagawa.kagawa.jp\0"
+"inashiki.ibaraki.jp\0matta-varjjat.no\0"
+"lviv.ua\0"
+"or.cr\0mitane.akita.jp\0"
+"*.kitakyushu.jp\0fujikawa.shizuoka.jp\0"
+"egersund.no\0"
+"srv.br\0"
+"belgorod.ru\0"
+"v\xc3\xa5gs\xc3\xb8y.no\0fh.se\0"
+"tsuruta.aomori.jp\0shibuya.tokyo.jp\0k12.va.us\0"
+"kamishihoro.hokkaido.jp\0"
+"sogne.no\0"
+"turystyka.pl\0"
+"gujo.gifu.jp\0"
+"experts-comptables.fr\0"
+"yame.fukuoka.jp\0"
+"annaka.gunma.jp\0kawagoe.mie.jp\0"
+"wakayama.jp\0"
+"openair.museum\0operaunite.com\0"
+"wakuya.miyagi.jp\0"
+"bjarkoy.no\0ivano-frankivsk.ua\0dyndns.tv\0is-a-linux-user.org\0"
+"olbiatempio.it\0"
+"etne.no\0fosnes.no\0"
+"ginoza.okinawa.jp\0"
+"krager\xc3\xb8.no\0"
+"vn.ua\0"
+"jx.cn\0bill.museum\0home.dyndns.org\0"
+"lecco.it\0bihoro.hokkaido.jp\0"
+"asaka.saitama.jp\0"
+"tagajo.miyagi.jp\0"
+"maintenance.aero\0"
+"nordreisa.no\0"
+"kamogawa.chiba.jp\0nebraska.museum\0"
+"lib.nm.us\0"
+"r\xc3\xa1isa.no\0"
+"historisch.museum\0"
+"is-a-republican.com\0"
+"prd.fr\0yonaguni.okinawa.jp\0"
+"bristol.museum\0crafts.museum\0blogsite.org\0"
+"kasamatsu.gifu.jp\0"
+"fin.ec\0"
+"slg.br\0seirou.niigata.jp\0cahcesuolo.no\0from-ma.com\0"
+"ba.it\0aq.it\0exhibition.museum\0heimatunduhren.museum\0"
+"rg.it\0dyndns.ws\0"
+"homedns.org\0"
+"kakogawa.hyogo.jp\0"
+"chikushino.fukuoka.jp\0mito.ibaraki.jp\0"
+"dc.us\0"
+"terni.it\0"
+"or.id\0yoshida.shizuoka.jp\0"
+"fukaya.saitama.jp\0rost.no\0"
+"aomori.jp\0"
+"aeroport.fr\0sabae.fukui.jp\0geology.museum\0"
+"yakage.okayama.jp\0rahkkeravju.no\0"
+"kasama.ibaraki.jp\0"
+"frana.no\0"
+"hatoyama.saitama.jp\0za.org\0"
+"kitayama.wakayama.jp\0"
+"bilbao.museum\0"
+"or.it\0"
+"!nawrastelecom.om\0"
+"nanjo.okinawa.jp\0k12.me.us\0"
+"mobi.gp\0"
+"daisen.akita.jp\0bizen.okayama.jp\0hembygdsforbund.museum\0salangen.no\0"
+"yoshikawa.saitama.jp\0homelinux.com\0"
+"or.jp\0farmers.museum\0from-ri.com\0"
+"\xe1\x83\x92\xe1\x83\x94\0"
+"\xc3\xa5snes.no\0"
+"assisi.museum\0muos\xc3\xa1t.no\0kemerovo.ru\0"
+"musashino.tokyo.jp\0"
+"sld.pa\0"
+"kushimoto.wakayama.jp\0virginia.museum\0is-a-financialadvisor.com\0"
+"yuasa.wakayama.jp\0"
+"yachimata.chiba.jp\0"
+"\xc3\xa5seral.no\0klabu.no\0"
+"onna.okinawa.jp\0"
+"hikone.shiga.jp\0or.kr\0"
+"tranby.no\0lib.vt.us\0"
+"carrier.museum\0"
+"isa-geek.net\0"
+"orsta.no\0"
+"toyone.aichi.jp\0fortmissoula.museum\0zoology.museum\0"
+"historicalsociety.museum\0"
+"prd.km\0"
+"iheya.okinawa.jp\0"
+"kongsberg.no\0"
+"dreamhosters.com\0"
+"chicago.museum\0gjerdrum.no\0"
+"pe.ca\0"
+"cpa.pro\0"
+"makurazaki.kagoshima.jp\0mashiki.kumamoto.jp\0"
+"sondrio.it\0masaki.ehime.jp\0"
+"numazu.shizuoka.jp\0"
+"kawanishi.nara.jp\0"
+"futaba.fukushima.jp\0nachikatsuura.wakayama.jp\0"
+"airguard.museum\0"
+"society.museum\0"
+"ulm.museum\0"
+"or.na\0"
+"tohma.hokkaido.jp\0"
+"masoy.no\0"
+"or.mu\0"
+"prd.mg\0"
+"!omanpost.om\0"
+"izumizaki.fukushima.jp\0nishikatsura.yamanashi.jp\0"
+"miyazu.kyoto.jp\0"
+"unj\xc3\xa1rga.no\0"
+"noshiro.akita.jp\0"
+"ryokami.saitama.jp\0"
+"carboniaiglesias.it\0homeunix.org\0"
+"australia.museum\0"
+"sowa.ibaraki.jp\0"
+"urausu.hokkaido.jp\0"
+"kaisei.kanagawa.jp\0"
+"vt.it\0"
+"virtual.museum\0"
+"hs.kr\0brand.se\0"
+"daejeon.kr\0seaport.museum\0"
+"takaoka.toyama.jp\0"
+"kitakata.fukushima.jp\0fribourg.museum\0"
+"montreal.museum\0"
+"higashiyama.kyoto.jp\0\xd8\xa7\xd9\x84\xd8\xb3\xd8\xb9\xd9\x88\xd8\xaf\xd9\x8a\xd9\x87\0"
+"chitose.hokkaido.jp\0"
+"engine.aero\0"
+"rome.it\0medical.museum\0"
+"tjome.no\0"
+"asti.it\0reggio-calabria.it\0"
+"or.pw\0"
+"to.it\0murayama.yamagata.jp\0"
+"shiraoi.hokkaido.jp\0"
+"joshkar-ola.ru\0"
+"fetsund.no\0wa.us\0"
+"nakaniikawa.toyama.jp\0wroclaw.pl\0lib.nh.us\0"
+"ragusa.it\0nakanojo.gunma.jp\0r\xc3\xa5""de.no\0barrell-of-knowledge.info\0"
+"yuza.yamagata.jp\0moareke.no\0cv.ua\0"
+"anjo.aichi.jp\0"
+"!omanmobile.om\0"
+"fukuroi.shizuoka.jp\0space-to-rent.com\0"
+"torahime.shiga.jp\0"
+"gojome.akita.jp\0"
+"at.it\0yawara.ibaraki.jp\0"
+"\xd8\xa7\xd9\x84\xd8\xb3\xd8\xb9\xd9\x88\xd8\xaf\xd9\x8a\xd8\xa9\0"
+"okutama.tokyo.jp\0naturbruksgymn.se\0est-mon-blogueur.com\0"
+"gj\xc3\xb8vik.no\0"
+"marylhurst.museum\0"
+"ferrara.it\0"
+"shimonita.gunma.jp\0"
+"chernivtsi.ua\0"
+"yusuhara.kochi.jp\0"
+"indianmarket.museum\0from-nm.com\0"
+"chambagri.fr\0"
+"yono.saitama.jp\0romsa.no\0"
+"lucerne.museum\0"
+"pe.it\0"
+"from-mn.com\0"
+"kurgan.ru\0or.th\0"
+"udmurtia.ru\0"
+"k12.nj.us\0"
+"c.bg\0atami.shizuoka.jp\0"
+"herad.no\0"
+"midatlantic.museum\0"
+"\xd1\x83\xd0\xba\xd1\x80\0"
+"inazawa.aichi.jp\0matsumoto.nagano.jp\0francaise.museum\0horten.no\0"
+"isehara.kanagawa.jp\0"
+"fuji.shizuoka.jp\0or.ug\0"
+"oppdal.no\0"
+"or.tz\0\xd9\x82\xd8\xb7\xd8\xb1\0"
+"!nacion.ar\0shiroi.chiba.jp\0muncie.museum\0from-ct.com\0"
+"television.museum\0doomdns.com\0"
+"bod\xc3\xb8.no\0"
+"seihi.nagasaki.jp\0"
+"memorial.museum\0"
+"slupsk.pl\0"
+"arkhangelsk.ru\0or.us\0"
+"pe.kr\0is-a-bulls-fan.com\0"
+"matsubara.osaka.jp\0"
+"ishigaki.okinawa.jp\0"
+"nysa.pl\0from-nv.com\0"
+"ishikawa.fukushima.jp\0"
+"drobak.no\0"
+"stpetersburg.museum\0"
+"andria-trani-barletta.it\0"
+"aibetsu.hokkaido.jp\0plants.museum\0silk.museum\0holtalen.no\0"
+"lakas.hu\0"
+"gs.of.no\0rauma.no\0"
+"modena.it\0"
+"kh.ua\0"
+"togitsu.nagasaki.jp\0"
+"newhampshire.museum\0"
+"oirase.aomori.jp\0grajewo.pl\0fin.tn\0"
+"depot.museum\0"
+"nayoro.hokkaido.jp\0"
+"forgot.her.name\0"
+"sande.more-og-romsdal.no\0"
+"reklam.hu\0"
+"\xc3\xa5krehamn.no\0"
+"ancona.it\0h\xc3\xa5.no\0"
+"lib.as.us\0"
+"marketplace.aero\0schweiz.museum\0"
+"eu.int\0"
+"urasoe.okinawa.jp\0"
+"kaluga.ru\0"
+"godo.gifu.jp\0"
+"kitagawa.kochi.jp\0kr.com\0"
+"pvt.ge\0"
+"usuki.oita.jp\0"
+"mino.gifu.jp\0"
+"rovigo.it\0"
+"yamada.fukuoka.jp\0amakusa.kumamoto.jp\0lajolla.museum\0uzhgorod.ua\0"
+"shimane.jp\0workshop.museum\0"
+"aero\0"
+"shikatsu.aichi.jp\0warszawa.pl\0"
+"wegrow.pl\0"
+"koga.fukuoka.jp\0"
+"funabashi.chiba.jp\0moriya.ibaraki.jp\0yamaga.kumamoto.jp\0"
+"act.edu.au\0mbone.pl\0"
+"ikaruga.nara.jp\0"
+"shinichi.hiroshima.jp\0gjesdal.no\0"
+"hanawa.fukushima.jp\0"
+"tr.it\0wakasa.fukui.jp\0"
+"\xe0\xa6\xac\xe0\xa6\xbe\xe0\xa6\x82\xe0\xa6\xb2\xe0\xa6\xbe\0"
+"olbia-tempio.it\0"
+"aizumisato.fukushima.jp\0convent.museum\0bd.se\0"
+"fukuchi.fukuoka.jp\0takino.hyogo.jp\0vt.us\0"
+"yazu.tottori.jp\0"
+"kagoshima.jp\0loyalist.museum\0"
+"kitahiroshima.hokkaido.jp\0fed.us\0"
+"sandnessj\xc3\xb8""en.no\0varoy.no\0"
+"hurdal.no\0"
+"salem.museum\0jar.ru\0"
+"yaizu.shizuoka.jp\0"
+"cc.nv.us\0"
+"airtraffic.aero\0"
+"bg.it\0sukumo.kochi.jp\0"
+"rm.it\0nishiokoppe.hokkaido.jp\0"
+"house.museum\0"
+"aizumi.tokushima.jp\0"
+"hitachinaka.ibaraki.jp\0kicks-ass.org\0"
+"hokuryu.hokkaido.jp\0k12.or.us\0"
+"geisei.kochi.jp\0tatarstan.ru\0"
+"toyotsu.fukuoka.jp\0meguro.tokyo.jp\0"
+"myoko.niigata.jp\0"
+"bronnoy.no\0"
+"nishikawa.yamagata.jp\0"
+"minamata.kumamoto.jp\0"
+"gd.cn\0"
+"trana.no\0"
+"takasaki.gunma.jp\0cc.ma.us\0"
+"trani-barletta-andria.it\0"
+"\xe0\xaa\xad\xe0\xaa\xbe\xe0\xaa\xb0\xe0\xaa\xa4\0c.la\0"
+"hanno.saitama.jp\0"
+"ami.ibaraki.jp\0kurotaki.nara.jp\0"
+"\xd8\xa7\xdb\x8c\xd8\xb1\xd8\xa7\xd9\x86.ir\0boldlygoingnowhere.org\0"
+"f.bg\0unjarga.no\0lib.ia.us\0"
+"\xc3\xb8rskog.no\0tingvoll.no\0"
+"webhop.org\0"
+"grue.no\0dyndns-blog.com\0"
+"dyndns-web.com\0"
+"zakopane.pl\0"
+"britishcolumbia.museum\0turek.pl\0"
+"omi.nagano.jp\0is-an-actor.com\0"
+"ms.it\0gov.nc.tr\0"
+"kijo.miyazaki.jp\0"
+"starostwo.gov.pl\0mobi.tt\0"
+"gs.ah.no\0"
+"minobu.yamanashi.jp\0tr.no\0"
+"mobi.tz\0"
+"rakkestad.no\0"
+"org.ac\0from-az.net\0"
+"org.ae\0"
+"org.af\0bj.cn\0"
+"org.ag\0"
+"org.ai\0"
+"nanae.hokkaido.jp\0oshino.yamanashi.jp\0"
+"org.al\0takashima.shiga.jp\0"
+"org.an\0naha.okinawa.jp\0matsuzaki.shizuoka.jp\0bahn.museum\0"
+"chungbuk.kr\0biev\xc3\xa1t.no\0homelinux.net\0"
+"org.ba\0umi.fukuoka.jp\0"
+"org.bb\0"
+"mihama.wakayama.jp\0cyber.museum\0"
+"org.au\0yorii.saitama.jp\0hagi.yamaguchi.jp\0"
+"ms.kr\0"
+"org.bh\0fujikawa.yamanashi.jp\0floro.no\0oryol.ru\0"
+"org.bi\0sakahogi.gifu.jp\0"
+"org.az\0niimi.okayama.jp\0"
+"aguni.okinawa.jp\0sells-for-less.com\0"
+"org.bm\0tsukuba.ibaraki.jp\0"
+"org.bo\0"
+"org.br\0r\xc3\xa6lingen.no\0"
+"org.bs\0kuriyama.hokkaido.jp\0"
+"org.bt\0"
+"org.bw\0"
+"nf.ca\0"
+"org.ci\0"
+"org.bz\0"
+"hirogawa.wakayama.jp\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"
-"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"
+"org.cn\0k12.vt.us\0"
+"org.co\0"
+"if.ua\0"
+"org.cu\0"
+"futsu.nagasaki.jp\0hu.net\0"
+"dyndns-pics.com\0"
+"karumai.iwate.jp\0"
+"org.dm\0"
+"org.do\0"
+"risor.no\0"
+"kujukuri.chiba.jp\0abashiri.hokkaido.jp\0novosibirsk.ru\0"
+"org.ec\0"
+"ballangen.no\0k12.co.us\0"
+"org.ee\0"
+"navuotna.no\0pisz.pl\0"
+"org.eg\0"
+"mobi.na\0"
+"tonami.toyama.jp\0"
+"org.dz\0sci.eg\0\xc3\xa5rdal.no\0"
+"environmentalconservation.museum\0edunet.tn\0"
+"murakami.niigata.jp\0usarts.museum\0"
+"eidfjord.no\0e-burg.ru\0from-mt.com\0from-nd.com\0"
+"karasuyama.tochigi.jp\0utah.museum\0"
+"maritimo.museum\0"
+"union.aero\0org.es\0"
+"esan.hokkaido.jp\0"
+"namegawa.saitama.jp\0c.se\0"
+"anamizu.ishikawa.jp\0kitakami.iwate.jp\0"
+"ga.us\0"
+"qld.au\0gjemnes.no\0"
+"ichinoseki.iwate.jp\0makinohara.shizuoka.jp\0"
+"bahccavuotna.no\0"
+"is-an-actress.com\0"
+"karm\xc3\xb8y.no\0"
+"org.ge\0cesena-forli.it\0"
+"vantaa.museum\0gaular.no\0"
+"org.gg\0"
+"org.gh\0cc.ny.us\0"
+"org.gi\0"
+"from-dc.com\0"
+"fitjar.no\0vyatka.ru\0"
+"org.gn\0museum\0"
+"org.gp\0"
+"org.gr\0beppu.oita.jp\0"
+"groundhandling.aero\0org.gt\0okegawa.saitama.jp\0lib.ky.us\0"
+"org.hk\0"
+"org.hn\0"
+"presidio.museum\0cc.md.us\0"
+"bolzano.it\0"
+"sosa.chiba.jp\0koenig.ru\0iki.fi\0"
+"org.ht\0ebetsu.hokkaido.jp\0"
+"fuel.aero\0org.hu\0"
+"hole.no\0"
+"blog.br\0tosu.saga.jp\0"
+"k12.nh.us\0"
+"i.bg\0"
+"rs.ba\0"
+"org.im\0"
+"org.in\0"
+"org.iq\0"
+"lel.br\0org.ir\0kasahara.gifu.jp\0"
+"org.is\0chofu.tokyo.jp\0notodden.no\0"
+"org.je\0spjelkavik.no\0"
+"vefsn.no\0"
+"fukuoka.jp\0yamanobe.yamagata.jp\0yamanakako.yamanashi.jp\0"
+"yaese.okinawa.jp\0"
+"baikal.ru\0"
+"from-me.org\0"
+"kanazawa.ishikawa.jp\0nowaruda.pl\0"
+"swidnica.pl\0"
+"org.jo\0!city.yokohama.jp\0olkusz.pl\0"
+"higashiura.aichi.jp\0mosjoen.no\0"
+"vestv\xc3\xa5g\xc3\xb8y.no\0"
+"takahama.aichi.jp\0dyn-o-saur.com\0"
+"shimabara.nagasaki.jp\0"
+"ebiz.tw\0"
+"caserta.it\0org.kg\0"
+"sc.cn\0org.ki\0"
+"aizuwakamatsu.fukushima.jp\0is-a-teacher.com\0"
+"sado.niigata.jp\0org.km\0resistance.museum\0"
+"togo.aichi.jp\0org.kn\0skien.no\0"
+"org.kp\0"
+"org.la\0kommune.no\0"
+"vic.edu.au\0miyoshi.aichi.jp\0org.lb\0"
+"org.lc\0"
+"cagliari.it\0"
+"uscountryestate.museum\0h\xc3\xb8nefoss.no\0"
+"gs.ol.no\0"
+"riik.ee\0"
+"g12.br\0ms.us\0nc.us\0"
+"org.ky\0agro.pl\0"
+"org.kz\0landes.museum\0doesntexist.com\0"
+"org.lk\0"
+"holt\xc3\xa5len.no\0"
+"nedre-eiker.no\0"
+"org.ma\0naroy.no\0"
+"org.lr\0"
+"org.ls\0"
+"tagawa.fukuoka.jp\0"
+"org.me\0"
+"nonoichi.ishikawa.jp\0org.lv\0"
+"org.mg\0horology.museum\0"
+"utazas.hu\0ako.hyogo.jp\0"
+"org.ly\0"
+"org.mk\0sandnes.no\0"
+"ayabe.kyoto.jp\0org.ml\0"
+"office-on-the.net\0"
+"minato.tokyo.jp\0org.mn\0"
+"org.mo\0"
+"koryo.nara.jp\0"
+"org.na\0balsfjord.no\0"
+"org.mu\0"
+"hyuga.miyazaki.jp\0org.mv\0"
+"perso.ht\0org.mw\0org.ng\0"
+"org.mx\0"
+"org.my\0"
+"powiat.pl\0"
+"kinokawa.wakayama.jp\0"
+"shichinohe.aomori.jp\0"
+"ru.com\0se.com\0"
+"org.nr\0"
+"environment.museum\0planetarium.museum\0"
+"niigata.niigata.jp\0"
+"name.hr\0"
+"asago.hyogo.jp\0is-very-nice.org\0"
+"hirata.fukushima.jp\0"
+"sera.hiroshima.jp\0shizuoka.shizuoka.jp\0"
+"nrw.museum\0"
+"palace.museum\0"
+"org.pa\0"
+"cc.ak.us\0"
+"wiki.br\0"
+"shimotsuke.tochigi.jp\0org.pe\0press.se\0"
+"org.pf\0"
+"nishiizu.shizuoka.jp\0f.se\0"
+"org.ph\0"
+"is-a-llama.com\0"
+"kamikawa.saitama.jp\0elblag.pl\0"
+"kochi.jp\0gs.hm.no\0org.pk\0"
+"org.pl\0"
+"paleo.museum\0"
+"org.pn\0"
+"torsken.no\0"
+"iwafune.tochigi.jp\0org.qa\0"
+"org.pr\0"
+"org.ps\0"
+"bato.tochigi.jp\0org.pt\0"
+"isumi.chiba.jp\0and\xc3\xb8y.no\0"
+"tatsuno.nagano.jp\0org.py\0"
+"pub.sa\0"
+"portal.museum\0is-into-cartoons.com\0"
+"sasayama.hyogo.jp\0"
+"ibigawa.gifu.jp\0"
+"uruma.okinawa.jp\0"
+"orskog.no\0"
+"cincinnati.museum\0"
+"farmstead.museum\0"
+"ftpaccess.cc\0"
+"castres.museum\0org.ro\0"
+"org.sa\0"
+"sassari.it\0saka.hiroshima.jp\0org.sb\0"
+"higashihiroshima.hiroshima.jp\0org.rs\0org.sc\0"
+"org.sd\0"
+"tokai.aichi.jp\0org.ru\0org.se\0"
+"games.hu\0pn.it\0v\xc3\xa6r\xc3\xb8y.no\0"
+"amsterdam.museum\0org.sg\0"
+"campobasso.it\0org.sh\0"
+"forli-cesena.it\0corvette.museum\0ath.cx\0"
+"yokawa.hyogo.jp\0is-a-socialist.com\0"
+"tjeldsund.no\0az.us\0"
+"student.aero\0name.eg\0org.sl\0"
+"l.bg\0sc.kr\0"
+"org.sn\0"
+"frankfurt.museum\0org.so\0"
+"barcelona.museum\0from-wy.com\0"
+"is-an-artist.com\0"
+"dvrdns.org\0"
+"ikata.ehime.jp\0"
+"dr.na\0steinkjer.no\0org.st\0"
+"yao.osaka.jp\0british.museum\0"
+"grosseto.it\0gemological.museum\0lipetsk.ru\0"
+"civilization.museum\0iron.museum\0org.sy\0"
+"org.sz\0org.tj\0"
+"tel\0"
+"org.tm\0"
+"honbetsu.hokkaido.jp\0minamioguni.kumamoto.jp\0org.tn\0"
+"name.az\0ohira.miyagi.jp\0s\xc3\xb8ndre-land.no\0org.to\0"
+"intl.tn\0"
+"schlesisches.museum\0org.ua\0"
+"cesenaforli.it\0"
+"org.tt\0"
+"org.tw\0org.ug\0"
+"takehara.hiroshima.jp\0"
+"bible.museum\0"
+"narashino.chiba.jp\0"
+"tsubame.niigata.jp\0hinohara.tokyo.jp\0"
+"minamiawaji.hyogo.jp\0"
+"is-into-anime.com\0"
+"press.ma\0"
+"nishihara.okinawa.jp\0"
+"kita.osaka.jp\0kazo.saitama.jp\0org.vc\0"
+"tagami.niigata.jp\0org.ve\0"
+"lebork.pl\0"
+"chuo.osaka.jp\0"
+"kashiwa.chiba.jp\0turen.tn\0org.uy\0org.vi\0"
+"flakstad.no\0org.uz\0isa-hockeynut.com\0"
+"kyuragi.saga.jp\0"
+"ichikai.tochigi.jp\0"
+"aoste.it\0"
+"org.vn\0"
+"mishima.fukushima.jp\0"
+"funagata.yamagata.jp\0"
+"from-ms.com\0from-nc.com\0"
+"psc.br\0"
+"gorlice.pl\0"
+"nl.ca\0chippubetsu.hokkaido.jp\0tone.ibaraki.jp\0i.ph\0"
+"etajima.hiroshima.jp\0"
+"uji.kyoto.jp\0sakai.osaka.jp\0la.us\0"
+"aukra.no\0stranda.no\0stryn.no\0org.ws\0"
+"tromsa.no\0"
+"ind.br\0yoichi.hokkaido.jp\0"
+"sayama.osaka.jp\0usenet.pl\0"
+"amusement.aero\0maniwa.okayama.jp\0"
+"katowice.pl\0is-a-nascarfan.com\0"
+"okawa.kochi.jp\0"
+"tomisato.chiba.jp\0cadaques.museum\0cc.dc.us\0"
+"space.museum\0"
+"afjord.no\0"
+"oharu.aichi.jp\0"
+"koriyama.fukushima.jp\0"
+"il.us\0"
+"n\xc3\xa1vuotna.no\0"
+"satx.museum\0"
+"misato.akita.jp\0"
+"katsuragi.wakayama.jp\0history.museum\0"
+"pharmacien.fr\0rieti.it\0"
+"assassination.museum\0"
+"j\xc3\xb8rpeland.no\0r\xc3\xb8yken.no\0"
+"i.se\0"
+"miyoshi.hiroshima.jp\0"
+"computer.museum\0"
+"tsubata.ishikawa.jp\0"
+"kawakita.ishikawa.jp\0for-the.biz\0"
+"fortworth.museum\0"
+"akita.akita.jp\0storfjord.no\0"
+"b\xc3\xa1hccavuotna.no\0"
+"andebu.no\0"
+"taketomi.okinawa.jp\0"
+"isshiki.aichi.jp\0"
+"taiji.wakayama.jp\0"
+"haebaru.okinawa.jp\0"
+"dell-ogliastra.it\0historichouses.museum\0trogstad.no\0"
+"tx.us\0k12.pa.us\0"
+"lib.ks.us\0"
+"kherson.ua\0"
+"uonuma.niigata.jp\0"
+"bifuka.hokkaido.jp\0kouhoku.saga.jp\0luster.no\0"
+"gotsu.shimane.jp\0r\xc3\xb8""d\xc3\xb8y.no\0"
+"skiptvet.no\0"
+"press.aero\0"
+"sc.ug\0"
+"sc.tz\0"
+"hekinan.aichi.jp\0kariya.aichi.jp\0kounosu.saitama.jp\0quebec.museum\0"
+"ind.gt\0kuromatsunai.hokkaido.jp\0"
+"money.museum\0"
+"historical.museum\0sc.us\0k12.mn.us\0"
+"o.bg\0"
+"chesapeakebay.museum\0ringerike.no\0"
+"fst.br\0shitara.aichi.jp\0"
+"urn.arpa\0"
+"homelinux.org\0"
+"ina.nagano.jp\0"
+"its.me\0"
+"kawakami.nagano.jp\0miyada.nagano.jp\0"
+"ishikari.hokkaido.jp\0"
+"national.museum\0"
+"imabari.ehime.jp\0"
+"akaiwa.okayama.jp\0rhcloud.com\0"
+"kamaishi.iwate.jp\0"
+"joyo.kyoto.jp\0"
+"ind.in\0school.na\0"
+"kiso.nagano.jp\0sevastopol.ua\0"
+"shimoichi.nara.jp\0loten.no\0"
+"selfip.net\0"
+"a\xc3\xa9roport.ci\0ascoli-piceno.it\0"
+"nuremberg.museum\0"
+"otaki.saitama.jp\0chuvashia.ru\0defense.tn\0"
+"mibu.tochigi.jp\0mitaka.tokyo.jp\0"
+"odo.br\0"
+"koori.fukushima.jp\0"
+"omuta.fukuoka.jp\0med.pro\0"
+"tomioka.gunma.jp\0kitakata.miyazaki.jp\0arteducation.museum\0"
+"yamatotakada.nara.jp\0"
+"brunel.museum\0"
+"vik.no\0"
+"sf.no\0"
+"is-a-designer.com\0"
+"perso.sn\0"
+"lg.jp\0"
+"hayashima.okayama.jp\0name.vn\0"
+"gangwon.kr\0"
+"atlanta.museum\0"
+"coop.ht\0"
+"veterinaire.km\0"
+"gda.pl\0cc.wa.us\0"
+"qsl.br\0mitsue.nara.jp\0"
+"oumu.hokkaido.jp\0"
+"zarow.pl\0"
+"kisarazu.chiba.jp\0"
+"perso.tn\0"
+"ono.fukushima.jp\0"
+"tas.au\0nordre-land.no\0"
+"kanagawa.jp\0"
+"pasadena.museum\0"
+"uto.kumamoto.jp\0"
+"sport.hu\0"
+"yamatokoriyama.nara.jp\0stj\xc3\xb8rdal.no\0name.tj\0"
+"nishigo.fukushima.jp\0"
+"nikko.tochigi.jp\0"
+"tsushima.nagasaki.jp\0"
+"palmsprings.museum\0"
+"coop.br\0yaroslavl.ru\0"
+"meldal.no\0"
+"takasago.hyogo.jp\0"
+"name.tt\0"
+"nl.no\0"
+"webhop.net\0"
+"nic.im\0sayama.saitama.jp\0"
+"nic.in\0"
+"tomakomai.hokkaido.jp\0"
+"agano.niigata.jp\0"
+"\xd9\x85\xd8\xb5\xd8\xb1\0go.dyndns.org\0"
+"savona.it\0"
+"kodaira.tokyo.jp\0"
+"qld.gov.au\0"
+"kashiwara.osaka.jp\0l.se\0"
+"veterinaire.fr\0"
+"university.museum\0"
+"haugesund.no\0"
+"hokuto.yamanashi.jp\0"
+"lib.ok.us\0"
+"pesarourbino.it\0n\xc3\xb8tter\xc3\xb8y.no\0"
+"2000.hu\0froya.no\0"
+"genova.it\0saskatchewan.museum\0"
+"isleofman.museum\0"
+"video.hu\0smolensk.ru\0"
+"taira.toyama.jp\0"
+"masfjorden.no\0"
+"jessheim.no\0"
+"science.museum\0"
+"cc.or.us\0from-pa.com\0"
+"muroran.hokkaido.jp\0"
+"bs.it\0ube.yamaguchi.jp\0"
+"si.it\0"
+"catering.aero\0esashi.hokkaido.jp\0newmexico.museum\0tana.no\0"
+"opole.pl\0"
+"iruma.saitama.jp\0"
+"hiroo.hokkaido.jp\0ogawa.ibaraki.jp\0rv.ua\0"
+"nakatsugawa.gifu.jp\0\xc3\xa1k\xc5\x8boluokta.no\0"
+"naie.hokkaido.jp\0kvinnherad.no\0"
+"pilot.aero\0ws.na\0"
+"yahaba.iwate.jp\0"
+"birthplace.museum\0"
+"name.qa\0"
+"tahara.aichi.jp\0hashikami.aomori.jp\0name.pr\0"
+"filatelia.museum\0"
+"pt.it\0"
+"chattanooga.museum\0"
+"*.yokohama.jp\0"
+"k12.mo.us\0"
+"r.bg\0yugawara.kanagawa.jp\0"
+"geometre-expert.fr\0koka.shiga.jp\0fundacio.museum\0hamar.no\0"
+"yamanouchi.nagano.jp\0\xc3\xa5lesund.no\0"
+"name.na\0"
+"village.museum\0"
+"shinkamigoto.nagasaki.jp\0name.mv\0"
+"orkanger.no\0"
+"mikasa.hokkaido.jp\0name.my\0balestrand.no\0kr\xc3\xa5""anghke.no\0"
+"no.it\0pesaro-urbino.it\0"
+"kamikawa.hyogo.jp\0"
+"\xd8\xa8\xda\xbe\xd8\xa7\xd8\xb1\xd8\xaa\0"
+"botany.museum\0"
+"cc.na\0"
+"ntr.br\0sango.nara.jp\0masuda.shimane.jp\0"
+"ind.tn\0"
+"trondheim.no\0"
+"fermo.it\0kagamino.okayama.jp\0odda.no\0"
+"askvoll.no\0"
+"tottori.tottori.jp\0bronnoysund.no\0"
+"ena.gifu.jp\0"
+"\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\0"
+"evenes.no\0"
+"shiriuchi.hokkaido.jp\0hino.tokyo.jp\0lib.vi.us\0"
+"iide.yamagata.jp\0"
+"sande.m\xc3\xb8re-og-romsdal.no\0"
+"shibata.niigata.jp\0botanicgarden.museum\0lg.ua\0"
+"\xc3\xa5s.no\0"
+"namegata.ibaraki.jp\0"
+"architecture.museum\0fineart.museum\0ostrowwlkp.pl\0"
+"sorreisa.no\0"
+"psi.br\0cc.vt.us\0"
+"barrel-of-knowledge.info\0"
+"kunitomi.miyazaki.jp\0name.mk\0"
+"stor-elvdal.no\0uy.com\0"
+"bonn.museum\0budejju.no\0rnu.tn\0"
+"chiyoda.gunma.jp\0"
+"yoro.gifu.jp\0"
+"yasu.shiga.jp\0"
+"amagasaki.hyogo.jp\0"
+"m\xc3\xa1tta-v\xc3\xa1rjjat.no\0"
+"jur.pro\0"
+"mukawa.hokkaido.jp\0narviika.no\0"
+"name.jo\0"
+"marburg.museum\0tysv\xc3\xa6r.no\0"
+"lorenskog.no\0"
+"aland.fi\0yonezawa.yamagata.jp\0"
+"gyeongnam.kr\0"
+"maebashi.gunma.jp\0"
+"tateshina.nagano.jp\0"
+"yamato.kanagawa.jp\0dyndns.info\0"
+"mosvik.no\0"
+"crimea.ua\0"
+"laakesvuemie.no\0"
+"her\xc3\xb8y.m\xc3\xb8re-og-romsdal.no\0"
+"embetsu.hokkaido.jp\0chiyoda.tokyo.jp\0kudamatsu.yamaguchi.jp\0gop.pk\0nic.tj\0"
+"yalta.ua\0"
+"oregon.museum\0"
+"naples.it\0ginan.gifu.jp\0o.se\0"
+"va.it\0tamayu.shimane.jp\0"
+"ninomiya.kanagawa.jp\0"
+"orenburg.ru\0"
+"academy.museum\0"
+"miyakonojo.miyazaki.jp\0appspot.com\0"
+"moma.museum\0"
+"lib.nv.us\0readmyblog.org\0"
+"wake.okayama.jp\0"
+"kusu.oita.jp\0ing.pa\0"
+"blogdns.org\0"
+"is-a-doctor.com\0"
+"london.museum\0"
+"group.aero\0fukumitsu.toyama.jp\0"
+"osaki.miyagi.jp\0"
+"is-a-techie.com\0"
+"!nel.uk\0"
+"otake.hiroshima.jp\0shinonsen.hyogo.jp\0"
+"oshima.yamaguchi.jp\0mari-el.ru\0"
+"obu.aichi.jp\0"
+"bykle.no\0"
+"yasuoka.nagano.jp\0"
+"gs.cn\0"
+"\xd8\xa7\xd9\x84\xd8\xa7\xd8\xb1\xd8\xaf\xd9\x86\0"
+"chuo.fukuoka.jp\0"
+"aero.tt\0"
+"tokai.ibaraki.jp\0"
+"nsw.edu.au\0"
+"suzu.ishikawa.jp\0kitagawa.miyazaki.jp\0"
+"kawaminami.miyazaki.jp\0aisho.shiga.jp\0gs.tr.no\0"
+"bungotakada.oita.jp\0"
+"center.museum\0maritime.museum\0timekeeping.museum\0"
+"u.bg\0ecn.br\0"
+"yamal.ru\0"
+"aero.mv\0"
+"botanical.museum\0at-band-camp.net\0"
+"isa.us\0"
+"kasumigaura.ibaraki.jp\0"
+"ogawa.nagano.jp\0oppegard.no\0"
+"avellino.it\0"
+"samukawa.kanagawa.jp\0nat.tn\0"
+"b\xc3\xb8mlo.no\0"
+"gov.ac\0asso.fr\0"
+"gov.ae\0konan.aichi.jp\0"
+"gov.af\0"
+"research.aero\0omitama.ibaraki.jp\0kita.tokyo.jp\0va.no\0"
+"okaya.nagano.jp\0"
+"zhitomir.ua\0"
+"communication.museum\0"
+"gov.al\0"
+"kanra.gunma.jp\0kamisu.ibaraki.jp\0googlecode.com\0"
+"sandefjord.no\0astrakhan.ru\0kamchatka.ru\0"
+"gov.ba\0asso.gp\0"
+"gov.bb\0"
+"gov.as\0"
+"okinawa.okinawa.jp\0"
+"gov.au\0"
+"gov.bf\0"
+"gov.bh\0"
+"gov.az\0bv.nl\0"
+"pisa.it\0showa.yamanashi.jp\0"
+"kawajima.saitama.jp\0uw.gov.pl\0"
+"gov.bm\0"
+"kunimi.fukushima.jp\0"
+"gov.bo\0vologda.ru\0servebbs.net\0"
+"lib.ut.us\0"
+"gov.br\0naval.museum\0"
+"gov.bs\0"
+"gov.bt\0gov.cd\0minakami.gunma.jp\0"
+"asso.ht\0ovre-eiker.no\0coop.tt\0"
+"nt.edu.au\0mat.br\0"
+"gov.by\0bale.museum\0"
+"gov.bz\0cc.ga.us\0"
+"aga.niigata.jp\0"
+"gov.cl\0fredrikstad.no\0"
+"gov.cm\0"
+"gov.cn\0bushey.museum\0"
+"gov.co\0"
+"nu.ca\0"
+"kamiamakusa.kumamoto.jp\0"
+"aa.no\0"
+"gov.cu\0"
+"omachi.saga.jp\0k12.wy.us\0lib.ca.us\0"
+"coop.mv\0"
+"gov.cx\0coop.mw\0"
+"asso.bj\0venezia.it\0windmill.museum\0"
+"ac\0likes-pie.com\0"
+"ad\0gov.dm\0kepno.pl\0"
+"ae\0"
+"af\0gov.do\0"
+"aerodrome.aero\0ag\0"
+"ai\0"
+"gov.ec\0"
+"milano.it\0"
+"al\0gov.ee\0oguni.kumamoto.jp\0"
+"am\0"
+"an\0gov.eg\0"
+"ao\0"
+"kumiyama.kyoto.jp\0"
+"aq\0ba\0asso.ci\0gov.dz\0hidaka.hokkaido.jp\0"
+"bb\0hongo.hiroshima.jp\0shishikui.tokushima.jp\0"
+"as\0blogdns.com\0"
+"at\0"
+"be\0idv.hk\0"
+"agents.aero\0bf\0"
+"aw\0bg\0notteroy.no\0"
+"ax\0bh\0"
+"bi\0"
+"az\0bj\0"
+"higashiizu.shizuoka.jp\0"
+"bm\0norilsk.ru\0"
+"bo\0"
+"gos.pk\0"
+"ca\0yawatahama.ehime.jp\0"
+"br\0"
+"bs\0cc\0chiropractic.museum\0"
+"bt\0cd\0\xe7\xae\x87\xe4\xba\xba.hk\0en.it\0clock.museum\0r.se\0"
+"cf\0"
+"bw\0cg\0kobayashi.miyazaki.jp\0aurskog-h\xc3\xb8land.no\0valer.hedmark.no\0"
+"ch\0"
+"by\0ci\0"
+"gv.ao\0bz\0"
+"osakasayama.osaka.jp\0wv.us\0"
+"cl\0gov.ge\0tozsde.hu\0nakagyo.kyoto.jp\0homeftp.org\0"
+"cm\0"
+"cn\0gov.gg\0bus.museum\0"
+"gv.at\0co\0gov.gh\0"
+"consultant.aero\0gov.gi\0kahoku.ishikawa.jp\0"
+"shobara.hiroshima.jp\0coop.py\0"
+"cr\0asso.dz\0"
+"cu\0de\0gov.gn\0getmyip.com\0"
+"cv\0"
+"kasai.hyogo.jp\0amur.ru\0"
+"cx\0"
+"gov.gr\0"
+"cz\0dj\0"
+"dk\0ci.it\0"
+"so.it\0"
+"express.aero\0dm\0"
+"do\0tomigusuku.okinawa.jp\0"
+"oseto.nagasaki.jp\0"
+"gov.hk\0va.us\0"
+"ec\0"
+"izumozaki.niigata.jp\0"
+"ee\0"
+"principe.st\0"
+"eg\0"
+"is-a-bookkeeper.com\0"
+"dz\0"
+"gov.ie\0"
+"showa.fukushima.jp\0"
+"noboribetsu.hokkaido.jp\0tourism.tn\0cc.ms.us\0cc.nc.us\0"
+"es\0pz.it\0"
+"gov.im\0"
+"eu\0gov.in\0coop.km\0!british-library.uk\0\xd8\xa7\xdb\x8c\xd8\xb1\xd8\xa7\xd9\x86\0"
+"artcenter.museum\0"
+"suwa.nagano.jp\0"
+"gov.iq\0nationalfirearms.museum\0lubin.pl\0"
+"fi\0gov.ir\0aver\xc3\xb8y.no\0"
+"x.bg\0gov.is\0"
+"gov.it\0"
+"radio.br\0gov.je\0sasebo.nagasaki.jp\0"
+"fm\0monzaedellabrianza.it\0"
+"ad.jp\0"
+"fo\0"
+"ga\0"
+"fr\0"
+"from-nj.com\0"
+"gd\0"
+"ge\0"
+"gf\0gov.jo\0"
+"gg\0"
+"gh\0eiheiji.fukui.jp\0shintomi.miyazaki.jp\0odesa.ua\0"
+"gi\0gifu.jp\0rockart.museum\0homeunix.com\0"
+"nu.it\0"
+"gl\0"
+"gm\0publ.pt\0forgot.his.name\0"
+"gov.kg\0"
+"gp\0gov.ki\0karmoy.no\0"
+"gq\0kr\xc3\xb8""dsherad.no\0"
+"far.br\0gr\0roma.museum\0endofinternet.net\0"
+"gs\0"
+"gt\0gov.km\0inder\xc3\xb8y.no\0"
+"nakama.fukuoka.jp\0gov.kn\0kvanangen.no\0"
+"gw\0taiki.hokkaido.jp\0gov.kp\0"
+"gov.la\0"
+"gy\0haga.tochigi.jp\0gov.lb\0"
+"gobo.wakayama.jp\0gov.lc\0"
+"hk\0"
+"natori.miyagi.jp\0"
+"hm\0crotone.it\0snillfjord.no\0"
+"hn\0"
+"chiryu.aichi.jp\0gov.ky\0"
+"gov.kz\0"
+"hr\0gov.lk\0"
+"ht\0id\0"
+"hu\0ie\0nanbu.yamanashi.jp\0nesseby.no\0"
+"ono.fukui.jp\0"
+"vikna.no\0"
+"gov.ma\0bashkiria.ru\0"
+"gov.lr\0"
+"niihama.ehime.jp\0"
+"gov.lt\0"
+"gov.me\0"
+"im\0shonai.fukuoka.jp\0gov.lv\0"
+"in\0gov.mg\0gorge.museum\0dyndns.org\0"
+"io\0"
+"gov.ly\0"
+"iq\0"
+"ir\0campidanomedio.it\0nichinan.miyazaki.jp\0gov.mk\0"
+"is\0minamitane.kagoshima.jp\0gov.ml\0"
+"it\0"
+"je\0gov.mn\0"
+"gov.mo\0"
+"*.nagoya.jp\0"
+"gov.mr\0est.pr\0"
+"kinko.kagoshima.jp\0"
+"gov.mu\0dudinka.ru\0"
+"kouyama.kagoshima.jp\0gov.mv\0rnrt.tn\0"
+"gov.mw\0gov.ng\0swiebodzin.pl\0"
+"jo\0"
+"jp\0gov.my\0"
+"columbia.museum\0"
+"udono.mie.jp\0"
+"nx.cn\0oristano.it\0"
+"kg\0"
+"ki\0bygland.no\0gov.nr\0"
+"toyoura.hokkaido.jp\0"
+"\xe6\x94\xbf\xe5\xba\x9c.hk\0"
+"taishi.hyogo.jp\0km\0"
+"miyako.iwate.jp\0kn\0"
+"hamatama.saga.jp\0"
+"la\0stavropol.ru\0"
+"kr\0"
+"lc\0"
+"cn.com\0"
+"tarumizu.kagoshima.jp\0"
+"ky\0li\0"
+"kz\0"
+"lk\0"
+"tver.ru\0"
+"uvic.museum\0"
+"gov.ph\0"
+"lyngen.no\0"
+"koto.tokyo.jp\0ma\0cc.az.us\0"
+"sannan.hyogo.jp\0gov.pk\0sells-it.net\0"
+"ls\0mc\0gov.pl\0"
+"lt\0md\0"
+"lu\0me\0gov.pn\0"
+"lv\0meland.no\0u.se\0servegame.org\0"
+"mg\0"
+"mh\0other.nf\0gov.qa\0"
+"ly\0gov.pr\0"
+"gov.ps\0"
+"\xe7\xbb\x84\xe7\xbb\x87.hk\0nishio.aichi.jp\0mk\0gov.pt\0"
+"ml\0miasta.pl\0"
+"iwamizawa.hokkaido.jp\0ikeda.osaka.jp\0sejny.pl\0wy.us\0"
+"kesennuma.miyagi.jp\0mn\0"
+"mo\0"
+"mp\0gov.py\0"
+"mq\0na\0"
+"mr\0selfip.org\0"
+"tsuruoka.yamagata.jp\0ms\0touch.museum\0nc\0"
+"matsumoto.kagoshima.jp\0mu\0ne\0"
+"lecce.it\0wassamu.hokkaido.jp\0mv\0nf\0"
+"hirono.fukushima.jp\0mw\0"
+"mx\0"
+"my\0"
+"hamamatsu.shizuoka.jp\0"
+"rikubetsu.hokkaido.jp\0jamal.ru\0"
+"nl\0nieruchomosci.pl\0"
+"cl.it\0hisayama.fukuoka.jp\0minami.kyoto.jp\0arai.shizuoka.jp\0"
+"sr.it\0kikonai.hokkaido.jp\0"
+"no\0"
+"yakumo.hokkaido.jp\0"
+"keisen.fukuoka.jp\0idv.tw\0"
+"nr\0"
+"b\xc3\xa5""d\xc3\xa5""ddj\xc3\xa5.no\0"
+"ut.us\0"
+"nu\0"
+"gov.sa\0"
+"gov.sb\0"
+"gov.rs\0gov.sc\0"
+"hi.cn\0gov.sd\0"
+"orkdal.no\0gov.ru\0"
+"fuoisku.no\0"
+"shiraoka.saitama.jp\0building.museum\0gov.rw\0gov.sg\0"
+"gov.sh\0"
+"co.ae\0aeroclub.aero\0"
+"pa\0"
+"co.ag\0"
+"gov.sl\0"
+"ag.it\0higashi.okinawa.jp\0lancashire.museum\0"
+"pe\0"
+"pf\0"
+"oygarden.no\0"
+"!siemens.om\0ph\0"
+"aikawa.kanagawa.jp\0"
+"co.ao\0tempioolbia.it\0"
+"lierne.no\0pk\0gov.st\0"
+"co.ba\0force.museum\0pl\0"
+"pm\0asso.re\0"
+"pn\0"
+"co.at\0dep.no\0irkutsk.ru\0gov.sx\0"
+"gov.sy\0"
+"qa\0gov.tj\0"
+"pr\0"
+"historyofscience.museum\0ps\0gov.tl\0"
+"co.bi\0pt\0gov.tm\0"
+"higashinaruse.akita.jp\0madrid.museum\0gov.tn\0"
+"gov.to\0\xe0\xb9\x84\xe0\xb8\x97\xe0\xb8\xa2\0"
+"pw\0cc.la.us\0"
+"tarui.gifu.jp\0gov.ua\0"
+"py\0"
+"kyotango.kyoto.jp\0gov.tt\0"
+"tourism.pl\0co.ca\0"
+"leirfjord.no\0"
+"gov.tw\0"
+"tenkawa.nara.jp\0"
+"minowa.nagano.jp\0"
+"co.bw\0takazaki.miyazaki.jp\0ullensvang.no\0"
+"andoy.no\0"
+"co.ci\0"
+"finland.museum\0tysnes.no\0re\0"
+"e12.ve\0"
+"co.cl\0austevoll.no\0wolomin.pl\0"
+"kunstunddesign.museum\0"
+"k\xc3\xa5""fjord.no\0gov.vc\0"
+"gov.ve\0"
+"co.cr\0kasuga.fukuoka.jp\0"
+"iris.arpa\0cc.il.us\0"
+"latina.it\0copenhagen.museum\0ro\0"
+"sa\0"
+"sb\0"
+"mc.it\0um.gov.pl\0rs\0sc\0"
+"futtsu.chiba.jp\0incheon.kr\0sd\0"
+"ru\0se\0gov.vn\0"
+"oppeg\xc3\xa5rd.no\0"
+"rw\0sg\0"
+"sh\0"
+"cnt.br\0harima.hyogo.jp\0si\0"
+"1.bg\0"
+"sk\0"
+"sl\0"
+"sm\0"
+"plaza.museum\0sn\0"
+"so\0"
+"sr\0"
+"tc\0"
+"st\0td\0"
+"su\0"
+"tf\0"
+"nishiawakura.okayama.jp\0tg\0"
+"sx\0th\0"
+"unbi.ba\0sumita.iwate.jp\0forsand.no\0sy\0"
+"sz\0tj\0gov.ws\0"
+"asso.nc\0tk\0"
+"artgallery.museum\0tl\0"
+"tm\0"
+"tn\0"
+"toda.saitama.jp\0to\0"
+"for-some.biz\0"
+"ua\0"
+"yatsushiro.kumamoto.jp\0"
+"!rakpetroleum.om\0tt\0"
+"taishin.fukushima.jp\0beeldengeluid.museum\0"
+"hellas.museum\0tv\0gr.com\0"
+"fujimi.nagano.jp\0tw\0ug\0"
+"rennesoy.no\0"
+"asahi.nagano.jp\0"
+"ogano.saitama.jp\0mjondalen.no\0loabat.no\0cc.tx.us\0"
+"kikuchi.kumamoto.jp\0gniezno.pl\0"
+"iwaizumi.iwate.jp\0"
+"va\0"
+"co.gg\0"
+"nesset.no\0us\0vc\0"
+"parma.it\0hasama.oita.jp\0b\xc3\xa1l\xc3\xa1t.no\0ve\0"
+"kashima.ibaraki.jp\0vg\0"
+"k12.ut.us\0"
+"uy\0vi\0"
+"monza-e-della-brianza.it\0ebina.kanagawa.jp\0uz\0"
+"kosa.kumamoto.jp\0nagi.okayama.jp\0"
+"yomitan.okinawa.jp\0"
+"vn\0"
+"ouda.nara.jp\0"
+"ogliastra.it\0"
+"co.gy\0cc.sc.us\0"
+"vu\0"
+"wf\0"
+"webhop.biz\0"
+"x.se\0"
+"farm.museum\0"
+"nord-fron.no\0"
+"co.id\0"
+"mil.ac\0co.hu\0"
+"suzuka.mie.jp\0sigdal.no\0"
+"mil.ae\0"
+"forde.no\0ws\0"
+"ivgu.no\0"
+"co.im\0"
+"mil.al\0co.in\0uchiko.ehime.jp\0mer\xc3\xa5ker.no\0s\xc3\xb8rum.no\0"
+"vibo-valentia.it\0"
+"nango.fukushima.jp\0"
+"co.ir\0"
+"mil.ba\0\xc3\xa5mot.no\0"
+"co.it\0"
+"te.it\0co.je\0"
+"ostre-toten.no\0"
+"engineer.aero\0kumamoto.jp\0nativeamerican.museum\0"
+"miyama.mie.jp\0"
+"mil.az\0nagawa.nagano.jp\0"
+"eng.pro\0"
+"co.jp\0"
+"mil.bo\0"
+"hl.cn\0"
+"sk\xc3\xa1nit.no\0"
+"mil.br\0uda.nara.jp\0"
+"pvt.k12.ma.us\0"
+"medio-campidano.it\0columbus.museum\0"
+"sakaiminato.tottori.jp\0yt\0"
+"asso.km\0"
+"mil.by\0higashiyodogawa.osaka.jp\0nanbu.tottori.jp\0"
+"intelligence.museum\0"
+"mil.cl\0aioi.hyogo.jp\0"
+"mil.cn\0"
+"mil.co\0levanger.no\0"
+"co.kr\0"
+"co.lc\0from-wi.com\0"
+"kawai.iwate.jp\0"
+"b\xc3\xb8.telemark.no\0"
+"tsurugi.ishikawa.jp\0"
+"flekkefjord.no\0"
+"furniture.museum\0newyork.museum\0"
+"asso.mc\0"
+"mil.do\0co.ma\0"
+"nagara.chiba.jp\0co.ls\0"
+"mil.ec\0bolt.hu\0co.me\0"
+"uhren.museum\0"
+"joso.ibaraki.jp\0niyodogawa.kochi.jp\0gs.sf.no\0"
+"mil.eg\0"
+"lib.il.us\0"
+"umaji.kochi.jp\0kurashiki.okayama.jp\0"
+"kakinoki.shimane.jp\0oishida.yamagata.jp\0"
+"bearalv\xc3\xa1hki.no\0sokndal.no\0"
+"wa.gov.au\0sx.cn\0co.na\0"
+"art.museum\0"
+"mo-i-rana.no\0"
+"co.mu\0"
+"co.mw\0"
+"design.aero\0"
+"vadso.no\0"
+"am.br\0"
+"co.nl\0"
+"hidaka.kochi.jp\0"
+"tokushima.jp\0communications.museum\0"
+"co.no\0"
+"oh.us\0blogdns.net\0"
+"4.bg\0nord-odal.no\0"
+"kumamoto.kumamoto.jp\0"
+"altoadige.it\0koto.shiga.jp\0"
+"yasaka.nagano.jp\0"
+"mil.ge\0"
+"jaworzno.pl\0"
+"saito.miyazaki.jp\0"
+"mil.gh\0toyoake.aichi.jp\0"
+"mombetsu.hokkaido.jp\0"
+"fauske.no\0"
+"nishi.fukuoka.jp\0alaska.museum\0"
+"marnardal.no\0"
+"on.ca\0"
+"higashikurume.tokyo.jp\0"
+"gs.nl.no\0"
+"mil.gt\0reggioemilia.it\0r\xc3\xb8st.no\0"
+"fnd.br\0bjark\xc3\xb8y.no\0l\xc3\xa6rdal.no\0tromso.no\0krakow.pl\0"
+"takahashi.okayama.jp\0hasvik.no\0"
+"co.pl\0"
+"zt.ua\0"
+"katsuyama.fukui.jp\0co.pn\0homeftp.net\0"
+"mil.hn\0fuchu.tokyo.jp\0omaha.museum\0"
+"date.hokkaido.jp\0shimokawa.hokkaido.jp\0"
+"tyumen.ru\0"
+"mil.id\0philadelphiaarea.museum\0sanfrancisco.museum\0"
+"honjo.akita.jp\0living.museum\0co.pw\0"
+"beiarn.no\0"
+"ullensaker.no\0"
+"tozawa.yamagata.jp\0"
+"aya.miyazaki.jp\0uk.net\0"
+"sklep.pl\0"
+"hokuto.hokkaido.jp\0"
+"mil.in\0"
+"tsaritsyn.ru\0"
+"mil.iq\0"
+"minami.fukuoka.jp\0"
+"naklo.pl\0"
+"susaki.kochi.jp\0"
+"karatsu.saga.jp\0"
+"fg.it\0badajoz.museum\0"
+"for-better.biz\0"
+"mil.jo\0"
+"midsund.no\0co.rs\0"
+"shimane.shimane.jp\0"
+"hi.us\0"
+"d\xc3\xb8nna.no\0"
+"york.museum\0spydeberg.no\0co.rw\0"
+"hamatonbetsu.hokkaido.jp\0"
+"mil.kg\0"
+"!nic.ar\0kagami.kochi.jp\0dynalias.com\0"
+"civilaviation.aero\0modelling.aero\0uz.ua\0"
+"nanao.ishikawa.jp\0"
+"mil.km\0"
+"modum.no\0"
+"badaddja.no\0"
+"mil.kr\0co.st\0"
+"oi.kanagawa.jp\0"
+"author.aero\0cr.it\0"
+"co.th\0"
+"versailles.museum\0co.sz\0co.tj\0"
+"encyclopedic.museum\0"
+"mil.kz\0grong.no\0"
+"co.tm\0"
+"minamiboso.chiba.jp\0lib.ma.us\0servebbs.org\0"
+"kiev.ua\0"
+"journalist.aero\0co.ua\0"
+"te.ua\0"
+"co.tt\0"
+"co.ug\0"
+"mil.lv\0"
+"mil.mg\0"
+"co.tz\0"
+"council.aero\0ibaraki.jp\0"
+"family.museum\0"
+"rc.it\0"
+"hl.no\0ostrowiec.pl\0co.us\0"
+"!statecouncil.om\0co.ve\0"
+"!congresodelalengua3.ar\0nalchik.ru\0"
+"mil.mv\0halsa.no\0"
+"co.vi\0"
+"takayama.gifu.jp\0fujishiro.ibaraki.jp\0os.hordaland.no\0sirdal.no\0co.uz\0"
+"fj.cn\0mil.my\0"
+"kazuno.akita.jp\0"
+"unzen.nagasaki.jp\0mizuho.tokyo.jp\0indianapolis.museum\0"
+"from-id.com\0"
+"hurum.no\0"
+"mil.no\0"
+"pordenone.it\0"
+"kvam.no\0"
+"mutsuzawa.chiba.jp\0artdeco.museum\0"
+"hamada.shimane.jp\0philadelphia.museum\0"
+"kudoyama.wakayama.jp\0"
+"mishima.shizuoka.jp\0minami-alps.yamanashi.jp\0k12.mi.us\0"
+"nanmoku.gunma.jp\0"
+"ashikaga.tochigi.jp\0"
+"from-wv.com\0"
+"\xe5\x8f\xb0\xe6\xb9\xbe\0"
+"kawatana.nagasaki.jp\0"
+"oslo.no\0"
+"fukuchiyama.kyoto.jp\0"
+"kisofukushima.nagano.jp\0"
+"okayama.jp\0mil.pe\0"
+"mil.ph\0"
+"mi.it\0"
+"russia.museum\0"
+"abo.pa\0mil.pl\0"
+"nobeoka.miyazaki.jp\0shinjuku.tokyo.jp\0"
+"ok.us\0"
+"7.bg\0mil.qa\0"
+"verran.no\0suwalki.pl\0"
+"onjuku.chiba.jp\0szczytno.pl\0lv.ua\0"
+"mitou.yamaguchi.jp\0mil.py\0"
+"chita.ru\0"
+"hirono.iwate.jp\0"
+"embroidery.museum\0"
+"mad.museum\0"
+"kawaue.gifu.jp\0"
+"shiiba.miyazaki.jp\0"
+"asnes.no\0"
+"media.hu\0sande.vestfold.no\0\xd8\xb9\xd9\x85\xd8\xa7\xd9\x86\0"
+"lib.de.us\0"
+"erotika.hu\0ski.museum\0"
+"parti.se\0on-the-web.tv\0"
+"works.aero\0gb.com\0dyndns-free.com\0"
+"biz.bb\0firm.ht\0rifu.miyagi.jp\0watari.miyagi.jp\0"
+"takagi.nagano.jp\0biz.at\0"
+"surgeonshall.museum\0skanit.no\0"
+"florida.museum\0"
+"kani.gifu.jp\0"
+"biz.az\0mil.ru\0"
+"isesaki.gunma.jp\0"
+"firm.in\0yusui.kagoshima.jp\0mil.rw\0"
+"mil.sh\0"
+"inderoy.no\0"
+"software.aero\0kushiro.hokkaido.jp\0pyatigorsk.ru\0"
+"bindal.no\0"
+"sakegawa.yamagata.jp\0"
+"ninohe.iwate.jp\0yonago.tottori.jp\0"
+"mil.st\0"
+"galsa.no\0"
+"mil.sy\0"
+"salvadordali.museum\0mil.tj\0"
+"mil.tm\0"
+"for-our.info\0"
+"shikama.miyagi.jp\0mil.to\0"
+"yaotsu.gifu.jp\0"
+"niki.hokkaido.jp\0"
+"hikawa.shimane.jp\0stat.no\0"
+"joetsu.niigata.jp\0mil.tw\0"
+"firm.co\0bruxelles.museum\0endofinternet.org\0"
+"asahi.mie.jp\0mil.tz\0"
+"sor-varanger.no\0dynathome.net\0"
+"skoczow.pl\0"
+"shonai.yamagata.jp\0"
+"stadt.museum\0"
+"roma.it\0"
+"shijonawate.osaka.jp\0"
+"mil.vc\0"
+"mil.ve\0"
+"honai.ehime.jp\0"
+"muko.kyoto.jp\0"
+"karpacz.pl\0mil.uy\0us.com\0"
+"k12.az.us\0"
+"\xe6\x95\x99\xe8\x82\xb2.hk\0"
+"monza-brianza.it\0shingo.aomori.jp\0toshima.tokyo.jp\0prochowice.pl\0"
+"kuju.oita.jp\0cr.ua\0"
+"eid.no\0"
+"kyowa.hokkaido.jp\0"
+"higashikagura.hokkaido.jp\0otari.nagano.jp\0kiyama.saga.jp\0"
+"rochester.museum\0"
+"fuchu.hiroshima.jp\0"
+"hasuda.saitama.jp\0"
+"ap.it\0"
+"fm.br\0dagestan.ru\0"
+"gs.va.no\0"
+"shinshiro.aichi.jp\0lowicz.pl\0"
+"taiwa.miyagi.jp\0yekaterinburg.ru\0"
+"wielun.pl\0"
+"geelvinck.museum\0"
+"slattum.no\0"
+"utsunomiya.tochigi.jp\0"
+"bern.museum\0rivne.ua\0"
+"miners.museum\0"
+"com.ac\0kraanghke.no\0"
+"pa.it\0davvenj\xc3\xa1rga.no\0"
+"com.af\0tsushima.aichi.jp\0"
+"com.ag\0asmatart.museum\0"
+"com.ai\0"
+"etnedal.no\0"
+"com.al\0snaase.no\0media.pl\0"
+"sula.no\0vanylven.no\0"
+"com.an\0"
+"torino.museum\0"
+"helsinki.museum\0"
+"com.ba\0"
+"com.bb\0"
+"kimitsu.chiba.jp\0"
+"tarama.okinawa.jp\0"
+"com.au\0"
+"com.aw\0\xe4\xb8\xaa\xe4\xba\xba.hk\0aremark.no\0"
+"com.bh\0vestre-slidre.no\0"
+"com.bi\0goto.nagasaki.jp\0higashisumiyoshi.osaka.jp\0"
+"com.az\0"
+"rollag.no\0"
+"bc.ca\0"
+"com.bm\0oceanographique.museum\0"
+"mesaverde.museum\0mi.th\0"
+"com.bo\0gs.aa.no\0"
+"jerusalem.museum\0"
+"com.br\0is-a-green.com\0"
+"com.bs\0nagasaki.jp\0"
+"com.bt\0"
+"nishiwaki.hyogo.jp\0"
+"verbania.it\0takarazuka.hyogo.jp\0georgia.museum\0"
+"com.by\0com.ci\0"
+"com.bz\0uchinomi.kagawa.jp\0"
+"ehime.jp\0"
+"shinjo.nara.jp\0"
+"com.cn\0shiki.saitama.jp\0"
+"com.co\0cc.wv.us\0"
+"xxx\0"
+"tychy.pl\0nkz.ru\0"
+"tobe.ehime.jp\0"
+"strand.no\0"
+"biz.ki\0ivanovo.ru\0"
+"com.cu\0com.de\0"
+"s\xc3\xa1l\xc3\xa1t.no\0"
+"hichiso.gifu.jp\0nirasaki.yamanashi.jp\0flesberg.no\0"
+"mi.us\0k12.il.us\0"
+"jgora.pl\0sumy.ua\0"
+"com.dm\0izumo.shimane.jp\0"
+"com.do\0hiranai.aomori.jp\0"
+"jor.br\0!city.sendai.jp\0"
+"omaezaki.shizuoka.jp\0"
+"turin.it\0nissedal.no\0skierva.no\0"
+"com.ec\0"
+"com.ee\0"
+"cc.va.us\0"
+"com.eg\0nagano.nagano.jp\0"
+"halloffame.museum\0leka.no\0"
+"com.dz\0morioka.iwate.jp\0"
+"lesja.no\0"
+"vibovalentia.it\0nishi.osaka.jp\0kg.kr\0"
+"!city.kawasaki.jp\0flanders.museum\0"
+"com.es\0florence.it\0"
+"kumano.hiroshima.jp\0from-sd.com\0"
+"mo.cn\0yamagata.nagano.jp\0!nic.tr\0"
+"yamanashi.jp\0"
+"is-with-theband.com\0"
+"canada.museum\0"
+"bardu.no\0tr\xc3\xb8gstad.no\0"
+"fm.it\0biz.mv\0bialowieza.pl\0!nic.uk\0"
+"com.fr\0vs.it\0kunohe.iwate.jp\0aoki.nagano.jp\0biz.mw\0"
+"izumi.osaka.jp\0koeln.museum\0"
+"gulen.no\0ruovat.no\0"
+"agr.br\0com.ge\0nes.buskerud.no\0"
+"fukudomi.saga.jp\0"
+"dnsdojo.com\0"
+"com.gh\0hitachi.ibaraki.jp\0selfip.biz\0"
+"com.gi\0nakagawa.nagano.jp\0"
+"biz.nr\0"
+"com.gn\0nishiaizu.fukushima.jp\0"
+"com.gp\0bearalvahki.no\0"
+"m\xc3\xa5lselv.no\0kchr.ru\0"
+"com.gr\0tosashimizu.kochi.jp\0"
+"tas.gov.au\0nosegawa.nara.jp\0"
+"com.gt\0kanan.osaka.jp\0oyer.no\0\xe0\xa4\xad\xe0\xa4\xbe\xe0\xa4\xb0\xe0\xa4\xa4\0"
+"shinagawa.tokyo.jp\0"
+"com.gy\0tn.it\0kyoto.jp\0kurume.fukuoka.jp\0"
+"yk.ca\0"
+"com.hk\0itako.ibaraki.jp\0"
+"hammarfeasta.no\0"
+"broker.aero\0com.hn\0shinshinotsu.hokkaido.jp\0"
+"k12.ri.us\0"
+"czeladz.pl\0"
+"dovre.no\0"
"com.hr\0"
-"fg.it\0stathelle.no\0defense.tn\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.ht\0ebino.miyazaki.jp\0"
+"celtic.museum\0"
+"fujimi.saitama.jp\0biz.pk\0dyndns-at-home.com\0"
+"asn.au\0biz.pl\0"
+"kanzaki.saga.jp\0"
+"nannestad.no\0"
+"yachiyo.ibaraki.jp\0"
+"kaizuka.osaka.jp\0r\xc3\xa5holt.no\0biz.pr\0is-into-games.com\0"
+"\xe9\xa6\x99\xe6\xb8\xaf\0"
+"com.io\0"
+"ri.it\0komoro.nagano.jp\0"
+"com.iq\0gyokuto.kumamoto.jp\0googleapis.com\0"
+"com.is\0"
+"issmarterthanyou.com\0"
+"de.us\0"
+"castle.museum\0!parliament.uk\0"
+"shimodate.ibaraki.jp\0"
+"g\xc3\xa1ivuotna.no\0"
+"kviteseid.no\0"
+"yabu.hyogo.jp\0naamesjevuemie.no\0"
+"com.jo\0science-fiction.museum\0zaporizhzhe.ua\0"
+"tanabe.kyoto.jp\0"
+"aejrie.no\0"
+"sakae.nagano.jp\0is-a-nurse.com\0"
+"moriguchi.osaka.jp\0stjordalshalsen.no\0"
+"pd.it\0ot.it\0com.kg\0tokke.no\0"
"com.ki\0"
-"im.it\0idv.tw\0"
-"*.akita.jp\0com.km\0r\xc3\xb8ros.no\0sopot.pl\0"
-"!pref.yamanashi.jp\0"
+"bibai.hokkaido.jp\0tsk.ru\0"
+"fm.no\0"
+"com.km\0kirovograd.ua\0"
+"b.bg\0tomi.nagano.jp\0"
"com.kp\0"
-"!pref.kochi.jp\0com.la\0"
+"ballooning.aero\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.lc\0lutsk.ua\0"
+"yatomi.aichi.jp\0"
+"virtuel.museum\0firm.ro\0"
+"navigation.aero\0b.br\0com.ky\0"
+"com.kz\0"
+"tenei.fukushima.jp\0chungnam.kr\0com.lk\0"
+"mo.it\0"
+"dnsdojo.org\0"
+"com.lr\0\xd8\xa7\xd9\x84\xd8\xb3\xd8\xb9\xd9\x88\xd8\xaf\xdb\x8c\xd8\xa9\0"
+"opoczno.pl\0"
+"pa.us\0"
+"saga.jp\0kvinesdal.no\0biz.tj\0"
+"com.lv\0"
+"gose.nara.jp\0com.mg\0"
+"nagaokakyo.kyoto.jp\0tcm.museum\0"
+"com.ly\0"
+"kawasaki.miyagi.jp\0cieszyn.pl\0"
+"com.mk\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.mo\0siljan.no\0biz.tt\0"
+"akita.jp\0"
+"com.na\0cc.wy.us\0"
+"riodejaneiro.museum\0marine.ru\0"
+"averoy.no\0"
"com.mu\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"
+"com.mv\0com.nf\0tolga.no\0"
+"com.mw\0com.ng\0vladimir.ru\0"
+"com.mx\0deatnu.no\0"
+"com.my\0"
+"mihara.kochi.jp\0"
+"hyllestad.no\0melhus.no\0lib.co.us\0"
+"eng.br\0"
+"mashike.hokkaido.jp\0com.nr\0"
+"minamiminowa.nagano.jp\0"
+"moroyama.saitama.jp\0moscow.museum\0"
+"phoenix.museum\0vladikavkaz.ru\0from-nh.com\0"
+"jan-mayen.no\0"
+"granvin.no\0khv.ru\0"
+"cc.ut.us\0"
+"mj\xc3\xb8ndalen.no\0biz.vn\0"
+"accident-investigation.aero\0v\xc3\xa5ler.hedmark.no\0"
+"kisosaki.mie.jp\0"
+"nb.ca\0"
+"firm.nf\0"
+"biz\0doshi.yamanashi.jp\0com.pa\0"
+"lib.ar.us\0dyndns-ip.com\0"
+"fukushima.fukushima.jp\0"
+"com.pe\0"
+"misasa.tottori.jp\0fuossko.no\0com.pf\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"
+"tokashiki.okinawa.jp\0\xc4\x8d\xc3\xa1hcesuolo.no\0"
+"moriyama.shiga.jp\0museumcenter.museum\0hof.no\0vegarshei.no\0com.pk\0"
+"com.pl\0"
+"com.qa\0"
+"imperia.it\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"
+"vv.it\0com.pt\0"
+"ayagawa.kagawa.jp\0davvenjarga.no\0"
+"iwakuni.yamaguchi.jp\0com.py\0k12.dc.us\0"
+"royken.no\0"
+"pri.ee\0nishikata.tochigi.jp\0"
+"urawa.saitama.jp\0"
+"equipment.aero\0sweden.museum\0"
+"kyowa.akita.jp\0guovdageaidnu.no\0"
+"ogaki.gifu.jp\0"
+"com.re\0"
+"emergency.aero\0"
+"ikusaka.nagano.jp\0"
+"hirosaki.aomori.jp\0"
+"jobs.tt\0"
+"maryland.museum\0"
"com.ro\0"
-"*.ye\0"
-"com.sa\0"
-"com.sb\0"
-"so.it\0com.sc\0"
-"jolster.no\0com.sd\0"
+"com.sa\0is-found.org\0"
+"usa.oita.jp\0com.sb\0"
+"frogn.no\0com.sc\0"
+"com.sd\0"
"com.ru\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"
-"com.tn\0"
+"inawashiro.fukushima.jp\0com.sh\0"
+"yn.cn\0"
+"com.sl\0"
+"togakushi.nagano.jp\0unazuki.toyama.jp\0com.sn\0"
+"porsanger.no\0com.so\0"
+"av.it\0"
+"gc.ca\0okinawa.jp\0"
+"com.st\0"
+"asn.lv\0namdalseid.no\0tn.us\0"
+"amber.museum\0com.sy\0broke-it.net\0podzone.net\0"
+"net.ac\0com.tj\0"
+"selfip.com\0"
+"net.ae\0ofunato.iwate.jp\0shichikashuku.miyagi.jp\0"
+"net.af\0yoita.niigata.jp\0com.tm\0"
+"net.ag\0com.tn\0dynalias.net\0"
"com.to\0"
-"broadcast.museum\0"
+"net.ai\0eidsberg.no\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"
-"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"
-"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"
-"latina.it\0"
-"vibovalentia.it\0"
-"modum.no\0"
-"safety.aero\0"
-"sp.it\0"
-"science.museum\0ah.no\0"
-"norddal.no\0"
-"cc.na\0"
-"re.kr\0"
-"dielddanuorri.no\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"
-"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"
-"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"
-"net.ba\0"
-"net.bb\0flanders.museum\0"
-"mincom.tn\0"
-"frana.no\0"
-"bt.it\0"
-"net.bh\0"
-"auto.pl\0"
+"lugansk.ua\0"
+"net.al\0"
+"nishihara.kumamoto.jp\0com.tt\0"
+"net.an\0cymru.museum\0heritage.museum\0"
+"sarpsborg.no\0com.tw\0com.ug\0"
+"net.ba\0higashiyamato.tokyo.jp\0\xd8\xaa\xd9\x88\xd9\x86\xd8\xb3\0"
+"net.bb\0pg.it\0"
+"net.au\0"
+"meiwa.gunma.jp\0"
+"as.us\0"
+"net.bh\0ri.us\0"
+"e.bg\0"
"net.az\0"
-"treviso.it\0"
-"war.museum\0"
+"roan.no\0"
+"com.vc\0\xe5\x8f\xb0\xe7\x81\xa3\0"
"net.bm\0"
-"langevag.no\0m\xc3\xa5lselv.no\0"
+"com.ve\0"
"net.bo\0"
-"gol.no\0"
-"folkebibl.no\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.br\0com.uy\0com.vi\0fuettertdasnetz.de\0"
+"net.bs\0tran\xc3\xb8y.no\0com.uz\0"
+"net.bt\0higashiomi.shiga.jp\0kms.ru\0"
+"accident-prevention.aero\0from-ca.com\0"
+"ozora.hokkaido.jp\0com.vn\0dyndns-server.com\0"
"net.ci\0"
"net.bz\0"
-"sch.ae\0undersea.museum\0odda.no\0"
+"livinghistory.museum\0"
"net.cn\0"
-"net.co\0c.la\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"
-"net.gn\0"
-"mazowsze.pl\0bir.ru\0"
+"net.co\0ryuoh.shiga.jp\0"
+"krokstadelva.no\0"
+"lib.wa.us\0"
+"cat\0"
+"oz.au\0net.cu\0from-sc.com\0"
+"chocolate.museum\0"
+"sch.ae\0"
+"iwate.jp\0"
+"museum.tt\0com.ws\0"
+"net.dm\0selje.no\0is-very-good.org\0"
+"net.do\0"
+"net.ec\0gildesk\xc3\xa5l.no\0"
+"moriyoshi.akita.jp\0rl.no\0mo.us\0blogspot.re\0"
+"net.eg\0"
+"hachioji.tokyo.jp\0childrens.museum\0"
+"shizuoka.jp\0"
+"net.dz\0"
+"minamiizu.shizuoka.jp\0"
+"is-a-patsfan.org\0"
+"inagawa.hyogo.jp\0blogspot.ro\0"
+"yamagata.jp\0gsm.pl\0"
+"suldal.no\0dlugoleka.pl\0blogspot.se\0"
+"blogspot.sg\0"
+"\xd8\xa7\xd9\x8a\xd8\xb1\xd8\xa7\xd9\x86\0dnsalias.com\0"
+"kamikawa.hokkaido.jp\0kamoenai.hokkaido.jp\0"
+"blogspot.sk\0"
+"siracusa.it\0k12.wi.us\0"
+"oksnes.no\0\xed\x95\x9c\xea\xb5\xad\0"
+"vardo.no\0starachowice.pl\0"
+"net.ge\0ishinomaki.miyagi.jp\0oji.nara.jp\0\xd8\xa7\xd9\x84\xd8\xb3\xd8\xb9\xd9\x88\xd8\xaf\xdb\x8c\xdb\x83\0blogspot.td\0"
+"trustee.museum\0"
+"net.gg\0"
+"misato.saitama.jp\0"
+"ppg.br\0"
+"net.gn\0chikuho.fukuoka.jp\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.hk\0"
+"osoyro.no\0dyndns-office.com\0"
+"net.gr\0higashikawa.hokkaido.jp\0"
+"net.gt\0monzabrianza.it\0mr.no\0eidsvoll.no\0"
+"aridagawa.wakayama.jp\0"
+"sykkylven.no\0"
+"minamiaiki.nagano.jp\0blogspot.tw\0"
+"net.gy\0naturhistorisches.museum\0"
+"net.hk\0zaporizhzhia.ua\0"
+"mifune.kumamoto.jp\0"
"net.hn\0"
-"philadelphiaarea.museum\0"
-"osen.no\0"
+"kahoku.yamagata.jp\0"
+"asakawa.fukushima.jp\0"
+"barlettatraniandria.it\0blogspot.mr\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"
+"b.se\0"
+"ud.it\0tsuchiura.ibaraki.jp\0naturalhistory.museum\0"
+"matsushige.tokushima.jp\0nanto.toyama.jp\0from-al.com\0"
+"blogspot.mx\0"
+"nagakute.aichi.jp\0zamami.okinawa.jp\0"
+"net.im\0ikawa.akita.jp\0lib.ne.us\0blogspot.nl\0"
+"net.in\0"
+"yokkaichi.mie.jp\0"
+"blogspot.no\0"
"net.iq\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"
+"from.hr\0cc.oh.us\0"
+"biratori.hokkaido.jp\0"
+"sch.gg\0"
+"taxi.aero\0"
+"bi.it\0treviso.it\0"
+"ro.it\0"
+"mine.nu\0"
+"net.jo\0tenri.nara.jp\0alvdal.no\0"
+"ikeda.hokkaido.jp\0here-for-more.info\0"
+"owani.aomori.jp\0"
+"uri.arpa\0"
+"tsukui.kanagawa.jp\0bryne.no\0"
+"shibetsu.hokkaido.jp\0grozny.ru\0"
+"jewelry.museum\0"
"net.kg\0"
-"ce.it\0net.ki\0"
-"sch.id\0os.hedmark.no\0"
-"columbus.museum\0"
-"arteducation.museum\0"
+"net.ki\0"
+"sakura.chiba.jp\0nittedal.no\0"
+"kawazu.shizuoka.jp\0"
"net.kn\0"
-"kr.com\0"
-"net.la\0bushey.museum\0cc.gu.us\0"
-"net.lb\0"
+"net.la\0hoylandet.no\0"
+"net.lb\0\xc3\xa5mli.no\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"
+"mihama.fukui.jp\0yamagata.gifu.jp\0blogspot.pt\0"
+"sch.id\0"
+"aca.pro\0"
+"sanjo.niigata.jp\0net.ky\0"
+"tsukumi.oita.jp\0net.kz\0oceanographic.museum\0k12.nm.us\0"
+"h.bg\0net.lk\0"
+"miharu.fukushima.jp\0"
+"aknoluokta.no\0"
+"net.ma\0"
+"tw.cn\0net.lr\0"
+"kamikitayama.nara.jp\0miyashiro.saitama.jp\0chernihiv.ua\0"
+"ichikawa.hyogo.jp\0comunica\xc3\xa7\xc3\xb5""es.museum\0"
+"sch.ir\0oki.fukuoka.jp\0yoshioka.gunma.jp\0akkeshi.hokkaido.jp\0net.me\0kazimierz-dolny.pl\0blogspot.it\0"
+"net.lv\0"
+"sch.je\0yoshida.saitama.jp\0"
+"net.ly\0"
"net.mk\0"
-"net.ml\0evenes.no\0"
-"ngo.lk\0net.mo\0egyptian.museum\0"
-"marine.ru\0"
-"realestate.pl\0"
+"net.ml\0"
+"museum.mv\0"
+"hokkaido.jp\0net.mo\0museum.mw\0"
+"\xc3\xa1lt\xc3\xa1.no\0vestnes.no\0"
+"blogspot.jp\0"
+"sch.jo\0"
+"yokoze.saitama.jp\0stathelle.no\0blogspot.com.ar\0"
"net.mu\0"
"net.mv\0net.nf\0"
-"net.mw\0net.ng\0gda.pl\0"
+"adult.ht\0ne.jp\0coldwar.museum\0net.mw\0net.ng\0museum.no\0blogspot.com.au\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"
+"skydiving.aero\0net.my\0"
+"nakasatsunai.hokkaido.jp\0"
+"undersea.museum\0"
+"kainan.wakayama.jp\0sebastopol.ua\0cc.hi.us\0"
+"gamagori.aichi.jp\0"
+"gyeongbuk.kr\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"
-"net.pa\0"
-"author.aero\0"
-"naturalhistory.museum\0steiermark.museum\0bu.no\0"
-"sn\xc3\xa5sa.no\0net.pe\0"
-"net.ph\0"
-"savannahga.museum\0batsfjord.no\0lib.oh.us\0"
+"jorpeland.no\0blogspot.kr\0"
+"bellevue.museum\0blogspot.com.br\0"
+"kanegasaki.iwate.jp\0"
+"ne.kr\0"
+"aosta.it\0mima.tokushima.jp\0"
+"pro.az\0km.ua\0"
+"nakanoto.ishikawa.jp\0sch.lk\0"
+"nome.pt\0"
+"nagareyama.chiba.jp\0himeji.hyogo.jp\0denmark.museum\0"
+"echizen.fukui.jp\0net.pa\0\xe4\xb8\xad\xe5\x9b\xbd\0from-oh.com\0"
+"kongsvinger.no\0ringebu.no\0"
+"tsukigata.hokkaido.jp\0m\xc3\xa5s\xc3\xb8y.no\0"
+"pro.br\0net.pe\0bar.pro\0"
+"viterbo.it\0heroy.more-og-romsdal.no\0"
+"omihachiman.shiga.jp\0labor.museum\0"
+"toho.fukuoka.jp\0tome.miyagi.jp\0net.ph\0"
"net.pk\0"
-"net.pl\0"
-"net.pn\0"
-"washingtondc.museum\0"
+"sch.ly\0net.pl\0"
+"saijo.ehime.jp\0"
+"shiojiri.nagano.jp\0net.pn\0"
+"newport.museum\0\xe4\xb8\xad\xe5\x9c\x8b\0"
+"\xe6\x95\x8e\xe8\x82\xb2.hk\0net.qa\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"
+"akrehamn.no\0"
+"oshu.iwate.jp\0lincoln.museum\0fjell.no\0"
+"selfip.info\0"
+"hol.no\0"
+"net.py\0"
+"blogspot.fi\0"
+"kakegawa.shizuoka.jp\0cc.co.us\0"
+"com\0schoenbrunn.museum\0"
+"microlight.aero\0"
+"shimogo.fukushima.jp\0"
+"leirvik.no\0"
+"veg\xc3\xa5rshei.no\0blogspot.fr\0"
+"blogspot.com.es\0"
+"pro.ec\0"
+"civilisation.museum\0"
+"g\xc3\xa1\xc5\x8bgaviika.no\0"
+"nago.okinawa.jp\0"
+"station.museum\0"
+"akashi.hyogo.jp\0ichinohe.iwate.jp\0"
+"tsukiyono.gunma.jp\0"
+"b\xc3\xa1hcavuotna.no\0"
+"notogawa.shiga.jp\0sciencehistory.museum\0s\xc3\xb8r-fron.no\0"
"net.sa\0"
"net.sb\0"
-"works.aero\0net.sc\0komvux.se\0"
+"net.sc\0blogspot.gr\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.st\0"
-"film.hu\0"
-"tuva.ru\0d.se\0"
+"mandal.no\0net.ru\0"
+"net.rw\0e.se\0net.sg\0"
+"flight.aero\0alabama.museum\0net.sh\0"
+"dgca.aero\0dominic.ua\0"
+"vestby.no\0"
+"kuroishi.aomori.jp\0gs.hl.no\0"
+"sorfold.no\0net.sl\0blogspot.hk\0"
+"nemuro.hokkaido.jp\0l\xc3\xa1hppi.no\0wi.us\0"
+"tsuno.miyazaki.jp\0net.so\0"
+"giessen.museum\0"
+"l\xc3\xb8ten.no\0dn.ua\0"
+"wada.nagano.jp\0"
+"sch.qa\0net.st\0"
+"shiroishi.saga.jp\0"
+"blogspot.hu\0blogspot.ie\0"
+"teramo.it\0kuzumaki.iwate.jp\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.tj\0cc.ok.us\0"
+"uozu.toyama.jp\0net.tm\0"
+"bl.it\0naoshima.kagawa.jp\0ne.pw\0net.tn\0"
+"ohi.fukui.jp\0fusa.no\0net.to\0blogspot.in\0"
+"hirakata.osaka.jp\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"
+"fujiyoshida.yamanashi.jp\0beskidy.pl\0"
+"ed.ao\0net.tt\0"
+"kochi.kochi.jp\0"
+"southcarolina.museum\0valle.no\0blogspot.be\0dnsdojo.net\0"
+"tomika.gifu.jp\0muosat.no\0net.tw\0"
+"minamiyamashiro.kyoto.jp\0"
+"itano.tokushima.jp\0blogspot.bj\0"
+"tainai.niigata.jp\0zachpomor.pl\0"
+"komono.mie.jp\0project.museum\0"
+"blogspot.ca\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"
+"aerobatic.aero\0benevento.it\0sch.sa\0"
+"nakadomari.aomori.jp\0ibara.okayama.jp\0net.ve\0"
+"elvendrell.museum\0"
+"pro.ht\0tomari.hokkaido.jp\0blogspot.cf\0"
+"hikimi.shimane.jp\0"
+"net.uy\0net.vi\0blogspot.ch\0"
+"net.uz\0"
+"servebbs.com\0"
+"k.bg\0"
+"ed.ci\0net.vn\0"
+"paragliding.aero\0otobe.hokkaido.jp\0"
+"sakai.fukui.jp\0"
+"rikuzentakata.iwate.jp\0"
+"journalism.museum\0"
+"news.hu\0"
+"susono.shizuoka.jp\0blogspot.de\0"
+"ed.cr\0mediocampidano.it\0blogspot.cv\0"
+"soma.fukushima.jp\0blogspot.com\0"
+"blogspot.cz\0is-a-player.com\0"
+"blogspot.dk\0"
+"consulado.st\0"
+"shingu.fukuoka.jp\0"
+"inami.wakayama.jp\0"
+"education.museum\0"
+"sciencecenters.museum\0net.ws\0"
+"lib.ga.us\0"
+"bergen.no\0"
+"prato.it\0shiwa.iwate.jp\0"
+"bo.nordland.no\0"
+"foggia.it\0"
+"pp.az\0ne.ug\0"
+"chirurgiens-dentistes.fr\0"
+"toyama.jp\0ne.tz\0"
+"forum.hu\0chita.aichi.jp\0"
+"nisshin.aichi.jp\0"
+"lc.it\0mitake.gifu.jp\0solund.no\0"
+"ogose.saitama.jp\0"
+"kunst.museum\0"
+"ne.us\0"
+"furukawa.miyagi.jp\0"
+"nakatombetsu.hokkaido.jp\0lib.tn.us\0"
+"\xc3\xa5l.no\0"
+"fareast.ru\0"
+"railroad.museum\0"
+"yamaguchi.jp\0sakae.chiba.jp\0"
+"atsuma.hokkaido.jp\0minamimaki.nagano.jp\0"
+"marker.no\0"
+"yabuki.fukushima.jp\0from-ak.com\0"
+"settlers.museum\0rubtsovsk.ru\0"
+"akabira.hokkaido.jp\0"
+"pro.na\0"
+"yurihonjo.akita.jp\0"
+"kuji.iwate.jp\0"
+"morotsuka.miyazaki.jp\0pro.mv\0"
+"mx.na\0"
+"cargo.aero\0ohira.tochigi.jp\0"
+"fyresdal.no\0"
+"trieste.it\0tokyo.jp\0"
+"midori.chiba.jp\0"
+"manx.museum\0"
+"soo.kagoshima.jp\0kunstsammlung.museum\0rzeszow.pl\0"
+"samegawa.fukushima.jp\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"
-"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"
+"higashi.fukuoka.jp\0kids.us\0"
+"assedic.fr\0"
+"state.museum\0czest.pl\0"
+"wallonie.museum\0podzone.org\0"
+"hitoyoshi.kumamoto.jp\0"
+"hamura.tokyo.jp\0"
+"h.se\0"
+"minoh.osaka.jp\0"
+"tako.chiba.jp\0kafjord.no\0"
+"freemasonry.museum\0"
+"lib.mo.us\0"
+"ed.jp\0pro.pr\0"
+"film.hu\0"
+"act.au\0"
+"in.na\0"
+"no.com\0"
+"higashiizumo.shimane.jp\0elburg.museum\0"
+"siedlce.pl\0"
+"bo.it\0"
+"chikugo.fukuoka.jp\0from-mo.com\0"
+"!city.kitakyushu.jp\0sopot.pl\0"
+"togura.nagano.jp\0"
+"handson.museum\0sb.ua\0"
+"rennebu.no\0"
+"milan.it\0"
+"kamioka.akita.jp\0"
+"cc.mi.us\0"
+"from-de.com\0"
+"urayasu.chiba.jp\0"
+"varggat.no\0"
+"takatsuki.shiga.jp\0k12.ms.us\0k12.nc.us\0"
+"n.bg\0sakaki.nagano.jp\0"
+"uwajima.ehime.jp\0skaun.no\0"
+"kursk.ru\0"
+"tabayama.yamanashi.jp\0"
+"ryazan.ru\0"
+"oyabe.toyama.jp\0health.vn\0"
+"higashiyoshino.nara.jp\0"
+"isen.kagoshima.jp\0nogi.tochigi.jp\0broadcast.museum\0"
+"iitate.fukushima.jp\0yawata.kyoto.jp\0daegu.kr\0"
+"obihiro.hokkaido.jp\0rebun.hokkaido.jp\0kamo.niigata.jp\0"
+"vrn.ru\0"
+"higashimurayama.tokyo.jp\0"
+"ora.gunma.jp\0shimoji.okinawa.jp\0pro.tt\0lib.wv.us\0"
+"odate.akita.jp\0"
+"shoo.okayama.jp\0"
+"tula.ru\0"
+"uchinada.ishikawa.jp\0"
+"sh.cn\0kawahara.tottori.jp\0"
+"ingatlan.hu\0chikuma.nagano.jp\0vaksdal.no\0"
+"foundation.museum\0"
+"lewismiller.museum\0"
+"trentino.it\0"
+"qc.ca\0piacenza.it\0bokn.no\0"
+"in.rs\0tom.ru\0"
+"cng.br\0lebesby.no\0nh.us\0k12.ia.us\0"
+"noto.ishikawa.jp\0arita.saga.jp\0"
+"svizzera.museum\0ask\xc3\xb8y.no\0"
+"kiyose.tokyo.jp\0frosta.no\0"
+"ks.ua\0pro.vn\0"
+"namsos.no\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"
+"naumburg.museum\0"
+"szczecin.pl\0"
+"koza.wakayama.jp\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"
+"sorum.no\0ed.pw\0from-ky.com\0"
+"nishiazai.shiga.jp\0"
+"in.th\0"
+"moseushi.hokkaido.jp\0sn\xc3\xa5sa.no\0"
+"nankoku.kochi.jp\0"
+"orland.no\0"
+"miyoshi.tokushima.jp\0larvik.no\0ks.us\0"
+"loppa.no\0"
+"*.kobe.jp\0childrensgarden.museum\0"
+"sakai.ibaraki.jp\0\xd8\xa7\xd9\x84\xd9\x8a\xd9\x85\xd9\x86\0"
+"in.ua\0"
+"inf.br\0\xe7\xbd\x91\xe7\xb5\xa1.hk\0h\xc3\xb8ylandet.no\0skedsmo.no\0"
+"dynalias.org\0"
+"kurobe.toyama.jp\0gol.no\0"
+"not.br\0shingu.wakayama.jp\0"
+"nakai.kanagawa.jp\0cc.de.us\0"
+"azumino.nagano.jp\0rade.no\0"
+"dyndns-at-work.com\0"
+"travel.pl\0"
+"katsuura.chiba.jp\0"
+"oiso.kanagawa.jp\0"
+"it.ao\0cim.br\0in.us\0"
+"bamble.no\0"
+"inf.cu\0mimata.miyazaki.jp\0"
+"bo.telemark.no\0"
+"karasjohka.no\0"
+"hanyu.saitama.jp\0artanddesign.museum\0"
+"padua.it\0"
+"health.museum\0"
+"edu\0aseral.no\0"
+"carbonia-iglesias.it\0nikaho.akita.jp\0"
+"r\xc3\xb8ros.no\0"
+"matsudo.chiba.jp\0yoshinogari.saga.jp\0"
+"\xc3\xb8ystre-slidre.no\0k.se\0"
+"bodo.no\0holmestrand.no\0vestvagoy.no\0"
+"horokanai.hokkaido.jp\0matsue.shimane.jp\0"
+"oyodo.nara.jp\0dnsalias.net\0"
+"fr\xc3\xb8ya.no\0"
+"monzaebrianza.it\0katagami.akita.jp\0istmein.de\0"
+"tochigi.tochigi.jp\0lea\xc5\x8bgaviika.no\0komforb.se\0"
+"design.museum\0"
+"hanamigawa.chiba.jp\0"
+"zj.cn\0nahari.kochi.jp\0discovery.museum\0"
+"carraramassa.it\0elk.pl\0"
+"cc.pa.us\0"
+"kaga.ishikawa.jp\0tokamachi.niigata.jp\0"
+"br.it\0cb.it\0"
+"plc.ly\0agrinet.tn\0"
+"gs.fm.no\0surgut.ru\0"
+"usa.museum\0pp.ru\0pp.se\0"
+"lib.la.us\0"
+"go.ci\0\xe8\x87\xba\xe7\x81\xa3\0"
+"rodoy.no\0"
+"niikappu.hokkaido.jp\0"
+"kure.hiroshima.jp\0fudai.iwate.jp\0maizuru.kyoto.jp\0"
+"passenger-association.aero\0iveland.no\0"
+"go.cr\0takayama.nagano.jp\0"
+"game.tw\0"
+"tvedestrand.no\0chernovtsy.ua\0"
+"entertainment.aero\0trader.aero\0"
+"shikaoi.hokkaido.jp\0komagane.nagano.jp\0travel.tt\0"
+"katsushika.tokyo.jp\0"
+"suita.osaka.jp\0"
+"nasushiobara.tochigi.jp\0za.com\0"
+"q.bg\0cody.museum\0"
+"esp.br\0sagamihara.kanagawa.jp\0"
+"pp.ua\0"
+"andriatranibarletta.it\0mikawa.yamagata.jp\0naustdal.no\0"
+"takinoue.hokkaido.jp\0gs.oslo.no\0"
+"shiroishi.miyagi.jp\0community.museum\0bievat.no\0"
+"from-ia.com\0"
+"rep.kp\0luxembourg.museum\0"
+"sk.ca\0"
+"vic.gov.au\0"
+"yamanashi.yamanashi.jp\0hemne.no\0"
+"ulsan.kr\0k12.ky.us\0"
+"is-a-caterer.com\0"
+"kozagawa.wakayama.jp\0"
+"capebreton.museum\0"
+"is-a-musician.com\0"
+"kaita.hiroshima.jp\0"
+"seto.aichi.jp\0"
+"yoshino.nara.jp\0"
+"muenster.museum\0os\xc3\xb8yro.no\0"
+"li.it\0"
+"hokksund.no\0"
+"snz.ru\0"
+"hannan.osaka.jp\0brumunddal.no\0"
+"fukushima.jp\0"
+"tgory.pl\0kv.ua\0"
+"hachinohe.aomori.jp\0media.museum\0"
+"hidaka.saitama.jp\0"
+"oto.fukuoka.jp\0"
+"kozaki.chiba.jp\0"
+"sandnessjoen.no\0"
+"christiansburg.museum\0"
+"res.aero\0"
+"ashiya.hyogo.jp\0"
+"soeda.fukuoka.jp\0"
+"nuernberg.museum\0"
+"sakhalin.ru\0"
+"go.id\0soundandvision.museum\0"
+"tajimi.gifu.jp\0tonosho.kagawa.jp\0"
+"from-ut.com\0"
+"aki.kochi.jp\0"
+"niiza.saitama.jp\0"
+"stalowa-wola.pl\0"
+"from-ne.com\0"
+"tado.mie.jp\0abeno.osaka.jp\0bergbau.museum\0dallas.museum\0"
+"inf.mk\0cc.tn.us\0"
+"onomichi.hiroshima.jp\0saga.saga.jp\0"
+"go.it\0motoyama.kochi.jp\0"
+"iwakura.aichi.jp\0"
+"kashihara.nara.jp\0inagi.tokyo.jp\0"
+"\xe7\xbd\x91\xe7\xbb\x9c.cn\0judaica.museum\0"
+"ilawa.pl\0"
+"lib.pr.us\0"
+"buryatia.ru\0"
+"go.jp\0"
+"snasa.no\0"
+"otaki.chiba.jp\0"
+"mielno.pl\0"
+"tachiarai.fukuoka.jp\0settsu.osaka.jp\0"
+"hikari.yamaguchi.jp\0"
+"cc.as.us\0"
+"cc.ri.us\0"
+"jobs\0"
+"mail.pl\0"
+"santacruz.museum\0n.se\0"
+"hapmir.no\0"
+"go.kr\0k12.sc.us\0"
+"lib.ny.us\0"
+"nuoro.it\0"
+"sogndal.no\0sosnowiec.pl\0"
+"asaminami.hiroshima.jp\0"
+"isernia.it\0froland.no\0vang.no\0"
+"nanporo.hokkaido.jp\0"
+"dyndns-wiki.com\0"
+"bari.it\0bahcavuotna.no\0"
+"panama.museum\0santafe.museum\0"
+"ce.it\0shirakawa.gifu.jp\0"
+"aircraft.aero\0ptz.ru\0iamallama.com\0"
+"takayama.gunma.jp\0"
+"ama.aichi.jp\0"
+"yakumo.shimane.jp\0taito.tokyo.jp\0"
+"cmw.ru\0"
+"res.in\0"
+"hb.cn\0tohnosho.chiba.jp\0kashiba.nara.jp\0soni.nara.jp\0ostroleka.pl\0"
+"aogashima.tokyo.jp\0"
+"minano.saitama.jp\0lur\xc3\xb8y.no\0cc.mo.us\0"
+"gjerstad.no\0"
+"yashiro.hyogo.jp\0hitachiomiya.ibaraki.jp\0hakone.kanagawa.jp\0watch-and-clock.museum\0"
+"pv.it\0toyohashi.aichi.jp\0okuizumo.shimane.jp\0"
+"shop.ht\0olawa.pl\0"
+"shop.hu\0sukagawa.fukushima.jp\0marugame.kagawa.jp\0v\xc3\xa5g\xc3\xa5.no\0"
+"\xe7\xb5\x84\xe7\xbb\x87.hk\0usantiques.museum\0udm.ru\0"
+"railway.museum\0"
+"t.bg\0tsubetsu.hokkaido.jp\0kariwa.niigata.jp\0tsurugashima.saitama.jp\0"
+"etc.br\0"
+"obira.hokkaido.jp\0ide.kyoto.jp\0educational.museum\0bydgoszcz.pl\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"
+"langevag.no\0"
+"tinn.no\0"
+"\xe7\xbd\x91\xe7\xbb\x9c.hk\0"
+"ens.tn\0"
+"vercelli.it\0"
+"ac.ae\0"
+"newspaper.museum\0"
+"potenza.it\0"
+"komatsushima.tokushima.jp\0"
+"gs.rl.no\0"
+"nakayama.yamagata.jp\0abu.yamaguchi.jp\0"
+"lind\xc3\xa5s.no\0pila.pl\0"
+"ac.at\0tamatsukuri.ibaraki.jp\0"
+"ac.be\0"
+"durham.museum\0"
+"sn.cn\0kadena.okinawa.jp\0atm.pl\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"
+"aichi.jp\0"
+"mihama.aichi.jp\0"
+"mizumaki.fukuoka.jp\0serveftp.net\0"
+"portland.museum\0from-in.com\0"
+"hagebostad.no\0"
+"nara.jp\0go.pw\0"
+"sa.edu.au\0ukiha.fukuoka.jp\0"
+"*.ar\0nyny.museum\0"
+"media.aero\0*.bd\0"
+"ine.kyoto.jp\0bu.no\0"
+"br.com\0"
+"ac.ci\0"
+"onagawa.miyagi.jp\0"
+"nt.au\0"
+"ac.cn\0from-tx.com\0"
+"*.bn\0"
+"sor-odal.no\0"
+"ac.cr\0ikeda.gifu.jp\0"
+"sobetsu.hokkaido.jp\0culture.museum\0zgrad.ru\0"
+"tadotsu.kagawa.jp\0"
+"machida.tokyo.jp\0chernigov.ua\0"
+"kembuchi.hokkaido.jp\0from-mi.com\0"
+"sor-aurdal.no\0"
+"pippu.hokkaido.jp\0"
+"nt.ca\0"
+"mitoyo.kagawa.jp\0"
+"*.ck\0tsuwano.shimane.jp\0gs.mr.no\0"
+"toyo.kochi.jp\0"
+"ky.us\0"
+"tranoy.no\0"
+"br\xc3\xb8nn\xc3\xb8ysund.no\0"
+"hemsedal.no\0"
+"rendalen.no\0"
+"*.cy\0utsira.no\0"
+"takasu.hokkaido.jp\0"
+"correios-e-telecomunica\xc3\xa7\xc3\xb5""es.museum\0"
+"tsuyama.okayama.jp\0beauxarts.museum\0"
+"gr.it\0"
+"firenze.it\0misugi.mie.jp\0and.museum\0"
+"go.th\0"
+"semboku.akita.jp\0"
+"tokushima.tokushima.jp\0go.tj\0"
+"buzen.fukuoka.jp\0"
+"land-4-sale.us\0"
+"nyc.museum\0"
+"mobi\0"
+"gr.jp\0"
+"raisa.no\0"
+"go.ug\0"
+"*.er\0go.tz\0"
+"*.et\0"
+"vc.it\0h\xc3\xa1pmir.no\0"
+"*.fj\0"
+"scientist.aero\0*.fk\0yamato.kumamoto.jp\0modalen.no\0stargard.pl\0"
+"ac.gn\0sumida.tokyo.jp\0"
+"historisches.museum\0"
+"kvits\xc3\xb8y.no\0"
+"store.nf\0"
+"yoka.hyogo.jp\0omachi.nagano.jp\0"
+"ch.it\0"
+"overhalla.no\0likescandy.com\0"
+"www.ro\0se.net\0"
+"nakamichi.yamanashi.jp\0"
+"adm.br\0dnipropetrovsk.ua\0"
+"vindafjord.no\0k12.ak.us\0is-a-rockstar.com\0"
+"ac.id\0minamiechizen.fukui.jp\0"
+"*.gu\0children.museum\0"
+"tsu.mie.jp\0"
+"fr\xc3\xa6na.no\0"
+"gliwice.pl\0"
+"he.cn\0aid.pl\0"
+"ac.im\0kishiwada.osaka.jp\0"
+"ac.in\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"
+"ac.ir\0"
+"\xe5\x80\x8b\xe4\xba\xba.hk\0lucca.it\0odessa.ua\0"
+"massa-carrara.it\0"
+"happou.akita.jp\0colonialwilliamsburg.museum\0k12.nv.us\0"
+"w.bg\0lib.in.us\0"
+"*.il\0"
+"scotland.museum\0"
+"ac.jp\0"
+"shimoda.shizuoka.jp\0is-by.us\0"
+"kui.hiroshima.jp\0"
+"us.na\0"
+"reggio-emilia.it\0asahi.ibaraki.jp\0saintlouis.museum\0"
+"kashima.saga.jp\0arboretum.museum\0"
+"bandai.fukushima.jp\0"
+"chikuhoku.nagano.jp\0hayakawa.yamanashi.jp\0"
+"*.jm\0namikata.ehime.jp\0haibara.shizuoka.jp\0bytom.pl\0"
+"furano.hokkaido.jp\0zushi.kanagawa.jp\0"
+"\xe7\xbb\x84\xe7\xb9\x94.hk\0*.sendai.jp\0"
+"ulan-ude.ru\0"
+"ac.kr\0beardu.no\0"
+"lib.gu.us\0"
+"*.ke\0"
+"*.kh\0"
+"vinnica.ua\0"
+"takahata.yamagata.jp\0"
+"honjyo.akita.jp\0scienceandindustry.museum\0"
+"tokorozawa.saitama.jp\0"
+"meraker.no\0"
+"katsuragi.nara.jp\0h\xc3\xa1mm\xc3\xa1rfeasta.no\0bialystok.pl\0"
+"ac.ma\0"
+"lo.it\0akagi.shimane.jp\0"
+"tawaramoto.nara.jp\0obanazawa.yamagata.jp\0ac.me\0"
+"genoa.it\0"
+"iz.hr\0*.kw\0"
+"og.ao\0yakutia.ru\0"
+"taku.saga.jp\0"
+"heguri.nara.jp\0"
+"mansions.museum\0folldal.no\0omasvuotna.no\0"
+"cherkassy.ua\0"
+"trainer.aero\0"
+"ac.mu\0"
+"cc.wi.us\0"
+"ac.mw\0ac.ng\0"
+"cartoonart.museum\0"
+"*.mm\0"
+"paris.museum\0"
+"can.museum\0"
+"juedisches.museum\0from-vt.com\0"
+"*.mt\0"
+"narita.chiba.jp\0fukushima.hokkaido.jp\0"
+"awaji.hyogo.jp\0"
+"lodi.it\0is-uberleet.com\0"
+"*.ni\0"
+"*.mz\0"
+"engerdal.no\0"
+"square.museum\0"
+"saroma.hokkaido.jp\0neues.museum\0"
+"reggiocalabria.it\0"
+"*.np\0ac.pa\0"
+"mb.ca\0seika.kyoto.jp\0"
+"higashiagatsuma.gunma.jp\0iizuna.nagano.jp\0nesoddtangen.no\0"
+"nakatane.kagoshima.jp\0"
+"nt.no\0"
+"tendo.yamagata.jp\0brandywinevalley.museum\0"
+"*.nz\0"
+"kunitachi.tokyo.jp\0"
+"b\xc3\xa6rum.no\0"
+"*.om\0tuva.ru\0"
+"balat.no\0"
+"sue.fukuoka.jp\0"
+"iwata.shizuoka.jp\0tysvar.no\0ac.pr\0"
+"skodje.no\0"
+"ama.shimane.jp\0illustration.museum\0idrett.no\0"
+"better-than.tv\0"
+"ashiya.fukuoka.jp\0leksvik.no\0"
+"*.pg\0wloclawek.pl\0t.se\0"
+"mie.jp\0"
+"kawamata.fukushima.jp\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"
+"is-a-chef.org\0"
+"guernsey.museum\0"
+"saku.nagano.jp\0"
+"minamisanriku.miyagi.jp\0"
+"penza.ru\0"
+"ta.it\0"
+"kawanabe.kagoshima.jp\0"
+"ac.rs\0"
+"okayama.okayama.jp\0kamiizumi.saitama.jp\0annefrank.museum\0"
+"association.aero\0gushikami.okinawa.jp\0ac.ru\0ac.se\0"
+"zentsuji.kagawa.jp\0"
+"ac.rw\0"
+"nagahama.shiga.jp\0narusawa.yamanashi.jp\0"
+"telekommunikation.museum\0"
+"crew.aero\0"
+"services.aero\0"
+"gx.cn\0konan.shiga.jp\0"
+"misaki.osaka.jp\0"
+"fukui.fukui.jp\0toya.hokkaido.jp\0toyonaka.osaka.jp\0"
+"sugito.saitama.jp\0"
+"cc.ne.us\0"
+"hornindal.no\0"
+"noda.iwate.jp\0"
+"wakkanai.hokkaido.jp\0nt.ro\0"
+"ac.th\0"
+"ringsaker.no\0"
+"ac.sz\0ac.tj\0"
+"arq.br\0nnov.ru\0"
+"itami.hyogo.jp\0kashiwazaki.niigata.jp\0"
+"z.bg\0"
+"eti.br\0showa.gunma.jp\0unnan.shimane.jp\0sos.pl\0"
+"rishiri.hokkaido.jp\0"
+"aso.kumamoto.jp\0"
+"store.ro\0"
+"otofuke.hokkaido.jp\0"
+"*.sv\0ac.ug\0"
+"ae.org\0"
+"iida.nagano.jp\0kitanakagusuku.okinawa.jp\0ac.tz\0teaches-yoga.com\0"
+"shimokitayama.nara.jp\0arakawa.saitama.jp\0"
+"og.it\0joboji.iwate.jp\0kainan.tokushima.jp\0"
+"ski.no\0"
+"lib.ee\0"
+"itakura.gunma.jp\0sor-fron.no\0*.tr\0"
+"vf.no\0"
+"astronomy.museum\0"
+"takatsuki.osaka.jp\0"
+"store.st\0"
+"rokunohe.aomori.jp\0"
+"kiyokawa.kanagawa.jp\0od.ua\0"
+"kvalsund.no\0"
+"ashoro.hokkaido.jp\0utazu.kagawa.jp\0ibestad.no\0*.uk\0"
+"urbinopesaro.it\0lyngdal.no\0ac.vn\0"
+"koshu.yamanashi.jp\0michigan.museum\0r\xc3\xb8mskog.no\0"
+"kitagata.saga.jp\0omsk.ru\0"
+"mashiko.tochigi.jp\0"
+"kofu.yamanashi.jp\0"
+"mb.it\0"
+"medizinhistorisches.museum\0"
+"inuyama.aichi.jp\0dnsalias.org\0is-a-chef.com\0"
+"otaki.nagano.jp\0austrheim.no\0"
+"ar.com\0"
+"0.bg\0anthropology.museum\0hvaler.no\0shop.pl\0"
+"lib.va.us\0"
+"fukusaki.hyogo.jp\0baths.museum\0culturalcenter.museum\0"
+"show.aero\0iraq.museum\0r\xc3\xa1hkker\xc3\xa1vju.no\0"
+"kamakura.kanagawa.jp\0toyono.osaka.jp\0"
+"vega.no\0"
+"sumoto.hyogo.jp\0film.museum\0"
+"kadogawa.miyazaki.jp\0garden.museum\0"
+"schokoladen.museum\0!nls.uk\0"
+"konskowola.pl\0"
+"legnica.pl\0"
+"caltanissetta.it\0wajima.ishikawa.jp\0"
+"mragowo.pl\0"
+"hattfjelldal.no\0"
+"kuwana.mie.jp\0"
+"tsuga.tochigi.jp\0"
+"itayanagi.aomori.jp\0v\xc3\xa5gan.no\0"
+"museumvereniging.museum\0zp.ua\0"
+"kawanehon.shizuoka.jp\0"
+"american.museum\0"
+"dolls.museum\0"
+"\xe0\xa6\xad\xe0\xa6\xbe\xe0\xa6\xb0\xe0\xa6\xa4\0"
+"hiroshima.jp\0betainabox.com\0"
+"kawaba.gunma.jp\0"
+"*.ye\0"
+"law.pro\0"
+"kin.okinawa.jp\0skj\xc3\xa5k.no\0"
+"is-a-conservative.com\0"
+"americana.museum\0k12.vi.us\0"
+"yamada.toyama.jp\0"
+"miasa.nagano.jp\0"
+"conf.au\0"
+"aure.no\0*.za\0"
+"oizumi.gunma.jp\0lodingen.no\0"
+"from-or.com\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"
+"fc.it\0farmequipment.museum\0w.se\0"
+"vi.it\0"
+"archaeological.museum\0moss.no\0"
+"khakassia.ru\0*.zm\0isteingeek.de\0"
+"izumi.kagoshima.jp\0imageandsound.museum\0"
+"suisse.museum\0gu.us\0"
+"tajiri.osaka.jp\0"
+"*.zw\0"
+"kiyosato.hokkaido.jp\0"
+"takaharu.miyazaki.jp\0"
+"takanabe.miyazaki.jp\0"
+"paroch.k12.ma.us\0"
+"hatsukaichi.hiroshima.jp\0"
+"cn.it\0"
+"ranzan.saitama.jp\0"
+"murmansk.ru\0"
+"hamburg.museum\0"
+"es.kr\0heroy.nordland.no\0"
+"barletta-trani-andria.it\0lib.me.us\0"
+"hob\xc3\xb8l.no\0"
+"ck.ua\0"
+"gov\0"
+"city.hu\0fhs.no\0"
+"hk.cn\0"
+"ascolipiceno.it\0motorcycle.museum\0skanland.no\0"
+"qld.edu.au\0"
+"cc.nh.us\0"
+"gub.uy\0"
+"trani-andria-barletta.it\0birkenes.no\0is-a-cpa.com\0"
+"trapani.it\0"
+"art.br\0kibichuo.okayama.jp\0tananger.no\0"
+"otama.fukushima.jp\0kiho.mie.jp\0"
+"nose.osaka.jp\0nakagawa.tokushima.jp\0"
+"is-slick.com\0"
+"assn.lk\0\xe5\x95\x86\xe6\xa5\xad.tw\0"
+"from-ga.com\0"
+"\xe6\x96\xb0\xe5\x8a\xa0\xe5\x9d\xa1\0"
+"cc.ks.us\0"
+"kamagaya.chiba.jp\0grp.lk\0"
+"hioki.kagoshima.jp\0"
+"nagato.yamaguchi.jp\0"
+"control.aero\0gliding.aero\0tsumagoi.gunma.jp\0nishitosa.kochi.jp\0"
+"kitadaito.okinawa.jp\0"
+"art.do\0zoological.museum\0"
+"toyako.hokkaido.jp\0plo.ps\0"
+"cq.cn\0kadoma.osaka.jp\0basel.museum\0"
+"osakikamijima.hiroshima.jp\0"
+"elverum.no\0cc.in.us\0"
+"shingu.hyogo.jp\0"
+"art.dz\0"
+"avoues.fr\0lu.it\0me.it\0nerima.tokyo.jp\0"
+"military.museum\0"
+"satosho.okayama.jp\0"
+"st.no\0"
+"3.bg\0yamagata.ibaraki.jp\0humanities.museum\0"
+"championship.aero\0"
+"does-it.net\0"
+"higashi.fukushima.jp\0"
+"taxi.br\0"
+"kharkiv.ua\0"
+"ushuaia.museum\0"
+"kumano.mie.jp\0"
+"unsa.ba\0shimamoto.osaka.jp\0wodzislaw.pl\0"
+"yokosuka.kanagawa.jp\0is-leet.com\0"
+"jevnaker.no\0"
+"minamiashigara.kanagawa.jp\0"
+"ryugasaki.ibaraki.jp\0"
+"tsuno.kochi.jp\0flora.no\0kuzbass.ru\0"
+"nesna.no\0"
+"yachiyo.chiba.jp\0civilwar.museum\0"
+"matsumae.hokkaido.jp\0"
+"kumatori.osaka.jp\0namsskogan.no\0"
+"knowsitall.info\0"
+"linz.museum\0"
+"sakuragawa.ibaraki.jp\0"
+"toride.ibaraki.jp\0traeumtgerade.de\0"
+"store.bb\0jolster.no\0"
+"pilots.museum\0"
+"asia\0"
+"kustanai.ru\0"
+"art.ht\0"
+"pubol.museum\0"
+"england.museum\0"
+"shimizu.shizuoka.jp\0kartuzy.pl\0"
+"volgograd.ru\0"
+"tateyama.toyama.jp\0"
+"augustow.pl\0"
+"askoy.no\0z.se\0"
+"obama.nagasaki.jp\0k12.ca.us\0"
+"higashine.yamagata.jp\0wales.museum\0"
+"kiwa.mie.jp\0izena.okinawa.jp\0"
+"js.cn\0kanna.gunma.jp\0from-tn.com\0"
+"brescia.it\0"
+"aip.ee\0otoineppu.hokkaido.jp\0"
+"sakyo.kyoto.jp\0kami.miyagi.jp\0"
+"serveftp.org\0"
+"miyama.fukuoka.jp\0hakui.ishikawa.jp\0"
+"adv.br\0"
+"exeter.museum\0"
+"nichinan.tottori.jp\0vi.us\0"
+"enna.it\0"
+"flor\xc3\xb8.no\0"
+"cn.ua\0"
+"from-co.net\0"
+"hn.cn\0"
+"andria-barletta-trani.it\0"
+"himeshima.oita.jp\0"
+"boleslawiec.pl\0"
+"nishiarita.saga.jp\0"
+"al.it\0sydney.museum\0"
+"washingtondc.museum\0"
+"iglesiascarbonia.it\0kanuma.tochigi.jp\0"
+"educator.aero\0"
+"from-ny.net\0"
+"watchandclock.museum\0"
+"frog.museum\0"
+"takamori.kumamoto.jp\0"
+"is-a-blogger.com\0"
+"habmer.no\0"
+"consulting.aero\0"
+"ogawa.saitama.jp\0"
+"fi.cr\0"
+"hanggliding.aero\0"
+"minamiise.mie.jp\0\xc3\xa5lg\xc3\xa5rd.no\0"
+"ueda.nagano.jp\0lebtimnetz.de\0"
+"karelia.ru\0"
+"zlg.br\0koge.tottori.jp\0"
+"kvitsoy.no\0"
+"vagsoy.no\0"
+"time.no\0"
+"toyotomi.hokkaido.jp\0"
+"tj.cn\0nes.akershus.no\0"
+"med.br\0fujioka.gunma.jp\0"
+"imakane.hokkaido.jp\0"
+"yamakita.kanagawa.jp\0"
+"okinoshima.shimane.jp\0"
+"gs.jan-mayen.no\0"
+"kasugai.aichi.jp\0"
+"texas.museum\0"
+"tsugaru.aomori.jp\0miyawaka.fukuoka.jp\0otsuki.yamanashi.jp\0"
+"6.bg\0suedtirol.it\0"
+"koya.wakayama.jp\0"
+"shikokuchuo.ehime.jp\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"
-"kg\0"
-"mo-i-rana.no\0"
-"gov.dz\0ki\0"
+"kameyama.mie.jp\0missile.museum\0"
+"fhv.se\0hu.com\0"
+"art.pl\0"
+"tamano.okayama.jp\0"
+"taketa.oita.jp\0"
+"\xc3\xb8yer.no\0oystre-slidre.no\0rad\xc3\xb8y.no\0"
+"me.tz\0"
+"takahagi.ibaraki.jp\0steam.museum\0"
+"technology.museum\0"
+"med.ec\0asakuchi.okayama.jp\0"
+"med.ee\0stavanger.no\0merseine.nu\0"
+"al.no\0porsangu.no\0"
+"stavern.no\0me.us\0"
+"lib.ct.us\0"
+"emp.br\0tr\xc3\xa6na.no\0"
+"kayabe.hokkaido.jp\0"
+"sekigahara.gifu.jp\0"
+"udine.it\0shacknet.nu\0"
+"presse.km\0posts-and-telecommunications.museum\0"
+"is-a-chef.net\0"
+"gokase.miyazaki.jp\0"
+"choshi.chiba.jp\0podhale.pl\0"
+"archaeology.museum\0"
+"localhistory.museum\0"
+"krasnoyarsk.ru\0"
+"minamidaito.okinawa.jp\0yorkshire.museum\0"
+"lavangen.no\0"
+"oyamazaki.kyoto.jp\0"
+"nagasaki.nagasaki.jp\0"
+"\xc3\xa1laheadju.no\0"
+"kameoka.kyoto.jp\0"
+"bielawa.pl\0\xd8\xa7\xd9\x84\xd8\xac\xd8\xb2\xd8\xa7\xd8\xa6\xd8\xb1\0"
+"\xd7\x99\xd7\xa8\xd7\x95\xd7\xa9\xd7\x9c\xd7\x99\xd7\x9d.museum\0art.sn\0from-pr.com\0"
+"takata.fukuoka.jp\0dielddanuorri.no\0"
+"fujisato.akita.jp\0association.museum\0"
+"gouv.fr\0fi.it\0presse.ml\0"
+"nakagawa.hokkaido.jp\0"
+"tanabe.wakayama.jp\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"
-"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"
-"ms\0nc\0"
-"valer.hedmark.no\0"
-"mu\0ne\0"
-"mv\0nf\0"
-"mw\0"
-"mx\0nord-odal.no\0jur.pro\0"
-"my\0"
-"gov.hk\0name.hr\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"
-"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"
-"tg\0"
-"co.ae\0venezia.it\0gov.my\0th\0"
-"!pref.ehime.jp\0sy\0"
-"co.ag\0lewismiller.museum\0ostrowiec.pl\0sz\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"
-"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"
-"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"
+"dyr\xc3\xb8y.no\0"
+"takikawa.hokkaido.jp\0urakawa.hokkaido.jp\0"
+"shibecha.hokkaido.jp\0"
+"sand\xc3\xb8y.no\0"
+"collection.museum\0"
+"kusatsu.gunma.jp\0"
+"pulawy.pl\0"
+"monticello.museum\0"
+"med.ht\0"
+"ct.it\0otago.museum\0alaheadju.no\0"
+"omotego.fukushima.jp\0name\0"
+"balsan.it\0"
+"ogi.saga.jp\0"
+"okawa.fukuoka.jp\0"
+"norfolk.museum\0n\xc3\xa6r\xc3\xb8y.no\0"
"gouv.ht\0"
-"!city.okayama.jp\0co.kr\0"
-"co.lc\0"
-"sa.it\0"
-"donna.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"
+"kaminokawa.tochigi.jp\0"
+"hammerfest.no\0"
+"hiraya.nagano.jp\0settlement.museum\0"
+"toei.aichi.jp\0santabarbara.museum\0"
+"\xc3\xb8rsta.no\0"
+"ao.it\0sano.tochigi.jp\0jondal.no\0"
+"re.it\0"
+"kamitsue.oita.jp\0"
+"sola.no\0"
+"laspezia.it\0luzern.museum\0salat.no\0stv.ru\0est-a-la-maison.com\0"
+"avocat.fr\0sm\xc3\xb8la.no\0"
+"bando.ibaraki.jp\0kawakami.nara.jp\0"
+"*.kawasaki.jp\0ngo.lk\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"
-"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"
+"sennan.osaka.jp\0"
+"greta.fr\0"
+"minamiuonuma.niigata.jp\0h\xc3\xa1""bmer.no\0"
+"sanuki.kagawa.jp\0"
+"cosenza.it\0kota.aichi.jp\0takko.aomori.jp\0"
+"gamvik.no\0"
+"kaneyama.fukushima.jp\0cc.ky.us\0"
+"stjohn.museum\0"
+"habikino.osaka.jp\0askim.no\0"
+"gouv.ci\0musashimurayama.tokyo.jp\0"
+"gs.bu.no\0"
+"teshikaga.hokkaido.jp\0al.us\0"
+"re.kr\0"
+"kyotamba.kyoto.jp\0minnesota.museum\0"
+"ise.mie.jp\0"
+"med.ly\0"
+"safety.aero\0kyonan.chiba.jp\0koga.ibaraki.jp\0skedsmokorset.no\0"
+"!www.ck\0sherbrooke.museum\0"
+"\xe7\xb6\xb2\xe7\xb5\xa1.cn\0"
+"b\xc3\xa1jddar.no\0"
+"fuchu.toyama.jp\0conf.lv\0"
+"yonabaru.okinawa.jp\0"
+"9.bg\0ujiie.tochigi.jp\0"
+"numata.hokkaido.jp\0luroy.no\0sortland.no\0"
+"yamamoto.miyagi.jp\0"
+"morimachi.shizuoka.jp\0"
+"iijima.nagano.jp\0ichikawamisato.yamanashi.jp\0upow.gov.pl\0"
+"losangeles.museum\0"
+"club.aero\0"
+"kommunalforbund.se\0"
+"drangedal.no\0"
+"ngo.ph\0"
+"tur.br\0"
+"ngo.pl\0"
+"nishinoomote.kagoshima.jp\0"
+"lib.dc.us\0"
+"chihayaakasaka.osaka.jp\0eastafrica.museum\0"
+"leitungsen.de\0"
+"aurland.no\0"
+"misawa.aomori.jp\0med.pa\0"
+"inabe.mie.jp\0"
+"laquila.it\0"
+"tm.fr\0toon.ehime.jp\0"
+"kusatsu.shiga.jp\0"
+"med.pl\0"
+"hofu.yamaguchi.jp\0"
+"mamurogawa.yamagata.jp\0vinnytsia.ua\0"
+"miyota.nagano.jp\0"
+"parachuting.aero\0"
+"suli.hu\0"
+"yasugi.shimane.jp\0"
+"johana.toyama.jp\0"
+"yaita.tochigi.jp\0!nawras.om\0izhevsk.ru\0"
+"frei.no\0"
+"kumenan.okayama.jp\0kikugawa.shizuoka.jp\0"
+"vr.it\0"
+"ambulance.museum\0"
+"tsunan.niigata.jp\0matsubushi.saitama.jp\0"
+"ichiba.tokushima.jp\0"
+"tm.hu\0"
+"\xe7\xb6\xb2\xe7\xb5\xa1.hk\0"
+"id.au\0perugia.it\0"
+"gotemba.shizuoka.jp\0fla.no\0"
+"kamikoani.akita.jp\0sec.ps\0"
+"med.sa\0"
+"skole.museum\0"
+"airport.aero\0"
+"med.sd\0"
+"sibenik.museum\0"
+"sondre-land.no\0"
+"jpn.com\0"
+"shimamaki.hokkaido.jp\0"
+"owariasahi.aichi.jp\0utashinai.hokkaido.jp\0hotel.tz\0"
+"namie.fukushima.jp\0komi.ru\0"
+"malvik.no\0lib.nj.us\0"
+"k-uralsk.ru\0"
+"xz.cn\0lukow.pl\0"
+"iiyama.nagano.jp\0steiermark.museum\0radom.pl\0blogspot.co.at\0"
+"saltdal.no\0vladivostok.ru\0"
+"int\0kira.aichi.jp\0"
+"flog.br\0shiranuka.hokkaido.jp\0nsk.ru\0"
+"ar.it\0"
+"tono.iwate.jp\0fujiidera.osaka.jp\0"
+"tm.km\0"
+"ct.us\0"
+"kuchinotsu.nagasaki.jp\0"
+"shinto.gunma.jp\0"
+"trysil.no\0"
+"saves-the-whales.com\0"
+"off.ai\0"
+"county.museum\0"
+"tank.museum\0"
+"is-a-hard-worker.com\0"
+"pc.it\0"
+"tm.mc\0kyiv.ua\0"
+"onojo.fukuoka.jp\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"
+"onga.fukuoka.jp\0"
+"a.bg\0vlog.br\0lib.id.us\0"
+"kalmykia.ru\0"
+"alto-adige.it\0"
+"shibukawa.gunma.jp\0"
+"toba.mie.jp\0"
+"misato.shimane.jp\0"
+"kitahata.saga.jp\0"
+"for-more.biz\0"
+"siellak.no\0"
+"la-spezia.it\0"
+"mn.it\0seljord.no\0"
+"mihama.chiba.jp\0"
+"miyako.fukuoka.jp\0"
+"fujinomiya.shizuoka.jp\0moka.tochigi.jp\0"
+"cultural.museum\0"
+"tm.no\0"
+"kamisato.saitama.jp\0magadan.ru\0"
+"mk.ua\0"
+"\xe0\xae\x87\xe0\xae\xa8\xe0\xaf\x8d\xe0\xae\xa4\xe0\xae\xbf\xe0\xae\xaf\xe0\xae\xbe\0"
+"motobu.okinawa.jp\0"
+"r\xc3\xb8yrvik.no\0is-a-geek.com\0"
+"shizukuishi.iwate.jp\0omura.nagasaki.jp\0"
+"rec.br\0kai.yamanashi.jp\0"
+"monza.it\0"
+"teo.br\0pescara.it\0"
+"yugawa.fukushima.jp\0circus.museum\0kirkenes.no\0"
+"air-surveillance.aero\0br\xc3\xb8nn\xc3\xb8y.no\0roros.no\0rnd.ru\0"
+"pharmacy.museum\0gs.nt.no\0"
+"bmd.br\0takizawa.iwate.jp\0bunkyo.tokyo.jp\0"
+"motegi.tochigi.jp\0youth.museum\0"
+"gob.bo\0tamba.hyogo.jp\0"
+"lib.tx.us\0"
+"kitashiobara.fukushima.jp\0"
+"rec.co\0kautokeino.no\0"
+"baseball.museum\0dinosaur.museum\0tm.pl\0"
+"grane.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"
-"rec.br\0"
-"q.bg\0"
-"!nawras.om\0"
-"hammarfeasta.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"
-"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"
-"uy.com\0"
-"kristiansand.no\0"
-"sd.cn\0trento.it\0"
-"muncie.museum\0"
-"berg.no\0meldal.no\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"
-"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"
+"eidskog.no\0lanbib.se\0"
+"gob.cl\0kristiansund.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"
+"iwate.iwate.jp\0"
+"hotel.lk\0"
+"omiya.saitama.jp\0"
+"tanagura.fukushima.jp\0"
+"perm.ru\0"
+"\xc3\xb8rland.no\0"
+"western.museum\0from-va.com\0"
+"game-server.cc\0"
+"gob.do\0hita.oita.jp\0"
+"ashibetsu.hokkaido.jp\0zgorzelec.pl\0"
+"gob.ec\0"
+"blogspot.co.il\0"
+"barum.no\0"
+"bozen.it\0kotohira.kagawa.jp\0tm.ro\0gouv.rw\0"
+"varese.it\0hirokawa.fukuoka.jp\0"
+"ia.us\0k12.ct.us\0"
+"tm.se\0"
+"gouv.sn\0lib.or.us\0"
+"is-a-therapist.com\0"
+"pc.pl\0"
+"gob.es\0seiro.niigata.jp\0farsund.no\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"
-"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"
+"ueno.gunma.jp\0\xe7\xb6\xb2\xe8\xb7\xaf.tw\0"
+"ayase.kanagawa.jp\0kitaura.miyazaki.jp\0"
+"cz.it\0"
+"tp.it\0ikoma.nara.jp\0"
+"presse.ci\0konin.pl\0"
+"id.lv\0eigersund.no\0nore-og-uvdal.no\0"
+"yoshimi.saitama.jp\0fl.us\0"
+"id.ly\0"
+"dyndns.biz\0"
+"ohkura.yamagata.jp\0"
+"vlaanderen.museum\0"
+"surnadal.no\0"
+"urbino-pesaro.it\0"
+"evenassi.no\0from-ok.com\0"
+"tara.saga.jp\0hashimoto.wakayama.jp\0"
+"gob.gt\0"
+"hotel.hu\0gs.vf.no\0\xe0\xb6\xbd\xe0\xb6\x82\xe0\xb6\x9a\xe0\xb7\x8f\0"
+"groks-the.info\0"
+"!bl.uk\0"
+"ota.gunma.jp\0"
+"gob.hn\0kitagata.gifu.jp\0"
+"airline.aero\0simbirsk.ru\0"
+"katashina.gunma.jp\0hiraizumi.iwate.jp\0"
+"hirado.nagasaki.jp\0corporation.museum\0"
+"volyn.ua\0"
+"fujisawa.kanagawa.jp\0"
+"6bone.pl\0"
+"gifu.gifu.jp\0kami.kochi.jp\0"
+"molde.no\0"
+"essex.museum\0"
+"tatsuno.hyogo.jp\0"
+"cherkasy.ua\0"
+"sayo.hyogo.jp\0"
+"ar.us\0is-an-engineer.com\0"
+"k12.ma.us\0"
+"d.bg\0"
+"shimofusa.chiba.jp\0"
+"california.museum\0"
+"songdalen.no\0svelvik.no\0"
+"vic.au\0setouchi.okayama.jp\0"
+"presse.fr\0"
+"theater.museum\0"
+"leg.br\0harvestcelebration.museum\0"
+"mus.br\0"
+"towada.aomori.jp\0"
+"mochizuki.nagano.jp\0is-a-knight.org\0"
+"nsn.us\0"
+"lindas.no\0"
+"na.it\0"
+"paderborn.museum\0"
+"catanzaro.it\0wajiki.tokushima.jp\0"
+"gosen.niigata.jp\0busan.kr\0clinton.museum\0embaixada.st\0"
+"\xe7\xb6\xb2\xe7\xbb\x9c.hk\0jfk.museum\0"
+"hanamaki.iwate.jp\0mielec.pl\0"
+"casadelamoneda.museum\0hjelmeland.no\0"
+"cc.gu.us\0"
+"is-a-anarchist.com\0"
+"\xc3\xb8stre-toten.no\0is-a-geek.org\0"
+"katori.chiba.jp\0myphotos.cc\0"
+"hakata.fukuoka.jp\0"
+"oguchi.aichi.jp\0hachirogata.akita.jp\0"
+"eniwa.hokkaido.jp\0"
+"tottori.jp\0okagaki.fukuoka.jp\0mn.us\0"
+"bergamo.it\0noda.chiba.jp\0"
+"coastaldefence.museum\0rec.nf\0"
+"izu.shizuoka.jp\0"
+"karuizawa.nagano.jp\0"
+"tadaoka.osaka.jp\0"
+"gouv.km\0"
+"lunner.no\0"
+"topology.museum\0"
+"maibara.shiga.jp\0ostroda.pl\0"
+"takamori.nagano.jp\0"
+"larsson.museum\0"
+"obama.fukui.jp\0"
+"gob.mx\0amot.no\0"
+"hida.gifu.jp\0"
+"alessandria.it\0nagiso.nagano.jp\0"
+"shunan.yamaguchi.jp\0"
+"ogawara.miyagi.jp\0"
+"ritto.shiga.jp\0"
+"tsuru.yamanashi.jp\0lomza.pl\0"
+"f\xc3\xb8rde.no\0"
+"yokaichiba.chiba.jp\0"
+"\xc3\xb8ygarden.no\0pskov.ru\0"
+"chiba.jp\0"
+"irc.pl\0"
+"fr.it\0mo\xc3\xa5reke.no\0"
+"gen.in\0"
+"gouv.ml\0"
+"estate.museum\0"
+"id.us\0k12.de.us\0"
+"aomori.aomori.jp\0naturalhistorymuseum.museum\0lib.pa.us\0"
+"iwaki.fukushima.jp\0gob.pa\0"
+"vaapste.no\0"
+"kosei.shiga.jp\0"
+"shirosato.ibaraki.jp\0gob.pe\0from-la.net\0"
+"tj\xc3\xb8me.no\0"
+"viking.museum\0"
+"neat-url.com\0"
+"chelyabinsk.ru\0"
+"gob.pk\0"
+"selbu.no\0"
+"shari.hokkaido.jp\0"
+"gausdal.no\0"
+"edu.ac\0catania.it\0ureshino.mie.jp\0a.se\0"
+"ts.it\0is-a-celticsfan.org\0"
+"edu.af\0school.museum\0"
+"blogspot.co.uk\0"
+"k12.ar.us\0"
+"lib.mt.us\0lib.nd.us\0"
"edu.al\0"
-"edu.an\0\xc3\xa1k\xc5\x8boluokta.no\0v\xc3\xa5g\xc3\xa5.no\0"
-"v.bg\0"
+"edu.an\0entomology.museum\0gildeskal.no\0"
+"gallery.museum\0stuff-4-sale.us\0"
+"nesodden.no\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.az\0"
-"b\xc3\xb8mlo.no\0"
+"edu.bb\0"
+"iizuka.fukuoka.jp\0shikabe.hokkaido.jp\0"
+"edu.au\0"
+"rec.ro\0"
+"chosei.chiba.jp\0"
+"edu.bh\0msk.ru\0"
+"edu.bi\0sauherad.no\0"
+"edu.az\0ardal.no\0"
+"rn.it\0game-host.org\0"
"edu.bm\0"
-"edu.bo\0tyumen.ru\0"
+"histoire.museum\0"
+"edu.bo\0mihama.mie.jp\0"
+"massacarrara.it\0mobara.chiba.jp\0aogaki.hyogo.jp\0hatogaya.saitama.jp\0oe.yamagata.jp\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.bs\0"
+"edu.bt\0"
+"tamakawa.fukushima.jp\0uslivinghistory.museum\0waw.pl\0"
+"tas.edu.au\0edu.ci\0yura.wakayama.jp\0"
+"edu.bz\0niepce.museum\0baidar.no\0"
+"mod.gi\0"
+"vicenza.it\0gets-it.net\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.co\0glass.museum\0sciencecenter.museum\0"
+"tv.bo\0neyagawa.osaka.jp\0"
+"pi.it\0arakawa.tokyo.jp\0"
+"isahaya.nagasaki.jp\0iwatsuki.saitama.jp\0"
+"tv.br\0"
+"edu.cu\0"
+"gs.st.no\0"
+"g.bg\0kamisunagawa.hokkaido.jp\0"
+"omigawa.chiba.jp\0"
+"edu.dm\0so.gov.pl\0"
+"sa.au\0nakagawa.fukuoka.jp\0"
+"edu.do\0"
+"edu.ec\0suginami.tokyo.jp\0"
+"hashima.gifu.jp\0"
+"edu.ee\0"
+"edu.eg\0"
+"mt.it\0hadano.kanagawa.jp\0dontexist.net\0"
+"edu.dz\0pistoia.it\0hobol.no\0"
+"warabi.saitama.jp\0"
+"trading.aero\0nsw.au\0kagawa.jp\0hadsel.no\0"
+"ooshika.nagano.jp\0"
+"edu.es\0isa.kagoshima.jp\0n\xc3\xa5\xc3\xa5mesjevuemie.no\0"
+"priv.hu\0"
+"jewishart.museum\0"
+"meeres.museum\0trust.museum\0"
+"suifu.ibaraki.jp\0"
+"oarai.ibaraki.jp\0bomlo.no\0"
+"sa.cr\0tarnobrzeg.pl\0"
+"conference.aero\0"
+"kasaoka.okayama.jp\0"
+"gjovik.no\0her\xc3\xb8y.nordland.no\0sk\xc3\xa5nland.no\0"
+"edu.ge\0wazuka.kyoto.jp\0"
+"syzran.ru\0k12.id.us\0"
+"edu.gh\0wakasa.tottori.jp\0fylkesbibl.no\0snoasa.no\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"
+"nom.ad\0"
+"kamifurano.hokkaido.jp\0"
+"kitamoto.saitama.jp\0targi.pl\0"
+"nom.ag\0kuki.saitama.jp\0arendal.no\0"
+"edu.gn\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.gr\0akishima.tokyo.jp\0"
+"cc.vi.us\0"
+"edu.gt\0toyokawa.aichi.jp\0"
+"nikolaev.ua\0"
+"meiwa.mie.jp\0kaneyama.yamagata.jp\0"
+"sel.no\0"
+"edu.hk\0is-an-entertainer.com\0is-certified.com\0"
+"edu.hn\0burghof.museum\0"
+"contemporary.museum\0from-wa.com\0"
+"s\xc3\xb8r-varanger.no\0"
+"klepp.no\0"
+"edu.ht\0fedje.no\0!mediaphone.om\0"
+"krodsherad.no\0"
+"web.co\0"
+"messina.it\0fussa.tokyo.jp\0"
+"nom.br\0divtasvuodna.no\0"
+"war.museum\0porsgrunn.no\0"
+"amursk.ru\0"
+"edu.in\0ge.it\0komatsu.ishikawa.jp\0"
+"is-very-evil.org\0"
"edu.iq\0"
-"ontario.museum\0"
-"edu.is\0"
+"edu.is\0erimo.hokkaido.jp\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"
+"nom.co\0univ.sn\0k12.tx.us\0"
+"web.do\0"
+"minami.tokushima.jp\0"
+"jeju.kr\0"
+"soc.lk\0grimstad.no\0kharkov.ua\0gb.net\0"
+"ralingen.no\0"
+"edu.jo\0"
+"miura.kanagawa.jp\0kunigami.okinawa.jp\0priv.at\0"
+"time.museum\0"
+"kaho.fukuoka.jp\0d.se\0"
+"tv.it\0blogspot.co.nz\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"
+"ass.km\0"
+"k12.as.us\0"
+"lahppi.no\0\xe0\xae\x87\xe0\xae\xb2\xe0\xae\x99\xe0\xaf\x8d\xe0\xae\x95\xe0\xaf\x88\0"
+"edu.km\0lib.ms.us\0lib.nc.us\0"
+"izunokuni.shizuoka.jp\0edu.kn\0"
+"nakagusuku.okinawa.jp\0edu.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"
+"yashio.saitama.jp\0edu.lb\0"
+"nozawaonsen.nagano.jp\0edu.lc\0"
+"oguni.yamagata.jp\0jelenia-gora.pl\0gdansk.pl\0"
+"tobetsu.hokkaido.jp\0"
+"matsuura.nagasaki.jp\0"
+"nom.es\0daito.osaka.jp\0edu.ky\0"
+"ozu.ehime.jp\0edu.kz\0"
+"edu.lk\0"
+"sa.it\0"
+"lier.no\0"
+"cremona.it\0"
+"oamishirasato.chiba.jp\0edu.lr\0"
+"matsusaka.mie.jp\0edu.me\0"
+"minokamo.gifu.jp\0edu.lv\0divttasvuotna.no\0"
+"edu.mg\0"
+"nom.fr\0"
+"edu.ly\0"
+"club.tw\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"
+"edu.ml\0"
+"wakayama.wakayama.jp\0skierv\xc3\xa1.no\0"
+"edu.mn\0"
+"edu.mo\0saratov.ru\0cc.me.us\0"
+"vdonsk.ru\0"
+"from-ar.com\0"
+"zgora.pl\0"
+"usculture.museum\0mari.ru\0"
+"daiwa.hiroshima.jp\0"
"edu.mv\0"
-"lodi.it\0edu.mw\0edu.ng\0"
-"gwangju.kr\0edu.mx\0"
+"edu.mw\0edu.ng\0kaszuby.pl\0"
+"edu.mx\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"
-"edu.pe\0"
-"tana.no\0edu.pf\0"
+"usui.fukuoka.jp\0"
+"j.bg\0web.id\0"
+"sr.gov.pl\0"
+"s\xc3\xb8mna.no\0"
+"info.ht\0sauda.no\0"
+"info.hu\0"
+"edu.nr\0"
+"tv.na\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"
+"chuo.tokyo.jp\0"
+"s\xc3\xa1lat.no\0"
+"dazaifu.fukuoka.jp\0"
+"kawai.nara.jp\0"
+"eun.eg\0"
+"koshimizu.hokkaido.jp\0"
+"charter.aero\0"
+"thruhere.net\0"
+"usgarden.museum\0"
+"kanoya.kagoshima.jp\0edu.pa\0"
+"kihoku.ehime.jp\0kalisz.pl\0"
+"sakura.tochigi.jp\0"
+"agrar.hu\0edu.pe\0"
+"edu.pf\0"
"edu.ph\0"
-"nom.km\0"
-"travel.tt\0"
+"sd.cn\0oxford.museum\0"
"edu.pk\0"
-"experts-comptables.fr\0edu.pl\0bryansk.ru\0"
+"edu.pl\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"
+"arao.kumamoto.jp\0"
+"edu.qa\0"
+"kr.it\0nakijin.okinawa.jp\0edu.pr\0"
+"edu.ps\0"
+"fjaler.no\0edu.pt\0"
+"gotdns.org\0"
+"itoigawa.niigata.jp\0oregontrail.museum\0kvafjord.no\0"
+"mt.us\0nd.us\0"
+"freight.aero\0ando.nara.jp\0edu.py\0"
+"ino.kochi.jp\0"
+"portlligat.museum\0"
+"web.lk\0"
+"nom.km\0music.museum\0"
+"ishikawa.okinawa.jp\0"
+"chtr.k12.ma.us\0"
+"andriabarlettatrani.it\0"
+"nationalheritage.museum\0giehtavuoatna.no\0"
+"im.it\0"
+"hareid.no\0"
+"kids.museum\0"
+"kanmaki.nara.jp\0tra.kp\0"
+"numata.gunma.jp\0"
+"info.ec\0hizen.saga.jp\0labour.museum\0honefoss.no\0"
+"misato.wakayama.jp\0edu.sa\0lib.sd.us\0"
+"arts.co\0shima.mie.jp\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.sd\0"
+"tama.tokyo.jp\0t\xc3\xb8nsberg.no\0edu.ru\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"
+"komae.tokyo.jp\0"
+"mazowsze.pl\0"
+"shintoku.hokkaido.jp\0lans.museum\0edu.sl\0"
+"nom.mg\0l\xc3\xa4ns.museum\0web.nf\0skjak.no\0\xe7\xb5\x84\xe7\xb9\x94.tw\0"
+"info.bb\0chel.ru\0edu.sn\0"
+"trd.br\0info.at\0"
+"info.au\0"
+"chikuzen.fukuoka.jp\0asahi.toyama.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"
+"info.az\0tv.sd\0"
+"shimonoseki.yamaguchi.jp\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"
+"radoy.no\0"
+"sasaguri.fukuoka.jp\0nakano.nagano.jp\0ogimi.okinawa.jp\0computerhistory.museum\0ug.gov.pl\0edu.tm\0"
+"abira.hokkaido.jp\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.tt\0"
-"zarow.pl\0"
-"edu.tw\0"
+"edu.ua\0"
+"lavagis.no\0cc.al.us\0"
+"kopervik.no\0edu.tt\0"
+"nishimera.miyazaki.jp\0kuban.ru\0"
+"g.se\0edu.tw\0"
+"lillehammer.no\0"
+"info.co\0"
+"achi.nagano.jp\0"
+"karasjok.no\0pa.gov.pl\0"
+"lib.mn.us\0"
+"osteroy.no\0"
+"naganohara.gunma.jp\0"
+"web.pk\0dp.ua\0"
+"edu.vc\0"
+"minato.osaka.jp\0"
+"rotorcraft.aero\0uchihara.ibaraki.jp\0edu.ve\0"
+"nom.pa\0"
+"edu.uy\0"
+"nom.pe\0ternopil.ua\0"
+"h\xc3\xa6gebostad.no\0tv.tz\0"
+"iwade.wakayama.jp\0"
+"bn.it\0oyama.tochigi.jp\0edu.vn\0"
+"yukuhashi.fukuoka.jp\0"
+"rel.ht\0biei.hokkaido.jp\0cinema.museum\0yuzhno-sakhalinsk.ru\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"
-"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"
+"ichinomiya.chiba.jp\0s\xc3\xb8gne.no\0"
+"izumisano.osaka.jp\0"
+"rimini.it\0"
+"skjervoy.no\0"
+"anpachi.gifu.jp\0"
+"verdal.no\0sanok.pl\0"
+"matera.it\0"
+"nagatoro.saitama.jp\0edu.ws\0"
+"po.it\0"
+"takatori.nara.jp\0dyroy.no\0"
+"!mecon.ar\0"
+"walbrzych.pl\0"
+"yamashina.kyoto.jp\0sandoy.no\0is-a-geek.net\0"
+"kunisaki.oita.jp\0nom.re\0"
+"hazu.aichi.jp\0k12.mt.us\0k12.nd.us\0"
+"m.bg\0"
+"ulvik.no\0"
+"asahi.chiba.jp\0rankoshi.hokkaido.jp\0"
+"stockholm.museum\0troandin.no\0"
+"berlev\xc3\xa5g.no\0pomorze.pl\0pl.ua\0"
+"itoman.okinawa.jp\0"
+"kasuya.fukuoka.jp\0skjerv\xc3\xb8y.no\0"
+"okoppe.hokkaido.jp\0nom.ro\0"
+"caa.aero\0togane.chiba.jp\0"
+"polkowice.pl\0"
+"mosj\xc3\xb8""en.no\0"
+"web.tj\0"
+"iglesias-carbonia.it\0stj\xc3\xb8rdalshalsen.no\0"
+"ogori.fukuoka.jp\0"
+"north.museum\0lib.wy.us\0"
+"scrapper-site.net\0"
+"eu.com\0"
+"database.museum\0"
+"vaga.no\0"
+"birdart.museum\0"
+"gratangen.no\0"
+"kasukabe.saitama.jp\0"
+"dyndns-home.com\0"
+"seranishi.hiroshima.jp\0asker.no\0nom.tm\0"
+"le.it\0brussels.museum\0"
+"is-a-hunter.com\0"
+"babia-gora.pl\0ustka.pl\0"
+"travel\0"
+"chijiwa.nagasaki.jp\0web.ve\0"
+"gaivuotna.no\0kr.ua\0"
+"\xe5\x85\xac\xe5\x8f\xb8.cn\0"
+"yamada.iwate.jp\0evje-og-hornnes.no\0"
+,
+
+"kamijima.ehime.jp\0malbork.pl\0"
+"otsu.shiga.jp\0kosuge.yamanashi.jp\0"
+"kakuda.miyagi.jp\0"
+"est-a-la-masion.com\0"
+"\xe5\x85\xac\xe5\x8f\xb8.hk\0"
+"chigasaki.kanagawa.jp\0writesthisblog.com\0"
+"szkola.pl\0k12.wa.us\0"
+"ookuwa.nagano.jp\0lib.sc.us\0"
+"info\0ujitawara.kyoto.jp\0"
+"tranibarlettaandria.it\0"
+"aviation.museum\0"
+"nm.cn\0"
+"antiques.museum\0ddr.museum\0l\xc3\xb8""dingen.no\0"
+"shibata.miyagi.jp\0priv.pl\0"
+"bauern.museum\0"
+"cc.ct.us\0"
+"tokigawa.saitama.jp\0"
+"pruszkow.pl\0"
+"belluno.it\0chonan.chiba.jp\0"
+"from-ks.com\0"
+"kannami.shizuoka.jp\0"
+"tatebayashi.gunma.jp\0"
+"rel.pl\0k12.tn.us\0lib.al.us\0"
+"oshima.tokyo.jp\0"
+"cbg.ru\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"
-"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"
-"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"
-"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"
+"spy.museum\0"
+"!city.sapporo.jp\0kanie.aichi.jp\0"
+"mulhouse.museum\0"
+"taki.mie.jp\0gangaviika.no\0"
+"v\xc3\xa5ler.\xc3\xb8stfold.no\0gok.pk\0!jet.uk\0"
+"\xd8\xa7\xd9\x8a\xd8\xb1\xd8\xa7\xd9\x86.ir\0sagae.yamagata.jp\0austin.museum\0"
+"manno.kagawa.jp\0lillesand.no\0"
+"kitaakita.akita.jp\0"
+"priv.no\0"
+"campidano-medio.it\0"
+"lapy.pl\0lezajsk.pl\0"
+"info.ve\0"
+"shakotan.hokkaido.jp\0"
+"takahama.fukui.jp\0kiryu.gunma.jp\0arna.no\0sunndal.no\0"
+"nagai.yamagata.jp\0"
+"tomsk.ru\0"
+"info.vn\0"
+"agriculture.museum\0"
+"jeonbuk.kr\0"
+"realestate.pl\0from-md.com\0"
+"ca.it\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"
-"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"
-"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"
-"kunstsammlung.museum\0"
-"com.aw\0"
-"flight.aero\0com.bh\0lib.mo.us\0org.vn\0"
-"com.bi\0adygeya.ru\0"
-"com.az\0"
-"art.dz\0"
-"com.bm\0"
+"jeonnam.kr\0"
+"jogasz.hu\0klodzko.pl\0kostroma.ru\0"
+"ltd.co.im\0"
+"koshigaya.saitama.jp\0dyndns-remote.com\0"
+"coop\0arts.ro\0"
+"hyogo.jp\0priv.me\0"
+"stalbans.museum\0"
+"pr.it\0test.tj\0"
+"info.tn\0"
+"kouzushima.tokyo.jp\0pacific.museum\0"
+"gs.tm.no\0"
+"sd.us\0k12.ne.us\0"
+"p.bg\0"
+"info.tt\0"
+"khmelnitskiy.ua\0"
+"decorativearts.museum\0alesund.no\0"
+"ginowan.okinawa.jp\0info.tz\0"
+"mining.museum\0"
+"\xc3\xb8vre-eiker.no\0"
+"gonohe.aomori.jp\0"
+"aurskog-holand.no\0"
+"kagamiishi.fukushima.jp\0m\xc3\xa1latvuopmi.no\0"
+"podlasie.pl\0"
+"malselv.no\0"
+"odawara.kanagawa.jp\0"
+"rygge.no\0"
+"arida.wakayama.jp\0"
+"dni.us\0"
+"info.ro\0codespot.com\0"
+"ca.na\0kv\xc3\xa6nangen.no\0"
+"ome.tokyo.jp\0"
+"atsugi.kanagawa.jp\0"
+"info.sd\0"
+"egyptian.museum\0cc.ia.us\0"
+"suzaka.nagano.jp\0test.ru\0"
+"kumejima.okinawa.jp\0\xe0\xa8\xad\xe0\xa8\xbe\xe0\xa8\xb0\xe0\xa8\xa4\0groks-this.info\0"
+"public.museum\0\xe0\xb0\xad\xe0\xb0\xbe\xe0\xb0\xb0\xe0\xb0\xa4\xe0\xb1\x8d\0"
+"ono.hyogo.jp\0"
+"arts.nf\0"
+"iwama.ibaraki.jp\0kamimine.saga.jp\0"
+"nj.us\0"
+"mantova.it\0"
+"padova.it\0"
+"samnanger.no\0"
+"yuki.ibaraki.jp\0higashitsuno.kochi.jp\0sciencesnaturelles.museum\0"
+"miho.ibaraki.jp\0"
+"hemnes.no\0"
+"yosemite.museum\0"
+"tochio.niigata.jp\0whaling.museum\0is-an-accountant.com\0"
+"info.pk\0"
+"soja.okayama.jp\0voagat.no\0info.pl\0cc.fl.us\0"
+"sekikawa.niigata.jp\0"
+"is.it\0photography.museum\0"
+"info.pr\0"
+"aizubange.fukushima.jp\0jinsekikogen.hiroshima.jp\0rissa.no\0"
+"napoli.it\0glas.museum\0"
+"\xe7\xb5\x84\xe7\xb9\x94.hk\0rns.tn\0"
+"k12.wv.us\0is-a-candidate.org\0"
+"ushiku.ibaraki.jp\0"
+"production.aero\0"
+"fukagawa.hokkaido.jp\0philately.museum\0"
+"miyake.nara.jp\0"
+"akune.kagoshima.jp\0"
+"info.na\0"
+"fujikawaguchiko.yamanashi.jp\0from-il.com\0"
+"ozu.kumamoto.jp\0"
+"exchange.aero\0gmina.pl\0"
+"info.mv\0info.nf\0"
+"kosai.shizuoka.jp\0steigen.no\0homeip.net\0"
+"chuo.chiba.jp\0"
+"tambov.ru\0"
+"j\xc3\xb8lster.no\0"
+"omi.niigata.jp\0"
+"mil\0lib.ak.us\0"
+"muika.niigata.jp\0info.nr\0"
+"berlevag.no\0"
+"indiana.museum\0"
+"jewish.museum\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"
+"government.aero\0"
+"ltd.gi\0"
+"cc.ar.us\0"
+"gon.pk\0"
+"marumori.miyagi.jp\0"
+"gateway.museum\0"
+"fujimino.saitama.jp\0m.se\0"
+"takanezawa.tochigi.jp\0vads\xc3\xb8.no\0dontexist.org\0"
+"info.la\0belau.pw\0"
+"ibaraki.ibaraki.jp\0po.gov.pl\0"
+"even\xc3\xa1\xc5\xa1\xc5\xa1i.no\0loab\xc3\xa1t.no\0"
+"coal.museum\0"
+"karikatur.museum\0"
+"miyazaki.miyazaki.jp\0ketrzyn.pl\0k12.sd.us\0"
+"fukuyama.hiroshima.jp\0lib.oh.us\0"
+"hamaroy.no\0"
+"nishinoshima.shimane.jp\0samara.ru\0"
+"ikeda.fukui.jp\0"
+"mel\xc3\xb8y.no\0chukotka.ru\0"
+"port.fr\0"
+"us.org\0"
+"kumagaya.saitama.jp\0"
+"*.sapporo.jp\0"
+"westfalen.museum\0"
+"yahiko.niigata.jp\0"
+"ichinomiya.aichi.jp\0naruto.tokushima.jp\0"
+"tmp.br\0bt.it\0"
+"donna.no\0khabarovsk.ru\0"
+"saikai.nagasaki.jp\0"
+"ato.br\0sex.hu\0daigo.ibaraki.jp\0"
+"izumiotsu.osaka.jp\0"
+"\xd8\xa7\xd9\x84\xd9\x85\xd8\xba\xd8\xb1\xd8\xa8\0"
+"davvesiida.no\0"
+"gyeonggi.kr\0"
+"coloradoplateau.museum\0olecko.pl\0"
+"ha.cn\0"
+"forlicesena.it\0"
+"taka.hyogo.jp\0kita.kyoto.jp\0"
+"cc.mn.us\0"
+"mutsu.aomori.jp\0"
+"shimotsuma.ibaraki.jp\0rybnik.pl\0"
+"\xd8\xb3\xd9\x88\xd8\xb1\xd9\x8a\xd8\xa7\0"
+"livorno.it\0pu.it\0verona.it\0"
+"\xd8\xb3\xd9\x88\xd8\xb1\xd9\x8a\xd8\xa9\0"
+"sveio.no\0"
+"kurate.fukuoka.jp\0"
+"natuurwetenschappen.museum\0"
+"ca.us\0"
+"bryansk.ru\0"
+"s.bg\0seoul.kr\0"
+"watarai.mie.jp\0muenchen.museum\0"
+"iyo.ehime.jp\0"
+"starnberg.museum\0tydal.no\0"
+"info.ki\0"
+"fet.no\0finn\xc3\xb8y.no\0"
+"kagoshima.kagoshima.jp\0"
+"naturalsciences.museum\0"
+"artsandcrafts.museum\0"
+"sakurai.nara.jp\0"
+"carrara-massa.it\0"
+"shirakawa.fukushima.jp\0"
+"mitsuke.niigata.jp\0museet.museum\0is-a-photographer.com\0"
+"shioya.tochigi.jp\0"
+"randaberg.no\0"
+"ojiya.niigata.jp\0"
+"ltd.lk\0pr.us\0k12.ks.us\0"
+"osaka.jp\0lib.hi.us\0"
+"horonobe.hokkaido.jp\0"
+"kragero.no\0"
+"kawaguchi.saitama.jp\0"
+"hara.nagano.jp\0itabashi.tokyo.jp\0"
+"fl\xc3\xa5.no\0"
+"otsuki.kochi.jp\0leangaviika.no\0pors\xc3\xa1\xc5\x8bgu.no\0"
+"savannahga.museum\0"
+"volkenkunde.museum\0"
+"cc.id.us\0"
+"kashima.kumamoto.jp\0swinoujscie.pl\0"
+"prof.pr\0"
+"ab.ca\0is-a-democrat.com\0"
+"press.museum\0"
+"uk.com\0"
+"bajddar.no\0"
+"medecin.km\0"
+"iki.nagasaki.jp\0shirahama.wakayama.jp\0"
+"ip6.arpa\0nm.us\0"
+"lib.fl.us\0"
+"yanagawa.fukuoka.jp\0donetsk.ua\0"
+"s\xc3\xb8r-aurdal.no\0"
+"qh.cn\0mill.museum\0"
+"naka.ibaraki.jp\0"
+"kamitonda.wakayama.jp\0"
+"mosreg.ru\0"
+"gorizia.it\0kushima.miyazaki.jp\0berlin.museum\0"
+"ns.ca\0shiga.jp\0"
+"cheltenham.museum\0"
+"kawachinagano.osaka.jp\0fujieda.shizuoka.jp\0nakhodka.ru\0k12.ga.us\0"
+"magnitka.ru\0"
+"uki.kumamoto.jp\0wroc.pl\0"
+"stange.no\0stuff-4-sale.org\0"
+"tsuruga.fukui.jp\0nagasu.kumamoto.jp\0"
+"biella.it\0buyshouses.net\0is-a-guru.com\0"
+"vevelstad.no\0"
+"nyuzen.toyama.jp\0"
+"bjugn.no\0"
+"motosu.gifu.jp\0"
+"usdecorativearts.museum\0"
+"anthro.museum\0"
+"sex.pl\0"
+"americanantiques.museum\0rennes\xc3\xb8y.no\0"
+"arezzo.it\0hakuba.nagano.jp\0"
+"jamison.museum\0is-a-painter.com\0mypets.ws\0"
+"ln.cn\0"
+"hiji.oita.jp\0"
+"air.museum\0"
+"palana.ru\0"
+"toki.gifu.jp\0sakata.yamagata.jp\0p.se\0"
+"vb.it\0funahashi.toyama.jp\0"
+"hino.tottori.jp\0"
+"logistics.aero\0ohda.shimane.jp\0"
+"amli.no\0"
+"yatsuka.shimane.jp\0"
+"chichibu.saitama.jp\0"
+"sciences.museum\0"
+"wa.edu.au\0"
+"ouchi.saga.jp\0"
+"pittsburgh.museum\0gloppen.no\0"
+"kamigori.hyogo.jp\0"
+"valer.ostfold.no\0is-a-soxfan.org\0"
+"net\0halden.no\0dyndns-work.com\0"
+"oita.jp\0hinode.tokyo.jp\0sa.com\0"
+"leikanger.no\0"
+"stord.no\0"
+"sarufutsu.hokkaido.jp\0alstahaug.no\0k12.al.us\0"
+"shinanomachi.nagano.jp\0edogawa.tokyo.jp\0k12.pr.us\0"
+"hakodate.hokkaido.jp\0"
+"tobishima.aichi.jp\0"
+"ogasawara.tokyo.jp\0stjordal.no\0"
+"aarborte.no\0"
+"xj.cn\0"
+"kyotanabe.kyoto.jp\0"
+"williamsburg.museum\0"
+"nabari.mie.jp\0namerikawa.toyama.jp\0rana.no\0"
+"gwangju.kr\0"
+"agdenes.no\0"
+"hitachiota.ibaraki.jp\0ha.no\0tynset.no\0"
+"k12.ok.us\0"
+"v.bg\0eco.br\0algard.no\0"
+"khmelnytskyi.ua\0"
+"nagano.jp\0"
+"jus.br\0"
+"tanohata.iwate.jp\0"
+"hakusan.ishikawa.jp\0"
+"detroit.museum\0"
+"szex.hu\0"
+"asahikawa.hokkaido.jp\0nov.ru\0"
+"fhsk.se\0"
+"voronezh.ru\0"
+"date.fukushima.jp\0"
+"textile.museum\0"
+"toyosato.shiga.jp\0"
+"mytis.ru\0"
+"valley.museum\0"
+"mazury.pl\0"
+"imari.saga.jp\0"
+"insurance.aero\0tomiya.miyagi.jp\0"
+"siena.it\0"
+"novara.it\0"
+"ichihara.chiba.jp\0"
+"tochigi.jp\0"
+"b\xc3\xa5tsfjord.no\0doesntexist.org\0"
+"is-a-personaltrainer.com\0"
+"uryu.hokkaido.jp\0interactive.museum\0"
+"!songfest.om\0"
+"mihara.hiroshima.jp\0"
+"field.museum\0adygeya.ru\0"
+"yasuda.kochi.jp\0"
+"yokote.akita.jp\0dyndns-mail.com\0"
+"salzburg.museum\0"
+"is-very-bad.org\0worse-than.tv\0"
+"sn\xc3\xa5""ase.no\0"
+"indian.museum\0"
+"anan.nagano.jp\0vagan.no\0"
+"baghdad.museum\0"
+"k\xc3\xa1r\xc3\xa1\xc5\xa1johka.no\0"
+"simple-url.com\0"
+"of.by\0"
+"shiogama.miyagi.jp\0"
+"huissier-justice.fr\0"
+"shika.ishikawa.jp\0"
+"from-fl.com\0"
+"drammen.no\0fam.pk\0"
+"contemporaryart.museum\0"
+"bio.br\0handa.aichi.jp\0ikeda.nagano.jp\0is-saved.org\0"
+"inzai.chiba.jp\0soka.saitama.jp\0"
+"s\xc3\xb8rfold.no\0sellsyourhome.org\0"
+"louvre.museum\0"
+"yanaizu.fukushima.jp\0"
+"kiyosu.aichi.jp\0"
+"ichikawa.chiba.jp\0kawanishi.hyogo.jp\0sakawa.kochi.jp\0"
+"konyvelo.hu\0lindesnes.no\0"
+"!promocion.ar\0lom.no\0"
+"k12.ec\0"
+"tree.museum\0"
+"s.se\0"
+"ve.it\0juif.museum\0flatanger.no\0"
+"kobierzyce.pl\0"
+"chino.nagano.jp\0"
+"kristiansand.no\0norddal.no\0"
+"b\xc3\xb8.nordland.no\0"
+"kirov.ru\0"
+"tomobe.ibaraki.jp\0"
+"jl.cn\0frosinone.it\0"
+"toyooka.hyogo.jp\0"
+"tsuiki.fukuoka.jp\0hitra.no\0"
+"bz.it\0yotsukaido.chiba.jp\0"
+"sp.it\0"
+"ariake.saga.jp\0scrapping.cc\0"
+"iwanai.hokkaido.jp\0"
+"erotica.hu\0sumoto.kumamoto.jp\0glogow.pl\0"
+"lib.mi.us\0"
+"tateyama.chiba.jp\0semine.miyagi.jp\0vestre-toten.no\0"
+"dellogliastra.it\0sm.ua\0"
+"brussel.museum\0"
+"hasami.nagasaki.jp\0sells-for-u.com\0"
+"anan.tokushima.jp\0"
+"barreau.bj\0"
+"cc.mt.us\0cc.nd.us\0"
+"l\xc3\xb8renskog.no\0"
+"trolley.museum\0"
+"okuma.fukushima.jp\0"
+"hirara.okinawa.jp\0kaminoyama.yamagata.jp\0k12.oh.us\0"
+"y.bg\0"
+"miyazaki.jp\0"
+"repbody.aero\0"
+"sannohe.aomori.jp\0shimizu.hokkaido.jp\0"
+"judygarland.museum\0gotdns.com\0"
+"toyota.aichi.jp\0oketo.hokkaido.jp\0zao.miyagi.jp\0"
+"ohtawara.tochigi.jp\0"
+"workinggroup.aero\0"
+"matsukawa.nagano.jp\0"
+"mugi.tokushima.jp\0karate.museum\0"
+"bjerkreim.no\0"
+"miyagi.jp\0"
+"!city.kobe.jp\0aquarium.museum\0"
+"k12.la.us\0"
+"pharmaciens.km\0de.com\0"
+"!omantel.om\0"
+"zhytomyr.ua\0"
+"kawara.fukuoka.jp\0raholt.no\0"
+"medecin.fr\0saiki.oita.jp\0v\xc3\xa1rgg\xc3\xa1t.no\0"
+"kotoura.tottori.jp\0moskenes.no\0vennesla.no\0"
+"rishirifuji.hokkaido.jp\0"
+"cuneo.it\0"
+"takamatsu.kagawa.jp\0malatvuopmi.no\0pomorskie.pl\0"
+"otsuchi.iwate.jp\0"
+"spb.ru\0"
+"recreation.aero\0misaki.okayama.jp\0k12.in.us\0ham-radio-op.net\0"
+"freiburg.museum\0"
+"journal.aero\0fot.br\0"
+"asahi.yamagata.jp\0"
+"ah.cn\0saotome.st\0"
+"delaware.museum\0"
+"tondabayashi.osaka.jp\0"
+"!uba.ar\0notaires.km\0"
+"nord-aurdal.no\0"
+"furubira.hokkaido.jp\0kazan.ru\0"
+"shisui.chiba.jp\0town.museum\0"
+"inatsuki.fukuoka.jp\0yuu.yamaguchi.jp\0"
+"munakata.fukuoka.jp\0"
+"matsuyama.ehime.jp\0"
+"traniandriabarletta.it\0toyama.toyama.jp\0grandrapids.museum\0lenvik.no\0"
+"toyota.yamaguchi.jp\0"
+"niigata.jp\0yamatsuri.fukushima.jp\0batsfjord.no\0"
+"ravenna.it\0zama.kanagawa.jp\0"
+"is-a-landscaper.com\0is-gone.com\0"
+"doomdns.org\0"
+"shinjo.yamagata.jp\0hawaii.museum\0"
+"trento.it\0taiki.mie.jp\0"
+"royrvik.no\0"
+"palermo.it\0"
+"arts.museum\0newjersey.museum\0"
+"scienceandhistory.museum\0"
+"sunagawa.hokkaido.jp\0tabuse.yamaguchi.jp\0chuo.yamanashi.jp\0"
+"*.sch.uk\0"
+"southwest.museum\0of.no\0k12.fl.us\0"
+"md.ci\0"
+"haboro.hokkaido.jp\0iwanuma.miyagi.jp\0adachi.tokyo.jp\0"
+"harstad.no\0"
+"kunneppu.hokkaido.jp\0"
+"tachikawa.tokyo.jp\0"
+"agrigento.it\0murata.miyagi.jp\0"
+"macerata.it\0b\xc3\xa1id\xc3\xa1r.no\0"
+"kurogi.fukuoka.jp\0"
+"misato.miyagi.jp\0americanart.museum\0"
+"sanagochi.tokushima.jp\0"
+"nanyo.yamagata.jp\0"
+"otaru.hokkaido.jp\0"
+"bremanger.no\0nordkapp.no\0"
+"kawagoe.saitama.jp\0"
+"sodegaura.chiba.jp\0creation.museum\0romskog.no\0"
+"hiratsuka.kanagawa.jp\0"
+"muroto.kochi.jp\0"
+"miki.hyogo.jp\0"
+"g\xc3\xa1ls\xc3\xa1.no\0isa-geek.org\0"
+"eastcoast.museum\0shell.museum\0"
+"salerno.it\0shinyoshitomi.fukuoka.jp\0is-a-libertarian.com\0"
+"ss.it\0"
+"fuefuki.yamanashi.jp\0"
+"voss.no\0dnepropetrovsk.ua\0"
+"lib.md.us\0"
+"ggf.br\0"
+"nara.nara.jp\0"
+"gz.cn\0kakamigahara.gifu.jp\0!teledata.mz\0"
+"!gobiernoelectronico.ar\0katano.osaka.jp\0"
+"jp.net\0"
+"ethnology.museum\0"
+"krym.ua\0"
+"e164.arpa\0fie.ee\0"
+"preservation.museum\0"
+"como.it\0ina.saitama.jp\0"
+"tempio-olbia.it\0kokubunji.tokyo.jp\0"
+"k12.ny.us\0"
+"\xc3\xa5""fjord.no\0"
+"kamo.kyoto.jp\0is-very-sweet.org\0"
+"kuroiso.tochigi.jp\0"
+"nagaoka.niigata.jp\0"
+"kl\xc3\xa6""bu.no\0"
+"vossevangen.no\0"
+"casino.hu\0"
+"stuttgart.museum\0"
+"tamamura.gunma.jp\0"
+"malopolska.pl\0"
+"is-a-student.com\0"
+"naka.hiroshima.jp\0higashichichibu.saitama.jp\0"
+"mykolaiv.ua\0!mod.uk\0"
+"lt.it\0"
+"honjo.saitama.jp\0"
+"manchester.museum\0bedzin.pl\0"
+"sandiego.museum\0"
+"sakuho.nagano.jp\0"
+"nv.us\0is-a-liberal.com\0"
+"2.bg\0nature.museum\0"
+"za.net\0"
+"!city.nagoya.jp\0ris\xc3\xb8r.no\0"
+"sanda.hyogo.jp\0"
+"satsumasendai.kagoshima.jp\0kizu.kyoto.jp\0is-a-cubicle-slave.com\0"
+"yamagata.yamagata.jp\0"
+"\xd8\xa7\xd9\x85\xd8\xa7\xd8\xb1\xd8\xa7\xd8\xaa\0"
+"k12.vi\0"
+"svalbard.no\0"
+"koganei.tokyo.jp\0"
+"cci.fr\0inami.toyama.jp\0"
+"misconfused.org\0"
+"int.az\0"
};
+static const quint16 tldChunkCount = 2;
+static const quint32 tldChunks[] = {65521, 75539};
+
QT_END_NAMESPACE
#endif // QURLTLD_P_H
diff --git a/src/corelib/io/qwindowspipereader_p.h b/src/corelib/io/qwindowspipereader_p.h
index d29e77b034..ea3d3c271f 100644
--- a/src/corelib/io/qwindowspipereader_p.h
+++ b/src/corelib/io/qwindowspipereader_p.h
@@ -60,8 +60,6 @@
#include <qt_windows.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -117,6 +115,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QWINDOWSPIPEREADER_P_H
diff --git a/src/corelib/io/qwindowspipewriter_p.h b/src/corelib/io/qwindowspipewriter_p.h
index fa2b386788..62cd49d66a 100644
--- a/src/corelib/io/qwindowspipewriter_p.h
+++ b/src/corelib/io/qwindowspipewriter_p.h
@@ -59,8 +59,6 @@
#include <qwaitcondition.h>
#include <qt_windows.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -156,6 +154,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QT_NO_PROCESS
diff --git a/src/corelib/io/qwinoverlappedionotifier_p.h b/src/corelib/io/qwinoverlappedionotifier_p.h
index f117e31535..451bedf7cf 100644
--- a/src/corelib/io/qwinoverlappedionotifier_p.h
+++ b/src/corelib/io/qwinoverlappedionotifier_p.h
@@ -57,8 +57,6 @@
#include <qt_windows.h>
#include <qqueue.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QWinIoCompletionPort;
@@ -112,6 +110,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QWINOVERLAPPEDIONOTIFIER_P_H
diff --git a/src/corelib/itemmodels/qabstractitemmodel.cpp b/src/corelib/itemmodels/qabstractitemmodel.cpp
index 12029f4a23..989456efbb 100644
--- a/src/corelib/itemmodels/qabstractitemmodel.cpp
+++ b/src/corelib/itemmodels/qabstractitemmodel.cpp
@@ -866,6 +866,27 @@ void QAbstractItemModelPrivate::columnsRemoved(const QModelIndex &parent,
}
/*!
+ \since 4.8
+
+ This slot is called just after the internal data of a model is cleared
+ while it is being reset.
+
+ This slot is provided the convenience of subclasses of concrete proxy
+ models, such as subclasses of QSortFilterProxyModel which maintain extra
+ data.
+
+ \snippet code/src_corelib_kernel_qabstractitemmodel.cpp 12
+
+ \note Due to a mistake, this slot is missing in Qt 5.0.
+
+ \sa modelAboutToBeReset(), modelReset()
+*/
+void QAbstractItemModel::resetInternalData()
+{
+
+}
+
+/*!
\class QModelIndex
\inmodule QtCore
@@ -3054,6 +3075,7 @@ void QAbstractItemModel::endResetModel()
{
Q_D(QAbstractItemModel);
d->invalidatePersistentIndexes();
+ QMetaObject::invokeMethod(this, "resetInternalData");
emit modelReset(QPrivateSignal());
}
@@ -3271,6 +3293,17 @@ bool QAbstractTableModel::hasChildren(const QModelIndex &parent) const
}
/*!
+ \reimp
+ */
+Qt::ItemFlags QAbstractTableModel::flags(const QModelIndex &index) const
+{
+ Qt::ItemFlags f = QAbstractItemModel::flags(index);
+ if (index.isValid())
+ f |= Qt::ItemNeverHasChildren;
+ return f;
+}
+
+/*!
\class QAbstractListModel
\inmodule QtCore
\brief The QAbstractListModel class provides an abstract model that can be
@@ -3391,6 +3424,17 @@ QModelIndex QAbstractListModel::parent(const QModelIndex & /* index */) const
}
/*!
+ \reimp
+ */
+Qt::ItemFlags QAbstractListModel::flags(const QModelIndex &index) const
+{
+ Qt::ItemFlags f = QAbstractItemModel::flags(index);
+ if (index.isValid())
+ f |= Qt::ItemNeverHasChildren;
+ return f;
+}
+
+/*!
\internal
Returns the number of columns in the list with the given \a parent.
diff --git a/src/corelib/itemmodels/qabstractitemmodel.h b/src/corelib/itemmodels/qabstractitemmodel.h
index 793a1ba169..6a57ccaca8 100644
--- a/src/corelib/itemmodels/qabstractitemmodel.h
+++ b/src/corelib/itemmodels/qabstractitemmodel.h
@@ -47,8 +47,6 @@
#include <QtCore/qhash.h>
#include <QtCore/qvector.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -332,6 +330,10 @@ public Q_SLOTS:
virtual bool submit();
virtual void revert();
+protected Q_SLOTS:
+ // Qt 6: Make virtual
+ void resetInternalData();
+
protected:
QAbstractItemModel(QAbstractItemModelPrivate &dd, QObject *parent = 0);
@@ -421,6 +423,7 @@ public:
bool dropMimeData(const QMimeData *data, Qt::DropAction action,
int row, int column, const QModelIndex &parent);
+ Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
protected:
QAbstractTableModel(QAbstractItemModelPrivate &dd, QObject *parent);
@@ -441,6 +444,8 @@ public:
QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const;
bool dropMimeData(const QMimeData *data, Qt::DropAction action,
int row, int column, const QModelIndex &parent);
+
+ Qt::ItemFlags flags(const QModelIndex &index) const Q_DECL_OVERRIDE;
protected:
QAbstractListModel(QAbstractItemModelPrivate &dd, QObject *parent);
@@ -473,6 +478,4 @@ inline uint qHash(const QModelIndex &index)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QABSTRACTITEMMODEL_H
diff --git a/src/corelib/itemmodels/qabstractproxymodel.cpp b/src/corelib/itemmodels/qabstractproxymodel.cpp
index ed5d0e9a85..d5887a52d5 100644
--- a/src/corelib/itemmodels/qabstractproxymodel.cpp
+++ b/src/corelib/itemmodels/qabstractproxymodel.cpp
@@ -148,6 +148,15 @@ void QAbstractProxyModel::setSourceModel(QAbstractItemModel *sourceModel)
}
/*!
+ Clears the roleNames of this proxy model.
+*/
+void QAbstractProxyModel::resetInternalData()
+{
+ Q_D(QAbstractProxyModel);
+ d->roleNames = d->model->roleNames();
+}
+
+/*!
Returns the model that contains the data that is available through the proxy model.
*/
QAbstractItemModel *QAbstractProxyModel::sourceModel() const
diff --git a/src/corelib/itemmodels/qabstractproxymodel.h b/src/corelib/itemmodels/qabstractproxymodel.h
index e7a47214f8..9b26d6cead 100644
--- a/src/corelib/itemmodels/qabstractproxymodel.h
+++ b/src/corelib/itemmodels/qabstractproxymodel.h
@@ -44,8 +44,6 @@
#include <QtCore/qabstractitemmodel.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -103,6 +101,9 @@ Q_SIGNALS:
#endif
);
+protected Q_SLOTS:
+ void resetInternalData();
+
protected:
QAbstractProxyModel(QAbstractProxyModelPrivate &, QObject *parent);
@@ -116,6 +117,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QABSTRACTPROXYMODEL_H
diff --git a/src/corelib/itemmodels/qidentityproxymodel.h b/src/corelib/itemmodels/qidentityproxymodel.h
index 4125683f77..8a416c97bc 100644
--- a/src/corelib/itemmodels/qidentityproxymodel.h
+++ b/src/corelib/itemmodels/qidentityproxymodel.h
@@ -47,8 +47,6 @@
#ifndef QT_NO_IDENTITYPROXYMODEL
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -113,8 +111,6 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QT_NO_IDENTITYPROXYMODEL
#endif // QIDENTITYPROXYMODEL_H
diff --git a/src/corelib/itemmodels/qitemselectionmodel.h b/src/corelib/itemmodels/qitemselectionmodel.h
index dd5f6061cd..2a1a4b0a2d 100644
--- a/src/corelib/itemmodels/qitemselectionmodel.h
+++ b/src/corelib/itemmodels/qitemselectionmodel.h
@@ -47,8 +47,6 @@
#include <QtCore/qlist.h>
#include <QtCore/qabstractitemmodel.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -253,6 +251,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QItemSelectionRange &);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QITEMSELECTIONMODEL_H
diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.h b/src/corelib/itemmodels/qsortfilterproxymodel.h
index ffebec5283..a37c892c6c 100644
--- a/src/corelib/itemmodels/qsortfilterproxymodel.h
+++ b/src/corelib/itemmodels/qsortfilterproxymodel.h
@@ -48,8 +48,6 @@
#include <QtCore/qregexp.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -198,8 +196,6 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QT_NO_SORTFILTERPROXYMODEL
#endif // QSORTFILTERPROXYMODEL_H
diff --git a/src/corelib/itemmodels/qstringlistmodel.cpp b/src/corelib/itemmodels/qstringlistmodel.cpp
index c6fabfcaee..31c9137c79 100644
--- a/src/corelib/itemmodels/qstringlistmodel.cpp
+++ b/src/corelib/itemmodels/qstringlistmodel.cpp
@@ -170,9 +170,9 @@ QVariant QStringListModel::data(const QModelIndex &index, int role) const
Qt::ItemFlags QStringListModel::flags(const QModelIndex &index) const
{
if (!index.isValid())
- return QAbstractItemModel::flags(index) | Qt::ItemIsDropEnabled;
+ return QAbstractListModel::flags(index) | Qt::ItemIsDropEnabled;
- return QAbstractItemModel::flags(index) | Qt::ItemIsEditable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled;
+ return QAbstractListModel::flags(index) | Qt::ItemIsEditable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled;
}
/*!
diff --git a/src/corelib/itemmodels/qstringlistmodel.h b/src/corelib/itemmodels/qstringlistmodel.h
index 22e9294f74..3514b27508 100644
--- a/src/corelib/itemmodels/qstringlistmodel.h
+++ b/src/corelib/itemmodels/qstringlistmodel.h
@@ -45,8 +45,6 @@
#include <QtCore/qabstractitemmodel.h>
#include <QtCore/qstringlist.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -86,6 +84,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSTRINGLISTMODEL_H
diff --git a/src/corelib/json/qjsonarray.h b/src/corelib/json/qjsonarray.h
index 24c04d2942..1474ccae41 100644
--- a/src/corelib/json/qjsonarray.h
+++ b/src/corelib/json/qjsonarray.h
@@ -45,8 +45,6 @@
#include <QtCore/qjsonvalue.h>
#include <QtCore/qiterator.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QDebug;
@@ -219,6 +217,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonArray &);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QJSONARRAY_H
diff --git a/src/corelib/json/qjsondocument.cpp b/src/corelib/json/qjsondocument.cpp
index 550cc76b0d..bdb46528d3 100644
--- a/src/corelib/json/qjsondocument.cpp
+++ b/src/corelib/json/qjsondocument.cpp
@@ -303,15 +303,50 @@ QVariant QJsonDocument::toVariant() const
*/
QByteArray QJsonDocument::toJson() const
{
+ return toJson(Indented);
+}
+
+/*!
+ \enum QJsonDocument::JsonFormat
+
+ This value defines the format of the JSON byte array produced
+ when converting to a QJsonDocument using toJson().
+
+ \value Indented Defines human readable output as follows:
+ \code
+ {
+ "Array": [
+ true,
+ 999,
+ "string"
+ ],
+ "Key": "Value",
+ "null": null
+ }
+ \endcode
+
+ \value Compact Defines a compact output as follows:
+ \code
+ {"Array": [true,999,"string"],"Key": "Value","null": null}
+ \endcode
+ */
+
+/*!
+ Converts the QJsonDocument to a UTF-8 encoded JSON document in the provided \a format.
+
+ \sa fromJson(), JsonFormat
+ */
+QByteArray QJsonDocument::toJson(JsonFormat format) const
+{
if (!d)
return QByteArray();
QByteArray json;
if (d->header->root()->isArray())
- QJsonPrivate::Writer::arrayToJson(static_cast<QJsonPrivate::Array *>(d->header->root()), json, 0);
+ QJsonPrivate::Writer::arrayToJson(static_cast<QJsonPrivate::Array *>(d->header->root()), json, 0, (format == Compact));
else
- QJsonPrivate::Writer::objectToJson(static_cast<QJsonPrivate::Object *>(d->header->root()), json, 0);
+ QJsonPrivate::Writer::objectToJson(static_cast<QJsonPrivate::Object *>(d->header->root()), json, 0, (format == Compact));
return json;
}
diff --git a/src/corelib/json/qjsondocument.h b/src/corelib/json/qjsondocument.h
index 675ee75dbf..4d4f3885dc 100644
--- a/src/corelib/json/qjsondocument.h
+++ b/src/corelib/json/qjsondocument.h
@@ -44,8 +44,6 @@
#include <QtCore/qjsonvalue.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QDebug;
@@ -109,8 +107,19 @@ public:
static QJsonDocument fromVariant(const QVariant &variant);
QVariant toVariant() const;
+ enum JsonFormat {
+ Indented,
+ Compact
+ };
+
static QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error = 0);
- QByteArray toJson() const;
+
+#ifdef Q_QDOC
+ QByteArray toJson(JsonFormat format = Indented) const;
+#else
+ QByteArray toJson() const; //### Merge in Qt6
+ QByteArray toJson(JsonFormat format) const;
+#endif
bool isEmpty() const;
bool isArray() const;
@@ -144,6 +153,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonDocument &);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QJSONDOCUMENT_H
diff --git a/src/corelib/json/qjsonobject.h b/src/corelib/json/qjsonobject.h
index 4168e4b633..8226b614b4 100644
--- a/src/corelib/json/qjsonobject.h
+++ b/src/corelib/json/qjsonobject.h
@@ -45,8 +45,6 @@
#include <QtCore/qjsonvalue.h>
#include <QtCore/qiterator.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QDebug;
@@ -214,6 +212,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonObject &);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QJSONOBJECT_H
diff --git a/src/corelib/json/qjsonvalue.h b/src/corelib/json/qjsonvalue.h
index 38f4a03c0f..b8bdf55aa3 100644
--- a/src/corelib/json/qjsonvalue.h
+++ b/src/corelib/json/qjsonvalue.h
@@ -45,8 +45,6 @@
#include <QtCore/qglobal.h>
#include <QtCore/qstring.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QDebug;
@@ -184,6 +182,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QJsonValue &);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QJSONVALUE_H
diff --git a/src/corelib/kernel/kernel.pri b/src/corelib/kernel/kernel.pri
index 34e32a721d..5a8499d723 100644
--- a/src/corelib/kernel/kernel.pri
+++ b/src/corelib/kernel/kernel.pri
@@ -131,7 +131,7 @@ unix|integrity {
contains(QT_CONFIG, clock-gettime):include($$QT_SOURCE_TREE/config.tests/unix/clock-gettime/clock-gettime.pri)
- !linux-android-* {
+ !android {
SOURCES += kernel/qsharedmemory_unix.cpp \
kernel/qsystemsemaphore_unix.cpp
} else {
diff --git a/src/corelib/kernel/qabstracteventdispatcher.h b/src/corelib/kernel/qabstracteventdispatcher.h
index c07c395a84..6f21cefa4e 100644
--- a/src/corelib/kernel/qabstracteventdispatcher.h
+++ b/src/corelib/kernel/qabstracteventdispatcher.h
@@ -45,8 +45,6 @@
#include <QtCore/qobject.h>
#include <QtCore/qeventloop.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QAbstractNativeEventFilter;
@@ -129,6 +127,4 @@ protected:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QABSTRACTEVENTDISPATCHER_H
diff --git a/src/corelib/kernel/qabstractnativeeventfilter.h b/src/corelib/kernel/qabstractnativeeventfilter.h
index 09701a4923..9d1db2c19b 100644
--- a/src/corelib/kernel/qabstractnativeeventfilter.h
+++ b/src/corelib/kernel/qabstractnativeeventfilter.h
@@ -44,8 +44,6 @@
#include <QtCore/qnamespace.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QAbstractNativeEventFilterPrivate;
@@ -65,6 +63,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif /* QABSTRACTNATIVEEVENTFILTER_H */
diff --git a/src/corelib/kernel/qbasictimer.h b/src/corelib/kernel/qbasictimer.h
index 4fdb00d633..432e4d58c8 100644
--- a/src/corelib/kernel/qbasictimer.h
+++ b/src/corelib/kernel/qbasictimer.h
@@ -45,8 +45,6 @@
#include <QtCore/qglobal.h>
#include <QtCore/qnamespace.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -70,6 +68,4 @@ Q_DECLARE_TYPEINFO(QBasicTimer, Q_MOVABLE_TYPE);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QBASICTIMER_H
diff --git a/src/corelib/kernel/qcore_mac_p.h b/src/corelib/kernel/qcore_mac_p.h
index cbbbc18814..35688f7463 100644
--- a/src/corelib/kernel/qcore_mac_p.h
+++ b/src/corelib/kernel/qcore_mac_p.h
@@ -63,6 +63,8 @@
#include <CoreFoundation/CoreFoundation.h>
#endif
+#include "qglobal.h"
+
#ifndef Q_OS_IOS
#include <CoreServices/CoreServices.h>
#endif
@@ -137,14 +139,4 @@ private:
QT_END_NAMESPACE
-#if (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5)
-#ifndef __LP64__
- typedef float CGFloat;
- typedef int NSInteger;
- typedef unsigned int NSUInteger;
- #define SRefCon SInt32
- #define URefCon UInt32
-#endif
-#endif
-
#endif // QCORE_MAC_P_H
diff --git a/src/corelib/kernel/qcore_unix.cpp b/src/corelib/kernel/qcore_unix.cpp
index cc5479876d..241658acb1 100644
--- a/src/corelib/kernel/qcore_unix.cpp
+++ b/src/corelib/kernel/qcore_unix.cpp
@@ -60,8 +60,8 @@
QT_BEGIN_NAMESPACE
-static inline bool time_update(struct timeval *tv, const struct timeval &start,
- const struct timeval &timeout)
+static inline bool time_update(struct timespec *tv, const struct timespec &start,
+ const struct timespec &timeout)
{
if (!QElapsedTimer::isMonotonic()) {
// we cannot recalculate the timeout without a monotonic clock as the time may have changed
@@ -69,13 +69,13 @@ static inline bool time_update(struct timeval *tv, const struct timeval &start,
}
// clock source is monotonic, so we can recalculate how much timeout is left
- struct timeval now = qt_gettime();
+ struct timespec now = qt_gettime();
*tv = timeout + start - now;
return tv->tv_sec >= 0;
}
int qt_safe_select(int nfds, fd_set *fdread, fd_set *fdwrite, fd_set *fdexcept,
- const struct timeval *orig_timeout)
+ const struct timespec *orig_timeout)
{
if (!orig_timeout) {
// no timeout -> block forever
@@ -84,13 +84,20 @@ int qt_safe_select(int nfds, fd_set *fdread, fd_set *fdwrite, fd_set *fdexcept,
return ret;
}
- timeval start = qt_gettime();
- timeval timeout = *orig_timeout;
+ timespec start = qt_gettime();
+ timespec timeout = *orig_timeout;
// loop and recalculate the timeout as needed
int ret;
forever {
- ret = ::select(nfds, fdread, fdwrite, fdexcept, &timeout);
+#ifndef Q_OS_QNX
+ ret = ::pselect(nfds, fdread, fdwrite, fdexcept, &timeout, 0);
+#else
+ timeval timeoutVal;
+ timeoutVal.tv_sec = timeout.tv_sec;
+ timeoutVal.tv_usec = timeout.tv_nsec / 1000;
+ ret = ::select(nfds, fdread, fdwrite, fdexcept, &timeoutVal);
+#endif
if (ret != -1 || errno != EINTR)
return ret;
diff --git a/src/corelib/kernel/qcore_unix_p.h b/src/corelib/kernel/qcore_unix_p.h
index 6342b0362a..b68146cd6c 100644
--- a/src/corelib/kernel/qcore_unix_p.h
+++ b/src/corelib/kernel/qcore_unix_p.h
@@ -100,49 +100,49 @@ using namespace QT_PREPEND_NAMESPACE(QtLibcSupplement);
QT_BEGIN_NAMESPACE
-// Internal operator functions for timevals
-inline timeval &normalizedTimeval(timeval &t)
+// Internal operator functions for timespecs
+inline timespec &normalizedTimespec(timespec &t)
{
- while (t.tv_usec >= 1000000) {
+ while (t.tv_nsec >= 1000000000) {
++t.tv_sec;
- t.tv_usec -= 1000000;
+ t.tv_nsec -= 1000000000;
}
- while (t.tv_usec < 0) {
+ while (t.tv_nsec < 0) {
--t.tv_sec;
- t.tv_usec += 1000000;
+ t.tv_nsec += 1000000000;
}
return t;
}
-inline bool operator<(const timeval &t1, const timeval &t2)
-{ return t1.tv_sec < t2.tv_sec || (t1.tv_sec == t2.tv_sec && t1.tv_usec < t2.tv_usec); }
-inline bool operator==(const timeval &t1, const timeval &t2)
-{ return t1.tv_sec == t2.tv_sec && t1.tv_usec == t2.tv_usec; }
-inline timeval &operator+=(timeval &t1, const timeval &t2)
+inline bool operator<(const timespec &t1, const timespec &t2)
+{ return t1.tv_sec < t2.tv_sec || (t1.tv_sec == t2.tv_sec && t1.tv_nsec < t2.tv_nsec); }
+inline bool operator==(const timespec &t1, const timespec &t2)
+{ return t1.tv_sec == t2.tv_sec && t1.tv_nsec == t2.tv_nsec; }
+inline timespec &operator+=(timespec &t1, const timespec &t2)
{
t1.tv_sec += t2.tv_sec;
- t1.tv_usec += t2.tv_usec;
- return normalizedTimeval(t1);
+ t1.tv_nsec += t2.tv_nsec;
+ return normalizedTimespec(t1);
}
-inline timeval operator+(const timeval &t1, const timeval &t2)
+inline timespec operator+(const timespec &t1, const timespec &t2)
{
- timeval tmp;
+ timespec tmp;
tmp.tv_sec = t1.tv_sec + t2.tv_sec;
- tmp.tv_usec = t1.tv_usec + t2.tv_usec;
- return normalizedTimeval(tmp);
+ tmp.tv_nsec = t1.tv_nsec + t2.tv_nsec;
+ return normalizedTimespec(tmp);
}
-inline timeval operator-(const timeval &t1, const timeval &t2)
+inline timespec operator-(const timespec &t1, const timespec &t2)
{
- timeval tmp;
+ timespec tmp;
tmp.tv_sec = t1.tv_sec - (t2.tv_sec - 1);
- tmp.tv_usec = t1.tv_usec - (t2.tv_usec + 1000000);
- return normalizedTimeval(tmp);
+ tmp.tv_nsec = t1.tv_nsec - (t2.tv_nsec + 1000000000);
+ return normalizedTimespec(tmp);
}
-inline timeval operator*(const timeval &t1, int mul)
+inline timespec operator*(const timespec &t1, int mul)
{
- timeval tmp;
+ timespec tmp;
tmp.tv_sec = t1.tv_sec * mul;
- tmp.tv_usec = t1.tv_usec * mul;
- return normalizedTimeval(tmp);
+ tmp.tv_nsec = t1.tv_nsec * mul;
+ return normalizedTimespec(tmp);
}
inline void qt_ignore_sigpipe()
@@ -335,11 +335,11 @@ static inline pid_t qt_safe_waitpid(pid_t pid, int *status, int options)
#endif
// in qelapsedtimer_mac.cpp or qtimestamp_unix.cpp
-timeval qt_gettime() Q_DECL_NOTHROW;
+timespec qt_gettime() Q_DECL_NOTHROW;
void qt_nanosleep(timespec amount);
Q_CORE_EXPORT int qt_safe_select(int nfds, fd_set *fdread, fd_set *fdwrite, fd_set *fdexcept,
- const struct timeval *tv);
+ const struct timespec *tv);
// according to X/OPEN we have to define semun ourselves
// we use prefix as on some systems sem.h will have it
diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
index ec808424f9..46de52ec9f 100644
--- a/src/corelib/kernel/qcoreapplication.cpp
+++ b/src/corelib/kernel/qcoreapplication.cpp
@@ -194,8 +194,32 @@ extern "C" void Q_CORE_EXPORT qt_startup_hook()
{
}
+typedef QList<QtStartUpFunction> QStartUpFuncList;
+Q_GLOBAL_STATIC(QStartUpFuncList, preRList)
typedef QList<QtCleanUpFunction> QVFuncList;
Q_GLOBAL_STATIC(QVFuncList, postRList)
+static QBasicMutex globalPreRoutinesMutex;
+
+/*!
+ \internal
+
+ Adds a global routine that will be called from the QCoreApplication
+ constructor. The public API is Q_COREAPP_STARTUP_FUNCTION.
+*/
+void qAddPreRoutine(QtStartUpFunction p)
+{
+ QStartUpFuncList *list = preRList();
+ if (!list)
+ return;
+ // Due to C++11 parallel dynamic initialization, this can be called
+ // from multiple threads.
+#ifndef QT_NO_THREAD
+ QMutexLocker locker(&globalPreRoutinesMutex);
+#endif
+ if (QCoreApplication::instance())
+ p();
+ list->prepend(p); // in case QCoreApplication is re-created, see qt_call_pre_routines
+}
void qAddPostRoutine(QtCleanUpFunction p)
{
@@ -213,6 +237,21 @@ void qRemovePostRoutine(QtCleanUpFunction p)
list->removeAll(p);
}
+static void qt_call_pre_routines()
+{
+ QStartUpFuncList *list = preRList();
+ if (!list)
+ return;
+#ifndef QT_NO_THREAD
+ QMutexLocker locker(&globalPreRoutinesMutex);
+#endif
+ // Unlike qt_call_post_routines, we don't empty the list, because
+ // Q_COREAPP_STARTUP_FUNCTION is a macro, so the user expects
+ // the function to be executed every time QCoreApplication is created.
+ for (int i = 0; i < list->count(); ++i)
+ list->at(i)();
+}
+
void Q_CORE_EXPORT qt_call_post_routines()
{
QVFuncList *list = 0;
@@ -261,13 +300,6 @@ struct QCoreApplicationData {
#ifndef QT_NO_LIBRARY
delete app_libpaths;
#endif
-
- // cleanup the QAdoptedThread created for the main() thread
- if (QCoreApplicationPrivate::theMainThread) {
- QThreadData *data = QThreadData::get2(QCoreApplicationPrivate::theMainThread);
- QCoreApplicationPrivate::theMainThread = 0;
- data->deref(); // deletes the data and the adopted thread
- }
}
#ifdef Q_OS_BLACKBERRY
@@ -637,6 +669,7 @@ void QCoreApplication::init()
d->processCommandLineArguments();
+ qt_call_pre_routines();
qt_startup_hook();
}
@@ -1999,9 +2032,21 @@ QStringList QCoreApplication::arguments()
\sa organizationDomain, applicationName
*/
+/*!
+ \fn void QCoreApplication::organizationNameChanged()
+ \internal
+
+ While not useful from C++ due to how organizationName is normally set once on
+ startup, this is still needed for QML so that bindings are reevaluated after
+ that initial change.
+*/
void QCoreApplication::setOrganizationName(const QString &orgName)
{
+ if (coreappdata()->orgName == orgName)
+ return;
coreappdata()->orgName = orgName;
+ if (QCoreApplication::self)
+ emit QCoreApplication::self->organizationNameChanged();
}
QString QCoreApplication::organizationName()
@@ -2027,9 +2072,19 @@ QString QCoreApplication::organizationName()
\sa organizationName, applicationName, applicationVersion
*/
+/*!
+ \fn void QCoreApplication::organizationDomainChanged()
+ \internal
+
+ Primarily for QML, see organizationNameChanged.
+*/
void QCoreApplication::setOrganizationDomain(const QString &orgDomain)
{
+ if (coreappdata()->orgDomain == orgDomain)
+ return;
coreappdata()->orgDomain = orgDomain;
+ if (QCoreApplication::self)
+ emit QCoreApplication::self->organizationDomainChanged();
}
QString QCoreApplication::organizationDomain()
@@ -2049,9 +2104,19 @@ QString QCoreApplication::organizationDomain()
\sa organizationName, organizationDomain, applicationVersion, applicationFilePath
*/
+/*!
+ \fn void QCoreApplication::applicationNameChanged()
+ \internal
+
+ Primarily for QML, see organizationNameChanged.
+*/
void QCoreApplication::setApplicationName(const QString &application)
{
+ if (coreappdata()->application == application)
+ return;
coreappdata()->application = application;
+ if (QCoreApplication::self)
+ emit QCoreApplication::self->applicationNameChanged();
}
QString QCoreApplication::applicationName()
@@ -2078,9 +2143,19 @@ Q_CORE_EXPORT QString qt_applicationName_noFallback()
\sa applicationName, organizationName, organizationDomain
*/
+/*!
+ \fn void QCoreApplication::applicationVersionChanged()
+ \internal
+
+ Primarily for QML, see organizationNameChanged.
+*/
void QCoreApplication::setApplicationVersion(const QString &version)
{
+ if (coreappdata()->applicationVersion == version)
+ return;
coreappdata()->applicationVersion = version;
+ if (QCoreApplication::self)
+ emit QCoreApplication::self->applicationVersionChanged();
}
QString QCoreApplication::applicationVersion()
@@ -2325,6 +2400,31 @@ void QCoreApplication::setEventDispatcher(QAbstractEventDispatcher *eventDispatc
}
/*!
+ \macro Q_COREAPP_STARTUP_FUNCTION(QtStartUpFunction ptr)
+ \since 5.1
+ \relates QCoreApplication
+ \reentrant
+
+ Adds a global function that will be called from the QCoreApplication
+ constructor. This macro is normally used to initialize libraries
+ for program-wide functionality, without requiring the application to
+ call into the library for initialization.
+
+ The function specified by \a ptr should take no arguments and should
+ return nothing. For example:
+
+ \snippet code/src_corelib_kernel_qcoreapplication.cpp 3
+
+ Note that the startup function will run at the end of the QCoreApplication constructor,
+ before any GUI initialization. If GUI code is required in the function,
+ use a timer (or a queued invocation) to perform the initialization later on,
+ from the event loop.
+
+ If QCoreApplication is deleted and another QCoreApplication is created,
+ the startup function will be invoked again.
+*/
+
+/*!
\fn void qAddPostRoutine(QtCleanUpFunction ptr)
\relates QCoreApplication
diff --git a/src/corelib/kernel/qcoreapplication.h b/src/corelib/kernel/qcoreapplication.h
index 0a87689ff3..022ef8c0bc 100644
--- a/src/corelib/kernel/qcoreapplication.h
+++ b/src/corelib/kernel/qcoreapplication.h
@@ -50,8 +50,6 @@
typedef struct tagMSG MSG;
#endif
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -68,10 +66,10 @@ class QAbstractNativeEventFilter;
class Q_CORE_EXPORT QCoreApplication : public QObject
{
Q_OBJECT
- Q_PROPERTY(QString applicationName READ applicationName WRITE setApplicationName)
- Q_PROPERTY(QString applicationVersion READ applicationVersion WRITE setApplicationVersion)
- Q_PROPERTY(QString organizationName READ organizationName WRITE setOrganizationName)
- Q_PROPERTY(QString organizationDomain READ organizationDomain WRITE setOrganizationDomain)
+ Q_PROPERTY(QString applicationName READ applicationName WRITE setApplicationName NOTIFY applicationNameChanged)
+ Q_PROPERTY(QString applicationVersion READ applicationVersion WRITE setApplicationVersion NOTIFY applicationVersionChanged)
+ Q_PROPERTY(QString organizationName READ organizationName WRITE setOrganizationName NOTIFY organizationNameChanged)
+ Q_PROPERTY(QString organizationDomain READ organizationDomain WRITE setOrganizationDomain NOTIFY organizationDomainChanged)
Q_PROPERTY(bool quitLockEnabled READ isQuitLockEnabled WRITE setQuitLockEnabled)
Q_DECLARE_PRIVATE(QCoreApplication)
@@ -166,6 +164,11 @@ Q_SIGNALS:
#endif
);
+ void organizationNameChanged();
+ void organizationDomainChanged();
+ void applicationNameChanged();
+ void applicationVersionChanged();
+
protected:
bool event(QEvent *);
@@ -220,12 +223,20 @@ public: \
{ return QCoreApplication::translate(#context, sourceText, disambiguation, n); } \
private:
+typedef void (*QtStartUpFunction)();
typedef void (*QtCleanUpFunction)();
+Q_CORE_EXPORT void qAddPreRoutine(QtStartUpFunction);
Q_CORE_EXPORT void qAddPostRoutine(QtCleanUpFunction);
Q_CORE_EXPORT void qRemovePostRoutine(QtCleanUpFunction);
Q_CORE_EXPORT QString qAppName(); // get application name
+#define Q_COREAPP_STARTUP_FUNCTION(AFUNC) \
+ static void AFUNC ## _ctor_function() { \
+ qAddPreRoutine(AFUNC); \
+ } \
+ Q_CONSTRUCTOR_FUNCTION(AFUNC ## _ctor_function)
+
#if defined(Q_OS_WIN) && !defined(QT_NO_DEBUG_STREAM)
Q_CORE_EXPORT QString decodeMSG(const MSG &);
Q_CORE_EXPORT QDebug operator<<(QDebug, const MSG &);
@@ -233,6 +244,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const MSG &);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QCOREAPPLICATION_H
diff --git a/src/corelib/kernel/qcoreevent.h b/src/corelib/kernel/qcoreevent.h
index d35b5198a9..47a461d330 100644
--- a/src/corelib/kernel/qcoreevent.h
+++ b/src/corelib/kernel/qcoreevent.h
@@ -46,8 +46,6 @@
#include <QtCore/qbytearray.h>
#include <QtCore/qobjectdefs.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -377,6 +375,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QCOREEVENT_H
diff --git a/src/corelib/kernel/qeventdispatcher_blackberry.cpp b/src/corelib/kernel/qeventdispatcher_blackberry.cpp
index 3e958ee277..5206334c09 100644
--- a/src/corelib/kernel/qeventdispatcher_blackberry.cpp
+++ b/src/corelib/kernel/qeventdispatcher_blackberry.cpp
@@ -271,13 +271,13 @@ void QEventDispatcherBlackberry::unregisterSocketNotifier(QSocketNotifier *notif
}
}
-static inline int timevalToMillisecs(const timeval &tv)
+static inline int timespecToMillisecs(const timespec &tv)
{
- return (tv.tv_sec * 1000) + (tv.tv_usec / 1000);
+ return (tv.tv_sec * 1000) + (tv.tv_nsec / 1000000);
}
int QEventDispatcherBlackberry::select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
- timeval *timeout)
+ timespec *timeout)
{
Q_UNUSED(nfds);
Q_D(QEventDispatcherBlackberry);
@@ -306,9 +306,9 @@ int QEventDispatcherBlackberry::select(int nfds, fd_set *readfds, fd_set *writef
// Convert timeout to milliseconds
int timeoutTotal = -1;
if (timeout)
- timeoutTotal = timevalToMillisecs(*timeout);
+ timeoutTotal = timespecToMillisecs(*timeout);
int timeoutLeft = timeoutTotal;
- timeval startTime = qt_gettime();
+ timespec startTime = qt_gettime();
// This loop exists such that we can drain the bps event queue of all native events
// more efficiently than if we were to return control to Qt after each event. This
@@ -332,16 +332,16 @@ int QEventDispatcherBlackberry::select(int nfds, fd_set *readfds, fd_set *writef
// Update the timeout
// Clock source is monotonic, so we can recalculate how much timeout is left
if (timeoutTotal != -1) {
- timeval t2 = qt_gettime();
+ timespec t2 = qt_gettime();
timeoutLeft = timeoutTotal
- - (timevalToMillisecs(t2) - timevalToMillisecs(startTime));
+ - (timespecToMillisecs(t2) - timespecToMillisecs(startTime));
if (timeoutLeft < 0)
timeoutLeft = 0;
}
- timeval tnext;
+ timespec tnext;
if (d->timerList.timerWait(tnext)) {
- int timeoutNext = timevalToMillisecs(tnext);
+ int timeoutNext = timespecToMillisecs(tnext);
if (timeoutNext < timeoutLeft || timeoutTotal == -1) {
timeoutTotal = timeoutLeft = timeoutNext;
startTime = qt_gettime();
diff --git a/src/corelib/kernel/qeventdispatcher_blackberry_p.h b/src/corelib/kernel/qeventdispatcher_blackberry_p.h
index 79ed21dbf2..5a4c3a9dcd 100644
--- a/src/corelib/kernel/qeventdispatcher_blackberry_p.h
+++ b/src/corelib/kernel/qeventdispatcher_blackberry_p.h
@@ -77,7 +77,7 @@ protected:
QEventDispatcherBlackberry(QEventDispatcherBlackberryPrivate &dd, QObject *parent = 0);
int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
- timeval *timeout);
+ timespec *timeout);
int ioEvents(int fd);
};
diff --git a/src/corelib/kernel/qeventdispatcher_glib.cpp b/src/corelib/kernel/qeventdispatcher_glib.cpp
index c6680d6a80..75cd88c456 100644
--- a/src/corelib/kernel/qeventdispatcher_glib.cpp
+++ b/src/corelib/kernel/qeventdispatcher_glib.cpp
@@ -131,9 +131,9 @@ struct GTimerSource
static gboolean timerSourcePrepareHelper(GTimerSource *src, gint *timeout)
{
- timeval tv = { 0l, 0l };
+ timespec tv = { 0l, 0l };
if (!(src->processEventsFlags & QEventLoop::X11ExcludeTimers) && src->timerList.timerWait(tv))
- *timeout = (tv.tv_sec * 1000) + ((tv.tv_usec + 999) / 1000);
+ *timeout = (tv.tv_sec * 1000) + ((tv.tv_nsec + 999999) / 1000 / 1000);
else
*timeout = -1;
diff --git a/src/corelib/kernel/qeventdispatcher_unix.cpp b/src/corelib/kernel/qeventdispatcher_unix.cpp
index acdc7635e8..c79fe89105 100644
--- a/src/corelib/kernel/qeventdispatcher_unix.cpp
+++ b/src/corelib/kernel/qeventdispatcher_unix.cpp
@@ -56,6 +56,10 @@
#include <stdio.h>
#include <stdlib.h>
+#ifndef QT_NO_EVENTFD
+# include <sys/eventfd.h>
+#endif
+
// VxWorks doesn't correctly set the _POSIX_... options
#if defined(Q_OS_VXWORKS)
# if defined(_POSIX_MONOTONIC_CLOCK) && (_POSIX_MONOTONIC_CLOCK <= 0)
@@ -109,7 +113,7 @@ QEventDispatcherUNIXPrivate::QEventDispatcherUNIXPrivate()
}
#elif defined(Q_OS_VXWORKS)
char name[20];
- qsnprintf(name, sizeof(name), "/pipe/qt_%08x", int(taskIdCurrent));
+ qsnprintf(name, sizeof(name), "/pipe/qt_%08x", int(taskIdSelf()));
// make sure there is no pipe with this name
pipeDevDelete(name, true);
@@ -127,6 +131,12 @@ QEventDispatcherUNIXPrivate::QEventDispatcherUNIXPrivate()
}
}
#else
+# ifndef QT_NO_EVENTFD
+ thread_pipe[0] = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC);
+ if (thread_pipe[0] != -1)
+ thread_pipe[1] = -1;
+ else // fall through the next "if"
+# endif
if (qt_safe_pipe(thread_pipe, O_NONBLOCK) == -1) {
perror("QEventDispatcherUNIXPrivate(): Unable to create thread pipe");
pipefail = true;
@@ -149,20 +159,21 @@ QEventDispatcherUNIXPrivate::~QEventDispatcherUNIXPrivate()
close(thread_pipe[0]);
char name[20];
- qsnprintf(name, sizeof(name), "/pipe/qt_%08x", int(taskIdCurrent));
+ qsnprintf(name, sizeof(name), "/pipe/qt_%08x", int(taskIdSelf()));
pipeDevDelete(name, true);
#else
// cleanup the common parts of the event loop
close(thread_pipe[0]);
- close(thread_pipe[1]);
+ if (thread_pipe[1] != -1)
+ close(thread_pipe[1]);
#endif
// cleanup timers
qDeleteAll(timerList);
}
-int QEventDispatcherUNIXPrivate::doSelect(QEventLoop::ProcessEventsFlags flags, timeval *timeout)
+int QEventDispatcherUNIXPrivate::doSelect(QEventLoop::ProcessEventsFlags flags, timespec *timeout)
{
Q_Q(QEventDispatcherUNIX);
@@ -279,9 +290,18 @@ int QEventDispatcherUNIXPrivate::processThreadWakeUp(int nsel)
::read(thread_pipe[0], c, sizeof(c));
::ioctl(thread_pipe[0], FIOFLUSH, 0);
#else
- char c[16];
- while (::read(thread_pipe[0], c, sizeof(c)) > 0)
- ;
+# ifndef QT_NO_EVENTFD
+ if (thread_pipe[1] == -1) {
+ // eventfd
+ eventfd_t value;
+ eventfd_read(thread_pipe[0], &value);
+ } else
+# endif
+ {
+ char c[16];
+ while (::read(thread_pipe[0], c, sizeof(c)) > 0) {
+ }
+ }
#endif
if (!wakeUps.testAndSetRelease(1, 0)) {
// hopefully, this is dead code
@@ -307,7 +327,7 @@ QEventDispatcherUNIX::~QEventDispatcherUNIX()
}
int QEventDispatcherUNIX::select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
- timeval *timeout)
+ timespec *timeout)
{
return qt_safe_select(nfds, readfds, writefds, exceptfds, timeout);
}
@@ -580,8 +600,8 @@ bool QEventDispatcherUNIX::processEvents(QEventLoop::ProcessEventsFlags flags)
if (!d->interrupt) {
// return the maximum time we can wait for an event.
- timeval *tm = 0;
- timeval wait_tm = { 0l, 0l };
+ timespec *tm = 0;
+ timespec wait_tm = { 0l, 0l };
if (!(flags & QEventLoop::X11ExcludeTimers)) {
if (d->timerList.timerWait(wait_tm))
tm = &wait_tm;
@@ -593,7 +613,7 @@ bool QEventDispatcherUNIX::processEvents(QEventLoop::ProcessEventsFlags flags)
// no time to wait
tm->tv_sec = 0l;
- tm->tv_usec = 0l;
+ tm->tv_nsec = 0l;
}
nevents = d->doSelect(flags, tm);
@@ -630,6 +650,15 @@ void QEventDispatcherUNIX::wakeUp()
{
Q_D(QEventDispatcherUNIX);
if (d->wakeUps.testAndSetAcquire(0, 1)) {
+#ifndef QT_NO_EVENTFD
+ if (d->thread_pipe[1] == -1) {
+ // eventfd
+ eventfd_t value = 1;
+ int ret;
+ EINTR_LOOP(ret, eventfd_write(d->thread_pipe[0], value));
+ return;
+ }
+#endif
char c = 0;
qt_safe_write( d->thread_pipe[1], &c, 1 );
}
diff --git a/src/corelib/kernel/qeventdispatcher_unix_p.h b/src/corelib/kernel/qeventdispatcher_unix_p.h
index afebe2fb7e..db89b7c444 100644
--- a/src/corelib/kernel/qeventdispatcher_unix_p.h
+++ b/src/corelib/kernel/qeventdispatcher_unix_p.h
@@ -61,9 +61,7 @@
#include "QtCore/qvarlengtharray.h"
#include "private/qtimerinfo_unix_p.h"
-#if defined(Q_OS_VXWORKS)
-# include <sys/times.h>
-#else
+#if !defined(Q_OS_VXWORKS)
# include <sys/time.h>
# if (!defined(Q_OS_HPUX) || defined(__ia64)) && !defined(Q_OS_NACL)
# include <sys/select.h>
@@ -132,7 +130,7 @@ protected:
virtual int select(int nfds,
fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
- timeval *timeout);
+ timespec *timeout);
};
class Q_CORE_EXPORT QEventDispatcherUNIXPrivate : public QAbstractEventDispatcherPrivate
@@ -143,11 +141,14 @@ public:
QEventDispatcherUNIXPrivate();
~QEventDispatcherUNIXPrivate();
- int doSelect(QEventLoop::ProcessEventsFlags flags, timeval *timeout);
+ int doSelect(QEventLoop::ProcessEventsFlags flags, timespec *timeout);
virtual int initThreadWakeUp();
virtual int processThreadWakeUp(int nsel);
bool mainThread;
+
+ // note for eventfd(7) support:
+ // if thread_pipe[1] is -1, then eventfd(7) is in use and is stored in thread_pipe[0]
int thread_pipe[2];
// highest fd for all socket notifiers
diff --git a/src/corelib/kernel/qeventloop.h b/src/corelib/kernel/qeventloop.h
index d4141a05bc..926be08265 100644
--- a/src/corelib/kernel/qeventloop.h
+++ b/src/corelib/kernel/qeventloop.h
@@ -44,8 +44,6 @@
#include <QtCore/qobject.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -106,6 +104,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QEVENTLOOP_H
diff --git a/src/corelib/kernel/qeventloop_p.h b/src/corelib/kernel/qeventloop_p.h
index 21a1dcda4c..8e2bfdb55e 100644
--- a/src/corelib/kernel/qeventloop_p.h
+++ b/src/corelib/kernel/qeventloop_p.h
@@ -44,8 +44,6 @@
#include "qobject_p.h"
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QEventLoopPrivate : public QObjectPrivate
@@ -76,6 +74,4 @@ public:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QEVENTLOOP_P_H
diff --git a/src/corelib/kernel/qfunctions_nacl.h b/src/corelib/kernel/qfunctions_nacl.h
index 2cb9d16c95..bc44a21cb8 100644
--- a/src/corelib/kernel/qfunctions_nacl.h
+++ b/src/corelib/kernel/qfunctions_nacl.h
@@ -52,8 +52,6 @@
#define PTHREAD_CANCEL_ENABLE 2
#define PTHREAD_INHERIT_SCHED 3
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -89,8 +87,6 @@ int select(int nfds, fd_set * readfds, fd_set * writefds, fd_set * errorfds, str
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif //Q_OS_NACL
#endif //QFUNCTIONS_NACL_H
diff --git a/src/corelib/kernel/qfunctions_p.h b/src/corelib/kernel/qfunctions_p.h
index 57c6a8f295..6e094f1ed3 100644
--- a/src/corelib/kernel/qfunctions_p.h
+++ b/src/corelib/kernel/qfunctions_p.h
@@ -72,8 +72,5 @@
# define Q_STATIC_GLOBAL_INLINE_OPERATOR static inline
#endif
-QT_BEGIN_HEADER
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/kernel/qfunctions_vxworks.cpp b/src/corelib/kernel/qfunctions_vxworks.cpp
index 2174588757..e1abecb9d6 100644
--- a/src/corelib/kernel/qfunctions_vxworks.cpp
+++ b/src/corelib/kernel/qfunctions_vxworks.cpp
@@ -46,7 +46,9 @@
#include "qplatformdefs.h"
#include "qfunctions_vxworks.h"
+#if defined(_WRS_KERNEL)
#include <vmLib.h>
+#endif
#include <selectLib.h>
#include <ioLib.h>
@@ -74,10 +76,12 @@ void *lfind(const void* key, const void* base, size_t* elements, size_t size,
// no rand_r(), but rand()
// NOTE: this implementation is wrong for multi threaded applications,
// but there is no way to get it right on VxWorks (in kernel mode)
+#if defined(_WRS_KERNEL)
int rand_r(unsigned int * /*seedp*/)
{
return rand();
}
+#endif
// no usleep() support
int usleep(unsigned int usec)
@@ -92,7 +96,7 @@ int usleep(unsigned int usec)
// gettimeofday() is declared, but is missing from the library
// It IS however defined in the Curtis-Wright X11 libraries, so
// we have to make the symbol 'weak'
-#if defined(Q_CC_DIAB)
+#if defined(Q_CC_DIAB) && !defined(VXWORKS_DKM) && !defined(VXWORKS_RTP)
# pragma weak gettimeofday
#endif
int gettimeofday(struct timeval *tv, void /*struct timezone*/ *)
@@ -118,7 +122,11 @@ int gettimeofday(struct timeval *tv, void /*struct timezone*/ *)
// neither getpagesize() or sysconf(_SC_PAGESIZE) are available
int getpagesize()
{
+#if defined(_WRS_KERNEL)
return vmPageSizeGet();
+#else
+ return sysconf(_SC_PAGESIZE);
+#endif
}
// symlinks are not supported (lstat is now just a call to stat - see qplatformdefs.h)
diff --git a/src/corelib/kernel/qfunctions_vxworks.h b/src/corelib/kernel/qfunctions_vxworks.h
index 6339903cff..02c599f490 100644
--- a/src/corelib/kernel/qfunctions_vxworks.h
+++ b/src/corelib/kernel/qfunctions_vxworks.h
@@ -52,7 +52,11 @@
#include <errno.h>
#include <sys/types.h>
#include <sys/ioctl.h>
+#if defined(_WRS_KERNEL)
#include <sys/times.h>
+#else
+#include <sys/time.h>
+#endif
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/wait.h>
@@ -61,15 +65,50 @@
#include <net/if.h>
#endif
-QT_BEGIN_HEADER
+// VxWorks has public header mbuf.h which defines following variables for DKM.
+// Let's undef those to because they overlap with Qt variable names-
+// File mbuf.h is included in headers <netinet/in.h> <net/if.h>, so make sure
+// that those are included before undef's.
+#if defined(mbuf)
+# undef mbuf
+#endif
+#if defined(m_data)
+# undef m_data
+#endif
+#if defined(m_type)
+# undef m_type
+#endif
+#if defined(m_next)
+# undef m_next
+#endif
+#if defined(m_len)
+# undef m_len
+#endif
+#if defined(m_flags)
+# undef m_flags
+#endif
+#if defined(m_hdr)
+# undef m_hdr
+#endif
+#if defined(m_ext)
+# undef m_ext
+#endif
+#if defined(m_act)
+# undef m_act
+#endif
+#if defined(m_nextpkt)
+# undef m_nextpkt
+#endif
+#if defined(m_pkthdr)
+# undef m_pkthdr
+#endif
+
QT_BEGIN_NAMESPACE
#ifdef QT_BUILD_CORE_LIB
#endif
QT_END_NAMESPACE
-QT_END_HEADER
-
#ifndef RTLD_LOCAL
#define RTLD_LOCAL 0
@@ -95,17 +134,23 @@ void *lfind(const void* key, const void* base, size_t* elements, size_t size,
// no rand_r(), but rand()
// NOTE: this implementation is wrong for multi threaded applications,
// but there is no way to get it right on VxWorks (in kernel mode)
+#if defined(_WRS_KERNEL)
int rand_r(unsigned int * /*seedp*/);
+#endif
// no usleep() support
int usleep(unsigned int);
+#if defined(VXWORKS_DKM) || defined(VXWORKS_RTP)
+int gettimeofday(struct timeval *, void *);
+#else
// gettimeofday() is declared, but is missing from the library.
// It IS however defined in the Curtis-Wright X11 libraries, so
// we have to make the symbol 'weak'
int gettimeofday(struct timeval *tv, void /*struct timezone*/ *) __attribute__((weak));
+#endif
-// neither getpagesize() or sysconf(_SC_PAGESIZE) are available
+// getpagesize() not available
int getpagesize();
// symlinks are not supported (lstat is now just a call to stat - see qplatformdefs.h)
diff --git a/src/corelib/kernel/qfunctions_wince.h b/src/corelib/kernel/qfunctions_wince.h
index e20a4ceaca..4eeb9cff6a 100644
--- a/src/corelib/kernel/qfunctions_wince.h
+++ b/src/corelib/kernel/qfunctions_wince.h
@@ -56,15 +56,12 @@
#include <winsock.h>
#include <ceconfig.h>
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
#ifdef QT_BUILD_CORE_LIB
#endif
QT_END_NAMESPACE
-QT_END_HEADER
-
// The standard SDK misses this define...
#define _control87 _controlfp
diff --git a/src/corelib/kernel/qmath.cpp b/src/corelib/kernel/qmath.cpp
index 1d6fcc2cd6..8f900e2101 100644
--- a/src/corelib/kernel/qmath.cpp
+++ b/src/corelib/kernel/qmath.cpp
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2013 Laszlo Papp <lpapp@kde.org>
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -302,4 +303,90 @@ const qreal qt_sine_table[QT_SINE_TABLE_SIZE] = {
qreal(-0.024541228522912448)
};
+/*!
+ \headerfile <QtMath>
+ \title Generic Math Declarations
+ \ingroup funclists
+
+ \brief The <QtMath> header file includes generic math declarations.
+
+ The global declarations include \l{functions}.
+
+ These functions are partly convenience definitions for basic
+ operations, for instance not available in the Standard Template Library et
+ al.
+*/
+
+/*!
+ \fn float qDegreesToRadians(float degrees)
+ \relates <QtMath>
+ \since 5.1
+
+ \brief The function converts the \a degrees in float to radians.
+
+ The purpose of the function is to aid the conversion as such a convenient
+ function is not part of the Standard Template Library, i.e. in <cmath> or
+ elsewhere.
+
+ Example:
+
+ \snippet code/src_corelib_kernel_qmath.cpp 0
+
+ \sa qRadiansToDegrees()
+*/
+
+/*!
+ \fn double qDegreesToRadians(double degrees)
+ \relates <QtMath>
+ \since 5.1
+
+ \brief The function converts the \a degrees in double to radians.
+
+ The purpose of the function is to aid the conversion as such a convenient
+ function is not part of the Standard Template Library, i.e. in <cmath> or
+ elsewhere.
+
+ Example:
+
+ \snippet code/src_corelib_kernel_qmath.cpp 1
+
+ \sa qRadiansToDegrees()
+*/
+
+/*!
+ \fn float qRadiansToDegrees(float radians)
+ \relates <QtMath>
+ \since 5.1
+
+ \brief The function converts the \a radians in float to degrees.
+
+ The purpose of the function is to aid the conversion as such a convenient
+ function is not part of the Standard Template Library, i.e. in <cmath> or
+ elsewhere.
+
+ Example:
+
+ \snippet code/src_corelib_kernel_qmath.cpp 2
+
+ \sa qDegreesToRadians()
+*/
+
+/*!
+ \fn double qRadiansToDegrees(double radians)
+ \relates <QtMath>
+ \since 5.1
+
+ \brief The function converts the \a radians in double to degrees.
+
+ The purpose of the function is to aid the conversion as such a convenient
+ function is not part of the Standard Template Library, i.e. in <cmath> or
+ elsewhere.
+
+ Example:
+
+ \snippet code/src_corelib_kernel_qmath.cpp 3
+
+ \sa qDegreesToRadians()
+*/
+
QT_END_NAMESPACE
diff --git a/src/corelib/kernel/qmath.h b/src/corelib/kernel/qmath.h
index 097200d690..21e23b9eb0 100644
--- a/src/corelib/kernel/qmath.h
+++ b/src/corelib/kernel/qmath.h
@@ -42,12 +42,14 @@
#ifndef QMATH_H
#define QMATH_H
+#if 0
+#pragma qt_class(QtMath)
+#endif
+
#include <math.h>
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -264,8 +266,26 @@ inline qreal qFastCos(qreal x)
return qt_sine_table[si] - (qt_sine_table[ci] + 0.5 * qt_sine_table[si] * d) * d;
}
-QT_END_NAMESPACE
+Q_DECL_CONSTEXPR inline float qDegreesToRadians(float degrees)
+{
+ return degrees * float(M_PI/180);
+}
+
+Q_DECL_CONSTEXPR inline double qDegreesToRadians(double degrees)
+{
+ return degrees * (M_PI / 180);
+}
+
+Q_DECL_CONSTEXPR inline float qRadiansToDegrees(float radians)
+{
+ return radians * float(180/M_PI);
+}
-QT_END_HEADER
+Q_DECL_CONSTEXPR inline double qRadiansToDegrees(double radians)
+{
+ return radians * (180 / M_PI);
+}
+
+QT_END_NAMESPACE
#endif // QMATH_H
diff --git a/src/corelib/kernel/qmetaobject.h b/src/corelib/kernel/qmetaobject.h
index 6d6b849d75..23fc89ffe3 100644
--- a/src/corelib/kernel/qmetaobject.h
+++ b/src/corelib/kernel/qmetaobject.h
@@ -45,8 +45,6 @@
#include <QtCore/qobjectdefs.h>
#include <QtCore/qvariant.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -274,6 +272,4 @@ Q_DECLARE_TYPEINFO(QMetaClassInfo, Q_MOVABLE_TYPE);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QMETAOBJECT_H
diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp
index abf220ebd4..b9f7462b12 100644
--- a/src/corelib/kernel/qmetatype.cpp
+++ b/src/corelib/kernel/qmetatype.cpp
@@ -959,11 +959,11 @@ bool QMetaType::save(QDataStream &stream, int type, const void *data)
break;
#endif
#ifndef QT_BOOTSTRAPPED
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
case QMetaType::QRegularExpression:
stream << *static_cast<const NS(QRegularExpression)*>(data);
break;
-#endif // QT_NO_REGEXP
+#endif // QT_NO_REGULAREXPRESSION
case QMetaType::QEasingCurve:
stream << *static_cast<const NS(QEasingCurve)*>(data);
break;
@@ -1182,11 +1182,11 @@ bool QMetaType::load(QDataStream &stream, int type, void *data)
break;
#endif
#ifndef QT_BOOTSTRAPPED
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
case QMetaType::QRegularExpression:
stream >> *static_cast< NS(QRegularExpression)*>(data);
break;
-#endif // QT_NO_REGEXP
+#endif // QT_NO_REGULAREXPRESSION
case QMetaType::QEasingCurve:
stream >> *static_cast< NS(QEasingCurve)*>(data);
break;
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h
index 3ffbfb8385..16ea1042a2 100644
--- a/src/corelib/kernel/qmetatype.h
+++ b/src/corelib/kernel/qmetatype.h
@@ -56,8 +56,6 @@
#error qmetatype.h must be included before any header file that defines Bool
#endif
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -534,6 +532,9 @@ struct QMetaTypeId2
static inline Q_DECL_CONSTEXPR int qt_metatype_id() { return QMetaTypeId<T>::qt_metatype_id(); }
};
+template <typename T>
+struct QMetaTypeId2<const T&> : QMetaTypeId2<T> {};
+
namespace QtPrivate {
template <typename T, bool Defined = QMetaTypeId2<T>::Defined>
struct QMetaTypeIdHelper {
@@ -633,30 +634,30 @@ void qRegisterMetaTypeStreamOperators(const char *typeName
#endif // QT_NO_DATASTREAM
template <typename T>
-inline Q_DECL_CONSTEXPR int qMetaTypeId(
-#ifndef Q_QDOC
- T * /* dummy */ = 0
-#endif
-)
+inline Q_DECL_CONSTEXPR int qMetaTypeId()
{
Q_STATIC_ASSERT_X(QMetaTypeId2<T>::Defined, "Type is not registered, please use the Q_DECLARE_METATYPE macro to make it known to Qt's meta-object system");
return QMetaTypeId2<T>::qt_metatype_id();
}
template <typename T>
-inline Q_DECL_CONSTEXPR int qRegisterMetaType(
-#if !defined(Q_QDOC) && !defined(Q_CC_SUN)
- T * dummy = 0
-#endif
-)
+inline Q_DECL_CONSTEXPR int qRegisterMetaType()
{
-#ifdef Q_CC_SUN
- return qMetaTypeId(static_cast<T *>(0));
-#else
- return qMetaTypeId(dummy);
-#endif
+ return qMetaTypeId<T>();
}
+#if QT_DEPRECATED_SINCE(5, 1) && !defined(Q_QDOC)
+// There used to be a T *dummy = 0 argument in Qt 4.0 to support MSVC6
+template <typename T>
+QT_DEPRECATED inline Q_DECL_CONSTEXPR int qMetaTypeId(T *)
+{ return qMetaTypeId<T>(); }
+#ifndef Q_CC_SUN
+template <typename T>
+QT_DEPRECATED inline Q_DECL_CONSTEXPR int qRegisterMetaType(T *)
+{ return qRegisterMetaType<T>(); }
+#endif
+#endif
+
template <typename T>
struct QMetaTypeIdQObject<T*, /* isPointerToTypeDerivedFromQObject */ true>
{
@@ -980,6 +981,4 @@ QT_END_NAMESPACE
QT_FOR_EACH_STATIC_TYPE(Q_DECLARE_BUILTIN_METATYPE)
-QT_END_HEADER
-
#endif // QMETATYPE_H
diff --git a/src/corelib/kernel/qmetatype_p.h b/src/corelib/kernel/qmetatype_p.h
index 39bdd5e3bb..95b9e2e394 100644
--- a/src/corelib/kernel/qmetatype_p.h
+++ b/src/corelib/kernel/qmetatype_p.h
@@ -221,7 +221,7 @@ template<> struct TypeDefinition<QPointF> { static const bool IsAvailable = fals
#ifdef QT_NO_REGEXP
template<> struct TypeDefinition<QRegExp> { static const bool IsAvailable = false; };
#endif
-#if defined(QT_BOOTSTRAPPED) || defined(QT_NO_REGEXP)
+#if defined(QT_BOOTSTRAPPED) || defined(QT_NO_REGULAREXPRESSION)
template<> struct TypeDefinition<QRegularExpression> { static const bool IsAvailable = false; };
#endif
#ifdef QT_NO_SHORTCUT
diff --git a/src/corelib/kernel/qmimedata.h b/src/corelib/kernel/qmimedata.h
index 774a6e4986..84c73262b2 100644
--- a/src/corelib/kernel/qmimedata.h
+++ b/src/corelib/kernel/qmimedata.h
@@ -45,8 +45,6 @@
#include <QtCore/qvariant.h>
#include <QtCore/qobject.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -98,6 +96,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QMIMEDATA_H
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index 36db55d25a..c96fb446d6 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -1690,7 +1690,7 @@ void qt_qFindChildren_helper(const QObject *parent, const QRegExp &re,
}
#endif // QT_NO_REGEXP
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
/*!
\internal
*/
@@ -1712,7 +1712,7 @@ void qt_qFindChildren_helper(const QObject *parent, const QRegularExpression &re
qt_qFindChildren_helper(obj, re, mo, list, options);
}
}
-#endif // QT_NO_REGEXP
+#endif // QT_NO_REGULAREXPRESSION
/*!
\internal
diff --git a/src/corelib/kernel/qobject.h b/src/corelib/kernel/qobject.h
index a2d7dcd7ef..7beaa32855 100644
--- a/src/corelib/kernel/qobject.h
+++ b/src/corelib/kernel/qobject.h
@@ -56,8 +56,6 @@
#include <QtCore/qobject_impl.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -73,7 +71,7 @@ class QWidget;
#ifndef QT_NO_REGEXP
class QRegExp;
#endif
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
class QRegularExpression;
#endif
#ifndef QT_NO_USERDATA
@@ -179,7 +177,7 @@ public:
}
#endif
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
template<typename T>
inline QList<T> findChildren(const QRegularExpression &re, Qt::FindChildOptions options = Qt::FindChildrenRecursively) const
{
@@ -496,8 +494,6 @@ namespace QtPrivate {
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
#endif // QOBJECT_H
diff --git a/src/corelib/kernel/qobject_impl.h b/src/corelib/kernel/qobject_impl.h
index 7ed4d33e96..0b5631f2a6 100644
--- a/src/corelib/kernel/qobject_impl.h
+++ b/src/corelib/kernel/qobject_impl.h
@@ -45,7 +45,10 @@
#error Do not include qobject_impl.h directly
#endif
-QT_BEGIN_HEADER
+#if 0
+#pragma qt_sync_skip_header_check
+#pragma qt_sync_stop_processing
+#endif
QT_BEGIN_NAMESPACE
@@ -207,6 +210,4 @@ namespace QtPrivate {
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h
index e4b4ce8b42..e849ec1599 100644
--- a/src/corelib/kernel/qobject_p.h
+++ b/src/corelib/kernel/qobject_p.h
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2013 Olivier Goffart <ogoffart@woboq.com>
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -198,6 +199,14 @@ public:
inline void connectNotify(const QMetaMethod &signal);
inline void disconnectNotify(const QMetaMethod &signal);
+ template <typename Func1, typename Func2>
+ static inline QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
+ const typename QtPrivate::FunctionPointer<Func2>::Object *receiverPrivate, Func2 slot,
+ Qt::ConnectionType type = Qt::AutoConnection);
+
+ template <typename Func1, typename Func2>
+ static inline bool disconnect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
+ const typename QtPrivate::FunctionPointer<Func2>::Object *receiverPrivate, Func2 slot);
public:
ExtraData *extraData; // extra data set by the user
QThreadData *threadData; // id of the thread that owns the object
@@ -267,6 +276,74 @@ inline void QObjectPrivate::disconnectNotify(const QMetaMethod &signal)
q_ptr->disconnectNotify(signal);
}
+namespace QtPrivate {
+template<typename Func, typename Args, typename R> class QPrivateSlotObject : public QSlotObjectBase
+{
+ typedef QtPrivate::FunctionPointer<Func> FuncType;
+ Func function;
+ static void impl(int which, QSlotObjectBase *this_, QObject *r, void **a, bool *ret)
+ {
+ switch (which) {
+ case Destroy:
+ delete static_cast<QPrivateSlotObject*>(this_);
+ break;
+ case Call:
+ FuncType::template call<Args, R>(static_cast<QPrivateSlotObject*>(this_)->function,
+ static_cast<typename FuncType::Object *>(QObjectPrivate::get(r)), a);
+ break;
+ case Compare:
+ *ret = *reinterpret_cast<Func *>(a) == static_cast<QPrivateSlotObject*>(this_)->function;
+ break;
+ case NumOperations: ;
+ }
+ }
+public:
+ explicit QPrivateSlotObject(Func f) : QSlotObjectBase(&impl), function(f) {}
+};
+} //namespace QtPrivate
+
+template <typename Func1, typename Func2>
+inline QMetaObject::Connection QObjectPrivate::connect(const typename QtPrivate::FunctionPointer<Func1>::Object *sender, Func1 signal,
+ const typename QtPrivate::FunctionPointer<Func2>::Object *receiverPrivate, Func2 slot,
+ Qt::ConnectionType type)
+{
+ typedef QtPrivate::FunctionPointer<Func1> SignalType;
+ typedef QtPrivate::FunctionPointer<Func2> SlotType;
+ reinterpret_cast<typename SignalType::Object *>(0)->qt_check_for_QOBJECT_macro(*reinterpret_cast<typename SignalType::Object *>(0));
+
+ //compilation error if the arguments does not match.
+ Q_STATIC_ASSERT_X(int(SignalType::ArgumentCount) >= int(SlotType::ArgumentCount),
+ "The slot requires more arguments than the signal provides.");
+ Q_STATIC_ASSERT_X((QtPrivate::CheckCompatibleArguments<typename SignalType::Arguments, typename SlotType::Arguments>::value),
+ "Signal and slot arguments are not compatible.");
+ Q_STATIC_ASSERT_X((QtPrivate::AreArgumentsCompatible<typename SlotType::ReturnType, typename SignalType::ReturnType>::value),
+ "Return type of the slot is not compatible with the return type of the signal.");
+
+ const int *types = 0;
+ if (type == Qt::QueuedConnection || type == Qt::BlockingQueuedConnection)
+ types = QtPrivate::ConnectionTypes<typename SignalType::Arguments>::types();
+
+ return QObject::connectImpl(sender, reinterpret_cast<void **>(&signal),
+ receiverPrivate->q_func(), reinterpret_cast<void **>(&slot),
+ new QtPrivate::QPrivateSlotObject<Func2, typename QtPrivate::List_Left<typename SignalType::Arguments, SlotType::ArgumentCount>::Value,
+ typename SignalType::ReturnType>(slot),
+ type, types, &SignalType::Object::staticMetaObject);
+}
+
+template <typename Func1, typename Func2>
+bool QObjectPrivate::disconnect(const typename QtPrivate::FunctionPointer< Func1 >::Object* sender, Func1 signal,
+ const typename QtPrivate::FunctionPointer< Func2 >::Object* receiverPrivate, Func2 slot)
+{
+ typedef QtPrivate::FunctionPointer<Func1> SignalType;
+ typedef QtPrivate::FunctionPointer<Func2> SlotType;
+ reinterpret_cast<typename SignalType::Object *>(0)->qt_check_for_QOBJECT_macro(*reinterpret_cast<typename SignalType::Object *>(0));
+ //compilation error if the arguments does not match.
+ Q_STATIC_ASSERT_X((QtPrivate::CheckCompatibleArguments<typename SignalType::Arguments, typename SlotType::Arguments>::value),
+ "Signal and slot arguments are not compatible.");
+ return QObject::disconnectImpl(sender, reinterpret_cast<void **>(&signal),
+ receiverPrivate->q_func(), reinterpret_cast<void **>(&slot),
+ &SignalType::Object::staticMetaObject);
+}
Q_DECLARE_TYPEINFO(QObjectPrivate::Connection, Q_MOVABLE_TYPE);
Q_DECLARE_TYPEINFO(QObjectPrivate::Sender, Q_MOVABLE_TYPE);
diff --git a/src/corelib/kernel/qobjectcleanuphandler.h b/src/corelib/kernel/qobjectcleanuphandler.h
index 96faabc173..1f053cc34b 100644
--- a/src/corelib/kernel/qobjectcleanuphandler.h
+++ b/src/corelib/kernel/qobjectcleanuphandler.h
@@ -44,8 +44,6 @@
#include <QtCore/qobject.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -72,6 +70,4 @@ private Q_SLOTS:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QOBJECTCLEANUPHANDLER_H
diff --git a/src/corelib/kernel/qobjectdefs.h b/src/corelib/kernel/qobjectdefs.h
index a0617379d5..afbe1a5ece 100644
--- a/src/corelib/kernel/qobjectdefs.h
+++ b/src/corelib/kernel/qobjectdefs.h
@@ -46,8 +46,6 @@
#include <QtCore/qobjectdefs_impl.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -483,6 +481,4 @@ inline const QMetaObject *QMetaObject::superClass() const
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QOBJECTDEFS_H
diff --git a/src/corelib/kernel/qobjectdefs_impl.h b/src/corelib/kernel/qobjectdefs_impl.h
index 1452e720ad..959a255389 100644
--- a/src/corelib/kernel/qobjectdefs_impl.h
+++ b/src/corelib/kernel/qobjectdefs_impl.h
@@ -45,7 +45,10 @@
#error Do not include qobjectdefs_impl.h directly
#endif
-QT_BEGIN_HEADER
+#if 0
+#pragma qt_sync_skip_header_check
+#pragma qt_sync_stop_processing
+#endif
QT_BEGIN_NAMESPACE
@@ -601,6 +604,4 @@ namespace QtPrivate {
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/kernel/qpointer.h b/src/corelib/kernel/qpointer.h
index ebdeb156ba..230b6b66eb 100644
--- a/src/corelib/kernel/qpointer.h
+++ b/src/corelib/kernel/qpointer.h
@@ -46,67 +46,51 @@
#ifndef QT_NO_QOBJECT
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QVariant;
-class QPointerBase
-{
- QWeakPointer<QObject> wp;
-
-protected:
- inline QPointerBase() : wp() { }
- inline QPointerBase(QObject *p) : wp(p, true) { }
- // compiler-generated copy/move ctor/assignment operators are fine! (even though public)
- inline ~QPointerBase() { }
-
- inline QObject* data() const
- { return wp.data(); }
-
- inline void assign(QObject *p)
- { wp.assign(p); }
-
- inline bool isNull() const
- { return wp.isNull(); }
-
- inline void clear()
- { wp.clear(); }
-};
-
template <class T>
-class QPointer : private QPointerBase
+class QPointer
{
+ template<typename U>
+ struct TypeSelector
+ {
+ typedef QObject Type;
+ };
+ template<typename U>
+ struct TypeSelector<const U>
+ {
+ typedef const QObject Type;
+ };
+ typedef typename TypeSelector<T>::Type QObjectType;
+ QWeakPointer<QObjectType> wp;
public:
inline QPointer() { }
- inline QPointer(T *p) : QPointerBase(p) { }
+ inline QPointer(T *p) : wp(p, true) { }
// compiler-generated copy/move ctor/assignment operators are fine!
inline ~QPointer() { }
inline QPointer<T> &operator=(T* p)
- { QPointerBase::assign(p); return *this; }
+ { wp.assign(static_cast<QObjectType*>(p)); return *this; }
inline T* data() const
- { return static_cast<T*>(QPointerBase::data()); }
+ { return static_cast<T*>( wp.data()); }
inline T* operator->() const
{ return data(); }
inline T& operator*() const
{ return *data(); }
inline operator T*() const
{ return data(); }
-#ifdef Q_QDOC
- inline bool isNull() const;
- inline void clear();
-#else
- using QPointerBase::isNull;
- using QPointerBase::clear;
-#endif
+
+ inline bool isNull() const
+ { return wp.isNull(); }
+
+ inline void clear()
+ { wp.clear(); }
};
template <class T> Q_DECLARE_TYPEINFO_BODY(QPointer<T>, Q_MOVABLE_TYPE);
-#if (!defined(Q_CC_SUN) || (__SUNPRO_CC >= 0x580)) // ambiguity between const T * and T *
-
template <class T>
inline bool operator==(const T *o, const QPointer<T> &p)
{ return o == p.operator->(); }
@@ -115,18 +99,6 @@ template<class T>
inline bool operator==(const QPointer<T> &p, const T *o)
{ return p.operator->() == o; }
-#else
-
-template<class T>
-inline bool operator==(const void *o, const QPointer<T> &p)
-{ return o == p.operator->(); }
-
-template<class T>
-inline bool operator==(const QPointer<T> &p, const void *o)
-{ return p.operator->() == o; }
-
-#endif
-
template <class T>
inline bool operator==(T *o, const QPointer<T> &p)
{ return o == p.operator->(); }
@@ -139,9 +111,6 @@ template<class T>
inline bool operator==(const QPointer<T> &p1, const QPointer<T> &p2)
{ return p1.operator->() == p2.operator->(); }
-
-#if (!defined(Q_CC_SUN) || (__SUNPRO_CC >= 0x580)) // ambiguity between const T * and T *
-
template <class T>
inline bool operator!=(const T *o, const QPointer<T> &p)
{ return o != p.operator->(); }
@@ -150,18 +119,6 @@ template<class T>
inline bool operator!= (const QPointer<T> &p, const T *o)
{ return p.operator->() != o; }
-#else
-
-template<class T>
-inline bool operator!= (const void *o, const QPointer<T> &p)
-{ return o != p.operator->(); }
-
-template<class T>
-inline bool operator!= (const QPointer<T> &p, const void *o)
-{ return p.operator->() != o; }
-
-#endif
-
template <class T>
inline bool operator!=(T *o, const QPointer<T> &p)
{ return o != p.operator->(); }
@@ -174,17 +131,6 @@ template<class T>
inline bool operator!= (const QPointer<T> &p1, const QPointer<T> &p2)
{ return p1.operator->() != p2.operator->() ; }
-// Make MSVC < 1400 (2005) handle "if (NULL == p)" syntax
-#if defined(Q_CC_MSVC) && (_MSC_VER < 1400)
-template<class T>
-inline bool operator== (int i, const QPointer<T> &p)
-{ Q_ASSERT(i == 0); return !i && p.isNull(); }
-
-template<class T>
-inline bool operator!= (int i, const QPointer<T> &p)
-{ Q_ASSERT(i == 0); return !i && !p.isNull(); }
-#endif
-
template<typename T>
QPointer<T>
qPointerFromVariant(const QVariant &variant)
@@ -194,8 +140,6 @@ qPointerFromVariant(const QVariant &variant)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QT_NO_QOBJECT
#endif // QPOINTER_H
diff --git a/src/corelib/kernel/qsharedmemory.h b/src/corelib/kernel/qsharedmemory.h
index d87ba02ac9..6b44548f44 100644
--- a/src/corelib/kernel/qsharedmemory.h
+++ b/src/corelib/kernel/qsharedmemory.h
@@ -44,8 +44,6 @@
#include <QtCore/qobject.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -114,7 +112,5 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSHAREDMEMORY_H
diff --git a/src/corelib/kernel/qsharedmemory_p.h b/src/corelib/kernel/qsharedmemory_p.h
index dd9856adf5..9f1e6c8aa1 100644
--- a/src/corelib/kernel/qsharedmemory_p.h
+++ b/src/corelib/kernel/qsharedmemory_p.h
@@ -69,7 +69,7 @@ namespace QSharedMemoryPrivate
#include "qsystemsemaphore.h"
#include "private/qobject_p.h"
-#if !defined(Q_OS_WIN) && !defined(Q_OS_LINUX_ANDROID)
+#if !defined(Q_OS_WIN) && !defined(Q_OS_ANDROID)
# include <sys/sem.h>
#endif
diff --git a/src/corelib/kernel/qsharedmemory_unix.cpp b/src/corelib/kernel/qsharedmemory_unix.cpp
index 7f13e3b1a2..fdd73657a9 100644
--- a/src/corelib/kernel/qsharedmemory_unix.cpp
+++ b/src/corelib/kernel/qsharedmemory_unix.cpp
@@ -151,9 +151,6 @@ key_t QSharedMemoryPrivate::handle()
*/
int QSharedMemoryPrivate::createUnixKeyFile(const QString &fileName)
{
- if (QFile::exists(fileName))
- return 0;
-
int fd = qt_safe_open(QFile::encodeName(fileName).constData(),
O_EXCL | O_CREAT | O_RDWR, 0640);
if (-1 == fd) {
diff --git a/src/corelib/kernel/qsignalmapper.h b/src/corelib/kernel/qsignalmapper.h
index f1f4428118..997e8e46de 100644
--- a/src/corelib/kernel/qsignalmapper.h
+++ b/src/corelib/kernel/qsignalmapper.h
@@ -44,8 +44,6 @@
#include <QtCore/qobject.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QSignalMapperPrivate;
@@ -86,6 +84,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSIGNALMAPPER_H
diff --git a/src/corelib/kernel/qsocketnotifier.h b/src/corelib/kernel/qsocketnotifier.h
index 97321521e4..8cc6b9c4c4 100644
--- a/src/corelib/kernel/qsocketnotifier.h
+++ b/src/corelib/kernel/qsocketnotifier.h
@@ -44,8 +44,6 @@
#include <QtCore/qobject.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QSocketNotifierPrivate;
@@ -84,6 +82,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSOCKETNOTIFIER_H
diff --git a/src/corelib/kernel/qsystemsemaphore.h b/src/corelib/kernel/qsystemsemaphore.h
index 52547f0c1f..b7dd220832 100644
--- a/src/corelib/kernel/qsystemsemaphore.h
+++ b/src/corelib/kernel/qsystemsemaphore.h
@@ -45,8 +45,6 @@
#include <QtCore/qstring.h>
#include <QtCore/qscopedpointer.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -96,7 +94,5 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSYSTEMSEMAPHORE_H
diff --git a/src/corelib/kernel/qtimer.h b/src/corelib/kernel/qtimer.h
index 9a90ecc772..34bfff9089 100644
--- a/src/corelib/kernel/qtimer.h
+++ b/src/corelib/kernel/qtimer.h
@@ -47,8 +47,6 @@
#include <QtCore/qbasictimer.h> // conceptual inheritance
#include <QtCore/qobject.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -114,8 +112,6 @@ inline void QTimer::setSingleShot(bool asingleShot) { single = asingleShot; }
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QT_NO_QOBJECT
#endif // QTIMER_H
diff --git a/src/corelib/kernel/qtimerinfo_unix.cpp b/src/corelib/kernel/qtimerinfo_unix.cpp
index 7a29247fc5..0e33fa697a 100644
--- a/src/corelib/kernel/qtimerinfo_unix.cpp
+++ b/src/corelib/kernel/qtimerinfo_unix.cpp
@@ -77,7 +77,7 @@ QTimerInfoList::QTimerInfoList()
msPerTick = 1000/ticksPerSecond;
} else {
// detected monotonic timers
- previousTime.tv_sec = previousTime.tv_usec = 0;
+ previousTime.tv_sec = previousTime.tv_nsec = 0;
previousTicks = 0;
ticksPerSecond = 0;
msPerTick = 0;
@@ -87,24 +87,24 @@ QTimerInfoList::QTimerInfoList()
firstTimerInfo = 0;
}
-timeval QTimerInfoList::updateCurrentTime()
+timespec QTimerInfoList::updateCurrentTime()
{
return (currentTime = qt_gettime());
}
#if ((_POSIX_MONOTONIC_CLOCK-0 <= 0) && !defined(Q_OS_MAC) && !defined(Q_OS_INTEGRITY)) || defined(QT_BOOTSTRAPPED)
-timeval qAbsTimeval(const timeval &t)
+timespec qAbsTimespec(const timespec &t)
{
- timeval tmp = t;
+ timespec tmp = t;
if (tmp.tv_sec < 0) {
tmp.tv_sec = -tmp.tv_sec - 1;
- tmp.tv_usec -= 1000000;
+ tmp.tv_nsec -= 1000000000;
}
- if (tmp.tv_sec == 0 && tmp.tv_usec < 0) {
- tmp.tv_usec = -tmp.tv_usec;
+ if (tmp.tv_sec == 0 && tmp.tv_nsec < 0) {
+ tmp.tv_nsec = -tmp.tv_nsec;
}
- return normalizedTimeval(tmp);
+ return normalizedTimespec(tmp);
}
/*
@@ -114,7 +114,7 @@ timeval qAbsTimeval(const timeval &t)
If /a delta is nonzero, delta is set to our best guess at how much the system clock was changed.
*/
-bool QTimerInfoList::timeChanged(timeval *delta)
+bool QTimerInfoList::timeChanged(timespec *delta)
{
#ifdef Q_OS_NACL
Q_UNUSED(delta)
@@ -124,13 +124,13 @@ bool QTimerInfoList::timeChanged(timeval *delta)
clock_t currentTicks = times(&unused);
clock_t elapsedTicks = currentTicks - previousTicks;
- timeval elapsedTime = currentTime - previousTime;
+ timespec elapsedTime = currentTime - previousTime;
- timeval elapsedTimeTicks;
+ timespec elapsedTimeTicks;
elapsedTimeTicks.tv_sec = elapsedTicks / ticksPerSecond;
- elapsedTimeTicks.tv_usec = (((elapsedTicks * 1000) / ticksPerSecond) % 1000) * 1000;
+ elapsedTimeTicks.tv_nsec = (((elapsedTicks * 1000) / ticksPerSecond) % 1000) * 1000 * 1000;
- timeval dummy;
+ timespec dummy;
if (!delta)
delta = &dummy;
*delta = elapsedTime - elapsedTimeTicks;
@@ -140,16 +140,16 @@ bool QTimerInfoList::timeChanged(timeval *delta)
// If tick drift is more than 10% off compared to realtime, we assume that the clock has
// been set. Of course, we have to allow for the tick granularity as well.
- timeval tickGranularity;
+ timespec tickGranularity;
tickGranularity.tv_sec = 0;
- tickGranularity.tv_usec = msPerTick * 1000;
- return elapsedTimeTicks < ((qAbsTimeval(*delta) - tickGranularity) * 10);
+ tickGranularity.tv_nsec = msPerTick * 1000 * 1000;
+ return elapsedTimeTicks < ((qAbsTimespec(*delta) - tickGranularity) * 10);
}
/*
repair broken timer
*/
-void QTimerInfoList::timerRepair(const timeval &diff)
+void QTimerInfoList::timerRepair(const timespec &diff)
{
// repair all timers
for (int i = 0; i < size(); ++i) {
@@ -162,7 +162,7 @@ void QTimerInfoList::repairTimersIfNeeded()
{
if (QElapsedTimer::isMonotonic())
return;
- timeval delta;
+ timespec delta;
if (timeChanged(&delta))
timerRepair(delta);
}
@@ -189,27 +189,27 @@ void QTimerInfoList::timerInsert(QTimerInfo *ti)
insert(index+1, ti);
}
-inline timeval &operator+=(timeval &t1, int ms)
+inline timespec &operator+=(timespec &t1, int ms)
{
t1.tv_sec += ms / 1000;
- t1.tv_usec += ms % 1000 * 1000;
- return normalizedTimeval(t1);
+ t1.tv_nsec += ms % 1000 * 1000 * 1000;
+ return normalizedTimespec(t1);
}
-inline timeval operator+(const timeval &t1, int ms)
+inline timespec operator+(const timespec &t1, int ms)
{
- timeval t2 = t1;
+ timespec t2 = t1;
return t2 += ms;
}
-static timeval roundToMillisecond(timeval val)
+static timespec roundToMillisecond(timespec val)
{
// always round up
// worst case scenario is that the first trigger of a 1-ms timer is 0.999 ms late
- int us = val.tv_usec % 1000;
- val.tv_usec += 1000 - us;
- return normalizedTimeval(val);
+ int ns = val.tv_nsec % (1000 * 1000);
+ val.tv_nsec += 1000 * 1000 - ns;
+ return normalizedTimespec(val);
}
#ifdef QTIMERINFO_DEBUG
@@ -226,7 +226,7 @@ QDebug operator<<(QDebug s, Qt::TimerType t)
}
#endif
-static void calculateCoarseTimerTimeout(QTimerInfo *t, timeval currentTime)
+static void calculateCoarseTimerTimeout(QTimerInfo *t, timespec currentTime)
{
// The coarse timer works like this:
// - interval under 40 ms: round to even
@@ -245,7 +245,7 @@ static void calculateCoarseTimerTimeout(QTimerInfo *t, timeval currentTime)
// The objective is to make most timers wake up at the same time, thereby reducing CPU wakeups.
register uint interval = uint(t->interval);
- register uint msec = uint(t->timeout.tv_usec) / 1000;
+ register uint msec = uint(t->timeout.tv_nsec) / 1000 / 1000;
Q_ASSERT(interval >= 20);
// Calculate how much we can round and still keep within 5% error
@@ -327,16 +327,16 @@ static void calculateCoarseTimerTimeout(QTimerInfo *t, timeval currentTime)
recalculate:
if (msec == 1000u) {
++t->timeout.tv_sec;
- t->timeout.tv_usec = 0;
+ t->timeout.tv_nsec = 0;
} else {
- t->timeout.tv_usec = msec * 1000;
+ t->timeout.tv_nsec = msec * 1000 * 1000;
}
if (t->timeout < currentTime)
t->timeout += interval;
}
-static void calculateNextTimeout(QTimerInfo *t, timeval currentTime)
+static void calculateNextTimeout(QTimerInfo *t, timespec currentTime)
{
switch (t->timerType) {
case Qt::PreciseTimer:
@@ -382,9 +382,9 @@ static void calculateNextTimeout(QTimerInfo *t, timeval currentTime)
Returns the time to wait for the next timer, or null if no timers
are waiting.
*/
-bool QTimerInfoList::timerWait(timeval &tm)
+bool QTimerInfoList::timerWait(timespec &tm)
{
- timeval currentTime = updateCurrentTime();
+ timespec currentTime = updateCurrentTime();
repairTimersIfNeeded();
// Find first waiting timer not already active
@@ -405,7 +405,7 @@ bool QTimerInfoList::timerWait(timeval &tm)
} else {
// no time to wait
tm.tv_sec = 0;
- tm.tv_usec = 0;
+ tm.tv_nsec = 0;
}
return true;
@@ -418,9 +418,9 @@ bool QTimerInfoList::timerWait(timeval &tm)
*/
int QTimerInfoList::timerRemainingTime(int timerId)
{
- timeval currentTime = updateCurrentTime();
+ timespec currentTime = updateCurrentTime();
repairTimersIfNeeded();
- timeval tm = {0, 0};
+ timespec tm = {0, 0};
for (int i = 0; i < count(); ++i) {
register QTimerInfo *t = at(i);
@@ -428,7 +428,7 @@ int QTimerInfoList::timerRemainingTime(int timerId)
if (currentTime < t->timeout) {
// time to wait
tm = roundToMillisecond(t->timeout - currentTime);
- return tm.tv_sec*1000 + tm.tv_usec/1000;
+ return tm.tv_sec*1000 + tm.tv_nsec/1000/1000;
} else {
return 0;
}
@@ -451,7 +451,7 @@ void QTimerInfoList::registerTimer(int timerId, int interval, Qt::TimerType time
t->obj = object;
t->activateRef = 0;
- timeval expected = updateCurrentTime() + interval;
+ timespec expected = updateCurrentTime() + interval;
switch (timerType) {
case Qt::PreciseTimer:
@@ -486,10 +486,10 @@ void QTimerInfoList::registerTimer(int timerId, int interval, Qt::TimerType time
t->interval += 1;
t->interval >>= 1;
t->timeout.tv_sec = currentTime.tv_sec + t->interval;
- t->timeout.tv_usec = 0;
+ t->timeout.tv_nsec = 0;
// if we're past the half-second mark, increase the timeout again
- if (currentTime.tv_usec > 500*1000)
+ if (currentTime.tv_nsec > 500*1000*1000)
++t->timeout.tv_sec;
}
@@ -573,7 +573,7 @@ int QTimerInfoList::activateTimers()
int n_act = 0, maxCount = 0;
firstTimerInfo = 0;
- timeval currentTime = updateCurrentTime();
+ timespec currentTime = updateCurrentTime();
// qDebug() << "Thread" << QThread::currentThreadId() << "woken up at" << currentTime;
repairTimersIfNeeded();
diff --git a/src/corelib/kernel/qtimerinfo_unix_p.h b/src/corelib/kernel/qtimerinfo_unix_p.h
index 549062bd1f..ec7560429b 100644
--- a/src/corelib/kernel/qtimerinfo_unix_p.h
+++ b/src/corelib/kernel/qtimerinfo_unix_p.h
@@ -66,7 +66,7 @@ struct QTimerInfo {
int id; // - timer identifier
int interval; // - timer interval in milliseconds
Qt::TimerType timerType; // - timer type
- timeval timeout; // - when to actually fire
+ timespec timeout; // - when to actually fire
QObject *obj; // - object to receive event
QTimerInfo **activateRef; // - ref from activateTimers
@@ -80,13 +80,13 @@ struct QTimerInfo {
class Q_CORE_EXPORT QTimerInfoList : public QList<QTimerInfo*>
{
#if ((_POSIX_MONOTONIC_CLOCK-0 <= 0) && !defined(Q_OS_MAC)) || defined(QT_BOOTSTRAPPED)
- timeval previousTime;
+ timespec previousTime;
clock_t previousTicks;
int ticksPerSecond;
int msPerTick;
- bool timeChanged(timeval *delta);
- void timerRepair(const timeval &);
+ bool timeChanged(timespec *delta);
+ void timerRepair(const timespec &);
#endif
// state variables used by activateTimers()
@@ -95,13 +95,13 @@ class Q_CORE_EXPORT QTimerInfoList : public QList<QTimerInfo*>
public:
QTimerInfoList();
- timeval currentTime;
- timeval updateCurrentTime();
+ timespec currentTime;
+ timespec updateCurrentTime();
// must call updateCurrentTime() first!
void repairTimersIfNeeded();
- bool timerWait(timeval &);
+ bool timerWait(timespec &);
void timerInsert(QTimerInfo *);
int timerRemainingTime(int timerId);
diff --git a/src/corelib/kernel/qtranslator.h b/src/corelib/kernel/qtranslator.h
index 98c0b81c97..c3957aff3f 100644
--- a/src/corelib/kernel/qtranslator.h
+++ b/src/corelib/kernel/qtranslator.h
@@ -45,8 +45,6 @@
#include <QtCore/qobject.h>
#include <QtCore/qbytearray.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -87,6 +85,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QTRANSLATOR_H
diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp
index d70d8d9a68..ed1a8a4974 100644
--- a/src/corelib/kernel/qvariant.cpp
+++ b/src/corelib/kernel/qvariant.cpp
@@ -1529,10 +1529,13 @@ QVariant::QVariant(const QLocale &l)
QVariant::QVariant(const QRegExp &regExp)
: d(RegExp)
{ v_construct<QRegExp>(&d, regExp); }
+#endif // QT_NO_REGEXP
#ifndef QT_BOOTSTRAPPED
+#ifndef QT_NO_REGULAREXPRESSION
QVariant::QVariant(const QRegularExpression &re)
: d(RegularExpression)
{ v_construct<QRegularExpression>(&d, re); }
+#endif
QVariant::QVariant(const QUuid &uuid)
: d(Uuid)
{ v_construct<QUuid>(&d, uuid); }
@@ -1552,7 +1555,6 @@ QVariant::QVariant(const QJsonDocument &jsonDocument)
: d(QMetaType::QJsonDocument)
{ v_construct<QJsonDocument>(&d, jsonDocument); }
#endif // QT_BOOTSTRAPPED
-#endif // QT_NO_REGEXP
/*!
Returns the storage type of the value stored in the variant.
@@ -2214,6 +2216,7 @@ QRegExp QVariant::toRegExp() const
}
#endif
+#ifndef QT_BOOTSTRAPPED
/*!
\fn QRegularExpression QVariant::toRegularExpression() const
\since 5.0
@@ -2223,13 +2226,12 @@ QRegExp QVariant::toRegExp() const
\sa canConvert(), convert()
*/
-#ifndef QT_BOOTSTRAPPED
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
QRegularExpression QVariant::toRegularExpression() const
{
return qVariantToHelper<QRegularExpression>(d, handlerManager);
}
-#endif
+#endif // QT_NO_REGULAREXPRESSION
/*!
\since 5.0
diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h
index d21f48f98c..6f212f5000 100644
--- a/src/corelib/kernel/qvariant.h
+++ b/src/corelib/kernel/qvariant.h
@@ -51,8 +51,6 @@
#include <QtCore/qstring.h>
#include <QtCore/qobject.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -76,8 +74,10 @@ class QRect;
class QRectF;
#ifndef QT_NO_REGEXP
class QRegExp;
-class QRegularExpression;
#endif // QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
+class QRegularExpression;
+#endif // QT_NO_REGULAREXPRESSION
class QTextFormat;
class QTextLength;
class QUrl;
@@ -240,11 +240,11 @@ class Q_CORE_EXPORT QVariant
QVariant(const QLocale &locale);
#ifndef QT_NO_REGEXP
QVariant(const QRegExp &regExp);
-#ifndef QT_BOOTSRAPPED
- QVariant(const QRegularExpression &re);
-#endif // QT_BOOTSTRAPPED
#endif // QT_NO_REGEXP
#ifndef QT_BOOTSTRAPPED
+#ifndef QT_NO_REGULAREXPRESSION
+ QVariant(const QRegularExpression &re);
+#endif // QT_NO_REGULAREXPRESSION
QVariant(const QUrl &url);
QVariant(const QEasingCurve &easing);
QVariant(const QUuid &uuid);
@@ -253,7 +253,7 @@ class Q_CORE_EXPORT QVariant
QVariant(const QJsonObject &jsonObject);
QVariant(const QJsonArray &jsonArray);
QVariant(const QJsonDocument &jsonDocument);
-#endif
+#endif // QT_BOOTSTRAPPED
QVariant& operator=(const QVariant &other);
#ifdef Q_COMPILER_RVALUE_REFS
@@ -313,11 +313,11 @@ class Q_CORE_EXPORT QVariant
QLocale toLocale() const;
#ifndef QT_NO_REGEXP
QRegExp toRegExp() const;
-#ifndef QT_BOOTSTRAPPED
- QRegularExpression toRegularExpression() const;
-#endif // QT_BOOTSTRAPPED
#endif // QT_NO_REGEXP
#ifndef QT_BOOTSTRAPPED
+#ifndef QT_NO_REGULAREXPRESSION
+ QRegularExpression toRegularExpression() const;
+#endif // QT_NO_REGULAREXPRESSION
QUrl toUrl() const;
QEasingCurve toEasingCurve() const;
QUuid toUuid() const;
@@ -326,7 +326,7 @@ class Q_CORE_EXPORT QVariant
QJsonObject toJsonObject() const;
QJsonArray toJsonArray() const;
QJsonDocument toJsonDocument() const;
-#endif
+#endif // QT_BOOTSTRAPPED
#ifndef QT_NO_DATASTREAM
void load(QDataStream &ds);
@@ -484,7 +484,7 @@ public:
template <typename T>
inline QVariant qVariantFromValue(const T &t)
{
- return QVariant(qMetaTypeId<T>(reinterpret_cast<T *>(0)), &t, QTypeInfo<T>::isPointer);
+ return QVariant(qMetaTypeId<T>(), &t, QTypeInfo<T>::isPointer);
}
template <>
@@ -494,7 +494,7 @@ template <typename T>
inline void qVariantSetValue(QVariant &v, const T &t)
{
//if possible we reuse the current QVariant private
- const uint type = qMetaTypeId<T>(reinterpret_cast<T *>(0));
+ const uint type = qMetaTypeId<T>();
QVariant::Private &d = v.data_ptr();
if (v.isDetached() && (type == d.type || (type <= uint(QVariant::Char) && d.type <= uint(QVariant::Char)))) {
d.type = type;
@@ -568,7 +568,7 @@ namespace QtPrivate {
{
static T metaType(const QVariant &v)
{
- const int vid = qMetaTypeId<T>(static_cast<T *>(0));
+ const int vid = qMetaTypeId<T>();
if (vid == v.userType())
return *reinterpret_cast<const T *>(v.constData());
if (vid < int(QMetaType::User)) {
@@ -620,6 +620,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QVariant::Type);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QVARIANT_H
diff --git a/src/corelib/kernel/qwineventnotifier.h b/src/corelib/kernel/qwineventnotifier.h
index ca84054d71..56605d9aaa 100644
--- a/src/corelib/kernel/qwineventnotifier.h
+++ b/src/corelib/kernel/qwineventnotifier.h
@@ -47,8 +47,6 @@
#ifdef Q_OS_WIN
#include "QtCore/qt_windows.h"
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QWinEventNotifierPrivate;
@@ -83,8 +81,6 @@ protected:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // Q_OS_WIN
#endif // QWINEVENTNOTIFIER_H
diff --git a/src/corelib/mimetypes/qmimedatabase.h b/src/corelib/mimetypes/qmimedatabase.h
index a567d99749..17684e49da 100644
--- a/src/corelib/mimetypes/qmimedatabase.h
+++ b/src/corelib/mimetypes/qmimedatabase.h
@@ -45,7 +45,6 @@
#include <QtCore/qmimetype.h>
#include <QtCore/qstringlist.h>
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
class QByteArray;
@@ -90,6 +89,4 @@ private:
};
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QMIMEDATABASE_H
diff --git a/src/corelib/mimetypes/qmimetype.h b/src/corelib/mimetypes/qmimetype.h
index dcab8153ab..24d043eebc 100644
--- a/src/corelib/mimetypes/qmimetype.h
+++ b/src/corelib/mimetypes/qmimetype.h
@@ -45,7 +45,6 @@
#include <QtCore/qshareddata.h>
#include <QtCore/qstring.h>
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
class QMimeTypePrivate;
@@ -112,6 +111,4 @@ protected:
Q_DECLARE_SHARED(QMimeType)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QMIMETYPE_H
diff --git a/src/corelib/plugin/qfactoryinterface.h b/src/corelib/plugin/qfactoryinterface.h
index 59bce69022..88fb1bf599 100644
--- a/src/corelib/plugin/qfactoryinterface.h
+++ b/src/corelib/plugin/qfactoryinterface.h
@@ -45,8 +45,6 @@
#include <QtCore/qobject.h>
#include <QtCore/qstringlist.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -61,6 +59,4 @@ Q_DECLARE_INTERFACE(QFactoryInterface, "org.qt-project.Qt.QFactoryInterface")
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QFACTORYINTERFACE_H
diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp
index d17067684a..3432f9619d 100644
--- a/src/corelib/plugin/qlibrary.cpp
+++ b/src/corelib/plugin/qlibrary.cpp
@@ -79,8 +79,6 @@ QT_BEGIN_NAMESPACE
# define QT_NO_DEBUG_PLUGIN_CHECK
#endif
-static QBasicMutex qt_library_mutex;
-
/*!
\class QLibrary
\inmodule QtCore
@@ -339,46 +337,134 @@ static void installCoverageTool(QLibraryPrivate *libPrivate)
#endif
}
-typedef QMap<QString, QLibraryPrivate*> LibraryMap;
+class QLibraryStore
+{
+public:
+ inline ~QLibraryStore();
+ static inline QLibraryPrivate *findOrCreate(const QString &fileName, const QString &version);
+ static inline void releaseLibrary(QLibraryPrivate *lib);
+
+ static inline void cleanup();
-struct LibraryData {
+private:
+ static inline QLibraryStore *instance();
+
+ // all members and instance() are protected by qt_library_mutex
+ typedef QMap<QString, QLibraryPrivate*> LibraryMap;
LibraryMap libraryMap;
- QSet<QLibraryPrivate*> loadedLibs;
};
-Q_GLOBAL_STATIC(LibraryData, libraryData)
+static QBasicMutex qt_library_mutex;
+static QLibraryStore *qt_library_data = 0;
+
+QLibraryStore::~QLibraryStore()
+{
+ qt_library_data = 0;
+}
+
+inline void QLibraryStore::cleanup()
+{
+ QLibraryStore *data = qt_library_data;
+ if (!data)
+ return;
+
+ // find any libraries that are still loaded but have a no one attached to them
+ LibraryMap::Iterator it = data->libraryMap.begin();
+ for (; it != data->libraryMap.end(); ++it) {
+ QLibraryPrivate *lib = it.value();
+ if (lib->libraryRefCount.load() == 1) {
+ if (lib->libraryUnloadCount.load() > 0) {
+ Q_ASSERT(lib->pHnd);
+ lib->libraryUnloadCount.store(1);
+#ifdef __GLIBC__
+ // glibc has a bug in unloading from global destructors
+ // see https://bugzilla.novell.com/show_bug.cgi?id=622977
+ // and http://sourceware.org/bugzilla/show_bug.cgi?id=11941
+ lib->unload(QLibraryPrivate::NoUnloadSys);
+#else
+ lib->unload();
+#endif
+ }
+ delete lib;
+ it.value() = 0;
+ }
+ }
+
+ if (qt_debug_component()) {
+ // dump all objects that remain
+ foreach (QLibraryPrivate *lib, data->libraryMap) {
+ if (lib)
+ qDebug() << "On QtCore unload," << lib->fileName << "was leaked, with"
+ << lib->libraryRefCount.load() << "users";
+ }
+ }
+
+ delete data;
+}
+
+static void qlibraryCleanup()
+{
+ QLibraryStore::cleanup();
+}
+Q_DESTRUCTOR_FUNCTION(qlibraryCleanup)
+
+// must be called with a locked mutex
+QLibraryStore *QLibraryStore::instance()
+{
+ if (Q_UNLIKELY(!qt_library_data))
+ qt_library_data = new QLibraryStore;
+ return qt_library_data;
+}
-static LibraryMap *libraryMap()
+inline QLibraryPrivate *QLibraryStore::findOrCreate(const QString &fileName, const QString &version)
{
- LibraryData *data = libraryData();
- return data ? &data->libraryMap : 0;
+ QMutexLocker locker(&qt_library_mutex);
+ QLibraryStore *data = instance();
+
+ // check if this library is already loaded
+ QLibraryPrivate *lib = data->libraryMap.value(fileName);
+ if (!lib)
+ lib = new QLibraryPrivate(fileName, version);
+
+ // track this library
+ data->libraryMap.insert(fileName, lib);
+
+ lib->libraryRefCount.ref();
+ return lib;
+}
+
+inline void QLibraryStore::releaseLibrary(QLibraryPrivate *lib)
+{
+ QMutexLocker locker(&qt_library_mutex);
+ QLibraryStore *data = instance();
+
+ if (lib->libraryRefCount.deref()) {
+ // still in use
+ return;
+ }
+
+ // no one else is using
+ Q_ASSERT(lib->libraryUnloadCount.load() == 0);
+
+ QLibraryPrivate *that = data->libraryMap.take(lib->fileName);
+ Q_ASSERT(lib == that);
+ Q_UNUSED(that);
+ delete lib;
}
QLibraryPrivate::QLibraryPrivate(const QString &canonicalFileName, const QString &version)
: pHnd(0), fileName(canonicalFileName), fullVersion(version), instance(0),
loadHints(0),
- libraryRefCount(1), libraryUnloadCount(0), pluginState(MightBeAPlugin)
-{ libraryMap()->insert(canonicalFileName, this); }
+ libraryRefCount(0), libraryUnloadCount(0), pluginState(MightBeAPlugin)
+{ }
QLibraryPrivate *QLibraryPrivate::findOrCreate(const QString &fileName, const QString &version)
{
- QMutexLocker locker(&qt_library_mutex);
- if (QLibraryPrivate *lib = libraryMap()->value(fileName)) {
- lib->libraryRefCount.ref();
- return lib;
- }
-
- return new QLibraryPrivate(fileName, version);
+ return QLibraryStore::findOrCreate(fileName, version);
}
QLibraryPrivate::~QLibraryPrivate()
{
- LibraryMap * const map = libraryMap();
- if (map) {
- QLibraryPrivate *that = map->take(fileName);
- Q_ASSERT(this == that);
- Q_UNUSED(that);
- }
}
QFunctionPointer QLibraryPrivate::resolve(const char *symbol)
@@ -391,9 +477,10 @@ QFunctionPointer QLibraryPrivate::resolve(const char *symbol)
bool QLibraryPrivate::load()
{
- libraryUnloadCount.ref();
- if (pHnd)
+ if (pHnd) {
+ libraryUnloadCount.ref();
return true;
+ }
if (fileName.isEmpty())
return false;
@@ -403,32 +490,27 @@ bool QLibraryPrivate::load()
if (ret) {
//when loading a library we add a reference to it so that the QLibraryPrivate won't get deleted
//this allows to unload the library at a later time
- if (LibraryData *lib = libraryData()) {
- lib->loadedLibs += this;
- libraryRefCount.ref();
- }
-
+ libraryUnloadCount.ref();
+ libraryRefCount.ref();
installCoverageTool(this);
}
return ret;
}
-bool QLibraryPrivate::unload()
+bool QLibraryPrivate::unload(UnloadFlag flag)
{
if (!pHnd)
return false;
- if (!libraryUnloadCount.deref()) { // only unload if ALL QLibrary instance wanted to
+ if (libraryUnloadCount.load() > 0 && !libraryUnloadCount.deref()) { // only unload if ALL QLibrary instance wanted to
delete inst.data();
- if (unload_sys()) {
+ if (flag == NoUnloadSys || unload_sys()) {
if (qt_debug_component())
- qWarning() << "QLibraryPrivate::unload succeeded on" << fileName;
+ qWarning() << "QLibraryPrivate::unload succeeded on" << fileName
+ << (flag == NoUnloadSys ? "(faked)" : "");
//when the library is unloaded, we release the reference on it so that 'this'
//can get deleted
- if (LibraryData *lib = libraryData()) {
- if (lib->loadedLibs.remove(this))
- libraryRefCount.deref();
- }
+ libraryRefCount.deref();
pHnd = 0;
instance = 0;
}
@@ -439,9 +521,7 @@ bool QLibraryPrivate::unload()
void QLibraryPrivate::release()
{
- QMutexLocker locker(&qt_library_mutex);
- if (!libraryRefCount.deref())
- delete this;
+ QLibraryStore::releaseLibrary(this);
}
bool QLibraryPrivate::loadPlugin()
@@ -631,7 +711,7 @@ void QLibraryPrivate::updatePluginState()
hTempModule = ::LoadLibraryEx((wchar_t*)QDir::toNativeSeparators(fileName).utf16(), 0, dwFlags);
SetErrorMode(oldmode);
#else
- temporary_load = load_sys();
+ temporary_load = load();
#endif
}
QtPluginQueryVerificationDataFunction getMetaData = NULL;
@@ -656,11 +736,10 @@ void QLibraryPrivate::updatePluginState()
if (getMetaData)
ret = qt_get_metadata(getMetaData, this, &exceptionThrown);
+ if (temporary_load)
+ unload();
if (!exceptionThrown) {
- if (!ret) {
- if (temporary_load)
- unload_sys();
- } else {
+ if (ret) {
success = true;
}
retryLoadLibrary = false;
diff --git a/src/corelib/plugin/qlibrary.h b/src/corelib/plugin/qlibrary.h
index f99c69c2d7..5c81e6af1a 100644
--- a/src/corelib/plugin/qlibrary.h
+++ b/src/corelib/plugin/qlibrary.h
@@ -44,8 +44,6 @@
#include <QtCore/qobject.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -111,6 +109,4 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QLibrary::LoadHints)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif //QLIBRARY_H
diff --git a/src/corelib/plugin/qlibrary_p.h b/src/corelib/plugin/qlibrary_p.h
index 28bec300eb..abf11be9f7 100644
--- a/src/corelib/plugin/qlibrary_p.h
+++ b/src/corelib/plugin/qlibrary_p.h
@@ -71,6 +71,7 @@ QT_BEGIN_NAMESPACE
bool qt_debug_component();
+class QLibraryStore;
class QLibraryPrivate
{
public:
@@ -82,12 +83,14 @@ public:
#endif
pHnd;
+ enum UnloadFlag { UnloadSys, NoUnloadSys };
+
QString fileName, qualifiedFileName;
QString fullVersion;
bool load();
bool loadPlugin(); // loads and resolves instance
- bool unload();
+ bool unload(UnloadFlag flag = UnloadSys);
void release();
QFunctionPointer resolve(const char *);
@@ -124,11 +127,13 @@ private:
bool unload_sys();
QFunctionPointer resolve_sys(const char *);
+ /// counts how many QLibrary or QPluginLoader are attached to us, plus 1 if it's loaded
QAtomicInt libraryRefCount;
+ /// counts how many times load() or loadPlugin() were called
QAtomicInt libraryUnloadCount;
enum { IsAPlugin, IsNotAPlugin, MightBeAPlugin } pluginState;
- friend class QLibraryPrivateHasFriends;
+ friend class QLibraryStore;
};
QT_END_NAMESPACE
diff --git a/src/corelib/plugin/qlibrary_unix.cpp b/src/corelib/plugin/qlibrary_unix.cpp
index 5044d09e9b..2aed877e6b 100644
--- a/src/corelib/plugin/qlibrary_unix.cpp
+++ b/src/corelib/plugin/qlibrary_unix.cpp
@@ -56,7 +56,7 @@
#include <string.h>
#endif
-#if defined(Q_OS_VXWORKS) || defined (Q_OS_NACL)
+#if (defined(Q_OS_VXWORKS) && !defined(VXWORKS_RTP)) || defined (Q_OS_NACL)
#define QT_NO_DYNAMIC_LIBRARY
#endif
diff --git a/src/corelib/plugin/qplugin.h b/src/corelib/plugin/qplugin.h
index b6a533b793..b91a0e9900 100644
--- a/src/corelib/plugin/qplugin.h
+++ b/src/corelib/plugin/qplugin.h
@@ -45,8 +45,6 @@
#include <QtCore/qobject.h>
#include <QtCore/qpointer.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -139,6 +137,4 @@ void Q_CORE_EXPORT qRegisterStaticPluginFunction(QStaticPlugin staticPlugin);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // Q_PLUGIN_H
diff --git a/src/corelib/plugin/qpluginloader.h b/src/corelib/plugin/qpluginloader.h
index 7eb48d530c..3d1d2dbe0b 100644
--- a/src/corelib/plugin/qpluginloader.h
+++ b/src/corelib/plugin/qpluginloader.h
@@ -51,8 +51,6 @@
#ifndef QT_NO_LIBRARY
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QLibraryPrivate;
@@ -93,8 +91,6 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QT_NO_LIBRARY
#endif //QPLUGINLOADER_H
diff --git a/src/corelib/plugin/quuid.h b/src/corelib/plugin/quuid.h
index bfd6759344..8bda617a3c 100644
--- a/src/corelib/plugin/quuid.h
+++ b/src/corelib/plugin/quuid.h
@@ -44,8 +44,6 @@
#include <QtCore/qstring.h>
-QT_BEGIN_HEADER
-
#if defined(Q_OS_WIN)
#ifndef GUID_DEFINED
#define GUID_DEFINED
@@ -227,6 +225,4 @@ Q_CORE_EXPORT uint qHash(const QUuid &uuid, uint seed = 0) Q_DECL_NOTHROW;
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QUUID_H
diff --git a/src/corelib/statemachine/qabstractstate.h b/src/corelib/statemachine/qabstractstate.h
index da13985316..a6ac248b85 100644
--- a/src/corelib/statemachine/qabstractstate.h
+++ b/src/corelib/statemachine/qabstractstate.h
@@ -44,8 +44,6 @@
#include <QtCore/qobject.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -96,6 +94,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/statemachine/qabstracttransition.h b/src/corelib/statemachine/qabstracttransition.h
index e8b2d0074f..a35ad4ca96 100644
--- a/src/corelib/statemachine/qabstracttransition.h
+++ b/src/corelib/statemachine/qabstracttransition.h
@@ -46,8 +46,6 @@
#include <QtCore/qlist.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -113,6 +111,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/statemachine/qeventtransition.h b/src/corelib/statemachine/qeventtransition.h
index 520c63e93b..f53a5e4732 100644
--- a/src/corelib/statemachine/qeventtransition.h
+++ b/src/corelib/statemachine/qeventtransition.h
@@ -45,8 +45,6 @@
#include <QtCore/qabstracttransition.h>
#include <QtCore/qcoreevent.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -89,6 +87,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/statemachine/qfinalstate.h b/src/corelib/statemachine/qfinalstate.h
index b0d8eb3a02..0343b99c1c 100644
--- a/src/corelib/statemachine/qfinalstate.h
+++ b/src/corelib/statemachine/qfinalstate.h
@@ -44,8 +44,6 @@
#include <QtCore/qabstractstate.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -74,6 +72,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/statemachine/qhistorystate.h b/src/corelib/statemachine/qhistorystate.h
index e35385b1a1..62278ac47a 100644
--- a/src/corelib/statemachine/qhistorystate.h
+++ b/src/corelib/statemachine/qhistorystate.h
@@ -44,8 +44,6 @@
#include <QtCore/qabstractstate.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -89,6 +87,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/statemachine/qsignaltransition.h b/src/corelib/statemachine/qsignaltransition.h
index 3038132da3..12f021d78e 100644
--- a/src/corelib/statemachine/qsignaltransition.h
+++ b/src/corelib/statemachine/qsignaltransition.h
@@ -44,8 +44,6 @@
#include <QtCore/qabstracttransition.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -84,6 +82,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/statemachine/qstate.h b/src/corelib/statemachine/qstate.h
index 8080c9062d..a5f2509ffb 100644
--- a/src/corelib/statemachine/qstate.h
+++ b/src/corelib/statemachine/qstate.h
@@ -46,8 +46,6 @@
#include <QtCore/qlist.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -129,6 +127,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/statemachine/qstatemachine.h b/src/corelib/statemachine/qstatemachine.h
index b33b95d25d..9305676bb5 100644
--- a/src/corelib/statemachine/qstatemachine.h
+++ b/src/corelib/statemachine/qstatemachine.h
@@ -50,8 +50,6 @@
#include <QtCore/qset.h>
#include <QtCore/qvariant.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -195,6 +193,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/thread/qatomic.h b/src/corelib/thread/qatomic.h
index 06cee4894e..1ccaecc135 100644
--- a/src/corelib/thread/qatomic.h
+++ b/src/corelib/thread/qatomic.h
@@ -46,8 +46,6 @@
#include <QtCore/qbasicatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -220,6 +218,4 @@ inline void qAtomicDetach(T *&d)
}
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QATOMIC_H
diff --git a/src/corelib/thread/qbasicatomic.h b/src/corelib/thread/qbasicatomic.h
index 70b69827c2..5c5d2637b3 100644
--- a/src/corelib/thread/qbasicatomic.h
+++ b/src/corelib/thread/qbasicatomic.h
@@ -101,15 +101,11 @@
// Only include if the implementation has been ported to QAtomicOps
#ifndef QOLDBASICATOMIC_H
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
#if 0
// silence syncqt warnings
QT_END_NAMESPACE
-QT_END_HEADER
-
#pragma qt_no_master_include
#pragma qt_sync_stop_processing
#endif
@@ -271,8 +267,6 @@ public:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QOLDBASICATOMIC_H
#endif // QBASICATOMIC_H
diff --git a/src/corelib/thread/qexception.h b/src/corelib/thread/qexception.h
index fa944ce69d..accf0fc7b4 100644
--- a/src/corelib/thread/qexception.h
+++ b/src/corelib/thread/qexception.h
@@ -53,7 +53,6 @@
# include <exception>
#endif
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -116,7 +115,6 @@ public:
#endif // QT_NO_EXCEPTIONS
QT_END_NAMESPACE
-QT_END_HEADER
#endif // QT_NO_QFUTURE
diff --git a/src/corelib/thread/qfuture.h b/src/corelib/thread/qfuture.h
index d9c4f1af77..8071e80d1b 100644
--- a/src/corelib/thread/qfuture.h
+++ b/src/corelib/thread/qfuture.h
@@ -49,7 +49,6 @@
#include <QtCore/qfutureinterface.h>
#include <QtCore/qstring.h>
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -269,7 +268,6 @@ QFuture<void> qToVoidFuture(const QFuture<T> &future)
}
QT_END_NAMESPACE
-QT_END_HEADER
#endif // QT_NO_QFUTURE
diff --git a/src/corelib/thread/qfutureinterface.h b/src/corelib/thread/qfutureinterface.h
index 6ab1409f55..d2d58a9332 100644
--- a/src/corelib/thread/qfutureinterface.h
+++ b/src/corelib/thread/qfutureinterface.h
@@ -50,7 +50,6 @@
#include <QtCore/qexception.h>
#include <QtCore/qresultstore.h>
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -310,8 +309,6 @@ public:
};
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QT_NO_QFUTURE
#endif // QFUTUREINTERFACE_H
diff --git a/src/corelib/thread/qfuturesynchronizer.h b/src/corelib/thread/qfuturesynchronizer.h
index 60960f7711..426bb42b0d 100644
--- a/src/corelib/thread/qfuturesynchronizer.h
+++ b/src/corelib/thread/qfuturesynchronizer.h
@@ -46,7 +46,6 @@
#ifndef QT_NO_QFUTURE
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -113,8 +112,6 @@ protected:
};
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QT_NO_QFUTURE
#endif // QFUTURESYNCHRONIZER_H
diff --git a/src/corelib/thread/qfuturewatcher.h b/src/corelib/thread/qfuturewatcher.h
index d41b6139b6..c78ed7a83b 100644
--- a/src/corelib/thread/qfuturewatcher.h
+++ b/src/corelib/thread/qfuturewatcher.h
@@ -48,7 +48,6 @@
#include <QtCore/qobject.h>
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -215,8 +214,6 @@ Q_INLINE_TEMPLATE void QFutureWatcher<void>::setFuture(const QFuture<void> &_fut
}
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QT_NO_QFUTURE
#endif // QFUTUREWATCHER_H
diff --git a/src/corelib/thread/qgenericatomic.h b/src/corelib/thread/qgenericatomic.h
index 90f0223ccf..a0a851eabb 100644
--- a/src/corelib/thread/qgenericatomic.h
+++ b/src/corelib/thread/qgenericatomic.h
@@ -44,14 +44,12 @@
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
#if 0
// silence syncqt warnings
QT_END_NAMESPACE
-QT_END_HEADER
-
+#pragma qt_sync_skip_header_check
#pragma qt_sync_stop_processing
#endif
@@ -241,6 +239,4 @@ template <typename BaseClass> struct QGenericAtomicOps
#undef always_inline
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QGENERICATOMIC_H
diff --git a/src/corelib/thread/qmutex.h b/src/corelib/thread/qmutex.h
index 94bcdd1750..0bca0def22 100644
--- a/src/corelib/thread/qmutex.h
+++ b/src/corelib/thread/qmutex.h
@@ -46,8 +46,6 @@
#include <QtCore/qatomic.h>
#include <new>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -211,6 +209,4 @@ typedef QMutex QBasicMutex;
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QMUTEX_H
diff --git a/src/corelib/thread/qmutex_p.h b/src/corelib/thread/qmutex_p.h
index 1b8bcd6b3a..bec2d934c1 100644
--- a/src/corelib/thread/qmutex_p.h
+++ b/src/corelib/thread/qmutex_p.h
@@ -70,6 +70,8 @@
# define QT_LINUX_FUTEX
#endif
+struct timespec;
+
QT_BEGIN_NAMESPACE
class QMutexData
@@ -137,6 +139,13 @@ public:
#endif //QT_LINUX_FUTEX
+#ifdef Q_OS_UNIX
+// helper functions for qmutex_unix.cpp and qwaitcondition_unix.cpp
+// they are in qwaitcondition_unix.cpp actually
+void qt_initialize_pthread_cond(pthread_cond_t *cond, const char *where);
+void qt_abstime_for_timeout(struct timespec *ts, int timeout);
+#endif
+
QT_END_NAMESPACE
#endif // QMUTEX_P_H
diff --git a/src/corelib/thread/qmutex_unix.cpp b/src/corelib/thread/qmutex_unix.cpp
index ef030cb49a..2f8c2e1dc8 100644
--- a/src/corelib/thread/qmutex_unix.cpp
+++ b/src/corelib/thread/qmutex_unix.cpp
@@ -42,11 +42,14 @@
#include "qplatformdefs.h"
#include "qmutex.h"
#include "qstring.h"
+#include "qelapsedtimer.h"
#ifndef QT_NO_THREAD
#include "qatomic.h"
#include "qmutex_p.h"
#include <errno.h>
+#include <sys/time.h>
+#include <time.h>
#if defined(Q_OS_VXWORKS) && defined(wakeup)
#undef wakeup
@@ -64,7 +67,7 @@ QMutexPrivate::QMutexPrivate()
: wakeup(false)
{
report_error(pthread_mutex_init(&mutex, NULL), "QMutex", "mutex init");
- report_error(pthread_cond_init(&cond, NULL), "QMutex", "cv init");
+ qt_initialize_pthread_cond(&cond, "QMutex");
}
QMutexPrivate::~QMutexPrivate()
@@ -81,12 +84,8 @@ bool QMutexPrivate::wait(int timeout)
if (timeout < 0) {
errorCode = pthread_cond_wait(&cond, &mutex);
} else {
- struct timeval tv;
- gettimeofday(&tv, 0);
timespec ti;
- ti.tv_nsec = (tv.tv_usec + (timeout % 1000) * 1000) * 1000;
- ti.tv_sec = tv.tv_sec + (timeout / 1000) + (ti.tv_nsec / 1000000000);
- ti.tv_nsec %= 1000000000;
+ qt_abstime_for_timeout(&ti, timeout);
errorCode = pthread_cond_timedwait(&cond, &mutex, &ti);
}
if (errorCode) {
diff --git a/src/corelib/thread/qoldbasicatomic.h b/src/corelib/thread/qoldbasicatomic.h
index 15785e2232..b755256ff7 100644
--- a/src/corelib/thread/qoldbasicatomic.h
+++ b/src/corelib/thread/qoldbasicatomic.h
@@ -44,16 +44,13 @@
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
#if 0
// silence syncqt warnings
QT_END_NAMESPACE
-QT_END_HEADER
-
+#pragma qt_sync_skip_header_check
#pragma qt_no_master_include
#pragma qt_sync_stop_processing
#endif
@@ -142,6 +139,5 @@ public:
#define Q_BASIC_ATOMIC_INITIALIZER(a) { (a) }
QT_END_NAMESPACE
-QT_END_HEADER
#endif // QOLDBASICATOMIC_H
diff --git a/src/corelib/thread/qreadwritelock.h b/src/corelib/thread/qreadwritelock.h
index 8217d4eacd..6815878ec5 100644
--- a/src/corelib/thread/qreadwritelock.h
+++ b/src/corelib/thread/qreadwritelock.h
@@ -44,8 +44,6 @@
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -231,6 +229,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QREADWRITELOCK_H
diff --git a/src/corelib/thread/qresultstore.h b/src/corelib/thread/qresultstore.h
index 8c1787bc11..c14146656a 100644
--- a/src/corelib/thread/qresultstore.h
+++ b/src/corelib/thread/qresultstore.h
@@ -49,7 +49,6 @@
#include <QtCore/qmap.h>
#include <QtCore/qdebug.h>
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -234,7 +233,6 @@ public:
#endif //Q_QDOC
QT_END_NAMESPACE
-QT_END_HEADER
#endif // QT_NO_QFUTURE
diff --git a/src/corelib/thread/qrunnable.h b/src/corelib/thread/qrunnable.h
index ba03519872..a6cc095258 100644
--- a/src/corelib/thread/qrunnable.h
+++ b/src/corelib/thread/qrunnable.h
@@ -44,7 +44,6 @@
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -67,6 +66,5 @@ public:
};
QT_END_NAMESPACE
-QT_END_HEADER
#endif
diff --git a/src/corelib/thread/qsemaphore.h b/src/corelib/thread/qsemaphore.h
index b47588ce62..40200151b0 100644
--- a/src/corelib/thread/qsemaphore.h
+++ b/src/corelib/thread/qsemaphore.h
@@ -44,8 +44,6 @@
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -77,6 +75,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSEMAPHORE_H
diff --git a/src/corelib/thread/qthread.cpp b/src/corelib/thread/qthread.cpp
index bd8c6341c1..79199c97e0 100644
--- a/src/corelib/thread/qthread.cpp
+++ b/src/corelib/thread/qthread.cpp
@@ -76,6 +76,7 @@ QThreadData::~QThreadData()
// the problem...
if (this->thread == QCoreApplicationPrivate::theMainThread) {
QCoreApplicationPrivate::theMainThread = 0;
+ QThreadData::clearCurrentThreadData();
}
QThread *t = thread;
diff --git a/src/corelib/thread/qthread.h b/src/corelib/thread/qthread.h
index c6c6167da7..19c0f82d86 100644
--- a/src/corelib/thread/qthread.h
+++ b/src/corelib/thread/qthread.h
@@ -46,8 +46,6 @@
#include <limits.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -164,6 +162,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QTHREAD_H
diff --git a/src/corelib/thread/qthread_p.h b/src/corelib/thread/qthread_p.h
index 526633cafa..2cf988260f 100644
--- a/src/corelib/thread/qthread_p.h
+++ b/src/corelib/thread/qthread_p.h
@@ -223,6 +223,7 @@ public:
~QThreadData();
static QThreadData *current();
+ static void clearCurrentThreadData();
static QThreadData *get2(QThread *thread)
{ Q_ASSERT_X(thread != 0, "QThread", "internal error"); return thread->d_func()->data; }
diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp
index 8abf1d06ef..44ad8d3ac2 100644
--- a/src/corelib/thread/qthread_unix.cpp
+++ b/src/corelib/thread/qthread_unix.cpp
@@ -204,6 +204,11 @@ static void clear_thread_data()
pthread_setspecific(current_thread_data_key, 0);
}
+void QThreadData::clearCurrentThreadData()
+{
+ clear_thread_data();
+}
+
QThreadData *QThreadData::current()
{
QThreadData *data = get_thread_data();
@@ -287,7 +292,7 @@ static void setCurrentThreadName(pthread_t threadId, const char *name)
void *QThreadPrivate::start(void *arg)
{
-#if !defined(Q_OS_LINUX_ANDROID)
+#if !defined(Q_OS_ANDROID)
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
#endif
pthread_cleanup_push(QThreadPrivate::finish, arg);
@@ -326,7 +331,7 @@ void *QThreadPrivate::start(void *arg)
#endif
emit thr->started(QThread::QPrivateSignal());
-#if !defined(Q_OS_LINUX_ANDROID)
+#if !defined(Q_OS_ANDROID)
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
pthread_testcancel();
#endif
@@ -415,6 +420,13 @@ int QThread::idealThreadCount() Q_DECL_NOTHROW
// IRIX
cores = (int)sysconf(_SC_NPROC_ONLN);
#elif defined(Q_OS_INTEGRITY)
+#if (__INTEGRITY_MAJOR_VERSION >= 10)
+ // Integrity V10+ does support multicore CPUs
+ Value processorCount;
+ if (GetProcessorCount(CurrentTask(), &processorCount) == 0)
+ cores = processorCount;
+ else
+#endif
// as of aug 2008 Integrity only supports one single core CPU
cores = 1;
#elif defined(Q_OS_VXWORKS)
@@ -488,8 +500,20 @@ static bool calculateUnixPriority(int priority, int *sched_policy, int *sched_pr
#endif
const int highestPriority = QThread::TimeCriticalPriority;
- int prio_min = sched_get_priority_min(*sched_policy);
- int prio_max = sched_get_priority_max(*sched_policy);
+ int prio_min;
+ int prio_max;
+#if defined(Q_OS_VXWORKS) && defined(VXWORKS_DKM)
+ // for other scheduling policies than SCHED_RR or SCHED_FIFO
+ prio_min = SCHED_FIFO_LOW_PRI;
+ prio_max = SCHED_FIFO_HIGH_PRI;
+
+ if ((*sched_policy == SCHED_RR) || (*sched_policy == SCHED_FIFO))
+#endif
+ {
+ prio_min = sched_get_priority_min(*sched_policy);
+ prio_max = sched_get_priority_max(*sched_policy);
+ }
+
if (prio_min == -1 || prio_max == -1)
return false;
@@ -612,7 +636,7 @@ void QThread::start(Priority priority)
void QThread::terminate()
{
-#if !defined(Q_OS_LINUX_ANDROID)
+#if !defined(Q_OS_ANDROID)
Q_D(QThread);
QMutexLocker locker(&d->mutex);
@@ -654,7 +678,7 @@ void QThread::setTerminationEnabled(bool enabled)
"Current thread was not started with QThread.");
Q_UNUSED(thr)
-#if defined(Q_OS_LINUX_ANDROID)
+#if defined(Q_OS_ANDROID)
Q_UNUSED(enabled);
#else
pthread_setcancelstate(enabled ? PTHREAD_CANCEL_ENABLE : PTHREAD_CANCEL_DISABLE, NULL);
diff --git a/src/corelib/thread/qthread_win.cpp b/src/corelib/thread/qthread_win.cpp
index 8614330d6f..0cf903bb3a 100644
--- a/src/corelib/thread/qthread_win.cpp
+++ b/src/corelib/thread/qthread_win.cpp
@@ -96,6 +96,11 @@ Q_DESTRUCTOR_FUNCTION(qt_free_tls)
/*
QThreadData
*/
+void QThreadData::clearCurrentThreadData()
+{
+ TlsSetValue(qt_current_thread_data_tls_index, 0);
+}
+
QThreadData *QThreadData::current()
{
qt_create_tls();
diff --git a/src/corelib/thread/qthreadpool.h b/src/corelib/thread/qthreadpool.h
index bc572fc8e8..ffc16dedbe 100644
--- a/src/corelib/thread/qthreadpool.h
+++ b/src/corelib/thread/qthreadpool.h
@@ -49,7 +49,6 @@
#ifndef QT_NO_THREAD
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -87,7 +86,6 @@ public:
};
QT_END_NAMESPACE
-QT_END_HEADER
#endif // QT_NO_THREAD
diff --git a/src/corelib/thread/qthreadstorage.h b/src/corelib/thread/qthreadstorage.h
index c98d181c1f..86285de84f 100644
--- a/src/corelib/thread/qthreadstorage.h
+++ b/src/corelib/thread/qthreadstorage.h
@@ -46,8 +46,6 @@
#ifndef QT_NO_THREAD
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -156,8 +154,6 @@ public:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QT_NO_THREAD
#endif // QTHREADSTORAGE_H
diff --git a/src/corelib/thread/qwaitcondition.h b/src/corelib/thread/qwaitcondition.h
index e8f51dad54..1468951373 100644
--- a/src/corelib/thread/qwaitcondition.h
+++ b/src/corelib/thread/qwaitcondition.h
@@ -46,8 +46,6 @@
#include <limits.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -99,6 +97,4 @@ public:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QWAITCONDITION_H
diff --git a/src/corelib/thread/qwaitcondition_unix.cpp b/src/corelib/thread/qwaitcondition_unix.cpp
index ab4e7872fb..9b5c8d000d 100644
--- a/src/corelib/thread/qwaitcondition_unix.cpp
+++ b/src/corelib/thread/qwaitcondition_unix.cpp
@@ -45,11 +45,15 @@
#include "qreadwritelock.h"
#include "qatomic.h"
#include "qstring.h"
+#include "qelapsedtimer.h"
+#include "private/qcore_unix_p.h"
#include "qmutex_p.h"
#include "qreadwritelock_p.h"
#include <errno.h>
+#include <sys/time.h>
+#include <time.h>
#ifndef QT_NO_THREAD
@@ -61,6 +65,38 @@ static void report_error(int code, const char *where, const char *what)
qWarning("%s: %s failure: %s", where, what, qPrintable(qt_error_string(code)));
}
+void qt_initialize_pthread_cond(pthread_cond_t *cond, const char *where)
+{
+ pthread_condattr_t condattr;
+
+ pthread_condattr_init(&condattr);
+#if !defined(Q_OS_MAC) && (_POSIX_MONOTONIC_CLOCK-0 >= 0)
+ if (QElapsedTimer::clockType() == QElapsedTimer::MonotonicClock)
+ pthread_condattr_setclock(&condattr, CLOCK_MONOTONIC);
+#endif
+ report_error(pthread_cond_init(cond, &condattr), where, "cv init");
+ pthread_condattr_destroy(&condattr);
+}
+
+void qt_abstime_for_timeout(timespec *ts, int timeout)
+{
+#ifdef Q_OS_MAC
+ // on Mac, qt_gettime() (on qelapsedtimer_mac.cpp) returns ticks related to the Mach absolute time
+ // that doesn't work with pthread
+ // Mac also doesn't have clock_gettime
+ struct timeval tv;
+ gettimeofday(&tv, 0);
+ ts->tv_sec = tv.tv_sec;
+ ts->tv_nsec = tv.tv_usec * 1000;
+#else
+ *ts = qt_gettime();
+#endif
+
+ ts->tv_sec += timeout / 1000;
+ ts->tv_nsec += timeout % 1000 * Q_UINT64_C(1000) * 1000;
+ normalizedTimespec(*ts);
+}
+
class QWaitConditionPrivate {
public:
pthread_mutex_t mutex;
@@ -73,14 +109,8 @@ public:
int code;
forever {
if (time != ULONG_MAX) {
- struct timeval tv;
- gettimeofday(&tv, 0);
-
timespec ti;
- ti.tv_nsec = (tv.tv_usec + (time % 1000) * 1000) * 1000;
- ti.tv_sec = tv.tv_sec + (time / 1000) + (ti.tv_nsec / 1000000000);
- ti.tv_nsec %= 1000000000;
-
+ qt_abstime_for_timeout(&ti, time);
code = pthread_cond_timedwait(&cond, &mutex, &ti);
} else {
code = pthread_cond_wait(&cond, &mutex);
@@ -114,7 +144,7 @@ QWaitCondition::QWaitCondition()
{
d = new QWaitConditionPrivate;
report_error(pthread_mutex_init(&d->mutex, NULL), "QWaitCondition", "mutex init");
- report_error(pthread_cond_init(&d->cond, NULL), "QWaitCondition", "cv init");
+ qt_initialize_pthread_cond(&d->cond, "QWaitCondition");
d->waiters = d->wakeups = 0;
}
diff --git a/src/corelib/thread/thread.pri b/src/corelib/thread/thread.pri
index 7247f2984e..13f0502b62 100644
--- a/src/corelib/thread/thread.pri
+++ b/src/corelib/thread/thread.pri
@@ -56,7 +56,7 @@ integrity:SOURCES += thread/qmutex_unix.cpp \
thread/qwaitcondition_unix.cpp
unix: {
- macx-* {
+ mac {
SOURCES += thread/qmutex_mac.cpp
} else:linux-*:!linux-lsb-* {
SOURCES += thread/qmutex_linux.cpp
diff --git a/src/corelib/tools/qalgorithms.h b/src/corelib/tools/qalgorithms.h
index 936ebd1cbb..e3b76886f1 100644
--- a/src/corelib/tools/qalgorithms.h
+++ b/src/corelib/tools/qalgorithms.h
@@ -44,8 +44,6 @@
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -520,6 +518,4 @@ Q_OUTOFLINE_TEMPLATE RandomAccessIterator qBinaryFindHelper(RandomAccessIterator
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QALGORITHMS_H
diff --git a/src/corelib/tools/qarraydata.h b/src/corelib/tools/qarraydata.h
index aab01c5f41..27f2606954 100644
--- a/src/corelib/tools/qarraydata.h
+++ b/src/corelib/tools/qarraydata.h
@@ -45,8 +45,6 @@
#include <QtCore/qrefcount.h>
#include <string.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
struct Q_CORE_EXPORT QArrayData
@@ -361,6 +359,4 @@ namespace QtPrivate {
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // include guard
diff --git a/src/corelib/tools/qarraydataops.h b/src/corelib/tools/qarraydataops.h
index 6c95e9364d..3cd8c51c07 100644
--- a/src/corelib/tools/qarraydataops.h
+++ b/src/corelib/tools/qarraydataops.h
@@ -47,8 +47,6 @@
#include <new>
#include <string.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
namespace QtPrivate {
@@ -423,6 +421,4 @@ struct QArrayDataOps
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // include guard
diff --git a/src/corelib/tools/qarraydatapointer.h b/src/corelib/tools/qarraydatapointer.h
index 52d054b035..533f7a306f 100644
--- a/src/corelib/tools/qarraydatapointer.h
+++ b/src/corelib/tools/qarraydatapointer.h
@@ -44,8 +44,6 @@
#include <QtCore/qarraydataops.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
template <class T>
@@ -219,6 +217,4 @@ namespace std
}
}
-QT_END_HEADER
-
#endif // include guard
diff --git a/src/corelib/tools/qbitarray.h b/src/corelib/tools/qbitarray.h
index e622d6515c..1103712627 100644
--- a/src/corelib/tools/qbitarray.h
+++ b/src/corelib/tools/qbitarray.h
@@ -44,8 +44,6 @@
#include <QtCore/qbytearray.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -176,6 +174,4 @@ Q_DECLARE_SHARED(QBitArray)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QBITARRAY_H
diff --git a/src/corelib/tools/qbytearray.h b/src/corelib/tools/qbytearray.h
index 8d03951073..f3cc301a49 100644
--- a/src/corelib/tools/qbytearray.h
+++ b/src/corelib/tools/qbytearray.h
@@ -66,8 +66,6 @@
#endif
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -610,8 +608,6 @@ Q_DECLARE_SHARED(QByteArray)
QT_END_NAMESPACE
-QT_END_HEADER
-
#ifdef QT_USE_QSTRINGBUILDER
#include <QtCore/qstring.h>
#endif
diff --git a/src/corelib/tools/qbytearraymatcher.h b/src/corelib/tools/qbytearraymatcher.h
index 370116e643..da6a337a69 100644
--- a/src/corelib/tools/qbytearraymatcher.h
+++ b/src/corelib/tools/qbytearraymatcher.h
@@ -44,8 +44,6 @@
#include <QtCore/qbytearray.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -97,6 +95,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QBYTEARRAYMATCHER_H
diff --git a/src/corelib/tools/qcache.h b/src/corelib/tools/qcache.h
index 2d2b9f3d45..5890a94dc2 100644
--- a/src/corelib/tools/qcache.h
+++ b/src/corelib/tools/qcache.h
@@ -44,8 +44,6 @@
#include <QtCore/qhash.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -200,6 +198,4 @@ void QCache<Key,T>::trim(int m)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QCACHE_H
diff --git a/src/corelib/tools/qchar.cpp b/src/corelib/tools/qchar.cpp
index 6fdb3215b0..8545276dac 100644
--- a/src/corelib/tools/qchar.cpp
+++ b/src/corelib/tools/qchar.cpp
@@ -263,6 +263,132 @@ QT_BEGIN_NAMESPACE
*/
/*!
+ \enum QChar::Script
+ \since 5.1
+
+ This enum type defines the Unicode script property values.
+
+ For details about the Unicode script property values see
+ \l{http://www.unicode.org/reports/tr24/}{Unicode Standard Annex #24}.
+
+ In order to conform to C/C++ naming conventions "Script_" is prepended
+ to the codes used in the Unicode Standard.
+
+ \value Script_Unknown For unassigned, private-use, noncharacter, and surrogate code points.
+ \value Script_Inherited For characters that may be used with multiple scripts
+ and that inherit their script from the preceding characters.
+ These include nonspacing marks, enclosing marks,
+ and zero width joiner/non-joiner characters.
+ \value Script_Common For characters that may be used with multiple scripts
+ and that do not inherit their script from the preceding characters.
+
+ \value Script_Latin
+ \value Script_Greek
+ \value Script_Cyrillic
+ \value Script_Armenian
+ \value Script_Hebrew
+ \value Script_Arabic
+ \value Script_Syriac
+ \value Script_Thaana
+ \value Script_Devanagari
+ \value Script_Bengali
+ \value Script_Gurmukhi
+ \value Script_Gujarati
+ \value Script_Oriya
+ \value Script_Tamil
+ \value Script_Telugu
+ \value Script_Kannada
+ \value Script_Malayalam
+ \value Script_Sinhala
+ \value Script_Thai
+ \value Script_Lao
+ \value Script_Tibetan
+ \value Script_Myanmar
+ \value Script_Georgian
+ \value Script_Hangul
+ \value Script_Ethiopic
+ \value Script_Cherokee
+ \value Script_CanadianAboriginal
+ \value Script_Ogham
+ \value Script_Runic
+ \value Script_Khmer
+ \value Script_Mongolian
+ \value Script_Hiragana
+ \value Script_Katakana
+ \value Script_Bopomofo
+ \value Script_Han
+ \value Script_Yi
+ \value Script_OldItalic
+ \value Script_Gothic
+ \value Script_Deseret
+ \value Script_Tagalog
+ \value Script_Hanunoo
+ \value Script_Buhid
+ \value Script_Tagbanwa
+ \value Script_Coptic
+ \value Script_Limbu
+ \value Script_TaiLe
+ \value Script_LinearB
+ \value Script_Ugaritic
+ \value Script_Shavian
+ \value Script_Osmanya
+ \value Script_Cypriot
+ \value Script_Braille
+ \value Script_Buginese
+ \value Script_NewTaiLue
+ \value Script_Glagolitic
+ \value Script_Tifinagh
+ \value Script_SylotiNagri
+ \value Script_OldPersian
+ \value Script_Kharoshthi
+ \value Script_Balinese
+ \value Script_Cuneiform
+ \value Script_Phoenician
+ \value Script_PhagsPa
+ \value Script_Nko
+ \value Script_Sundanese
+ \value Script_Lepcha
+ \value Script_OlChiki
+ \value Script_Vai
+ \value Script_Saurashtra
+ \value Script_KayahLi
+ \value Script_Rejang
+ \value Script_Lycian
+ \value Script_Carian
+ \value Script_Lydian
+ \value Script_Cham
+ \value Script_TaiTham
+ \value Script_TaiViet
+ \value Script_Avestan
+ \value Script_EgyptianHieroglyphs
+ \value Script_Samaritan
+ \value Script_Lisu
+ \value Script_Bamum
+ \value Script_Javanese
+ \value Script_MeeteiMayek
+ \value Script_ImperialAramaic
+ \value Script_OldSouthArabian
+ \value Script_InscriptionalParthian
+ \value Script_InscriptionalPahlavi
+ \value Script_OldTurkic
+ \value Script_Kaithi
+ \value Script_Batak
+ \value Script_Brahmi
+ \value Script_Mandaic
+ \value Script_Chakma
+ \value Script_MeroiticCursive
+ \value Script_MeroiticHieroglyphs
+ \value Script_Miao
+ \value Script_Sharada
+ \value Script_SoraSompeng
+ \value Script_Takri
+
+ \omitvalue ScriptCount
+
+ \sa script()
+*/
+
+/*!
\enum QChar::Direction
This enum type defines the Unicode direction attributes. See the
@@ -1159,6 +1285,27 @@ unsigned char QChar::combiningClass(uint ucs4)
}
/*!
+ \fn QChar::Script QChar::script() const
+ \since 5.1
+
+ Returns the Unicode script property value for this character.
+*/
+
+/*!
+ \overload
+ \since 5.1
+
+ Returns the Unicode script property value for the character specified in
+ its UCS-4-encoded form as \a ucs4.
+*/
+QChar::Script QChar::script(uint ucs4)
+{
+ if (ucs4 > LastValidCodePoint)
+ return QChar::Script_Unknown;
+ return (QChar::Script) qGetProp(ucs4)->script;
+}
+
+/*!
\fn QChar::UnicodeVersion QChar::unicodeVersion() const
Returns the Unicode version that introduced this character.
diff --git a/src/corelib/tools/qchar.h b/src/corelib/tools/qchar.h
index 20101db975..8afa05bb00 100644
--- a/src/corelib/tools/qchar.h
+++ b/src/corelib/tools/qchar.h
@@ -44,8 +44,6 @@
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -137,6 +135,130 @@ public:
Symbol_Other // So
};
+ enum Script
+ {
+ Script_Unknown,
+ Script_Inherited,
+ Script_Common,
+
+ Script_Latin,
+ Script_Greek,
+ Script_Cyrillic,
+ Script_Armenian,
+ Script_Hebrew,
+ Script_Arabic,
+ Script_Syriac,
+ Script_Thaana,
+ Script_Devanagari,
+ Script_Bengali,
+ Script_Gurmukhi,
+ Script_Gujarati,
+ Script_Oriya,
+ Script_Tamil,
+ Script_Telugu,
+ Script_Kannada,
+ Script_Malayalam,
+ Script_Sinhala,
+ Script_Thai,
+ Script_Lao,
+ Script_Tibetan,
+ Script_Myanmar,
+ Script_Georgian,
+ Script_Hangul,
+ Script_Ethiopic,
+ Script_Cherokee,
+ Script_CanadianAboriginal,
+ Script_Ogham,
+ Script_Runic,
+ Script_Khmer,
+ Script_Mongolian,
+ Script_Hiragana,
+ Script_Katakana,
+ Script_Bopomofo,
+ Script_Han,
+ Script_Yi,
+ Script_OldItalic,
+ Script_Gothic,
+ Script_Deseret,
+ Script_Tagalog,
+ Script_Hanunoo,
+ Script_Buhid,
+ Script_Tagbanwa,
+ Script_Coptic,
+
+ // Unicode 4.0 additions
+ Script_Limbu,
+ Script_TaiLe,
+ Script_LinearB,
+ Script_Ugaritic,
+ Script_Shavian,
+ Script_Osmanya,
+ Script_Cypriot,
+ Script_Braille,
+
+ // Unicode 4.1 additions
+ Script_Buginese,
+ Script_NewTaiLue,
+ Script_Glagolitic,
+ Script_Tifinagh,
+ Script_SylotiNagri,
+ Script_OldPersian,
+ Script_Kharoshthi,
+
+ // Unicode 5.0 additions
+ Script_Balinese,
+ Script_Cuneiform,
+ Script_Phoenician,
+ Script_PhagsPa,
+ Script_Nko,
+
+ // Unicode 5.1 additions
+ Script_Sundanese,
+ Script_Lepcha,
+ Script_OlChiki,
+ Script_Vai,
+ Script_Saurashtra,
+ Script_KayahLi,
+ Script_Rejang,
+ Script_Lycian,
+ Script_Carian,
+ Script_Lydian,
+ Script_Cham,
+
+ // Unicode 5.2 additions
+ Script_TaiTham,
+ Script_TaiViet,
+ Script_Avestan,
+ Script_EgyptianHieroglyphs,
+ Script_Samaritan,
+ Script_Lisu,
+ Script_Bamum,
+ Script_Javanese,
+ Script_MeeteiMayek,
+ Script_ImperialAramaic,
+ Script_OldSouthArabian,
+ Script_InscriptionalParthian,
+ Script_InscriptionalPahlavi,
+ Script_OldTurkic,
+ Script_Kaithi,
+
+ // Unicode 6.0 additions
+ Script_Batak,
+ Script_Brahmi,
+ Script_Mandaic,
+
+ // Unicode 6.1 additions
+ Script_Chakma,
+ Script_MeroiticCursive,
+ Script_MeroiticHieroglyphs,
+ Script_Miao,
+ Script_Sharada,
+ Script_SoraSompeng,
+ Script_Takri,
+
+ ScriptCount
+ };
+
enum Direction
{
DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, DirWS, DirON,
@@ -231,6 +353,8 @@ public:
inline QChar toTitleCase() const { return QChar::toTitleCase(ucs); }
inline QChar toCaseFolded() const { return QChar::toCaseFolded(ucs); }
+ inline Script script() const { return QChar::script(ucs); }
+
inline UnicodeVersion unicodeVersion() const { return QChar::unicodeVersion(ucs); }
#if QT_DEPRECATED_SINCE(5, 0)
@@ -316,6 +440,8 @@ public:
static uint QT_FASTCALL toTitleCase(uint ucs4);
static uint QT_FASTCALL toCaseFolded(uint ucs4);
+ static Script QT_FASTCALL script(uint ucs4);
+
static UnicodeVersion QT_FASTCALL unicodeVersion(uint ucs4);
static UnicodeVersion QT_FASTCALL currentUnicodeVersion();
@@ -398,6 +524,4 @@ Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QChar &);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QCHAR_H
diff --git a/src/corelib/tools/qcollator_p.h b/src/corelib/tools/qcollator_p.h
index 4420c6592e..51de205565 100644
--- a/src/corelib/tools/qcollator_p.h
+++ b/src/corelib/tools/qcollator_p.h
@@ -45,8 +45,6 @@
#include <QtCore/qstring.h>
#include <QtCore/qlocale.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QCollatorPrivate;
@@ -119,6 +117,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QCOLLATOR_P_H
diff --git a/src/corelib/tools/qcontainerfwd.h b/src/corelib/tools/qcontainerfwd.h
index c4866253ee..6b79e40635 100644
--- a/src/corelib/tools/qcontainerfwd.h
+++ b/src/corelib/tools/qcontainerfwd.h
@@ -44,8 +44,6 @@
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -65,6 +63,4 @@ template <class T> class QVector;
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QCONTAINERFWD_H
diff --git a/src/corelib/tools/qcontiguouscache.h b/src/corelib/tools/qcontiguouscache.h
index 1075284491..d601ddb819 100644
--- a/src/corelib/tools/qcontiguouscache.h
+++ b/src/corelib/tools/qcontiguouscache.h
@@ -46,8 +46,6 @@
#include <limits.h>
#include <new>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
#undef QT_QCONTIGUOUSCACHE_DEBUG
@@ -464,6 +462,4 @@ inline T QContiguousCache<T>::takeLast()
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/tools/qcryptographichash.cpp b/src/corelib/tools/qcryptographichash.cpp
index 3f17fe15aa..fdf2d1a620 100644
--- a/src/corelib/tools/qcryptographichash.cpp
+++ b/src/corelib/tools/qcryptographichash.cpp
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2013 Richard J. Moore <rich@kde.org>.
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -40,12 +41,51 @@
****************************************************************************/
#include <qcryptographichash.h>
+#include <qiodevice.h>
+
+#include "../../3rdparty/sha1/sha1.cpp"
+#ifndef QT_CRYPTOGRAPHICHASH_ONLY_SHA1
+// qdoc only needs SHA-1
#include "../../3rdparty/md5/md5.h"
#include "../../3rdparty/md5/md5.cpp"
#include "../../3rdparty/md4/md4.h"
#include "../../3rdparty/md4/md4.cpp"
-#include "../../3rdparty/sha1/sha1.cpp"
+
+typedef unsigned char BitSequence;
+typedef unsigned long long DataLength;
+typedef enum { SUCCESS = 0, FAIL = 1, BAD_HASHLEN = 2 } HashReturn;
+
+#include "../../3rdparty/sha3/KeccakSponge.c"
+typedef spongeState hashState;
+
+#include "../../3rdparty/sha3/KeccakNISTInterface.c"
+
+/*
+ This lets us choose between SHA3 implementations at build time.
+ */
+typedef spongeState SHA3Context;
+typedef HashReturn (SHA3Init)(hashState *state, int hashbitlen);
+typedef HashReturn (SHA3Update)(hashState *state, const BitSequence *data, DataLength databitlen);
+typedef HashReturn (SHA3Final)(hashState *state, BitSequence *hashval);
+
+#if QT_POINTER_SIZE == 8 // 64 bit version
+
+#include "../../3rdparty/sha3/KeccakF-1600-opt64.c"
+
+static SHA3Init * const sha3Init = Init;
+static SHA3Update * const sha3Update = Update;
+static SHA3Final * const sha3Final = Final;
+
+#else // 32 bit optimised fallback
+
+#include "../../3rdparty/sha3/KeccakF-1600-opt32.c"
+
+static SHA3Init * const sha3Init = Init;
+static SHA3Update * const sha3Update = Update;
+static SHA3Final * const sha3Final = Final;
+
+#endif
/*
These #defines replace the typedefs needed by the RFC6234 code. Normally
@@ -88,8 +128,6 @@ static int SHA384_512AddLength(SHA512Context *context, unsigned int length);
#undef uint68_t
#undef int_least16_t
-#include <qiodevice.h>
-
static inline int SHA224_256AddLength(SHA256Context *context, unsigned int length)
{
QT_PREPEND_NAMESPACE(quint32) addTemp;
@@ -100,6 +138,7 @@ static inline int SHA384_512AddLength(SHA512Context *context, unsigned int lengt
QT_PREPEND_NAMESPACE(quint64) addTemp;
return SHA384_512AddLengthM(context, length);
}
+#endif // QT_CRYPTOGRAPHICHASH_ONLY_SHA1
QT_BEGIN_NAMESPACE
@@ -108,13 +147,16 @@ class QCryptographicHashPrivate
public:
QCryptographicHash::Algorithm method;
union {
+ Sha1State sha1Context;
+#ifndef QT_CRYPTOGRAPHICHASH_ONLY_SHA1
MD5Context md5Context;
md4_context md4Context;
- Sha1State sha1Context;
SHA224Context sha224Context;
SHA256Context sha256Context;
SHA384Context sha384Context;
SHA512Context sha512Context;
+ SHA3Context sha3Context;
+#endif
};
QByteArray result;
};
@@ -141,10 +183,14 @@ public:
\value Md4 Generate an MD4 hash sum
\value Md5 Generate an MD5 hash sum
\value Sha1 Generate an SHA-1 hash sum
- \value Sha224 Generate an SHA-224 hash sum. Introduced in Qt 5.0
- \value Sha256 Generate an SHA-256 hash sum. Introduced in Qt 5.0
- \value Sha384 Generate an SHA-384 hash sum. Introduced in Qt 5.0
- \value Sha512 Generate an SHA-512 hash sum. Introduced in Qt 5.0
+ \value Sha224 Generate an SHA-224 hash sum (SHA-2). Introduced in Qt 5.0
+ \value Sha256 Generate an SHA-256 hash sum (SHA-2). Introduced in Qt 5.0
+ \value Sha384 Generate an SHA-384 hash sum (SHA-2). Introduced in Qt 5.0
+ \value Sha512 Generate an SHA-512 hash sum (SHA-2). Introduced in Qt 5.0
+ \value Sha3_224 Generate an SHA3-224 hash sum. Introduced in Qt 5.1
+ \value Sha3_256 Generate an SHA3-256 hash sum. Introduced in Qt 5.1
+ \value Sha3_384 Generate an SHA3-384 hash sum. Introduced in Qt 5.1
+ \value Sha3_512 Generate an SHA3-512 hash sum. Introduced in Qt 5.1
*/
/*!
@@ -171,15 +217,21 @@ QCryptographicHash::~QCryptographicHash()
void QCryptographicHash::reset()
{
switch (d->method) {
+ case Sha1:
+ sha1InitState(&d->sha1Context);
+ break;
+#ifdef QT_CRYPTOGRAPHICHASH_ONLY_SHA1
+ default:
+ Q_ASSERT_X(false, "QCryptographicHash", "Method not compiled in");
+ Q_UNREACHABLE();
+ break;
+#else
case Md4:
md4_init(&d->md4Context);
break;
case Md5:
MD5Init(&d->md5Context);
break;
- case Sha1:
- sha1InitState(&d->sha1Context);
- break;
case Sha224:
SHA224Reset(&d->sha224Context);
break;
@@ -192,6 +244,19 @@ void QCryptographicHash::reset()
case Sha512:
SHA512Reset(&d->sha512Context);
break;
+ case Sha3_224:
+ sha3Init(&d->sha3Context, 224);
+ break;
+ case Sha3_256:
+ sha3Init(&d->sha3Context, 256);
+ break;
+ case Sha3_384:
+ sha3Init(&d->sha3Context, 384);
+ break;
+ case Sha3_512:
+ sha3Init(&d->sha3Context, 512);
+ break;
+#endif
}
d->result.clear();
}
@@ -203,15 +268,21 @@ void QCryptographicHash::reset()
void QCryptographicHash::addData(const char *data, int length)
{
switch (d->method) {
+ case Sha1:
+ sha1Update(&d->sha1Context, (const unsigned char *)data, length);
+ break;
+#ifdef QT_CRYPTOGRAPHICHASH_ONLY_SHA1
+ default:
+ Q_ASSERT_X(false, "QCryptographicHash", "Method not compiled in");
+ Q_UNREACHABLE();
+ break;
+#else
case Md4:
md4_update(&d->md4Context, (const unsigned char *)data, length);
break;
case Md5:
MD5Update(&d->md5Context, (const unsigned char *)data, length);
break;
- case Sha1:
- sha1Update(&d->sha1Context, (const unsigned char *)data, length);
- break;
case Sha224:
SHA224Input(&d->sha224Context, reinterpret_cast<const unsigned char *>(data), length);
break;
@@ -224,6 +295,19 @@ void QCryptographicHash::addData(const char *data, int length)
case Sha512:
SHA512Input(&d->sha512Context, reinterpret_cast<const unsigned char *>(data), length);
break;
+ case Sha3_224:
+ sha3Update(&d->sha3Context, reinterpret_cast<const BitSequence *>(data), length*8);
+ break;
+ case Sha3_256:
+ sha3Update(&d->sha3Context, reinterpret_cast<const BitSequence *>(data), length*8);
+ break;
+ case Sha3_384:
+ sha3Update(&d->sha3Context, reinterpret_cast<const BitSequence *>(data), length*8);
+ break;
+ case Sha3_512:
+ sha3Update(&d->sha3Context, reinterpret_cast<const BitSequence *>(data), length*8);
+ break;
+#endif
}
d->result.clear();
}
@@ -270,6 +354,19 @@ QByteArray QCryptographicHash::result() const
return d->result;
switch (d->method) {
+ case Sha1: {
+ Sha1State copy = d->sha1Context;
+ d->result.resize(20);
+ sha1FinalizeState(&copy);
+ sha1ToHash(&copy, (unsigned char *)d->result.data());
+ break;
+ }
+#ifdef QT_CRYPTOGRAPHICHASH_ONLY_SHA1
+ default:
+ Q_ASSERT_X(false, "QCryptographicHash", "Method not compiled in");
+ Q_UNREACHABLE();
+ break;
+#else
case Md4: {
md4_context copy = d->md4Context;
d->result.resize(MD4_RESULTLEN);
@@ -282,13 +379,6 @@ QByteArray QCryptographicHash::result() const
MD5Final(&copy, (unsigned char *)d->result.data());
break;
}
- case Sha1: {
- Sha1State copy = d->sha1Context;
- d->result.resize(20);
- sha1FinalizeState(&copy);
- sha1ToHash(&copy, (unsigned char *)d->result.data());
- break;
- }
case Sha224: {
SHA224Context copy = d->sha224Context;
d->result.resize(SHA224HashSize);
@@ -313,6 +403,31 @@ QByteArray QCryptographicHash::result() const
SHA512Result(&copy, reinterpret_cast<unsigned char *>(d->result.data()));
break;
}
+ case Sha3_224: {
+ SHA3Context copy = d->sha3Context;
+ d->result.resize(224/8);
+ sha3Final(&copy, reinterpret_cast<BitSequence *>(d->result.data()));
+ break;
+ }
+ case Sha3_256: {
+ SHA3Context copy = d->sha3Context;
+ d->result.resize(256/8);
+ sha3Final(&copy, reinterpret_cast<BitSequence *>(d->result.data()));
+ break;
+ }
+ case Sha3_384: {
+ SHA3Context copy = d->sha3Context;
+ d->result.resize(384/8);
+ sha3Final(&copy, reinterpret_cast<BitSequence *>(d->result.data()));
+ break;
+ }
+ case Sha3_512: {
+ SHA3Context copy = d->sha3Context;
+ d->result.resize(512/8);
+ sha3Final(&copy, reinterpret_cast<BitSequence *>(d->result.data()));
+ break;
+ }
+#endif
}
return d->result;
}
diff --git a/src/corelib/tools/qcryptographichash.h b/src/corelib/tools/qcryptographichash.h
index 1a7e3751e8..d4e75c4667 100644
--- a/src/corelib/tools/qcryptographichash.h
+++ b/src/corelib/tools/qcryptographichash.h
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Copyright (C) 2013 Richard J. Moore <rich@kde.org>.
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -44,8 +45,6 @@
#include <QtCore/qbytearray.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -62,7 +61,11 @@ public:
Sha224,
Sha256,
Sha384,
- Sha512
+ Sha512,
+ Sha3_224,
+ Sha3_256,
+ Sha3_384,
+ Sha3_512
};
explicit QCryptographicHash(Algorithm method);
@@ -84,6 +87,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp
index 88f22daad5..31c870b012 100644
--- a/src/corelib/tools/qdatetime.cpp
+++ b/src/corelib/tools/qdatetime.cpp
@@ -93,11 +93,6 @@ static inline QDate fixedDate(int y, int m, int d)
return result;
}
-static inline qint64 floordiv(qint64 a, qint64 b)
-{
- return (a - (a < 0 ? b-1 : 0)) / b;
-}
-
static inline qint64 floordiv(qint64 a, int b)
{
return (a - (a < 0 ? b-1 : 0)) / b;
@@ -549,8 +544,8 @@ int QDate::weekNumber(int *yearNumber) const
\li 12 = "Dec"
\endlist
- The month names will be localized according to the system's locale
- settings.
+ The month names will be localized according to the system's default
+ locale settings.
Returns an empty string if the date is invalid.
@@ -596,8 +591,8 @@ QString QDate::shortMonthName(int month, QDate::MonthNameType type)
\li 12 = "December"
\endlist
- The month names will be localized according to the system's locale
- settings.
+ The month names will be localized according to the system's default
+ locale settings.
Returns an empty string if the date is invalid.
@@ -638,8 +633,8 @@ QString QDate::longMonthName(int month, MonthNameType type)
\li 7 = "Sun"
\endlist
- The day names will be localized according to the system's locale
- settings.
+ The day names will be localized according to the system's default
+ locale settings.
Returns an empty string if the date is invalid.
@@ -680,8 +675,8 @@ QString QDate::shortDayName(int weekday, MonthNameType type)
\li 7 = "Sunday"
\endlist
- The day names will be localized according to the system's locale
- settings.
+ The day names will be localized according to the system's default
+ locale settings.
Returns an empty string if the date is invalid.
@@ -718,8 +713,8 @@ QString QDate::longDayName(int weekday, MonthNameType type)
If the \a format is Qt::TextDate, the string is formatted in
the default way. QDate::shortDayName() and QDate::shortMonthName()
are used to generate the string, so the day and month names will
- be localized names. An example of this formatting is
- "Sat May 20 1995".
+ be localized names using the default locale from the system. An
+ example of this formatting is "Sat May 20 1995".
If the \a format is Qt::ISODate, the string format corresponds
to the ISO 8601 extended specification for representations of
@@ -2409,9 +2404,9 @@ uint QDateTime::toTime_t() const
(Qt::UTC). On systems that do not support time zones this function
will behave as if local time were Qt::UTC.
- Note that there are possible values for \a msecs that lie outside the
- valid range of QDateTime, both negative and positive. The behavior of
- this function is undefined for those values.
+ Note that passing the minimum of \c qint64
+ (\c{std::numeric_limits<qint64>::min()}) to \a msecs will result in
+ undefined behavior.
\sa toMSecsSinceEpoch(), setTime_t()
*/
@@ -4015,7 +4010,7 @@ static QDateTimePrivate::Spec utcToLocal(QDate &date, QTime &time)
time = QTime();
return QDateTimePrivate::LocalUnknown;
} else {
- int deltaDays = fakeDate.daysTo(date);
+ qint64 deltaDays = fakeDate.daysTo(date);
date = QDate(brokenDown->tm_year + 1900, brokenDown->tm_mon + 1, brokenDown->tm_mday);
time = QTime(brokenDown->tm_hour, brokenDown->tm_min, brokenDown->tm_sec, time.msec());
date = date.addDays(deltaDays);
@@ -4093,7 +4088,7 @@ static void localToUtc(QDate &date, QTime &time, int isdst)
date = QDate(1970, 1, 1);
time = QTime();
} else {
- int deltaDays = fakeDate.daysTo(date);
+ qint64 deltaDays = fakeDate.daysTo(date);
date = QDate(brokenDown->tm_year + 1900, brokenDown->tm_mon + 1, brokenDown->tm_mday);
time = QTime(brokenDown->tm_hour, brokenDown->tm_min, brokenDown->tm_sec, time.msec());
date = date.addDays(deltaDays);
diff --git a/src/corelib/tools/qdatetime.h b/src/corelib/tools/qdatetime.h
index ae545eda4f..d1cc10c877 100644
--- a/src/corelib/tools/qdatetime.h
+++ b/src/corelib/tools/qdatetime.h
@@ -48,8 +48,6 @@
#include <limits>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -296,6 +294,4 @@ Q_CORE_EXPORT uint qHash(const QTime &key, uint seed = 0) Q_DECL_NOTHROW;
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QDATETIME_H
diff --git a/src/corelib/tools/qdatetime_p.h b/src/corelib/tools/qdatetime_p.h
index 4f61e34bf9..c70571d509 100644
--- a/src/corelib/tools/qdatetime_p.h
+++ b/src/corelib/tools/qdatetime_p.h
@@ -101,6 +101,9 @@ public:
void getUTC(QDate &outDate, QTime &outTime) const;
static QDateTime addMSecs(const QDateTime &dt, qint64 msecs);
static void addMSecs(QDate &utcDate, QTime &utcTime, qint64 msecs);
+
+ static inline qint64 minJd() { return QDate::minJd(); }
+ static inline qint64 maxJd() { return QDate::maxJd(); }
};
#ifndef QT_BOOTSTRAPPED
diff --git a/src/corelib/tools/qeasingcurve.h b/src/corelib/tools/qeasingcurve.h
index cb8519d204..2e65754989 100644
--- a/src/corelib/tools/qeasingcurve.h
+++ b/src/corelib/tools/qeasingcurve.h
@@ -50,8 +50,6 @@
# include <QtCore/qpoint.h>
#endif
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -142,6 +140,4 @@ Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QEasingCurve &);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/tools/qelapsedtimer.h b/src/corelib/tools/qelapsedtimer.h
index 3fb9c6bffe..b06afe4ab4 100644
--- a/src/corelib/tools/qelapsedtimer.h
+++ b/src/corelib/tools/qelapsedtimer.h
@@ -44,8 +44,6 @@
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -89,6 +87,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QELAPSEDTIMER_H
diff --git a/src/corelib/tools/qelapsedtimer_mac.cpp b/src/corelib/tools/qelapsedtimer_mac.cpp
index 611098779c..19056d1bd9 100644
--- a/src/corelib/tools/qelapsedtimer_mac.cpp
+++ b/src/corelib/tools/qelapsedtimer_mac.cpp
@@ -76,14 +76,14 @@ static qint64 absoluteToMSecs(qint64 cpuTime)
return absoluteToNSecs(cpuTime) / 1000000;
}
-timeval qt_gettime() Q_DECL_NOTHROW
+timespec qt_gettime() Q_DECL_NOTHROW
{
- timeval tv;
+ timespec tv;
uint64_t cpu_time = mach_absolute_time();
uint64_t nsecs = absoluteToNSecs(cpu_time);
tv.tv_sec = nsecs / 1000000000ull;
- tv.tv_usec = (nsecs / 1000) - (tv.tv_sec * 1000000);
+ tv.tv_nsec = nsecs - (tv.tv_sec * 1000000000ull);
return tv;
}
diff --git a/src/corelib/tools/qelapsedtimer_unix.cpp b/src/corelib/tools/qelapsedtimer_unix.cpp
index e719358ce0..f81a723aa5 100644
--- a/src/corelib/tools/qelapsedtimer_unix.cpp
+++ b/src/corelib/tools/qelapsedtimer_unix.cpp
@@ -43,8 +43,12 @@
#define _POSIX_C_SOURCE 200809L
#include "qelapsedtimer.h"
+#ifdef Q_OS_VXWORKS
+#include "qfunctions_vxworks.h"
+#else
#include <sys/time.h>
#include <time.h>
+#endif
#include <unistd.h>
#include <qatomic.h>
@@ -168,14 +172,14 @@ static inline void do_gettime(qint64 *sec, qint64 *frac)
}
// used in qcore_unix.cpp and qeventdispatcher_unix.cpp
-timeval qt_gettime() Q_DECL_NOTHROW
+struct timespec qt_gettime() Q_DECL_NOTHROW
{
qint64 sec, frac;
do_gettime(&sec, &frac);
- timeval tv;
+ timespec tv;
tv.tv_sec = sec;
- tv.tv_usec = frac / 1000;
+ tv.tv_nsec = frac;
return tv;
}
diff --git a/src/corelib/tools/qfreelist_p.h b/src/corelib/tools/qfreelist_p.h
index 3de0d0b204..5e90a03d7f 100644
--- a/src/corelib/tools/qfreelist_p.h
+++ b/src/corelib/tools/qfreelist_p.h
@@ -55,8 +55,6 @@
#include <QtCore/qatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -288,6 +286,4 @@ inline void QFreeList<T, ConstantsType>::release(int id)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QFREELIST_P_H
diff --git a/src/corelib/tools/qharfbuzz_p.h b/src/corelib/tools/qharfbuzz_p.h
index 1cbfb03f63..9a0156f673 100644
--- a/src/corelib/tools/qharfbuzz_p.h
+++ b/src/corelib/tools/qharfbuzz_p.h
@@ -53,11 +53,85 @@
#ifndef QHARFBUZZ_P_H
#define QHARFBUZZ_P_H
-#include <QtCore/qglobal.h>
+#include <QtCore/qchar.h>
#include <private/harfbuzz-shaper.h>
QT_BEGIN_NAMESPACE
+static inline HB_Script script_to_hbscript(uchar script)
+{
+ switch (script) {
+ case QChar::Script_Inherited: return HB_Script_Inherited;
+ case QChar::Script_Common: return HB_Script_Common;
+ case QChar::Script_Arabic: return HB_Script_Arabic;
+ case QChar::Script_Armenian: return HB_Script_Armenian;
+ case QChar::Script_Bengali: return HB_Script_Bengali;
+ case QChar::Script_Cyrillic: return HB_Script_Cyrillic;
+ case QChar::Script_Devanagari: return HB_Script_Devanagari;
+ case QChar::Script_Georgian: return HB_Script_Georgian;
+ case QChar::Script_Greek: return HB_Script_Greek;
+ case QChar::Script_Gujarati: return HB_Script_Gujarati;
+ case QChar::Script_Gurmukhi: return HB_Script_Gurmukhi;
+ case QChar::Script_Hangul: return HB_Script_Hangul;
+ case QChar::Script_Hebrew: return HB_Script_Hebrew;
+ case QChar::Script_Kannada: return HB_Script_Kannada;
+ case QChar::Script_Khmer: return HB_Script_Khmer;
+ case QChar::Script_Lao: return HB_Script_Lao;
+ case QChar::Script_Malayalam: return HB_Script_Malayalam;
+ case QChar::Script_Myanmar: return HB_Script_Myanmar;
+ case QChar::Script_Ogham: return HB_Script_Ogham;
+ case QChar::Script_Oriya: return HB_Script_Oriya;
+ case QChar::Script_Runic: return HB_Script_Runic;
+ case QChar::Script_Sinhala: return HB_Script_Sinhala;
+ case QChar::Script_Syriac: return HB_Script_Syriac;
+ case QChar::Script_Tamil: return HB_Script_Tamil;
+ case QChar::Script_Telugu: return HB_Script_Telugu;
+ case QChar::Script_Thaana: return HB_Script_Thaana;
+ case QChar::Script_Thai: return HB_Script_Thai;
+ case QChar::Script_Tibetan: return HB_Script_Tibetan;
+ case QChar::Script_Nko: return HB_Script_Nko;
+ default: break;
+ };
+ return HB_Script_Common;
+}
+
+static inline uchar hbscript_to_script(uchar script)
+{
+ switch (script) {
+ case HB_Script_Inherited: return QChar::Script_Inherited;
+ case HB_Script_Common: return QChar::Script_Common;
+ case HB_Script_Arabic: return QChar::Script_Arabic;
+ case HB_Script_Armenian: return QChar::Script_Armenian;
+ case HB_Script_Bengali: return QChar::Script_Bengali;
+ case HB_Script_Cyrillic: return QChar::Script_Cyrillic;
+ case HB_Script_Devanagari: return QChar::Script_Devanagari;
+ case HB_Script_Georgian: return QChar::Script_Georgian;
+ case HB_Script_Greek: return QChar::Script_Greek;
+ case HB_Script_Gujarati: return QChar::Script_Gujarati;
+ case HB_Script_Gurmukhi: return QChar::Script_Gurmukhi;
+ case HB_Script_Hangul: return QChar::Script_Hangul;
+ case HB_Script_Hebrew: return QChar::Script_Hebrew;
+ case HB_Script_Kannada: return QChar::Script_Kannada;
+ case HB_Script_Khmer: return QChar::Script_Khmer;
+ case HB_Script_Lao: return QChar::Script_Lao;
+ case HB_Script_Malayalam: return QChar::Script_Malayalam;
+ case HB_Script_Myanmar: return QChar::Script_Myanmar;
+ case HB_Script_Ogham: return QChar::Script_Ogham;
+ case HB_Script_Oriya: return QChar::Script_Oriya;
+ case HB_Script_Runic: return QChar::Script_Runic;
+ case HB_Script_Sinhala: return QChar::Script_Sinhala;
+ case HB_Script_Syriac: return QChar::Script_Syriac;
+ case HB_Script_Tamil: return QChar::Script_Tamil;
+ case HB_Script_Telugu: return QChar::Script_Telugu;
+ case HB_Script_Thaana: return QChar::Script_Thaana;
+ case HB_Script_Thai: return QChar::Script_Thai;
+ case HB_Script_Tibetan: return QChar::Script_Tibetan;
+ case HB_Script_Nko: return QChar::Script_Nko;
+ default: break;
+ };
+ return QChar::Script_Common;
+}
+
Q_CORE_EXPORT HB_Bool qShapeItem(HB_ShaperItem *item);
// ### temporary
diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp
index 0103a208f3..b8cd076cb6 100644
--- a/src/corelib/tools/qhash.cpp
+++ b/src/corelib/tools/qhash.cpp
@@ -924,6 +924,16 @@ void QHashData::checkSanity()
\sa clear()
*/
+/*! \fn QHash::QHash(std::initializer_list<std::pair<Key,T> > list)
+ \since 5.1
+
+ Constructs a hash with a copy of each of the elements in the
+ initializer list \a list.
+
+ This function is only available if the program is being
+ compiled in C++11 mode.
+*/
+
/*! \fn QHash::QHash(const QHash<Key, T> &other)
Constructs a copy of \a other.
@@ -1981,6 +1991,16 @@ void QHashData::checkSanity()
Constructs an empty hash.
*/
+/*! \fn QMultiHash::QMultiHash(std::initializer_list<std::pair<Key,T> > list)
+ \since 5.1
+
+ Constructs a multi hash with a copy of each of the elements in the
+ initializer list \a list.
+
+ This function is only available if the program is being
+ compiled in C++11 mode.
+*/
+
/*! \fn QMultiHash::QMultiHash(const QHash<Key, T> &other)
Constructs a copy of \a other (which can be a QHash or a
diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h
index 98965b9121..5d9238f453 100644
--- a/src/corelib/tools/qhash.h
+++ b/src/corelib/tools/qhash.h
@@ -48,7 +48,9 @@
#include <QtCore/qpair.h>
#include <QtCore/qrefcount.h>
-QT_BEGIN_HEADER
+#ifdef Q_COMPILER_INITIALIZER_LISTS
+#include <initializer_list>
+#endif
QT_BEGIN_NAMESPACE
@@ -285,6 +287,15 @@ class QHash
public:
inline QHash() : d(const_cast<QHashData *>(&QHashData::shared_null)) { }
+#ifdef Q_COMPILER_INITIALIZER_LISTS
+ inline QHash(std::initializer_list<std::pair<Key,T> > list)
+ : d(const_cast<QHashData *>(&QHashData::shared_null))
+ {
+ reserve(list.size());
+ for (typename std::initializer_list<std::pair<Key,T> >::const_iterator it = list.begin(); it != list.end(); ++it)
+ insert(it->first, it->second);
+ }
+#endif
inline QHash(const QHash<Key, T> &other) : d(other.d) { d->ref.ref(); if (!d->sharable) detach(); }
inline ~QHash() { if (!d->ref.deref()) freeData(d); }
@@ -921,6 +932,14 @@ class QMultiHash : public QHash<Key, T>
{
public:
QMultiHash() {}
+#ifdef Q_COMPILER_INITIALIZER_LISTS
+ inline QMultiHash(std::initializer_list<std::pair<Key,T> > list)
+ {
+ this->reserve(list.size());
+ for (typename std::initializer_list<std::pair<Key,T> >::const_iterator it = list.begin(); it != list.end(); ++it)
+ insert(it->first, it->second);
+ }
+#endif
QMultiHash(const QHash<Key, T> &other) : QHash<Key, T>(other) {}
inline void swap(QMultiHash<Key, T> &other) { QHash<Key, T>::swap(other); } // prevent QMultiHash<->QHash swaps
@@ -1034,6 +1053,4 @@ Q_DECLARE_MUTABLE_ASSOCIATIVE_ITERATOR(Hash)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QHASH_H
diff --git a/src/corelib/tools/qiterator.h b/src/corelib/tools/qiterator.h
index ad2d8bae41..3b86edd750 100644
--- a/src/corelib/tools/qiterator.h
+++ b/src/corelib/tools/qiterator.h
@@ -44,8 +44,6 @@
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
#define Q_DECLARE_SEQUENTIAL_ITERATOR(C) \
@@ -190,6 +188,4 @@ public: \
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QITERATOR_H
diff --git a/src/corelib/tools/qline.h b/src/corelib/tools/qline.h
index cf87067b61..69e8a8245a 100644
--- a/src/corelib/tools/qline.h
+++ b/src/corelib/tools/qline.h
@@ -44,8 +44,6 @@
#include <QtCore/qpoint.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -421,6 +419,4 @@ Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QLineF &);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QLINE_H
diff --git a/src/corelib/tools/qlinkedlist.h b/src/corelib/tools/qlinkedlist.h
index 383d6eb990..b9ca1b964a 100644
--- a/src/corelib/tools/qlinkedlist.h
+++ b/src/corelib/tools/qlinkedlist.h
@@ -48,8 +48,6 @@
#include <iterator>
#include <list>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -501,6 +499,4 @@ Q_DECLARE_MUTABLE_SEQUENTIAL_ITERATOR(LinkedList)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QLINKEDLIST_H
diff --git a/src/corelib/tools/qlist.h b/src/corelib/tools/qlist.h
index 98326e5e00..0592c24e9f 100644
--- a/src/corelib/tools/qlist.h
+++ b/src/corelib/tools/qlist.h
@@ -57,8 +57,6 @@
#include <limits.h>
#include <string.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -910,6 +908,4 @@ Q_DECLARE_MUTABLE_SEQUENTIAL_ITERATOR(List)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QLIST_H
diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp
index 39257158a4..454025f54d 100644
--- a/src/corelib/tools/qlocale.cpp
+++ b/src/corelib/tools/qlocale.cpp
@@ -1327,6 +1327,224 @@ double QLocale::toDouble(const QString &s, bool *ok) const
}
/*!
+ Returns the short int represented by the localized string \a s.
+
+ If the conversion fails the function returns 0.
+
+ If \a ok is not null, failure is reported by setting *ok to false, and
+ success by setting *ok to true.
+
+ This function ignores leading and trailing whitespace.
+
+ \sa toUShort(), toString()
+
+ \since 5.1
+*/
+
+short QLocale::toShort(const QStringRef &s, bool *ok) const
+{
+ qlonglong i = toLongLong(s, ok);
+ if (i < SHRT_MIN || i > SHRT_MAX) {
+ if (ok)
+ *ok = false;
+ return 0;
+ }
+ return short(i);
+}
+
+/*!
+ Returns the unsigned short int represented by the localized string \a s.
+
+ If the conversion fails the function returns 0.
+
+ If \a ok is not null, failure is reported by setting *ok to false, and
+ success by setting *ok to true.
+
+ This function ignores leading and trailing whitespace.
+
+ \sa toShort(), toString()
+
+ \since 5.1
+*/
+
+ushort QLocale::toUShort(const QStringRef &s, bool *ok) const
+{
+ qulonglong i = toULongLong(s, ok);
+ if (i > USHRT_MAX) {
+ if (ok)
+ *ok = false;
+ return 0;
+ }
+ return ushort(i);
+}
+
+/*!
+ Returns the int represented by the localized string \a s.
+
+ If the conversion fails the function returns 0.
+
+ If \a ok is not null, failure is reported by setting *ok to false, and
+ success by setting *ok to true.
+
+ This function ignores leading and trailing whitespace.
+
+ \sa toUInt(), toString()
+
+ \since 5.1
+*/
+
+int QLocale::toInt(const QStringRef &s, bool *ok) const
+{
+ qlonglong i = toLongLong(s, ok);
+ if (i < INT_MIN || i > INT_MAX) {
+ if (ok)
+ *ok = false;
+ return 0;
+ }
+ return int(i);
+}
+
+/*!
+ Returns the unsigned int represented by the localized string \a s.
+
+ If the conversion fails the function returns 0.
+
+ If \a ok is not null, failure is reported by setting *ok to false, and
+ success by setting *ok to true.
+
+ This function ignores leading and trailing whitespace.
+
+ \sa toInt(), toString()
+
+ \since 5.1
+*/
+
+uint QLocale::toUInt(const QStringRef &s, bool *ok) const
+{
+ qulonglong i = toULongLong(s, ok);
+ if (i > UINT_MAX) {
+ if (ok)
+ *ok = false;
+ return 0;
+ }
+ return uint(i);
+}
+
+/*!
+ Returns the long long int represented by the localized string \a s.
+
+ If the conversion fails the function returns 0.
+
+ If \a ok is not null, failure is reported by setting *ok to false, and
+ success by setting *ok to true.
+
+ This function ignores leading and trailing whitespace.
+
+ \sa toInt(), toULongLong(), toDouble(), toString()
+
+ \since 5.1
+*/
+
+
+qlonglong QLocale::toLongLong(const QStringRef &s, bool *ok) const
+{
+ QLocalePrivate::GroupSeparatorMode mode
+ = d->m_numberOptions & RejectGroupSeparator
+ ? QLocalePrivate::FailOnGroupSeparators
+ : QLocalePrivate::ParseGroupSeparators;
+
+ return d->stringToLongLong(s, 10, ok, mode);
+}
+
+/*!
+ Returns the unsigned long long int represented by the localized
+ string \a s.
+
+ If the conversion fails the function returns 0.
+
+ If \a ok is not null, failure is reported by setting *ok to false, and
+ success by setting *ok to true.
+
+ This function ignores leading and trailing whitespace.
+
+ \sa toLongLong(), toInt(), toDouble(), toString()
+
+ \since 5.1
+*/
+
+qulonglong QLocale::toULongLong(const QStringRef &s, bool *ok) const
+{
+ QLocalePrivate::GroupSeparatorMode mode
+ = d->m_numberOptions & RejectGroupSeparator
+ ? QLocalePrivate::FailOnGroupSeparators
+ : QLocalePrivate::ParseGroupSeparators;
+
+ return d->stringToUnsLongLong(s, 10, ok, mode);
+}
+
+/*!
+ Returns the float represented by the localized string \a s, or 0.0
+ if the conversion failed.
+
+ If \a ok is not null, reports failure by setting
+ *ok to false and success by setting *ok to true.
+
+ This function ignores leading and trailing whitespace.
+
+ \sa toDouble(), toInt(), toString()
+
+ \since 5.1
+*/
+
+float QLocale::toFloat(const QStringRef &s, bool *ok) const
+{
+ bool myOk;
+ double d = toDouble(s, &myOk);
+ if (!myOk || d > QT_MAX_FLOAT || d < -QT_MAX_FLOAT) {
+ if (ok)
+ *ok = false;
+ return 0.0;
+ }
+ if (ok)
+ *ok = true;
+ return float(d);
+}
+
+/*!
+ Returns the double represented by the localized string \a s, or
+ 0.0 if the conversion failed.
+
+ If \a ok is not null, reports failure by setting
+ *ok to false and success by setting *ok to true.
+
+ Unlike QString::toDouble(), this function does not fall back to
+ the "C" locale if the string cannot be interpreted in this
+ locale.
+
+ \snippet code/src_corelib_tools_qlocale.cpp 3
+
+ Notice that the last conversion returns 1234.0, because '.' is the
+ thousands group separator in the German locale.
+
+ This function ignores leading and trailing whitespace.
+
+ \sa toFloat(), toInt(), toString()
+
+ \since 5.1
+*/
+
+double QLocale::toDouble(const QStringRef &s, bool *ok) const
+{
+ QLocalePrivate::GroupSeparatorMode mode
+ = d->m_numberOptions & RejectGroupSeparator
+ ? QLocalePrivate::FailOnGroupSeparators
+ : QLocalePrivate::ParseGroupSeparators;
+
+ return d->stringToDouble(s, ok, mode);
+}
+
+
+/*!
Returns a localized string representation of \a i.
\sa toLongLong()
@@ -2892,12 +3110,12 @@ QString QLocalePrivate::unsLongLongToString(const QChar zero, const QChar group,
number. We can't detect junk here, since we don't even know the base
of the number.
*/
-bool QLocalePrivate::numberToCLocale(const QString &num,
+bool QLocalePrivate::numberToCLocale(const QChar *str, int len,
GroupSeparatorMode group_sep_mode,
CharBuff *result) const
{
- const QChar *uc = num.unicode();
- int l = num.length();
+ const QChar *uc = str;
+ int l = len;
int idx = 0;
// Skip whitespace
@@ -3043,7 +3261,13 @@ double QLocalePrivate::stringToDouble(const QString &number, bool *ok,
GroupSeparatorMode group_sep_mode) const
{
CharBuff buff;
- if (!numberToCLocale(group().unicode() == 0xa0 ? number.trimmed() : number,
+ // Do not use the ternary operator - triggers msvc2012 bug in optimized builds
+ QString trimmedNumber;
+ if (group().unicode() == 0xa0)
+ trimmedNumber = number.trimmed();
+ else
+ trimmedNumber = number;
+ if (!numberToCLocale(trimmedNumber.unicode(), trimmedNumber.size(),
group_sep_mode, &buff)) {
if (ok != 0)
*ok = false;
@@ -3056,7 +3280,13 @@ qlonglong QLocalePrivate::stringToLongLong(const QString &number, int base,
bool *ok, GroupSeparatorMode group_sep_mode) const
{
CharBuff buff;
- if (!numberToCLocale(group().unicode() == 0xa0 ? number.trimmed() : number,
+ // Do not use the ternary operator - triggers msvc2012 bug in optimized builds
+ QString trimmedNumber;
+ if (group().unicode() == 0xa0)
+ trimmedNumber = number.trimmed();
+ else
+ trimmedNumber = number;
+ if (!numberToCLocale(trimmedNumber.unicode(), trimmedNumber.size(),
group_sep_mode, &buff)) {
if (ok != 0)
*ok = false;
@@ -3070,7 +3300,13 @@ qulonglong QLocalePrivate::stringToUnsLongLong(const QString &number, int base,
bool *ok, GroupSeparatorMode group_sep_mode) const
{
CharBuff buff;
- if (!numberToCLocale(group().unicode() == 0xa0 ? number.trimmed() : number,
+ // Do not use the ternary operator - triggers msvc2012 bug in optimized builds
+ QString trimmedNumber;
+ if (group().unicode() == 0xa0)
+ trimmedNumber = number.trimmed();
+ else
+ trimmedNumber = number;
+ if (!numberToCLocale(trimmedNumber.unicode(), trimmedNumber.size(),
group_sep_mode, &buff)) {
if (ok != 0)
*ok = false;
@@ -3080,6 +3316,64 @@ qulonglong QLocalePrivate::stringToUnsLongLong(const QString &number, int base,
return bytearrayToUnsLongLong(buff.constData(), base, ok);
}
+double QLocalePrivate::stringToDouble(const QStringRef &number, bool *ok,
+ GroupSeparatorMode group_sep_mode) const
+{
+ CharBuff buff;
+ QStringRef trimmedNumber;
+ // Do not use the ternary operator - triggers msvc2012 bug in optimized builds
+ if (group().unicode() == 0xa0)
+ trimmedNumber = number.trimmed();
+ else
+ trimmedNumber = number;
+ if (!numberToCLocale(trimmedNumber.unicode(), trimmedNumber.size(),
+ group_sep_mode, &buff)) {
+ if (ok != 0)
+ *ok = false;
+ return 0.0;
+ }
+ return bytearrayToDouble(buff.constData(), ok);
+}
+
+qlonglong QLocalePrivate::stringToLongLong(const QStringRef &number, int base,
+ bool *ok, GroupSeparatorMode group_sep_mode) const
+{
+ CharBuff buff;
+ QStringRef trimmedNumber;
+ // Do not use the ternary operator - triggers msvc2012 bug in optimized builds
+ if (group().unicode() == 0xa0)
+ trimmedNumber = number.trimmed();
+ else
+ trimmedNumber = number;
+ if (!numberToCLocale(trimmedNumber.unicode(), trimmedNumber.size(),
+ group_sep_mode, &buff)) {
+ if (ok != 0)
+ *ok = false;
+ return 0;
+ }
+
+ return bytearrayToLongLong(buff.constData(), base, ok);
+}
+
+qulonglong QLocalePrivate::stringToUnsLongLong(const QStringRef &number, int base,
+ bool *ok, GroupSeparatorMode group_sep_mode) const
+{
+ CharBuff buff;
+ QStringRef trimmedNumber;
+ // Do not use the ternary operator - triggers msvc2012 bug in optimized builds
+ if (group().unicode() == 0xa0)
+ trimmedNumber = number.trimmed();
+ else
+ trimmedNumber = number;
+ if (!numberToCLocale(trimmedNumber.unicode(), trimmedNumber.size(),
+ group_sep_mode, &buff)) {
+ if (ok != 0)
+ *ok = false;
+ return 0;
+ }
+
+ return bytearrayToUnsLongLong(buff.constData(), base, ok);
+}
double QLocalePrivate::bytearrayToDouble(const char *num, bool *ok, bool *overflow)
{
diff --git a/src/corelib/tools/qlocale.h b/src/corelib/tools/qlocale.h
index 4283a31c43..6199cdb19b 100644
--- a/src/corelib/tools/qlocale.h
+++ b/src/corelib/tools/qlocale.h
@@ -47,8 +47,6 @@
#include <QtCore/qobjectdefs.h>
#include <QtCore/qshareddata.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -69,6 +67,7 @@ class Q_CORE_EXPORT QLocale
Q_ENUMS(Country)
Q_ENUMS(MeasurementSystem)
friend class QString;
+ friend class QStringRef;
friend class QByteArray;
friend class QIntValidator;
friend class QDoubleValidatorPrivate;
@@ -207,7 +206,7 @@ public:
Turkish = 125,
Turkmen = 126,
Tahitian = 127,
- Uigur = 128,
+ Uighur = 128,
Ukrainian = 129,
Urdu = 130,
Uzbek = 131,
@@ -340,6 +339,57 @@ public:
Kako = 258,
Meta = 259,
Ngiemboon = 260,
+ Aragonese = 261,
+ Akkadian = 262,
+ AncientEgyptian = 263,
+ AncientGreek = 264,
+ Aramaic = 265,
+ Balinese = 266,
+ Bamun = 267,
+ BatakToba = 268,
+ Buginese = 269,
+ Buhid = 270,
+ Carian = 271,
+ Chakma = 272,
+ ClassicalMandaic = 273,
+ Coptic = 274,
+ Dogri = 275,
+ EasternCham = 276,
+ EasternKayah = 277,
+ Etruscan = 278,
+ Gothic = 279,
+ Hanunoo = 280,
+ Ingush = 281,
+ LargeFloweryMiao = 282,
+ Lepcha = 283,
+ Limbu = 284,
+ Lisu = 285,
+ Lu = 286,
+ Lycian = 287,
+ Lydian = 288,
+ Mandingo = 289,
+ Manipuri = 290,
+ Meroitic = 291,
+ NorthernThai = 292,
+ OldIrish = 293,
+ OldNorse = 294,
+ OldPersian = 295,
+ OldTurkish = 296,
+ Pahlavi = 297,
+ Parthian = 298,
+ Phoenician = 299,
+ PrakritLanguage = 300,
+ Rejang = 301,
+ Sabaean = 302,
+ Samaritan = 303,
+ Santali = 304,
+ Saurashtra = 305,
+ Sora = 306,
+ Sylheti = 307,
+ Tagbanwa = 308,
+ TaiDam = 309,
+ TaiNua = 310,
+ Ugaritic = 311,
Norwegian = NorwegianBokmal,
Moldavian = Romanian,
SerboCroatian = Serbian,
@@ -353,7 +403,8 @@ public:
RhaetoRomance = Romansh,
Chewa = Nyanja,
Frisian = WesternFrisian,
- LastLanguage = Ngiemboon
+ Uigur = Uighur,
+ LastLanguage = Ugaritic
};
enum Script {
@@ -393,9 +444,76 @@ public:
SyriacScript = 33,
YiScript = 34,
VaiScript = 35,
+ AvestanScript = 36,
+ BalineseScript = 37,
+ BamumScript = 38,
+ BatakScript = 39,
+ BopomofoScript = 40,
+ BrahmiScript = 41,
+ BugineseScript = 42,
+ BuhidScript = 43,
+ CanadianAboriginalScript = 44,
+ CarianScript = 45,
+ ChakmaScript = 46,
+ ChamScript = 47,
+ CopticScript = 48,
+ CypriotScript = 49,
+ EgyptianHieroglyphsScript = 50,
+ FraserScript = 51,
+ GlagoliticScript = 52,
+ GothicScript = 53,
+ HanScript = 54,
+ HangulScript = 55,
+ HanunooScript = 56,
+ ImperialAramaicScript = 57,
+ InscriptionalPahlaviScript = 58,
+ InscriptionalParthianScript = 59,
+ JavaneseScript = 60,
+ KaithiScript = 61,
+ KatakanaScript = 62,
+ KayahLiScript = 63,
+ KharoshthiScript = 64,
+ LannaScript = 65,
+ LepchaScript = 66,
+ LimbuScript = 67,
+ LinearBScript = 68,
+ LycianScript = 69,
+ LydianScript = 70,
+ MandaeanScript = 71,
+ MeiteiMayekScript = 72,
+ MeroiticScript = 73,
+ MeroiticCursiveScript = 74,
+ NkoScript = 75,
+ NewTaiLueScript = 76,
+ OghamScript = 77,
+ OlChikiScript = 78,
+ OldItalicScript = 79,
+ OldPersianScript = 80,
+ OldSouthArabianScript = 81,
+ OrkhonScript = 82,
+ OsmanyaScript = 83,
+ PhagsPaScript = 84,
+ PhoenicianScript = 85,
+ PollardPhoneticScript = 86,
+ RejangScript = 87,
+ RunicScript = 88,
+ SamaritanScript = 89,
+ SaurashtraScript = 90,
+ SharadaScript = 91,
+ ShavianScript = 92,
+ SoraSompengScript = 93,
+ CuneiformScript = 94,
+ SundaneseScript = 95,
+ SylotiNagriScript = 96,
+ TagalogScript = 97,
+ TagbanwaScript = 98,
+ TaiLeScript = 99,
+ TaiVietScript = 100,
+ TakriScript = 101,
+ UgariticScript = 102,
SimplifiedChineseScript = SimplifiedHanScript,
TraditionalChineseScript = TraditionalHanScript,
- LastScript = VaiScript
+ LastScript = UgariticScript
};
enum Country {
AnyCountry = 0,
@@ -712,6 +830,15 @@ public:
float toFloat(const QString &s, bool *ok = 0) const;
double toDouble(const QString &s, bool *ok = 0) const;
+ short toShort(const QStringRef &s, bool *ok = 0) const;
+ ushort toUShort(const QStringRef &s, bool *ok = 0) const;
+ int toInt(const QStringRef &s, bool *ok = 0) const;
+ uint toUInt(const QStringRef &s, bool *ok = 0) const;
+ qlonglong toLongLong(const QStringRef &s, bool *ok = 0) const;
+ qulonglong toULongLong(const QStringRef &s, bool *ok = 0) const;
+ float toFloat(const QStringRef &s, bool *ok = 0) const;
+ double toDouble(const QStringRef &s, bool *ok = 0) const;
+
QString toString(qlonglong i) const;
QString toString(qulonglong i) const;
inline QString toString(short i) const;
@@ -843,6 +970,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QLocale &);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QLOCALE_H
diff --git a/src/corelib/tools/qlocale.qdoc b/src/corelib/tools/qlocale.qdoc
index 8c76833fc1..770c72e476 100644
--- a/src/corelib/tools/qlocale.qdoc
+++ b/src/corelib/tools/qlocale.qdoc
@@ -289,7 +289,8 @@
\value Turkish
\value Turkmen
\value Twi Obsolete, please use Akan
- \value Uigur
+ \value Uighur
+ \value Uigur Obsolete, please use Uighur
\value Ukrainian
\value Urdu
\value Uzbek
@@ -401,6 +402,57 @@
\value Kako
\value Meta
\value Ngiemboon
+ \value Aragonese
+ \value Akkadian
+ \value AncientEgyptian
+ \value AncientGreek
+ \value Aramaic
+ \value Balinese
+ \value Bamun
+ \value BatakToba
+ \value Buginese
+ \value Buhid
+ \value Carian
+ \value Chakma
+ \value ClassicalMandaic
+ \value Coptic
+ \value Dogri
+ \value EasternCham
+ \value EasternKayah
+ \value Etruscan
+ \value Gothic
+ \value Hanunoo
+ \value Ingush
+ \value LargeFloweryMiao
+ \value Lepcha
+ \value Limbu
+ \value Lisu
+ \value Lu
+ \value Lycian
+ \value Lydian
+ \value Mandingo
+ \value Manipuri
+ \value Meroitic
+ \value NorthernThai
+ \value OldIrish
+ \value OldNorse
+ \value OldPersian
+ \value OldTurkish
+ \value Pahlavi
+ \value Parthian
+ \value Phoenician
+ \value PrakritLanguage
+ \value Rejang
+ \value Sabaean
+ \value Samaritan
+ \value Santali
+ \value Saurashtra
+ \value Sora
+ \value Sylheti
+ \value Tagbanwa
+ \value TaiDam
+ \value TaiNua
+ \value Ugaritic
\omitvalue LastLanguage
\sa language(), languageToString()
@@ -686,42 +738,109 @@
\value AnyScript
\value ArabicScript
- \value CyrillicScript
- \value DeseretScript
- \value GurmukhiScript
- \value SimplifiedHanScript same as SimplifiedChineseScript
- \value SimplifiedChineseScript same as SimplifiedHanScript
- \value TraditionalHanScript same as TraditionalChineseScript
- \value TraditionalChineseScript same as TraditionalHanScript
- \value LatinScript
- \value MongolianScript
- \value TifinaghScript
\value ArmenianScript
+ \value AvestanScript
+ \value BalineseScript
+ \value BamumScript
+ \value BatakScript
\value BengaliScript
+ \value BopomofoScript
+ \value BrahmiScript
+ \value BugineseScript
+ \value BuhidScript
+ \value CanadianAboriginalScript
+ \value CarianScript
+ \value ChakmaScript
+ \value ChamScript
\value CherokeeScript
+ \value CopticScript
+ \value CypriotScript
+ \value CyrillicScript
+ \value DeseretScript
\value DevanagariScript
+ \value EgyptianHieroglyphsScript
\value EthiopicScript
+ \value FraserScript
\value GeorgianScript
+ \value GlagoliticScript
+ \value GothicScript
\value GreekScript
\value GujaratiScript
+ \value GurmukhiScript
+ \value HanScript
+ \value HangulScript
+ \value HanunooScript
\value HebrewScript
+ \value ImperialAramaicScript
+ \value InscriptionalPahlaviScript
+ \value InscriptionalParthianScript
\value JapaneseScript
- \value KhmerScript
+ \value JavaneseScript
+ \value KaithiScript
\value KannadaScript
+ \value KatakanaScript
+ \value KayahLiScript
+ \value KharoshthiScript
+ \value KhmerScript
\value KoreanScript
+ \value LannaScript
\value LaoScript
+ \value LatinScript
+ \value LepchaScript
+ \value LimbuScript
+ \value LinearBScript
+ \value LycianScript
+ \value LydianScript
\value MalayalamScript
+ \value MandaeanScript
+ \value MeiteiMayekScript
+ \value MeroiticScript
+ \value MeroiticCursiveScript
+ \value MongolianScript
\value MyanmarScript
+ \value NkoScript
+ \value NewTaiLueScript
+ \value OghamScript
+ \value OlChikiScript
+ \value OldItalicScript
+ \value OldPersianScript
+ \value OldSouthArabianScript
\value OriyaScript
+ \value OrkhonScript
+ \value OsmanyaScript
+ \value PhagsPaScript
+ \value PhoenicianScript
+ \value PollardPhoneticScript
+ \value RejangScript
+ \value RunicScript
+ \value SamaritanScript
+ \value SaurashtraScript
+ \value SharadaScript
+ \value ShavianScript
+ \value SimplifiedHanScript same as SimplifiedChineseScript
+ \value SimplifiedChineseScript same as SimplifiedHanScript
+ \value SinhalaScript
+ \value SoraSompengScript
+ \value CuneiformScript
+ \value SundaneseScript
+ \value SylotiNagriScript
+ \value SyriacScript
+ \value TagalogScript
+ \value TagbanwaScript
+ \value TaiLeScript
+ \value TaiVietScript
+ \value TakriScript
\value TamilScript
\value TeluguScript
\value ThaanaScript
\value ThaiScript
\value TibetanScript
- \value SinhalaScript
- \value SyriacScript
- \value YiScript
+ \value TifinaghScript
+ \value TraditionalHanScript same as TraditionalChineseScript
+ \value TraditionalChineseScript same as TraditionalHanScript
+ \value UgariticScript
\value VaiScript
+ \value YiScript
\omitvalue LastScript
\sa script(), scriptToString(), languageToString()
diff --git a/src/corelib/tools/qlocale_data_p.h b/src/corelib/tools/qlocale_data_p.h
index c7e9e83dbd..1f1a6ef4c7 100644
--- a/src/corelib/tools/qlocale_data_p.h
+++ b/src/corelib/tools/qlocale_data_p.h
@@ -77,7 +77,7 @@ static const int ImperialMeasurementSystemsCount =
// GENERATED PART STARTS HERE
/*
- This part of the file was generated on 2012-11-23 from the
+ This part of the file was generated on 2012-12-19 from the
Common Locale Data Repository v22.1
http://www.unicode.org/cldr/
@@ -172,6 +172,7 @@ static const QLocaleId likely_subtags[] = {
{ 52, 0, 0 }, { 52, 7, 101 }, // id -> id_Latn_ID
{ 149, 0, 0 }, { 149, 7, 157 }, // ig -> ig_Latn_NG
{ 168, 0, 0 }, { 168, 34, 44 }, // ii -> ii_Yiii_CN
+ { 281, 0, 0 }, { 281, 2, 178 }, // inh -> inh_Cyrl_RU
{ 51, 0, 0 }, { 51, 7, 99 }, // is -> is_Latn_IS
{ 58, 0, 0 }, { 58, 7, 106 }, // it -> it_Latn_IT
{ 59, 0, 0 }, { 59, 19, 108 }, // ja -> ja_Jpan_JP
@@ -273,6 +274,7 @@ static const QLocaleId likely_subtags[] = {
{ 99, 0, 0 }, { 99, 13, 100 }, // sa -> sa_Deva_IN
{ 248, 0, 0 }, { 248, 2, 178 }, // sah -> sah_Cyrl_RU
{ 179, 0, 0 }, { 179, 7, 111 }, // saq -> saq_Latn_KE
+ { 304, 0, 0 }, { 304, 7, 100 }, // sat -> sat_Latn_IN
{ 249, 0, 0 }, { 249, 7, 210 }, // sbp -> sbp_Latn_TZ
{ 105, 0, 0 }, { 105, 1, 100 }, // sd -> sd_Arab_IN
{ 173, 0, 0 }, { 173, 7, 161 }, // se -> se_Latn_NO
@@ -334,7 +336,9 @@ static const QLocaleId likely_subtags[] = {
{ 0, 1, 100 }, { 130, 1, 100 }, // und_Arab_IN -> ur_Arab_IN
{ 0, 1, 157 }, { 47, 1, 157 }, // und_Arab_NG -> ha_Arab_NG
{ 0, 1, 163 }, { 130, 1, 163 }, // und_Arab_PK -> ur_Arab_PK
+ { 0, 57, 0 }, { 265, 57, 102 }, // und_Armi -> arc_Armi_IR
{ 0, 10, 0 }, { 9, 10, 11 }, // und_Armn -> hy_Armn_AM
+ { 0, 36, 0 }, { 255, 36, 102 }, // und_Avst -> ae_Avst_IR
{ 0, 0, 27 }, { 142, 7, 27 }, // und_BA -> bs_Latn_BA
{ 0, 0, 18 }, { 15, 11, 18 }, // und_BD -> bn_Beng_BD
{ 0, 0, 21 }, { 30, 7, 21 }, // und_BE -> nl_Latn_BE
@@ -349,7 +353,14 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 30 }, { 91, 7, 30 }, // und_BR -> pt_Latn_BR
{ 0, 0, 25 }, { 16, 31, 25 }, // und_BT -> dz_Tibt_BT
{ 0, 0, 20 }, { 22, 2, 20 }, // und_BY -> be_Cyrl_BY
+ { 0, 37, 0 }, { 266, 37, 101 }, // und_Bali -> ban_Bali_ID
+ { 0, 38, 0 }, { 267, 38, 37 }, // und_Bamu -> bax_Bamu_CM
+ { 0, 39, 0 }, { 268, 39, 101 }, // und_Batk -> bbc_Batk_ID
{ 0, 11, 0 }, { 15, 11, 18 }, // und_Beng -> bn_Beng_BD
+ { 0, 40, 0 }, { 25, 40, 208 }, // und_Bopo -> zh_Bopo_TW
+ { 0, 41, 0 }, { 300, 41, 100 }, // und_Brah -> pra_Brah_IN
+ { 0, 42, 0 }, { 269, 42, 101 }, // und_Bugi -> bug_Bugi_ID
+ { 0, 43, 0 }, { 270, 43, 170 }, // und_Buhd -> bku_Buhd_PH
{ 0, 0, 49 }, { 113, 7, 49 }, // und_CD -> sw_Latn_CD
{ 0, 0, 41 }, { 37, 7, 41 }, // und_CF -> fr_Latn_CF
{ 0, 0, 50 }, { 37, 7, 50 }, // und_CG -> fr_Latn_CG
@@ -365,7 +376,13 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 39 }, { 91, 7, 39 }, // und_CV -> pt_Latn_CV
{ 0, 0, 56 }, { 43, 16, 56 }, // und_CY -> el_Grek_CY
{ 0, 0, 57 }, { 28, 7, 57 }, // und_CZ -> cs_Latn_CZ
+ { 0, 46, 0 }, { 272, 46, 18 }, // und_Cakm -> ccp_Cakm_BD
+ { 0, 44, 0 }, { 221, 44, 38 }, // und_Cans -> cr_Cans_CA
+ { 0, 45, 0 }, { 271, 45, 217 }, // und_Cari -> xcr_Cari_TR
+ { 0, 47, 0 }, { 276, 47, 232 }, // und_Cham -> cjm_Cham_VN
{ 0, 12, 0 }, { 190, 12, 225 }, // und_Cher -> chr_Cher_US
+ { 0, 48, 0 }, { 274, 48, 64 }, // und_Copt -> cop_Copt_EG
+ { 0, 49, 0 }, { 264, 49, 56 }, // und_Cprt -> grc_Cprt_CY
{ 0, 2, 0 }, { 96, 2, 178 }, // und_Cyrl -> ru_Cyrl_RU
{ 0, 2, 27 }, { 100, 2, 27 }, // und_Cyrl_BA -> sr_Cyrl_BA
{ 0, 2, 81 }, { 2, 2, 81 }, // und_Cyrl_GE -> ab_Cyrl_GE
@@ -382,6 +399,7 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 236 }, { 8, 1, 236 }, // und_EH -> ar_Arab_EH
{ 0, 0, 67 }, { 122, 14, 67 }, // und_ER -> ti_Ethi_ER
{ 0, 0, 197 }, { 111, 7, 197 }, // und_ES -> es_Latn_ES
+ { 0, 50, 0 }, { 263, 50, 64 }, // und_Egyp -> egy_Egyp_EG
{ 0, 14, 0 }, { 7, 14, 69 }, // und_Ethi -> am_Ethi_ET
{ 0, 0, 73 }, { 36, 7, 73 }, // und_FI -> fi_Latn_FI
{ 0, 0, 71 }, { 34, 7, 71 }, // und_FO -> fo_Latn_FO
@@ -398,6 +416,8 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 90 }, { 111, 7, 90 }, // und_GT -> es_Latn_GT
{ 0, 0, 92 }, { 91, 7, 92 }, // und_GW -> pt_Latn_GW
{ 0, 15, 0 }, { 41, 15, 81 }, // und_Geor -> ka_Geor_GE
+ { 0, 52, 0 }, { 219, 52, 33 }, // und_Glag -> cu_Glag_BG
+ { 0, 53, 0 }, { 279, 53, 222 }, // und_Goth -> got_Goth_UA
{ 0, 16, 0 }, { 43, 16, 85 }, // und_Grek -> el_Grek_GR
{ 0, 17, 0 }, { 46, 17, 100 }, // und_Gujr -> gu_Gujr_IN
{ 0, 4, 0 }, { 92, 4, 100 }, // und_Guru -> pa_Guru_IN
@@ -406,6 +426,9 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 54 }, { 27, 7, 54 }, // und_HR -> hr_Latn_HR
{ 0, 0, 94 }, { 222, 7, 94 }, // und_HT -> ht_Latn_HT
{ 0, 0, 98 }, { 50, 7, 98 }, // und_HU -> hu_Latn_HU
+ { 0, 55, 0 }, { 66, 55, 114 }, // und_Hang -> ko_Hang_KR
+ { 0, 54, 0 }, { 25, 5, 44 }, // und_Hani -> zh_Hans_CN
+ { 0, 56, 0 }, { 280, 56, 170 }, // und_Hano -> hnn_Hano_PH
{ 0, 5, 0 }, { 25, 5, 44 }, // und_Hans -> zh_Hans_CN
{ 0, 6, 0 }, { 25, 6, 208 }, // und_Hant -> zh_Hant_TW
{ 0, 18, 0 }, { 48, 18, 105 }, // und_Hebr -> he_Hebr_IL
@@ -417,8 +440,10 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 102 }, { 89, 1, 102 }, // und_IR -> fa_Arab_IR
{ 0, 0, 99 }, { 51, 7, 99 }, // und_IS -> is_Latn_IS
{ 0, 0, 106 }, { 58, 7, 106 }, // und_IT -> it_Latn_IT
+ { 0, 79, 0 }, { 278, 79, 106 }, // und_Ital -> ett_Ital_IT
{ 0, 0, 109 }, { 8, 1, 109 }, // und_JO -> ar_Arab_JO
{ 0, 0, 108 }, { 59, 19, 108 }, // und_JP -> ja_Jpan_JP
+ { 0, 60, 0 }, { 60, 60, 101 }, // und_Java -> jv_Java_ID
{ 0, 19, 0 }, { 59, 19, 108 }, // und_Jpan -> ja_Jpan_JP
{ 0, 0, 116 }, { 65, 2, 116 }, // und_KG -> ky_Cyrl_KG
{ 0, 0, 36 }, { 23, 20, 36 }, // und_KH -> km_Khmr_KH
@@ -427,9 +452,13 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 114 }, { 66, 22, 114 }, // und_KR -> ko_Kore_KR
{ 0, 0, 115 }, { 8, 1, 115 }, // und_KW -> ar_Arab_KW
{ 0, 0, 110 }, { 96, 2, 110 }, // und_KZ -> ru_Cyrl_KZ
+ { 0, 63, 0 }, { 277, 63, 147 }, // und_Kali -> eky_Kali_MM
+ { 0, 62, 0 }, { 59, 62, 108 }, // und_Kana -> ja_Kana_JP
+ { 0, 64, 0 }, { 300, 64, 163 }, // und_Khar -> pra_Khar_PK
{ 0, 20, 0 }, { 23, 20, 36 }, // und_Khmr -> km_Khmr_KH
{ 0, 21, 0 }, { 61, 21, 100 }, // und_Knda -> kn_Knda_IN
{ 0, 22, 0 }, { 66, 22, 114 }, // und_Kore -> ko_Kore_KR
+ { 0, 61, 0 }, { 17, 61, 100 }, // und_Kthi -> bh_Kthi_IN
{ 0, 0, 117 }, { 69, 23, 117 }, // und_LA -> lo_Laoo_LA
{ 0, 0, 119 }, { 8, 1, 119 }, // und_LB -> ar_Arab_LB
{ 0, 0, 123 }, { 42, 7, 123 }, // und_LI -> de_Latn_LI
@@ -439,6 +468,7 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 125 }, { 37, 7, 125 }, // und_LU -> fr_Latn_LU
{ 0, 0, 118 }, { 71, 7, 118 }, // und_LV -> lv_Latn_LV
{ 0, 0, 122 }, { 8, 1, 122 }, // und_LY -> ar_Arab_LY
+ { 0, 65, 0 }, { 292, 65, 211 }, // und_Lana -> nod_Lana_TH
{ 0, 23, 0 }, { 69, 23, 117 }, // und_Laoo -> lo_Laoo_LA
{ 0, 7, 44 }, { 139, 7, 44 }, // und_Latn_CN -> za_Latn_CN
{ 0, 7, 56 }, { 125, 7, 56 }, // und_Latn_CY -> tr_Latn_CY
@@ -450,6 +480,12 @@ static const QLocaleId likely_subtags[] = {
{ 0, 7, 136 }, { 37, 7, 136 }, // und_Latn_MR -> fr_Latn_MR
{ 0, 7, 207 }, { 37, 7, 207 }, // und_Latn_SY -> fr_Latn_SY
{ 0, 7, 216 }, { 37, 7, 216 }, // und_Latn_TN -> fr_Latn_TN
+ { 0, 66, 0 }, { 283, 66, 100 }, // und_Lepc -> lep_Lepc_IN
+ { 0, 67, 0 }, { 284, 67, 100 }, // und_Limb -> lif_Limb_IN
+ { 0, 68, 0 }, { 264, 68, 85 }, // und_Linb -> grc_Linb_GR
+ { 0, 51, 0 }, { 285, 51, 44 }, // und_Lisu -> lis_Lisu_CN
+ { 0, 69, 0 }, { 287, 69, 217 }, // und_Lyci -> xlc_Lyci_TR
+ { 0, 70, 0 }, { 288, 70, 217 }, // und_Lydi -> xld_Lydi_TR
{ 0, 0, 145 }, { 8, 1, 145 }, // und_MA -> ar_Arab_MA
{ 0, 0, 142 }, { 37, 7, 142 }, // und_MC -> fr_Latn_MC
{ 0, 0, 141 }, { 95, 7, 141 }, // und_MD -> ro_Latn_MD
@@ -469,8 +505,12 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 139 }, { 111, 7, 139 }, // und_MX -> es_Latn_MX
{ 0, 0, 130 }, { 76, 7, 130 }, // und_MY -> ms_Latn_MY
{ 0, 0, 146 }, { 91, 7, 146 }, // und_MZ -> pt_Latn_MZ
+ { 0, 71, 0 }, { 273, 71, 102 }, // und_Mand -> myz_Mand_IR
+ { 0, 74, 0 }, { 291, 74, 201 }, // und_Merc -> xmr_Merc_SD
+ { 0, 73, 0 }, { 291, 73, 201 }, // und_Mero -> xmr_Mero_SD
{ 0, 24, 0 }, { 77, 24, 100 }, // und_Mlym -> ml_Mlym_IN
{ 0, 8, 0 }, { 82, 8, 44 }, // und_Mong -> mn_Mong_CN
+ { 0, 72, 0 }, { 290, 72, 100 }, // und_Mtei -> mni_Mtei_IN
{ 0, 25, 0 }, { 21, 25, 147 }, // und_Mymr -> my_Mymr_MM
{ 0, 0, 148 }, { 228, 7, 148 }, // und_NA -> kj_Latn_NA
{ 0, 0, 153 }, { 37, 7, 153 }, // und_NC -> fr_Latn_NC
@@ -479,8 +519,13 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 151 }, { 30, 7, 151 }, // und_NL -> nl_Latn_NL
{ 0, 0, 161 }, { 85, 7, 161 }, // und_NO -> nb_Latn_NO
{ 0, 0, 150 }, { 84, 13, 150 }, // und_NP -> ne_Deva_NP
+ { 0, 75, 0 }, { 289, 75, 91 }, // und_Nkoo -> man_Nkoo_GN
{ 0, 0, 162 }, { 8, 1, 162 }, // und_OM -> ar_Arab_OM
+ { 0, 77, 0 }, { 293, 77, 104 }, // und_Ogam -> sga_Ogam_IE
+ { 0, 78, 0 }, { 304, 78, 100 }, // und_Olck -> sat_Olck_IN
+ { 0, 82, 0 }, { 296, 82, 143 }, // und_Orkh -> otk_Orkh_MN
{ 0, 26, 0 }, { 87, 26, 100 }, // und_Orya -> or_Orya_IN
+ { 0, 83, 0 }, { 110, 83, 194 }, // und_Osma -> so_Osma_SO
{ 0, 0, 166 }, { 111, 7, 166 }, // und_PA -> es_Latn_PA
{ 0, 0, 169 }, { 111, 7, 169 }, // und_PE -> es_Latn_PE
{ 0, 0, 77 }, { 37, 7, 77 }, // und_PF -> fr_Latn_PF
@@ -492,12 +537,18 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 165 }, { 8, 1, 165 }, // und_PS -> ar_Arab_PS
{ 0, 0, 173 }, { 91, 7, 173 }, // und_PT -> pt_Latn_PT
{ 0, 0, 168 }, { 45, 7, 168 }, // und_PY -> gn_Latn_PY
+ { 0, 58, 0 }, { 297, 58, 102 }, // und_Phli -> pal_Phli_IR
+ { 0, 85, 0 }, { 299, 85, 119 }, // und_Phnx -> phn_Phnx_LB
+ { 0, 86, 0 }, { 282, 86, 44 }, // und_Plrd -> hmd_Plrd_CN
+ { 0, 59, 0 }, { 298, 59, 102 }, // und_Prti -> xpr_Prti_IR
{ 0, 0, 175 }, { 8, 1, 175 }, // und_QA -> ar_Arab_QA
{ 0, 0, 176 }, { 37, 7, 176 }, // und_RE -> fr_Latn_RE
{ 0, 0, 177 }, { 95, 7, 177 }, // und_RO -> ro_Latn_RO
{ 0, 0, 243 }, { 100, 2, 243 }, // und_RS -> sr_Cyrl_RS
{ 0, 0, 178 }, { 96, 2, 178 }, // und_RU -> ru_Cyrl_RU
{ 0, 0, 179 }, { 64, 7, 179 }, // und_RW -> rw_Latn_RW
+ { 0, 87, 0 }, { 301, 87, 101 }, // und_Rjng -> rej_Rjng_ID
+ { 0, 88, 0 }, { 294, 88, 205 }, // und_Runr -> non_Runr_SE
{ 0, 0, 186 }, { 8, 1, 186 }, // und_SA -> ar_Arab_SA
{ 0, 0, 188 }, { 37, 7, 188 }, // und_SC -> fr_Latn_SC
{ 0, 0, 201 }, { 8, 1, 201 }, // und_SD -> ar_Arab_SD
@@ -512,7 +563,16 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 185 }, { 91, 7, 185 }, // und_ST -> pt_Latn_ST
{ 0, 0, 65 }, { 111, 7, 65 }, // und_SV -> es_Latn_SV
{ 0, 0, 207 }, { 8, 1, 207 }, // und_SY -> ar_Arab_SY
+ { 0, 89, 0 }, { 303, 89, 105 }, // und_Samr -> smp_Samr_IL
+ { 0, 81, 0 }, { 302, 81, 237 }, // und_Sarb -> xsa_Sarb_YE
+ { 0, 90, 0 }, { 305, 90, 100 }, // und_Saur -> saz_Saur_IN
+ { 0, 92, 0 }, { 31, 92, 224 }, // und_Shaw -> en_Shaw_GB
+ { 0, 91, 0 }, { 99, 91, 100 }, // und_Shrd -> sa_Shrd_IN
{ 0, 32, 0 }, { 106, 32, 198 }, // und_Sinh -> si_Sinh_LK
+ { 0, 93, 0 }, { 306, 93, 100 }, // und_Sora -> srb_Sora_IN
+ { 0, 95, 0 }, { 112, 95, 101 }, // und_Sund -> su_Sund_ID
+ { 0, 96, 0 }, { 307, 96, 18 }, // und_Sylo -> syl_Sylo_BD
+ { 0, 33, 0 }, { 151, 33, 207 }, // und_Syrc -> syr_Syrc_SY
{ 0, 0, 42 }, { 37, 7, 42 }, // und_TD -> fr_Latn_TD
{ 0, 0, 212 }, { 37, 7, 212 }, // und_TG -> fr_Latn_TG
{ 0, 0, 211 }, { 120, 30, 211 }, // und_TH -> th_Thai_TH
@@ -524,9 +584,15 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 217 }, { 125, 7, 217 }, // und_TR -> tr_Latn_TR
{ 0, 0, 208 }, { 25, 6, 208 }, // und_TW -> zh_Hant_TW
{ 0, 0, 210 }, { 113, 7, 210 }, // und_TZ -> sw_Latn_TZ
+ { 0, 98, 0 }, { 308, 98, 170 }, // und_Tagb -> tbw_Tagb_PH
+ { 0, 101, 0 }, { 275, 101, 100 }, // und_Takr -> doi_Takr_IN
+ { 0, 99, 0 }, { 310, 99, 44 }, // und_Tale -> tdd_Tale_CN
+ { 0, 76, 0 }, { 286, 76, 44 }, // und_Talu -> khb_Talu_CN
{ 0, 27, 0 }, { 117, 27, 100 }, // und_Taml -> ta_Taml_IN
+ { 0, 100, 0 }, { 309, 100, 232 }, // und_Tavt -> blt_Tavt_VN
{ 0, 28, 0 }, { 119, 28, 100 }, // und_Telu -> te_Telu_IN
{ 0, 9, 0 }, { 183, 9, 216 }, // und_Tfng -> shi_Tfng_TN
+ { 0, 97, 0 }, { 166, 97, 170 }, // und_Tglg -> fil_Tglg_PH
{ 0, 29, 0 }, { 143, 29, 131 }, // und_Thaa -> dv_Thaa_MV
{ 0, 30, 0 }, { 120, 30, 211 }, // und_Thai -> th_Thai_TH
{ 0, 31, 0 }, { 121, 31, 44 }, // und_Tibt -> bo_Tibt_CN
@@ -534,6 +600,7 @@ static const QLocaleId likely_subtags[] = {
{ 0, 0, 221 }, { 113, 7, 221 }, // und_UG -> sw_Latn_UG
{ 0, 0, 227 }, { 111, 7, 227 }, // und_UY -> es_Latn_UY
{ 0, 0, 228 }, { 131, 2, 228 }, // und_UZ -> uz_Cyrl_UZ
+ { 0, 102, 0 }, { 311, 102, 207 }, // und_Ugar -> uga_Ugar_SY
{ 0, 0, 230 }, { 70, 7, 230 }, // und_VA -> la_Latn_VA
{ 0, 0, 231 }, { 111, 7, 231 }, // und_VE -> es_Latn_VE
{ 0, 0, 232 }, { 132, 7, 232 }, // und_VN -> vi_Latn_VN
@@ -541,6 +608,8 @@ static const QLocaleId likely_subtags[] = {
{ 0, 35, 0 }, { 252, 35, 121 }, // und_Vaii -> vai_Vaii_LR
{ 0, 0, 235 }, { 37, 7, 235 }, // und_WF -> fr_Latn_WF
{ 0, 0, 183 }, { 97, 7, 183 }, // und_WS -> sm_Latn_WS
+ { 0, 80, 0 }, { 295, 80, 102 }, // und_Xpeo -> peo_Xpeo_IR
+ { 0, 94, 0 }, { 262, 94, 103 }, // und_Xsux -> akk_Xsux_IQ
{ 0, 0, 237 }, { 8, 1, 237 }, // und_YE -> ar_Arab_YE
{ 0, 0, 138 }, { 37, 7, 138 }, // und_YT -> fr_Latn_YT
{ 0, 34, 0 }, { 168, 34, 44 }, // und_Yiii -> ii_Yiii_CN
@@ -563,6 +632,7 @@ static const QLocaleId likely_subtags[] = {
{ 139, 0, 0 }, { 139, 7, 44 }, // za -> za_Latn_CN
{ 25, 0, 0 }, { 25, 5, 44 }, // zh -> zh_Hans_CN
{ 25, 0, 97 }, { 25, 6, 97 }, // zh_HK -> zh_Hant_HK
+ { 25, 54, 0 }, { 25, 5, 44 }, // zh_Hani -> zh_Hans_CN
{ 25, 6, 0 }, { 25, 6, 208 }, // zh_Hant -> zh_Hant_TW
{ 25, 0, 126 }, { 25, 6, 126 }, // zh_MO -> zh_Hant_MO
{ 25, 0, 208 }, { 25, 6, 208 }, // zh_TW -> zh_Hant_TW
@@ -698,7 +768,7 @@ static const quint16 locale_index[] = {
332, // Turkish
0, // Turkmen
0, // Tahitian
- 0, // Uigur
+ 0, // Uighur
334, // Ukrainian
335, // Urdu
337, // Uzbek
@@ -831,6 +901,57 @@ static const quint16 locale_index[] = {
435, // Kako
436, // Meta
437, // Ngiemboon
+ 0, // Aragonese
+ 0, // Akkadian
+ 0, // AncientEgyptian
+ 0, // AncientGreek
+ 0, // Aramaic
+ 0, // Balinese
+ 0, // Bamun
+ 0, // BatakToba
+ 0, // Buginese
+ 0, // Buhid
+ 0, // Carian
+ 0, // Chakma
+ 0, // ClassicalMandaic
+ 0, // Coptic
+ 0, // Dogri
+ 0, // EasternCham
+ 0, // EasternKayah
+ 0, // Etruscan
+ 0, // Gothic
+ 0, // Hanunoo
+ 0, // Ingush
+ 0, // LargeFloweryMiao
+ 0, // Lepcha
+ 0, // Limbu
+ 0, // Lisu
+ 0, // Lu
+ 0, // Lycian
+ 0, // Lydian
+ 0, // Mandingo
+ 0, // Manipuri
+ 0, // Meroitic
+ 0, // NorthernThai
+ 0, // OldIrish
+ 0, // OldNorse
+ 0, // OldPersian
+ 0, // OldTurkish
+ 0, // Pahlavi
+ 0, // Parthian
+ 0, // Phoenician
+ 0, // PrakritLanguage
+ 0, // Rejang
+ 0, // Sabaean
+ 0, // Samaritan
+ 0, // Santali
+ 0, // Saurashtra
+ 0, // Sora
+ 0, // Sylheti
+ 0, // Tagbanwa
+ 0, // TaiDam
+ 0, // TaiNua
+ 0, // Ugaritic
0 // trailing 0
};
@@ -5275,7 +5396,7 @@ static const char language_name_list[] =
"Turkish\0"
"Turkmen\0"
"Tahitian\0"
-"Uigur\0"
+"Uighur\0"
"Ukrainian\0"
"Urdu\0"
"Uzbek\0"
@@ -5408,6 +5529,57 @@ static const char language_name_list[] =
"Kako\0"
"Meta\0"
"Ngiemboon\0"
+"Aragonese\0"
+"Akkadian\0"
+"AncientEgyptian\0"
+"AncientGreek\0"
+"Aramaic\0"
+"Balinese\0"
+"Bamun\0"
+"BatakToba\0"
+"Buginese\0"
+"Buhid\0"
+"Carian\0"
+"Chakma\0"
+"ClassicalMandaic\0"
+"Coptic\0"
+"Dogri\0"
+"EasternCham\0"
+"EasternKayah\0"
+"Etruscan\0"
+"Gothic\0"
+"Hanunoo\0"
+"Ingush\0"
+"LargeFloweryMiao\0"
+"Lepcha\0"
+"Limbu\0"
+"Lisu\0"
+"Lu\0"
+"Lycian\0"
+"Lydian\0"
+"Mandingo\0"
+"Manipuri\0"
+"Meroitic\0"
+"NorthernThai\0"
+"OldIrish\0"
+"OldNorse\0"
+"OldPersian\0"
+"OldTurkish\0"
+"Pahlavi\0"
+"Parthian\0"
+"Phoenician\0"
+"PrakritLanguage\0"
+"Rejang\0"
+"Sabaean\0"
+"Samaritan\0"
+"Santali\0"
+"Saurashtra\0"
+"Sora\0"
+"Sylheti\0"
+"Tagbanwa\0"
+"TaiDam\0"
+"TaiNua\0"
+"Ugaritic\0"
;
static const quint16 language_name_index[] = {
@@ -5539,139 +5711,190 @@ static const quint16 language_name_index[] = {
1023, // Turkish
1031, // Turkmen
1039, // Tahitian
- 1048, // Uigur
- 1054, // Ukrainian
- 1064, // Urdu
- 1069, // Uzbek
- 1075, // Vietnamese
- 1086, // Volapuk
- 1094, // Welsh
- 1100, // Wolof
- 1106, // Xhosa
- 1112, // Yiddish
- 1120, // Yoruba
- 1127, // Zhuang
- 1134, // Zulu
- 1139, // NorwegianNynorsk
- 1156, // Bosnian
- 1164, // Divehi
- 1171, // Manx
- 1176, // Cornish
- 1184, // Akan
- 1189, // Konkani
- 1197, // Ga
- 1200, // Igbo
- 1205, // Kamba
- 1211, // Syriac
- 1218, // Blin
- 1223, // Geez
- 1228, // Koro
- 1233, // Sidamo
- 1240, // Atsam
- 1246, // Tigre
- 1252, // Jju
- 1256, // Friulian
- 1265, // Venda
- 1271, // Ewe
- 1275, // Walamo
- 1282, // Hawaiian
- 1291, // Tyap
- 1296, // Nyanja
- 1303, // Filipino
- 1312, // Swiss German
- 1325, // Sichuan Yi
- 1336, // Kpelle
- 1343, // Low German
- 1354, // South Ndebele
- 1368, // Northern Sotho
- 1383, // Northern Sami
- 1397, // Taroko
- 1404, // Gusii
- 1410, // Taita
- 1416, // Fulah
- 1422, // Kikuyu
- 1429, // Samburu
- 1437, // Sena
- 1442, // North Ndebele
- 1456, // Rombo
- 1462, // Tachelhit
- 1472, // Kabyle
- 1479, // Nyankole
- 1488, // Bena
- 1493, // Vunjo
- 1499, // Bambara
- 1507, // Embu
- 1512, // Cherokee
- 1521, // Morisyen
- 1530, // Makonde
- 1538, // Langi
- 1544, // Ganda
- 1550, // Bemba
- 1556, // Kabuverdianu
- 1569, // Meru
- 1574, // Kalenjin
- 1583, // Nama
- 1588, // Machame
- 1596, // Colognian
- 1606, // Masai
- 1612, // Soga
- 1617, // Luyia
- 1623, // Asu
- 1627, // Teso
- 1632, // Saho
- 1637, // Koyra Chiini
- 1650, // Rwa
- 1654, // Luo
- 1658, // Chiga
- 1664, // Central Morocco Tamazight
- 1690, // Koyraboro Senni
- 1706, // Shambala
- 1715, // Bodo
- 1720, // Avaric
- 1727, // Chamorro
- 1736, // Chechen
- 1744, // Church
- 1751, // Chuvash
- 1759, // Cree
- 1764, // Haitian
- 1772, // Herero
- 1779, // Hiri Motu
- 1789, // Kanuri
- 1796, // Komi
- 1801, // Kongo
- 1807, // Kwanyama
- 1816, // Limburgish
- 1827, // LubaKatanga
- 1839, // Luxembourgish
- 1853, // Navaho
- 1860, // Ndonga
- 1867, // Ojibwa
- 1874, // Pali
- 1879, // Walloon
- 1887, // Aghem
- 1893, // Basaa
- 1899, // Zarma
- 1905, // Duala
- 1911, // JolaFonyi
- 1921, // Ewondo
- 1928, // Bafia
- 1934, // MakhuwaMeetto
- 1948, // Mundang
- 1956, // Kwasio
- 1963, // Nuer
- 1968, // Sakha
- 1974, // Sangu
- 1980, // Congo Swahili
- 1994, // Tasawaq
- 2002, // Vai
- 2006, // Walser
- 2013, // Yangben
- 2021, // Avestan
- 2029, // Asturian
- 2038, // Ngomba
- 2045, // Kako
- 2050, // Meta
- 2055, // Ngiemboon
+ 1048, // Uighur
+ 1055, // Ukrainian
+ 1065, // Urdu
+ 1070, // Uzbek
+ 1076, // Vietnamese
+ 1087, // Volapuk
+ 1095, // Welsh
+ 1101, // Wolof
+ 1107, // Xhosa
+ 1113, // Yiddish
+ 1121, // Yoruba
+ 1128, // Zhuang
+ 1135, // Zulu
+ 1140, // NorwegianNynorsk
+ 1157, // Bosnian
+ 1165, // Divehi
+ 1172, // Manx
+ 1177, // Cornish
+ 1185, // Akan
+ 1190, // Konkani
+ 1198, // Ga
+ 1201, // Igbo
+ 1206, // Kamba
+ 1212, // Syriac
+ 1219, // Blin
+ 1224, // Geez
+ 1229, // Koro
+ 1234, // Sidamo
+ 1241, // Atsam
+ 1247, // Tigre
+ 1253, // Jju
+ 1257, // Friulian
+ 1266, // Venda
+ 1272, // Ewe
+ 1276, // Walamo
+ 1283, // Hawaiian
+ 1292, // Tyap
+ 1297, // Nyanja
+ 1304, // Filipino
+ 1313, // Swiss German
+ 1326, // Sichuan Yi
+ 1337, // Kpelle
+ 1344, // Low German
+ 1355, // South Ndebele
+ 1369, // Northern Sotho
+ 1384, // Northern Sami
+ 1398, // Taroko
+ 1405, // Gusii
+ 1411, // Taita
+ 1417, // Fulah
+ 1423, // Kikuyu
+ 1430, // Samburu
+ 1438, // Sena
+ 1443, // North Ndebele
+ 1457, // Rombo
+ 1463, // Tachelhit
+ 1473, // Kabyle
+ 1480, // Nyankole
+ 1489, // Bena
+ 1494, // Vunjo
+ 1500, // Bambara
+ 1508, // Embu
+ 1513, // Cherokee
+ 1522, // Morisyen
+ 1531, // Makonde
+ 1539, // Langi
+ 1545, // Ganda
+ 1551, // Bemba
+ 1557, // Kabuverdianu
+ 1570, // Meru
+ 1575, // Kalenjin
+ 1584, // Nama
+ 1589, // Machame
+ 1597, // Colognian
+ 1607, // Masai
+ 1613, // Soga
+ 1618, // Luyia
+ 1624, // Asu
+ 1628, // Teso
+ 1633, // Saho
+ 1638, // Koyra Chiini
+ 1651, // Rwa
+ 1655, // Luo
+ 1659, // Chiga
+ 1665, // Central Morocco Tamazight
+ 1691, // Koyraboro Senni
+ 1707, // Shambala
+ 1716, // Bodo
+ 1721, // Avaric
+ 1728, // Chamorro
+ 1737, // Chechen
+ 1745, // Church
+ 1752, // Chuvash
+ 1760, // Cree
+ 1765, // Haitian
+ 1773, // Herero
+ 1780, // Hiri Motu
+ 1790, // Kanuri
+ 1797, // Komi
+ 1802, // Kongo
+ 1808, // Kwanyama
+ 1817, // Limburgish
+ 1828, // LubaKatanga
+ 1840, // Luxembourgish
+ 1854, // Navaho
+ 1861, // Ndonga
+ 1868, // Ojibwa
+ 1875, // Pali
+ 1880, // Walloon
+ 1888, // Aghem
+ 1894, // Basaa
+ 1900, // Zarma
+ 1906, // Duala
+ 1912, // JolaFonyi
+ 1922, // Ewondo
+ 1929, // Bafia
+ 1935, // MakhuwaMeetto
+ 1949, // Mundang
+ 1957, // Kwasio
+ 1964, // Nuer
+ 1969, // Sakha
+ 1975, // Sangu
+ 1981, // Congo Swahili
+ 1995, // Tasawaq
+ 2003, // Vai
+ 2007, // Walser
+ 2014, // Yangben
+ 2022, // Avestan
+ 2030, // Asturian
+ 2039, // Ngomba
+ 2046, // Kako
+ 2051, // Meta
+ 2056, // Ngiemboon
+ 2066, // Aragonese
+ 2076, // Akkadian
+ 2085, // AncientEgyptian
+ 2101, // AncientGreek
+ 2114, // Aramaic
+ 2122, // Balinese
+ 2131, // Bamun
+ 2137, // BatakToba
+ 2147, // Buginese
+ 2156, // Buhid
+ 2162, // Carian
+ 2169, // Chakma
+ 2176, // ClassicalMandaic
+ 2193, // Coptic
+ 2200, // Dogri
+ 2206, // EasternCham
+ 2218, // EasternKayah
+ 2231, // Etruscan
+ 2240, // Gothic
+ 2247, // Hanunoo
+ 2255, // Ingush
+ 2262, // LargeFloweryMiao
+ 2279, // Lepcha
+ 2286, // Limbu
+ 2292, // Lisu
+ 2297, // Lu
+ 2300, // Lycian
+ 2307, // Lydian
+ 2314, // Mandingo
+ 2323, // Manipuri
+ 2332, // Meroitic
+ 2341, // NorthernThai
+ 2354, // OldIrish
+ 2363, // OldNorse
+ 2372, // OldPersian
+ 2383, // OldTurkish
+ 2394, // Pahlavi
+ 2402, // Parthian
+ 2411, // Phoenician
+ 2422, // PrakritLanguage
+ 2438, // Rejang
+ 2445, // Sabaean
+ 2453, // Samaritan
+ 2463, // Santali
+ 2471, // Saurashtra
+ 2482, // Sora
+ 2487, // Sylheti
+ 2495, // Tagbanwa
+ 2504, // TaiDam
+ 2511, // TaiNua
+ 2518, // Ugaritic
};
static const char script_name_list[] =
@@ -5711,6 +5934,73 @@ static const char script_name_list[] =
"Syriac\0"
"Yi\0"
"Vai\0"
+"Avestan\0"
+"Balinese\0"
+"Bamum\0"
+"Batak\0"
+"Bopomofo\0"
+"Brahmi\0"
+"Buginese\0"
+"Buhid\0"
+"CanadianAboriginal\0"
+"Carian\0"
+"Chakma\0"
+"Cham\0"
+"Coptic\0"
+"Cypriot\0"
+"Egyptian Hieroglyphs\0"
+"Fraser\0"
+"Glagolitic\0"
+"Gothic\0"
+"Han\0"
+"Hangul\0"
+"Hanunoo\0"
+"Imperial Aramaic\0"
+"Inscriptional Pahlavi\0"
+"Inscriptional Parthian\0"
+"Javanese\0"
+"Kaithi\0"
+"Katakana\0"
+"Kayah Li\0"
+"Kharoshthi\0"
+"Lanna\0"
+"Lepcha\0"
+"Limbu\0"
+"Linear B\0"
+"Lycian\0"
+"Lydian\0"
+"Mandaean\0"
+"Meitei Mayek\0"
+"Meroitic\0"
+"Meroitic Cursive\0"
+"Nko\0"
+"New Tai Lue\0"
+"Ogham\0"
+"Ol Chiki\0"
+"Old Italic\0"
+"Old Persian\0"
+"Old South Arabian\0"
+"Orkhon\0"
+"Osmanya\0"
+"Phags Pa\0"
+"Phoenician\0"
+"Pollard Phonetic\0"
+"Rejang\0"
+"Runic\0"
+"Samaritan\0"
+"Saurashtra\0"
+"Sharada\0"
+"Shavian\0"
+"Sora Sompeng\0"
+"Cuneiform\0"
+"Sundanese\0"
+"Syloti Nagri\0"
+"Tagalog\0"
+"Tagbanwa\0"
+"Tai Le\0"
+"Tai Viet\0"
+"Takri\0"
+"Ugaritic\0"
;
static const quint16 script_name_index[] = {
@@ -5750,6 +6040,73 @@ static const quint16 script_name_index[] = {
273, // Syriac
280, // Yi
283, // Vai
+ 287, // Avestan
+ 295, // Balinese
+ 304, // Bamum
+ 310, // Batak
+ 316, // Bopomofo
+ 325, // Brahmi
+ 332, // Buginese
+ 341, // Buhid
+ 347, // CanadianAboriginal
+ 366, // Carian
+ 373, // Chakma
+ 380, // Cham
+ 385, // Coptic
+ 392, // Cypriot
+ 400, // Egyptian Hieroglyphs
+ 421, // Fraser
+ 428, // Glagolitic
+ 439, // Gothic
+ 446, // Han
+ 450, // Hangul
+ 457, // Hanunoo
+ 465, // Imperial Aramaic
+ 482, // Inscriptional Pahlavi
+ 504, // Inscriptional Parthian
+ 527, // Javanese
+ 536, // Kaithi
+ 543, // Katakana
+ 552, // Kayah Li
+ 561, // Kharoshthi
+ 572, // Lanna
+ 578, // Lepcha
+ 585, // Limbu
+ 591, // Linear B
+ 600, // Lycian
+ 607, // Lydian
+ 614, // Mandaean
+ 623, // Meitei Mayek
+ 636, // Meroitic
+ 645, // Meroitic Cursive
+ 662, // Nko
+ 666, // New Tai Lue
+ 678, // Ogham
+ 684, // Ol Chiki
+ 693, // Old Italic
+ 704, // Old Persian
+ 716, // Old South Arabian
+ 734, // Orkhon
+ 741, // Osmanya
+ 749, // Phags Pa
+ 758, // Phoenician
+ 769, // Pollard Phonetic
+ 786, // Rejang
+ 793, // Runic
+ 799, // Samaritan
+ 809, // Saurashtra
+ 820, // Sharada
+ 828, // Shavian
+ 836, // Sora Sompeng
+ 849, // Cuneiform
+ 859, // Sundanese
+ 869, // Syloti Nagri
+ 882, // Tagalog
+ 890, // Tagbanwa
+ 899, // Tai Le
+ 906, // Tai Viet
+ 915, // Takri
+ 921, // Ugaritic
};
static const char country_name_list[] =
@@ -6401,7 +6758,7 @@ static const unsigned char language_code_list[] =
"tr\0" // Turkish
"tk\0" // Turkmen
"ty\0" // Tahitian
-"ug\0" // Uigur
+"ug\0" // Uighur
"uk\0" // Ukrainian
"ur\0" // Urdu
"uz\0" // Uzbek
@@ -6534,6 +6891,57 @@ static const unsigned char language_code_list[] =
"kkj" // Kako
"mgo" // Meta
"nnh" // Ngiemboon
+"an\0" // Aragonese
+"akk" // Akkadian
+"egy" // AncientEgyptian
+"grc" // AncientGreek
+"arc" // Aramaic
+"ban" // Balinese
+"bax" // Bamun
+"bbc" // BatakToba
+"bug" // Buginese
+"bku" // Buhid
+"xcr" // Carian
+"ccp" // Chakma
+"myz" // ClassicalMandaic
+"cop" // Coptic
+"doi" // Dogri
+"cjm" // EasternCham
+"eky" // EasternKayah
+"ett" // Etruscan
+"got" // Gothic
+"hnn" // Hanunoo
+"inh" // Ingush
+"hmd" // LargeFloweryMiao
+"lep" // Lepcha
+"lif" // Limbu
+"lis" // Lisu
+"khb" // Lu
+"xlc" // Lycian
+"xld" // Lydian
+"man" // Mandingo
+"mni" // Manipuri
+"xmr" // Meroitic
+"nod" // NorthernThai
+"sga" // OldIrish
+"non" // OldNorse
+"peo" // OldPersian
+"otk" // OldTurkish
+"pal" // Pahlavi
+"xpr" // Parthian
+"phn" // Phoenician
+"pra" // PrakritLanguage
+"rej" // Rejang
+"xsa" // Sabaean
+"smp" // Samaritan
+"sat" // Santali
+"saz" // Saurashtra
+"srb" // Sora
+"syl" // Sylheti
+"tbw" // Tagbanwa
+"blt" // TaiDam
+"tdd" // TaiNua
+"uga" // Ugaritic
;
static const unsigned char script_code_list[] =
@@ -6570,9 +6978,76 @@ static const unsigned char script_code_list[] =
"Thai" // Thai
"Tibt" // Tibetan
"Sinh" // Sinhala
-"Syri" // Syriac
+"Syrc" // Syriac
"Yiii" // Yi
"Vaii" // Vai
+"Avst" // Avestan
+"Bali" // Balinese
+"Bamu" // Bamum
+"Batk" // Batak
+"Bopo" // Bopomofo
+"Brah" // Brahmi
+"Bugi" // Buginese
+"Buhd" // Buhid
+"Cans" // CanadianAboriginal
+"Cari" // Carian
+"Cakm" // Chakma
+"Cham" // Cham
+"Copt" // Coptic
+"Cprt" // Cypriot
+"Egyp" // Egyptian Hieroglyphs
+"Lisu" // Fraser
+"Glag" // Glagolitic
+"Goth" // Gothic
+"Hani" // Han
+"Hang" // Hangul
+"Hano" // Hanunoo
+"Armi" // Imperial Aramaic
+"Phli" // Inscriptional Pahlavi
+"Prti" // Inscriptional Parthian
+"Java" // Javanese
+"Kthi" // Kaithi
+"Kana" // Katakana
+"Kali" // Kayah Li
+"Khar" // Kharoshthi
+"Lana" // Lanna
+"Lepc" // Lepcha
+"Limb" // Limbu
+"Linb" // Linear B
+"Lyci" // Lycian
+"Lydi" // Lydian
+"Mand" // Mandaean
+"Mtei" // Meitei Mayek
+"Mero" // Meroitic
+"Merc" // Meroitic Cursive
+"Nkoo" // Nko
+"Talu" // New Tai Lue
+"Ogam" // Ogham
+"Olck" // Ol Chiki
+"Ital" // Old Italic
+"Xpeo" // Old Persian
+"Sarb" // Old South Arabian
+"Orkh" // Orkhon
+"Osma" // Osmanya
+"Phag" // Phags Pa
+"Phnx" // Phoenician
+"Plrd" // Pollard Phonetic
+"Rjng" // Rejang
+"Runr" // Runic
+"Samr" // Samaritan
+"Saur" // Saurashtra
+"Shrd" // Sharada
+"Shaw" // Shavian
+"Sora" // Sora Sompeng
+"Xsux" // Cuneiform
+"Sund" // Sundanese
+"Sylo" // Syloti Nagri
+"Tglg" // Tagalog
+"Tagb" // Tagbanwa
+"Tale" // Tai Le
+"Tavt" // Tai Viet
+"Takr" // Takri
+"Ugar" // Ugaritic
;
static const unsigned char country_code_list[] =
"ZZ\0" // AnyCountry
diff --git a/src/corelib/tools/qlocale_mac.mm b/src/corelib/tools/qlocale_mac.mm
index 0c35860b56..8594cfd40d 100644
--- a/src/corelib/tools/qlocale_mac.mm
+++ b/src/corelib/tools/qlocale_mac.mm
@@ -345,7 +345,6 @@ static QString macFormatCurrency(const QSystemLocale::CurrencyToStringArgument &
static QVariant macQuoteString(QSystemLocale::QueryType type, const QStringRef &str)
{
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
if (QSysInfo::MacintoshVersion < QSysInfo::MV_10_6)
return QVariant();
@@ -363,7 +362,6 @@ static QVariant macQuoteString(QSystemLocale::QueryType type, const QStringRef &
default:
break;
}
-#endif
return QVariant();
}
#endif //QT_NO_SYSTEMLOCALE
diff --git a/src/corelib/tools/qlocale_p.h b/src/corelib/tools/qlocale_p.h
index 3746cd56e6..3c3d7c7054 100644
--- a/src/corelib/tools/qlocale_p.h
+++ b/src/corelib/tools/qlocale_p.h
@@ -311,13 +311,17 @@ public:
qint64 stringToLongLong(const QString &num, int base, bool *ok, GroupSeparatorMode group_sep_mode) const;
quint64 stringToUnsLongLong(const QString &num, int base, bool *ok, GroupSeparatorMode group_sep_mode) const;
+ double stringToDouble(const QStringRef &num, bool *ok, GroupSeparatorMode group_sep_mode) const;
+ qint64 stringToLongLong(const QStringRef &num, int base, bool *ok, GroupSeparatorMode group_sep_mode) const;
+ quint64 stringToUnsLongLong(const QStringRef &num, int base, bool *ok, GroupSeparatorMode group_sep_mode) const;
+
static double bytearrayToDouble(const char *num, bool *ok, bool *overflow = 0);
static qint64 bytearrayToLongLong(const char *num, int base, bool *ok, bool *overflow = 0);
static quint64 bytearrayToUnsLongLong(const char *num, int base, bool *ok);
typedef QVarLengthArray<char, 256> CharBuff;
- bool numberToCLocale(const QString &num,
+ bool numberToCLocale(const QChar *str, int len,
GroupSeparatorMode group_sep_mode,
CharBuff *result) const;
inline char digitToCLocale(QChar c) const;
diff --git a/src/corelib/tools/qmap.cpp b/src/corelib/tools/qmap.cpp
index 75104e4825..a4c28b5bd4 100644
--- a/src/corelib/tools/qmap.cpp
+++ b/src/corelib/tools/qmap.cpp
@@ -538,6 +538,16 @@ void QMapDataBase::freeData(QMapDataBase *d)
\sa toStdMap()
*/
+/*! \fn QMap::QMap(std::initializer_list<std::pair<Key,T> > list)
+ \since 5.1
+
+ Constructs a map with a copy of each of the elements in the
+ initializer list \a list.
+
+ This function is only available if the program is being
+ compiled in C++11 mode.
+*/
+
/*! \fn std::map<Key, T> QMap::toStdMap() const
Returns an STL map equivalent to this QMap.
@@ -1576,6 +1586,16 @@ void QMapDataBase::freeData(QMapDataBase *d)
Constructs an empty map.
*/
+/*! \fn QMultiMap::QMultiMap(std::initializer_list<std::pair<Key,T> > list)
+ \since 5.1
+
+ Constructs a multi map with a copy of each of the elements in the
+ initializer list \a list.
+
+ This function is only available if the program is being
+ compiled in C++11 mode.
+*/
+
/*! \fn QMultiMap::QMultiMap(const QMap<Key, T> &other)
Constructs a copy of \a other (which can be a QMap or a
diff --git a/src/corelib/tools/qmap.h b/src/corelib/tools/qmap.h
index b0ec6fb3c6..280696c534 100644
--- a/src/corelib/tools/qmap.h
+++ b/src/corelib/tools/qmap.h
@@ -54,7 +54,9 @@
#include <map>
#include <new>
-QT_BEGIN_HEADER
+#ifdef Q_COMPILER_INITIALIZER_LISTS
+#include <initializer_list>
+#endif
QT_BEGIN_NAMESPACE
@@ -327,6 +329,14 @@ class QMap
public:
inline QMap() : d(static_cast<QMapData<Key, T> *>(const_cast<QMapDataBase *>(&QMapDataBase::shared_null))) { }
+#ifdef Q_COMPILER_INITIALIZER_LISTS
+ inline QMap(std::initializer_list<std::pair<Key,T> > list)
+ : d(static_cast<QMapData<Key, T> *>(const_cast<QMapDataBase *>(&QMapDataBase::shared_null)))
+ {
+ for (typename std::initializer_list<std::pair<Key,T> >::const_iterator it = list.begin(); it != list.end(); ++it)
+ insert(it->first, it->second);
+ }
+#endif
QMap(const QMap<Key, T> &other);
inline ~QMap() { if (!d->ref.deref()) d->destroy(); }
@@ -960,6 +970,13 @@ class QMultiMap : public QMap<Key, T>
{
public:
QMultiMap() {}
+#ifdef Q_COMPILER_INITIALIZER_LISTS
+ inline QMultiMap(std::initializer_list<std::pair<Key,T> > list)
+ {
+ for (typename std::initializer_list<std::pair<Key,T> >::const_iterator it = list.begin(); it != list.end(); ++it)
+ insert(it->first, it->second);
+ }
+#endif
QMultiMap(const QMap<Key, T> &other) : QMap<Key, T>(other) {}
inline void swap(QMultiMap<Key, T> &other) { QMap<Key, T>::swap(other); }
@@ -1072,6 +1089,4 @@ Q_DECLARE_MUTABLE_ASSOCIATIVE_ITERATOR(Map)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QMAP_H
diff --git a/src/corelib/tools/qmargins.cpp b/src/corelib/tools/qmargins.cpp
index 7b9d68707e..6e7b541110 100644
--- a/src/corelib/tools/qmargins.cpp
+++ b/src/corelib/tools/qmargins.cpp
@@ -157,6 +157,240 @@ QT_BEGIN_NAMESPACE
Returns true if \a m1 and \a m2 are different; otherwise returns false.
*/
+/*!
+ \fn QRect operator+(const QRect &rectangle, const QMargins &margins)
+ \relates QRect
+
+ Returns the \a rectangle grown by the \a margins.
+
+ \since 5.1
+*/
+
+/*!
+ \fn QRect operator+(const QMargins &margins, const QRect &rectangle)
+ \relates QRect
+ \overload
+
+ Returns the \a rectangle grown by the \a margins.
+
+ \since 5.1
+*/
+
+/*!
+ \fn QRect QRect::marginsAdded(const QMargins &margins) const
+
+ Returns a rectangle grown by the \a margins.
+
+ \sa operator+=(), marginsRemoved(), operator-=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn QRect QRect::operator+=(const QMargins &margins) const
+
+ Adds the \a margins to the rectangle, growing it.
+
+ \sa marginsAdded(), marginsRemoved(), operator-=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn QRect QRect::marginsRemoved(const QMargins &margins) const
+
+ Removes the \a margins from the rectangle, shrinking it.
+
+ \sa marginsAdded(), operator+=(), operator-=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn QRect QRect::operator -=(const QMargins &margins) const
+
+ Returns a rectangle shrunk by the \a margins.
+
+ \sa marginsRemoved(), operator+=(), marginsAdded()
+
+ \since 5.1
+*/
+
+/*!
+ \fn const QMargins operator+(const QMargins &m1, const QMargins &m2)
+ \relates QMargins
+
+ Returns a QMargins object that is the sum of the given margins, \a m1
+ and \a m2; each component is added separately.
+
+ \sa QMargins::operator+=(), QMargins::operator-=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn const QMargins operator-(const QMargins &m1, const QMargins &m2)
+ \relates QMargins
+
+ Returns a QMargins object that is formed by subtracting \a m2 from
+ \a m1; each component is subtracted separately.
+
+ \sa QMargins::operator+=(), QMargins::operator-=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn const QMargins operator*(const QMargins &margins, int factor)
+ \relates QMargins
+
+ Returns a QMargins object that is formed by multiplying each component
+ of the given \a margins by \a factor.
+
+ \sa QMargins::operator*=(), QMargins::operator/=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn const QMargins operator*(int factor, const QMargins &margins)
+ \relates QMargins
+ \overload
+
+ Returns a QMargins object that is formed by multiplying each component
+ of the given \a margins by \a factor.
+
+ \sa QMargins::operator*=(), QMargins::operator/=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn const QMargins operator*(const QMargins &margins, qreal factor)
+ \relates QMargins
+ \overload
+
+ Returns a QMargins object that is formed by multiplying each component
+ of the given \a margins by \a factor.
+
+ \sa QMargins::operator*=(), QMargins::operator/=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn const QMargins operator*(qreal factor, const QMargins &margins)
+ \relates QMargins
+ \overload
+
+ Returns a QMargins object that is formed by multiplying each component
+ of the given \a margins by \a factor.
+
+ \sa QMargins::operator*=(), QMargins::operator/=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn const QMargins operator/(const QMargins &margins, int divisor)
+ \relates QMargins
+
+ Returns a QMargins object that is formed by dividing the components of
+ the given \a margins by the given \a divisor.
+
+ \sa QMargins::operator*=(), QMargins::operator/=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn const QMargins operator/(const QMargins &, qreal)
+ \relates QMargins
+ \overload
+
+ Returns a QMargins object that is formed by dividing the components of
+ the given \a margins by the given \a divisor.
+
+ \sa QMargins::operator*=(), QMargins::operator/=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn QMargins operator-(const QMargins &margins)
+ \relates QMargins
+
+ Returns a QMargin object that is formed by negating all components of \a margins.
+
+ \since 5.1
+*/
+
+/*!
+ \fn QMargins &operator+=(const QMargins &margins)
+
+ Add each component of \a margins to the respective component of this object
+ and returns a reference to it.
+
+ \sa operator-=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn QMargins &operator-=(const QMargins &margins)
+
+ Subtract each component of \a margins from the respective component of this object
+ and returns a reference to it.
+
+ \sa operator+=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn QMargins &operator*=(int factor)
+
+ Multiplies each component of this object by \a factor
+ and returns a reference to it.
+
+ \sa operator/=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn QMargins &operator*=(qreal factor)
+ \overload
+
+ Multiplies each component of this object by \a factor
+ and returns a reference to it.
+
+ \sa operator/=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn QMargins &operator/=(int divisor)
+
+ Divides each component of this object by \a divisor
+ and returns a reference to it.
+
+ \sa operator*=()
+
+ \since 5.1
+*/
+
+/*!
+ \fn QMargins &operator/=(qreal divisor)
+
+ \overload
+
+ \sa operator*=()
+
+ \since 5.1
+*/
+
/*****************************************************************************
QMargins stream functions
*****************************************************************************/
diff --git a/src/corelib/tools/qmargins.h b/src/corelib/tools/qmargins.h
index d927cb5aa1..0d68be961e 100644
--- a/src/corelib/tools/qmargins.h
+++ b/src/corelib/tools/qmargins.h
@@ -42,9 +42,7 @@
#ifndef QMARGINS_H
#define QMARGINS_H
-#include <QtCore/qnamespace.h>
-
-QT_BEGIN_HEADER
+#include <QtCore/qrect.h>
QT_BEGIN_NAMESPACE
@@ -67,6 +65,15 @@ public:
void setRight(int right);
void setBottom(int bottom);
+ QMargins &operator+=(const QMargins &margins);
+ QMargins &operator-=(const QMargins &margins);
+ QMargins &operator+=(int);
+ QMargins &operator-=(int);
+ QMargins &operator*=(int);
+ QMargins &operator/=(int);
+ QMargins &operator*=(qreal);
+ QMargins &operator/=(qreal);
+
private:
int m_left;
int m_top;
@@ -142,12 +149,128 @@ Q_DECL_CONSTEXPR inline bool operator!=(const QMargins &m1, const QMargins &m2)
m1.m_bottom != m2.m_bottom;
}
+Q_DECL_CONSTEXPR inline QRect operator+(const QRect &rectangle, const QMargins &margins)
+{
+ return QRect(QPoint(rectangle.left() - margins.left(), rectangle.top() - margins.top()),
+ QPoint(rectangle.right() + margins.right(), rectangle.bottom() + margins.bottom()));
+}
+
+Q_DECL_CONSTEXPR inline QRect operator+(const QMargins &margins, const QRect &rectangle)
+{
+ return QRect(QPoint(rectangle.left() - margins.left(), rectangle.top() - margins.top()),
+ QPoint(rectangle.right() + margins.right(), rectangle.bottom() + margins.bottom()));
+}
+
+inline QRect QRect::marginsAdded(const QMargins &margins) const
+{
+ return *this + margins;
+}
+
+inline QRect QRect::marginsRemoved(const QMargins &margins) const
+{
+ return QRect(QPoint(x1 + margins.left(), y1 + margins.top()),
+ QPoint(x2 - margins.right(), y2 - margins.bottom()));
+}
+
+inline QRect &QRect::operator+=(const QMargins &margins)
+{
+ *this = marginsAdded(margins);
+ return *this;
+}
+
+inline QRect &QRect::operator-=(const QMargins &margins)
+{
+ *this = marginsRemoved(margins);
+ return *this;
+}
+
+Q_DECL_CONSTEXPR inline QMargins operator+(const QMargins &m1, const QMargins &m2)
+{
+ return QMargins(m1.left() + m2.left(), m1.top() + m2.top(),
+ m1.right() + m2.right(), m1.bottom() + m2.bottom());
+}
+
+Q_DECL_CONSTEXPR inline QMargins operator-(const QMargins &m1, const QMargins &m2)
+{
+ return QMargins(m1.left() - m2.left(), m1.top() - m2.top(),
+ m1.right() - m2.right(), m1.bottom() - m2.bottom());
+}
+
+Q_DECL_CONSTEXPR inline QMargins operator*(const QMargins &margins, int factor)
+{
+ return QMargins(margins.left() * factor, margins.top() * factor,
+ margins.right() * factor, margins.bottom() * factor);
+}
+
+Q_DECL_CONSTEXPR inline QMargins operator*(int factor, const QMargins &margins)
+{
+ return QMargins(margins.left() * factor, margins.top() * factor,
+ margins.right() * factor, margins.bottom() * factor);
+}
+
+Q_DECL_CONSTEXPR inline QMargins operator*(const QMargins &margins, qreal factor)
+{
+ return QMargins(qRound(margins.left() * factor), qRound(margins.top() * factor),
+ qRound(margins.right() * factor), qRound(margins.bottom() * factor));
+}
+
+Q_DECL_CONSTEXPR inline QMargins operator*(qreal factor, const QMargins &margins)
+{
+ return QMargins(qRound(margins.left() * factor), qRound(margins.top() * factor),
+ qRound(margins.right() * factor), qRound(margins.bottom() * factor));
+}
+
+Q_DECL_CONSTEXPR inline QMargins operator/(const QMargins &margins, int divisor)
+{
+ return QMargins(margins.left() / divisor, margins.top() / divisor,
+ margins.right() / divisor, margins.bottom() / divisor);
+}
+
+Q_DECL_CONSTEXPR inline QMargins operator/(const QMargins &margins, qreal divisor)
+{
+ return QMargins(qRound(margins.left() / divisor), qRound(margins.top() / divisor),
+ qRound(margins.right() / divisor), qRound(margins.bottom() / divisor));
+}
+
+inline QMargins &QMargins::operator+=(const QMargins &margins)
+{
+ return *this = *this + margins;
+}
+
+inline QMargins &QMargins::operator-=(const QMargins &margins)
+{
+ return *this = *this - margins;
+}
+
+inline QMargins &QMargins::operator*=(int factor)
+{
+ return *this = *this * factor;
+}
+
+inline QMargins &QMargins::operator/=(int divisor)
+{
+ return *this = *this / divisor;
+}
+
+inline QMargins &QMargins::operator*=(qreal factor)
+{
+ return *this = *this * factor;
+}
+
+inline QMargins &QMargins::operator/=(qreal divisor)
+{
+ return *this = *this / divisor;
+}
+
+Q_DECL_CONSTEXPR inline QMargins operator-(const QMargins &margins)
+{
+ return QMargins(-margins.left(), -margins.top(), -margins.right(), -margins.bottom());
+}
+
#ifndef QT_NO_DEBUG_STREAM
Q_CORE_EXPORT QDebug operator<<(QDebug, const QMargins &);
#endif
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QMARGINS_H
diff --git a/src/corelib/tools/qmessageauthenticationcode.cpp b/src/corelib/tools/qmessageauthenticationcode.cpp
new file mode 100644
index 0000000000..becaaaa704
--- /dev/null
+++ b/src/corelib/tools/qmessageauthenticationcode.cpp
@@ -0,0 +1,283 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Ruslan Nigmatullin <euroelessar@yandex.ru>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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, Digia gives you certain additional
+** rights. These rights are described in the Digia 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.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qmessageauthenticationcode.h"
+#include "qvarlengtharray.h"
+
+/*
+ These #defines replace the typedefs needed by the RFC6234 code. Normally
+ the typedefs would come from from stdint.h, but since this header is not
+ available on all platforms (MSVC 2008, for example), we #define them to the
+ Qt equivalents.
+*/
+#define uint64_t QT_PREPEND_NAMESPACE(quint64)
+#define uint32_t QT_PREPEND_NAMESPACE(quint32)
+#define uint8_t QT_PREPEND_NAMESPACE(quint8)
+#define int_least16_t QT_PREPEND_NAMESPACE(qint16)
+
+// Header from rfc6234 with 1 modification:
+// sha1.h - commented out '#include <stdint.h>' on line 74
+#include "../../3rdparty/rfc6234/sha.h"
+
+#undef uint64_t
+#undef uint32_t
+#undef uint68_t
+#undef int_least16_t
+
+QT_BEGIN_NAMESPACE
+
+static int qt_hash_block_size(QCryptographicHash::Algorithm method)
+{
+ switch (method) {
+ case QCryptographicHash::Md4:
+ return 64;
+ case QCryptographicHash::Md5:
+ return 64;
+ case QCryptographicHash::Sha1:
+ return SHA1_Message_Block_Size;
+ case QCryptographicHash::Sha224:
+ return SHA224_Message_Block_Size;
+ case QCryptographicHash::Sha256:
+ return SHA256_Message_Block_Size;
+ case QCryptographicHash::Sha384:
+ return SHA384_Message_Block_Size;
+ case QCryptographicHash::Sha512:
+ return SHA512_Message_Block_Size;
+ case QCryptographicHash::Sha3_224:
+ return 144;
+ case QCryptographicHash::Sha3_256:
+ return 136;
+ case QCryptographicHash::Sha3_384:
+ return 104;
+ case QCryptographicHash::Sha3_512:
+ return 72;
+ }
+ return 0;
+}
+
+class QMessageAuthenticationCodePrivate
+{
+public:
+ QMessageAuthenticationCodePrivate(QCryptographicHash::Algorithm m)
+ : messageHash(m), method(m), messageHashInited(false)
+ {
+ }
+
+ QByteArray key;
+ QByteArray result;
+ QCryptographicHash messageHash;
+ QCryptographicHash::Algorithm method;
+ bool messageHashInited;
+
+ void initMessageHash();
+};
+
+void QMessageAuthenticationCodePrivate::initMessageHash()
+{
+ if (messageHashInited)
+ return;
+ messageHashInited = true;
+
+ const int blockSize = qt_hash_block_size(method);
+
+ if (key.size() > blockSize) {
+ QCryptographicHash hash(method);
+ hash.addData(key);
+ key = hash.result();
+ hash.reset();
+ }
+
+ if (key.size() < blockSize) {
+ const int size = key.size();
+ key.resize(blockSize);
+ memset(key.data() + size, 0, blockSize - size);
+ }
+
+ QVarLengthArray<char> iKeyPad(blockSize);
+ const char * const keyData = key.constData();
+
+ for (int i = 0; i < blockSize; ++i)
+ iKeyPad[i] = keyData[i] ^ 0x36;
+
+ messageHash.addData(iKeyPad.data(), iKeyPad.size());
+}
+
+/*!
+ \class QMessageAuthenticationCode
+ \inmodule QtCore
+
+ \brief The QMessageAuthenticationCode class provides a way to generate
+ hash-based message authentication codes.
+
+ \since 5.1
+
+ \ingroup tools
+ \reentrant
+
+ QMessageAuthenticationCode supports all cryptographic hashes which are supported by
+ QCryptographicHash.
+
+ To generate message authentication code, pass hash algorithm QCryptographicHash::Algorithm
+ to constructor, then set key and message by setKey() and addData() functions. Result
+ can be acquired by result() function.
+ \snippet qmessageauthenticationcode/main.cpp 0
+ \dots
+ \snippet qmessageauthenticationcode/main.cpp 1
+
+ Alternatively, this effect can be achieved by providing message,
+ key and method to hash() method.
+ \snippet qmessageauthenticationcode/main.cpp 2
+
+ \sa QCryptographicHash
+*/
+
+/*!
+ Constructs an object that can be used to create a cryptographic hash from data
+ using method \a method and key \a key.
+*/
+QMessageAuthenticationCode::QMessageAuthenticationCode(QCryptographicHash::Algorithm method,
+ const QByteArray &key)
+ : d(new QMessageAuthenticationCodePrivate(method))
+{
+ d->key = key;
+}
+
+/*!
+ Destroys the object.
+*/
+QMessageAuthenticationCode::~QMessageAuthenticationCode()
+{
+ delete d;
+}
+
+/*!
+ Resets message data. Calling this method doesn't affect the key.
+*/
+void QMessageAuthenticationCode::reset()
+{
+ d->result.clear();
+ d->messageHash.reset();
+ d->messageHashInited = false;
+}
+
+/*!
+ Sets secret \a key. Calling this method automatically resets the object state.
+*/
+void QMessageAuthenticationCode::setKey(const QByteArray &key)
+{
+ reset();
+ d->key = key;
+}
+
+/*!
+ Adds the first \a length chars of \a data to the message.
+*/
+void QMessageAuthenticationCode::addData(const char *data, int length)
+{
+ d->initMessageHash();
+ d->messageHash.addData(data, length);
+}
+
+/*!
+ \overload addData()
+*/
+void QMessageAuthenticationCode::addData(const QByteArray &data)
+{
+ d->initMessageHash();
+ d->messageHash.addData(data);
+}
+
+/*!
+ Reads the data from the open QIODevice \a device until it ends
+ and adds it to message. Returns true if reading was successful.
+
+ \note \a device must be already opened.
+ */
+bool QMessageAuthenticationCode::addData(QIODevice *device)
+{
+ d->initMessageHash();
+ return d->messageHash.addData(device);
+}
+
+/*!
+ Returns the final authentication code.
+
+ \sa QByteArray::toHex()
+*/
+QByteArray QMessageAuthenticationCode::result() const
+{
+ if (!d->result.isEmpty())
+ return d->result;
+
+ d->initMessageHash();
+
+ const int blockSize = qt_hash_block_size(d->method);
+
+ QByteArray hashedMessage = d->messageHash.result();
+
+ QVarLengthArray<char> oKeyPad(blockSize);
+ const char * const keyData = d->key.constData();
+
+ for (int i = 0; i < blockSize; ++i)
+ oKeyPad[i] = keyData[i] ^ 0x5c;
+
+ QCryptographicHash hash(d->method);
+ hash.addData(oKeyPad.data(), oKeyPad.size());
+ hash.addData(hashedMessage);
+
+ d->result = hash.result();
+ return d->result;
+}
+
+/*!
+ Returns the authentication code for the message \a message using
+ the key \a key and the method \a method.
+*/
+QByteArray QMessageAuthenticationCode::hash(const QByteArray &message, const QByteArray &key,
+ QCryptographicHash::Algorithm method)
+{
+ QMessageAuthenticationCode mac(method);
+ mac.setKey(key);
+ mac.addData(message);
+ return mac.result();
+}
+
+QT_END_NAMESPACE
diff --git a/src/corelib/tools/qmessageauthenticationcode.h b/src/corelib/tools/qmessageauthenticationcode.h
new file mode 100644
index 0000000000..77c22152e4
--- /dev/null
+++ b/src/corelib/tools/qmessageauthenticationcode.h
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Ruslan Nigmatullin <euroelessar@yandex.ru>
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtCore module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, 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, Digia gives you certain additional
+** rights. These rights are described in the Digia 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.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QMESSAGEAUTHENTICATIONCODE_H
+#define QMESSAGEAUTHENTICATIONCODE_H
+
+#include <QtCore/qcryptographichash.h>
+
+QT_BEGIN_NAMESPACE
+
+
+class QMessageAuthenticationCodePrivate;
+class QIODevice;
+
+class Q_CORE_EXPORT QMessageAuthenticationCode
+{
+public:
+ explicit QMessageAuthenticationCode(QCryptographicHash::Algorithm method,
+ const QByteArray &key = QByteArray());
+ ~QMessageAuthenticationCode();
+
+ void reset();
+
+ void setKey(const QByteArray &key);
+
+ void addData(const char *data, int length);
+ void addData(const QByteArray &data);
+ bool addData(QIODevice *device);
+
+ QByteArray result() const;
+
+ static QByteArray hash(const QByteArray &message, const QByteArray &key,
+ QCryptographicHash::Algorithm method);
+
+private:
+ Q_DISABLE_COPY(QMessageAuthenticationCode)
+ QMessageAuthenticationCodePrivate *d;
+};
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/src/corelib/tools/qpair.h b/src/corelib/tools/qpair.h
index 65622f78cb..96b1b65e33 100644
--- a/src/corelib/tools/qpair.h
+++ b/src/corelib/tools/qpair.h
@@ -44,8 +44,6 @@
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -108,6 +106,4 @@ Q_OUTOFLINE_TEMPLATE QPair<T1, T2> qMakePair(const T1 &x, const T2 &y)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QPAIR_H
diff --git a/src/corelib/tools/qpodlist_p.h b/src/corelib/tools/qpodlist_p.h
index f307e279e8..cfe4cab9ae 100644
--- a/src/corelib/tools/qpodlist_p.h
+++ b/src/corelib/tools/qpodlist_p.h
@@ -55,8 +55,6 @@
#include <QtCore/qvarlengtharray.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -109,6 +107,4 @@ public:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QPODLIST_P_H
diff --git a/src/corelib/tools/qpoint.cpp b/src/corelib/tools/qpoint.cpp
index b3dd918a35..784d96bf1c 100644
--- a/src/corelib/tools/qpoint.cpp
+++ b/src/corelib/tools/qpoint.cpp
@@ -223,6 +223,15 @@ QT_BEGIN_NAMESPACE
*/
/*!
+ \fn static int QPoint::dotProduct(const QPoint &p1, const QPoint &p2)
+ \since 5.1
+
+ \snippet code/src_corelib_tools_qpoint.cpp 16
+
+ Returns the dot product of \a p1 and \a p2.
+*/
+
+/*!
\fn bool operator==(const QPoint &p1, const QPoint &p2)
\relates QPoint
@@ -712,6 +721,15 @@ QDebug operator<<(QDebug d, const QPointF &p)
*/
/*!
+ \fn static qreal QPointF::dotProduct(const QPointF &p1, const QPointF &p2)
+ \since 5.1
+
+ \snippet code/src_corelib_tools_qpoint.cpp 17
+
+ Returns the dot product of \a p1 and \a p2.
+*/
+
+/*!
\fn bool operator==(const QPointF &p1, const QPointF &p2)
\relates QPointF
diff --git a/src/corelib/tools/qpoint.h b/src/corelib/tools/qpoint.h
index b6446e8c9f..69403ebc53 100644
--- a/src/corelib/tools/qpoint.h
+++ b/src/corelib/tools/qpoint.h
@@ -44,8 +44,6 @@
#include <QtCore/qnamespace.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -76,6 +74,9 @@ public:
inline QPoint &operator/=(qreal divisor);
+ Q_DECL_CONSTEXPR static inline int dotProduct(const QPoint &p1, const QPoint &p2)
+ { return p1.xp * p2.xp + p1.yp * p2.yp; }
+
friend Q_DECL_CONSTEXPR inline bool operator==(const QPoint &, const QPoint &);
friend Q_DECL_CONSTEXPR inline bool operator!=(const QPoint &, const QPoint &);
friend Q_DECL_CONSTEXPR inline const QPoint operator+(const QPoint &, const QPoint &);
@@ -233,6 +234,9 @@ public:
inline QPointF &operator*=(qreal c);
inline QPointF &operator/=(qreal c);
+ Q_DECL_CONSTEXPR static inline qreal dotProduct(const QPointF &p1, const QPointF &p2)
+ { return p1.xp * p2.xp + p1.yp * p2.yp; }
+
friend Q_DECL_CONSTEXPR inline bool operator==(const QPointF &, const QPointF &);
friend Q_DECL_CONSTEXPR inline bool operator!=(const QPointF &, const QPointF &);
friend Q_DECL_CONSTEXPR inline const QPointF operator+(const QPointF &, const QPointF &);
@@ -393,6 +397,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug d, const QPointF &p);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QPOINT_H
diff --git a/src/corelib/tools/qqueue.h b/src/corelib/tools/qqueue.h
index ed275a121a..b83021434e 100644
--- a/src/corelib/tools/qqueue.h
+++ b/src/corelib/tools/qqueue.h
@@ -44,8 +44,6 @@
#include <QtCore/qlist.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -64,6 +62,4 @@ public:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QQUEUE_H
diff --git a/src/corelib/tools/qrect.h b/src/corelib/tools/qrect.h
index 2ad049652f..62ebdd10cd 100644
--- a/src/corelib/tools/qrect.h
+++ b/src/corelib/tools/qrect.h
@@ -49,10 +49,9 @@
#error qrect.h must be included before any header file that defines topLeft
#endif
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
+class QMargins;
class Q_CORE_EXPORT QRect
{
@@ -139,6 +138,11 @@ public:
inline QRect intersected(const QRect &other) const;
bool intersects(const QRect &r) const;
+ inline QRect marginsAdded(const QMargins &margins) const;
+ inline QRect marginsRemoved(const QMargins &margins) const;
+ inline QRect &operator+=(const QMargins &margins);
+ inline QRect &operator-=(const QMargins &margins);
+
#if QT_DEPRECATED_SINCE(5, 0)
QT_DEPRECATED QRect unite(const QRect &r) const { return united(r); }
QT_DEPRECATED QRect intersect(const QRect &r) const { return intersected(r); }
@@ -786,6 +790,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QRectF &);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QRECT_H
diff --git a/src/corelib/tools/qrefcount.h b/src/corelib/tools/qrefcount.h
index 4036bc6508..84314b1fcc 100644
--- a/src/corelib/tools/qrefcount.h
+++ b/src/corelib/tools/qrefcount.h
@@ -44,8 +44,6 @@
#include <QtCore/qatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -112,6 +110,4 @@ public:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/tools/qregexp.h b/src/corelib/tools/qregexp.h
index f5003fed0a..acf59d7196 100644
--- a/src/corelib/tools/qregexp.h
+++ b/src/corelib/tools/qregexp.h
@@ -46,8 +46,6 @@
#include <QtCore/qstring.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -129,8 +127,6 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QRegExp &);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QT_NO_REGEXP
#endif // QREGEXP_H
diff --git a/src/corelib/tools/qregularexpression.cpp b/src/corelib/tools/qregularexpression.cpp
index a18d8af898..19b492a505 100644
--- a/src/corelib/tools/qregularexpression.cpp
+++ b/src/corelib/tools/qregularexpression.cpp
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Giuseppe D'Angelo <dangelog@gmail.com>.
+** Copyright (C) 2012 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
@@ -725,6 +726,13 @@ QT_BEGIN_NAMESPACE
that (in this text) there are other characters beyond the end of the
subject string. This can lead to surprising results; see the discussion
in the \l{partial matching} section for more details.
+
+ \value NoMatch
+ No matching is done. This value is returned as the match type by a
+ default constructed QRegularExpressionMatch or
+ QRegularExpressionMatchIterator. Using this match type is not very
+ useful for the user, as no matching ever happens. This enum value
+ has been introduced in Qt 5.1.
*/
/*!
@@ -834,7 +842,7 @@ struct QRegularExpressionMatchPrivate : QSharedData
const QString &subject,
QRegularExpression::MatchType matchType,
QRegularExpression::MatchOptions matchOptions,
- int capturingCount);
+ int capturingCount = 0);
QRegularExpressionMatch nextMatch() const;
@@ -971,12 +979,13 @@ void QRegularExpressionPrivate::compilePattern()
void QRegularExpressionPrivate::getPatternInfo()
{
Q_ASSERT(compiledPattern);
+ Q_ASSERT(studyData == 0);
pcre16_fullinfo(compiledPattern, 0, PCRE_INFO_CAPTURECOUNT, &capturingCount);
// detect the settings for the newline
unsigned long int patternNewlineSetting;
- pcre16_fullinfo(compiledPattern, studyData, PCRE_INFO_OPTIONS, &patternNewlineSetting);
+ pcre16_fullinfo(compiledPattern, 0, PCRE_INFO_OPTIONS, &patternNewlineSetting);
patternNewlineSetting &= PCRE_NEWLINE_CR | PCRE_NEWLINE_LF | PCRE_NEWLINE_CRLF
| PCRE_NEWLINE_ANY | PCRE_NEWLINE_ANYCRLF;
if (patternNewlineSetting == 0) {
@@ -1004,6 +1013,14 @@ void QRegularExpressionPrivate::getPatternInfo()
usingCrLfNewlines = (patternNewlineSetting == PCRE_NEWLINE_CRLF) ||
(patternNewlineSetting == PCRE_NEWLINE_ANY) ||
(patternNewlineSetting == PCRE_NEWLINE_ANYCRLF);
+
+ int hasJOptionChanged;
+ pcre16_fullinfo(compiledPattern, 0, PCRE_INFO_JCHANGED, &hasJOptionChanged);
+ if (hasJOptionChanged) {
+ qWarning("QRegularExpressionPrivate::getPatternInfo(): the pattern '%s'\n"
+ " is using the (?J) option; duplicate capturing group names are not supported by Qt",
+ qPrintable(pattern));
+ }
}
@@ -1193,16 +1210,25 @@ QRegularExpressionMatchPrivate *QRegularExpressionPrivate::doMatch(const QString
QRegularExpression re(*const_cast<QRegularExpressionPrivate *>(this));
if (offset < 0 || offset > subject.length())
- return new QRegularExpressionMatchPrivate(re, subject, matchType, matchOptions, 0);
+ return new QRegularExpressionMatchPrivate(re, subject, matchType, matchOptions);
if (!compiledPattern) {
qWarning("QRegularExpressionPrivate::doMatch(): called on an invalid QRegularExpression object");
- return new QRegularExpressionMatchPrivate(re, subject, matchType, matchOptions, 0);
+ return new QRegularExpressionMatchPrivate(re, subject, matchType, matchOptions);
+ }
+
+ // skip optimizing and doing the actual matching if NoMatch type was requested
+ if (matchType == QRegularExpression::NoMatch) {
+ QRegularExpressionMatchPrivate *priv = new QRegularExpressionMatchPrivate(re, subject,
+ matchType, matchOptions);
+ priv->isValid = true;
+ return priv;
}
+ // capturingCount doesn't include the implicit "0" capturing group
QRegularExpressionMatchPrivate *priv = new QRegularExpressionMatchPrivate(re, subject,
matchType, matchOptions,
- capturingCount);
+ capturingCount + 1);
// this is mutex protected
const pcre16_extra *currentStudyData = const_cast<QRegularExpressionPrivate *>(this)->optimizePattern();
@@ -1311,8 +1337,10 @@ QRegularExpressionMatchPrivate::QRegularExpressionMatchPrivate(const QRegularExp
hasMatch(false), hasPartialMatch(false), isValid(false)
{
Q_ASSERT(capturingCount >= 0);
- const int captureOffsetsCount = (capturingCount + 1) * 3;
- capturedOffsets.resize(captureOffsetsCount);
+ if (capturingCount > 0) {
+ const int captureOffsetsCount = capturingCount * 3;
+ capturedOffsets.resize(captureOffsetsCount);
+ }
}
@@ -1468,6 +1496,8 @@ void QRegularExpression::setPatternOptions(PatternOptions options)
Returns the number of capturing groups inside the pattern string,
or -1 if the regular expression is not valid.
+ \note The implicit capturing group 0 is \e{not} included in the returned number.
+
\sa isValid()
*/
int QRegularExpression::captureCount() const
@@ -1478,6 +1508,71 @@ int QRegularExpression::captureCount() const
}
/*!
+ \since 5.1
+
+ Returns a list of captureCount() + 1 elements, containing the names of the
+ named capturing groups in the pattern string. The list is sorted such that
+ the element of the list at position \c{i} is the name of the \c{i}-th
+ capturing group, if it has a name, or an empty string if that capturing
+ group is unnamed.
+
+ For instance, given the regular expression
+
+ \code
+ (?<day>\d\d)-(?<month>\d\d)-(?<year>\d\d\d\d) (\w+) (?<name>\w+)
+ \endcode
+
+ namedCaptureGroups() will return the following list:
+
+ \code
+ ("", "day", "month", "year", "", "name")
+ \endcode
+
+ which corresponds to the fact that the capturing group #0 (corresponding to
+ the whole match) has no name, the capturing group #1 has name "day", the
+ capturing group #2 has name "month", etc.
+
+ If the regular expression is not valid, returns an empty list.
+
+ \sa isValid(), QRegularExpressionMatch::captured(), QString::isEmpty()
+*/
+QStringList QRegularExpression::namedCaptureGroups() const
+{
+ if (!isValid()) // isValid() will compile the pattern
+ return QStringList();
+
+ // namedCapturingTable will point to a table of
+ // namedCapturingTableEntryCount entries, each one of which
+ // contains one ushort followed by the name, NUL terminated.
+ // The ushort is the numerical index of the name in the pattern.
+ // The length of each entry is namedCapturingTableEntrySize.
+ ushort *namedCapturingTable;
+ int namedCapturingTableEntryCount;
+ int namedCapturingTableEntrySize;
+
+ pcre16_fullinfo(d->compiledPattern, 0, PCRE_INFO_NAMETABLE, &namedCapturingTable);
+ pcre16_fullinfo(d->compiledPattern, 0, PCRE_INFO_NAMECOUNT, &namedCapturingTableEntryCount);
+ pcre16_fullinfo(d->compiledPattern, 0, PCRE_INFO_NAMEENTRYSIZE, &namedCapturingTableEntrySize);
+
+ QStringList result;
+
+ // no QList::resize nor fill is available. The +1 is for the implicit group #0
+ result.reserve(d->capturingCount + 1);
+ for (int i = 0; i < d->capturingCount + 1; ++i)
+ result.append(QString());
+
+ for (int i = 0; i < namedCapturingTableEntryCount; ++i) {
+ const ushort * const currentNamedCapturingTableRow = namedCapturingTable +
+ namedCapturingTableEntrySize * i;
+
+ const int index = *currentNamedCapturingTableRow;
+ result[index] = QString::fromUtf16(currentNamedCapturingTableRow + 1);
+ }
+
+ return result;
+}
+
+/*!
Returns true if the regular expression is a valid regular expression (that
is, it contains no syntax errors, etc.), or false otherwise. Use
errorString() to obtain a textual description of the error.
@@ -1639,6 +1734,26 @@ QString QRegularExpression::escape(const QString &str)
}
/*!
+ \since 5.1
+
+ Constructs a valid, empty QRegularExpressionMatch object. The regular
+ expression is set to a default-constructed one; the match type to
+ QRegularExpression::NoMatch and the match options to
+ QRegularExpression::NoMatchOption.
+
+ The object will report no match through the hasMatch() and the
+ hasPartialMatch() member functions.
+*/
+QRegularExpressionMatch::QRegularExpressionMatch()
+ : d(new QRegularExpressionMatchPrivate(QRegularExpression(),
+ QString(),
+ QRegularExpression::NoMatch,
+ QRegularExpression::NoMatchOption))
+{
+ d->isValid = true;
+}
+
+/*!
Destroys the match result.
*/
QRegularExpressionMatch::~QRegularExpressionMatch()
@@ -1982,6 +2097,26 @@ QRegularExpressionMatchIterator::QRegularExpressionMatchIterator(QRegularExpress
}
/*!
+ \since 5.1
+
+ Constructs an empty, valid QRegularExpressionMatchIterator object. The
+ regular expression is set to a default-constructed one; the match type to
+ QRegularExpression::NoMatch and the match options to
+ QRegularExpression::NoMatchOption.
+
+ Invoking the hasNext() member function on the constructed object will
+ return false, as the iterator is not iterating on a valid sequence of
+ matches.
+*/
+QRegularExpressionMatchIterator::QRegularExpressionMatchIterator()
+ : d(new QRegularExpressionMatchIteratorPrivate(QRegularExpression(),
+ QRegularExpression::NoMatch,
+ QRegularExpression::NoMatchOption,
+ QRegularExpressionMatch()))
+{
+}
+
+/*!
Destroys the QRegularExpressionMatchIterator object.
*/
QRegularExpressionMatchIterator::~QRegularExpressionMatchIterator()
diff --git a/src/corelib/tools/qregularexpression.h b/src/corelib/tools/qregularexpression.h
index 4c95a5b3a0..97dbee9256 100644
--- a/src/corelib/tools/qregularexpression.h
+++ b/src/corelib/tools/qregularexpression.h
@@ -1,6 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2012 Giuseppe D'Angelo <dangelog@gmail.com>.
+** Copyright (C) 2012 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
** Contact: http://www.qt-project.org/legal
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -42,14 +43,13 @@
#ifndef QREGULAREXPRESSION_H
#define QREGULAREXPRESSION_H
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
#include <QtCore/qstring.h>
+#include <QtCore/qstringlist.h>
#include <QtCore/qshareddata.h>
#include <QtCore/qvariant.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QRegularExpressionMatch;
@@ -95,11 +95,13 @@ public:
QString errorString() const;
int captureCount() const;
+ QStringList namedCaptureGroups() const;
enum MatchType {
NormalMatch = 0,
PartialPreferCompleteMatch,
- PartialPreferFirstMatch
+ PartialPreferFirstMatch,
+ NoMatch
};
enum MatchOption {
@@ -152,6 +154,7 @@ struct QRegularExpressionMatchPrivate;
class Q_CORE_EXPORT QRegularExpressionMatch
{
public:
+ QRegularExpressionMatch();
~QRegularExpressionMatch();
QRegularExpressionMatch(const QRegularExpressionMatch &match);
QRegularExpressionMatch &operator=(const QRegularExpressionMatch &match);
@@ -209,6 +212,7 @@ struct QRegularExpressionMatchIteratorPrivate;
class Q_CORE_EXPORT QRegularExpressionMatchIterator
{
public:
+ QRegularExpressionMatchIterator();
~QRegularExpressionMatchIterator();
QRegularExpressionMatchIterator(const QRegularExpressionMatchIterator &iterator);
QRegularExpressionMatchIterator &operator=(const QRegularExpressionMatchIterator &iterator);
@@ -239,8 +243,6 @@ Q_DECLARE_SHARED(QRegularExpressionMatchIterator)
QT_END_NAMESPACE
-QT_END_HEADER
-
-#endif // QT_NO_REGEXP
+#endif // QT_NO_REGULAREXPRESSION
#endif // QREGULAREXPRESSION_H
diff --git a/src/corelib/tools/qscopedpointer.h b/src/corelib/tools/qscopedpointer.h
index 5d19bcea55..2155c56e27 100644
--- a/src/corelib/tools/qscopedpointer.h
+++ b/src/corelib/tools/qscopedpointer.h
@@ -46,7 +46,6 @@
#include <stdlib.h>
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
template <typename T>
@@ -97,7 +96,6 @@ public:
{
T *oldD = this->d;
Cleanup::cleanup(oldD);
- this->d = 0;
}
inline T &operator*() const
@@ -239,6 +237,5 @@ private:
};
QT_END_NAMESPACE
-QT_END_HEADER
#endif // QSCOPEDPOINTER_H
diff --git a/src/corelib/tools/qscopedpointer_p.h b/src/corelib/tools/qscopedpointer_p.h
index f92ce0a454..06ebac1853 100644
--- a/src/corelib/tools/qscopedpointer_p.h
+++ b/src/corelib/tools/qscopedpointer_p.h
@@ -55,7 +55,6 @@
#include "QtCore/qscopedpointer.h"
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
@@ -145,6 +144,5 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
#endif
diff --git a/src/corelib/tools/qscopedvaluerollback.h b/src/corelib/tools/qscopedvaluerollback.h
index 8d6293c514..dfaf1984be 100644
--- a/src/corelib/tools/qscopedvaluerollback.h
+++ b/src/corelib/tools/qscopedvaluerollback.h
@@ -44,7 +44,6 @@
#include <QtCore/qglobal.h>
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
template <typename T>
@@ -75,6 +74,5 @@ private:
};
QT_END_NAMESPACE
-QT_END_HEADER
#endif // QSCOPEDVALUEROLLBACK_H
diff --git a/src/corelib/tools/qset.h b/src/corelib/tools/qset.h
index 6fdc8e6281..d5c3637293 100644
--- a/src/corelib/tools/qset.h
+++ b/src/corelib/tools/qset.h
@@ -43,8 +43,9 @@
#define QSET_H
#include <QtCore/qhash.h>
-
-QT_BEGIN_HEADER
+#ifdef Q_COMPILER_INITIALIZER_LISTS
+#include <initializer_list>
+#endif
QT_BEGIN_NAMESPACE
@@ -56,6 +57,14 @@ class QSet
public:
inline QSet() {}
+#ifdef Q_COMPILER_INITIALIZER_LISTS
+ inline QSet(std::initializer_list<T> list)
+ {
+ reserve(list.size());
+ for (typename std::initializer_list<T>::const_iterator it = list.begin(); it != list.end(); ++it)
+ insert(*it);
+ }
+#endif
inline QSet(const QSet<T> &other) : q_hash(other.q_hash) {}
inline QSet<T> &operator=(const QSet<T> &other)
@@ -355,6 +364,4 @@ public:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSET_H
diff --git a/src/corelib/tools/qset.qdoc b/src/corelib/tools/qset.qdoc
index ef7a4c4f52..cd90b4949b 100644
--- a/src/corelib/tools/qset.qdoc
+++ b/src/corelib/tools/qset.qdoc
@@ -103,6 +103,16 @@
\sa clear()
*/
+/*! \fn QSet::QSet(std::initializer_list<T> list)
+ \since 5.1
+
+ Constructs a set with a copy of each of the elements in the
+ initializer list \a list.
+
+ This function is only available if the program is being
+ compiled in C++11 mode.
+*/
+
/*!
\fn QSet::QSet(const QSet<T> &other)
diff --git a/src/corelib/tools/qshareddata.h b/src/corelib/tools/qshareddata.h
index 276fef4446..00bf4cba2a 100644
--- a/src/corelib/tools/qshareddata.h
+++ b/src/corelib/tools/qshareddata.h
@@ -45,8 +45,6 @@
#include <QtCore/qglobal.h>
#include <QtCore/qatomic.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -281,6 +279,4 @@ template<typename T> Q_DECLARE_TYPEINFO_BODY(QExplicitlySharedDataPointer<T>, Q_
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSHAREDDATA_H
diff --git a/src/corelib/tools/qsharedpointer.cpp b/src/corelib/tools/qsharedpointer.cpp
index df7a911f8c..bced1f4ece 100644
--- a/src/corelib/tools/qsharedpointer.cpp
+++ b/src/corelib/tools/qsharedpointer.cpp
@@ -136,23 +136,11 @@
\omit
\secton1 QSharedPointer internals
- QSharedPointer is in reality implemented by two ancestor classes:
- QtSharedPointer::Basic and QtSharedPointer::ExternalRefCount. The reason
- for having that split is now mostly legacy: in the beginning,
- QSharedPointer was meant to support both internal reference counting and
- external reference counting.
-
- QtSharedPointer::Basic implements the basic functionality that is shared
- between internal- and external-reference counting. That is, it's mostly
- the accessor functions into QSharedPointer. Those are all inherited by
- QSharedPointer, which adds another level of shared functionality (the
- constructors and assignment operators). The Basic class has one member
- variable, which is the actual pointer being tracked.
-
- QtSharedPointer::ExternalRefCount implements the actual reference
- counting and introduces the d-pointer for QSharedPointer. That d-pointer
- itself is shared with other QSharedPointer objects as well as
- QWeakPointer.
+ QSharedPointer has two "private" members: the pointer itself being tracked
+ and a d-pointer. Those members are private to the class, but QSharedPointer
+ is friends with QWeakPointer and other QSharedPointer with different
+ template arguments. (On some compilers, template friends are not supported,
+ so the members are technically public)
The reason for keeping the pointer value itself outside the d-pointer is
because of multiple inheritance needs. If you have two QSharedPointer
@@ -178,17 +166,19 @@
QSharedObject instances that are attached to this Data.
When the strong reference count decreases to zero, the object is deleted
- (see below for information on custom deleters). The strong reference
- count can also exceptionally be -1, indicating that there are no
- QSharedPointers attached to an object, which is tracked too. The only
- case where this is possible is that of QWeakPointers tracking a QObject.
+ (see below for information on custom deleters). The strong reference count
+ can also exceptionally be -1, indicating that there are no QSharedPointers
+ attached to an object, which is tracked too. The only case where this is
+ possible is that of QWeakPointers and QPointers tracking a QObject. Note
+ that QWeakPointers tracking a QObject is a deprecated feature as of Qt 5.0,
+ kept only for compatibility with Qt 4.x.
The weak reference count controls the lifetime of the d-pointer itself.
It can be thought of as an internal/intrusive reference count for
ExternalRefCountData itself. This count is equal to the number of
- QSharedPointers and QWeakPointers that are tracking this object. (In case
- the object tracked derives from QObject, this number is increased by 1,
- since QObjectPrivate tracks it too).
+ QSharedPointers and QWeakPointers that are tracking this object. In case
+ the object is a QObject being tracked by QPointer, this number is increased
+ by 1, since QObjectPrivate tracks it too.
The third member is a pointer to the function that is used to delete the
pointer being tracked. That happens when the destroy() function is called.
@@ -199,18 +189,21 @@
\section3 QtSharedPointer::ExternalRefCountWithCustomDeleter
- This class derives from ExternalRefCountData and is a
- template class. As template parameters, it has the type of the pointer
- being tracked (\tt T) and a \tt Deleter, which is anything. It adds two
- fields to its parent class, matching those template parameters: a member
- of type \tt Deleter and a member of type \tt T*.
+ This class derives from ExternalRefCountData and is a template class. As
+ template parameters, it has the type of the pointer being tracked (\tt T)
+ and a \tt Deleter, which is anything. It adds two fields to its parent
+ class, matching those template parameters: a member of type \tt Deleter and
+ a member of type \tt T*. Those members are actually inside a template
+ struct of type CustomDeleter, which is partially-specialized for normal
+ deletion. See below for more details on that.
The purpose of this class is to store the pointer to be deleted and the
deleter code along with the d-pointer. This allows the last strong
reference to call any arbitrary function that disposes of the object. For
example, this allows calling QObject::deleteLater() on a given object.
- The pointer to the object is kept here to avoid the extra cost of keeping
- the deleter in the generic case.
+ The pointer to the object is kept here because it needs to match the actual
+ deleter function's parameters, regardless of what template argument the
+ last QSharedPointer instance had.
This class is never instantiated directly: the constructors and
destructor are private and, in C++11, deleted. Only the create() function
@@ -605,6 +598,37 @@
*/
/*!
+ \fn QSharedPointer<T> QSharedPointer::create()
+ \since 5.1
+
+ Creates a QSharedPointer object and allocates a new item of type \tt T. The
+ QSharedPointer internals and the object are allocated in one single memory
+ allocation, which could help reduce memory fragmentation in a long-running
+ application.
+
+ This function calls the default constructor for type \tt T.
+*/
+
+/*!
+ \fn QSharedPointer<T> QSharedPointer::create(...)
+ \overload
+ \since 5.1
+
+ Creates a QSharedPointer object and allocates a new item of type \tt T. The
+ QSharedPointer internals and the object are allocated in one single memory
+ allocation, which could help reduce memory fragmentation in a long-running
+ application.
+
+ This function will attempt to call a constructor for type \tt T that can
+ accept all the arguments passed. Arguments will be perfectly-forwarded.
+
+ \note This function is only available with a C++11 compiler that supports
+ perfect forwarding of an arbitrary number of arguments. If the compiler
+ does not support the necessary C++11 features, you must use the overload
+ that calls the default constructor.
+*/
+
+/*!
\fn QWeakPointer<T> QSharedPointer::toWeakRef() const
Returns a weak reference object that shares the pointer referenced
diff --git a/src/corelib/tools/qsharedpointer.h b/src/corelib/tools/qsharedpointer.h
index b4e70cebd2..7d1f00814d 100644
--- a/src/corelib/tools/qsharedpointer.h
+++ b/src/corelib/tools/qsharedpointer.h
@@ -50,8 +50,6 @@
# include <QtCore/qsharedpointer_impl.h>
#else
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -95,6 +93,9 @@ public:
template <class X> QSharedPointer<X> dynamicCast() const;
template <class X> QSharedPointer<X> constCast() const;
template <class X> QSharedPointer<X> objectCast() const;
+
+ static inline QSharedPointer<T> create();
+ static inline QSharedPointer<T> create(...);
};
template <class T>
@@ -149,8 +150,6 @@ template <class X, class T> QWeakPointer<X> qWeakPointerCast(const QWeakPointer<
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // Q_QDOC
#endif // QSHAREDPOINTER_H
diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h
index 881c60b6fd..5e30cf3ecb 100644
--- a/src/corelib/tools/qsharedpointer_impl.h
+++ b/src/corelib/tools/qsharedpointer_impl.h
@@ -46,14 +46,17 @@
#endif
#if 0
+#pragma qt_sync_skip_header_check
+#pragma qt_sync_stop_processing
+#endif
+
+#if 0
// These macros are duplicated here to make syncqt not complain a about
// this header, as we have a "qt_sync_stop_processing" below, which in turn
// is here because this file contains a template mess and duplicates the
// classes found in qsharedpointer.h
-QT_BEGIN_HEADER
QT_BEGIN_NAMESPACE
QT_END_NAMESPACE
-QT_END_HEADER
#pragma qt_sync_stop_processing
#endif
@@ -62,7 +65,9 @@ QT_END_HEADER
#include <QtCore/qobject.h> // for qobject_cast
#include <QtCore/qhash.h> // for qHash
-QT_BEGIN_HEADER
+#if defined(Q_COMPILER_RVALUE_REFS) && defined(Q_COMPILER_VARIADIC_TEMPLATES)
+# include <utility> // for std::forward
+#endif
QT_BEGIN_NAMESPACE
@@ -389,6 +394,28 @@ public:
QWeakPointer<T> toWeakRef() const;
+#if defined(Q_COMPILER_RVALUE_REFS) && defined(Q_COMPILER_VARIADIC_TEMPLATES)
+ template <typename... Args>
+ static QSharedPointer<T> create(Args && ...arguments)
+ {
+ typedef QtSharedPointer::ExternalRefCountWithContiguousData<T> Private;
+# ifdef QT_SHAREDPOINTER_TRACK_POINTERS
+ typename Private::DestroyerFn destroy = &Private::safetyCheckDeleter;
+# else
+ typename Private::DestroyerFn destroy = &Private::deleter;
+# endif
+ QSharedPointer<T> result(Qt::Uninitialized);
+ result.d = Private::create(&result.value, destroy);
+
+ // now initialize the data
+ new (result.data()) T(std::forward<Args>(arguments)...);
+ result.d->setQObjectShared(result.value, true);
+# ifdef QT_SHAREDPOINTER_TRACK_POINTERS
+ internalSafetyCheckAdd(result.d, result.value);
+# endif
+ return result;
+ }
+#else
static inline QSharedPointer<T> create()
{
typedef QtSharedPointer::ExternalRefCountWithContiguousData<T> Private;
@@ -408,6 +435,7 @@ public:
result.d->setQObjectShared(result.value, true);
return result;
}
+#endif
private:
explicit QSharedPointer(Qt::Initialization) {}
@@ -616,7 +644,7 @@ private:
public:
#else
template <class X> friend class QSharedPointer;
- friend class QPointerBase;
+ template <class X> friend class QPointer;
#endif
template <class X>
@@ -862,6 +890,4 @@ template<typename T> Q_DECLARE_TYPEINFO_BODY(QSharedPointer<T>, Q_MOVABLE_TYPE);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h
index 2156c2235f..b9d546452f 100644
--- a/src/corelib/tools/qsimd_p.h
+++ b/src/corelib/tools/qsimd_p.h
@@ -45,8 +45,6 @@
#include <qglobal.h>
#include <qatomic.h>
-QT_BEGIN_HEADER
-
/*
* qt_module_config.prf defines the QT_COMPILER_SUPPORTS_XXX macros.
* They mean the compiler supports the necessary flags and the headers
@@ -252,6 +250,4 @@ inline uint qCpuHasFeature(CPUFeatures feature)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSIMD_P_H
diff --git a/src/corelib/tools/qsize.h b/src/corelib/tools/qsize.h
index bb2cfaff29..76f2ae05f1 100644
--- a/src/corelib/tools/qsize.h
+++ b/src/corelib/tools/qsize.h
@@ -44,8 +44,6 @@
#include <QtCore/qnamespace.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -379,6 +377,4 @@ Q_CORE_EXPORT QDebug operator<<(QDebug, const QSizeF &);
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSIZE_H
diff --git a/src/corelib/tools/qstack.h b/src/corelib/tools/qstack.h
index 158e1af6b2..135c4dd527 100644
--- a/src/corelib/tools/qstack.h
+++ b/src/corelib/tools/qstack.h
@@ -44,8 +44,6 @@
#include <QtCore/qvector.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -77,6 +75,4 @@ inline const T &QStack<T>::top() const
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSTACK_H
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index 404e3be289..75ef07a96e 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -966,20 +966,21 @@ const QString::Null QString::null = { };
\sa utf16(), toLatin1(), toUtf8(), toLocal8Bit()
*/
-// ### replace with QCharIterator
int QString::toUcs4_helper(const ushort *uc, int length, uint *out)
{
int i = 0;
- for (; i < length; ++i) {
- uint u = uc[i];
- if (QChar::isHighSurrogate(u) && i + 1 < length) {
- ushort low = uc[i+1];
+ const ushort *const e = uc + length;
+ while (uc < e) {
+ uint u = *uc;
+ if (QChar::isHighSurrogate(u) && uc + 1 < e) {
+ ushort low = uc[1];
if (QChar::isLowSurrogate(low)) {
- ++i;
+ ++uc;
u = QChar::surrogateToUcs4(u, low);
}
}
- *out++ = u;
+ out[i++] = u;
+ ++uc;
}
return i;
}
@@ -2762,13 +2763,17 @@ int QString::lastIndexOf(const QStringRef &str, int from, Qt::CaseSensitivity cs
str.size(), cs);
}
-#ifndef QT_NO_REGEXP
+
+#if !(defined(QT_NO_REGEXP) && defined(QT_NO_REGULAREXPRESSION))
struct QStringCapture
{
int pos;
int len;
int no;
};
+#endif
+
+#ifndef QT_NO_REGEXP
/*!
\overload replace()
@@ -2925,7 +2930,7 @@ QString& QString::replace(const QRegExp &rx, const QString &after)
}
#endif
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
#ifndef QT_BOOTSTRAPPED
/*!
\overload replace()
@@ -3055,7 +3060,7 @@ QString &QString::replace(const QRegularExpression &re, const QString &after)
return *this;
}
#endif // QT_BOOTSTRAPPED
-#endif // QT_NO_REGEXP
+#endif // QT_NO_REGULAREXPRESSION
/*!
Returns the number of (potentially overlapping) occurrences of
@@ -3256,7 +3261,7 @@ int QString::count(const QRegExp& rx) const
}
#endif // QT_NO_REGEXP
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
#ifndef QT_BOOTSTRAPPED
/*!
\overload indexOf()
@@ -3336,6 +3341,33 @@ bool QString::contains(const QRegularExpression &re) const
}
/*!
+ \overload contains()
+ \since 5.1
+
+ Returns true if the regular expression \a re matches somewhere in this
+ string; otherwise returns false.
+
+ If the match is successful and \a match is not a null pointer, it also
+ writes the results of the match into the QRegularExpressionMatch object
+ pointed by \a match.
+
+ \sa QRegularExpression::match()
+*/
+
+bool QString::contains(const QRegularExpression &re, QRegularExpressionMatch *match) const
+{
+ if (!re.isValid()) {
+ qWarning("QString::contains: invalid QRegularExpresssion object");
+ return false;
+ }
+ QRegularExpressionMatch m = re.match(*this);
+ bool hasMatch = m.hasMatch();
+ if (hasMatch && match)
+ *match = m;
+ return hasMatch;
+}
+
+/*!
\overload count()
\since 5.0
@@ -3366,7 +3398,7 @@ int QString::count(const QRegularExpression &re) const
return count;
}
#endif // QT_BOOTSTRAPPED
-#endif // QT_NO_REGEXP
+#endif // QT_NO_REGULAREXPRESSION
/*! \fn int QString::count() const
@@ -3487,7 +3519,7 @@ QString QString::section(const QString &sep, int start, int end, SectionFlags fl
return ret;
}
-#ifndef QT_NO_REGEXP
+#if !(defined(QT_NO_REGEXP) && defined(QT_NO_REGULAREXPRESSION))
class qt_section_chunk {
public:
qt_section_chunk(int l, QString s) { length = l; string = s; }
@@ -3537,7 +3569,9 @@ static QString extractSections(const QList<qt_section_chunk> &sections,
return ret;
}
+#endif
+#ifndef QT_NO_REGEXP
/*!
\overload section()
@@ -3575,7 +3609,7 @@ QString QString::section(const QRegExp &reg, int start, int end, SectionFlags fl
}
#endif
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
#ifndef QT_BOOTSTRAPPED
/*!
\overload section()
@@ -3621,7 +3655,7 @@ QString QString::section(const QRegularExpression &re, int start, int end, Secti
return extractSections(sections, start, end, flags);
}
#endif // QT_BOOTSTRAPPED
-#endif // QT_NO_REGEXP
+#endif // QT_NO_REGULAREXPRESSION
/*!
Returns a substring that contains the \a n leftmost characters
@@ -6416,7 +6450,7 @@ QStringList QString::split(const QRegExp &rx, SplitBehavior behavior) const
}
#endif
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
#ifndef QT_BOOTSTRAPPED
/*!
\overload
@@ -6470,7 +6504,7 @@ QStringList QString::split(const QRegularExpression &re, SplitBehavior behavior)
return list;
}
#endif // QT_BOOTSTRAPPED
-#endif // QT_NO_REGEXP
+#endif // QT_NO_REGULAREXPRESSION
/*!
\enum QString::NormalizationForm
@@ -9160,6 +9194,356 @@ QVector<uint> QStringRef::toUcs4() const
return v;
}
+/*!
+ Returns a string that has whitespace removed from the start and
+ the end.
+
+ Whitespace means any character for which QChar::isSpace() returns
+ true. This includes the ASCII characters '\\t', '\\n', '\\v',
+ '\\f', '\\r', and ' '.
+
+ Unlike QString::simplified(), trimmed() leaves internal whitespace alone.
+
+ \since 5.1
+
+ \sa QString::trimmed()
+*/
+QStringRef QStringRef::trimmed() const
+{
+ if (m_size == 0 || m_string == 0)
+ return *this;
+ const QChar *s = m_string->constData() + m_position;
+ int start = 0;
+ int end = m_size - 1;
+ while (start <= end && s[start].isSpace()) // skip white space from start
+ start++;
+ if (start <= end) { // only white space
+ while (end && s[end].isSpace()) // skip white space from end
+ end--;
+ }
+ int l = end - start + 1;
+ Q_ASSERT(l >= 0);
+ return QStringRef(m_string, m_position + start, l);
+}
+
+/*!
+ Returns the string converted to a \c{long long} using base \a
+ base, which is 10 by default and must be between 2 and 36, or 0.
+ Returns 0 if the conversion fails.
+
+ If a conversion error occurs, *\a{ok} is set to false; otherwise
+ *\a{ok} is set to true.
+
+ If \a base is 0, the C language convention is used: If the string
+ begins with "0x", base 16 is used; if the string begins with "0",
+ base 8 is used; otherwise, base 10 is used.
+
+ The string conversion will always happen in the 'C' locale. For locale
+ dependent conversion use QLocale::toLongLong()
+
+ \sa QString::toLongLong()
+
+ \since 5.1
+*/
+
+qint64 QStringRef::toLongLong(bool *ok, int base) const
+{
+#if defined(QT_CHECK_RANGE)
+ if (base != 0 && (base < 2 || base > 36)) {
+ qWarning("QString::toLongLong: Invalid base (%d)", base);
+ base = 10;
+ }
+#endif
+
+ QLocale c_locale(QLocale::C);
+ return c_locale.d->stringToLongLong(*this, base, ok, QLocalePrivate::FailOnGroupSeparators);
+}
+
+/*!
+ Returns the string converted to an \c{unsigned long long} using base \a
+ base, which is 10 by default and must be between 2 and 36, or 0.
+ Returns 0 if the conversion fails.
+
+ If a conversion error occurs, *\a{ok} is set to false; otherwise
+ *\a{ok} is set to true.
+
+ If \a base is 0, the C language convention is used: If the string
+ begins with "0x", base 16 is used; if the string begins with "0",
+ base 8 is used; otherwise, base 10 is used.
+
+ The string conversion will always happen in the 'C' locale. For locale
+ dependent conversion use QLocale::toULongLong()
+
+ \sa QString::toULongLong()
+
+ \since 5.1
+*/
+
+quint64 QStringRef::toULongLong(bool *ok, int base) const
+{
+#if defined(QT_CHECK_RANGE)
+ if (base != 0 && (base < 2 || base > 36)) {
+ qWarning("QString::toULongLong: Invalid base (%d)", base);
+ base = 10;
+ }
+#endif
+
+ QLocale c_locale(QLocale::C);
+ return c_locale.d->stringToUnsLongLong(*this, base, ok, QLocalePrivate::FailOnGroupSeparators);
+}
+
+/*!
+ \fn long QStringRef::toLong(bool *ok, int base) const
+
+ Returns the string converted to a \c long using base \a
+ base, which is 10 by default and must be between 2 and 36, or 0.
+ Returns 0 if the conversion fails.
+
+ If a conversion error occurs, *\a{ok} is set to false; otherwise
+ *\a{ok} is set to true.
+
+ If \a base is 0, the C language convention is used: If the string
+ begins with "0x", base 16 is used; if the string begins with "0",
+ base 8 is used; otherwise, base 10 is used.
+
+ The string conversion will always happen in the 'C' locale. For locale
+ dependent conversion use QLocale::toLong()
+
+ \sa QString::toLong()
+
+ \since 5.1
+*/
+
+long QStringRef::toLong(bool *ok, int base) const
+{
+ qint64 v = toLongLong(ok, base);
+ if (v < LONG_MIN || v > LONG_MAX) {
+ if (ok)
+ *ok = false;
+ v = 0;
+ }
+ return long(v);
+}
+
+/*!
+ \fn ulong QStringRef::toULong(bool *ok, int base) const
+
+ Returns the string converted to an \c{unsigned long} using base \a
+ base, which is 10 by default and must be between 2 and 36, or 0.
+ Returns 0 if the conversion fails.
+
+ If a conversion error occurs, *\a{ok} is set to false; otherwise
+ *\a{ok} is set to true.
+
+ If \a base is 0, the C language convention is used: If the string
+ begins with "0x", base 16 is used; if the string begins with "0",
+ base 8 is used; otherwise, base 10 is used.
+
+ The string conversion will always happen in the 'C' locale. For locale
+ dependent conversion use QLocale::toULong()
+
+ \sa QString::toULong()
+
+ \since 5.1
+*/
+
+ulong QStringRef::toULong(bool *ok, int base) const
+{
+ quint64 v = toULongLong(ok, base);
+ if (v > ULONG_MAX) {
+ if (ok)
+ *ok = false;
+ v = 0;
+ }
+ return ulong(v);
+}
+
+
+/*!
+ Returns the string converted to an \c int using base \a
+ base, which is 10 by default and must be between 2 and 36, or 0.
+ Returns 0 if the conversion fails.
+
+ If a conversion error occurs, *\a{ok} is set to false; otherwise
+ *\a{ok} is set to true.
+
+ If \a base is 0, the C language convention is used: If the string
+ begins with "0x", base 16 is used; if the string begins with "0",
+ base 8 is used; otherwise, base 10 is used.
+
+ The string conversion will always happen in the 'C' locale. For locale
+ dependent conversion use QLocale::toInt()
+
+ \sa QString::toInt()
+
+ \since 5.1
+*/
+
+int QStringRef::toInt(bool *ok, int base) const
+{
+ qint64 v = toLongLong(ok, base);
+ if (v < INT_MIN || v > INT_MAX) {
+ if (ok)
+ *ok = false;
+ v = 0;
+ }
+ return int(v);
+}
+
+/*!
+ Returns the string converted to an \c{unsigned int} using base \a
+ base, which is 10 by default and must be between 2 and 36, or 0.
+ Returns 0 if the conversion fails.
+
+ If a conversion error occurs, *\a{ok} is set to false; otherwise
+ *\a{ok} is set to true.
+
+ If \a base is 0, the C language convention is used: If the string
+ begins with "0x", base 16 is used; if the string begins with "0",
+ base 8 is used; otherwise, base 10 is used.
+
+ The string conversion will always happen in the 'C' locale. For locale
+ dependent conversion use QLocale::toUInt()
+
+ \sa QString::toUInt()
+
+ \since 5.1
+*/
+
+uint QStringRef::toUInt(bool *ok, int base) const
+{
+ quint64 v = toULongLong(ok, base);
+ if (v > UINT_MAX) {
+ if (ok)
+ *ok = false;
+ v = 0;
+ }
+ return uint(v);
+}
+
+/*!
+ Returns the string converted to a \c short using base \a
+ base, which is 10 by default and must be between 2 and 36, or 0.
+ Returns 0 if the conversion fails.
+
+ If a conversion error occurs, *\a{ok} is set to false; otherwise
+ *\a{ok} is set to true.
+
+ If \a base is 0, the C language convention is used: If the string
+ begins with "0x", base 16 is used; if the string begins with "0",
+ base 8 is used; otherwise, base 10 is used.
+
+ The string conversion will always happen in the 'C' locale. For locale
+ dependent conversion use QLocale::toShort()
+
+ \sa QString::toShort()
+
+ \since 5.1
+*/
+
+short QStringRef::toShort(bool *ok, int base) const
+{
+ long v = toLongLong(ok, base);
+ if (v < SHRT_MIN || v > SHRT_MAX) {
+ if (ok)
+ *ok = false;
+ v = 0;
+ }
+ return short(v);
+}
+
+/*!
+ Returns the string converted to an \c{unsigned short} using base \a
+ base, which is 10 by default and must be between 2 and 36, or 0.
+ Returns 0 if the conversion fails.
+
+ If a conversion error occurs, *\a{ok} is set to false; otherwise
+ *\a{ok} is set to true.
+
+ If \a base is 0, the C language convention is used: If the string
+ begins with "0x", base 16 is used; if the string begins with "0",
+ base 8 is used; otherwise, base 10 is used.
+
+ The string conversion will always happen in the 'C' locale. For locale
+ dependent conversion use QLocale::toUShort()
+
+ \sa QString::toUShort()
+
+ \since 5.1
+*/
+
+ushort QStringRef::toUShort(bool *ok, int base) const
+{
+ ulong v = toULongLong(ok, base);
+ if (v > USHRT_MAX) {
+ if (ok)
+ *ok = false;
+ v = 0;
+ }
+ return ushort(v);
+}
+
+
+/*!
+ Returns the string converted to a \c double value.
+
+ Returns 0.0 if the conversion fails.
+
+ If a conversion error occurs, \c{*}\a{ok} is set to false;
+ otherwise \c{*}\a{ok} is set to true.
+
+ The string conversion will always happen in the 'C' locale. For locale
+ dependent conversion use QLocale::toDouble()
+
+ For historic reasons, this function does not handle
+ thousands group separators. If you need to convert such numbers,
+ use QLocale::toDouble().
+
+ \sa QString::toDouble()
+
+ \since 5.1
+*/
+
+double QStringRef::toDouble(bool *ok) const
+{
+ QLocale c_locale(QLocale::C);
+ return c_locale.d->stringToDouble(*this, ok, QLocalePrivate::FailOnGroupSeparators);
+}
+
+/*!
+ Returns the string converted to a \c float value.
+
+ If a conversion error occurs, *\a{ok} is set to false; otherwise
+ *\a{ok} is set to true. Returns 0.0 if the conversion fails.
+
+ The string conversion will always happen in the 'C' locale. For locale
+ dependent conversion use QLocale::toFloat()
+
+ \sa QString::toFloat()
+
+ \since 5.1
+*/
+
+float QStringRef::toFloat(bool *ok) const
+{
+ bool myOk;
+ double d = toDouble(&myOk);
+ if (!myOk) {
+ if (ok != 0)
+ *ok = false;
+ return 0.0;
+ }
+ if (qIsInf(d))
+ return float(d);
+ if (d > QT_MAX_FLOAT || d < -QT_MAX_FLOAT) {
+ if (ok != 0)
+ *ok = false;
+ return 0.0;
+ }
+ if (ok)
+ *ok = true;
+ return float(d);
+}
/*!
\obsolete
diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h
index a6f03b2ce0..ac49bdcdf6 100644
--- a/src/corelib/tools/qstring.h
+++ b/src/corelib/tools/qstring.h
@@ -49,7 +49,7 @@
#include <string>
-#if defined(Q_OS_LINUX_ANDROID)
+#if defined(Q_OS_ANDROID)
// std::wstring is disabled on android's glibc, as bionic lacks certain features
// that libstdc++ checks for (like mbcslen).
namespace std
@@ -64,14 +64,13 @@ namespace std
#error qstring.h must be included before any header file that defines truncate
#endif
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QCharRef;
class QRegExp;
class QRegularExpression;
+class QRegularExpressionMatch;
class QString;
class QStringList;
class QTextCodec;
@@ -335,10 +334,11 @@ public:
inline bool contains(QRegExp &rx) const { return indexOf(rx) != -1; }
#endif
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
int indexOf(const QRegularExpression &re, int from = 0) const;
int lastIndexOf(const QRegularExpression &re, int from = -1) const;
bool contains(const QRegularExpression &re) const;
+ bool contains(const QRegularExpression &re, QRegularExpressionMatch *match) const; // ### Qt 6: merge overloads
int count(const QRegularExpression &re) const;
#endif
@@ -356,7 +356,7 @@ public:
#ifndef QT_NO_REGEXP
QString section(const QRegExp &reg, int start, int end = -1, SectionFlags flags = SectionDefault) const;
#endif
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
QString section(const QRegularExpression &re, int start, int end = -1, SectionFlags flags = SectionDefault) const;
#endif
QString left(int n) const Q_REQUIRED_RESULT;
@@ -432,7 +432,7 @@ public:
inline QString &remove(const QRegExp &rx)
{ return replace(rx, QString()); }
#endif
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
QString &replace(const QRegularExpression &re, const QString &after);
inline QString &remove(const QRegularExpression &re)
{ return replace(re, QString()); }
@@ -447,7 +447,7 @@ public:
#ifndef QT_NO_REGEXP
QStringList split(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const Q_REQUIRED_RESULT;
#endif
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
QStringList split(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const Q_REQUIRED_RESULT;
#endif
enum NormalizationForm {
@@ -884,6 +884,8 @@ public:
QChar::Decomposition decompositionTag() const { return QChar(*this).decompositionTag(); }
uchar combiningClass() const { return QChar(*this).combiningClass(); }
+ inline QChar::Script script() const { return QChar(*this).script(); }
+
QChar::UnicodeVersion unicodeVersion() const { return QChar(*this).unicodeVersion(); }
inline uchar cell() const { return QChar(*this).cell(); }
@@ -1171,13 +1173,17 @@ class Q_CORE_EXPORT QStringRef {
int m_position;
int m_size;
public:
+ // ### Qt 6: make this constructor constexpr, after the destructor is made trivial
inline QStringRef():m_string(0), m_position(0), m_size(0){}
inline QStringRef(const QString *string, int position, int size);
inline QStringRef(const QString *string);
+
+ // ### Qt 6: remove this copy constructor, the implicit one is fine
inline QStringRef(const QStringRef &other)
:m_string(other.m_string), m_position(other.m_position), m_size(other.m_size)
{}
+ // ### Qt 6: remove this destructor, the implicit one is fine
inline ~QStringRef(){}
inline const QString *string() const { return m_string; }
inline int position() const { return m_position; }
@@ -1271,6 +1277,18 @@ public:
int localeAwareCompare(const QStringRef &s) const;
static int localeAwareCompare(const QStringRef &s1, const QString &s2);
static int localeAwareCompare(const QStringRef &s1, const QStringRef &s2);
+
+ QStringRef trimmed() const Q_REQUIRED_RESULT;
+ short toShort(bool *ok = 0, int base = 10) const;
+ ushort toUShort(bool *ok = 0, int base = 10) const;
+ int toInt(bool *ok = 0, int base = 10) const;
+ uint toUInt(bool *ok = 0, int base = 10) const;
+ long toLong(bool *ok = 0, int base = 10) const;
+ ulong toULong(bool *ok = 0, int base = 10) const;
+ qlonglong toLongLong(bool *ok = 0, int base = 10) const;
+ qulonglong toULongLong(bool *ok = 0, int base = 10) const;
+ float toFloat(bool *ok = 0) const;
+ double toDouble(bool *ok = 0) const;
};
Q_DECLARE_TYPEINFO(QStringRef, Q_PRIMITIVE_TYPE);
@@ -1386,8 +1404,6 @@ QT_DEPRECATED inline QString escape(const QString &plain) {
QT_END_NAMESPACE
-QT_END_HEADER
-
#if defined(QT_USE_FAST_OPERATOR_PLUS) || defined(QT_USE_QSTRINGBUILDER)
#include <QtCore/qstringbuilder.h>
#endif
diff --git a/src/corelib/tools/qstringbuilder.h b/src/corelib/tools/qstringbuilder.h
index 67d5bde2ce..e09b02b5a9 100644
--- a/src/corelib/tools/qstringbuilder.h
+++ b/src/corelib/tools/qstringbuilder.h
@@ -54,8 +54,6 @@
#include <string.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -429,6 +427,4 @@ QString &operator+=(QString &a, const QStringBuilder<A, B> &b)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSTRINGBUILDER_H
diff --git a/src/corelib/tools/qstringlist.cpp b/src/corelib/tools/qstringlist.cpp
index f48db4a643..fa2e12b67b 100644
--- a/src/corelib/tools/qstringlist.cpp
+++ b/src/corelib/tools/qstringlist.cpp
@@ -320,7 +320,7 @@ QStringList QtPrivate::QStringList_filter(const QStringList *that, const QRegExp
#endif
#ifndef QT_BOOTSTRAPPED
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
/*!
\fn QStringList QStringList::filter(const QRegularExpression &re) const
\overload
@@ -338,7 +338,7 @@ QStringList QtPrivate::QStringList_filter(const QStringList *that, const QRegula
}
return res;
}
-#endif // QT_NO_REGEXP
+#endif // QT_NO_REGULAREXPRESSION
#endif // QT_BOOTSTRAPPED
/*!
@@ -395,7 +395,7 @@ void QtPrivate::QStringList_replaceInStrings(QStringList *that, const QRegExp &r
#endif
#ifndef QT_BOOTSTRAPPED
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
/*!
\fn QStringList &QStringList::replaceInStrings(const QRegularExpression &re, const QString &after)
\overload
@@ -424,7 +424,7 @@ void QtPrivate::QStringList_replaceInStrings(QStringList *that, const QRegularEx
for (int i = 0; i < that->size(); ++i)
(*that)[i].replace(re, after);
}
-#endif // QT_NO_REGEXP
+#endif // QT_NO_REGULAREXPRESSION
#endif // QT_BOOTSTRAPPED
/*!
@@ -619,7 +619,7 @@ int QtPrivate::QStringList_lastIndexOf(const QStringList *that, QRegExp &rx, int
#endif
#ifndef QT_BOOTSTRAPPED
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
/*!
\fn int QStringList::indexOf(const QRegularExpression &re, int from) const
\overload
@@ -676,7 +676,7 @@ int QtPrivate::QStringList_lastIndexOf(const QStringList *that, const QRegularEx
}
return -1;
}
-#endif // QT_NO_REGEXP
+#endif // QT_NO_REGULAREXPRESSION
#endif // QT_BOOTSTRAPPED
/*!
diff --git a/src/corelib/tools/qstringlist.h b/src/corelib/tools/qstringlist.h
index 8ae6e3653a..a962b7c528 100644
--- a/src/corelib/tools/qstringlist.h
+++ b/src/corelib/tools/qstringlist.h
@@ -49,8 +49,6 @@
#include <QtCore/qstring.h>
#include <QtCore/qstringmatcher.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -99,12 +97,12 @@ public:
#endif
#ifndef QT_BOOTSTRAPPED
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
inline QStringList filter(const QRegularExpression &re) const;
inline QStringList &replaceInStrings(const QRegularExpression &re, const QString &after);
inline int indexOf(const QRegularExpression &re, int from = 0) const;
inline int lastIndexOf(const QRegularExpression &re, int from = -1) const;
-#endif // QT_NO_REGEXP
+#endif // QT_NO_REGULAREXPRESSION
#endif // QT_BOOTSTRAPPED
#if !defined(Q_NO_USING_KEYWORD)
@@ -141,12 +139,12 @@ namespace QtPrivate {
#endif
#ifndef QT_BOOTSTRAPPED
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
void Q_CORE_EXPORT QStringList_replaceInStrings(QStringList *that, const QRegularExpression &rx, const QString &after);
QStringList Q_CORE_EXPORT QStringList_filter(const QStringList *that, const QRegularExpression &re);
int Q_CORE_EXPORT QStringList_indexOf(const QStringList *that, const QRegularExpression &re, int from);
int Q_CORE_EXPORT QStringList_lastIndexOf(const QStringList *that, const QRegularExpression &re, int from);
-#endif // QT_NO_REGEXP
+#endif // QT_NO_REGULAREXPRESSION
#endif // QT_BOOTSTRAPPED
}
@@ -220,7 +218,7 @@ inline int QStringList::lastIndexOf(QRegExp &rx, int from) const
#endif
#ifndef QT_BOOTSTRAPPED
-#ifndef QT_NO_REGEXP
+#ifndef QT_NO_REGULAREXPRESSION
inline QStringList &QStringList::replaceInStrings(const QRegularExpression &rx, const QString &after)
{
QtPrivate::QStringList_replaceInStrings(this, rx, after);
@@ -241,7 +239,7 @@ inline int QStringList::lastIndexOf(const QRegularExpression &rx, int from) cons
{
return QtPrivate::QStringList_lastIndexOf(this, rx, from);
}
-#endif // QT_NO_REGEXP
+#endif // QT_NO_REGULAREXPRESSION
#endif // QT_BOOTSTRAPPED
#ifndef QT_NO_DATASTREAM
@@ -257,6 +255,4 @@ inline QDataStream &operator<<(QDataStream &out, const QStringList &list)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSTRINGLIST_H
diff --git a/src/corelib/tools/qstringmatcher.h b/src/corelib/tools/qstringmatcher.h
index 1634255f2e..792b97591a 100644
--- a/src/corelib/tools/qstringmatcher.h
+++ b/src/corelib/tools/qstringmatcher.h
@@ -44,8 +44,6 @@
#include <QtCore/qstring.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -97,6 +95,4 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QSTRINGMATCHER_H
diff --git a/src/corelib/tools/qtextboundaryfinder.cpp b/src/corelib/tools/qtextboundaryfinder.cpp
index 9ccfe95b1d..51b4ece4b1 100644
--- a/src/corelib/tools/qtextboundaryfinder.cpp
+++ b/src/corelib/tools/qtextboundaryfinder.cpp
@@ -41,7 +41,6 @@
#include <QtCore/qtextboundaryfinder.h>
#include <QtCore/qvarlengtharray.h>
-#include <private/qunicodetables_p.h>
#include <private/qunicodetools_p.h>
QT_BEGIN_NAMESPACE
@@ -61,15 +60,15 @@ static void init(QTextBoundaryFinder::BoundaryType type, const QChar *chars, int
// correctly assign script, isTab and isObject to the script analysis
const ushort *uc = unicode;
const ushort *e = uc + length;
- int script = QUnicodeTables::Common;
- int lastScript = QUnicodeTables::Common;
+ uchar script = QChar::Script_Common;
+ uchar lastScript = QChar::Script_Common;
const ushort *start = uc;
while (uc < e) {
- int s = QUnicodeTables::script(*uc);
- if (s != QUnicodeTables::Inherited)
+ int s = QChar::script(*uc);
+ if (s != QChar::Script_Inherited)
script = s;
if (*uc == QChar::ObjectReplacementCharacter || *uc == QChar::LineSeparator || *uc == 9)
- script = QUnicodeTables::Common;
+ script = QChar::Script_Common;
if (script != lastScript) {
if (uc != start) {
QUnicodeTools::ScriptItem item;
diff --git a/src/corelib/tools/qtextboundaryfinder.h b/src/corelib/tools/qtextboundaryfinder.h
index e05547359f..81cd0dddf0 100644
--- a/src/corelib/tools/qtextboundaryfinder.h
+++ b/src/corelib/tools/qtextboundaryfinder.h
@@ -45,8 +45,6 @@
#include <QtCore/qchar.h>
#include <QtCore/qstring.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -111,7 +109,5 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QTextBoundaryFinder::BoundaryReasons)
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/tools/qtimeline.h b/src/corelib/tools/qtimeline.h
index 6b5c479cb1..be2a4ae734 100644
--- a/src/corelib/tools/qtimeline.h
+++ b/src/corelib/tools/qtimeline.h
@@ -45,8 +45,6 @@
#include <QtCore/qeasingcurve.h>
#include <QtCore/qobject.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -156,7 +154,5 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif
diff --git a/src/corelib/tools/qunicodetables.cpp b/src/corelib/tools/qunicodetables.cpp
index b9f91cdb74..764a4afa04 100644
--- a/src/corelib/tools/qunicodetables.cpp
+++ b/src/corelib/tools/qunicodetables.cpp
@@ -70,109 +70,41 @@ static const unsigned short uc_property_trie[] = {
10224, 10256, 10288, 10320, 10352, 10384, 10416, 10448,
10480, 10480, 10512, 10544, 10544, 10576, 10608, 10640,
10672, 10704, 10736, 10704, 10768, 10800, 10832, 10864,
- 10896, 10704, 10928, 10960, 10992, 10704, 10704, 11024,
- 11056, 10704, 10704, 10704, 10704, 10704, 10704, 10704,
- 10704, 10704, 10704, 10704, 10704, 10704, 10704, 10704,
- 10704, 10704, 10704, 11088, 11120, 11152, 11152, 11184,
- 11216, 11248, 11280, 11312, 11344, 11376, 11408, 11440,
- 11472, 10704, 11504, 11536, 10704, 11568, 11600, 11632,
- 11664, 11696, 11728, 11760, 11792, 11824, 11856, 11888,
- 11920, 11952, 11984, 12016, 12048, 12080, 9872, 9872,
- 12112, 12144, 12176, 12208, 12240, 12272, 12304, 12336,
- 12368, 12400, 12432, 12464, 9872, 9872, 12496, 12528,
- 12560, 12592, 12624, 12656, 12688, 12720, 12752, 12784,
- 6512, 6512, 6512, 6512, 12816, 6512, 6512, 12848,
- 12880, 12912, 12944, 12976, 13008, 13040, 13072, 13104,
-
- 13136, 13168, 13200, 13232, 13264, 13296, 13328, 13360,
- 13392, 13424, 13456, 13488, 13520, 13552, 13584, 13616,
- 13648, 13680, 13712, 13744, 13776, 13808, 13840, 13872,
- 13904, 13936, 13968, 14000, 14032, 14064, 14096, 14128,
- 14160, 14192, 14224, 14256, 14288, 14320, 14352, 14384,
- 14160, 14160, 14160, 14160, 14416, 14448, 14480, 14512,
- 14544, 14576, 14160, 14608, 14640, 14672, 14704, 14736,
- 14768, 14800, 14832, 14864, 14896, 14928, 14960, 14992,
- 15024, 15024, 15024, 15024, 15024, 15024, 15024, 15024,
- 15056, 15056, 15056, 15056, 15088, 15120, 15152, 15184,
- 15056, 15216, 15056, 15248, 15280, 15312, 15344, 15376,
- 15408, 15440, 15472, 9872, 9872, 9872, 9872, 9872,
- 15504, 15536, 15568, 15600, 15632, 15632, 15632, 15664,
- 15696, 15728, 15760, 15792, 15824, 15856, 15856, 15888,
- 15920, 15952, 9872, 9872, 15984, 16016, 16016, 16048,
- 16016, 16016, 16016, 16016, 16016, 16016, 16080, 16112,
-
- 16144, 16176, 16208, 16240, 16272, 16304, 16336, 16368,
- 16400, 16432, 16464, 16464, 16496, 16528, 16560, 16592,
- 16624, 16656, 16688, 16720, 16656, 16752, 16784, 16816,
- 16848, 16848, 16880, 16912, 16944, 16944, 16976, 17008,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
-
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17040, 17040, 17040,
- 17040, 17040, 17040, 17040, 17040, 17072, 17104, 17104,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
-
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
-
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
-
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
+ 10896, 10704, 10928, 10960, 10992, 11024, 11024, 11056,
+ 11088, 11120, 11120, 11120, 11120, 11120, 11120, 11120,
+ 11120, 11120, 11120, 11120, 11120, 11120, 11120, 11120,
+ 11120, 11120, 11120, 11152, 11184, 11216, 11216, 11248,
+ 11280, 11312, 11344, 11376, 11408, 11440, 11472, 11504,
+ 11536, 11568, 11600, 11632, 11568, 11664, 11696, 11728,
+ 11760, 11792, 11824, 11856, 11888, 11920, 11952, 11984,
+ 12016, 12048, 12080, 12112, 12144, 12176, 9872, 9872,
+ 12208, 12240, 12272, 12304, 12336, 12368, 12400, 12432,
+ 12464, 12496, 12528, 12560, 9872, 9872, 12592, 12624,
+ 12656, 12688, 12720, 12752, 12784, 12816, 12848, 12880,
+ 6512, 6512, 6512, 6512, 12912, 6512, 6512, 12944,
+ 12976, 13008, 13040, 13072, 13104, 13136, 13168, 13200,
+
+ 13232, 13264, 13296, 13328, 13360, 13392, 13424, 13456,
+ 13488, 13520, 13552, 13584, 13616, 13648, 13680, 13712,
+ 13744, 13776, 13808, 13840, 13872, 13904, 13936, 13968,
+ 14000, 14032, 14064, 14096, 14128, 14160, 14192, 14224,
+ 14256, 14288, 14320, 14352, 14384, 14416, 14448, 14480,
+ 14256, 14256, 14256, 14256, 14512, 14544, 14576, 14608,
+ 14640, 14672, 14256, 14704, 14736, 14768, 14800, 14832,
+ 14864, 14896, 14928, 14960, 14992, 15024, 15056, 15088,
+ 15120, 15120, 15120, 15120, 15120, 15120, 15120, 15120,
+ 15152, 15152, 15152, 15152, 15184, 15216, 15248, 15280,
+ 15152, 15312, 15152, 15344, 15376, 15408, 15440, 15472,
+ 15504, 15536, 15568, 9872, 9872, 9872, 9872, 9872,
+ 15600, 15632, 15664, 15696, 15728, 15728, 15728, 15760,
+ 15792, 15824, 15856, 15888, 15920, 15952, 15952, 15984,
+ 16016, 16048, 9872, 9872, 16080, 16112, 16112, 16144,
+ 16112, 16112, 16112, 16112, 16112, 16112, 16176, 16208,
+
+ 16240, 16272, 16304, 16336, 16368, 16400, 16432, 16464,
+ 16496, 16528, 16560, 16560, 16592, 16624, 16656, 16688,
+ 16720, 16752, 16784, 16816, 16752, 16848, 16880, 16912,
+ 16944, 16944, 16976, 17008, 17040, 17040, 17072, 17104,
17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
@@ -199,674 +131,742 @@ static const unsigned short uc_property_trie[] = {
17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
-
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 17136, 17136, 17136, 17136, 17168, 17200, 17232,
-
- 17264, 17296, 17296, 17296, 17296, 17296, 17296, 17296,
- 17296, 17296, 17296, 17296, 17296, 17296, 17296, 17296,
- 17296, 17296, 17296, 17296, 17296, 17296, 17296, 17296,
- 17296, 17296, 17296, 17296, 17296, 17296, 17296, 17296,
- 17296, 17296, 17296, 17296, 17328, 17360, 17392, 17424,
- 12368, 12368, 12368, 12368, 12368, 12368, 12368, 12368,
- 17456, 17488, 17520, 17552, 17584, 11600, 11600, 17616,
- 17648, 17680, 17712, 17744, 17776, 17808, 9872, 17840,
- 17872, 17904, 17936, 17968, 18000, 18032, 18064, 18096,
- 18128, 18160, 18192, 18224, 18256, 18288, 18320, 9872,
- 12368, 18352, 18384, 18416, 11952, 18448, 18480, 18512,
- 18544, 18576, 9872, 9872, 9872, 9872, 11600, 18608,
- 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18640,
- 18672, 18704, 18736, 18768, 18800, 18832, 18640, 18672,
- 18704, 18736, 18768, 18800, 18832, 18640, 18672, 18704,
- 18736, 18768, 18800, 18832, 18640, 18672, 18704, 18736,
-
- 18768, 18800, 18832, 18640, 18672, 18704, 18736, 18768,
- 18800, 18832, 18640, 18672, 18704, 18736, 18768, 18800,
- 18832, 18640, 18672, 18704, 18736, 18768, 18800, 18832,
- 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18640,
- 18672, 18704, 18736, 18768, 18800, 18832, 18640, 18672,
- 18704, 18736, 18768, 18800, 18832, 18640, 18672, 18704,
- 18736, 18768, 18800, 18832, 18640, 18672, 18704, 18736,
- 18768, 18800, 18832, 18640, 18672, 18704, 18736, 18768,
- 18800, 18832, 18640, 18672, 18704, 18736, 18768, 18800,
- 18832, 18640, 18672, 18704, 18736, 18768, 18800, 18832,
- 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18640,
- 18672, 18704, 18736, 18768, 18800, 18832, 18640, 18672,
- 18704, 18736, 18768, 18800, 18832, 18640, 18672, 18704,
- 18736, 18768, 18800, 18832, 18640, 18672, 18704, 18736,
- 18768, 18800, 18832, 18640, 18672, 18704, 18736, 18768,
- 18800, 18832, 18640, 18672, 18704, 18736, 18768, 18800,
-
- 18832, 18640, 18672, 18704, 18736, 18768, 18800, 18832,
- 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18640,
- 18672, 18704, 18736, 18768, 18800, 18832, 18640, 18672,
- 18704, 18736, 18768, 18800, 18832, 18640, 18672, 18704,
- 18736, 18768, 18800, 18832, 18640, 18672, 18704, 18736,
- 18768, 18800, 18832, 18640, 18672, 18704, 18736, 18768,
- 18800, 18832, 18640, 18672, 18704, 18736, 18768, 18800,
- 18832, 18640, 18672, 18704, 18736, 18768, 18800, 18832,
- 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18640,
- 18672, 18704, 18736, 18768, 18800, 18832, 18640, 18672,
- 18704, 18736, 18768, 18800, 18832, 18640, 18672, 18704,
- 18736, 18768, 18800, 18832, 18640, 18672, 18704, 18736,
- 18768, 18800, 18832, 18640, 18672, 18704, 18736, 18768,
- 18800, 18832, 18640, 18672, 18704, 18736, 18768, 18800,
- 18832, 18640, 18672, 18704, 18736, 18768, 18800, 18832,
- 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18640,
-
- 18672, 18704, 18736, 18768, 18800, 18832, 18640, 18672,
- 18704, 18736, 18768, 18800, 18832, 18640, 18672, 18704,
- 18736, 18768, 18800, 18832, 18640, 18672, 18704, 18736,
- 18768, 18800, 18832, 18640, 18672, 18704, 18736, 18768,
- 18800, 18832, 18640, 18672, 18704, 18736, 18768, 18800,
- 18832, 18640, 18672, 18704, 18736, 18768, 18800, 18832,
- 18640, 18672, 18704, 18736, 18768, 18800, 18832, 18640,
- 18672, 18704, 18736, 18768, 18800, 18864, 18896, 18928,
- 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960,
- 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960,
- 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960,
- 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960,
- 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960,
- 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960,
- 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960,
- 18960, 18960, 18960, 18960, 18960, 18960, 18960, 18960,
-
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
-
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 18992, 18992, 18992, 18992, 18992, 18992, 18992, 18992,
- 17136, 17136, 17136, 17136, 17136, 17136, 17136, 17136,
- 17136, 19024, 19056, 19088, 19120, 19120, 19152, 17232,
- 19184, 19216, 19248, 19280, 19280, 19312, 19344, 19280,
- 19280, 19280, 19280, 19280, 19280, 19280, 19280, 19280,
- 19280, 19376, 19408, 19280, 19440, 19280, 19472, 19504,
- 19536, 19568, 19600, 19632, 19280, 19280, 19280, 19664,
- 19696, 19728, 19760, 19792, 19824, 19856, 19888, 19920,
-
- 19952, 19984, 20016, 9872, 20048, 20048, 20048, 20080,
- 20112, 20144, 20176, 20208, 20240, 9872, 20272, 20304,
- 9872, 9872, 9872, 9872, 20336, 12368, 20368, 9872,
- 20400, 20432, 20464, 9872, 20496, 15760, 20528, 9872,
- 20560, 20592, 20624, 20048, 20656, 20688, 9872, 9872,
+ 17136, 17136, 17136, 17136, 17136, 17168, 17200, 17200,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 17232, 17232, 17232, 17232, 17264, 17296, 17328,
+
+ 17360, 17392, 17392, 17392, 17392, 17392, 17392, 17392,
+ 17392, 17392, 17392, 17392, 17392, 17392, 17392, 17392,
+ 17392, 17392, 17392, 17392, 17392, 17392, 17392, 17392,
+ 17392, 17392, 17392, 17392, 17392, 17392, 17392, 17392,
+ 17392, 17392, 17392, 17392, 17424, 17456, 17488, 17520,
+ 17552, 17552, 17552, 17552, 17552, 17552, 17552, 17552,
+ 17584, 17616, 17648, 17680, 17712, 17744, 17744, 17776,
+ 17808, 17840, 17872, 17904, 17936, 17968, 9872, 18000,
+ 18032, 18064, 18096, 18128, 18160, 18192, 18224, 18256,
+ 18288, 18320, 18352, 18384, 18416, 18448, 18480, 9872,
+ 18512, 18544, 18576, 18608, 18640, 18672, 18704, 18736,
+ 18768, 18800, 9872, 9872, 9872, 9872, 18832, 18864,
+ 18896, 18928, 18960, 18992, 19024, 19056, 19088, 18896,
+ 18928, 18960, 18992, 19024, 19056, 19088, 18896, 18928,
+ 18960, 18992, 19024, 19056, 19088, 18896, 18928, 18960,
+ 18992, 19024, 19056, 19088, 18896, 18928, 18960, 18992,
+
+ 19024, 19056, 19088, 18896, 18928, 18960, 18992, 19024,
+ 19056, 19088, 18896, 18928, 18960, 18992, 19024, 19056,
+ 19088, 18896, 18928, 18960, 18992, 19024, 19056, 19088,
+ 18896, 18928, 18960, 18992, 19024, 19056, 19088, 18896,
+ 18928, 18960, 18992, 19024, 19056, 19088, 18896, 18928,
+ 18960, 18992, 19024, 19056, 19088, 18896, 18928, 18960,
+ 18992, 19024, 19056, 19088, 18896, 18928, 18960, 18992,
+ 19024, 19056, 19088, 18896, 18928, 18960, 18992, 19024,
+ 19056, 19088, 18896, 18928, 18960, 18992, 19024, 19056,
+ 19088, 18896, 18928, 18960, 18992, 19024, 19056, 19088,
+ 18896, 18928, 18960, 18992, 19024, 19056, 19088, 18896,
+ 18928, 18960, 18992, 19024, 19056, 19088, 18896, 18928,
+ 18960, 18992, 19024, 19056, 19088, 18896, 18928, 18960,
+ 18992, 19024, 19056, 19088, 18896, 18928, 18960, 18992,
+ 19024, 19056, 19088, 18896, 18928, 18960, 18992, 19024,
+ 19056, 19088, 18896, 18928, 18960, 18992, 19024, 19056,
+
+ 19088, 18896, 18928, 18960, 18992, 19024, 19056, 19088,
+ 18896, 18928, 18960, 18992, 19024, 19056, 19088, 18896,
+ 18928, 18960, 18992, 19024, 19056, 19088, 18896, 18928,
+ 18960, 18992, 19024, 19056, 19088, 18896, 18928, 18960,
+ 18992, 19024, 19056, 19088, 18896, 18928, 18960, 18992,
+ 19024, 19056, 19088, 18896, 18928, 18960, 18992, 19024,
+ 19056, 19088, 18896, 18928, 18960, 18992, 19024, 19056,
+ 19088, 18896, 18928, 18960, 18992, 19024, 19056, 19088,
+ 18896, 18928, 18960, 18992, 19024, 19056, 19088, 18896,
+ 18928, 18960, 18992, 19024, 19056, 19088, 18896, 18928,
+ 18960, 18992, 19024, 19056, 19088, 18896, 18928, 18960,
+ 18992, 19024, 19056, 19088, 18896, 18928, 18960, 18992,
+ 19024, 19056, 19088, 18896, 18928, 18960, 18992, 19024,
+ 19056, 19088, 18896, 18928, 18960, 18992, 19024, 19056,
+ 19088, 18896, 18928, 18960, 18992, 19024, 19056, 19088,
+ 18896, 18928, 18960, 18992, 19024, 19056, 19088, 18896,
+
+ 18928, 18960, 18992, 19024, 19056, 19088, 18896, 18928,
+ 18960, 18992, 19024, 19056, 19088, 18896, 18928, 18960,
+ 18992, 19024, 19056, 19088, 18896, 18928, 18960, 18992,
+ 19024, 19056, 19088, 18896, 18928, 18960, 18992, 19024,
+ 19056, 19088, 18896, 18928, 18960, 18992, 19024, 19056,
+ 19088, 18896, 18928, 18960, 18992, 19024, 19056, 19088,
+ 18896, 18928, 18960, 18992, 19024, 19056, 19088, 18896,
+ 18928, 18960, 18992, 19024, 19056, 19120, 19152, 19184,
+ 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216,
+ 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216,
+ 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216,
+ 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216,
+ 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216,
+ 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216,
+ 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216,
+ 19216, 19216, 19216, 19216, 19216, 19216, 19216, 19216,
+
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 19248, 19248, 19248, 19248, 19248, 19248, 19248, 19248,
+ 17232, 17232, 17232, 17232, 17232, 17232, 17232, 17232,
+ 17232, 19280, 19312, 19344, 19376, 19376, 19408, 17328,
+ 19440, 19472, 19504, 19536, 19536, 19568, 19600, 19536,
+ 19536, 19536, 19536, 19536, 19536, 19536, 19536, 19536,
+ 19536, 19632, 19664, 19536, 19696, 19536, 19728, 19760,
+ 19792, 19824, 19856, 19888, 19536, 19536, 19536, 19920,
+ 19952, 19984, 20016, 20048, 20080, 20112, 20144, 20176,
+
+ 20208, 20240, 20272, 9872, 20304, 20304, 20304, 20336,
+ 20368, 20400, 20432, 20464, 20496, 9872, 20528, 20560,
+ 9872, 9872, 9872, 9872, 20592, 20624, 20656, 9872,
+ 20688, 20720, 20752, 9872, 20784, 20816, 20848, 9872,
+ 20880, 20912, 20944, 20976, 21008, 21040, 9872, 9872,
9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872,
9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872,
9872, 9872, 9872, 9872, 9872, 9872, 9872, 9872,
- 20720, 20752, 20784, 8368, 8368, 8368, 8368, 8368,
- 20816, 20848, 8368, 8368, 20880, 20912, 8368, 8368,
- 20944, 20976, 21008, 21040, 8368, 8368, 8368, 8368,
- 21072, 21104, 21136, 21168, 8368, 8368, 8368, 8368,
- 21072, 21072, 21200, 8368, 8368, 8368, 8368, 8368,
+ 21072, 21104, 21136, 8368, 8368, 8368, 8368, 8368,
+ 21168, 21200, 8368, 8368, 21232, 21264, 8368, 8368,
+ 21296, 21328, 21360, 21392, 8368, 8368, 8368, 8368,
+ 21424, 21456, 21488, 21520, 8368, 8368, 8368, 8368,
+ 21552, 21552, 21584, 8368, 8368, 8368, 8368, 8368,
8368, 8368, 8368, 8368, 8368, 8368, 8368, 8368,
- 8368, 8368, 8368, 21232, 8368, 8368, 8368, 8368,
+ 8368, 8368, 8368, 21616, 8368, 8368, 8368, 8368,
8368, 8368, 8368, 8368, 8368, 8368, 8368, 8368,
// 0x11000 - 0x110000
- 21264, 21520, 21776, 21776, 21776, 21776, 22032, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 22288, 22288, 22288, 22544, 22800, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 23056, 23056, 23312, 23568, 23824, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 24080, 24080, 24336, 21776, 21776, 21776, 21776, 24592,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
-
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 24848, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 25104, 25360, 25616, 25872, 26128, 26384, 26640, 26896,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 27152, 27152, 27152, 27152, 27152, 27152, 27408, 27152,
- 27664, 27920, 28176, 28432, 28688, 28944, 29200, 29456,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
-
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 29968, 29968,
- 29968, 29968, 29968, 29968, 29968, 29968, 30224, 30480,
- 30480, 30480, 30480, 30480, 30480, 30480, 30480, 30480,
- 30480, 30480, 30480, 30480, 30480, 30480, 30480, 30736,
- 30992, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 29968, 29968, 31504, 31248, 31248, 31248, 31248, 31760,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
-
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31248,
- 31248, 31248, 31248, 31248, 31248, 31248, 31248, 31760,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
-
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
-
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
-
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
-
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
-
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
-
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
-
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
-
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
-
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
-
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712,
- 32016, 32272, 32528, 32528, 32528, 32528, 32528, 32528,
- 32528, 32528, 32528, 32528, 32528, 32528, 32528, 32528,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
-
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 21776,
- 21776, 21776, 21776, 21776, 21776, 21776, 21776, 29712,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
-
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 33040,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
-
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 32784,
- 32784, 32784, 32784, 32784, 32784, 32784, 32784, 33040,
+ 21648, 21904, 22160, 22160, 22160, 22160, 22416, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22672, 22672, 22672, 22928, 23184, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 23440, 23440, 23696, 23952, 24208, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 24464, 24464, 24720, 22160, 22160, 22160, 22160, 24976,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 25232, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 25488, 25744, 26000, 26256, 26512, 26768, 27024, 27280,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 27536, 27536, 27536, 27536, 27536, 27536, 27792, 27536,
+ 28048, 28304, 28560, 28816, 29072, 29328, 29584, 29840,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30352, 30352,
+ 30352, 30352, 30352, 30352, 30352, 30352, 30608, 30864,
+ 30864, 30864, 30864, 30864, 30864, 30864, 30864, 30864,
+ 30864, 30864, 30864, 30864, 30864, 30864, 30864, 31120,
+ 31376, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 30352, 30352, 31888, 31632, 31632, 31632, 31632, 32144,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 31632,
+ 31632, 31632, 31632, 31632, 31632, 31632, 31632, 32144,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096,
+ 32400, 32656, 32912, 32912, 32912, 32912, 32912, 32912,
+ 32912, 32912, 32912, 32912, 32912, 32912, 32912, 32912,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 22160,
+ 22160, 22160, 22160, 22160, 22160, 22160, 22160, 30096,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33424,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33168,
+ 33168, 33168, 33168, 33168, 33168, 33168, 33168, 33424,
0, 0, 0, 0, 0, 0, 0, 0,
@@ -979,575 +979,555 @@ static const unsigned short uc_property_trie[] = {
142, 142, 142, 142, 142, 142, 142, 142,
142, 143, 143, 144, 144, 144, 144, 144,
- 142, 142, 42, 42, 42, 42, 143, 143,
- 145, 143, 143, 143, 145, 143, 143, 143,
+ 145, 145, 42, 42, 42, 42, 143, 143,
+ 146, 143, 143, 143, 146, 143, 143, 143,
144, 144, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 146,
+ 42, 42, 42, 42, 42, 42, 42, 147,
142, 142, 142, 142, 142, 42, 42, 42,
- 42, 42, 147, 147, 148, 147, 149, 150,
- 150, 150, 150, 150, 150, 150, 150, 150,
- 150, 150, 150, 150, 150, 150, 150, 150,
-
- 151, 151, 151, 151, 151, 151, 151, 151,
- 151, 151, 151, 151, 151, 151, 151, 151,
- 151, 151, 151, 151, 151, 152, 153, 153,
- 153, 153, 152, 154, 153, 153, 153, 153,
-
- 153, 155, 155, 153, 153, 153, 153, 155,
- 155, 153, 153, 153, 153, 153, 153, 153,
- 153, 153, 153, 153, 156, 156, 156, 156,
- 156, 153, 153, 153, 153, 151, 151, 151,
-
- 151, 151, 151, 151, 151, 157, 158, 159,
- 159, 159, 158, 158, 158, 159, 159, 160,
- 161, 161, 161, 162, 162, 162, 162, 161,
- 163, 164, 164, 165, 166, 167, 167, 168,
-
- 169, 169, 170, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171,
- 172, 173, 172, 173, 143, 174, 172, 173,
- 175, 175, 176, 177, 177, 177, 34, 175,
-
- 175, 175, 175, 175, 174, 42, 178, 61,
- 179, 179, 179, 175, 180, 175, 181, 181,
- 182, 183, 183, 183, 183, 183, 183, 183,
- 183, 183, 183, 183, 183, 183, 183, 183,
-
- 183, 183, 175, 183, 183, 183, 183, 183,
- 183, 183, 183, 183, 184, 185, 185, 185,
- 186, 187, 187, 187, 187, 187, 187, 187,
- 187, 187, 187, 187, 187, 187, 187, 187,
-
- 187, 187, 188, 187, 187, 187, 187, 187,
- 187, 187, 187, 187, 189, 190, 190, 191,
- 192, 193, 194, 194, 194, 195, 196, 197,
- 198, 199, 200, 201, 200, 201, 200, 201,
-
- 200, 201, 67, 68, 67, 68, 67, 68,
- 67, 68, 67, 68, 67, 68, 67, 68,
- 202, 203, 204, 205, 206, 207, 208, 209,
- 210, 211, 209, 210, 212, 213, 213, 213,
+ 42, 42, 148, 148, 149, 150, 151, 152,
+ 152, 152, 152, 152, 152, 152, 152, 152,
+ 152, 152, 152, 152, 152, 152, 152, 152,
+
+ 153, 153, 153, 153, 153, 153, 153, 153,
+ 153, 153, 153, 153, 153, 153, 153, 153,
+ 153, 153, 153, 153, 153, 154, 155, 155,
+ 155, 155, 154, 156, 155, 155, 155, 155,
+
+ 155, 157, 157, 155, 155, 155, 155, 157,
+ 157, 155, 155, 155, 155, 155, 155, 155,
+ 155, 155, 155, 155, 158, 158, 158, 158,
+ 158, 155, 155, 155, 155, 153, 153, 153,
+
+ 153, 153, 153, 153, 153, 159, 160, 161,
+ 161, 161, 160, 160, 160, 161, 161, 162,
+ 163, 163, 163, 164, 164, 164, 164, 163,
+ 165, 166, 166, 167, 168, 169, 169, 170,
+
+ 171, 171, 172, 173, 173, 173, 173, 173,
+ 173, 173, 173, 173, 173, 173, 173, 173,
+ 174, 175, 174, 175, 143, 176, 174, 175,
+ 177, 177, 178, 179, 179, 179, 34, 177,
+
+ 177, 177, 177, 177, 176, 42, 180, 61,
+ 181, 181, 181, 177, 182, 177, 183, 183,
+ 184, 185, 185, 185, 185, 185, 185, 185,
+ 185, 185, 185, 185, 185, 185, 185, 185,
+
+ 185, 185, 177, 185, 185, 185, 185, 185,
+ 185, 185, 185, 185, 186, 187, 187, 187,
+ 188, 189, 189, 189, 189, 189, 189, 189,
+ 189, 189, 189, 189, 189, 189, 189, 189,
+
+ 189, 189, 190, 189, 189, 189, 189, 189,
+ 189, 189, 189, 189, 191, 192, 192, 193,
+ 194, 195, 196, 196, 196, 197, 198, 199,
+ 200, 201, 202, 203, 202, 203, 202, 203,
+
+ 202, 203, 204, 205, 204, 205, 204, 205,
+ 204, 205, 204, 205, 204, 205, 204, 205,
+ 206, 207, 208, 209, 210, 211, 212, 213,
+ 214, 215, 213, 214, 216, 217, 217, 217,
- 214, 215, 215, 215, 215, 215, 215, 215,
- 215, 215, 215, 215, 215, 214, 215, 215,
- 216, 216, 216, 216, 216, 216, 216, 216,
- 216, 216, 216, 216, 216, 216, 216, 216,
-
- 216, 216, 216, 216, 216, 216, 216, 216,
- 216, 216, 216, 216, 216, 216, 216, 216,
- 217, 217, 217, 217, 217, 217, 217, 217,
- 217, 217, 217, 217, 217, 217, 217, 217,
-
- 217, 217, 217, 217, 217, 217, 217, 217,
- 217, 217, 217, 217, 217, 217, 217, 217,
218, 219, 219, 219, 219, 219, 219, 219,
219, 219, 219, 219, 219, 218, 219, 219,
+ 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220,
+
+ 220, 220, 220, 220, 220, 220, 220, 220,
+ 220, 220, 220, 220, 220, 220, 220, 220,
+ 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221,
+
+ 221, 221, 221, 221, 221, 221, 221, 221,
+ 221, 221, 221, 221, 221, 221, 221, 221,
+ 222, 223, 223, 223, 223, 223, 223, 223,
+ 223, 223, 223, 223, 223, 222, 223, 223,
+
+ 224, 225, 224, 225, 224, 225, 224, 225,
+ 224, 225, 224, 225, 224, 225, 224, 225,
+ 224, 225, 224, 225, 224, 225, 224, 225,
+ 224, 225, 224, 225, 224, 225, 224, 225,
+
+ 224, 225, 226, 227, 227, 153, 153, 228,
+ 229, 229, 230, 231, 232, 233, 232, 233,
+ 224, 225, 224, 225, 224, 225, 224, 225,
+ 224, 225, 224, 225, 224, 225, 224, 225,
+
+ 234, 224, 225, 224, 225, 230, 231, 224,
+ 225, 230, 231, 224, 225, 230, 231, 235,
+ 224, 225, 224, 225, 224, 225, 224, 225,
+ 224, 225, 224, 225, 224, 225, 224, 225,
+
+ 224, 225, 224, 225, 224, 225, 224, 225,
+ 224, 225, 224, 225, 232, 233, 224, 225,
+ 224, 225, 224, 225, 224, 225, 236, 237,
+ 224, 225, 238, 239, 238, 239, 238, 239,
+
+ 230, 231, 230, 231, 230, 231, 230, 231,
+ 230, 231, 230, 231, 230, 231, 230, 231,
+ 238, 239, 238, 239, 240, 241, 240, 241,
+ 240, 241, 240, 241, 240, 241, 240, 241,
+
+ 240, 241, 240, 241, 242, 243, 244, 245,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 246, 246, 246, 246, 246, 246, 246,
+ 246, 246, 246, 246, 246, 246, 246, 246,
+
+ 246, 246, 246, 246, 246, 246, 246, 246,
+ 246, 246, 246, 246, 246, 246, 246, 246,
+ 246, 246, 246, 246, 246, 246, 246, 177,
+ 177, 247, 248, 248, 249, 250, 249, 248,
+
+ 177, 251, 251, 251, 251, 251, 251, 251,
+ 251, 251, 251, 251, 251, 251, 251, 251,
+ 251, 251, 251, 251, 251, 251, 251, 251,
+ 251, 251, 251, 251, 251, 251, 251, 251,
+
+ 251, 251, 251, 251, 251, 251, 251, 252,
+ 177, 253, 254, 177, 177, 177, 177, 255,
+ 256, 257, 258, 258, 258, 258, 257, 258,
+ 258, 258, 259, 257, 258, 258, 258, 258,
+
+ 258, 258, 260, 257, 257, 257, 257, 257,
+ 258, 258, 257, 258, 258, 259, 261, 258,
+ 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277,
+
+ 278, 279, 280, 278, 258, 260, 281, 282,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 283, 283, 283, 283, 283, 283, 283, 283,
+ 283, 283, 283, 283, 283, 283, 283, 283,
+
+ 283, 283, 283, 283, 283, 283, 283, 283,
+ 283, 283, 283, 256, 256, 256, 256, 256,
+ 283, 283, 283, 284, 285, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+
+ 286, 286, 286, 286, 287, 288, 289, 289,
+ 290, 291, 291, 292, 19, 293, 294, 294,
+ 295, 295, 295, 295, 295, 295, 296, 296,
+ 297, 298, 299, 300, 288, 288, 301, 302,
+
+ 303, 304, 305, 305, 305, 305, 306, 305,
+ 306, 305, 306, 306, 306, 306, 306, 305,
+ 305, 305, 305, 306, 306, 306, 306, 306,
+ 306, 306, 306, 307, 307, 307, 307, 307,
+
+ 308, 306, 306, 306, 306, 306, 306, 306,
+ 305, 306, 306, 309, 310, 311, 312, 313,
+ 314, 315, 316, 160, 160, 161, 317, 295,
+ 295, 318, 318, 318, 319, 318, 318, 320,
+
+ 321, 322, 323, 324, 325, 326, 327, 328,
+ 329, 330, 331, 332, 333, 334, 335, 335,
+ 336, 305, 305, 305, 304, 305, 305, 305,
+ 306, 306, 306, 306, 306, 306, 306, 306,
+
+ 306, 306, 306, 306, 306, 306, 306, 306,
+ 305, 305, 305, 305, 305, 305, 305, 305,
+ 305, 305, 305, 305, 305, 305, 305, 305,
+ 305, 305, 306, 306, 306, 306, 306, 306,
+
+ 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 306, 306, 306,
+ 337, 337, 306, 306, 306, 306, 306, 337,
+
+ 305, 306, 306, 305, 305, 305, 305, 305,
+ 305, 305, 305, 305, 306, 305, 306, 338,
+ 306, 306, 305, 305, 339, 305, 340, 340,
+ 340, 340, 340, 340, 340, 341, 342, 340,
+
+ 340, 340, 340, 343, 340, 344, 344, 340,
+ 340, 342, 343, 340, 340, 343, 345, 345,
+ 346, 347, 348, 349, 350, 351, 352, 353,
+ 354, 355, 337, 337, 337, 356, 356, 357,
+
+ 358, 358, 358, 359, 359, 359, 359, 359,
+ 359, 359, 359, 359, 359, 359, 288, 360,
+ 361, 362, 363, 363, 363, 361, 361, 361,
+ 361, 361, 363, 363, 363, 363, 361, 363,
+
+ 363, 363, 363, 363, 363, 363, 363, 363,
+ 361, 363, 361, 363, 361, 364, 364, 365,
+ 366, 367, 366, 366, 367, 366, 366, 367,
+ 367, 367, 366, 367, 367, 366, 367, 366,
+
+ 366, 366, 367, 366, 367, 366, 367, 366,
+ 367, 366, 366, 288, 288, 365, 364, 364,
+ 368, 368, 368, 368, 368, 368, 368, 368,
+ 368, 369, 369, 369, 368, 368, 368, 368,
- 220, 221, 220, 221, 220, 221, 220, 221,
- 220, 221, 220, 221, 220, 221, 220, 221,
- 220, 221, 220, 221, 220, 221, 220, 221,
- 220, 221, 220, 221, 220, 221, 220, 221,
-
- 220, 221, 222, 223, 223, 151, 151, 224,
- 225, 225, 226, 227, 228, 229, 228, 229,
- 220, 221, 220, 221, 220, 221, 220, 221,
- 220, 221, 220, 221, 220, 221, 220, 221,
-
- 230, 220, 221, 220, 221, 226, 227, 220,
- 221, 226, 227, 220, 221, 226, 227, 231,
- 220, 221, 220, 221, 220, 221, 220, 221,
- 220, 221, 220, 221, 220, 221, 220, 221,
-
- 220, 221, 220, 221, 220, 221, 220, 221,
- 220, 221, 220, 221, 228, 229, 220, 221,
- 220, 221, 220, 221, 220, 221, 232, 233,
- 220, 221, 234, 235, 234, 235, 234, 235,
-
- 226, 227, 226, 227, 226, 227, 226, 227,
- 226, 227, 226, 227, 226, 227, 226, 227,
- 234, 235, 234, 235, 236, 237, 236, 237,
- 236, 237, 236, 237, 236, 237, 236, 237,
-
- 236, 237, 236, 237, 238, 239, 240, 241,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242,
-
- 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 175,
- 175, 243, 244, 244, 245, 246, 245, 244,
-
- 175, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247,
- 247, 247, 247, 247, 247, 247, 247, 247,
-
- 247, 247, 247, 247, 247, 247, 247, 248,
- 175, 249, 250, 175, 175, 175, 175, 251,
- 252, 253, 254, 254, 254, 254, 253, 254,
- 254, 254, 255, 253, 254, 254, 254, 254,
-
- 254, 254, 256, 253, 253, 253, 253, 253,
- 254, 254, 253, 254, 254, 255, 257, 254,
- 258, 259, 260, 261, 262, 263, 264, 265,
- 266, 267, 268, 269, 270, 271, 272, 273,
-
- 274, 275, 276, 274, 254, 256, 277, 278,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279,
-
- 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 252, 252, 252, 252, 252,
- 279, 279, 279, 280, 281, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
-
- 282, 282, 282, 282, 283, 284, 285, 285,
- 286, 287, 287, 288, 19, 289, 290, 290,
- 291, 291, 291, 291, 291, 291, 292, 292,
- 293, 294, 295, 296, 284, 284, 297, 298,
-
- 299, 300, 301, 301, 301, 301, 302, 301,
- 302, 301, 302, 302, 302, 302, 302, 301,
- 301, 301, 301, 302, 302, 302, 302, 302,
- 302, 302, 302, 303, 303, 303, 303, 303,
-
- 304, 302, 302, 302, 302, 302, 302, 302,
- 301, 302, 302, 305, 306, 307, 308, 309,
- 310, 311, 312, 158, 158, 159, 313, 291,
- 291, 314, 314, 314, 315, 314, 314, 316,
-
- 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 331,
- 332, 301, 301, 301, 300, 301, 301, 301,
- 302, 302, 302, 302, 302, 302, 302, 302,
-
- 302, 302, 302, 302, 302, 302, 302, 302,
- 301, 301, 301, 301, 301, 301, 301, 301,
- 301, 301, 301, 301, 301, 301, 301, 301,
- 301, 301, 302, 302, 302, 302, 302, 302,
-
- 302, 302, 302, 302, 302, 302, 302, 302,
- 302, 302, 302, 302, 302, 302, 302, 302,
- 302, 302, 302, 302, 302, 302, 302, 302,
- 333, 333, 302, 302, 302, 302, 302, 333,
-
- 301, 302, 302, 301, 301, 301, 301, 301,
- 301, 301, 301, 301, 302, 301, 302, 334,
- 302, 302, 301, 301, 335, 301, 336, 336,
- 336, 336, 336, 336, 336, 337, 338, 336,
-
- 336, 336, 336, 339, 336, 340, 340, 336,
- 336, 338, 339, 336, 336, 339, 341, 341,
- 342, 343, 344, 345, 346, 347, 348, 349,
- 350, 351, 333, 333, 333, 352, 352, 353,
-
- 354, 354, 354, 355, 355, 355, 355, 355,
- 355, 355, 355, 355, 355, 355, 284, 356,
- 357, 358, 359, 359, 359, 357, 357, 357,
- 357, 357, 359, 359, 359, 359, 357, 359,
-
- 359, 359, 359, 359, 359, 359, 359, 359,
- 357, 359, 357, 359, 357, 360, 360, 361,
- 362, 363, 362, 362, 363, 362, 362, 363,
- 363, 363, 362, 363, 363, 362, 363, 362,
-
- 362, 362, 363, 362, 363, 362, 363, 362,
- 363, 362, 362, 284, 284, 361, 360, 360,
- 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 365, 365, 365, 364, 364, 364, 364,
-
- 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 365, 365, 364, 303, 303,
- 303, 366, 303, 366, 366, 303, 303, 303,
- 366, 366, 303, 303, 303, 303, 303, 303,
-
- 367, 367, 367, 367, 367, 367, 367, 367,
- 367, 367, 367, 367, 367, 367, 367, 367,
- 367, 367, 367, 367, 367, 367, 367, 367,
- 367, 367, 367, 367, 367, 367, 367, 367,
-
- 367, 367, 367, 367, 367, 367, 368, 368,
368, 368, 368, 368, 368, 368, 368, 368,
- 368, 369, 284, 284, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
-
- 370, 371, 372, 373, 374, 375, 376, 377,
- 378, 379, 380, 380, 380, 380, 380, 380,
- 380, 380, 380, 380, 380, 380, 380, 380,
- 380, 380, 380, 380, 380, 380, 380, 380,
-
- 380, 380, 380, 380, 380, 380, 380, 380,
- 380, 380, 380, 381, 381, 381, 381, 381,
- 381, 381, 382, 381, 383, 383, 384, 385,
- 386, 387, 388, 252, 252, 252, 252, 252,
-
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 390, 390,
- 390, 390, 391, 390, 390, 390, 390, 390,
-
- 390, 390, 390, 390, 391, 390, 390, 390,
- 391, 390, 390, 390, 390, 390, 252, 252,
- 392, 392, 392, 392, 392, 392, 392, 392,
- 392, 392, 392, 392, 392, 392, 392, 252,
-
- 393, 394, 394, 394, 394, 394, 393, 394,
- 394, 393, 394, 394, 394, 394, 394, 393,
- 394, 394, 394, 394, 393, 394, 395, 395,
- 395, 396, 396, 396, 252, 252, 397, 252,
-
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
-
- 398, 284, 398, 398, 398, 398, 398, 398,
- 398, 398, 399, 399, 399, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
-
- 284, 284, 284, 284, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
-
- 284, 284, 284, 284, 400, 400, 401, 400,
- 400, 401, 400, 400, 400, 401, 401, 401,
- 402, 403, 404, 400, 400, 400, 401, 400,
- 400, 401, 401, 400, 400, 400, 400, 284,
-
- 405, 406, 406, 407, 408, 409, 409, 409,
- 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 409, 409, 409, 409, 409,
-
- 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 410, 411, 412, 409, 407, 407,
-
- 407, 406, 406, 406, 406, 406, 406, 406,
- 406, 407, 407, 407, 407, 413, 414, 411,
- 409, 151, 153, 415, 415, 405, 410, 410,
- 409, 409, 409, 409, 409, 409, 409, 409,
-
- 409, 409, 406, 406, 416, 416, 417, 418,
- 419, 420, 421, 422, 423, 424, 425, 426,
- 427, 428, 429, 430, 430, 430, 430, 430,
- 175, 431, 431, 432, 432, 433, 432, 432,
-
- 175, 434, 435, 435, 175, 436, 436, 436,
- 436, 436, 436, 436, 436, 175, 175, 436,
- 436, 175, 175, 436, 436, 436, 436, 436,
- 436, 436, 436, 436, 436, 436, 436, 436,
-
- 436, 436, 436, 436, 436, 436, 436, 436,
- 436, 175, 436, 436, 436, 436, 436, 436,
- 436, 175, 436, 175, 175, 175, 436, 436,
- 436, 436, 175, 175, 437, 438, 439, 435,
-
- 435, 434, 434, 434, 434, 175, 175, 435,
- 435, 175, 175, 435, 435, 440, 441, 175,
- 175, 175, 175, 175, 175, 175, 175, 439,
- 175, 175, 175, 175, 436, 436, 175, 436,
-
- 436, 436, 434, 434, 175, 175, 442, 443,
- 444, 445, 446, 447, 448, 449, 450, 451,
- 436, 436, 452, 452, 453, 453, 453, 453,
- 453, 454, 455, 456, 175, 175, 175, 175,
-
- 175, 457, 458, 459, 175, 460, 460, 460,
- 460, 460, 460, 175, 175, 175, 175, 460,
- 460, 175, 175, 460, 460, 460, 460, 460,
- 460, 460, 460, 460, 460, 460, 460, 460,
-
- 460, 460, 460, 460, 460, 460, 460, 460,
- 460, 175, 460, 460, 460, 460, 460, 460,
- 460, 175, 460, 460, 175, 460, 460, 175,
- 460, 460, 175, 175, 461, 175, 462, 462,
-
- 462, 458, 458, 175, 175, 175, 175, 458,
- 458, 175, 175, 458, 458, 463, 175, 175,
- 175, 464, 175, 175, 175, 175, 175, 175,
- 175, 460, 460, 460, 460, 175, 460, 175,
-
- 175, 175, 175, 175, 175, 175, 465, 466,
- 467, 468, 469, 470, 471, 472, 473, 474,
- 458, 458, 460, 460, 460, 464, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 175, 475, 475, 476, 175, 477, 477, 477,
- 477, 477, 477, 477, 478, 477, 175, 477,
- 477, 477, 175, 477, 477, 477, 477, 477,
- 477, 477, 477, 477, 477, 477, 477, 477,
-
- 477, 477, 477, 477, 477, 477, 477, 477,
- 477, 175, 477, 477, 477, 477, 477, 477,
- 477, 175, 477, 477, 175, 477, 477, 477,
- 477, 477, 175, 175, 479, 477, 476, 476,
-
- 476, 475, 475, 475, 475, 475, 175, 475,
- 475, 476, 175, 476, 476, 480, 175, 175,
- 477, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 477, 478, 481, 481, 175, 175, 482, 483,
- 484, 485, 486, 487, 488, 489, 490, 491,
- 492, 493, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 175, 494, 495, 495, 175, 496, 496, 496,
- 496, 496, 496, 496, 496, 175, 175, 496,
- 496, 175, 175, 496, 496, 496, 496, 496,
- 496, 496, 496, 496, 496, 496, 496, 496,
-
- 496, 496, 496, 496, 496, 496, 496, 496,
- 496, 175, 496, 496, 496, 496, 496, 496,
- 496, 175, 496, 496, 175, 497, 496, 496,
- 496, 496, 175, 175, 498, 496, 499, 494,
-
- 495, 494, 494, 494, 500, 175, 175, 495,
- 495, 175, 175, 495, 495, 501, 175, 175,
- 175, 175, 175, 175, 175, 175, 494, 499,
- 175, 175, 175, 175, 496, 496, 175, 496,
-
- 496, 496, 500, 500, 175, 175, 502, 503,
- 504, 505, 506, 507, 508, 509, 510, 511,
- 512, 497, 513, 513, 513, 513, 513, 513,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 175, 175, 514, 515, 175, 515, 515, 515,
- 515, 515, 515, 175, 175, 175, 515, 515,
- 515, 175, 515, 515, 515, 515, 175, 175,
- 175, 515, 515, 175, 515, 175, 515, 515,
-
- 175, 175, 175, 515, 515, 175, 175, 175,
- 515, 515, 515, 175, 175, 175, 515, 515,
- 515, 515, 515, 515, 515, 515, 516, 515,
- 515, 515, 175, 175, 175, 175, 517, 518,
-
- 514, 518, 518, 175, 175, 175, 518, 518,
- 518, 175, 518, 518, 518, 519, 175, 175,
- 520, 175, 175, 175, 175, 175, 175, 517,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 175, 175, 175, 175, 175, 175, 521, 522,
- 523, 524, 525, 526, 527, 528, 529, 530,
- 531, 531, 531, 532, 532, 532, 532, 532,
- 532, 533, 532, 175, 175, 175, 175, 175,
-
- 175, 534, 534, 534, 175, 535, 535, 535,
- 535, 535, 535, 535, 535, 175, 535, 535,
- 535, 175, 535, 535, 535, 535, 535, 535,
- 535, 535, 535, 535, 535, 535, 535, 535,
-
- 535, 535, 535, 535, 535, 535, 535, 535,
- 535, 175, 535, 535, 535, 535, 535, 535,
- 535, 535, 535, 535, 175, 535, 535, 535,
- 535, 535, 175, 175, 175, 536, 537, 537,
-
- 537, 534, 534, 534, 534, 175, 537, 537,
- 537, 175, 537, 537, 537, 538, 175, 175,
- 175, 175, 175, 175, 175, 539, 540, 175,
- 536, 536, 175, 175, 175, 175, 175, 175,
-
- 535, 535, 541, 541, 175, 175, 542, 543,
- 544, 545, 546, 547, 548, 549, 550, 551,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 552, 552, 552, 552, 552, 552, 552, 553,
-
- 175, 175, 554, 554, 175, 555, 555, 555,
- 555, 555, 555, 555, 555, 175, 555, 555,
- 555, 175, 555, 555, 555, 555, 555, 555,
- 555, 555, 555, 555, 555, 555, 555, 555,
-
- 555, 555, 555, 555, 555, 555, 555, 555,
- 555, 175, 555, 555, 555, 555, 555, 555,
- 555, 555, 555, 555, 175, 555, 555, 555,
- 555, 555, 175, 175, 556, 557, 554, 558,
-
- 554, 554, 559, 554, 554, 175, 558, 554,
- 554, 175, 554, 554, 560, 561, 175, 175,
- 175, 175, 175, 175, 175, 559, 559, 175,
- 175, 175, 175, 175, 175, 175, 555, 175,
-
- 555, 555, 562, 562, 175, 175, 563, 564,
- 565, 566, 567, 568, 569, 570, 571, 572,
- 175, 573, 573, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 175, 175, 574, 574, 175, 575, 575, 575,
- 575, 575, 575, 575, 575, 175, 575, 575,
- 575, 175, 575, 575, 575, 575, 575, 575,
- 575, 575, 575, 575, 575, 575, 575, 575,
-
- 575, 575, 575, 575, 575, 575, 575, 575,
- 575, 576, 575, 575, 575, 575, 575, 575,
- 575, 575, 575, 575, 575, 575, 575, 575,
- 575, 575, 576, 175, 175, 577, 578, 574,
-
- 574, 579, 579, 579, 580, 175, 574, 574,
- 574, 175, 574, 574, 574, 581, 576, 175,
- 175, 175, 175, 175, 175, 175, 175, 578,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 575, 575, 580, 580, 175, 175, 582, 583,
- 584, 585, 586, 587, 588, 589, 590, 591,
- 592, 592, 592, 592, 592, 592, 175, 175,
- 175, 593, 577, 577, 577, 577, 577, 577,
-
- 175, 175, 594, 594, 175, 595, 595, 595,
- 595, 595, 595, 595, 595, 595, 595, 595,
- 595, 595, 595, 595, 595, 595, 595, 175,
- 175, 175, 595, 595, 595, 595, 595, 595,
-
- 595, 595, 595, 595, 595, 595, 595, 595,
- 595, 595, 595, 595, 595, 595, 595, 595,
- 595, 595, 175, 595, 595, 595, 595, 595,
- 595, 595, 595, 595, 175, 595, 175, 175,
-
- 595, 595, 595, 595, 595, 595, 595, 175,
- 175, 175, 596, 175, 175, 175, 175, 597,
- 594, 594, 598, 598, 598, 175, 598, 175,
- 594, 594, 594, 594, 594, 594, 594, 597,
-
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 594, 594, 599, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 175, 600, 600, 600, 600, 600, 600, 600,
- 600, 600, 600, 600, 600, 600, 600, 600,
- 600, 600, 600, 600, 600, 600, 600, 600,
- 600, 600, 600, 600, 600, 600, 600, 600,
-
- 600, 600, 600, 600, 600, 600, 600, 600,
- 600, 600, 600, 600, 600, 600, 600, 600,
- 600, 601, 600, 602, 601, 601, 601, 601,
- 603, 603, 604, 175, 175, 175, 175, 12,
-
- 600, 600, 600, 600, 600, 600, 605, 601,
- 606, 606, 606, 606, 601, 601, 601, 607,
- 608, 609, 610, 611, 612, 613, 614, 615,
- 616, 617, 618, 618, 175, 175, 175, 175,
-
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 175, 619, 619, 175, 619, 175, 175, 619,
- 619, 175, 619, 175, 175, 619, 175, 175,
- 175, 175, 175, 175, 619, 619, 619, 619,
- 175, 619, 619, 619, 619, 619, 619, 619,
-
- 175, 619, 619, 619, 175, 619, 175, 619,
- 175, 175, 619, 619, 175, 619, 619, 619,
- 619, 620, 619, 621, 620, 620, 620, 620,
- 622, 622, 175, 620, 620, 619, 175, 175,
-
- 619, 619, 619, 619, 619, 175, 623, 175,
- 624, 624, 624, 624, 620, 620, 175, 175,
- 625, 626, 627, 628, 629, 630, 631, 632,
- 633, 634, 175, 175, 619, 619, 635, 635,
-
- 636, 637, 637, 637, 638, 639, 638, 638,
- 640, 638, 638, 641, 640, 642, 642, 642,
- 642, 642, 640, 643, 642, 643, 643, 643,
- 644, 644, 643, 643, 643, 643, 643, 643,
-
- 645, 646, 647, 648, 649, 650, 651, 652,
- 653, 654, 655, 655, 655, 655, 655, 655,
- 655, 655, 655, 655, 656, 644, 643, 644,
- 643, 657, 658, 659, 658, 659, 660, 660,
-
- 636, 636, 636, 636, 636, 636, 636, 636,
- 175, 636, 636, 636, 636, 636, 636, 636,
- 636, 636, 636, 636, 636, 636, 636, 636,
- 636, 636, 636, 636, 636, 636, 636, 636,
-
- 636, 636, 636, 636, 636, 636, 636, 636,
- 636, 636, 661, 662, 662, 175, 175, 175,
- 175, 663, 664, 665, 666, 665, 665, 665,
- 665, 665, 664, 664, 664, 664, 665, 667,
-
- 664, 665, 668, 668, 669, 641, 668, 668,
- 636, 636, 636, 636, 670, 671, 671, 671,
- 665, 665, 665, 665, 665, 665, 672, 665,
- 175, 665, 665, 665, 665, 665, 665, 665,
-
- 665, 665, 665, 665, 665, 665, 665, 665,
- 665, 665, 665, 665, 665, 665, 672, 672,
- 672, 665, 665, 665, 665, 665, 665, 665,
- 672, 665, 672, 672, 672, 175, 673, 673,
-
- 674, 674, 674, 674, 674, 674, 675, 674,
- 674, 674, 674, 674, 674, 175, 676, 674,
- 677, 677, 678, 679, 680, 681, 681, 681,
- 681, 682, 682, 175, 175, 175, 175, 175,
-
- 683, 683, 683, 683, 683, 683, 683, 683,
- 683, 683, 683, 683, 683, 683, 683, 683,
- 683, 683, 683, 683, 683, 683, 683, 683,
- 683, 683, 683, 683, 683, 683, 683, 683,
-
- 683, 683, 684, 683, 683, 683, 683, 683,
- 684, 683, 683, 685, 686, 687, 687, 687,
- 687, 688, 687, 689, 689, 689, 687, 690,
- 686, 691, 692, 693, 693, 689, 689, 684,
-
- 694, 695, 696, 697, 698, 699, 700, 701,
- 702, 703, 704, 704, 705, 705, 705, 705,
- 683, 683, 683, 683, 683, 683, 688, 688,
- 687, 687, 684, 684, 684, 684, 689, 689,
-
- 689, 684, 685, 685, 685, 684, 684, 685,
- 685, 685, 685, 685, 685, 685, 684, 684,
- 684, 689, 689, 689, 689, 684, 684, 684,
- 684, 684, 684, 684, 684, 684, 684, 684,
-
- 684, 684, 689, 685, 693, 689, 689, 685,
- 685, 685, 685, 685, 685, 706, 684, 685,
- 707, 708, 709, 710, 711, 712, 713, 714,
- 715, 716, 717, 717, 717, 718, 719, 719,
-
- 720, 720, 720, 720, 720, 720, 720, 720,
- 720, 720, 720, 720, 720, 720, 720, 720,
- 720, 720, 720, 720, 720, 720, 720, 720,
- 720, 720, 720, 720, 720, 720, 720, 720,
-
- 720, 720, 720, 720, 720, 720, 175, 721,
- 175, 175, 175, 175, 175, 721, 175, 175,
- 722, 722, 722, 722, 722, 722, 722, 722,
- 722, 722, 722, 722, 722, 722, 722, 722,
-
- 722, 722, 722, 722, 722, 722, 722, 722,
- 722, 722, 722, 722, 722, 722, 722, 722,
- 722, 722, 722, 722, 722, 722, 722, 723,
- 723, 724, 724, 725, 726, 727, 727, 727,
-
- 728, 728, 728, 728, 728, 728, 728, 728,
- 728, 728, 728, 728, 728, 728, 728, 728,
- 728, 728, 728, 728, 728, 728, 728, 728,
- 728, 728, 728, 728, 728, 728, 728, 728,
-
- 728, 728, 728, 728, 728, 728, 728, 728,
- 728, 728, 728, 728, 728, 728, 728, 728,
- 728, 728, 728, 728, 728, 728, 728, 728,
- 728, 728, 729, 729, 729, 729, 729, 728,
-
- 730, 730, 730, 730, 730, 730, 730, 730,
- 730, 730, 730, 730, 730, 730, 730, 730,
- 730, 730, 730, 730, 730, 730, 730, 730,
- 730, 730, 730, 730, 730, 730, 730, 730,
-
- 730, 730, 730, 731, 731, 731, 731, 731,
- 732, 732, 732, 732, 732, 732, 732, 732,
- 732, 732, 732, 732, 732, 732, 732, 732,
- 732, 732, 732, 732, 732, 732, 732, 732,
+ 368, 368, 368, 369, 369, 368, 307, 307,
+ 307, 370, 307, 370, 370, 307, 307, 307,
+ 370, 370, 307, 307, 307, 307, 307, 307,
+
+ 371, 371, 371, 371, 371, 371, 371, 371,
+ 371, 371, 371, 371, 371, 371, 371, 371,
+ 371, 371, 371, 371, 371, 371, 371, 371,
+ 371, 371, 371, 371, 371, 371, 371, 371,
+
+ 371, 371, 371, 371, 371, 371, 372, 372,
+ 372, 372, 372, 372, 372, 372, 372, 372,
+ 372, 373, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+
+ 374, 375, 376, 377, 378, 379, 380, 381,
+ 382, 383, 384, 384, 384, 384, 384, 384,
+ 384, 384, 384, 384, 384, 384, 384, 384,
+ 384, 384, 384, 384, 384, 384, 384, 384,
+
+ 384, 384, 384, 384, 384, 384, 384, 384,
+ 384, 384, 384, 385, 385, 385, 385, 385,
+ 385, 385, 386, 385, 387, 387, 388, 389,
+ 390, 391, 392, 256, 256, 256, 256, 256,
+
+ 393, 393, 393, 393, 393, 393, 393, 393,
+ 393, 393, 393, 393, 393, 393, 393, 393,
+ 393, 393, 393, 393, 393, 393, 394, 394,
+ 394, 394, 395, 394, 394, 394, 394, 394,
+
+ 394, 394, 394, 394, 395, 394, 394, 394,
+ 395, 394, 394, 394, 394, 394, 256, 256,
+ 396, 396, 396, 396, 396, 396, 396, 396,
+ 396, 396, 396, 396, 396, 396, 396, 256,
+
+ 397, 398, 398, 398, 398, 398, 397, 398,
+ 398, 397, 398, 398, 398, 398, 398, 397,
+ 398, 398, 398, 398, 397, 398, 399, 399,
+ 399, 400, 400, 400, 256, 256, 401, 256,
+
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+
+ 402, 288, 402, 402, 402, 402, 402, 402,
+ 402, 402, 403, 403, 403, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+
+ 288, 288, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+
+ 288, 288, 288, 288, 404, 404, 405, 404,
+ 404, 405, 404, 404, 404, 405, 405, 405,
+ 406, 407, 408, 404, 404, 404, 405, 404,
+ 404, 405, 405, 404, 404, 404, 404, 288,
+
+ 409, 410, 410, 411, 412, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413,
+
+ 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 414, 415, 416, 413, 411, 411,
+
+ 411, 410, 410, 410, 410, 410, 410, 410,
+ 410, 411, 411, 411, 411, 417, 418, 415,
+ 413, 153, 155, 419, 419, 409, 414, 414,
+ 413, 413, 413, 413, 413, 413, 413, 413,
+
+ 413, 413, 410, 410, 420, 420, 421, 422,
+ 423, 424, 425, 426, 427, 428, 429, 430,
+ 431, 432, 433, 434, 434, 434, 434, 434,
+ 177, 435, 435, 436, 436, 437, 436, 436,
+
+ 177, 438, 439, 439, 177, 440, 440, 440,
+ 440, 440, 440, 440, 440, 177, 177, 440,
+ 440, 177, 177, 440, 440, 440, 440, 440,
+ 440, 440, 440, 440, 440, 440, 440, 440,
+
+ 440, 440, 440, 440, 440, 440, 440, 440,
+ 440, 177, 440, 440, 440, 440, 440, 440,
+ 440, 177, 440, 177, 177, 177, 440, 440,
+ 440, 440, 177, 177, 441, 442, 443, 439,
+
+ 439, 438, 438, 438, 438, 177, 177, 439,
+ 439, 177, 177, 439, 439, 444, 445, 177,
+ 177, 177, 177, 177, 177, 177, 177, 443,
+ 177, 177, 177, 177, 440, 440, 177, 440,
+
+ 440, 440, 438, 438, 177, 177, 446, 447,
+ 448, 449, 450, 451, 452, 453, 454, 455,
+ 440, 440, 456, 456, 457, 457, 457, 457,
+ 457, 458, 459, 460, 177, 177, 177, 177,
+
+ 177, 461, 462, 463, 177, 464, 464, 464,
+ 464, 464, 464, 177, 177, 177, 177, 464,
+ 464, 177, 177, 464, 464, 464, 464, 464,
+ 464, 464, 464, 464, 464, 464, 464, 464,
+
+ 464, 464, 464, 464, 464, 464, 464, 464,
+ 464, 177, 464, 464, 464, 464, 464, 464,
+ 464, 177, 464, 464, 177, 464, 464, 177,
+ 464, 464, 177, 177, 465, 177, 466, 466,
+
+ 466, 462, 462, 177, 177, 177, 177, 462,
+ 462, 177, 177, 462, 462, 467, 177, 177,
+ 177, 468, 177, 177, 177, 177, 177, 177,
+ 177, 464, 464, 464, 464, 177, 464, 177,
+
+ 177, 177, 177, 177, 177, 177, 469, 470,
+ 471, 472, 473, 474, 475, 476, 477, 478,
+ 462, 462, 464, 464, 464, 468, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 177, 479, 479, 480, 177, 481, 481, 481,
+ 481, 481, 481, 481, 482, 481, 177, 481,
+ 481, 481, 177, 481, 481, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 481,
+
+ 481, 481, 481, 481, 481, 481, 481, 481,
+ 481, 177, 481, 481, 481, 481, 481, 481,
+ 481, 177, 481, 481, 177, 481, 481, 481,
+ 481, 481, 177, 177, 483, 481, 480, 480,
+
+ 480, 479, 479, 479, 479, 479, 177, 479,
+ 479, 480, 177, 480, 480, 484, 177, 177,
+ 481, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 481, 482, 485, 485, 177, 177, 486, 487,
+ 488, 489, 490, 491, 492, 493, 494, 495,
+ 496, 497, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 177, 498, 499, 499, 177, 500, 500, 500,
+ 500, 500, 500, 500, 500, 177, 177, 500,
+ 500, 177, 177, 500, 500, 500, 500, 500,
+ 500, 500, 500, 500, 500, 500, 500, 500,
+
+ 500, 500, 500, 500, 500, 500, 500, 500,
+ 500, 177, 500, 500, 500, 500, 500, 500,
+ 500, 177, 500, 500, 177, 501, 500, 500,
+ 500, 500, 177, 177, 502, 500, 503, 498,
+
+ 499, 498, 498, 498, 504, 177, 177, 499,
+ 499, 177, 177, 499, 499, 505, 177, 177,
+ 177, 177, 177, 177, 177, 177, 498, 503,
+ 177, 177, 177, 177, 500, 500, 177, 500,
+
+ 500, 500, 504, 504, 177, 177, 506, 507,
+ 508, 509, 510, 511, 512, 513, 514, 515,
+ 516, 501, 517, 517, 517, 517, 517, 517,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 177, 177, 518, 519, 177, 519, 519, 519,
+ 519, 519, 519, 177, 177, 177, 519, 519,
+ 519, 177, 519, 519, 519, 519, 177, 177,
+ 177, 519, 519, 177, 519, 177, 519, 519,
+
+ 177, 177, 177, 519, 519, 177, 177, 177,
+ 519, 519, 519, 177, 177, 177, 519, 519,
+ 519, 519, 519, 519, 519, 519, 520, 519,
+ 519, 519, 177, 177, 177, 177, 521, 522,
+
+ 518, 522, 522, 177, 177, 177, 522, 522,
+ 522, 177, 522, 522, 522, 523, 177, 177,
+ 524, 177, 177, 177, 177, 177, 177, 521,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 177, 177, 177, 177, 177, 177, 525, 526,
+ 527, 528, 529, 530, 531, 532, 533, 534,
+ 535, 535, 535, 536, 536, 536, 536, 536,
+ 536, 537, 536, 177, 177, 177, 177, 177,
+
+ 177, 538, 538, 538, 177, 539, 539, 539,
+ 539, 539, 539, 539, 539, 177, 539, 539,
+ 539, 177, 539, 539, 539, 539, 539, 539,
+ 539, 539, 539, 539, 539, 539, 539, 539,
+
+ 539, 539, 539, 539, 539, 539, 539, 539,
+ 539, 177, 539, 539, 539, 539, 539, 539,
+ 539, 539, 539, 539, 177, 539, 539, 539,
+ 539, 539, 177, 177, 177, 540, 541, 541,
+
+ 541, 538, 538, 538, 538, 177, 541, 541,
+ 541, 177, 541, 541, 541, 542, 177, 177,
+ 177, 177, 177, 177, 177, 543, 544, 177,
+ 540, 540, 177, 177, 177, 177, 177, 177,
+
+ 539, 539, 545, 545, 177, 177, 546, 547,
+ 548, 549, 550, 551, 552, 553, 554, 555,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 556, 556, 556, 556, 556, 556, 556, 557,
+
+ 177, 177, 558, 558, 177, 559, 559, 559,
+ 559, 559, 559, 559, 559, 177, 559, 559,
+ 559, 177, 559, 559, 559, 559, 559, 559,
+ 559, 559, 559, 559, 559, 559, 559, 559,
+
+ 559, 559, 559, 559, 559, 559, 559, 559,
+ 559, 177, 559, 559, 559, 559, 559, 559,
+ 559, 559, 559, 559, 177, 559, 559, 559,
+ 559, 559, 177, 177, 560, 561, 558, 562,
+
+ 558, 558, 563, 558, 558, 177, 562, 558,
+ 558, 177, 558, 558, 564, 565, 177, 177,
+ 177, 177, 177, 177, 177, 563, 563, 177,
+ 177, 177, 177, 177, 177, 177, 559, 177,
+
+ 559, 559, 566, 566, 177, 177, 567, 568,
+ 569, 570, 571, 572, 573, 574, 575, 576,
+ 177, 577, 577, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 177, 177, 578, 578, 177, 579, 579, 579,
+ 579, 579, 579, 579, 579, 177, 579, 579,
+ 579, 177, 579, 579, 579, 579, 579, 579,
+ 579, 579, 579, 579, 579, 579, 579, 579,
+
+ 579, 579, 579, 579, 579, 579, 579, 579,
+ 579, 580, 579, 579, 579, 579, 579, 579,
+ 579, 579, 579, 579, 579, 579, 579, 579,
+ 579, 579, 580, 177, 177, 581, 582, 578,
+
+ 578, 583, 583, 583, 584, 177, 578, 578,
+ 578, 177, 578, 578, 578, 585, 580, 177,
+ 177, 177, 177, 177, 177, 177, 177, 582,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 579, 579, 584, 584, 177, 177, 586, 587,
+ 588, 589, 590, 591, 592, 593, 594, 595,
+ 596, 596, 596, 596, 596, 596, 177, 177,
+ 177, 597, 581, 581, 581, 581, 581, 581,
+
+ 177, 177, 598, 598, 177, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 177,
+ 177, 177, 599, 599, 599, 599, 599, 599,
+
+ 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 177, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 177, 599, 177, 177,
+
+ 599, 599, 599, 599, 599, 599, 599, 177,
+ 177, 177, 600, 177, 177, 177, 177, 601,
+ 598, 598, 602, 602, 602, 177, 602, 177,
+ 598, 598, 598, 598, 598, 598, 598, 601,
+
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 598, 598, 603, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 177, 604, 604, 604, 604, 604, 604, 604,
+ 604, 604, 604, 604, 604, 604, 604, 604,
+ 604, 604, 604, 604, 604, 604, 604, 604,
+ 604, 604, 604, 604, 604, 604, 604, 604,
+
+ 604, 604, 604, 604, 604, 604, 604, 604,
+ 604, 604, 604, 604, 604, 604, 604, 604,
+ 604, 605, 604, 606, 605, 605, 605, 605,
+ 607, 607, 608, 177, 177, 177, 177, 12,
+
+ 604, 604, 604, 604, 604, 604, 609, 605,
+ 610, 610, 610, 610, 605, 605, 605, 611,
+ 612, 613, 614, 615, 616, 617, 618, 619,
+ 620, 621, 622, 622, 177, 177, 177, 177,
+
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 177, 623, 623, 177, 623, 177, 177, 623,
+ 623, 177, 623, 177, 177, 623, 177, 177,
+ 177, 177, 177, 177, 623, 623, 623, 623,
+ 177, 623, 623, 623, 623, 623, 623, 623,
+
+ 177, 623, 623, 623, 177, 623, 177, 623,
+ 177, 177, 623, 623, 177, 623, 623, 623,
+ 623, 624, 623, 625, 624, 624, 624, 624,
+ 626, 626, 177, 624, 624, 623, 177, 177,
+
+ 623, 623, 623, 623, 623, 177, 627, 177,
+ 628, 628, 628, 628, 624, 624, 177, 177,
+ 629, 630, 631, 632, 633, 634, 635, 636,
+ 637, 638, 177, 177, 623, 623, 639, 639,
+
+ 640, 641, 641, 641, 642, 643, 642, 642,
+ 644, 642, 642, 645, 644, 646, 646, 646,
+ 646, 646, 644, 647, 646, 647, 647, 647,
+ 648, 648, 647, 647, 647, 647, 647, 647,
+
+ 649, 650, 651, 652, 653, 654, 655, 656,
+ 657, 658, 659, 659, 659, 659, 659, 659,
+ 659, 659, 659, 659, 660, 648, 647, 648,
+ 647, 661, 662, 663, 662, 663, 664, 664,
+
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 177, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 640, 640, 640, 640, 640, 640,
+
+ 640, 640, 640, 640, 640, 640, 640, 640,
+ 640, 640, 665, 666, 666, 177, 177, 177,
+ 177, 667, 668, 669, 670, 669, 669, 669,
+ 669, 669, 668, 668, 668, 668, 669, 671,
+
+ 668, 669, 672, 672, 673, 645, 672, 672,
+ 640, 640, 640, 640, 674, 675, 675, 675,
+ 669, 669, 669, 669, 669, 669, 676, 669,
+ 177, 669, 669, 669, 669, 669, 669, 669,
+
+ 669, 669, 669, 669, 669, 669, 669, 669,
+ 669, 669, 669, 669, 669, 669, 676, 676,
+ 676, 669, 669, 669, 669, 669, 669, 669,
+ 676, 669, 676, 676, 676, 177, 677, 677,
+
+ 678, 678, 678, 678, 678, 678, 679, 678,
+ 678, 678, 678, 678, 678, 177, 680, 678,
+ 681, 681, 682, 683, 684, 685, 685, 685,
+ 685, 686, 686, 177, 177, 177, 177, 177,
+
+ 687, 687, 687, 687, 687, 687, 687, 687,
+ 687, 687, 687, 687, 687, 687, 687, 687,
+ 687, 687, 687, 687, 687, 687, 687, 687,
+ 687, 687, 687, 687, 687, 687, 687, 687,
+
+ 687, 687, 688, 687, 687, 687, 687, 687,
+ 688, 687, 687, 689, 690, 691, 691, 691,
+ 691, 692, 691, 693, 693, 693, 691, 694,
+ 690, 695, 696, 697, 697, 693, 693, 688,
+
+ 698, 699, 700, 701, 702, 703, 704, 705,
+ 706, 707, 708, 708, 709, 709, 709, 709,
+ 687, 687, 687, 687, 687, 687, 692, 692,
+ 691, 691, 688, 688, 688, 688, 693, 693,
+
+ 693, 688, 689, 689, 689, 688, 688, 689,
+ 689, 689, 689, 689, 689, 689, 688, 688,
+ 688, 693, 693, 693, 693, 688, 688, 688,
+ 688, 688, 688, 688, 688, 688, 688, 688,
+
+ 688, 688, 693, 689, 697, 693, 693, 689,
+ 689, 689, 689, 689, 689, 710, 688, 689,
+ 711, 712, 713, 714, 715, 716, 717, 718,
+ 719, 720, 721, 721, 721, 722, 723, 723,
+
+ 724, 724, 724, 724, 724, 724, 724, 724,
+ 724, 724, 724, 724, 724, 724, 724, 724,
+ 724, 724, 724, 724, 724, 724, 724, 724,
+ 724, 724, 724, 724, 724, 724, 724, 724,
+
+ 724, 724, 724, 724, 724, 724, 177, 725,
+ 177, 177, 177, 177, 177, 725, 177, 177,
+ 726, 726, 726, 726, 726, 726, 726, 726,
+ 726, 726, 726, 726, 726, 726, 726, 726,
+
+ 726, 726, 726, 726, 726, 726, 726, 726,
+ 726, 726, 726, 726, 726, 726, 726, 726,
+ 726, 726, 726, 726, 726, 726, 726, 727,
+ 727, 728, 728, 729, 730, 731, 731, 731,
732, 732, 732, 732, 732, 732, 732, 732,
732, 732, 732, 732, 732, 732, 732, 732,
@@ -1557,82 +1537,97 @@ static const unsigned short uc_property_trie[] = {
732, 732, 732, 732, 732, 732, 732, 732,
732, 732, 732, 732, 732, 732, 732, 732,
732, 732, 732, 732, 732, 732, 732, 732,
- 732, 732, 733, 733, 733, 733, 733, 733,
-
- 734, 734, 734, 734, 734, 734, 734, 735,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
-
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
-
- 734, 734, 734, 734, 734, 734, 734, 735,
- 734, 175, 734, 734, 734, 734, 175, 175,
- 734, 734, 734, 734, 734, 734, 734, 175,
- 734, 175, 734, 734, 734, 734, 175, 175,
-
- 734, 734, 734, 734, 734, 734, 734, 735,
- 734, 175, 734, 734, 734, 734, 175, 175,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
-
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 735,
- 734, 175, 734, 734, 734, 734, 175, 175,
- 734, 734, 734, 734, 734, 734, 734, 175,
-
- 734, 175, 734, 734, 734, 734, 175, 175,
- 734, 734, 734, 734, 734, 734, 734, 735,
- 734, 734, 734, 734, 734, 734, 734, 175,
- 734, 734, 734, 734, 734, 734, 734, 734,
+ 732, 732, 733, 733, 733, 733, 733, 732,
734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 735,
734, 734, 734, 734, 734, 734, 734, 734,
734, 734, 734, 734, 734, 734, 734, 734,
-
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 735,
- 734, 175, 734, 734, 734, 734, 175, 175,
- 734, 734, 734, 734, 734, 734, 734, 735,
-
- 734, 734, 734, 734, 734, 734, 734, 735,
734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 175, 175, 736, 736, 737,
-
- 738, 739, 740, 741, 741, 741, 741, 740,
- 740, 742, 743, 744, 745, 746, 747, 748,
- 749, 750, 751, 751, 751, 751, 751, 751,
- 751, 751, 751, 751, 751, 175, 175, 175,
-
- 735, 735, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 735,
- 752, 752, 752, 752, 752, 752, 752, 752,
- 752, 752, 175, 175, 175, 175, 175, 175,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
+ 734, 734, 734, 735, 735, 735, 735, 735,
+ 736, 736, 736, 736, 736, 736, 736, 736,
+ 736, 736, 736, 736, 736, 736, 736, 736,
+ 736, 736, 736, 736, 736, 736, 736, 736,
+
+ 736, 736, 736, 736, 736, 736, 736, 736,
+ 736, 736, 736, 736, 736, 736, 736, 736,
+ 736, 736, 736, 736, 736, 736, 736, 736,
+ 736, 736, 736, 736, 736, 736, 736, 736,
+
+ 736, 736, 736, 736, 736, 736, 736, 736,
+ 736, 736, 736, 736, 736, 736, 736, 736,
+ 736, 736, 736, 736, 736, 736, 736, 736,
+ 736, 736, 737, 737, 737, 737, 737, 737,
+
+ 738, 738, 738, 738, 738, 738, 738, 739,
+ 738, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 738, 738, 738, 738, 738,
+
+ 738, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 738, 738, 738, 738, 738,
+
+ 738, 738, 738, 738, 738, 738, 738, 739,
+ 738, 177, 738, 738, 738, 738, 177, 177,
+ 738, 738, 738, 738, 738, 738, 738, 177,
+ 738, 177, 738, 738, 738, 738, 177, 177,
+
+ 738, 738, 738, 738, 738, 738, 738, 739,
+ 738, 177, 738, 738, 738, 738, 177, 177,
+ 738, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 738, 738, 738, 738, 738,
+
+ 738, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 738, 738, 738, 738, 739,
+ 738, 177, 738, 738, 738, 738, 177, 177,
+ 738, 738, 738, 738, 738, 738, 738, 177,
+
+ 738, 177, 738, 738, 738, 738, 177, 177,
+ 738, 738, 738, 738, 738, 738, 738, 739,
+ 738, 738, 738, 738, 738, 738, 738, 177,
+ 738, 738, 738, 738, 738, 738, 738, 738,
+
+ 738, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 738, 738, 738, 738, 739,
+ 738, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 738, 738, 738, 738, 738,
+
+ 738, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 738, 738, 738, 738, 739,
+ 738, 177, 738, 738, 738, 738, 177, 177,
+ 738, 738, 738, 738, 738, 738, 738, 739,
+
+ 738, 738, 738, 738, 738, 738, 738, 739,
+ 738, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 177, 177, 740, 740, 741,
+
+ 742, 743, 744, 745, 745, 745, 745, 744,
+ 744, 746, 747, 748, 749, 750, 751, 752,
+ 753, 754, 755, 755, 755, 755, 755, 755,
+ 755, 755, 755, 755, 755, 177, 177, 177,
+
+ 739, 739, 739, 739, 739, 739, 739, 739,
+ 739, 739, 739, 739, 739, 739, 739, 739,
+ 756, 756, 756, 756, 756, 756, 756, 756,
+ 756, 756, 177, 177, 177, 177, 177, 177,
- 753, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
+ 757, 757, 757, 757, 757, 757, 757, 757,
+ 757, 757, 757, 757, 757, 757, 757, 757,
+ 757, 757, 757, 757, 757, 757, 757, 757,
+ 757, 757, 757, 757, 757, 757, 757, 757,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 741, 740, 734,
- 734, 734, 734, 734, 734, 734, 734, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
+ 757, 757, 757, 757, 757, 757, 757, 757,
+ 757, 757, 757, 757, 757, 757, 757, 757,
+ 757, 757, 757, 757, 757, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
- 755, 756, 756, 756, 756, 756, 756, 756,
- 756, 756, 756, 756, 756, 756, 756, 756,
- 756, 756, 756, 756, 756, 756, 756, 756,
- 756, 756, 756, 757, 758, 175, 175, 175,
+ 758, 759, 759, 759, 759, 759, 759, 759,
+ 759, 759, 759, 759, 759, 759, 759, 759,
+ 759, 759, 759, 759, 759, 759, 759, 759,
+ 759, 759, 759, 759, 759, 759, 759, 759,
759, 759, 759, 759, 759, 759, 759, 759,
759, 759, 759, 759, 759, 759, 759, 759,
@@ -1640,372 +1635,392 @@ static const unsigned short uc_property_trie[] = {
759, 759, 759, 759, 759, 759, 759, 759,
759, 759, 759, 759, 759, 759, 759, 759,
- 759, 759, 759, 739, 739, 739, 760, 760,
- 760, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 761, 761, 761, 761, 761, 761, 761, 761,
- 761, 761, 761, 761, 761, 175, 761, 761,
- 761, 761, 762, 762, 763, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 761, 761, 761, 761, 761, 761, 761, 761,
- 761, 761, 761, 761, 761, 761, 761, 761,
- 761, 761, 762, 762, 763, 764, 764, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 761, 761, 761, 761, 761, 761, 761, 761,
- 761, 761, 761, 761, 761, 761, 761, 761,
- 761, 761, 762, 762, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 761, 761, 761, 761, 761, 761, 761, 761,
- 761, 761, 761, 761, 761, 175, 761, 761,
- 761, 175, 762, 762, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 765, 765, 765, 765, 765, 765, 765, 765,
- 765, 765, 765, 765, 765, 765, 765, 765,
- 765, 765, 765, 765, 765, 765, 765, 765,
- 765, 765, 765, 765, 765, 765, 765, 765,
-
- 765, 765, 765, 765, 765, 765, 765, 765,
- 765, 765, 765, 765, 765, 765, 765, 765,
- 765, 765, 765, 765, 766, 766, 767, 766,
- 766, 766, 766, 766, 766, 766, 767, 767,
-
- 767, 767, 767, 767, 767, 767, 766, 767,
- 767, 766, 766, 766, 766, 766, 766, 766,
- 766, 766, 768, 766, 769, 769, 770, 771,
- 769, 772, 769, 773, 765, 774, 175, 175,
-
- 775, 776, 777, 778, 779, 780, 781, 782,
- 783, 784, 175, 175, 175, 175, 175, 175,
- 785, 785, 785, 785, 785, 785, 785, 785,
- 785, 785, 175, 175, 175, 175, 175, 175,
-
- 786, 786, 787, 788, 789, 789, 790, 786,
- 787, 788, 786, 791, 791, 791, 792, 175,
- 793, 794, 795, 796, 797, 798, 799, 800,
- 801, 802, 175, 175, 175, 175, 175, 175,
-
- 734, 734, 734, 149, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
-
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 734, 734, 734, 734, 734, 734, 734,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 734, 734, 734, 734, 734, 734, 734, 734,
- 734, 803, 804, 175, 175, 175, 175, 175,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
-
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
-
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 175, 175, 175,
-
- 806, 806, 806, 807, 807, 807, 807, 806,
- 806, 807, 807, 807, 175, 175, 175, 175,
- 807, 807, 806, 807, 807, 807, 807, 807,
- 807, 808, 809, 810, 175, 175, 175, 175,
-
- 811, 175, 175, 175, 812, 812, 813, 814,
- 815, 816, 817, 818, 819, 820, 821, 822,
- 823, 823, 823, 823, 823, 823, 823, 823,
- 823, 823, 823, 823, 823, 823, 823, 823,
-
- 823, 823, 823, 823, 823, 823, 823, 823,
- 823, 823, 823, 823, 823, 823, 175, 175,
- 823, 823, 823, 823, 823, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 824, 824, 824, 824, 824, 824, 824, 824,
- 824, 824, 824, 824, 824, 824, 824, 824,
- 824, 824, 824, 824, 824, 824, 824, 824,
- 824, 824, 824, 824, 824, 824, 824, 824,
-
- 824, 824, 824, 824, 824, 824, 824, 824,
- 824, 824, 825, 825, 175, 175, 175, 175,
- 826, 826, 826, 826, 826, 827, 827, 827,
- 826, 826, 827, 826, 826, 826, 826, 826,
-
- 826, 824, 824, 824, 824, 824, 824, 824,
- 826, 826, 175, 175, 175, 175, 175, 175,
- 828, 829, 830, 831, 832, 833, 834, 835,
- 836, 837, 838, 175, 175, 175, 839, 839,
-
- 840, 840, 840, 840, 840, 840, 840, 840,
- 840, 840, 840, 840, 840, 840, 840, 840,
- 840, 840, 840, 840, 840, 840, 840, 840,
- 840, 840, 840, 840, 840, 840, 840, 840,
-
- 735, 735, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 737,
- 841, 842, 842, 842, 175, 175, 738, 738,
-
- 825, 825, 825, 825, 825, 825, 825, 825,
- 825, 825, 825, 825, 825, 825, 825, 825,
- 825, 825, 825, 825, 825, 825, 825, 825,
- 825, 825, 825, 825, 825, 825, 825, 825,
-
- 825, 825, 825, 825, 825, 825, 825, 825,
- 825, 825, 825, 825, 825, 825, 825, 825,
- 825, 825, 825, 825, 825, 843, 844, 843,
- 844, 844, 844, 844, 844, 844, 844, 175,
-
- 845, 846, 844, 846, 846, 844, 844, 844,
- 844, 844, 844, 844, 844, 843, 843, 843,
- 843, 843, 843, 844, 844, 847, 847, 847,
- 847, 847, 847, 847, 847, 175, 175, 848,
-
+ 759, 759, 759, 759, 759, 760, 761, 759,
+ 759, 759, 759, 759, 759, 759, 759, 762,
+ 762, 762, 762, 762, 762, 762, 762, 762,
+
+ 763, 764, 764, 764, 764, 764, 764, 764,
+ 764, 764, 764, 764, 764, 764, 764, 764,
+ 764, 764, 764, 764, 764, 764, 764, 764,
+ 764, 764, 764, 765, 766, 177, 177, 177,
+
+ 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767,
+
+ 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 768, 768, 768, 769, 769,
+ 769, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 770, 770, 770, 770, 770, 770, 770, 770,
+ 770, 770, 770, 770, 770, 177, 770, 770,
+ 770, 770, 771, 771, 772, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 773, 773, 773, 773, 773, 773, 773, 773,
+ 773, 773, 773, 773, 773, 773, 773, 773,
+ 773, 773, 774, 774, 775, 776, 776, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 777, 777, 777, 777, 777, 777, 777, 777,
+ 777, 777, 777, 777, 777, 777, 777, 777,
+ 777, 777, 778, 778, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 779, 779, 779, 779, 779, 779, 779, 779,
+ 779, 779, 779, 779, 779, 177, 779, 779,
+ 779, 177, 780, 780, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 781, 781, 781, 781, 781, 781, 781, 781,
+ 781, 781, 781, 781, 781, 781, 781, 781,
+ 781, 781, 781, 781, 781, 781, 781, 781,
+ 781, 781, 781, 781, 781, 781, 781, 781,
+
+ 781, 781, 781, 781, 781, 781, 781, 781,
+ 781, 781, 781, 781, 781, 781, 781, 781,
+ 781, 781, 781, 781, 782, 782, 783, 782,
+ 782, 782, 782, 782, 782, 782, 783, 783,
+
+ 783, 783, 783, 783, 783, 783, 782, 783,
+ 783, 782, 782, 782, 782, 782, 782, 782,
+ 782, 782, 784, 782, 785, 785, 786, 787,
+ 785, 788, 785, 789, 781, 790, 177, 177,
+
+ 791, 792, 793, 794, 795, 796, 797, 798,
+ 799, 800, 177, 177, 177, 177, 177, 177,
+ 801, 801, 801, 801, 801, 801, 801, 801,
+ 801, 801, 177, 177, 177, 177, 177, 177,
+
+ 802, 802, 803, 804, 805, 806, 807, 802,
+ 808, 809, 802, 810, 810, 810, 811, 177,
+ 812, 813, 814, 815, 816, 817, 818, 819,
+ 820, 821, 177, 177, 177, 177, 177, 177,
+
+ 822, 822, 822, 822, 822, 822, 822, 822,
+ 822, 822, 822, 822, 822, 822, 822, 822,
+ 822, 822, 822, 822, 822, 822, 822, 822,
+ 822, 822, 822, 822, 822, 822, 822, 822,
+
+ 822, 822, 822, 823, 822, 822, 822, 822,
+ 822, 822, 822, 822, 822, 822, 822, 822,
+ 822, 822, 822, 822, 822, 822, 822, 822,
+ 822, 822, 822, 822, 822, 822, 822, 822,
+
+ 822, 822, 822, 822, 822, 822, 822, 822,
+ 822, 822, 822, 822, 822, 822, 822, 822,
+ 822, 822, 822, 822, 822, 822, 822, 822,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 822, 822, 822, 822, 822, 822, 822, 822,
+ 822, 824, 825, 177, 177, 177, 177, 177,
+ 762, 762, 762, 762, 762, 762, 762, 762,
+ 762, 762, 762, 762, 762, 762, 762, 762,
+
+ 762, 762, 762, 762, 762, 762, 762, 762,
+ 762, 762, 762, 762, 762, 762, 762, 762,
+ 762, 762, 762, 762, 762, 762, 762, 762,
+ 762, 762, 762, 762, 762, 762, 762, 762,
+
+ 762, 762, 762, 762, 762, 762, 762, 762,
+ 762, 762, 762, 762, 762, 762, 762, 762,
+ 762, 762, 762, 762, 762, 762, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 826, 826, 826, 826, 826, 826, 826, 826,
+ 826, 826, 826, 826, 826, 826, 826, 826,
+ 826, 826, 826, 826, 826, 826, 826, 826,
+ 826, 826, 826, 826, 826, 177, 177, 177,
+
+ 827, 827, 827, 828, 828, 828, 828, 827,
+ 827, 828, 828, 828, 177, 177, 177, 177,
+ 828, 828, 827, 828, 828, 828, 828, 828,
+ 828, 829, 830, 831, 177, 177, 177, 177,
+
+ 832, 177, 177, 177, 833, 833, 834, 835,
+ 836, 837, 838, 839, 840, 841, 842, 843,
+ 844, 844, 844, 844, 844, 844, 844, 844,
+ 844, 844, 844, 844, 844, 844, 844, 844,
+
+ 844, 844, 844, 844, 844, 844, 844, 844,
+ 844, 844, 844, 844, 844, 844, 177, 177,
+ 844, 844, 844, 844, 844, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 845, 845, 845, 845, 845, 845, 845, 845,
+ 845, 845, 845, 845, 845, 845, 845, 845,
+ 845, 845, 845, 845, 845, 845, 845, 845,
+ 845, 845, 845, 845, 845, 845, 845, 845,
+
+ 845, 845, 845, 845, 845, 845, 845, 845,
+ 845, 845, 846, 846, 177, 177, 177, 177,
+ 847, 847, 847, 847, 847, 848, 848, 848,
+ 847, 847, 848, 847, 847, 847, 847, 847,
+
+ 847, 845, 845, 845, 845, 845, 845, 845,
+ 847, 847, 177, 177, 177, 177, 177, 177,
849, 850, 851, 852, 853, 854, 855, 856,
- 857, 858, 175, 175, 175, 175, 175, 175,
- 849, 850, 851, 852, 853, 854, 855, 856,
- 857, 858, 175, 175, 175, 175, 175, 175,
-
- 859, 859, 859, 859, 859, 859, 859, 860,
- 861, 861, 861, 861, 859, 859, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 862, 862, 862, 862, 863, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
-
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 865, 863, 862, 862,
- 862, 862, 862, 863, 862, 863, 863, 863,
-
- 863, 863, 862, 863, 866, 864, 864, 864,
- 864, 864, 864, 864, 175, 175, 175, 175,
- 867, 868, 869, 870, 871, 872, 873, 874,
- 875, 876, 877, 877, 878, 879, 877, 877,
-
- 879, 880, 880, 880, 880, 880, 880, 880,
- 880, 880, 880, 881, 882, 881, 881, 881,
- 881, 881, 881, 881, 880, 880, 880, 880,
- 880, 880, 880, 880, 880, 175, 175, 175,
-
- 883, 883, 884, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
-
- 804, 884, 883, 883, 883, 883, 884, 884,
- 883, 883, 885, 886, 887, 887, 804, 804,
- 888, 889, 890, 891, 892, 893, 894, 895,
- 896, 897, 898, 898, 898, 898, 898, 898,
-
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
-
- 899, 899, 899, 899, 899, 899, 900, 901,
- 902, 902, 901, 901, 901, 902, 901, 902,
- 902, 902, 903, 903, 175, 175, 175, 175,
- 175, 175, 175, 175, 904, 904, 904, 904,
-
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
-
- 804, 804, 804, 804, 884, 884, 884, 884,
- 884, 884, 884, 884, 883, 883, 883, 883,
- 883, 883, 883, 883, 884, 884, 883, 905,
- 175, 175, 175, 906, 906, 907, 907, 907,
-
- 888, 889, 890, 891, 892, 893, 894, 895,
- 896, 897, 175, 175, 175, 804, 804, 804,
- 888, 889, 890, 891, 892, 893, 894, 895,
- 896, 897, 804, 804, 804, 804, 804, 804,
-
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 908, 908, 908, 908, 908, 908, 906, 906,
-
- 909, 909, 909, 909, 909, 909, 909, 909,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 910, 910, 910, 911, 912, 913, 913, 913,
- 913, 913, 910, 910, 913, 913, 913, 913,
-
- 910, 914, 912, 912, 912, 912, 912, 912,
- 912, 754, 754, 754, 754, 913, 754, 754,
- 754, 754, 914, 887, 915, 898, 898, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
+ 857, 858, 859, 177, 177, 177, 860, 860,
+
+ 861, 861, 861, 861, 861, 861, 861, 861,
+ 861, 861, 861, 861, 861, 861, 861, 861,
+ 861, 861, 861, 861, 861, 861, 861, 861,
+ 861, 861, 861, 861, 861, 861, 861, 861,
+
+ 862, 862, 862, 862, 862, 862, 862, 862,
+ 862, 862, 862, 862, 862, 862, 862, 862,
+ 862, 862, 862, 862, 862, 862, 862, 863,
+ 864, 865, 865, 865, 177, 177, 866, 866,
+
+ 867, 867, 867, 867, 867, 867, 867, 867,
+ 867, 867, 867, 867, 867, 867, 867, 867,
+ 867, 867, 867, 867, 867, 867, 867, 867,
+ 867, 867, 867, 867, 867, 867, 867, 867,
+
+ 867, 867, 867, 867, 867, 867, 867, 867,
+ 867, 867, 867, 867, 867, 867, 867, 867,
+ 867, 867, 867, 867, 867, 868, 869, 868,
+ 869, 869, 869, 869, 869, 869, 869, 177,
+
+ 870, 871, 869, 871, 871, 869, 869, 869,
+ 869, 869, 869, 869, 869, 868, 868, 868,
+ 868, 868, 868, 869, 869, 872, 872, 872,
+ 872, 872, 872, 872, 872, 177, 177, 873,
+
+ 874, 875, 876, 877, 878, 879, 880, 881,
+ 882, 883, 177, 177, 177, 177, 177, 177,
+ 874, 875, 876, 877, 878, 879, 880, 881,
+ 882, 883, 177, 177, 177, 177, 177, 177,
+
+ 884, 884, 884, 884, 884, 884, 884, 885,
+ 886, 886, 886, 886, 884, 884, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 887, 887, 887, 887, 888, 889, 889, 889,
+ 889, 889, 889, 889, 889, 889, 889, 889,
+ 889, 889, 889, 889, 889, 889, 889, 889,
+ 889, 889, 889, 889, 889, 889, 889, 889,
+
+ 889, 889, 889, 889, 889, 889, 889, 889,
+ 889, 889, 889, 889, 889, 889, 889, 889,
+ 889, 889, 889, 889, 890, 888, 887, 887,
+ 887, 887, 887, 888, 887, 888, 888, 888,
+
+ 888, 888, 887, 888, 891, 889, 889, 889,
+ 889, 889, 889, 889, 177, 177, 177, 177,
+ 892, 893, 894, 895, 896, 897, 898, 899,
+ 900, 901, 902, 902, 903, 904, 902, 902,
+
+ 904, 905, 905, 905, 905, 905, 905, 905,
+ 905, 905, 905, 906, 907, 906, 906, 906,
+ 906, 906, 906, 906, 905, 905, 905, 905,
+ 905, 905, 905, 905, 905, 177, 177, 177,
+
+ 908, 908, 909, 910, 910, 910, 910, 910,
+ 910, 910, 910, 910, 910, 910, 910, 910,
+ 910, 910, 910, 910, 910, 910, 910, 910,
+ 910, 910, 910, 910, 910, 910, 910, 910,
+
+ 910, 909, 908, 908, 908, 908, 909, 909,
+ 908, 908, 911, 912, 913, 913, 910, 910,
+ 914, 915, 916, 917, 918, 919, 920, 921,
+ 922, 923, 924, 924, 924, 924, 924, 924,
+
+ 925, 925, 925, 925, 925, 925, 925, 925,
+ 925, 925, 925, 925, 925, 925, 925, 925,
+ 925, 925, 925, 925, 925, 925, 925, 925,
+ 925, 925, 925, 925, 925, 925, 925, 925,
+
+ 925, 925, 925, 925, 925, 925, 926, 927,
+ 928, 928, 927, 927, 927, 928, 927, 928,
+ 928, 928, 929, 929, 177, 177, 177, 177,
+ 177, 177, 177, 177, 930, 930, 930, 930,
+
+ 931, 931, 931, 931, 931, 931, 931, 931,
+ 931, 931, 931, 931, 931, 931, 931, 931,
+ 931, 931, 931, 931, 931, 931, 931, 931,
+ 931, 931, 931, 931, 931, 931, 931, 931,
+
+ 931, 931, 931, 931, 932, 932, 932, 932,
+ 932, 932, 932, 932, 933, 933, 933, 933,
+ 933, 933, 933, 933, 932, 932, 933, 934,
+ 177, 177, 177, 935, 935, 936, 936, 936,
+
+ 937, 938, 939, 940, 941, 942, 943, 944,
+ 945, 946, 177, 177, 177, 931, 931, 931,
+ 947, 948, 949, 950, 951, 952, 953, 954,
+ 955, 956, 957, 957, 957, 957, 957, 957,
+
+ 957, 957, 957, 957, 957, 957, 957, 957,
+ 957, 957, 957, 957, 957, 957, 957, 957,
+ 957, 957, 957, 957, 957, 957, 957, 957,
+ 958, 958, 958, 958, 958, 958, 959, 959,
+
+ 960, 960, 960, 960, 960, 960, 960, 960,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 961, 961, 961, 962, 963, 964, 964, 964,
+ 964, 964, 961, 961, 964, 964, 964, 964,
+
+ 961, 965, 963, 963, 963, 963, 963, 963,
+ 963, 966, 966, 966, 966, 964, 966, 966,
+ 966, 966, 965, 967, 968, 969, 969, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105,
- 105, 105, 105, 105, 105, 105, 916, 916,
- 916, 916, 916, 917, 918, 918, 918, 918,
- 918, 918, 918, 918, 918, 918, 918, 918,
- 918, 918, 918, 918, 918, 918, 918, 918,
+ 105, 105, 105, 105, 105, 105, 970, 970,
+ 970, 970, 970, 971, 972, 972, 972, 972,
+ 972, 972, 972, 972, 972, 972, 972, 972,
+ 972, 972, 972, 972, 972, 972, 972, 972,
- 918, 918, 918, 918, 918, 918, 918, 918,
- 918, 918, 918, 918, 918, 918, 918, 918,
- 918, 918, 918, 918, 918, 918, 918, 918,
- 918, 918, 918, 918, 918, 919, 919, 919,
+ 972, 972, 972, 972, 972, 972, 972, 972,
+ 972, 972, 972, 972, 972, 972, 972, 972,
+ 972, 972, 972, 972, 972, 972, 972, 972,
+ 972, 972, 972, 972, 972, 973, 973, 973,
- 919, 919, 918, 918, 918, 918, 919, 919,
- 919, 919, 919, 105, 106, 106, 106, 106,
+ 973, 973, 972, 972, 972, 972, 973, 973,
+ 973, 973, 973, 105, 106, 106, 106, 106,
106, 106, 106, 106, 106, 106, 106, 106,
- 920, 921, 106, 106, 106, 922, 106, 106,
+ 974, 975, 106, 106, 106, 976, 106, 106,
106, 106, 106, 106, 106, 106, 106, 106,
106, 106, 106, 106, 106, 106, 106, 106,
106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 923, 923, 923, 923, 923,
+ 106, 106, 106, 977, 977, 977, 977, 977,
- 923, 923, 923, 923, 923, 923, 923, 923,
- 923, 923, 923, 923, 923, 923, 923, 923,
- 923, 923, 923, 923, 923, 923, 923, 923,
- 923, 923, 923, 923, 923, 923, 923, 924,
+ 977, 977, 977, 977, 977, 977, 977, 977,
+ 977, 977, 977, 977, 977, 977, 977, 977,
+ 977, 977, 977, 977, 977, 977, 977, 977,
+ 977, 977, 977, 977, 977, 977, 977, 978,
- 165, 165, 164, 165, 925, 925, 925, 925,
- 925, 925, 926, 927, 927, 928, 929, 930,
- 931, 927, 927, 927, 927, 927, 927, 927,
- 927, 927, 927, 927, 927, 927, 927, 927,
+ 167, 167, 166, 167, 979, 979, 979, 979,
+ 979, 979, 980, 981, 981, 982, 983, 984,
+ 985, 981, 981, 981, 981, 981, 981, 981,
+ 981, 981, 981, 981, 981, 981, 981, 981,
- 927, 927, 927, 927, 927, 927, 927, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 932, 913, 925, 926,
+ 981, 981, 981, 981, 981, 981, 981, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 986, 964, 979, 980,
67, 68, 67, 68, 67, 68, 67, 68,
67, 68, 67, 68, 67, 68, 67, 68,
- 67, 68, 67, 68, 67, 68, 933, 934,
- 935, 936, 937, 938, 939, 939, 940, 939,
+ 67, 68, 67, 68, 67, 68, 987, 988,
+ 989, 990, 991, 992, 993, 993, 994, 993,
67, 68, 67, 68, 67, 68, 67, 68,
67, 68, 67, 68, 67, 68, 67, 68,
67, 68, 67, 68, 67, 68, 67, 68,
- 67, 68, 941, 942, 941, 942, 941, 942,
-
- 943, 943, 943, 943, 943, 943, 943, 943,
- 944, 944, 944, 944, 944, 944, 944, 944,
- 943, 943, 943, 943, 943, 943, 175, 175,
- 944, 944, 944, 944, 944, 944, 175, 175,
-
- 943, 943, 943, 943, 943, 943, 943, 943,
- 944, 944, 944, 944, 944, 944, 944, 944,
- 943, 943, 943, 943, 943, 943, 943, 943,
- 944, 944, 944, 944, 944, 944, 944, 944,
-
- 943, 943, 943, 943, 943, 943, 175, 175,
- 944, 944, 944, 944, 944, 944, 175, 175,
- 945, 943, 946, 943, 947, 943, 948, 943,
- 175, 944, 175, 944, 175, 944, 175, 944,
-
- 943, 943, 943, 943, 943, 943, 943, 943,
- 944, 944, 944, 944, 944, 944, 944, 944,
- 949, 949, 950, 950, 950, 950, 951, 951,
- 952, 952, 953, 953, 954, 954, 175, 175,
-
- 955, 956, 957, 958, 959, 960, 961, 962,
- 963, 964, 965, 966, 967, 968, 969, 970,
- 971, 972, 973, 974, 975, 976, 977, 978,
- 979, 980, 981, 982, 983, 984, 985, 986,
-
- 987, 988, 989, 990, 991, 992, 993, 994,
- 995, 996, 997, 998, 999, 1000, 1001, 1002,
- 943, 943, 1003, 1004, 1005, 175, 1006, 1007,
- 944, 944, 1008, 1008, 1009, 174, 1010, 174,
-
- 174, 174, 1011, 1012, 1013, 175, 1014, 1015,
- 1016, 1016, 1016, 1016, 1017, 174, 174, 174,
- 943, 943, 1018, 182, 175, 175, 1019, 1020,
- 944, 944, 1021, 1021, 175, 174, 174, 174,
-
- 943, 943, 1022, 186, 1023, 204, 1024, 1025,
- 944, 944, 1026, 1026, 1027, 174, 174, 174,
- 175, 175, 1028, 1029, 1030, 175, 1031, 1032,
- 1033, 1033, 1034, 1034, 1035, 1036, 174, 175,
-
- 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1038,
- 1037, 1037, 1037, 1039, 1040, 1041, 1042, 1043,
- 1044, 1045, 1044, 1046, 1047, 1048, 14, 14,
- 1049, 1050, 1051, 1052, 1052, 1053, 1051, 1052,
-
- 14, 14, 14, 14, 1054, 1055, 1055, 1056,
- 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064,
- 13, 13, 13, 13, 13, 1065, 1065, 1065,
- 14, 1066, 1067, 14, 1068, 1068, 14, 43,
-
- 43, 14, 14, 14, 1069, 16, 1070, 1071,
- 1072, 1072, 786, 786, 786, 786, 1073, 1073,
- 1073, 1073, 1074, 1075, 1076, 1077, 1078, 1073,
- 1078, 1078, 1078, 1078, 1077, 1078, 1078, 1079,
-
- 1080, 1081, 1081, 1081, 1082, 1083, 1083, 1083,
- 1083, 1083, 1084, 1084, 1084, 1084, 1084, 1084,
- 1085, 1086, 175, 175, 1087, 1088, 1089, 1090,
- 1091, 1092, 1093, 1093, 36, 16, 1070, 142,
-
- 1085, 62, 57, 58, 1087, 1088, 1089, 1090,
- 1091, 1092, 1093, 1093, 36, 16, 1070, 175,
- 923, 923, 923, 923, 923, 1094, 1094, 1094,
- 1094, 1094, 1094, 1094, 1094, 175, 175, 175,
+ 67, 68, 995, 996, 995, 996, 995, 996,
+
+ 997, 997, 997, 997, 997, 997, 997, 997,
+ 998, 998, 998, 998, 998, 998, 998, 998,
+ 997, 997, 997, 997, 997, 997, 177, 177,
+ 998, 998, 998, 998, 998, 998, 177, 177,
+
+ 997, 997, 997, 997, 997, 997, 997, 997,
+ 998, 998, 998, 998, 998, 998, 998, 998,
+ 997, 997, 997, 997, 997, 997, 997, 997,
+ 998, 998, 998, 998, 998, 998, 998, 998,
+
+ 997, 997, 997, 997, 997, 997, 177, 177,
+ 998, 998, 998, 998, 998, 998, 177, 177,
+ 999, 997, 1000, 997, 1001, 997, 1002, 997,
+ 177, 998, 177, 998, 177, 998, 177, 998,
+
+ 997, 997, 997, 997, 997, 997, 997, 997,
+ 998, 998, 998, 998, 998, 998, 998, 998,
+ 1003, 1003, 1004, 1004, 1004, 1004, 1005, 1005,
+ 1006, 1006, 1007, 1007, 1008, 1008, 177, 177,
+
+ 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016,
+ 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024,
+ 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032,
+ 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040,
+
+ 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048,
+ 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,
+ 997, 997, 1057, 1058, 1059, 177, 1060, 1061,
+ 998, 998, 1062, 1062, 1063, 176, 1064, 176,
+
+ 176, 176, 1065, 1066, 1067, 177, 1068, 1069,
+ 1070, 1070, 1070, 1070, 1071, 176, 176, 176,
+ 997, 997, 1072, 184, 177, 177, 1073, 1074,
+ 998, 998, 1075, 1075, 177, 176, 176, 176,
+
+ 997, 997, 1076, 188, 1077, 208, 1078, 1079,
+ 998, 998, 1080, 1080, 1081, 176, 176, 176,
+ 177, 177, 1082, 1083, 1084, 177, 1085, 1086,
+ 1087, 1087, 1088, 1088, 1089, 1090, 176, 177,
+
+ 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1092,
+ 1091, 1091, 1091, 1093, 1094, 1095, 1096, 1097,
+ 1098, 1099, 1098, 1100, 1101, 1102, 14, 14,
+ 1103, 1104, 1105, 1106, 1106, 1107, 1105, 1106,
+
+ 14, 14, 14, 14, 1108, 1109, 1109, 1110,
+ 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118,
+ 13, 13, 13, 13, 13, 1119, 1119, 1119,
+ 14, 1120, 1121, 14, 1122, 1122, 14, 43,
+
+ 43, 14, 14, 14, 1123, 16, 1124, 1125,
+ 1126, 1126, 1127, 1127, 1127, 1127, 1128, 1128,
+ 1128, 1128, 1129, 1130, 1131, 1132, 1133, 1128,
+ 1133, 1133, 1133, 1133, 1132, 1133, 1133, 1134,
+
+ 1135, 1136, 1136, 1136, 1137, 1138, 1138, 1138,
+ 1138, 1138, 1139, 1139, 1139, 1139, 1139, 1139,
+ 1140, 1141, 177, 177, 1142, 1143, 1144, 1145,
+ 1146, 1147, 1148, 1148, 36, 16, 1124, 142,
+
+ 1140, 62, 57, 58, 1142, 1143, 1144, 1145,
+ 1146, 1147, 1148, 1148, 36, 16, 1124, 177,
+ 977, 977, 977, 977, 977, 1149, 1149, 1149,
+ 1149, 1149, 1149, 1149, 1149, 177, 177, 177,
12, 12, 12, 12, 12, 12, 12, 50,
- 12, 12, 12, 1095, 1096, 1097, 1097, 1097,
- 1098, 1098, 1099, 1099, 1099, 1099, 1100, 1101,
- 1101, 1102, 1103, 175, 175, 175, 175, 175,
-
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 151, 151, 156, 156, 151, 151, 151, 151,
- 156, 156, 156, 151, 151, 1104, 1104, 1104,
-
- 1104, 151, 1105, 1105, 1106, 1107, 1107, 171,
- 1108, 171, 1107, 1109, 926, 926, 926, 926,
- 927, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 51, 51, 1110, 1111, 51, 51, 51, 1110,
- 51, 1111, 71, 1110, 1110, 1110, 71, 71,
- 1110, 1110, 1110, 71, 51, 1110, 1112, 51,
- 36, 1110, 1110, 1110, 1110, 1110, 51, 51,
-
- 51, 51, 51, 51, 1110, 51, 1113, 51,
- 1110, 51, 1114, 1115, 1110, 1110, 1116, 71,
- 1110, 1110, 1117, 1110, 71, 93, 93, 93,
- 93, 141, 1118, 811, 106, 1119, 1120, 1120,
-
- 1074, 1074, 1074, 1074, 1074, 1120, 1119, 1119,
- 1119, 1119, 1121, 1074, 752, 1122, 1123, 1124,
- 1125, 1125, 1125, 64, 64, 64, 64, 64,
+ 12, 12, 12, 1150, 1151, 1152, 1152, 1152,
+ 1153, 1153, 1154, 1154, 1154, 1154, 1155, 1156,
+ 1156, 1157, 1158, 177, 177, 177, 177, 177,
+
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 153, 153, 158, 158, 153, 153, 153, 153,
+ 158, 158, 158, 153, 153, 1159, 1159, 1159,
+
+ 1159, 153, 1160, 1160, 1161, 1162, 1162, 173,
+ 1163, 173, 1162, 1164, 980, 980, 980, 980,
+ 981, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 51, 51, 1165, 1166, 51, 51, 51, 1165,
+ 51, 1166, 1167, 1165, 1165, 1165, 1167, 1167,
+ 1165, 1165, 1165, 1167, 51, 1165, 1168, 51,
+ 36, 1165, 1165, 1165, 1165, 1165, 51, 51,
+
+ 51, 51, 51, 51, 1165, 51, 1169, 51,
+ 1165, 51, 1170, 1171, 1165, 1165, 1172, 1167,
+ 1165, 1165, 1173, 1165, 1167, 1174, 1174, 1174,
+ 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1180,
+
+ 1129, 1129, 1129, 1129, 1129, 1180, 1179, 1179,
+ 1179, 1179, 1181, 1129, 1182, 1183, 1184, 1185,
+ 1186, 1186, 1186, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
- 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
- 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
- 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
- 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
+ 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
+ 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
+ 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
+ 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
- 1128, 1128, 1128, 102, 113, 1129, 1129, 1129,
- 1129, 1125, 175, 175, 175, 175, 175, 175,
+ 1189, 1189, 1189, 102, 113, 1190, 1190, 1190,
+ 1190, 1186, 177, 177, 177, 177, 177, 177,
36, 36, 36, 36, 36, 51, 51, 51,
51, 51, 36, 36, 51, 51, 51, 51,
@@ -2020,134 +2035,134 @@ static const unsigned short uc_property_trie[] = {
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1074, 1074, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
+ 51, 51, 51, 1176, 1176, 1176, 1176, 1176,
+ 1176, 1176, 1176, 1176, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
36, 36, 36, 36, 36, 36, 36, 36,
- 1130, 1130, 1130, 1131, 1131, 1131, 36, 36,
- 36, 36, 18, 56, 36, 1132, 36, 36,
+ 1191, 1191, 1191, 1192, 1192, 1192, 36, 36,
+ 36, 36, 18, 56, 36, 1193, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 1133, 1134, 36, 36,
+ 36, 36, 36, 36, 1194, 1195, 36, 36,
- 36, 36, 36, 1135, 36, 36, 36, 36,
+ 36, 36, 36, 1196, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 1133, 1134, 1133, 1134, 36, 36,
+ 36, 36, 1194, 1195, 1194, 1195, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 36, 36, 1133, 1134, 1133, 1134,
- 1133, 1134, 1133, 1134, 36, 36, 1133, 1134,
- 1133, 1134, 1133, 1134, 1133, 1134, 1133, 1134,
- 1133, 1134, 1133, 1134, 1133, 1134, 1133, 1134,
+ 36, 36, 36, 36, 1194, 1195, 1194, 1195,
+ 1194, 1195, 1194, 1195, 36, 36, 1194, 1195,
+ 1194, 1195, 1194, 1195, 1194, 1195, 1194, 1195,
+ 1194, 1195, 1194, 1195, 1194, 1195, 1194, 1195,
- 1133, 1134, 1133, 1134, 1133, 1134, 1133, 1134,
- 1133, 1134, 1133, 1134, 36, 36, 36, 1133,
- 1134, 1133, 1134, 36, 36, 36, 36, 36,
- 1136, 36, 36, 36, 36, 36, 36, 36,
+ 1194, 1195, 1194, 1195, 1194, 1195, 1194, 1195,
+ 1194, 1195, 1194, 1195, 36, 36, 36, 1194,
+ 1195, 1194, 1195, 36, 36, 36, 36, 36,
+ 1197, 36, 36, 36, 36, 36, 36, 36,
- 36, 36, 1133, 1134, 36, 36, 1137, 36,
- 1138, 1139, 36, 1139, 36, 36, 36, 36,
- 1133, 1134, 1133, 1134, 1133, 1134, 1133, 1134,
+ 36, 36, 1194, 1195, 36, 36, 1198, 36,
+ 1199, 1200, 36, 1200, 36, 36, 36, 36,
+ 1194, 1195, 1194, 1195, 1194, 1195, 1194, 1195,
36, 36, 36, 36, 36, 36, 36, 36,
36, 36, 36, 36, 36, 36, 36, 36,
- 36, 1133, 1134, 1133, 1134, 1140, 36, 36,
- 1133, 1134, 36, 36, 36, 36, 1133, 1134,
- 1133, 1134, 1133, 1134, 1133, 1134, 1133, 1134,
+ 36, 1194, 1195, 1194, 1195, 1201, 36, 36,
+ 1194, 1195, 36, 36, 36, 36, 1194, 1195,
+ 1194, 1195, 1194, 1195, 1194, 1195, 1194, 1195,
- 1133, 1134, 1133, 1134, 1133, 1134, 1133, 1134,
- 1133, 1134, 1133, 1134, 1133, 1134, 36, 36,
- 1133, 1134, 1141, 1141, 1141, 1074, 1142, 1142,
- 1074, 1074, 1143, 1143, 1143, 1144, 1144, 1074,
+ 1194, 1195, 1194, 1195, 1194, 1195, 1194, 1195,
+ 1194, 1195, 1194, 1195, 1194, 1195, 36, 36,
+ 1194, 1195, 1202, 1202, 1202, 1129, 1203, 1203,
+ 1129, 1129, 1204, 1204, 1204, 1205, 1205, 1129,
- 51, 1118, 51, 51, 51, 51, 51, 51,
- 1133, 1134, 1133, 1134, 51, 51, 51, 51,
+ 51, 1176, 51, 51, 51, 51, 51, 51,
+ 1194, 1195, 1194, 1195, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 1145, 1145, 51, 51, 51, 51,
+ 51, 51, 1206, 1206, 51, 51, 51, 51,
36, 36, 51, 51, 51, 51, 51, 51,
- 51, 16, 1070, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 1146, 1146,
- 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
-
- 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
- 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
- 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
- 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
-
- 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
- 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
- 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
- 1146, 1146, 1146, 1118, 1074, 1118, 1118, 1118,
-
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1118, 1118, 1118, 1118, 1118, 1147, 1118, 1118,
- 1118, 1118, 1118, 1074, 1074, 1074, 1074, 1074,
-
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
- 1074, 1074, 1074, 1074, 1121, 1121, 1121, 1121,
- 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
-
- 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
- 1121, 1121, 1121, 1121, 1121, 1121, 1121, 811,
- 811, 752, 752, 752, 752, 752, 752, 752,
- 752, 752, 752, 752, 1148, 1148, 1148, 1148,
-
- 1148, 1148, 1122, 1122, 1122, 1122, 1122, 1122,
- 1149, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1151, 1151, 1151, 1151, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
+ 51, 16, 1124, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 1207, 1207,
+ 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207,
+
+ 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207,
+ 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207,
+ 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207,
+ 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207,
+
+ 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207,
+ 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207,
+ 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207,
+ 1207, 1207, 1207, 1176, 1129, 1176, 1176, 1176,
+
+ 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176,
+ 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176,
+ 1176, 1176, 1176, 1176, 1176, 1208, 1176, 1176,
+ 1176, 1176, 1176, 1129, 1129, 1129, 1129, 1129,
+
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1181, 1181, 1181, 1181,
+ 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
+
+ 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
+ 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1177,
+ 1177, 1182, 1182, 1182, 1182, 1182, 1182, 1182,
+ 1182, 1182, 1182, 1182, 1209, 1209, 1209, 1209,
+
+ 1209, 1209, 1183, 1183, 1183, 1183, 1183, 1183,
+ 1210, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1212, 1212, 1212, 1212, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 1118, 1118, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
+ 51, 51, 51, 51, 51, 1176, 1176, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
+ 51, 51, 51, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
- 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159,
- 1160, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 1152, 1153, 1154, 1155,
- 1156, 1157, 1158, 1159, 1160, 64, 64, 64,
+ 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220,
+ 1221, 64, 64, 64, 64, 64, 64, 64,
+ 64, 64, 64, 64, 1213, 1214, 1215, 1216,
+ 1217, 1218, 1219, 1220, 1221, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
- 62, 57, 58, 1087, 1088, 1089, 1090, 1091,
- 1092, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
- 1161, 1161, 1161, 1161, 1146, 1146, 1146, 1146,
+ 62, 57, 58, 1142, 1143, 1144, 1145, 1146,
+ 1147, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1207, 1207, 1207, 1207,
- 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
- 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
- 1146, 1146, 1146, 1146, 1146, 1146, 1162, 1162,
- 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
+ 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207,
+ 1207, 1207, 1207, 1207, 1207, 1207, 1207, 1207,
+ 1207, 1207, 1207, 1207, 1207, 1207, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
- 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
- 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
- 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
- 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224,
+ 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224,
- 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
- 1163, 1163, 1164, 1165, 1165, 1165, 1165, 1165,
- 1165, 1165, 1165, 1165, 1165, 1166, 1167, 1168,
- 1169, 1170, 1171, 1172, 1173, 1174, 1165, 1175,
+ 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224,
+ 1224, 1224, 1225, 1226, 1226, 1226, 1226, 1226,
+ 1226, 1226, 1226, 1226, 1226, 1227, 1228, 1229,
+ 1230, 1231, 1232, 1233, 1234, 1235, 1226, 1236,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 1121, 1121,
- 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
+ 51, 51, 51, 51, 51, 51, 1181, 1181,
+ 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
@@ -2161,721 +2176,196 @@ static const unsigned short uc_property_trie[] = {
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
+ 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
- 1145, 1145, 1145, 1145, 51, 51, 51, 51,
+ 1206, 1206, 1206, 1206, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 1176, 1176, 1121, 1121,
- 1177, 1118, 1145, 1145, 1145, 1145, 1145, 1145,
+ 51, 51, 51, 51, 1237, 1237, 1181, 1181,
+ 1238, 1176, 1206, 1206, 1206, 1206, 1206, 1206,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 1145, 1145, 1145, 51, 51, 51, 51,
+ 51, 1206, 1206, 1206, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 1145, 51, 51, 51, 51, 51, 51, 36,
- 1118, 1118, 1121, 1121, 1121, 1121, 1121, 1121,
- 1121, 1121, 1121, 1121, 1121, 1121, 752, 1177,
-
- 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
- 1121, 1121, 811, 811, 811, 811, 811, 811,
- 811, 811, 752, 752, 752, 752, 752, 752,
- 752, 752, 752, 752, 752, 1178, 1149, 1149,
-
- 811, 811, 752, 752, 752, 752, 752, 752,
- 752, 752, 752, 752, 1179, 752, 752, 752,
- 752, 752, 1122, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1180, 1180, 1180,
-
- 1181, 1181, 1181, 1181, 1180, 1180, 1180, 1180,
- 1180, 1149, 1149, 1149, 1149, 1180, 1150, 1180,
- 1180, 1180, 1149, 1180, 1180, 1149, 1149, 1149,
- 1180, 1180, 1149, 1149, 1180, 1149, 1149, 1180,
-
- 1180, 1180, 1150, 1149, 1150, 1150, 1150, 1150,
- 1149, 1149, 1180, 1149, 1149, 1149, 1149, 1149,
- 1149, 1180, 1180, 1180, 1180, 1180, 1149, 1180,
- 1180, 1180, 1180, 1149, 1149, 1180, 1180, 1180,
-
- 175, 1145, 1145, 1145, 1145, 1150, 51, 51,
- 1145, 1145, 1151, 1151, 1145, 1145, 51, 51,
+ 1206, 51, 51, 51, 51, 51, 51, 36,
+ 1176, 1176, 1181, 1181, 1181, 1181, 1181, 1181,
+ 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1238,
+
+ 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
+ 1181, 1181, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1182, 1182, 1182, 1182, 1182, 1182,
+ 1182, 1182, 1182, 1182, 1182, 1239, 1210, 1210,
+
+ 1177, 1177, 1182, 1182, 1182, 1182, 1182, 1182,
+ 1182, 1182, 1182, 1182, 1240, 1182, 1182, 1182,
+ 1182, 1182, 1183, 1239, 1239, 1239, 1239, 1239,
+ 1239, 1239, 1239, 1239, 1239, 1241, 1241, 1241,
+
+ 1242, 1242, 1242, 1242, 1241, 1241, 1241, 1241,
+ 1241, 1210, 1210, 1210, 1210, 1241, 1211, 1241,
+ 1241, 1241, 1210, 1241, 1241, 1210, 1210, 1210,
+ 1241, 1241, 1210, 1210, 1241, 1210, 1210, 1241,
+
+ 1241, 1241, 1211, 1210, 1211, 1211, 1211, 1211,
+ 1210, 1210, 1241, 1210, 1210, 1210, 1210, 1210,
+ 1210, 1241, 1241, 1241, 1241, 1241, 1210, 1241,
+ 1241, 1241, 1241, 1210, 1210, 1241, 1241, 1241,
+
+ 177, 1206, 1206, 1206, 1206, 1211, 51, 51,
+ 1206, 1206, 1212, 1212, 1206, 1206, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 1150, 51, 51, 51, 51, 51, 51, 51,
+ 1211, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 1150, 51, 1150, 51,
- 51, 51, 51, 1150, 1150, 1150, 51, 1149,
- 51, 51, 51, 1182, 1182, 1182, 1182, 1150,
-
- 1150, 51, 1183, 1183, 51, 51, 51, 51,
- 1184, 1185, 1184, 1185, 1184, 1185, 1184, 1185,
- 1184, 1185, 1184, 1185, 1184, 1185, 1152, 1153,
- 1154, 1155, 1156, 1157, 1158, 1159, 1160, 64,
-
- 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159,
- 1160, 64, 1152, 1153, 1154, 1155, 1156, 1157,
- 1158, 1159, 1160, 64, 51, 1150, 1150, 1150,
+ 51, 51, 51, 51, 1211, 51, 1211, 51,
+ 51, 51, 51, 1211, 1211, 1211, 51, 1210,
+ 51, 51, 51, 1243, 1243, 1243, 1243, 1211,
+
+ 1211, 51, 1244, 1244, 51, 51, 51, 51,
+ 1245, 1246, 1245, 1246, 1245, 1246, 1245, 1246,
+ 1245, 1246, 1245, 1246, 1245, 1246, 1213, 1214,
+ 1215, 1216, 1217, 1218, 1219, 1220, 1221, 64,
+
+ 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220,
+ 1221, 64, 1213, 1214, 1215, 1216, 1217, 1218,
+ 1219, 1220, 1221, 64, 51, 1211, 1211, 1211,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51,
- 1150, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 1150,
-
- 1186, 1186, 1186, 1187, 1188, 1189, 1190, 1148,
- 1191, 1192, 1148, 1193, 1194, 1195, 1196, 1196,
- 1074, 1074, 1074, 1074, 1074, 1197, 1198, 1074,
- 1074, 1074, 1074, 1074, 1074, 1197, 1198, 1074,
-
- 1074, 1074, 1197, 1198, 1197, 1198, 1184, 1185,
- 1184, 1185, 1184, 1185, 1199, 1200, 1199, 1200,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
-
- 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
- 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
- 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
- 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
-
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
-
- 1074, 1074, 1074, 1184, 1185, 1184, 1185, 1184,
- 1185, 1184, 1185, 1184, 1185, 1201, 1202, 1203,
- 1204, 1184, 1185, 1184, 1185, 1184, 1185, 1184,
- 1185, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
-
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
- 1205, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
-
- 1197, 1198, 1074, 1074, 1197, 1198, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1197,
- 1198, 1197, 1198, 1074, 1197, 1198, 1074, 1074,
- 1184, 1185, 1184, 1185, 1074, 1074, 1074, 1074,
-
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1206, 1074, 1074,
- 1197, 1198, 1074, 1074, 1184, 1185, 1074, 1074,
-
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
- 1074, 1074, 1074, 1197, 1198, 1197, 1198, 1074,
- 1074, 1074, 1074, 1074, 1197, 1198, 1074, 1074,
- 1074, 1074, 1074, 1074, 1197, 1198, 1074, 1074,
-
- 1074, 1074, 1074, 1074, 1197, 1198, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
- 1074, 1197, 1198, 1074, 1074, 1197, 1198, 1197,
-
- 1198, 1197, 1198, 1197, 1198, 1074, 1074, 1074,
- 1074, 1074, 1074, 1197, 1198, 1074, 1074, 1074,
- 1074, 1197, 1198, 1197, 1198, 1197, 1198, 1197,
- 1198, 1197, 1198, 1197, 1198, 1074, 1074, 1074,
-
- 1074, 1197, 1198, 1074, 1074, 1074, 1197, 1198,
- 1197, 1198, 1197, 1198, 1197, 1198, 1074, 1197,
- 1198, 1074, 1074, 1197, 1198, 1074, 1074, 1074,
- 1074, 1074, 1074, 1197, 1198, 1197, 1198, 1197,
-
- 1198, 1197, 1198, 1197, 1198, 1197, 1198, 1074,
- 1074, 1074, 1074, 1074, 1074, 1197, 1198, 1197,
- 1198, 1197, 1198, 1197, 1198, 1197, 1198, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1207, 1074,
-
- 1074, 1074, 1074, 1208, 1209, 1208, 1074, 1074,
- 1074, 1074, 1074, 1074, 1197, 1198, 1074, 1074,
- 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1197,
- 1198, 1197, 1198, 1074, 1074, 1074, 1074, 1074,
-
- 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 752, 752,
- 752, 752, 752, 752, 1122, 1122, 1122, 1122,
- 1122, 1122, 1122, 1178, 1178, 1178, 1178, 1178,
-
- 1122, 1122, 1122, 1122, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
- 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
-
- 1194, 1194, 1194, 1194, 1194, 1178, 1178, 1194,
- 1194, 1194, 1194, 1194, 1194, 175, 175, 175,
- 1178, 1178, 1178, 1178, 1178, 1149, 1149, 1149,
- 1149, 1149, 175, 175, 175, 175, 175, 175,
-
- 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
- 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
- 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
- 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
-
- 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
- 1210, 1210, 1210, 1210, 1210, 1210, 1210, 175,
- 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
- 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 51, 51, 51, 51, 51, 51, 51,
+ 51, 51, 51, 51, 51, 51, 51, 1211,
+
+ 1247, 1247, 1247, 1248, 1249, 1250, 1251, 1209,
+ 1252, 1253, 1209, 1254, 1255, 1256, 1257, 1257,
+ 1129, 1129, 1129, 1129, 1129, 1258, 1259, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1258, 1259, 1129,
+
+ 1129, 1129, 1258, 1259, 1258, 1259, 1245, 1246,
+ 1245, 1246, 1245, 1246, 1260, 1261, 1260, 1261,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+
+ 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262,
+ 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262,
+ 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262,
+ 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262,
+
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+
+ 1129, 1129, 1129, 1245, 1246, 1245, 1246, 1245,
+ 1246, 1245, 1246, 1245, 1246, 1263, 1264, 1265,
+ 1266, 1245, 1246, 1245, 1246, 1245, 1246, 1245,
+ 1246, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1267, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+
+ 1258, 1259, 1129, 1129, 1258, 1259, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1258,
+ 1259, 1258, 1259, 1129, 1258, 1259, 1129, 1129,
+ 1245, 1246, 1245, 1246, 1129, 1129, 1129, 1129,
+
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1268, 1129, 1129,
+ 1258, 1259, 1129, 1129, 1245, 1246, 1129, 1129,
+
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1258, 1259, 1258, 1259, 1129,
+ 1129, 1129, 1129, 1129, 1258, 1259, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1258, 1259, 1129, 1129,
+
+ 1129, 1129, 1129, 1129, 1258, 1259, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1258, 1259, 1129, 1129, 1258, 1259, 1258,
+
+ 1259, 1258, 1259, 1258, 1259, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1258, 1259, 1129, 1129, 1129,
+ 1129, 1258, 1259, 1258, 1259, 1258, 1259, 1258,
+ 1259, 1258, 1259, 1258, 1259, 1129, 1129, 1129,
+
+ 1129, 1258, 1259, 1129, 1129, 1129, 1258, 1259,
+ 1258, 1259, 1258, 1259, 1258, 1259, 1129, 1258,
+ 1259, 1129, 1129, 1258, 1259, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1258, 1259, 1258, 1259, 1258,
+
+ 1259, 1258, 1259, 1258, 1259, 1258, 1259, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1258, 1259, 1258,
+ 1259, 1258, 1259, 1258, 1259, 1258, 1259, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1269, 1129,
+
+ 1129, 1129, 1129, 1270, 1271, 1270, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1258, 1259, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1258,
+ 1259, 1258, 1259, 1129, 1129, 1129, 1129, 1129,
- 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
- 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
- 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
- 1211, 1211, 1211, 1211, 1211, 1211, 1211, 175,
-
- 117, 113, 1212, 1213, 1214, 1215, 1216, 117,
- 113, 117, 113, 117, 113, 1217, 1218, 1219,
- 1220, 939, 941, 942, 1221, 117, 113, 1221,
- 939, 939, 939, 939, 1222, 1222, 1223, 1223,
-
- 108, 109, 108, 109, 108, 109, 108, 109,
- 108, 109, 108, 109, 108, 109, 108, 109,
- 108, 109, 108, 109, 108, 109, 108, 109,
- 108, 109, 108, 109, 108, 109, 108, 109,
-
- 108, 109, 108, 109, 106, 752, 752, 752,
- 752, 752, 752, 1224, 1225, 1224, 1225, 390,
- 390, 390, 1226, 1227, 175, 175, 175, 175,
- 175, 1228, 1078, 1078, 1078, 1229, 1228, 1078,
-
- 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
- 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
- 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
- 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230,
-
- 1230, 1230, 1230, 1230, 1230, 1230, 175, 1231,
- 175, 175, 175, 175, 175, 1231, 175, 175,
- 735, 735, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 735,
-
- 735, 735, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 735,
-
- 735, 735, 735, 735, 735, 735, 898, 898,
- 175, 175, 175, 175, 175, 175, 175, 1232,
- 1233, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 1234,
-
- 735, 735, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 735, 735, 735, 735, 735, 735, 735, 175,
- 735, 735, 735, 735, 735, 735, 735, 175,
- 735, 735, 735, 735, 735, 735, 735, 175,
- 735, 735, 735, 735, 735, 735, 735, 175,
-
- 224, 224, 224, 224, 224, 224, 224, 224,
- 224, 224, 224, 224, 224, 224, 224, 224,
- 224, 224, 224, 224, 224, 224, 224, 224,
- 224, 224, 224, 224, 224, 224, 224, 224,
-
- 1235, 1235, 1236, 1237, 1236, 1237, 1235, 1235,
- 1235, 1236, 1237, 1235, 1236, 1237, 1078, 1078,
- 1078, 1078, 1078, 1078, 1078, 1078, 1077, 1238,
- 1239, 1240, 1241, 1242, 1236, 1237, 1242, 1242,
-
- 1243, 1244, 1199, 1200, 1199, 1200, 1199, 1200,
- 1199, 1200, 1240, 1240, 1240, 1240, 1245, 1246,
- 1240, 1247, 1248, 1249, 1249, 1248, 1248, 1248,
- 1248, 1248, 1250, 1250, 175, 175, 175, 175,
-
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
- 1251, 1251, 175, 1251, 1251, 1251, 1251, 1251,
-
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
-
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
- 1251, 1251, 1251, 1251, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
- 1251, 1251, 1251, 1251, 1251, 1251, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
- 1251, 1251, 1251, 1251, 175, 175, 175, 175,
-
- 1252, 1253, 1254, 1255, 1145, 1256, 1257, 1258,
- 16, 1070, 16, 1070, 16, 1070, 16, 1070,
- 16, 1070, 1145, 1145, 16, 1070, 16, 1070,
- 16, 1070, 16, 1070, 1259, 1051, 1260, 1260,
-
- 1145, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
- 1258, 1258, 1261, 1262, 152, 1263, 1264, 1264,
- 1265, 1266, 1266, 1266, 1266, 1266, 1145, 1145,
- 1267, 1267, 1267, 1268, 1269, 1270, 1251, 1145,
-
- 175, 1271, 1257, 1271, 1257, 1271, 1257, 1271,
- 1257, 1271, 1257, 1257, 1257, 1257, 1257, 1257,
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
-
- 1257, 1257, 1257, 1271, 1257, 1257, 1257, 1257,
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
-
- 1257, 1257, 1257, 1271, 1257, 1271, 1257, 1271,
- 1257, 1257, 1257, 1257, 1257, 1257, 1271, 1257,
- 1257, 1257, 1257, 1257, 1257, 1272, 1272, 175,
- 175, 1273, 1273, 1274, 1274, 1275, 1275, 1276,
-
- 1277, 1278, 1279, 1278, 1279, 1278, 1279, 1278,
- 1279, 1278, 1279, 1279, 1279, 1279, 1279, 1279,
- 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279,
- 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279,
-
- 1279, 1279, 1279, 1278, 1279, 1279, 1279, 1279,
- 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279,
- 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279,
- 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279,
-
- 1279, 1279, 1279, 1278, 1279, 1278, 1279, 1278,
- 1279, 1279, 1279, 1279, 1279, 1279, 1278, 1279,
- 1279, 1279, 1279, 1279, 1279, 1278, 1278, 1279,
- 1279, 1279, 1279, 1280, 1281, 1281, 1281, 1282,
-
- 175, 175, 175, 175, 175, 1283, 1283, 1283,
- 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283,
- 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283,
- 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283,
-
- 1283, 1283, 1283, 1283, 1283, 1283, 1283, 1283,
- 1283, 1283, 1283, 1283, 1283, 1284, 175, 175,
- 175, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
-
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
-
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 175,
- 1286, 1286, 1287, 1287, 1287, 1287, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
-
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
- 1289, 1289, 1289, 175, 175, 175, 175, 175,
-
- 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1182, 1182,
+ 1182, 1182, 1182, 1182, 1183, 1183, 1183, 1183,
+ 1183, 1183, 1183, 1239, 1239, 1239, 1239, 1239,
+
+ 1183, 1183, 1183, 1183, 1239, 1239, 1239, 1239,
+ 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+ 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
+
+ 1255, 1255, 1255, 1255, 1255, 1239, 1239, 1255,
+ 1255, 1255, 1255, 1255, 1255, 177, 177, 177,
+ 1239, 1239, 1239, 1239, 1239, 1210, 1210, 1210,
+ 1210, 1210, 177, 177, 177, 177, 177, 177,
+
+ 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
+ 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
+ 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
+ 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
+
+ 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
+ 1272, 1272, 1272, 1272, 1272, 1272, 1272, 177,
+ 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
+ 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
+
+ 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
+ 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
+ 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
+ 1273, 1273, 1273, 1273, 1273, 1273, 1273, 177,
+
+ 117, 113, 1274, 1275, 1276, 1277, 1278, 117,
+ 113, 117, 113, 117, 113, 1279, 1280, 1281,
+ 1282, 993, 995, 996, 1283, 117, 113, 1283,
+ 993, 993, 993, 993, 1284, 1284, 1285, 1285,
+
+ 1286, 1287, 1286, 1287, 1286, 1287, 1286, 1287,
+ 1286, 1287, 1286, 1287, 1286, 1287, 1286, 1287,
+ 1286, 1287, 1286, 1287, 1286, 1287, 1286, 1287,
+ 1286, 1287, 1286, 1287, 1286, 1287, 1286, 1287,
+
+ 1286, 1287, 1286, 1287, 1288, 1289, 1289, 1289,
+ 1289, 1289, 1289, 1290, 1291, 1290, 1291, 1292,
+ 1292, 1292, 1293, 1294, 177, 177, 177, 177,
+ 177, 1295, 1296, 1296, 1296, 1297, 1295, 1296,
- 1181, 1181, 1181, 1181, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290,
- 1290, 1290, 1290, 1290, 1290, 1290, 1290, 1290,
-
- 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
- 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
- 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
- 1291, 1291, 1291, 1291, 1291, 1292, 1292, 175,
-
- 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287,
- 1287, 1287, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
-
- 1286, 1286, 1286, 1286, 1293, 1293, 1293, 1293,
- 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
- 1176, 1295, 1295, 1295, 1295, 1295, 1295, 1295,
- 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295,
-
- 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
- 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
- 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
- 1291, 1291, 1291, 1291, 1292, 1292, 1296, 1286,
-
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1295, 1295, 1295, 1295, 1295, 1295, 1295,
- 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295,
-
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1176, 1176, 1176, 1176,
- 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
- 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
-
- 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
- 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
- 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
- 1297, 1297, 1297, 1297, 1297, 1297, 1297, 175,
-
- 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
- 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
- 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
- 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
-
- 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
- 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
- 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
-
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1176,
- 1176, 1176, 1176, 1286, 1286, 1286, 1286, 1286,
-
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
-
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1176, 1176,
-
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286,
- 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1176,
-
- 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
-
1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
- 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
- 1298, 1298, 1298, 1298, 1298, 1298, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
-
- 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 811, 811,
-
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
-
- 1257, 1257, 1257, 1257, 1257, 1257, 1300, 1300,
- 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
- 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
- 1300, 1300, 1300, 1300, 1301, 1301, 1301, 1301,
-
- 1301, 1301, 1301, 1301, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1303, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
-
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
-
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
- 1288, 1288, 1288, 1288, 1288, 1304, 1288, 1288,
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
-
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
-
- 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288,
- 1288, 1288, 1288, 1288, 1288, 175, 175, 175,
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
-
- 1251, 1251, 1305, 1305, 1251, 1251, 1251, 1251,
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
- 1251, 1251, 1251, 1251, 1305, 1251, 1251, 1251,
- 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
-
- 1251, 1305, 1251, 1251, 1251, 1305, 1251, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
-
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 1306, 1306, 1306, 1306, 1306, 1306, 1307, 1308,
-
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 908, 1240, 1245, 1309,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
-
- 888, 889, 890, 891, 892, 893, 894, 895,
- 896, 897, 804, 804, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 236, 237, 236, 237, 236, 237, 236, 237,
- 236, 237, 236, 237, 236, 237, 236, 237,
- 236, 237, 236, 237, 236, 237, 236, 237,
- 236, 237, 236, 237, 236, 237, 236, 237,
-
- 240, 241, 236, 237, 236, 237, 236, 237,
- 236, 237, 236, 237, 236, 237, 1310, 224,
- 1311, 1311, 1311, 1312, 1313, 1313, 1313, 1313,
- 1313, 1313, 1313, 1313, 224, 224, 1312, 1314,
-
- 236, 237, 236, 237, 236, 237, 236, 237,
- 236, 237, 236, 237, 236, 237, 236, 237,
- 236, 237, 236, 237, 236, 237, 236, 237,
- 175, 175, 175, 175, 175, 175, 175, 1313,
-
- 754, 754, 754, 754, 754, 754, 1315, 1315,
- 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315,
- 390, 390, 911, 1308, 1307, 1307, 1307, 1308,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316,
- 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316,
- 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1317,
- 1317, 1317, 1317, 1246, 1246, 1246, 1246, 1246,
-
- 1318, 1318, 941, 942, 941, 942, 941, 942,
- 941, 942, 941, 942, 941, 942, 941, 942,
- 939, 939, 941, 942, 941, 942, 941, 942,
- 941, 942, 941, 942, 941, 942, 941, 942,
-
- 941, 942, 941, 942, 941, 942, 941, 942,
- 941, 942, 941, 942, 941, 942, 941, 942,
- 941, 942, 941, 942, 941, 942, 941, 942,
- 941, 942, 941, 942, 941, 942, 941, 942,
-
- 941, 942, 941, 942, 941, 942, 941, 942,
- 941, 942, 941, 942, 941, 942, 941, 942,
- 1222, 939, 939, 939, 939, 939, 939, 939,
- 939, 941, 942, 941, 942, 1319, 941, 942,
-
- 941, 942, 941, 942, 941, 942, 941, 942,
- 1246, 1320, 1320, 941, 942, 1321, 1322, 175,
- 1323, 1324, 1226, 1227, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1323, 1324, 1323, 1324, 1323, 1324, 1323, 1324,
- 1323, 1324, 1325, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1326, 1326, 1322, 804, 804, 804, 804, 804,
-
- 735, 735, 1327, 735, 735, 735, 1328, 735,
- 735, 735, 735, 1327, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 735,
- 735, 735, 735, 735, 735, 735, 735, 735,
-
- 735, 735, 735, 842, 842, 1327, 1327, 842,
- 752, 752, 752, 752, 175, 175, 175, 175,
- 1294, 1294, 1294, 1294, 1294, 1294, 681, 681,
- 1100, 1329, 175, 175, 175, 175, 175, 175,
-
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
-
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 1330, 1330, 1331, 1331,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 884, 884, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
-
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 884, 884, 884, 884,
- 884, 884, 884, 884, 884, 884, 884, 884,
-
- 884, 884, 884, 884, 1332, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 906, 906,
- 888, 889, 890, 891, 892, 893, 894, 895,
- 896, 897, 175, 175, 175, 175, 175, 175,
-
- 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333,
- 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333,
- 1333, 1333, 431, 431, 431, 431, 431, 431,
- 1334, 1334, 1334, 431, 175, 175, 175, 175,
-
- 888, 889, 890, 891, 892, 893, 894, 895,
- 896, 897, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
-
- 804, 804, 804, 804, 804, 804, 883, 883,
- 883, 883, 883, 1335, 1335, 1335, 907, 906,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
-
- 804, 804, 804, 804, 804, 804, 804, 883,
- 883, 883, 883, 883, 883, 883, 883, 883,
- 883, 883, 884, 885, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 1336,
-
- 729, 729, 729, 729, 729, 729, 729, 729,
- 729, 729, 729, 729, 729, 729, 729, 729,
- 729, 729, 729, 729, 729, 729, 729, 729,
- 729, 729, 729, 729, 729, 175, 175, 175,
-
- 1337, 1337, 1337, 914, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
-
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 1338, 914, 914, 1337, 1337,
- 1337, 1337, 914, 914, 1337, 914, 914, 914,
-
- 1339, 911, 911, 911, 911, 911, 911, 1307,
- 1308, 1308, 911, 911, 911, 911, 175, 1306,
- 849, 850, 851, 852, 853, 854, 855, 856,
- 857, 858, 175, 175, 175, 175, 911, 911,
-
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 883, 883, 883, 883, 883, 883, 884,
- 884, 883, 883, 884, 884, 883, 883, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 804, 804, 804, 883, 804, 804, 804, 804,
- 804, 804, 804, 804, 883, 884, 175, 175,
- 888, 889, 890, 891, 892, 893, 894, 895,
- 896, 897, 175, 175, 1336, 906, 906, 906,
-
- 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340,
- 1340, 1340, 1340, 1340, 1340, 1340, 1340, 1340,
- 1341, 1340, 1340, 1340, 1340, 1340, 1340, 1342,
- 1342, 1342, 1340, 717, 175, 175, 175, 175,
-
- 825, 825, 825, 825, 825, 825, 825, 825,
- 825, 825, 825, 825, 825, 825, 825, 825,
- 847, 825, 847, 847, 1343, 825, 825, 847,
- 847, 825, 825, 825, 825, 825, 847, 847,
-
- 825, 847, 825, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 825, 825, 860, 859, 859,
-
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 887, 1344, 1344, 887, 887,
- 1345, 1345, 898, 1346, 1346, 887, 886, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 175, 899, 899, 899, 899, 899, 899, 175,
- 175, 899, 899, 899, 899, 899, 899, 175,
- 175, 899, 899, 899, 899, 899, 899, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 899, 899, 899, 899, 899, 899, 899, 175,
- 899, 899, 899, 899, 899, 899, 899, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 754, 754, 754, 914, 914, 1337, 914, 914,
- 1337, 914, 914, 1308, 914, 1347, 175, 175,
- 849, 850, 851, 852, 853, 854, 855, 856,
- 857, 858, 175, 175, 175, 175, 175, 175,
-
- 1348, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1348, 1349, 1349, 1349,
-
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1348, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
-
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1348, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
-
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1348, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
-
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1348, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
-
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1348, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
-
- 1349, 1349, 1349, 1349, 1348, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
- 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1349,
-
- 1349, 1349, 1349, 1349, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 731, 731, 731, 731, 731, 731, 731, 731,
- 731, 731, 731, 731, 731, 731, 731, 731,
-
- 731, 731, 731, 731, 731, 731, 731, 175,
- 175, 175, 175, 733, 733, 733, 733, 733,
- 733, 733, 733, 733, 733, 733, 733, 733,
- 733, 733, 733, 733, 733, 733, 733, 733,
-
- 733, 733, 733, 733, 733, 733, 733, 733,
- 733, 733, 733, 733, 733, 733, 733, 733,
- 733, 733, 733, 733, 733, 733, 733, 733,
- 733, 733, 733, 733, 175, 175, 175, 175,
- 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350,
- 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350,
- 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350,
- 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350,
-
- 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
- 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
- 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
- 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
-
- 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257,
- 1257, 1257, 1257, 1257, 1257, 1257, 1303, 1303,
- 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
- 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
-
- 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
- 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
- 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
- 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
-
- 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
- 1276, 1276, 1276, 1302, 1302, 1302, 1299, 1299,
+ 1298, 1298, 1298, 1298, 1298, 1298, 177, 1299,
+ 177, 177, 177, 177, 177, 1299, 177, 177,
1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
@@ -2884,1886 +2374,2456 @@ static const unsigned short uc_property_trie[] = {
1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
- 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
- 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
- 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
- 1300, 1300, 1299, 1299, 1299, 1299, 1299, 1299,
-
- 1352, 1353, 1354, 1355, 1356, 1357, 1357, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 1358, 1359, 1360, 1361, 1362,
- 175, 175, 175, 175, 175, 1363, 1364, 279,
-
- 279, 279, 279, 279, 279, 279, 279, 279,
- 279, 1365, 279, 279, 279, 279, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 252,
- 279, 279, 279, 279, 279, 252, 279, 252,
-
- 279, 279, 252, 279, 279, 252, 279, 279,
- 279, 279, 279, 279, 279, 279, 279, 279,
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300,
-
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300,
-
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 1366, 1366, 1366, 1366, 1366, 1366,
- 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
-
- 1366, 1366, 284, 284, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
- 284, 284, 284, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300,
-
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 1051, 1260,
-
- 284, 284, 284, 284, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300,
+ 1300, 1300, 1300, 1300, 1300, 1300, 1301, 1301,
+ 177, 177, 177, 177, 177, 177, 177, 1302,
+ 1303, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 1304,
+
+ 739, 739, 739, 739, 739, 739, 739, 739,
+ 739, 739, 739, 739, 739, 739, 739, 739,
+ 739, 739, 739, 739, 739, 739, 739, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 739, 739, 739, 739, 739, 739, 739, 177,
+ 739, 739, 739, 739, 739, 739, 739, 177,
+ 739, 739, 739, 739, 739, 739, 739, 177,
+ 739, 739, 739, 739, 739, 739, 739, 177,
+
+ 228, 228, 228, 228, 228, 228, 228, 228,
+ 228, 228, 228, 228, 228, 228, 228, 228,
+ 228, 228, 228, 228, 228, 228, 228, 228,
+ 228, 228, 228, 228, 228, 228, 228, 228,
+
+ 1305, 1305, 1306, 1307, 1306, 1307, 1305, 1305,
+ 1305, 1306, 1307, 1305, 1306, 1307, 1133, 1133,
+ 1133, 1133, 1133, 1133, 1133, 1133, 1132, 1308,
+ 1309, 1310, 1311, 1312, 1306, 1307, 1312, 1312,
+
+ 1313, 1314, 1260, 1261, 1260, 1261, 1260, 1261,
+ 1260, 1261, 1310, 1310, 1310, 1310, 1315, 1316,
+ 1310, 1317, 1318, 1319, 1319, 1318, 1318, 1318,
+ 1318, 1318, 1320, 1320, 177, 177, 177, 177,
+
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+ 1321, 1321, 177, 1321, 1321, 1321, 1321, 1321,
+
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+ 1321, 1321, 1321, 1321, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+ 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321,
+ 1321, 1321, 1321, 1321, 1321, 1321, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322,
+ 1322, 1322, 1322, 1322, 177, 177, 177, 177,
+
+ 1323, 1324, 1325, 1326, 1206, 1327, 1328, 1329,
+ 16, 1124, 16, 1124, 16, 1124, 16, 1124,
+ 16, 1124, 1206, 1206, 16, 1124, 16, 1124,
+ 16, 1124, 16, 1124, 1330, 1105, 1331, 1331,
+
+ 1206, 1329, 1329, 1329, 1329, 1329, 1329, 1329,
+ 1329, 1329, 1332, 1333, 154, 1334, 1335, 1335,
+ 1336, 1337, 1337, 1337, 1337, 1337, 1206, 1206,
+ 1338, 1338, 1338, 1339, 1340, 1341, 1322, 1206,
+
+ 177, 1342, 1343, 1342, 1343, 1342, 1343, 1342,
+ 1343, 1342, 1343, 1343, 1343, 1343, 1343, 1343,
+ 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343,
+ 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343,
+
+ 1343, 1343, 1343, 1342, 1343, 1343, 1343, 1343,
+ 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343,
+ 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343,
+ 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343,
+
+ 1343, 1343, 1343, 1342, 1343, 1342, 1343, 1342,
+ 1343, 1343, 1343, 1343, 1343, 1343, 1342, 1343,
+ 1343, 1343, 1343, 1343, 1343, 1344, 1344, 177,
+ 177, 1345, 1345, 1346, 1346, 1347, 1347, 1348,
+
+ 1349, 1350, 1351, 1350, 1351, 1350, 1351, 1350,
+ 1351, 1350, 1351, 1351, 1351, 1351, 1351, 1351,
+ 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
+ 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300,
- 284, 284, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300,
+ 1351, 1351, 1351, 1350, 1351, 1351, 1351, 1351,
+ 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
+ 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
+ 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351,
- 300, 300, 300, 300, 300, 300, 300, 300,
- 284, 284, 284, 284, 284, 284, 284, 284,
- 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
+ 1351, 1351, 1351, 1350, 1351, 1350, 1351, 1350,
+ 1351, 1351, 1351, 1351, 1351, 1351, 1350, 1351,
+ 1351, 1351, 1351, 1351, 1351, 1350, 1350, 1351,
+ 1351, 1351, 1351, 1352, 1353, 1354, 1354, 1355,
+
+ 177, 177, 177, 177, 177, 1356, 1356, 1356,
+ 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356,
+ 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356,
+ 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356,
+
+ 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1356,
+ 1356, 1356, 1356, 1356, 1356, 1357, 177, 177,
+ 177, 1358, 1358, 1358, 1358, 1358, 1358, 1358,
+ 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358,
+
+ 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358,
+ 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358,
+ 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358,
+ 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358,
+
+ 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358,
+ 1358, 1358, 1358, 1358, 1358, 1358, 1358, 177,
+ 1359, 1359, 1360, 1360, 1360, 1360, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361,
+ 1362, 1362, 1362, 177, 177, 177, 177, 177,
+
+ 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238,
+ 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+
+ 1242, 1242, 1242, 1242, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363,
+ 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363,
+
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1365, 1365, 177,
+
+ 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360,
+ 1360, 1360, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+
+ 1359, 1359, 1359, 1359, 1366, 1366, 1366, 1366,
1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
+ 1237, 1368, 1368, 1368, 1368, 1368, 1368, 1368,
+ 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368,
+
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1365, 1365, 1369, 1359,
+
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1368, 1368, 1368, 1368, 1368, 1368, 1368,
+ 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1368,
+
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1237, 1237, 1237, 1237,
+ 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
+ 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
+
+ 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
+ 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
+ 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
+ 1370, 1370, 1370, 1370, 1370, 1370, 1370, 177,
+
+ 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
+ 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
+ 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
+ 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
+
+ 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
+ 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
+ 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1237,
+ 1237, 1237, 1237, 1359, 1359, 1359, 1359, 1359,
+
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1237, 1237,
+
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1237,
+
+ 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371,
+ 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371,
+ 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371,
+ 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371,
+
+ 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371,
+ 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371,
+ 1371, 1371, 1371, 1371, 1371, 1371, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
- 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
- 1367, 1367, 1367, 1367, 1367, 1367, 1367, 1367,
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 1368, 811, 284, 284,
-
- 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369,
- 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369,
- 1370, 1371, 1372, 1373, 1374, 1228, 1228, 1375,
- 1376, 1377, 175, 175, 175, 175, 175, 175,
-
- 151, 151, 151, 151, 927, 927, 927, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1255, 1378, 1378, 1379, 1379, 1051, 1260, 1051,
- 1260, 1051, 1260, 1051, 1260, 1051, 1260, 1051,
-
- 1260, 1051, 1260, 1051, 1260, 1270, 1270, 1380,
- 1381, 1255, 1255, 1255, 1255, 1379, 1379, 1379,
- 1382, 1383, 1384, 175, 1385, 1386, 9, 9,
- 1378, 16, 1070, 16, 1070, 16, 1070, 1387,
-
- 1255, 1255, 1388, 1389, 1390, 1391, 1392, 175,
- 1255, 12, 13, 1255, 175, 175, 175, 175,
- 300, 300, 300, 1393, 300, 284, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300,
-
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 284, 284, 1394,
-
- 175, 9, 1255, 1387, 12, 13, 1255, 1395,
- 16, 1070, 1255, 1388, 1382, 1389, 1384, 1396,
- 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404,
- 1405, 1406, 1386, 1385, 1407, 1392, 1408, 9,
-
- 1255, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
- 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
- 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
- 1409, 1409, 1409, 39, 1255, 46, 1410, 1379,
-
- 1410, 1411, 1411, 1411, 1411, 1411, 1411, 1411,
- 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411,
- 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411,
- 1411, 1411, 1411, 39, 1392, 46, 1392, 1184,
-
- 1185, 1254, 16, 1070, 1253, 1280, 1412, 1278,
- 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278,
- 1281, 1412, 1412, 1412, 1412, 1412, 1412, 1412,
- 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+
+ 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373,
+ 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373,
+ 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373,
+ 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373,
+
+ 1373, 1373, 1373, 1373, 1373, 1373, 1374, 1374,
+ 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374,
+ 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374,
+ 1374, 1374, 1374, 1374, 1375, 1375, 1375, 1375,
+
+ 1375, 1375, 1375, 1375, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1377, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+
+ 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378,
+ 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378,
+ 1378, 1378, 1378, 1378, 1378, 1379, 1378, 1378,
+ 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378,
+
+ 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378,
+ 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378,
+ 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378,
+ 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378,
+
+ 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1378,
+ 1378, 1378, 1378, 1378, 1378, 177, 177, 177,
+ 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380,
+ 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380,
+
+ 1380, 1380, 1381, 1381, 1380, 1380, 1380, 1380,
+ 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380,
+ 1380, 1380, 1380, 1380, 1381, 1380, 1380, 1380,
+ 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1380,
+
+ 1380, 1381, 1380, 1380, 1380, 1381, 1380, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
+ 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
+
+ 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
+ 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
+ 1382, 1382, 1382, 1382, 1382, 1382, 1382, 1382,
+ 1383, 1383, 1383, 1383, 1383, 1383, 1384, 1385,
+
+ 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
+ 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
+ 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
+ 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
+
+ 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
+ 1386, 1386, 1386, 1386, 1387, 1388, 1389, 1390,
+ 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
+ 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
+
+ 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398,
+ 1399, 1400, 1386, 1386, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 240, 241, 240, 241, 240, 241, 240, 241,
+ 240, 241, 240, 241, 240, 241, 240, 241,
+ 240, 241, 240, 241, 240, 241, 240, 241,
+ 240, 241, 240, 241, 240, 241, 240, 241,
+
+ 244, 245, 240, 241, 240, 241, 240, 241,
+ 240, 241, 240, 241, 240, 241, 1401, 228,
+ 1402, 1402, 1402, 1403, 1404, 1404, 1404, 1404,
+ 1404, 1404, 1404, 1404, 228, 228, 1403, 1405,
+
+ 240, 241, 240, 241, 240, 241, 240, 241,
+ 240, 241, 240, 241, 240, 241, 240, 241,
+ 240, 241, 240, 241, 240, 241, 240, 241,
+ 177, 177, 177, 177, 177, 177, 177, 1404,
+
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+
+ 1406, 1406, 1406, 1406, 1406, 1406, 1407, 1407,
+ 1407, 1407, 1407, 1407, 1407, 1407, 1407, 1407,
+ 1408, 1408, 1409, 1410, 1411, 1411, 1411, 1410,
+ 177, 177, 177, 177, 177, 177, 177, 177,
1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412,
1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412,
- 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412,
- 1412, 1412, 1412, 1412, 1412, 1412, 1413, 1413,
-
- 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414,
- 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414,
- 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414,
- 1414, 1414, 1414, 1414, 1414, 1414, 1414, 175,
-
- 175, 175, 1414, 1414, 1414, 1414, 1414, 1414,
- 175, 175, 1414, 1414, 1414, 1414, 1414, 1414,
- 175, 175, 1414, 1414, 1414, 1414, 1414, 1414,
- 175, 175, 1414, 1414, 1414, 175, 175, 175,
-
- 50, 12, 1392, 1410, 1145, 12, 12, 175,
- 51, 36, 36, 36, 36, 51, 51, 175,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1415, 1415, 1415, 1416, 51, 1417, 1417,
-
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 175, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
-
- 805, 805, 805, 805, 805, 805, 805, 175,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 175, 805, 805, 175, 805,
-
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 175, 175,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 175, 175,
-
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
-
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 175, 175, 175, 175, 175,
-
- 1418, 1419, 1418, 175, 175, 175, 175, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
-
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
- 1420, 1420, 1420, 1420, 175, 175, 175, 1421,
- 1421, 1421, 1421, 1421, 1421, 1421, 1421, 1421,
-
- 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422,
- 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422,
- 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422,
- 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422,
-
- 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422,
- 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422,
- 1422, 1422, 1422, 1422, 1422, 1423, 1423, 1423,
- 1423, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
-
- 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
- 1424, 1424, 1423, 175, 175, 175, 175, 175,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 175, 175, 175, 175,
-
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
- 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
-
- 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
- 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
- 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
- 1124, 1124, 1124, 1124, 1124, 930, 175, 175,
-
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 175, 175, 175,
-
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 804, 804, 804, 804, 804, 804, 804,
- 804, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425,
- 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425,
- 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425,
- 1425, 1425, 1425, 1425, 1425, 1425, 1425, 175,
-
- 1426, 1426, 1426, 1426, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425,
- 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425,
-
- 1425, 1427, 1425, 1425, 1425, 1425, 1425, 1425,
- 1425, 1425, 1427, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 175, 1418,
-
- 735, 735, 735, 735, 175, 175, 175, 175,
- 735, 735, 735, 735, 735, 735, 735, 735,
- 1428, 1429, 1429, 1429, 1429, 1429, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430,
- 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430,
- 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430,
- 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430,
+ 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1413,
+ 1413, 1413, 1413, 1316, 1316, 1316, 1316, 1316,
+
+ 1414, 1414, 995, 996, 995, 996, 995, 996,
+ 995, 996, 995, 996, 995, 996, 995, 996,
+ 993, 993, 995, 996, 995, 996, 995, 996,
+ 995, 996, 995, 996, 995, 996, 995, 996,
+
+ 995, 996, 995, 996, 995, 996, 995, 996,
+ 995, 996, 995, 996, 995, 996, 995, 996,
+ 995, 996, 995, 996, 995, 996, 995, 996,
+ 995, 996, 995, 996, 995, 996, 995, 996,
+
+ 995, 996, 995, 996, 995, 996, 995, 996,
+ 995, 996, 995, 996, 995, 996, 995, 996,
+ 1284, 993, 993, 993, 993, 993, 993, 993,
+ 993, 995, 996, 995, 996, 1415, 995, 996,
+
+ 995, 996, 995, 996, 995, 996, 995, 996,
+ 1316, 1416, 1416, 995, 996, 1417, 1418, 177,
+ 1419, 1420, 1421, 1422, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1419, 1420, 1419, 1420, 1419, 1420, 1419, 1420,
+ 1419, 1420, 1423, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1424, 1424, 1418, 1425, 1425, 1425, 1425, 1425,
+
+ 1426, 1426, 1427, 1426, 1426, 1426, 1428, 1426,
+ 1426, 1426, 1426, 1427, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+
+ 1426, 1426, 1426, 1429, 1429, 1427, 1427, 1429,
+ 1430, 1430, 1430, 1430, 177, 177, 177, 177,
+ 1367, 1367, 1367, 1367, 1367, 1367, 685, 685,
+ 1155, 1431, 177, 177, 177, 177, 177, 177,
- 1430, 1430, 1430, 1430, 1430, 1430, 1431, 1431,
+ 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
- 1432, 1432, 1432, 1432, 1432, 1432, 1433, 1433,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
-
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 805, 805,
- 805, 805, 805, 805, 805, 805, 175, 175,
-
- 813, 814, 815, 816, 817, 818, 819, 820,
- 821, 822, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1434, 1434, 1434, 1434, 1434, 1434, 252, 252,
- 1434, 252, 1434, 1434, 1434, 1434, 1434, 1434,
- 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434,
- 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434,
-
- 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434,
- 1434, 1434, 1434, 1434, 1434, 1434, 1434, 1434,
- 1434, 1434, 1434, 1434, 1434, 1434, 252, 1434,
- 1434, 252, 252, 252, 1434, 252, 252, 1434,
-
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 252, 1435,
- 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
+ 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432,
+ 1432, 1432, 1432, 1432, 1433, 1433, 1434, 1434,
+ 177, 177, 177, 177, 177, 177, 177, 177,
- 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
- 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
- 1437, 1437, 1437, 1437, 1437, 1437, 1438, 1438,
- 1438, 1438, 1436, 1436, 252, 252, 252, 1439,
-
- 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440,
- 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440,
- 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440,
- 1440, 1440, 252, 252, 252, 252, 252, 1441,
-
- 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442,
- 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442,
- 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442,
- 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442,
-
- 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442,
- 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442,
- 1442, 1442, 1442, 1442, 1442, 1442, 1442, 1442,
- 252, 252, 252, 252, 252, 252, 1442, 1442,
-
- 1443, 1327, 1327, 1327, 252, 1327, 1327, 252,
- 252, 252, 252, 252, 1327, 841, 1327, 737,
- 1443, 1443, 1443, 1443, 252, 1443, 1443, 1443,
- 252, 1443, 1443, 1443, 1443, 1443, 1443, 1443,
-
- 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443,
- 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443,
- 1443, 1443, 1443, 1443, 252, 252, 252, 252,
- 737, 1444, 841, 252, 252, 252, 252, 1328,
-
- 1445, 1446, 1447, 1448, 1449, 1449, 1449, 1449,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 1450, 1450, 1450, 1450, 1450, 1450, 1451, 1451,
- 1452, 252, 252, 252, 252, 252, 252, 252,
-
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 1436, 1436, 392,
-
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389,
-
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 252, 252,
- 252, 1247, 1247, 1247, 1247, 1247, 1247, 1247,
-
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 252, 252,
+ 1435, 1435, 1436, 1436, 1436, 1436, 1436, 1436,
+ 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
+ 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 389, 389, 252, 252, 252, 252, 252,
1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
+ 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
+ 1436, 1436, 1436, 1436, 1435, 1435, 1435, 1435,
+ 1435, 1435, 1435, 1435, 1435, 1435, 1435, 1435,
+
+ 1435, 1435, 1435, 1435, 1437, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 1438, 1438,
+ 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446,
+ 1447, 1448, 177, 177, 177, 177, 177, 177,
+
+ 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449,
+ 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449,
+ 1449, 1449, 435, 435, 435, 435, 435, 435,
+ 1450, 1450, 1450, 435, 177, 177, 177, 177,
+
+ 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458,
+ 1459, 1460, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+
+ 1461, 1461, 1461, 1461, 1461, 1461, 1462, 1462,
+ 1462, 1462, 1462, 1463, 1463, 1463, 1464, 1465,
+ 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466,
+ 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466,
+
+ 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1467,
+ 1467, 1467, 1467, 1467, 1467, 1467, 1467, 1467,
+ 1467, 1467, 1468, 1469, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 1470,
+
+ 733, 733, 733, 733, 733, 733, 733, 733,
+ 733, 733, 733, 733, 733, 733, 733, 733,
+ 733, 733, 733, 733, 733, 733, 733, 733,
+ 733, 733, 733, 733, 733, 177, 177, 177,
+
+ 1471, 1471, 1471, 1472, 1473, 1473, 1473, 1473,
+ 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473,
+ 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473,
+ 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473,
+
+ 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473,
+ 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473,
+ 1473, 1473, 1473, 1474, 1472, 1472, 1471, 1471,
+ 1471, 1471, 1472, 1472, 1471, 1472, 1472, 1472,
+
+ 1475, 1476, 1476, 1476, 1476, 1476, 1476, 1477,
+ 1478, 1478, 1476, 1476, 1476, 1476, 177, 1479,
+ 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487,
+ 1488, 1489, 177, 177, 177, 177, 1476, 1476,
+
+ 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
+ 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
+ 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
+ 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
+
+ 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490,
+ 1490, 1491, 1491, 1491, 1491, 1491, 1491, 1492,
+ 1492, 1491, 1491, 1492, 1492, 1491, 1491, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1490, 1490, 1490, 1491, 1490, 1490, 1490, 1490,
+ 1490, 1490, 1490, 1490, 1491, 1492, 177, 177,
+ 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500,
+ 1501, 1502, 177, 177, 1503, 1504, 1504, 1504,
+
+ 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
+ 1505, 1505, 1505, 1505, 1505, 1505, 1505, 1505,
+ 1506, 1505, 1505, 1505, 1505, 1505, 1505, 1507,
+ 1507, 1507, 1505, 721, 177, 177, 177, 177,
+
+ 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
+ 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
+ 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
+ 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
+
+ 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
+ 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
+ 1509, 1508, 1509, 1509, 1510, 1508, 1508, 1509,
+ 1509, 1508, 1508, 1508, 1508, 1508, 1509, 1509,
+
+ 1508, 1509, 1508, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 1508, 1508, 1511, 1512, 1512,
- 389, 389, 389, 389, 389, 389, 389, 389,
- 389, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
-
- 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460,
- 1461, 1462, 1462, 1462, 1462, 1462, 1462, 1462,
- 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462,
- 1462, 1462, 1462, 1462, 1462, 1462, 1462, 252,
-
- 901, 902, 901, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 902, 902, 902, 902, 902, 902, 902, 902,
- 902, 902, 902, 902, 902, 902, 1234, 1463,
- 1463, 904, 904, 904, 904, 904, 175, 175,
- 175, 175, 1464, 1465, 1466, 1467, 1468, 1469,
- 1470, 1471, 1472, 1473, 1473, 1473, 1473, 1473,
- 1473, 1473, 1473, 1473, 1473, 1473, 1474, 1475,
- 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1337, 1337, 914, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 914, 914, 914, 1337, 1337, 1337, 1337, 914,
- 914, 1347, 1338, 911, 911, 1484, 1308, 1308,
- 1308, 1308, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 175, 175, 175, 175, 175, 175, 175,
- 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492,
- 1493, 1494, 175, 175, 175, 175, 175, 175,
-
- 1495, 1495, 1495, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 1344,
- 1344, 1344, 1344, 1344, 887, 1344, 1344, 1344,
- 1344, 1344, 1344, 886, 886, 175, 1485, 1486,
- 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494,
- 1496, 1345, 1345, 1345, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1344, 1344, 887, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 887, 887, 887, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 887,
- 1497, 898, 898, 898, 898, 1345, 1345, 909,
- 1496, 175, 175, 175, 175, 175, 175, 175,
- 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492,
- 1493, 1494, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 1344, 887, 1344, 887, 887,
- 1344, 1344, 1344, 1344, 1344, 1344, 1497, 1498,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492,
- 1493, 1494, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
-
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 864,
- 864, 864, 864, 864, 864, 864, 864, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 1499, 1499, 1499, 1499, 1499,
- 1499, 1499, 1499, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 879, 879, 879, 879, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
-
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 1500, 1500, 1500, 1501, 1501, 1501, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 1501, 754, 754, 754, 1500, 1501,
- 1500, 1501, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
-
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 1500, 1501, 1501, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
-
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 754,
- 754, 754, 754, 754, 754, 754, 754, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
-
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 899, 899, 899, 899, 899, 899, 899,
- 899, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 898, 898, 898,
- 898, 898, 898, 898, 898, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 898, 887, 887, 887, 887, 887, 887, 887,
- 887, 887, 887, 887, 887, 887, 887, 887,
- 887, 887, 887, 887, 887, 887, 887, 887,
- 887, 887, 887, 887, 887, 887, 887, 887,
- 887, 887, 887, 887, 887, 887, 887, 887,
- 887, 887, 887, 887, 887, 887, 887, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 1344,
- 1344, 1344, 1344, 1346, 1346, 1346, 1346, 1346,
- 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1502, 1503, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 175,
- 175, 1124, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1505, 1506, 1507,
- 1507, 1507, 1504, 1504, 1504, 1508, 1505, 1505,
- 1505, 1505, 1505, 1509, 1509, 1509, 1509, 1509,
- 1509, 1509, 1509, 1510, 1510, 1510, 1510, 1510,
- 1510, 1510, 1510, 1504, 1504, 1511, 1511, 1511,
- 1511, 1511, 1510, 1510, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1511, 1511, 1511, 1511, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
- 1504, 1504, 1504, 1504, 1504, 1504, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
- 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
- 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
- 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
- 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
- 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
- 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
- 1424, 1424, 1424, 1424, 1424, 1424, 1424, 1424,
- 1424, 1424, 1512, 1512, 1512, 1424, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 811, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
1513, 1513, 1513, 1513, 1513, 1513, 1513, 1513,
- 1513, 1513, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 175, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1514, 175, 1514, 1514,
- 175, 175, 1514, 175, 175, 1514, 1514, 175,
- 175, 1514, 1514, 1514, 1514, 175, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1515, 1515,
- 1515, 1515, 175, 1515, 175, 1515, 1515, 1515,
- 1515, 105, 1515, 1515, 175, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
-
- 1515, 1515, 1515, 1515, 1514, 1514, 175, 1514,
- 1514, 1514, 1514, 175, 175, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 175, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 175, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1514, 1514, 175, 1514, 1514, 1514, 1514, 175,
- 1514, 1514, 1514, 1514, 1514, 175, 1514, 175,
- 175, 175, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 175, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
-
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 106, 106, 175, 175,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1516, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1517, 1515, 1515, 1515, 1515,
- 1515, 1515, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1516, 1515, 1515, 1515, 1515,
-
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1517, 1515, 1515,
- 1515, 1515, 1515, 1515, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1516, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1517,
- 1515, 1515, 1515, 1515, 1515, 1515, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1516,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1517, 1515, 1515, 1515, 1515, 1515, 1515,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
- 1514, 1516, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1515, 1515, 1515, 1515, 1515,
- 1515, 1515, 1515, 1517, 1515, 1515, 1515, 1515,
- 1515, 1515, 1518, 1221, 175, 175, 1519, 1520,
- 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528,
- 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526,
- 1527, 1528, 1519, 1520, 1521, 1522, 1523, 1524,
- 1525, 1526, 1527, 1528, 1519, 1520, 1521, 1522,
- 1523, 1524, 1525, 1526, 1527, 1528, 1519, 1520,
- 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528,
-
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
- 252, 252, 252, 252, 252, 252, 252, 252,
-
- 1529, 1529, 1529, 1529, 284, 1529, 1529, 1529,
- 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
- 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
- 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
- 284, 1529, 1529, 284, 1529, 284, 284, 1529,
- 284, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
- 1529, 1529, 1529, 284, 1529, 1529, 1529, 1529,
- 284, 1529, 284, 1529, 284, 284, 284, 284,
- 284, 284, 1529, 284, 284, 284, 284, 1529,
- 284, 1529, 284, 1529, 284, 1529, 1529, 1529,
- 284, 1529, 1529, 284, 1529, 284, 284, 1529,
- 284, 1529, 284, 1529, 284, 1529, 284, 1529,
- 284, 1529, 1529, 284, 1529, 284, 284, 1529,
- 1529, 1529, 1529, 284, 1529, 1529, 1529, 1529,
- 1529, 1529, 1529, 284, 1529, 1529, 1529, 1529,
- 284, 1529, 1529, 1529, 1529, 284, 1529, 284,
- 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
- 1529, 1529, 284, 1529, 1529, 1529, 1529, 1529,
- 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
- 1529, 1529, 1529, 1529, 284, 284, 284, 284,
- 284, 1529, 1529, 1529, 284, 1529, 1529, 1529,
- 1529, 1529, 284, 1529, 1529, 1529, 1529, 1529,
- 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
- 1529, 1529, 1529, 1529, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
- 1530, 1530, 284, 284, 284, 284, 284, 284,
- 284, 284, 284, 284, 284, 284, 284, 284,
+ 1513, 1513, 1513, 1514, 1515, 1515, 1514, 1514,
+ 1516, 1516, 1513, 1517, 1517, 1514, 1518, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 177, 1519, 1519, 1519, 1519, 1519, 1519, 177,
+ 177, 1519, 1519, 1519, 1519, 1519, 1519, 177,
+ 177, 1519, 1519, 1519, 1519, 1519, 1519, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1519, 1519, 1519, 1519, 1519, 1519, 1519, 177,
+ 1519, 1519, 1519, 1519, 1519, 1519, 1519, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
+ 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
+ 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
+ 1520, 1520, 1520, 1520, 1520, 1520, 1520, 1520,
+
+ 1520, 1520, 1520, 1521, 1521, 1522, 1521, 1521,
+ 1522, 1521, 1521, 1523, 1521, 1524, 177, 177,
+ 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532,
+ 1533, 1534, 177, 177, 177, 177, 177, 177,
+
+ 1535, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1535, 1536, 1536, 1536,
+
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1535, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1535, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1535, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1535, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1535, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+
+ 1536, 1536, 1536, 1536, 1535, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+ 1536, 1536, 1536, 1536, 1536, 1536, 1536, 1536,
+
+ 1536, 1536, 1536, 1536, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 735, 735, 735, 735, 735, 735, 735, 735,
+ 735, 735, 735, 735, 735, 735, 735, 735,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 175, 175, 175, 175,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1181, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 175,
- 175, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 175,
- 175, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 175, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1531, 1531, 1532, 1533, 1534, 1535, 1536, 1537,
- 1538, 1539, 1540, 175, 175, 175, 175, 175,
- 681, 681, 681, 681, 681, 681, 681, 681,
- 681, 681, 681, 681, 681, 681, 681, 681,
- 681, 681, 681, 681, 681, 681, 681, 681,
- 681, 681, 681, 681, 681, 681, 681, 175,
- 1541, 681, 1541, 1541, 1541, 1541, 1541, 1541,
- 1541, 1541, 1541, 1541, 1541, 681, 1541, 681,
- 1541, 1541, 681, 1541, 1541, 1541, 681, 1541,
- 1541, 1541, 681, 681, 681, 681, 681, 1541,
- 1541, 1541, 1541, 1541, 1541, 1541, 1541, 681,
- 1541, 1541, 1541, 1541, 1541, 1541, 1541, 681,
- 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
- 1541, 1541, 1542, 1542, 175, 175, 175, 175,
- 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
- 1541, 681, 1541, 681, 681, 1541, 1541, 681,
- 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
- 1541, 1541, 681, 681, 681, 681, 1541, 1541,
- 681, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
- 1541, 1541, 1541, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 1543, 1543,
- 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543,
- 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543,
- 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543,
-
- 1293, 1544, 1544, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293,
- 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293,
- 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293,
- 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293,
- 1293, 1293, 1544, 1544, 1544, 1544, 1544, 1544,
- 1544, 1544, 1544, 175, 175, 175, 175, 175,
- 1293, 1293, 1293, 1293, 1293, 1293, 1293, 1293,
- 1293, 175, 175, 175, 175, 175, 175, 175,
- 1544, 1544, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1151, 1151, 1151, 1151, 1151, 1151, 175, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 175, 175, 175,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1150, 1150, 1151,
- 1151, 1151, 1151, 1151, 1150, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 175, 1151, 1151,
- 1151, 1151, 1151, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 175,
- 1151, 175, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1150, 1151, 1150, 1151, 1150, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1150,
- 1151, 1150, 1150, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 175, 1151, 1151, 1151, 1151, 175, 175, 175,
-
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 175, 175,
- 1542, 1542, 1542, 1542, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 1151, 1151, 1151, 1151, 1151,
-
- 1545, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1545, 1151, 1151, 1151, 1545, 1151, 1545,
- 1151, 1545, 1151, 1545, 1151, 1151, 1151, 1545,
- 1151, 1151, 1151, 1151, 1151, 1151, 1545, 1545,
- 1151, 1151, 1151, 1151, 1545, 1151, 1545, 1545,
- 1151, 1151, 1151, 1151, 1545, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 175, 175, 175, 175, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
- 1150, 1150, 1150, 1150, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
-
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 1546, 1546,
-
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
-
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
-
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
-
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1302, 1302, 1302,
- 1302, 1302, 1302, 1302, 1302, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
-
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1503,
- 1503, 1503, 1503, 1503, 1503, 1503, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
-
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
-
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
- 1547, 1547, 1547, 1547, 1547, 1547, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
-
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299,
- 1299, 1299, 1299, 1299, 1299, 1299, 1546, 1546,
-
- 1083, 1509, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
- 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
- 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
- 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
- 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
- 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
- 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
- 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
- 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
- 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
- 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
- 1509, 1509, 1509, 1509, 1509, 1509, 1509, 1509,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
+ 735, 735, 735, 735, 735, 735, 735, 177,
+ 177, 177, 177, 737, 737, 737, 737, 737,
+ 737, 737, 737, 737, 737, 737, 737, 737,
+ 737, 737, 737, 737, 737, 737, 737, 737,
+
+ 737, 737, 737, 737, 737, 737, 737, 737,
+ 737, 737, 737, 737, 737, 737, 737, 737,
+ 737, 737, 737, 737, 737, 737, 737, 737,
+ 737, 737, 737, 737, 177, 177, 177, 177,
+
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+ 1537, 1537, 1537, 1537, 1537, 1537, 1537, 1537,
+
+ 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
+ 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
+ 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
+ 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
+
+ 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373,
+ 1373, 1373, 1373, 1373, 1373, 1373, 1377, 1377,
+ 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
+ 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
+
+ 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
+ 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
+ 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
+ 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
+
+ 1539, 1539, 1539, 1539, 1539, 1539, 1539, 1539,
+ 1539, 1539, 1539, 1376, 1376, 1376, 1372, 1372,
+ 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374,
+ 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374,
+
+ 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374,
+ 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374,
+ 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374,
+ 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374,
+
+ 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374,
+ 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374,
+ 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374,
+ 1374, 1374, 1372, 1372, 1372, 1372, 1372, 1372,
+
+ 1540, 1541, 1542, 1543, 1544, 1545, 1545, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 1546, 1547, 1548, 1549, 1550,
+ 177, 177, 177, 177, 177, 1551, 1552, 283,
+
+ 283, 283, 283, 283, 283, 283, 283, 283,
+ 283, 1553, 283, 283, 283, 283, 283, 283,
+ 283, 283, 283, 283, 283, 283, 283, 256,
+ 283, 283, 283, 283, 283, 256, 283, 256,
+
+ 283, 283, 256, 283, 283, 256, 283, 283,
+ 283, 283, 283, 283, 283, 283, 283, 283,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 1554, 1554, 1554, 1554, 1554, 1554,
+ 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554,
+
+ 1554, 1554, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 1105, 1331,
+
+ 288, 288, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 288, 288, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+ 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555,
+ 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555,
+
+ 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555,
+ 1555, 1555, 1555, 1555, 1555, 1555, 1555, 1555,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 1556, 1177, 288, 288,
+
+ 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557,
+ 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1557,
+ 1558, 1559, 1560, 1561, 1562, 1563, 1563, 1564,
+ 1565, 1566, 177, 177, 177, 177, 177, 177,
+
+ 153, 153, 153, 153, 981, 981, 981, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1326, 1567, 1567, 1568, 1568, 1105, 1331, 1105,
+ 1331, 1105, 1331, 1105, 1331, 1105, 1331, 1105,
+
+ 1331, 1105, 1331, 1105, 1331, 1341, 1341, 1569,
+ 1570, 1326, 1326, 1326, 1326, 1568, 1568, 1568,
+ 1571, 1572, 1573, 177, 1574, 1575, 9, 9,
+ 1567, 16, 1124, 16, 1124, 16, 1124, 1576,
+
+ 1326, 1326, 1577, 1578, 1579, 1580, 1581, 177,
+ 1326, 12, 13, 1326, 177, 177, 177, 177,
+ 304, 304, 304, 1582, 304, 288, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 304, 304, 304,
+ 304, 304, 304, 304, 304, 288, 288, 1583,
+
+ 177, 9, 1326, 1576, 12, 13, 1326, 1584,
+ 16, 1124, 1326, 1577, 1571, 1578, 1573, 1585,
+ 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593,
+ 1594, 1595, 1575, 1574, 1596, 1581, 1597, 9,
+
+ 1326, 1598, 1598, 1598, 1598, 1598, 1598, 1598,
+ 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598,
+ 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598,
+ 1598, 1598, 1598, 39, 1326, 46, 1599, 1568,
+
+ 1599, 1600, 1600, 1600, 1600, 1600, 1600, 1600,
+ 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600,
+ 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600,
+ 1600, 1600, 1600, 39, 1581, 46, 1581, 1245,
+
+ 1246, 1325, 16, 1124, 1324, 1352, 1601, 1350,
+ 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350,
+ 1353, 1601, 1601, 1601, 1601, 1601, 1601, 1601,
+ 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601,
+
+ 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601,
+ 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601,
+ 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601,
+ 1601, 1601, 1601, 1601, 1601, 1601, 1602, 1602,
+
+ 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603,
+ 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603,
+ 1603, 1603, 1603, 1603, 1603, 1603, 1603, 1603,
+ 1603, 1603, 1603, 1603, 1603, 1603, 1603, 177,
+
+ 177, 177, 1603, 1603, 1603, 1603, 1603, 1603,
+ 177, 177, 1603, 1603, 1603, 1603, 1603, 1603,
+ 177, 177, 1603, 1603, 1603, 1603, 1603, 1603,
+ 177, 177, 1603, 1603, 1603, 177, 177, 177,
+
+ 50, 12, 1581, 1599, 1206, 12, 12, 177,
+ 51, 36, 36, 36, 36, 51, 51, 177,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1604, 1604, 1604, 1605, 51, 1606, 1606,
+
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
+ 1607, 1607, 1607, 1607, 177, 1607, 1607, 1607,
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
+
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 177,
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
+ 1607, 1607, 1607, 177, 1607, 1607, 177, 1607,
+
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
+ 1607, 1607, 1607, 1607, 1607, 1607, 177, 177,
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
+ 1607, 1607, 1607, 1607, 1607, 1607, 177, 177,
+
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
+
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
+ 1607, 1607, 1607, 1607, 1607, 1607, 1607, 1607,
+ 1607, 1607, 1607, 177, 177, 177, 177, 177,
+
+ 1608, 1609, 1608, 177, 177, 177, 177, 1610,
+ 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
+ 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
+ 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
+
+ 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
+ 1610, 1610, 1610, 1610, 1610, 1610, 1610, 1610,
+ 1610, 1610, 1610, 1610, 177, 177, 177, 1611,
+ 1611, 1611, 1611, 1611, 1611, 1611, 1611, 1611,
+
+ 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612,
+ 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612,
+ 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612,
+ 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612,
+
+ 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612,
+ 1612, 1612, 1612, 1612, 1612, 1612, 1612, 1612,
+ 1612, 1612, 1612, 1612, 1612, 1613, 1613, 1613,
+ 1613, 1614, 1614, 1614, 1614, 1614, 1614, 1614,
+
+ 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614,
+ 1614, 1614, 1613, 177, 177, 177, 177, 177,
+ 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239,
+ 1239, 1239, 1239, 1239, 177, 177, 177, 177,
+
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
+ 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
+
+ 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
+ 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
+ 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
+ 1185, 1185, 1185, 1185, 1185, 984, 177, 177,
+
+ 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615,
+ 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615,
+ 1615, 1615, 1615, 1615, 1615, 1615, 1615, 1615,
+ 1615, 1615, 1615, 1615, 1615, 177, 177, 177,
+
+ 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
+ 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
+ 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
+ 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
+
+ 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
+ 1616, 1616, 1616, 1616, 1616, 1616, 1616, 1616,
+ 1616, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617,
+ 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617,
+ 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617,
+ 1617, 1617, 1617, 1617, 1617, 1617, 1617, 177,
+
+ 1618, 1618, 1618, 1618, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619,
+ 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619,
+
+ 1619, 1620, 1619, 1619, 1619, 1619, 1619, 1619,
+ 1619, 1619, 1620, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621,
+ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621,
+ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621,
+ 1621, 1621, 1621, 1621, 1621, 1621, 177, 1622,
+
+ 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623,
+ 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623,
+ 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623,
+ 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623,
+
+ 1623, 1623, 1623, 1623, 177, 177, 177, 177,
+ 1623, 1623, 1623, 1623, 1623, 1623, 1623, 1623,
+ 1624, 1625, 1625, 1625, 1625, 1625, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
+ 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
+ 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
+ 1626, 1626, 1626, 1626, 1626, 1626, 1626, 1626,
+
+ 1626, 1626, 1626, 1626, 1626, 1626, 1627, 1627,
+ 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628,
+ 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628,
+ 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628,
+
+ 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628,
+ 1628, 1628, 1628, 1628, 1628, 1628, 1629, 1629,
+ 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
+ 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
+
+ 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
+ 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
+ 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
+ 1630, 1630, 1630, 1630, 1630, 1630, 1630, 1630,
+
+ 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
+ 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
+ 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
+ 1631, 1631, 1631, 1631, 1631, 1631, 177, 177,
+
+ 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639,
+ 1640, 1641, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1642, 1642, 1642, 1642, 1642, 1642, 256, 256,
+ 1642, 256, 1642, 1642, 1642, 1642, 1642, 1642,
+ 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642,
+ 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642,
+
+ 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642,
+ 1642, 1642, 1642, 1642, 1642, 1642, 1642, 1642,
+ 1642, 1642, 1642, 1642, 1642, 1642, 256, 1642,
+ 1642, 256, 256, 256, 1642, 256, 256, 1642,
+
+ 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643,
+ 1643, 1643, 1643, 1643, 1643, 1643, 1643, 1643,
+ 1643, 1643, 1643, 1643, 1643, 1643, 256, 1644,
+ 1645, 1645, 1645, 1645, 1645, 1645, 1645, 1645,
+
+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646,
+ 1646, 1646, 1646, 1646, 1646, 1646, 1646, 1646,
+ 1646, 1646, 1646, 1646, 1646, 1646, 1647, 1647,
+ 1647, 1647, 1648, 1648, 256, 256, 256, 1649,
+
+ 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650,
+ 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650,
+ 1650, 1650, 1650, 1650, 1650, 1650, 1650, 1650,
+ 1650, 1650, 256, 256, 256, 256, 256, 1651,
+
+ 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652,
+ 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652,
+ 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652,
+ 1652, 1652, 1652, 1652, 1652, 1652, 1652, 1652,
+
+ 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653,
+ 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653,
+ 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653,
+ 256, 256, 256, 256, 256, 256, 1653, 1653,
+
+ 1654, 1655, 1655, 1655, 256, 1655, 1655, 256,
+ 256, 256, 256, 256, 1655, 1656, 1655, 1657,
+ 1654, 1654, 1654, 1654, 256, 1654, 1654, 1654,
+ 256, 1654, 1654, 1654, 1654, 1654, 1654, 1654,
+
+ 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654,
+ 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654,
+ 1654, 1654, 1654, 1654, 256, 256, 256, 256,
+ 1657, 1658, 1656, 256, 256, 256, 256, 1659,
+
+ 1660, 1661, 1662, 1663, 1664, 1664, 1664, 1664,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 1665, 1665, 1665, 1665, 1665, 1665, 1666, 1666,
+ 1667, 256, 256, 256, 256, 256, 256, 256,
+
+ 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668,
+ 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668,
+ 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668,
+ 1668, 1668, 1668, 1668, 1668, 1669, 1669, 1670,
+
+ 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671,
+ 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671,
+ 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671,
+ 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671,
+
+ 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671,
+ 1671, 1671, 1671, 1671, 1671, 1671, 1671, 1671,
+ 1671, 1671, 1671, 1671, 1671, 1671, 256, 256,
+ 256, 1672, 1672, 1672, 1672, 1672, 1672, 1672,
+
+ 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673,
+ 1673, 1673, 1673, 1673, 1673, 1673, 1673, 1673,
+ 1673, 1673, 1673, 1673, 1673, 1673, 256, 256,
+ 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674,
+
+ 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
+ 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675,
+ 1675, 1675, 1675, 256, 256, 256, 256, 256,
+ 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676,
+
+ 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
+ 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
+ 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
+ 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
+
+ 1677, 1677, 1677, 1677, 1677, 1677, 1677, 1677,
+ 1677, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+
+ 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685,
+ 1686, 1687, 1687, 1687, 1687, 1687, 1687, 1687,
+ 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687,
+ 1687, 1687, 1687, 1687, 1687, 1687, 1687, 256,
+
+ 1688, 1689, 1688, 1690, 1690, 1690, 1690, 1690,
+ 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690,
+ 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690,
+ 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690,
+ 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690,
+ 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690,
+ 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690,
+ 1689, 1689, 1689, 1689, 1689, 1689, 1689, 1689,
+ 1689, 1689, 1689, 1689, 1689, 1689, 1691, 1692,
+ 1692, 1693, 1693, 1693, 1693, 1693, 177, 177,
+ 177, 177, 1694, 1695, 1696, 1697, 1698, 1699,
+ 1700, 1701, 1702, 1703, 1703, 1703, 1703, 1703,
+ 1703, 1703, 1703, 1703, 1703, 1703, 1704, 1705,
+ 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1714, 1714, 1715, 1716, 1716, 1716, 1716, 1716,
+ 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
+ 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
+ 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
+ 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
+ 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
+ 1715, 1715, 1715, 1714, 1714, 1714, 1714, 1715,
+ 1715, 1717, 1718, 1719, 1719, 1720, 1721, 1721,
+ 1721, 1721, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+ 1722, 177, 177, 177, 177, 177, 177, 177,
+ 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730,
+ 1731, 1732, 177, 177, 177, 177, 177, 177,
+
+ 1733, 1733, 1733, 1734, 1734, 1734, 1734, 1734,
+ 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734,
+ 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734,
+ 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1734,
+ 1734, 1734, 1734, 1734, 1734, 1734, 1734, 1735,
+ 1735, 1735, 1735, 1735, 1736, 1735, 1735, 1735,
+ 1735, 1735, 1735, 1737, 1737, 177, 1738, 1739,
+ 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747,
+ 1748, 1749, 1749, 1749, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1750, 1750, 1751, 1752, 1752, 1752, 1752, 1752,
+ 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752,
+ 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752,
+ 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752,
+ 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752,
+ 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752,
+ 1752, 1752, 1752, 1751, 1751, 1751, 1750, 1750,
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1751,
+ 1753, 1752, 1752, 1752, 1752, 1754, 1754, 1755,
+ 1756, 177, 177, 177, 177, 177, 177, 177,
+ 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764,
+ 1765, 1766, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1768, 1769, 1768, 1769, 1769,
+ 1768, 1768, 1768, 1768, 1768, 1768, 1770, 1771,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779,
+ 1780, 1781, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 1782,
+ 1782, 1782, 1782, 1782, 1782, 1782, 1782, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
+ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
+ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
+ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
+ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
+ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
+ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
+ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
+ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
+ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
+ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
+ 1783, 1783, 1783, 1783, 1783, 1783, 1783, 1783,
+ 1783, 1783, 1783, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1784, 1784, 1784, 1784, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1786, 1786, 1786, 1787, 1787, 1787, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1787, 1785, 1785, 1785, 1786, 1787,
+ 1786, 1787, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1786, 1787, 1787, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 1788, 1788, 1788, 1788, 1788, 1788, 1788,
+ 1788, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789,
+ 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789,
+ 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789,
+ 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789,
+ 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789,
+ 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789,
+ 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789,
+ 1789, 1789, 1789, 1789, 1789, 1789, 1789, 1789,
+ 1789, 1789, 1789, 1789, 1789, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1789, 1790, 1790, 1790, 1790, 1790, 1790, 1790,
+ 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790,
+ 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790,
+ 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790,
+ 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790,
+ 1790, 1790, 1790, 1790, 1790, 1790, 1790, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 1791,
+ 1791, 1791, 1791, 1792, 1792, 1792, 1792, 1792,
+ 1792, 1792, 1792, 1792, 1792, 1792, 1792, 1792,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1793, 1794, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 177,
+ 177, 1185, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1796, 1797, 1798,
+ 1798, 1798, 1795, 1795, 1795, 1799, 1796, 1796,
+ 1796, 1796, 1796, 1800, 1800, 1800, 1800, 1800,
+ 1800, 1800, 1800, 1801, 1801, 1801, 1801, 1801,
+ 1801, 1801, 1801, 1795, 1795, 1802, 1802, 1802,
+ 1802, 1802, 1801, 1801, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1802, 1802, 1802, 1802, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614,
+ 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614,
+ 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614,
+ 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614,
+ 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614,
+ 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614,
+ 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614,
+ 1614, 1614, 1614, 1614, 1614, 1614, 1614, 1614,
+ 1614, 1614, 1803, 1803, 1803, 1614, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1548, 1548, 1548, 1548, 1548, 1548, 1548, 1548,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
-
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
- 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
-
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
-
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1549, 1549,
- 1549, 1549, 1549, 1549, 1549, 1549, 1546, 1546,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804,
+ 1804, 1804, 1804, 1804, 1804, 1804, 1804, 1804,
+ 1804, 1804, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 177, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1805, 177, 1805, 1805,
+ 177, 177, 1805, 177, 177, 1805, 1805, 177,
+ 177, 1805, 1805, 1805, 1805, 177, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1806, 1806,
+ 1806, 1806, 177, 1806, 177, 1806, 1806, 1806,
+ 1806, 1807, 1806, 1806, 177, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+
+ 1806, 1806, 1806, 1806, 1805, 1805, 177, 1805,
+ 1805, 1805, 1805, 177, 177, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 177, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 177, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1805, 1805, 177, 1805, 1805, 1805, 1805, 177,
+ 1805, 1805, 1805, 1805, 1805, 177, 1805, 177,
+ 177, 177, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 177, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1178, 1178, 177, 177,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1808, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1809, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1808, 1806, 1806, 1806, 1806,
+
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1809, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1808, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1809,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1808,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1809, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1805, 1805, 1805, 1805, 1805, 1805, 1805,
+ 1805, 1808, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1809, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1810, 1811, 177, 177, 1812, 1813,
+ 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821,
+ 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819,
+ 1820, 1821, 1812, 1813, 1814, 1815, 1816, 1817,
+ 1818, 1819, 1820, 1821, 1812, 1813, 1814, 1815,
+ 1816, 1817, 1818, 1819, 1820, 1821, 1812, 1813,
+ 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821,
+
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+ 256, 256, 256, 256, 256, 256, 256, 256,
+
+ 1822, 1822, 1822, 1822, 288, 1822, 1822, 1822,
+ 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
+ 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
+ 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
+ 288, 1822, 1822, 288, 1822, 288, 288, 1822,
+ 288, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
+ 1822, 1822, 1822, 288, 1822, 1822, 1822, 1822,
+ 288, 1822, 288, 1822, 288, 288, 288, 288,
+ 288, 288, 1822, 288, 288, 288, 288, 1822,
+ 288, 1822, 288, 1822, 288, 1822, 1822, 1822,
+ 288, 1822, 1822, 288, 1822, 288, 288, 1822,
+ 288, 1822, 288, 1822, 288, 1822, 288, 1822,
+ 288, 1822, 1822, 288, 1822, 288, 288, 1822,
+ 1822, 1822, 1822, 288, 1822, 1822, 1822, 1822,
+ 1822, 1822, 1822, 288, 1822, 1822, 1822, 1822,
+ 288, 1822, 1822, 1822, 1822, 288, 1822, 288,
+ 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
+ 1822, 1822, 288, 1822, 1822, 1822, 1822, 1822,
+ 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
+ 1822, 1822, 1822, 1822, 288, 288, 288, 288,
+ 288, 1822, 1822, 1822, 288, 1822, 1822, 1822,
+ 1822, 1822, 288, 1822, 1822, 1822, 1822, 1822,
+ 1822, 1822, 1822, 1822, 1822, 1822, 1822, 1822,
+ 1822, 1822, 1822, 1822, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+ 1823, 1823, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288,
+
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 177, 177, 177, 177,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,
+ 1242, 1242, 1242, 1242, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 177,
+ 177, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 177,
+ 177, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 177, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1824, 1824, 1825, 1826, 1827, 1828, 1829, 1830,
+ 1831, 1832, 1833, 177, 177, 177, 177, 177,
+ 685, 685, 685, 685, 685, 685, 685, 685,
+ 685, 685, 685, 685, 685, 685, 685, 685,
+ 685, 685, 685, 685, 685, 685, 685, 685,
+ 685, 685, 685, 685, 685, 685, 685, 177,
+ 1834, 685, 1834, 1834, 1834, 1834, 1834, 1834,
+ 1834, 1834, 1834, 1834, 1834, 685, 1834, 685,
+ 1834, 1834, 685, 1834, 1834, 1834, 685, 1834,
+ 1834, 1834, 685, 685, 685, 685, 685, 1834,
+ 1834, 1834, 1834, 1834, 1834, 1834, 1834, 685,
+ 1834, 1834, 1834, 1834, 1834, 1834, 1834, 685,
+ 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834,
+ 1834, 1834, 1835, 1835, 177, 177, 177, 177,
+ 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834,
+ 1834, 685, 1834, 685, 685, 1834, 1834, 685,
+ 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834,
+ 1834, 1834, 685, 685, 685, 685, 1834, 1834,
+ 685, 1834, 1834, 1834, 1834, 1834, 1834, 1834,
+ 1834, 1834, 1834, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 1836, 1836,
+ 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836,
+ 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836,
+ 1836, 1836, 1836, 1836, 1836, 1836, 1836, 1836,
+
+ 1837, 1838, 1838, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
+ 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
+ 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
+ 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
+ 1366, 1366, 1838, 1838, 1838, 1838, 1838, 1838,
+ 1838, 1838, 1838, 177, 177, 177, 177, 177,
+ 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366,
+ 1366, 177, 177, 177, 177, 177, 177, 177,
+ 1838, 1838, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1212, 1212, 1212, 1212, 1212, 1212, 177, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 177, 177, 177,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1211, 1211, 1212,
+ 1212, 1212, 1212, 1212, 1211, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 177, 1212, 1212,
+ 1212, 1212, 1212, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 177,
+ 1212, 177, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1211, 1212, 1211, 1212, 1211, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1211,
+ 1212, 1211, 1211, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 177, 1212, 1212, 1212, 1212, 177, 177, 177,
+
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 177, 177,
+ 1835, 1835, 1835, 1835, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 1212, 1212, 1212, 1212, 1212,
+
+ 1839, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1839, 1212, 1212, 1212, 1839, 1212, 1839,
+ 1212, 1839, 1212, 1839, 1212, 1212, 1212, 1839,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1839, 1839,
+ 1212, 1212, 1212, 1212, 1839, 1212, 1839, 1839,
+ 1212, 1212, 1212, 1212, 1839, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 177, 177, 177, 177, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
+ 1212, 1212, 1212, 1212, 1212, 1212, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
+ 1211, 1211, 1211, 1211, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177,
+ 177, 177, 177, 177, 177, 177, 1840, 1840,
+
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376,
+ 1376, 1376, 1376, 1376, 1376, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1842, 1842,
+ 1842, 1842, 1842, 1842, 1842, 1842, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
+ 1372, 1372, 1372, 1372, 1372, 1372, 1840, 1840,
+
+ 1138, 1800, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
+ 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
+ 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
+ 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
+ 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
+ 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
+ 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
+ 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
+ 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
+ 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
+ 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
+ 1800, 1800, 1800, 1800, 1800, 1800, 1800, 1800,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1844, 1844,
+ 1844, 1844, 1844, 1844, 1844, 1844, 1840, 1840,
};
#define GET_PROP_INDEX(ucs4) \
@@ -4775,488 +4835,427 @@ static const unsigned short uc_property_trie[] = {
(uc_property_trie[uc_property_trie[ucs2>>5] + (ucs2 & 0x1f)])
static const Properties uc_properties[] = {
- { 9, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 21, 0 },
- { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 5, 17, 0 },
- { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 34, 0 },
- { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 5, 35, 0 },
- { 9, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 5, 35, 0 },
- { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 33, 0 },
- { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 21, 0 },
- { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 21, 0 },
- { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 32, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 6, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 },
- { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 0 },
- { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 13, 3, 0 },
- { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 0, 0 },
- { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 2, 0 },
- { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 0 },
- { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 11, 8, 0 },
- { 20, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 16, 0 },
- { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 10, 8, 0 },
- { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 7, 0 },
- { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 8, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 0, 8, 0 },
- { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 21, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 0, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 0 },
- { 22, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 2, 0 },
- { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 0 },
- { 22, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 1, 0 },
- { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 35, 0 },
- { 6, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 4, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 23, 10, 0, 0, -1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 },
- { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 17, 0 },
- { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0 },
- { 26, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 0 },
- { 5, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 18, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 743, 743, 775, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 12, 0 },
- { 5, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 24, 10, 0, 0, -1, -16, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 },
- { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 16, 13, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 121, 121, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 19, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -232, -232, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 98, 98, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -121, 0, 0, -121, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -300, -300, -268, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 195, 195, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 210, 0, 0, 210, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 206, 0, 0, 206, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 205, 0, 0, 205, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 79, 0, 0, 79, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 202, 0, 0, 202, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 203, 0, 0, 203, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 207, 0, 0, 207, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 97, 97, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 211, 0, 0, 211, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 209, 0, 0, 209, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 163, 163, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 213, 0, 0, 213, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 214, 0, 0, 214, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 218, 0, 0, 218, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 217, 0, 0, 217, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 219, 0, 0, 219, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 56, 56, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 2, 0, 1, 2, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 16, 0, 0, 0, -1, 0, 1, -1, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -2, -1, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -79, -79, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 109, 109, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -97, 0, 0, -97, 0, 0, 0, 0, 4, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -56, 0, 0, -56, 0, 0, 0, 0, 4, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -130, 0, 0, -130, 0, 0, 0, 0, 6, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 10795, 0, 0, 10795, 0, 0, 0, 0, 8, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -163, 0, 0, -163, 0, 0, 0, 0, 8, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 10792, 0, 0, 10792, 0, 0, 0, 0, 8, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 10815, 10815, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -195, 0, 0, -195, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 69, 0, 0, 69, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 71, 0, 0, 71, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 10783, 10783, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 10780, 10780, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 10782, 10782, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -210, -210, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -206, -206, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -205, -205, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -202, -202, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -203, -203, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -207, -207, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 3, 3, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -209, -209, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -211, -211, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 10743, 10743, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 10749, 10749, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -213, -213, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -214, -214, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 10727, 10727, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -218, -218, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -69, -69, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -217, -217, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -71, -71, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -219, -219, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 0 },
- { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 18, 0 },
- { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 18, 0 },
- { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 0 },
- { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 0 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 232, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 202, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 240, 0, -1, 0, 0, 84, 84, 116, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 28 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 28 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 4, 28 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 28 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 28 },
- { 0, 17, 232, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 28 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 28 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 28 },
- { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 4, 28 },
- { 0, 17, 234, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 4, 28 },
- { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 4, 28 },
- { 0, 17, 234, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 4, 28 },
- { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 28 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 28 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 1 },
- { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 1 },
+ { 9, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 21, 2 },
+ { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 5, 17, 2 },
+ { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 34, 2 },
+ { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 5, 35, 2 },
+ { 9, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 5, 35, 2 },
+ { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 33, 2 },
+ { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 21, 2 },
+ { 9, 8, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 21, 2 },
+ { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 32, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 6, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 },
+ { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 2 },
+ { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 13, 3, 2 },
+ { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 0, 2 },
+ { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 2, 2 },
+ { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 2 },
+ { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 11, 8, 2 },
+ { 20, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 16, 2 },
+ { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 10, 8, 2 },
+ { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 7, 2 },
+ { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 8, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 0, 8, 2 },
+ { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 21, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 0, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 2 },
+ { 22, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 2, 2 },
+ { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 12, 2 },
+ { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 2 },
+ { 22, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 1, 2 },
+ { 9, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 35, 2 },
+ { 6, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 4, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 23, 10, 0, 0, -1, 16, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 },
+ { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 17, 2 },
+ { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 2 },
+ { 26, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 2 },
+ { 5, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 18, 2 },
+ { 15, 0, 0, 0, -1, 0, 0, 743, 743, 775, 0, 0, 0, 0, 1, 0, 7, 6, 12, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 12, 2 },
+ { 5, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 24, 10, 0, 0, -1, -16, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 },
+ { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 15, 0, 0, 0, -1, 0, 0, 16, 13, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 121, 121, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 19, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -232, -232, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 98, 98, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -121, 0, 0, -121, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -300, -300, -268, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 195, 195, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 210, 0, 0, 210, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 206, 0, 0, 206, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 205, 0, 0, 205, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 79, 0, 0, 79, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 202, 0, 0, 202, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 203, 0, 0, 203, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 207, 0, 0, 207, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 97, 97, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 211, 0, 0, 211, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 209, 0, 0, 209, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 163, 163, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 213, 0, 0, 213, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 214, 0, 0, 214, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 218, 0, 0, 218, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 217, 0, 0, 217, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 219, 0, 0, 219, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 56, 56, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 2, 0, 1, 2, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 16, 0, 0, 0, -1, 0, 1, -1, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -2, -1, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -79, -79, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 109, 109, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -97, 0, 0, -97, 0, 0, 0, 0, 4, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -56, 0, 0, -56, 0, 0, 0, 0, 4, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -130, 0, 0, -130, 0, 0, 0, 0, 6, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 10795, 0, 0, 10795, 0, 0, 0, 0, 8, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -163, 0, 0, -163, 0, 0, 0, 0, 8, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 10792, 0, 0, 10792, 0, 0, 0, 0, 8, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 10815, 10815, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -195, 0, 0, -195, 0, 0, 0, 0, 9, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 69, 0, 0, 69, 0, 0, 0, 0, 9, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 71, 0, 0, 71, 0, 0, 0, 0, 9, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 9, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 10783, 10783, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 10780, 10780, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 10782, 10782, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -210, -210, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -206, -206, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -205, -205, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -202, -202, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -203, -203, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -207, -207, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 3, 3, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -209, -209, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -211, -211, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 10743, 10743, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 10749, 10749, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -213, -213, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -214, -214, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 10727, 10727, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -218, -218, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -69, -69, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -217, -217, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -71, -71, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -219, -219, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 3 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 2 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 2 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 2 },
+ { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 18, 2 },
+ { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 18, 2 },
+ { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 36 },
+ { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 2 },
+ { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 2 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 2 },
+ { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 2 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 232, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 202, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 240, 0, -1, 0, 0, 84, 84, 116, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 1 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 1 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 4, 1 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 1 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 1 },
+ { 0, 17, 232, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 1 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 1 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 1 },
+ { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 4, 1 },
+ { 0, 17, 234, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 4, 1 },
+ { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 4, 1 },
+ { 0, 17, 234, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 4, 1 },
+ { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 1 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 1 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 4 },
+ { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 4 },
{ 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, 38, 0, 0, 38, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 14, 0, 0, 0, -1, 0, 37, 0, 0, 37, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 14, 0, 0, 0, -1, 0, 64, 0, 0, 64, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 14, 0, 0, 0, -1, 0, 63, 0, 0, 63, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 101, 101, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -38, -38, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -37, -37, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 105, 105, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -31, -31, 1, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -64, -64, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -63, -63, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, 8, 0, 0, 8, 0, 0, 0, 0, 10, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -62, -62, -30, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -57, -57, -25, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -47, -47, -15, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -54, -54, -22, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -8, -8, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -86, -86, -54, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -80, -80, -48, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 7, 7, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, -60, 0, 0, -60, 0, 0, 0, 0, 5, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -96, -96, -64, 0, 0, 0, 0, 5, 0, 7, 6, 12, 1 },
- { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 1 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 7, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, -7, 0, 0, -7, 0, 0, 0, 0, 7, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, -130, 0, 0, -130, 0, 0, 0, 0, 8, 0, 7, 7, 12, 1 },
- { 14, 0, 0, 0, -1, 0, 80, 0, 0, 80, 0, 0, 0, 0, 4, 0, 7, 7, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 80, 0, 0, 80, 0, 0, 0, 0, 1, 0, 7, 7, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -80, -80, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -80, -80, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 2 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 2 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 2 },
- { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 2 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 7, 7, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 0, 7, 7, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 15, 0, 0, 15, 0, 0, 0, 0, 1, 0, 7, 7, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -15, -15, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 7, 7, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 9, 0, 7, 7, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 7, 7, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 11, 0, 7, 7, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 11, 0, 7, 6, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 12, 0, 7, 7, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 2 },
- { 14, 0, 0, 0, -1, 0, 48, 0, 0, 48, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 3 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 3 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 12, 3 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, -48, -48, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 65, 62, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 12, 8, 0 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 3 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 9, 3 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 38, 0, 0, 38, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 37, 0, 0, 37, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 64, 0, 0, 64, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 63, 0, 0, 63, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 101, 101, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -38, -38, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -37, -37, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 105, 105, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -31, -31, 1, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -64, -64, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -63, -63, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 8, 0, 0, 8, 0, 0, 0, 0, 10, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -62, -62, -30, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -57, -57, -25, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -47, -47, -15, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -54, -54, -22, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -8, -8, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 46 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 46 },
+ { 15, 0, 0, 0, -1, 0, 0, -86, -86, -54, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -80, -80, -48, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 7, 7, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, -60, 0, 0, -60, 0, 0, 0, 0, 5, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -96, -96, -64, 0, 0, 0, 0, 5, 0, 7, 6, 12, 4 },
+ { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 7, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, -7, 0, 0, -7, 0, 0, 0, 0, 7, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, -130, 0, 0, -130, 0, 0, 0, 0, 8, 0, 7, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, 80, 0, 0, 80, 0, 0, 0, 0, 4, 0, 7, 7, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 80, 0, 0, 80, 0, 0, 0, 0, 1, 0, 7, 7, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, -80, -80, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, -80, -80, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 5 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 5 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 5 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 5 },
+ { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 5 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 6, 0, 7, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 0, 7, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 15, 0, 0, 15, 0, 0, 0, 0, 1, 0, 7, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, -15, -15, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 7, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 9, 0, 7, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 7, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 11, 0, 7, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 11, 0, 7, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 12, 0, 7, 7, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 5 },
+ { 14, 0, 0, 0, -1, 0, 48, 0, 0, 48, 0, 0, 0, 0, 1, 0, 7, 7, 12, 6 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 6 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 6 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 12, 6 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 12, 6 },
+ { 15, 0, 0, 0, -1, 0, 0, -48, -48, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 6 },
+ { 15, 0, 0, 0, -1, 0, 0, 65, 62, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 6 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 12, 8, 2 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 6 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 9, 6 },
{ 13, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 4 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 4 },
- { 0, 17, 222, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 4 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 4 },
- { 0, 17, 228, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 4 },
- { 0, 17, 10, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 0, 17, 11, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 0, 17, 12, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 0, 17, 13, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 0, 17, 14, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 0, 17, 15, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 0, 17, 16, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 0, 17, 17, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 0, 17, 18, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 0, 17, 19, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 0, 17, 19, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 4 },
- { 0, 17, 20, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 0, 17, 21, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 0, 17, 22, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 20, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 4 },
- { 0, 17, 23, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 4 },
- { 0, 17, 24, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 0, 17, 25, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 4 },
- { 0, 17, 18, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 4 },
- { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 13, 4 },
- { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 4 },
- { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 12, 4 },
- { 10, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3, 4, 4, 12, 5 },
- { 10, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 4, 4, 12, 5 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 7 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 7 },
+ { 0, 17, 222, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 7 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 7 },
+ { 0, 17, 228, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 7 },
+ { 0, 17, 10, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 0, 17, 11, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 0, 17, 12, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 0, 17, 13, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 0, 17, 14, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 0, 17, 15, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 0, 17, 16, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 0, 17, 17, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 0, 17, 18, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 0, 17, 19, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 0, 17, 19, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 7 },
+ { 0, 17, 20, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 0, 17, 21, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 0, 17, 22, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 20, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 7 },
+ { 0, 17, 23, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 7 },
+ { 0, 17, 24, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 0, 17, 25, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 7 },
+ { 0, 17, 18, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 7 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 13, 7 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 7 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 12, 7 },
+ { 10, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 3, 4, 4, 12, 8 },
+ { 10, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, 4, 4, 12, 8 },
{ 13, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 5 },
- { 26, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 5 },
- { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 5 },
- { 27, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 10, 5 },
- { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 10, 11, 8, 5 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 5 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 5 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 5 },
- { 0, 17, 30, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 5 },
- { 0, 17, 31, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 5 },
- { 0, 17, 32, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 5 },
- { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0 },
- { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 5 },
- { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 6, 0 },
- { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 5 },
- { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 5 },
- { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 5 },
- { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 5 },
- { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 5 },
- { 17, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 0 },
- { 0, 17, 27, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 28, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 29, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 30, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 31, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 32, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 33, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 34, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 5 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 5 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 5 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 5 },
- { 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 5, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 5, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 5, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 5, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 5, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 5, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 3, 5, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 0 },
- { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 5 },
- { 25, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 },
- { 25, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 9, 11, 5 },
- { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 5 },
- { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 5 },
- { 0, 17, 35, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 5 },
- { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 5 },
- { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 6, 5 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 5 },
- { 10, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 12, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 5 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 5 },
- { 17, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 5 },
- { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 5 },
- { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 },
- { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 },
- { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 },
- { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 },
- { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 },
- { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 },
- { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 },
- { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 },
- { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 },
- { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 5 },
- { 29, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 5 },
- { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 5 },
- { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 12, 6 },
- { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 6 },
- { 10, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 4, 4, 12, 6 },
- { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 6 },
- { 0, 17, 36, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 6 },
- { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 6 },
- { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 6 },
- { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 6 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 6 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 6 },
- { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 5 },
- { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 5 },
- { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 5 },
- { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 7 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 7 },
- { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 7 },
- { 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 },
- { 3, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 },
- { 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 },
- { 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 },
- { 3, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 },
- { 3, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 },
- { 3, 1, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 },
- { 3, 1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 },
- { 3, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 },
- { 3, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 27 },
- { 18, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 27 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 27 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 27 },
- { 17, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 27 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 27 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 27 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 10, 11, 8, 27 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 12, 6, 27 },
- { 17, 1, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 27 },
- { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 0 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 0 },
- { 17, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 0 },
- { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 18, 1, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 0 },
- { 18, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 0 },
- { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 0 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 0 },
- { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 5 },
- { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 5 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 5 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 5 },
- { 0, 17, 27, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 5 },
- { 0, 17, 28, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 5 },
- { 0, 17, 29, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 5 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 8 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 8 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 8 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 8 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 8 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 8 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 4, 4, 21, 8 },
- { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 8 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 8 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 8 },
+ { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 8 },
+ { 26, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 8 },
+ { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 8 },
+ { 27, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 10, 8 },
+ { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 10, 11, 8, 8 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 8 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 8 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 8 },
+ { 0, 17, 30, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 8 },
+ { 0, 17, 31, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 8 },
+ { 0, 17, 32, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 8 },
+ { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 2 },
+ { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 8 },
+ { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 6, 2 },
+ { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 8 },
+ { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 8 },
+ { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 8 },
+ { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 8 },
+ { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 8 },
+ { 17, 13, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 2 },
+ { 0, 17, 27, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 28, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 29, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 30, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 31, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 32, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 33, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 34, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 8 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 8 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 8 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 8 },
+ { 3, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 5, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 5, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 5, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 5, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 5, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 5, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 3, 5, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 2 },
+ { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 8 },
+ { 25, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
+ { 25, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 9, 11, 8 },
+ { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 8 },
+ { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 8 },
+ { 0, 17, 35, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 8 },
+ { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 8 },
+ { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 6, 8 },
{ 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 8 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 17, 0 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 8 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 8 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 8 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 8 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 8 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 8 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 8 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 9 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 9 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 9 },
- { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 9 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 9 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 9 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 9 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 9 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 9 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 9 },
- { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 9 },
- { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 9 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 9 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 9, 9 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 10 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 10 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 4, 4, 21, 10 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 10 },
- { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 10 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 10 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 10 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 10 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 10 },
+ { 10, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 8 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 8 },
+ { 17, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 8 },
+ { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 8 },
+ { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
+ { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
+ { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
+ { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
+ { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
+ { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
+ { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
+ { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
+ { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
+ { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 8 },
+ { 29, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 8 },
+ { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 8 },
+ { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 12, 9 },
+ { 25, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 9 },
+ { 10, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 4, 4, 12, 9 },
+ { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 9 },
+ { 0, 17, 36, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 9 },
+ { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 9 },
+ { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 9 },
+ { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 9 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 9 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 9 },
+ { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 8 },
+ { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 8 },
+ { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 8 },
+ { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 10 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 10 },
+ { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 10 },
+ { 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 },
+ { 3, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 },
+ { 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 },
+ { 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 },
+ { 3, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 },
+ { 3, 1, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 },
+ { 3, 1, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 },
+ { 3, 1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 },
+ { 3, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 },
+ { 3, 1, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 66 },
+ { 18, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 66 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 66 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 66 },
+ { 17, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 66 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 66 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 66 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 10, 11, 8, 66 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 12, 6, 66 },
+ { 17, 1, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 66 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 82 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 82 },
+ { 17, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 82 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 82 },
+ { 18, 1, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 95 },
+ { 18, 1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 95 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 95 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 95 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 95 },
+ { 18, 13, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 8 },
+ { 18, 13, 0, 2, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 8 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 8 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 8 },
+ { 0, 17, 27, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 8 },
+ { 0, 17, 28, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 8 },
+ { 0, 17, 29, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 8 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 11 },
{ 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 11 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 11 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 11 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 11 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 11 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 11 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 4, 4, 21, 11 },
{ 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 11 },
{ 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 11 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 11 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 11 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 11 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 17, 2 },
{ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 11 },
{ 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 11 },
{ 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 11 },
@@ -5267,16 +5266,21 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 11 },
{ 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 11 },
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 11 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 11 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 11 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 11 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 11 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 11 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 11 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 11 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 11 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 11 },
{ 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 12 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 12 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 12 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 12 },
{ 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 12 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 12 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 12 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 12 },
{ 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 12 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 12 },
{ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 12 },
{ 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 12 },
{ 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 12 },
@@ -5287,16 +5291,20 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 12 },
{ 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 12 },
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 12 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 12 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 12 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 12 },
{ 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 12 },
- { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 12 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 9, 12 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 13 },
{ 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 13 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 4, 4, 21, 13 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 13 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 13 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 13 },
+ { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 13 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 13 },
{ 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 13 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 13 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 13 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 13 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 13 },
{ 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 13 },
{ 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 13 },
{ 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 13 },
@@ -5306,17 +5314,13 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 13 },
{ 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 13 },
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 13 },
- { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 13 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 13 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 13 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 14 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 14 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 14 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 14 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 14 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 14 },
+ { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 14 },
{ 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 14 },
- { 0, 17, 84, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 14 },
- { 0, 17, 91, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 14 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 14 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 14 },
{ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 14 },
{ 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 14 },
{ 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 14 },
@@ -5327,17 +5331,16 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 14 },
{ 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 14 },
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 14 },
- { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 14 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 14 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 14 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 14 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 15 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 15 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 15 },
- { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 15 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 15 },
- { 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 15 },
+ { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 15 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 15 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 15 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 15 },
{ 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 15 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 15 },
{ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 15 },
{ 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 15 },
{ 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 15 },
@@ -5348,16 +5351,16 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 15 },
{ 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 15 },
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 15 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 15 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 16 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 15 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 15 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 16 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 16 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 16 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 16 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 16 },
{ 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 16 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 16 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 16 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 16 },
{ 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 16 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 16 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 16 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 16 },
{ 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 16 },
{ 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 16 },
{ 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 16 },
@@ -5367,22 +5370,38 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 16 },
{ 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 16 },
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 16 },
- { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 16 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 16 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 4, 21, 17 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 17 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 17 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 17 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 17 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 17 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 18 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 18 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 0, 8, 30, 18 },
- { 0, 17, 103, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 18 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 18 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 18 },
- { 0, 17, 107, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 18 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 18 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 16 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 16 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, 16 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 17 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 17 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 17 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 17 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 17 },
+ { 0, 17, 84, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 17 },
+ { 0, 17, 91, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 17 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 17 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 17 },
+ { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 17 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 17 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 18 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 18 },
+ { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 18 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 18 },
+ { 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 18 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 18 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 18 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 18 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 18 },
{ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 18 },
{ 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 18 },
{ 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 18 },
@@ -5393,13 +5412,15 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 18 },
{ 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 18 },
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 18 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 18 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 19 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 19 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 0, 8, 30, 19 },
- { 0, 17, 118, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 19 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 19 },
- { 0, 17, 122, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 19 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 18 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 4, 4, 21, 19 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 19 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 19 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 19 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 19 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 19 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 19 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 19 },
{ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 19 },
{ 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 19 },
{ 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 19 },
@@ -5410,920 +5431,1254 @@ static const Properties uc_properties[] = {
{ 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 19 },
{ 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 19 },
{ 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 19 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 30, 19 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 7, 8, 12, 20 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 18, 20 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 18, 20 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 20 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, 20 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 17, 20 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 6, 20 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 20 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 20 },
- { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 20 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 17, 20 },
- { 0, 17, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 },
- { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 13, 0, 20 },
- { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 13, 1, 20 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 4, 4, 21, 20 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 19 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 10, 19 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 4, 21, 20 },
{ 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 20 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 20 },
- { 0, 17, 129, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 },
- { 0, 17, 130, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 },
- { 0, 17, 132, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 4, 4, 17, 20 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 20 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 20 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 20 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 20 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 20 },
{ 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 20 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 20 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 20 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 20 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 20 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 18, 20 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 20 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 18, 20 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 20 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 4, 20 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 30, 21 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 30, 21 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 30, 21 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 30, 21 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 21 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 4, 30, 21 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 30, 21 },
- { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 21 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 21 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 30, 21 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 30, 21 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 21 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 17, 21 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 21 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 30, 21 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 21 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 30, 21 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 21 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 30, 21 },
- { 14, 0, 0, 0, -1, 0, 7264, 0, 0, 7264, 0, 0, 0, 0, 1, 0, 7, 7, 12, 22 },
- { 14, 0, 0, 0, -1, 0, 7264, 0, 0, 7264, 0, 0, 0, 0, 13, 0, 7, 7, 12, 22 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 22 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 22 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 22 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 22 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 22 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 7, 8, 25, 23 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 8, 7, 8, 25, 23 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 7, 8, 26, 23 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 9, 7, 8, 26, 23 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 7, 8, 27, 23 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 10, 7, 8, 27, 23 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 0 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 0 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 12, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 5, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 5, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 0 },
- { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 17, 24 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 24 },
- { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 13, 0, 24 },
- { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 13, 1, 24 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 25 },
- { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 25 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 0 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 0 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 12, 17, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 30, 26 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 26 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 4, 30, 26 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 26 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 26 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 26 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 30, 26 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 26 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 9, 26 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 30, 26 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 26 },
- { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 26 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 11, 6, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 6, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 0 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 18, 0 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 0 },
- { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 4, 0 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 0 },
- { 0, 17, 228, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 0 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 0 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 4, 4, 21, 0 },
- { 0, 17, 222, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 0 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 0 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 12, 6, 0 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 30, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 30, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 0 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 30, 0 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 4, 4, 30, 0 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 0 },
- { 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 30, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 30, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 26 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 0 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 4, 4, 21, 0 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 30, 0 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 0 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 0 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 30, 0 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 0 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 0 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 30, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 30, 0 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 0 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 4, 4, 21, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 0 },
- { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 0 },
- { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 4, 4, 21, 0 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 12, 17, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 17, 0 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 0 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 0 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 0 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 0 },
- { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 0 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 0 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 0 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 0 },
- { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 0 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 4, 4, 21, 0 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 0 },
- { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 4, 4, 21, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 0 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 28 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 28 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 28 },
- { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 0 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 28 },
- { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 2 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 1 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 2 },
- { 15, 0, 0, 0, -1, 0, 0, 5, 5, 0, 0, 1, 1, 0, 8, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 3814, 3814, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 1 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 28 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 28 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 28 },
- { 0, 17, 234, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 28 },
- { 0, 17, 214, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 28 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 28 },
- { 0, 17, 202, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 28 },
- { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 28 },
- { 15, 0, 0, 0, -1, 0, 0, 112, 112, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 115, 115, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 118, 118, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 121, 121, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 124, 124, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -59, -59, -58, 0, 0, 0, 0, 2, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -7615, 0, 0, -7615, 0, 0, 0, 0, 10, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 8, 8, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, -8, 0, 0, -8, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 127, 127, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 134, 134, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 138, 138, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 74, 74, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 86, 86, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 100, 100, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 128, 128, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 112, 112, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 126, 126, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 176, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 179, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 182, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 185, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 188, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 191, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 194, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 197, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 176, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 179, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 182, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 185, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 188, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 191, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 194, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 197, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 200, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 203, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 206, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 209, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 212, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 215, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 218, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 221, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 200, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 203, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 206, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 209, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 212, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 215, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 218, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 221, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 224, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 227, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 230, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 233, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 236, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 239, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 242, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 245, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 224, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 227, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 230, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 233, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 236, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 239, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 242, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -8, 245, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 260, 257, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 248, 9, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 266, 263, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 142, 142, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 297, 293, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, -74, 0, 0, -74, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -9, 248, 0, -9, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, -7205, -7205, -7173, 0, 0, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 272, 269, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 251, 9, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 278, 275, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 145, 145, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 305, 301, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, -86, 0, 0, -86, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -9, 251, 0, -9, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 148, 148, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 152, 152, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 155, 155, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, -100, 0, 0, -100, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 159, 159, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 163, 163, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 166, 166, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 169, 169, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, -112, 0, 0, -112, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 14, 0, 0, 0, -1, 0, -7, 0, 0, -7, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 284, 281, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 254, 9, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 290, 287, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 173, 173, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 15, 0, 0, 0, -1, 0, 0, 313, 309, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 1 },
- { 14, 0, 0, 0, -1, 0, -128, 0, 0, -128, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 14, 0, 0, 0, -1, 0, -126, 0, 0, -126, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 16, 0, 0, 0, -1, 0, -9, 254, 0, -9, 0, 1, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 18, 1 },
- { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 17, 0 },
- { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 4, 0 },
- { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 4, 20, 0 },
- { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 10, 18, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 10, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 },
- { 10, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 0 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 17, 0 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 19, 0 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 23, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 13, 3, 0 },
- { 24, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 13, 3, 0 },
- { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 0, 0 },
- { 23, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 },
- { 24, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 10, 15, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 15, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 17, 0 },
- { 7, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 35, 0 },
- { 8, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 35, 0 },
- { 10, 11, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 },
- { 10, 14, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 },
- { 10, 16, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 },
- { 10, 12, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 },
- { 10, 15, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 },
- { 6, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 4, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0 },
- { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 },
- { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 5, 0 },
- { 26, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 0, 8, 0 },
- { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 1, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 12, 5, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 5, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 0 },
- { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 12, 0, 12, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 0 },
- { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 5, 17, 0 },
- { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3, 4, 4, 22, 0 },
- { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3, 4, 4, 12, 0 },
- { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 4, 4, 12, 0 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 20 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 21 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 21 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 0, 8, 30, 21 },
+ { 0, 17, 103, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 21 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 21 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 21 },
+ { 0, 17, 107, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 21 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 21 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 21 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 21 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 22 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 22 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 0, 8, 30, 22 },
+ { 0, 17, 118, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 22 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 30, 22 },
+ { 0, 17, 122, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 30, 22 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 11, 9, 11, 22 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 30, 22 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 7, 8, 12, 23 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 18, 23 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 18, 23 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 23 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 4, 23 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 17, 23 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 6, 23 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 23 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 11, 9, 11, 23 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 23 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 17, 23 },
+ { 0, 17, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 },
+ { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 13, 0, 23 },
+ { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 13, 1, 23 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 4, 4, 21, 23 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 23 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 23 },
+ { 0, 17, 129, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 },
+ { 0, 17, 130, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 },
+ { 0, 17, 132, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 4, 4, 17, 23 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 4, 21, 23 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 23 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 23 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 23 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 23 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 23 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 23 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 23 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 18, 23 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 23 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 18, 23 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 23 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 4, 23 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 30, 24 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 30, 24 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 4, 4, 30, 24 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 4, 30, 24 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 24 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 4, 30, 24 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 30, 24 },
+ { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 24 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 24 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 30, 24 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 30, 24 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 24 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 17, 24 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 24 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 30, 24 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 24 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 30, 24 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 24 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 30, 24 },
+ { 14, 0, 0, 0, -1, 0, 7264, 0, 0, 7264, 0, 0, 0, 0, 1, 0, 7, 7, 12, 25 },
+ { 14, 0, 0, 0, -1, 0, 7264, 0, 0, 7264, 0, 0, 0, 0, 13, 0, 7, 7, 12, 25 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 25 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 25 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 25 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 25 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 25 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8, 7, 8, 25, 26 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 8, 7, 8, 25, 26 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 9, 7, 8, 26, 26 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 9, 7, 8, 26, 26 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 10, 7, 8, 27, 26 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 10, 7, 8, 27, 26 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 27 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 27 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 27 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 27 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 27 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 27 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 12, 27 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 },
+ { 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 },
+ { 5, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 },
+ { 5, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 },
+ { 5, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 },
+ { 5, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 },
+ { 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 },
+ { 5, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 },
+ { 5, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 },
+ { 5, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 27 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 27 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 28 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 29 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 29 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 29 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 12, 29 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 29 },
+ { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 17, 30 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 30 },
+ { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 13, 0, 30 },
+ { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 13, 1, 30 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 31 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 2 },
+ { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 31 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 42 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 42 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 42 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 43 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 43 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 43 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 12, 17, 2 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 44 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 44 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 45 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 45 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 30, 32 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 32 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 4, 4, 30, 32 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 30, 32 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 32 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 5, 32 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 30, 32 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 32 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 9, 32 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 30, 32 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 32 },
+ { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 32 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 33 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 11, 6, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 6, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 33 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 17, 2 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 18, 33 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 11, 6, 33 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 6, 33 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 33 },
+ { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 4, 33 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 11, 9, 11, 33 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 33 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 12, 33 },
+ { 0, 17, 228, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 33 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 33 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 47 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 47 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 4, 4, 21, 47 },
+ { 0, 17, 222, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 47 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 47 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 47 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 47 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 12, 6, 47 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 47 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 8, 30, 48 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 30, 56 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 56 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 4, 4, 30, 56 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 4, 4, 30, 56 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 11, 9, 11, 56 },
+ { 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 30, 56 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 30, 56 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 32 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 55 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 55 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 55 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 4, 4, 21, 55 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 55 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 78 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 30, 78 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 78 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 78 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 4, 4, 30, 78 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 78 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 78 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 78 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 30, 78 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 78 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 30, 78 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 62 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 4, 4, 21, 62 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 62 },
+ { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 62 },
+ { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 4, 4, 21, 62 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 11, 9, 11, 62 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 12, 17, 62 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 62 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 17, 62 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 62 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 62 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 62 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 67 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 67 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 67 },
+ { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 67 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 67 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 67 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 67 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 67 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 93 },
+ { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 93 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 4, 4, 21, 93 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 93 },
+ { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 4, 4, 21, 93 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 93 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 68 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 68 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 68 },
+ { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 68 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 68 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 68 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 68 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 69 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 69 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 69 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 69 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 67 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 1 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 1 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 1 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 2 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 2 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 2 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 1 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 2 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 5 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 3 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 4 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 5 },
+ { 15, 0, 0, 0, -1, 0, 0, 5, 5, 0, 0, 1, 1, 0, 8, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 3814, 3814, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 3 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 3 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 4 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 1 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 4, 4, 4, 21, 1 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 1 },
+ { 0, 17, 234, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 1 },
+ { 0, 17, 214, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 1 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 1 },
+ { 0, 17, 202, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 1 },
+ { 0, 17, 233, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 1 },
+ { 15, 0, 0, 0, -1, 0, 0, 112, 112, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 115, 115, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 118, 118, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 121, 121, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 124, 124, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -59, -59, -58, 0, 0, 0, 0, 2, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -7615, 0, 0, -7615, 0, 0, 0, 0, 10, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 10, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 8, 8, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, -8, 0, 0, -8, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 127, 127, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 130, 130, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 134, 134, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 138, 138, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 74, 74, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 86, 86, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 100, 100, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 128, 128, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 112, 112, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 126, 126, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 176, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 179, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 182, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 185, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 188, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 191, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 194, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 197, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 176, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 179, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 182, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 185, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 188, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 191, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 194, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 197, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 200, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 203, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 206, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 209, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 212, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 215, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 218, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 221, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 200, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 203, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 206, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 209, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 212, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 215, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 218, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 221, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 224, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 227, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 230, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 233, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 236, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 239, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 242, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 245, 8, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 224, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 227, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 230, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 233, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 236, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 239, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 242, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -8, 245, 0, -8, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 260, 257, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 248, 9, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 266, 263, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 142, 142, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 297, 293, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, -74, 0, 0, -74, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -9, 248, 0, -9, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, -7205, -7205, -7173, 0, 0, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 272, 269, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 251, 9, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 278, 275, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 145, 145, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 305, 301, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, -86, 0, 0, -86, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -9, 251, 0, -9, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 148, 148, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 152, 152, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 155, 155, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, -100, 0, 0, -100, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 159, 159, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 163, 163, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 166, 166, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 169, 169, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, -112, 0, 0, -112, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, -7, 0, 0, -7, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 284, 281, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 254, 9, 0, 0, 1, 0, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 290, 287, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 173, 173, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 15, 0, 0, 0, -1, 0, 0, 313, 309, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, -128, 0, 0, -128, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, -126, 0, 0, -126, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 16, 0, 0, 0, -1, 0, -9, 254, 0, -9, 0, 1, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 18, 4 },
+ { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 17, 2 },
+ { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 4, 2 },
+ { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 4, 20, 2 },
+ { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 10, 18, 0, 3, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 10, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 },
+ { 10, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 17, 2 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 4, 2 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 17, 2 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 19, 2 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 23, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 13, 3, 2 },
+ { 24, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 13, 3, 2 },
+ { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 0, 2 },
+ { 23, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 },
+ { 24, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 10, 15, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 15, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 0, 17, 2 },
+ { 7, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 35, 2 },
+ { 8, 7, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 3, 35, 2 },
+ { 10, 11, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 },
+ { 10, 14, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 },
+ { 10, 16, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 },
+ { 10, 12, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 },
+ { 10, 15, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 },
+ { 6, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 5, 4, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 2 },
+ { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 },
+ { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 5, 2 },
+ { 26, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 0, 8, 2 },
+ { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 1, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 12, 5, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 12, 5, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 2 },
+ { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 12, 0, 12, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 2 },
+ { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 5, 17, 2 },
+ { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3, 4, 4, 22, 2 },
+ { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 3, 4, 4, 12, 2 },
+ { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 3, 4, 4, 12, 2 },
{ 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 12, 0 },
- { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 0 },
- { 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 0 },
- { 5, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 0 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 9, 0 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 9, 0 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 9, 0 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 9, 0 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 9, 0 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 10, 0 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 9, 0 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 9, 0 },
- { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 9, 0 },
- { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 28 },
- { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 28 },
- { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 28 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 28 },
- { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 28 },
- { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 0 },
- { 14, 0, 0, 0, -1, 0, -7517, 0, 0, -7517, 0, 0, 0, 0, 1, 0, 7, 7, 12, 1 },
- { 14, 0, 0, 0, -1, 0, -8383, 0, 0, -8383, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -8262, 0, 0, -8262, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 28, 0, 0, 28, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 7, 12, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -28, -28, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 0 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 4, 0, 0, 0, -1, 0, 16, 0, 0, 16, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 4, 0, 0, 0, -1, 0, 0, -16, -16, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 0 },
- { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 0 },
- { 26, 10, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 2016, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 138, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 1824, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 2104, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 2108, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 2106, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, -138, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, -8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, -7, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 14, 0 },
- { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 29, 0, 0, 0, -1, 0, 26, 0, 0, 26, 0, 0, 0, 0, 1, 0, 7, 7, 12, 0 },
- { 29, 0, 0, 0, -1, 0, 0, -26, -26, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 0 },
- { 5, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 14, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 14, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 14, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 14, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0 },
- { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 0, 0 },
- { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 1, 0 },
- { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 0, 0 },
- { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 1, 0 },
- { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 0, 0 },
- { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 1, 0 },
- { 21, 10, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 0, 0 },
- { 22, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 1, 0 },
- { 21, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 0, 0 },
- { 22, 10, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 1, 0 },
- { 26, 10, 0, 0, -1, -1824, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, -2016, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, -2104, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, -2106, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, -2108, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 48, 0, 0, 48, 0, 0, 0, 0, 8, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -48, -48, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -10743, 0, 0, -10743, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -3814, 0, 0, -3814, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -10727, 0, 0, -10727, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -10795, -10795, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -10792, -10792, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -10780, 0, 0, -10780, 0, 0, 0, 0, 10, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -10749, 0, 0, -10749, 0, 0, 0, 0, 10, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -10783, 0, 0, -10783, 0, 0, 0, 0, 10, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -10782, 0, 0, -10782, 0, 0, 0, 0, 11, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, -10815, 0, 0, -10815, 0, 0, 0, 0, 11, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 11, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 11, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 13, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 13, 0, 7, 6, 12, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 0 },
- { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -7264, -7264, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 22 },
- { 15, 0, 0, 0, -1, 0, 0, -7264, -7264, 0, 0, 0, 0, 0, 13, 0, 7, 6, 12, 22 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 17, 0 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 3, 0 },
- { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 3, 0 },
- { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 3, 0 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 0 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 },
- { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 3, 0 },
- { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 3, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 6, 0 },
- { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 17, 0 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 19, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 14, 0 },
- { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 14, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 1, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 1, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 5, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 14, 0 },
- { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 14, 0 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0 },
- { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 1, 0 },
- { 0, 17, 218, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 228, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 0, 17, 222, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 1, 0, 224, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 23 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 14, 0 },
- { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 14, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 5, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 5, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 14, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 5, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 5, 0 },
- { 0, 17, 8, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 28 },
- { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 5, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 5, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 14, 0 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6, 0, 5, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 5, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 14, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 5, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6, 8, 14, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 14, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 14, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 14, 23 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 14, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 14, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6, 8, 5, 0 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 23 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 14, 23 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 14, 0 },
- { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 14, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 14, 23 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 14, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 14, 0 },
- { 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 14, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 14, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 14, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 14, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 5, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 14, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 17, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 2 },
- { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 2 },
+ { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 21, 2 },
+ { 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 3 },
+ { 5, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 3 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 9, 2 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 9, 2 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 9, 2 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 9, 2 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 9, 2 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 10, 2 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 9, 2 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 9, 2 },
+ { 27, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 9, 2 },
+ { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 21, 1 },
+ { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 1 },
+ { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 1 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 1 },
+ { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 1 },
+ { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 7, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 10, 2 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 9, 2 },
+ { 14, 0, 0, 0, -1, 0, -7517, 0, 0, -7517, 0, 0, 0, 0, 1, 0, 7, 7, 12, 4 },
+ { 14, 0, 0, 0, -1, 0, -8383, 0, 0, -8383, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -8262, 0, 0, -8262, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 14, 0, 0, 0, -1, 0, 28, 0, 0, 28, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 2 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 6, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 2 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 2 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 6, 12, 2 },
+ { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 7, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 2 },
+ { 15, 0, 0, 0, -1, 0, 0, -28, -28, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 3 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 4, 0, 0, 0, -1, 0, 16, 0, 0, 16, 0, 0, 0, 0, 1, 0, 7, 7, 12, 3 },
+ { 4, 0, 0, 0, -1, 0, 0, -16, -16, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 3 },
+ { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 3 },
+ { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 3 },
+ { 26, 10, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 2016, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 138, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 1824, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 2104, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 2108, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 2106, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, -138, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 7, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, -8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, -7, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 14, 2 },
+ { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 29, 0, 0, 0, -1, 0, 26, 0, 0, 26, 0, 0, 0, 0, 1, 0, 7, 7, 12, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, -26, -26, 0, 0, 0, 0, 0, 1, 0, 7, 6, 12, 2 },
+ { 5, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 14, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 14, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 14, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 14, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 3, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 2 },
+ { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 0, 2 },
+ { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 1, 2 },
+ { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 2 },
+ { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 0, 2 },
+ { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 1, 2 },
+ { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 21, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 0, 2 },
+ { 22, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 1, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 12, 54 },
+ { 21, 10, 0, 0, -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 0, 2 },
+ { 22, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 1, 2 },
+ { 21, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 0, 2 },
+ { 22, 10, 0, 0, -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 13, 1, 2 },
+ { 26, 10, 0, 0, -1, -1824, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, -2016, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, -2104, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, -2106, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, -2108, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 12, 2 },
+ { 14, 0, 0, 0, -1, 0, 48, 0, 0, 48, 0, 0, 0, 0, 8, 0, 7, 7, 12, 57 },
+ { 15, 0, 0, 0, -1, 0, 0, -48, -48, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 57 },
+ { 14, 0, 0, 0, -1, 0, -10743, 0, 0, -10743, 0, 0, 0, 0, 9, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -3814, 0, 0, -3814, 0, 0, 0, 0, 9, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -10727, 0, 0, -10727, 0, 0, 0, 0, 9, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -10795, -10795, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -10792, -10792, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -10780, 0, 0, -10780, 0, 0, 0, 0, 10, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -10749, 0, 0, -10749, 0, 0, 0, 0, 10, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -10783, 0, 0, -10783, 0, 0, 0, 0, 10, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -10782, 0, 0, -10782, 0, 0, 0, 0, 11, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 3 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, -10815, 0, 0, -10815, 0, 0, 0, 0, 11, 0, 7, 7, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 8, 0, 7, 7, 12, 46 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 46 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 46 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 46 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 11, 0, 7, 7, 12, 46 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 11, 0, 7, 6, 12, 46 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 46 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 13, 0, 7, 7, 12, 46 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 13, 0, 7, 6, 12, 46 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 46 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 46 },
+ { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 46 },
+ { 15, 0, 0, 0, -1, 0, 0, -7264, -7264, 0, 0, 0, 0, 0, 8, 0, 7, 6, 12, 25 },
+ { 15, 0, 0, 0, -1, 0, 0, -7264, -7264, 0, 0, 0, 0, 0, 13, 0, 7, 6, 12, 25 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 58 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 58 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 58 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 17, 58 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 58 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 3, 2 },
+ { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 3, 2 },
+ { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 3, 2 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 2 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 2 },
{ 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 2 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 2 },
+ { 23, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 3, 2 },
+ { 24, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 13, 3, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 6, 2 },
{ 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 2 },
- { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 0 },
- { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 0 },
- { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 7, 0, 0, 7, 1, 0, 0, 1, 10, 0, 7, 7, 12, 0 },
- { 28, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 9, 0, 0, 9, 1, 0, 0, 1, 12, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 12, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 11, 0, 0, 11, 1, 0, 0, 1, 13, 0, 7, 7, 12, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 6, 12, 0 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 0 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 0 },
- { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 18, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 12, 6, 0 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 0 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 8 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 0 },
- { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 0 },
- { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 21 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 21 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 30, 21 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 0 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 12, 17, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 0 },
- { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 11, 7, 8, 23, 23 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 12, 7, 8, 24, 23 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 17, 2 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 19, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 14, 37 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 14, 2 },
+ { 6, 9, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 5, 14, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 1, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 12, 1, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 5, 37 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 14, 2 },
+ { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 14, 37 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 2 },
+ { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 13, 1, 2 },
+ { 0, 17, 218, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 228, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 0, 17, 222, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 1, 0, 224, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 26 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 14, 2 },
+ { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 14, 37 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 5, 37 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 5, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 14, 2 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 5, 34 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 14, 34 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 5, 34 },
+ { 0, 17, 8, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 1 },
+ { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 5, 2 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 5, 34 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 14, 34 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6, 0, 5, 2 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 5, 35 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 14, 35 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 2 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 5, 2 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 5, 35 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6, 8, 14, 35 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 14, 36 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 14, 36 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 14, 26 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 14, 36 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 14, 36 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 6, 8, 5, 35 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 26 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 14, 26 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 14, 2 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 14, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 14, 26 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 14, 35 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 8, 14, 37 },
+ { 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 14, 37 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 8, 14, 37 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 8, 14, 37 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 14, 37 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 8, 14, 37 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 14, 38 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 5, 38 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 14, 38 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 14, 38 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 83 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 83 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 83 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 17, 83 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 70 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 70 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 70 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 6, 70 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 70 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 70 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 5 },
+ { 2, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 5 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 5 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 5 },
+ { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 5 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 84 },
+ { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 84 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 84 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 84 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 17, 84 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 84 },
+ { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 2 },
+ { 17, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 2 },
+ { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 2 },
+ { 14, 0, 0, 0, -1, 0, 7, 0, 0, 7, 1, 0, 0, 1, 10, 0, 7, 7, 12, 3 },
+ { 28, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 2 },
+ { 14, 0, 0, 0, -1, 0, 9, 0, 0, 9, 1, 0, 0, 1, 12, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 12, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 12, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 13, 0, 7, 7, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 13, 0, 7, 6, 12, 3 },
+ { 14, 0, 0, 0, -1, 0, 11, 0, 0, 11, 1, 0, 0, 1, 13, 0, 7, 7, 12, 3 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 6, 12, 3 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 3 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 59 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 59 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 59 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 7, 4, 4, 21, 59 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 59 },
+ { 29, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 65 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 18, 65 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 12, 6, 65 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 71 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 71 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 71 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 71 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 71 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 11 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 11 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 72 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 72 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 72 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 72 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 17, 72 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 72 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 73 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 73 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 73 },
+ { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 73 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 73 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 85 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 85 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 85 },
+ { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 85 },
+ { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 85 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 85 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 85 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 17, 85 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 85 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 85 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 77 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 4, 4, 4, 21, 77 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 4, 4, 21, 77 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 11, 9, 11, 77 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 77 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 17, 77 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 24 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 24 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 30, 24 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 79 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 79 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 30, 79 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 8, 30, 79 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 30, 79 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 86 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 86 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 86 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 12, 17, 86 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 86 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 86 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 27 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 86 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 86 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 86 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 17, 86 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 86 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 11, 9, 11, 86 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 11, 7, 8, 23, 26 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 12, 7, 8, 24, 26 },
{ 11, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 31, 0 },
{ 12, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 25, 22, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 31, 28, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 37, 34, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 44, 40, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 52, 48, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 59, 56, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 71, 68, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 77, 74, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 83, 80, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 89, 86, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
- { 15, 0, 0, 0, -1, 0, 0, 95, 92, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
- { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 13, 4 },
- { 0, 17, 26, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 4 },
- { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 4 },
- { 28, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 5 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 14, 37 },
+ { 15, 0, 0, 0, -1, 0, 0, 25, 22, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 31, 28, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 37, 34, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 44, 40, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 52, 48, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 59, 56, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 3 },
+ { 15, 0, 0, 0, -1, 0, 0, 71, 68, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 6 },
+ { 15, 0, 0, 0, -1, 0, 0, 77, 74, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 6 },
+ { 15, 0, 0, 0, -1, 0, 0, 83, 80, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 6 },
+ { 15, 0, 0, 0, -1, 0, 0, 89, 86, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 6 },
+ { 15, 0, 0, 0, -1, 0, 0, 95, 92, 0, 0, 1, 1, 0, 1, 0, 7, 6, 12, 6 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 7, 8, 13, 7 },
+ { 0, 17, 26, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 21, 7 },
+ { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 7 },
+ { 28, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 8 },
{ 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 0 },
- { 27, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 10, 5 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 28 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 10, 11, 8, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 11, 1, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 9, 11, 8, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 10, 0, 8, 0 },
- { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 0, 0 },
- { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 1, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 15, 0 },
- { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 14, 0 },
- { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 14, 0 },
- { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 13, 0, 0 },
- { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 13, 1, 0 },
- { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 11, 1, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 14, 0 },
- { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 10, 1, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 0, 5, 0 },
- { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 11, 5, 0 },
- { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 20, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 14, 0 },
- { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 5 },
- { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 22, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 0, 14, 0 },
- { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 14, 0 },
- { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 14, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 12, 0 },
- { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 5, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 23 },
- { 10, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 4, 4, 21, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 29, 0 },
+ { 27, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 10, 8 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 4, 4, 4, 21, 1 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 10, 11, 8, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 11, 1, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 1, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 9, 11, 8, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 10, 0, 8, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 6, 2 },
+ { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 0, 2 },
+ { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 13, 1, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 15, 2 },
+ { 20, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 14, 2 },
+ { 19, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 12, 0, 14, 2 },
+ { 21, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 13, 0, 2 },
+ { 22, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 13, 1, 2 },
+ { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 11, 1, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 14, 2 },
+ { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 10, 1, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 10, 0, 5, 2 },
+ { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 9, 11, 5, 2 },
+ { 25, 4, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 26, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 20, 3, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 11, 14, 2 },
+ { 26, 10, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 26, 10, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, 8, 12, 8 },
+ { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 4, 4, 22, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 8, 0, 14, 2 },
+ { 25, 6, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 26, 10, 0, 0, -1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 26, 10, 0, 0, -1, -2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 14, 0, 0, 0, -1, 0, 32, 0, 0, 32, 0, 0, 0, 0, 1, 0, 7, 7, 14, 3 },
+ { 28, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 14, 2 },
+ { 15, 0, 0, 0, -1, 0, 0, -32, -32, 0, 0, 0, 0, 0, 1, 0, 7, 6, 14, 3 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 8, 12, 35 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 4, 4, 4, 5, 2 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 7, 8, 12, 26 },
+ { 10, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 4, 4, 21, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 29, 2 },
{ 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 17, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 17, 0 },
- { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 0 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 0 },
- { 4, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 1 },
- { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 1 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 1 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 8, 12, 0 },
- { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 0 },
- { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 8, 12, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 0 },
- { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 40, 0, 0, 40, 0, 0, 0, 0, 5, 0, 7, 7, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 40, 0, 0, 40, 0, 0, 0, 0, 7, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -40, -40, 0, 0, 0, 0, 0, 5, 0, 7, 6, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, -40, -40, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 0 },
- { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 0 },
- { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 0 },
- { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 0 },
- { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 },
- { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 17, 0 },
- { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 0 },
- { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 0 },
- { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 0 },
- { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 0 },
- { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 0 },
- { 5, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 5, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 5, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 5, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 0 },
- { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 12, 17, 0 },
- { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 0 },
- { 5, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 },
- { 5, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 },
- { 5, 5, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 },
- { 5, 5, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 },
- { 5, 5, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 },
- { 5, 5, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 },
- { 5, 5, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 },
- { 5, 5, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 },
- { 5, 5, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 },
- { 5, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 5 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 17, 0 },
- { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 0 },
- { 10, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 4, 4, 12, 0 },
- { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 },
- { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 0 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 0 },
- { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 17, 0 },
- { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 0 },
- { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 0 },
- { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 0, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 1, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 6, 8, 14, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 14, 0 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 0 },
- { 1, 0, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 0 },
- { 1, 0, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 4, 4, 21, 0 },
- { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 28 },
- { 1, 0, 226, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 4, 4, 21, 0 },
- { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 4, 4, 21, 0 },
- { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 28 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 28 },
- { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 1 },
- { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 7, 12, 0 },
- { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 6, 12, 0 },
- { 26, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 0 },
- { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 0 },
- { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 7, 12, 0 },
- { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 },
- { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 0 },
- { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 5 },
- { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 5 },
- { 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 5, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 0 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 5, 5, 0, 28, 0 },
- { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 14, 0 },
- { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 14, 0 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 49 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 17, 2 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 17, 2 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 12, 2 },
+ { 4, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 4 },
+ { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 4 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 4 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 74 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 75 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 8, 12, 39 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 39 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 8, 12, 40 },
+ { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 8, 12, 40 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 50 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 17, 50 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 60 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 60 },
+ { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 60 },
+ { 14, 0, 0, 0, -1, 0, 40, 0, 0, 40, 0, 0, 0, 0, 5, 0, 7, 7, 12, 41 },
+ { 14, 0, 0, 0, -1, 0, 40, 0, 0, 40, 0, 0, 0, 0, 7, 0, 7, 7, 12, 41 },
+ { 15, 0, 0, 0, -1, 0, 0, -40, -40, 0, 0, 0, 0, 0, 5, 0, 7, 6, 12, 41 },
+ { 15, 0, 0, 0, -1, 0, 0, -40, -40, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 41 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 51 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 52 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 11, 9, 11, 52 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 8, 12, 53 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 87 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 87 },
+ { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 87 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 64 },
+ { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 64 },
+ { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 64 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 17, 64 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 7, 8, 12, 76 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 12, 76 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 98 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 97 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 7, 8, 12, 61 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 61 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 61 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 61 },
+ { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 61 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 61 },
+ { 5, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 61 },
+ { 5, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 61 },
+ { 5, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 61 },
+ { 5, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 61 },
+ { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 61 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, 61 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 12, 17, 61 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 12, 61 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 88 },
+ { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 88 },
+ { 25, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 88 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 80 },
+ { 25, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, 80 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 89 },
+ { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 89 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 90 },
+ { 5, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 90 },
+ { 18, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 91 },
+ { 5, 5, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 },
+ { 5, 5, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 },
+ { 5, 5, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 },
+ { 5, 5, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 },
+ { 5, 5, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 },
+ { 5, 5, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 },
+ { 5, 5, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 },
+ { 5, 5, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 },
+ { 5, 5, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 },
+ { 5, 5, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 8 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 7, 4, 4, 21, 94 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 94 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 94 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 4, 4, 4, 21, 94 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 12, 17, 94 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 },
+ { 5, 10, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 },
+ { 5, 10, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 },
+ { 5, 10, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 },
+ { 5, 10, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 },
+ { 5, 10, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 },
+ { 5, 10, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 },
+ { 5, 10, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 },
+ { 5, 10, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 },
+ { 5, 10, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 },
+ { 5, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 94 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 11, 9, 11, 94 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 92 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 7, 4, 4, 21, 92 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 92 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 92 },
+ { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 4, 4, 4, 21, 92 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 92 },
+ { 10, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 3, 4, 4, 12, 92 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 12, 17, 92 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 101 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 101 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 96 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 96 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 96 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 96 },
+ { 0, 17, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 96 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 96 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 17, 96 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 12, 17, 96 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 100 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 100 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 100 },
+ { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 100 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 12, 17, 100 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 100 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 17, 100 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 100 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 102 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 102 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 102 },
+ { 1, 0, 9, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 102 },
+ { 0, 17, 7, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 102 },
+ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 },
+ { 3, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 },
+ { 3, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 },
+ { 3, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 },
+ { 3, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 },
+ { 3, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 },
+ { 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 },
+ { 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 },
+ { 3, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 },
+ { 3, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 11, 9, 11, 102 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 63 },
+ { 4, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 8, 12, 63 },
+ { 25, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 17, 63 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 12, 81 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 0, 81 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 7, 8, 1, 81 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 7, 8, 12, 84 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 99 },
+ { 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 7, 4, 4, 21, 99 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 4, 4, 4, 21, 99 },
+ { 17, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 99 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 6, 8, 14, 35 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 14, 34 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 2 },
+ { 1, 0, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 2 },
+ { 1, 0, 216, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 4, 4, 21, 2 },
+ { 0, 17, 1, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 1 },
+ { 1, 0, 226, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 4, 4, 21, 2 },
+ { 10, 18, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 3, 4, 4, 21, 2 },
+ { 0, 17, 220, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 1 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 21, 1 },
+ { 0, 17, 230, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 4, 4, 4, 21, 4 },
+ { 5, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 12, 2 },
+ { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 7, 12, 2 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 7, 6, 12, 2 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 7, 6, 12, 2 },
+ { 26, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 2 },
+ { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 12, 2 },
+ { 14, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 7, 12, 2 },
+ { 15, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 7, 6, 12, 2 },
+ { 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 },
+ { 3, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 11, 9, 11, 2 },
+ { 18, 13, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 7, 8, 12, 8 },
+ { 26, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 8 },
+ { 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 5, 2, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 12, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 5, 5, 0, 28, 2 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 14, 34 },
+ { 29, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 14, 2 },
+ { 29, 10, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 14, 2 },
{ 13, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 0 },
- { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 8, 14, 0 },
- { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 28 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 8, 14, 37 },
+ { 18, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 8, 14, 37 },
+ { 0, 17, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 4, 4, 4, 21, 1 },
{ 12, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 12, 0 }
};
@@ -6369,11 +6724,6 @@ Q_CORE_EXPORT LineBreakClass QT_FASTCALL lineBreakClass(uint ucs4)
return (LineBreakClass)qGetProp(ucs4)->lineBreakClass;
}
-Q_CORE_EXPORT Script QT_FASTCALL script(uint ucs4)
-{
- return (Script)qGetProp(ucs4)->script;
-}
-
static const ushort specialCaseMap[] = {
0x0, // placeholder
diff --git a/src/corelib/tools/qunicodetables_p.h b/src/corelib/tools/qunicodetables_p.h
index 74b022d8ef..8f0b7aabad 100644
--- a/src/corelib/tools/qunicodetables_p.h
+++ b/src/corelib/tools/qunicodetables_p.h
@@ -83,119 +83,12 @@ struct Properties {
ushort wordBreakClass : 8; /* 4 used */
ushort sentenceBreakClass : 8; /* 4 used */
ushort lineBreakClass : 8; /* 6 used */
- ushort script : 8; /* 5 used */
+ ushort script : 8; /* 7 used */
};
Q_CORE_EXPORT const Properties * QT_FASTCALL properties(uint ucs4);
Q_CORE_EXPORT const Properties * QT_FASTCALL properties(ushort ucs2);
-// See http://www.unicode.org/reports/tr24/tr24-5.html
-enum Script {
- Common,
- Greek,
- Cyrillic,
- Armenian,
- Hebrew,
- Arabic,
- Syriac,
- Thaana,
- Devanagari,
- Bengali,
- Gurmukhi,
- Gujarati,
- Oriya,
- Tamil,
- Telugu,
- Kannada,
- Malayalam,
- Sinhala,
- Thai,
- Lao,
- Tibetan,
- Myanmar,
- Georgian,
- Hangul,
- Ogham,
- Runic,
- Khmer,
- Nko,
- Inherited,
- ScriptCount = Inherited,
- Latin = Common,
- Ethiopic = Common,
- Cherokee = Common,
- CanadianAboriginal = Common,
- Mongolian = Common,
- Hiragana = Common,
- Katakana = Common,
- Bopomofo = Common,
- Han = Common,
- Yi = Common,
- OldItalic = Common,
- Gothic = Common,
- Deseret = Common,
- Tagalog = Common,
- Hanunoo = Common,
- Buhid = Common,
- Tagbanwa = Common,
- Limbu = Common,
- TaiLe = Common,
- LinearB = Common,
- Ugaritic = Common,
- Shavian = Common,
- Osmanya = Common,
- Cypriot = Common,
- Braille = Common,
- Buginese = Common,
- Coptic = Common,
- NewTaiLue = Common,
- Glagolitic = Common,
- Tifinagh = Common,
- SylotiNagri = Common,
- OldPersian = Common,
- Kharoshthi = Common,
- Balinese = Common,
- Cuneiform = Common,
- Phoenician = Common,
- PhagsPa = Common,
- Sundanese = Common,
- Lepcha = Common,
- OlChiki = Common,
- Vai = Common,
- Saurashtra = Common,
- KayahLi = Common,
- Rejang = Common,
- Lycian = Common,
- Carian = Common,
- Lydian = Common,
- Cham = Common,
- TaiTham = Common,
- TaiViet = Common,
- Avestan = Common,
- EgyptianHieroglyphs = Common,
- Samaritan = Common,
- Lisu = Common,
- Bamum = Common,
- Javanese = Common,
- MeeteiMayek = Common,
- ImperialAramaic = Common,
- OldSouthArabian = Common,
- InscriptionalParthian = Common,
- InscriptionalPahlavi = Common,
- OldTurkic = Common,
- Kaithi = Common,
- Batak = Common,
- Brahmi = Common,
- Mandaic = Common,
- Chakma = Common,
- MeroiticCursive = Common,
- MeroiticHieroglyphs = Common,
- Miao = Common,
- Sharada = Common,
- SoraSompeng = Common,
- Takri = Common
-};
-
enum GraphemeBreakClass {
GraphemeBreak_Other,
GraphemeBreak_CR,
@@ -274,10 +167,6 @@ Q_CORE_EXPORT LineBreakClass QT_FASTCALL lineBreakClass(uint ucs4);
inline LineBreakClass lineBreakClass(QChar ch)
{ return lineBreakClass(ch.unicode()); }
-Q_CORE_EXPORT Script QT_FASTCALL script(uint ucs4);
-inline Script script(QChar ch)
-{ return script(ch.unicode()); }
-
} // namespace QUnicodeTables
QT_END_NAMESPACE
diff --git a/src/corelib/tools/qunicodetools.cpp b/src/corelib/tools/qunicodetools.cpp
index 060c9adb05..01aa1c4d52 100644
--- a/src/corelib/tools/qunicodetools.cpp
+++ b/src/corelib/tools/qunicodetools.cpp
@@ -45,6 +45,7 @@
#include "qvarlengtharray.h"
#include <private/harfbuzz-shaper.h>
+#include <private/qharfbuzz_p.h>
#define FLAG(x) (1 << (x))
@@ -610,12 +611,12 @@ Q_CORE_EXPORT void initCharAttributes(const ushort *string, int length,
scriptItems.reserve(numItems);
int start = 0;
for (int i = start + 1; i < numItems; ++i) {
- if (items[i].script == items[start].script)
+ if (script_to_hbscript(items[i].script) == script_to_hbscript(items[start].script))
continue;
HB_ScriptItem item;
item.pos = items[start].position;
item.length = items[i].position - items[start].position;
- item.script = (HB_Script)items[start].script;
+ item.script = script_to_hbscript(items[start].script);
item.bidiLevel = 0; // unused
scriptItems.append(item);
start = i;
@@ -624,7 +625,7 @@ Q_CORE_EXPORT void initCharAttributes(const ushort *string, int length,
HB_ScriptItem item;
item.pos = items[start].position;
item.length = length - items[start].position;
- item.script = (HB_Script)items[start].script;
+ item.script = script_to_hbscript(items[start].script);
item.bidiLevel = 0; // unused
scriptItems.append(item);
}
diff --git a/src/corelib/tools/qvarlengtharray.h b/src/corelib/tools/qvarlengtharray.h
index 5e57de5767..3a2028057d 100644
--- a/src/corelib/tools/qvarlengtharray.h
+++ b/src/corelib/tools/qvarlengtharray.h
@@ -50,8 +50,6 @@
#include <string.h>
#include <stdlib.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -103,6 +101,7 @@ public:
inline bool isEmpty() const { return (s == 0); }
inline void resize(int size);
inline void clear() { resize(0); }
+ inline void squeeze();
inline int capacity() const { return a; }
inline void reserve(int size);
@@ -244,6 +243,10 @@ Q_OUTOFLINE_TEMPLATE void QVarLengthArray<T, Prealloc>::append(const T *abuf, in
}
template <class T, int Prealloc>
+Q_INLINE_TEMPLATE void QVarLengthArray<T, Prealloc>::squeeze()
+{ realloc(s, s); }
+
+template <class T, int Prealloc>
Q_OUTOFLINE_TEMPLATE void QVarLengthArray<T, Prealloc>::realloc(int asize, int aalloc)
{
Q_ASSERT(aalloc >= asize);
@@ -415,6 +418,4 @@ bool operator!=(const QVarLengthArray<T, Prealloc1> &l, const QVarLengthArray<T,
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QVARLENGTHARRAY_H
diff --git a/src/corelib/tools/qvarlengtharray.qdoc b/src/corelib/tools/qvarlengtharray.qdoc
index 5e78946892..93aa5e993e 100644
--- a/src/corelib/tools/qvarlengtharray.qdoc
+++ b/src/corelib/tools/qvarlengtharray.qdoc
@@ -210,7 +210,7 @@
initialized. For other types, the elements are initialized with a
\l{default-constructed value}.
- \sa size()
+ \sa size(), squeeze()
*/
/*! \fn int QVarLengthArray::capacity() const
@@ -223,7 +223,7 @@
need to call this function. If you want to know how many items are
in the array, call size().
- \sa reserve()
+ \sa reserve(), squeeze()
*/
/*! \fn void QVarLengthArray::reserve(int size)
@@ -240,7 +240,21 @@
rarely ever need to call this function. If you want to change the
size of the array, call resize().
- \sa capacity()
+ \sa capacity(), squeeze()
+*/
+
+/*! \fn void QVarLengthArray::squeeze()
+ \since 5.1
+
+ Releases any memory not required to store the items.
+ If the container can fit its storage on the stack allocation,
+ it will free the heap allocation and copy the elements back to the stack.
+
+ The sole purpose of this function is to provide a means of fine
+ tuning QVarLengthArray's memory usage. In general, you will rarely ever
+ need to call this function.
+
+ \sa reserve(), capacity(), resize()
*/
/*! \fn T &QVarLengthArray::operator[](int i)
diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h
index 94f3008274..7d5cf91324 100644
--- a/src/corelib/tools/qvector.h
+++ b/src/corelib/tools/qvector.h
@@ -56,8 +56,6 @@
#include <initializer_list>
#endif
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
class QRegion;
@@ -813,6 +811,4 @@ Q_TEMPLATE_EXTERN template class Q_CORE_EXPORT QVector<QPoint>;
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QVECTOR_H
diff --git a/src/corelib/tools/tools.pri b/src/corelib/tools/tools.pri
index 564aff9ab9..9b80b7c4fe 100644
--- a/src/corelib/tools/tools.pri
+++ b/src/corelib/tools/tools.pri
@@ -29,6 +29,7 @@ HEADERS += \
tools/qlocale_data_p.h \
tools/qmap.h \
tools/qmargins.h \
+ tools/qmessageauthenticationcode.h \
tools/qcontiguouscache.h \
tools/qpodlist_p.h \
tools/qpair.h \
@@ -82,6 +83,7 @@ SOURCES += \
tools/qpoint.cpp \
tools/qmap.cpp \
tools/qmargins.cpp \
+ tools/qmessageauthenticationcode.cpp \
tools/qcontiguouscache.cpp \
tools/qrect.cpp \
tools/qregexp.cpp \
@@ -146,7 +148,8 @@ SOURCES += ../3rdparty/harfbuzz/src/harfbuzz-buffer.c \
HEADERS += tools/qharfbuzz_p.h
INCLUDEPATH += ../3rdparty/md5 \
- ../3rdparty/md4
+ ../3rdparty/md4 \
+ ../3rdparty/sha3
# Note: libm should be present by default becaue this is C++
!macx-icc:!vxworks:unix:LIBS_PRIVATE += -lm
diff --git a/src/corelib/xml/qxmlstream.h b/src/corelib/xml/qxmlstream.h
index e3336122f9..8a9c2fcb76 100644
--- a/src/corelib/xml/qxmlstream.h
+++ b/src/corelib/xml/qxmlstream.h
@@ -50,8 +50,6 @@
#include <QtCore/qvector.h>
#include <QtCore/qscopedpointer.h>
-QT_BEGIN_HEADER
-
QT_BEGIN_NAMESPACE
@@ -426,7 +424,5 @@ private:
QT_END_NAMESPACE
-QT_END_HEADER
-
#endif // QT_NO_XMLSTREAM
#endif // QXMLSTREAM_H