diff options
85 files changed, 4093 insertions, 1953 deletions
diff --git a/.gitignore b/.gitignore index dc6738c079..16c4e40c46 100644 --- a/.gitignore +++ b/.gitignore @@ -38,6 +38,7 @@ uptime-*.json /Makefile /Makefile.in /aclocal.m4 +/ar-lib /autom4te.cache /build-stamp /compile @@ -94,11 +95,6 @@ uptime-*.json /doc/tor.html /doc/tor.html.in /doc/tor.1.xml -/doc/tor-fw-helper.1 -/doc/tor-fw-helper.1.in -/doc/tor-fw-helper.html -/doc/tor-fw-helper.html.in -/doc/tor-fw-helper.1.xml /doc/tor-gencert.1 /doc/tor-gencert.1.in /doc/tor-gencert.html @@ -214,12 +210,6 @@ uptime-*.json /src/trunnel/libor-trunnel-testing.a /src/trunnel/libor-trunnel.a -# /src/tools/tor-fw-helper/ -/src/tools/tor-fw-helper/tor-fw-helper -/src/tools/tor-fw-helper/tor-fw-helper.exe -/src/tools/tor-fw-helper/Makefile -/src/tools/tor-fw-helper/Makefile.in - # /src/win32/ /src/win32/Makefile /src/win32/Makefile.in diff --git a/acinclude.m4 b/acinclude.m4 index ab12317139..193d3a7a08 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -51,12 +51,12 @@ AC_DEFUN([TOR_TRY_COMPILE_WITH_CFLAGS], [ AC_CACHE_CHECK([whether the compiler accepts $1], VAR, [ tor_saved_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -pedantic -Werror $1" - AC_TRY_COMPILE([], [return 0;], + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [AS_VAR_SET(VAR,yes)], [AS_VAR_SET(VAR,no)]) if test x$2 != x; then AS_VAR_PUSHDEF([can_link],[tor_can_link_$1]) - AC_TRY_LINK([], [return 0;], + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [AS_VAR_SET(can_link,yes)], [AS_VAR_SET(can_link,no)]) AS_VAR_POPDEF([can_link]) @@ -93,7 +93,7 @@ AC_DEFUN([TOR_CHECK_LDFLAGS], [ AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <stdio.h>], [fputs("", stdout)])], [AS_VAR_SET(VAR,yes)], [AS_VAR_SET(VAR,no)], - [AC_TRY_LINK([], [return 0;], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [AS_VAR_SET(VAR,yes)], [AS_VAR_SET(VAR,no)])]) CFLAGS="$tor_saved_CFLAGS" @@ -113,21 +113,21 @@ if test x$2 = xdevpkg; then h=" headers for" fi if test -f /etc/debian_version && test x"$tor_$1_$2_debian" != x; then - AC_WARN([On Debian, you can install$h $1 using "apt-get install $tor_$1_$2_debian"]) + AC_MSG_WARN([On Debian, you can install$h $1 using "apt-get install $tor_$1_$2_debian"]) if test x"$tor_$1_$2_debian" != x"$tor_$1_devpkg_debian"; then - AC_WARN([ You will probably need $tor_$1_devpkg_debian too.]) + AC_MSG_WARN([ You will probably need $tor_$1_devpkg_debian too.]) fi fi if test -f /etc/fedora-release && test x"$tor_$1_$2_redhat" != x; then - AC_WARN([On Fedora, you can install$h $1 using "dnf install $tor_$1_$2_redhat"]) + AC_MSG_WARN([On Fedora, you can install$h $1 using "dnf install $tor_$1_$2_redhat"]) if test x"$tor_$1_$2_redhat" != x"$tor_$1_devpkg_redhat"; then - AC_WARN([ You will probably need to install $tor_$1_devpkg_redhat too.]) + AC_MSG_WARN([ You will probably need to install $tor_$1_devpkg_redhat too.]) fi else if test -f /etc/redhat-release && test x"$tor_$1_$2_redhat" != x; then - AC_WARN([On most Redhat-based systems, you can get$h $1 by installing the $tor_$1_$2_redhat RPM package]) + AC_MSG_WARN([On most Redhat-based systems, you can get$h $1 by installing the $tor_$1_$2_redhat RPM package]) if test x"$tor_$1_$2_redhat" != x"$tor_$1_devpkg_redhat"; then - AC_WARN([ You will probably need to install $tor_$1_devpkg_redhat too.]) + AC_MSG_WARN([ You will probably need to install $tor_$1_devpkg_redhat too.]) fi fi fi @@ -245,7 +245,10 @@ if test "$cross_compiling" != yes; then LDFLAGS="$tor_tryextra $orig_LDFLAGS" fi AC_RUN_IFELSE([AC_LANG_PROGRAM([$5], [$6])], - [runnable=yes], [runnable=no]) + [runnable=yes], [runnable=no], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], + [runnable=yes], + [runnable=no])]) if test "$runnable" = yes; then tor_cv_library_$1_linker_option=$tor_tryextra break diff --git a/autogen.sh b/autogen.sh index 8c43a9798a..276dd4047c 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,12 +1,12 @@ #!/bin/sh if [ -x "`which autoreconf 2>/dev/null`" ] ; then - opt="-if" + opt="-i -f -W all,error" for i in $@; do case "$i" in -v) - opt=$opt"v" + opt="${opt} -v" ;; esac done diff --git a/changes/18146 b/changes/18146 new file mode 100644 index 0000000000..35565da18d --- /dev/null +++ b/changes/18146 @@ -0,0 +1,5 @@ + o Minor bugfix (control protocol): + - The reply to a "GETINFO config/names" request via the control protocol + now spells the type "Dependent" correctly. This is a breaking change in + the control protocol. (It seems to be ignored by the most common known + clients.) Fixes bug 18146; bugfix on 0.1.1.4-alpha. diff --git a/changes/20885 b/changes/20885 new file mode 100644 index 0000000000..f1cdddaa79 --- /dev/null +++ b/changes/20885 @@ -0,0 +1,3 @@ + o Documentation (formatting): + - Clean up formatting of tor.1 man page and HTML doc, where <pre> blocks + were incorrectly appearing. Closes ticket 20885. diff --git a/changes/bug19222 b/changes/bug19222 new file mode 100644 index 0000000000..72714e1c6f --- /dev/null +++ b/changes/bug19222 @@ -0,0 +1,4 @@ + o Minor bugfixes (bug resilience): + - Fix an (unreachable) size_t overflow in base64_decode(). Fixes bug + 19222; bugfix on 0.2.0.9-alpha. Found by Guido Vranken; fixed by + Hans Jerry Illikainen. diff --git a/changes/bug19899 b/changes/bug19899 new file mode 100644 index 0000000000..af110bd5bd --- /dev/null +++ b/changes/bug19899 @@ -0,0 +1,5 @@ + o Minor features: + - Relays are now willing act as v3 hidden service directories, + regardless of the EnableOnionServicvesV3 parameter. Implements + ticket 19899. + diff --git a/changes/bug20823 b/changes/bug20823 new file mode 100644 index 0000000000..07c52febb8 --- /dev/null +++ b/changes/bug20823 @@ -0,0 +1,5 @@ + o Minor bugfixes (controller): + - Make the GETINFO interface for inquiring about entry guards + support the new guards backend. Fixes bug 20823; bugfix on + 0.3.0.1-alpha. + diff --git a/changes/bug20862 b/changes/bug20862 new file mode 100644 index 0000000000..fba98c8ead --- /dev/null +++ b/changes/bug20862 @@ -0,0 +1,6 @@ + o Minor bugfixes (unit tests): + - Allow the unit tests to pass even when DNS lookups of bogus + addresses do not fail as expected. Fixes bug 20862 and 20863; + bugfix on unit tests introduced in 0.2.8.1-alpha through + 0.2.9.4-alpha. + diff --git a/changes/bug20974 b/changes/bug20974 new file mode 100644 index 0000000000..febe5108f7 --- /dev/null +++ b/changes/bug20974 @@ -0,0 +1,5 @@ + o Minor bugfixes (guards, bootstrapping): + - When connecting to a directory guard during bootstrap, do not + mark the guard as successful until we receive a good-looking + directory response from it. Fixes bug 20974; bugfix on 0.3.0.1-alpha. + diff --git a/changes/bug20987 b/changes/bug20987 new file mode 100644 index 0000000000..9922d739dd --- /dev/null +++ b/changes/bug20987 @@ -0,0 +1,3 @@ + o Minor bugfixes (memory leaks): + - Fix a memory leak when configuring hidden services. Fixes bug 20987; + bugfix on 0.3.0.1-alpha. diff --git a/changes/bug20996 b/changes/bug20996 new file mode 100644 index 0000000000..b2be805b0a --- /dev/null +++ b/changes/bug20996 @@ -0,0 +1,9 @@ + o Minor bugfixes (IPv6): + - Make IP6-using clients try harder to find an IPv6 directory server. + Fixes bug 20999; bugfix on 77a9de0 from 17840 in 0.2.8.2-alpha. + - When IPv6 addresses have not been downloaded, use hard-coded address + info for authorities, fallbacks, and configured bridges. + (When IPv6-only clients receive a microdesc consensus, it has no IPv6 + addresses, so they can't use it until microdescs are downloaded.) + This allows IPv6-only clients to use microdescriptors. + Fixes bug 20996; bugfix on b167e82 from 19608 in 0.2.8.5-alpha. diff --git a/changes/bug21035 b/changes/bug21035 new file mode 100644 index 0000000000..bbf3340787 --- /dev/null +++ b/changes/bug21035 @@ -0,0 +1,6 @@ + o Minor bugfixes (portability): + - Avoid crashing when Tor is built using headers that contain + CLOCK_MONOTONIC_COARSE, but then tries to run on an older kernel + without CLOCK_MONOTONIC_COARSE. Fixes bug 21035; bugfix on + 0.2.9.1-alpha. + diff --git a/changes/bug21051 b/changes/bug21051 new file mode 100644 index 0000000000..8bb4f80c8e --- /dev/null +++ b/changes/bug21051 @@ -0,0 +1,3 @@ + o Minor bugfixes (compilation): + - Fix Libevent detection on platforms without Libevent 1 headers + installed. Fixes bug 21051; bugfix on 0.2.9.1-alpha. diff --git a/changes/bug21054 b/changes/bug21054 new file mode 100644 index 0000000000..bc499490ee --- /dev/null +++ b/changes/bug21054 @@ -0,0 +1,5 @@ + o Minor bugfixes (hidden service): + - Fix the config reload pruning of old vs new services so it actually + works when both ephemeral and non ephemeral services were configured + which lead to a BUG() stacktrace. Close #21054; Bugfix on + tor-0.3.0.1-alpha. diff --git a/changes/bug21122 b/changes/bug21122 new file mode 100644 index 0000000000..72d09b230f --- /dev/null +++ b/changes/bug21122 @@ -0,0 +1,4 @@ + o Minor bugfixes (documentation): + - Update the tor manual page to document every option that can not be + changed while tor is running. Fixes bug 21122; bugfix on multiple tor + versions. diff --git a/changes/bug21123 b/changes/bug21123 new file mode 100644 index 0000000000..cb165808a2 --- /dev/null +++ b/changes/bug21123 @@ -0,0 +1,5 @@ + o Minor bugfixes (dead code): + - Remove a rendundant check for PidFile changes at runtime in + options_transition_allowed(): this check is already performed regardless + of whether the sandbox is active. Fixes bug 21123; bugfix on commit + 2ae47d3 in 0.2.5.4-alpha. diff --git a/changes/geoip-january2017 b/changes/geoip-january2017 new file mode 100644 index 0000000000..de1a4cbe2a --- /dev/null +++ b/changes/geoip-january2017 @@ -0,0 +1,4 @@ + o Minor features: + - Update geoip and geoip6 to the January 4 2017 Maxmind GeoLite2 + Country database. + diff --git a/changes/ticket19925 b/changes/ticket19925 new file mode 100644 index 0000000000..a169aa5fb0 --- /dev/null +++ b/changes/ticket19925 @@ -0,0 +1,3 @@ + o Minor features (controller): + - Add GETINFO sr/current and sr/previous keys, to expose shared- + random values to the controller. Closes ticket 19925. diff --git a/changes/ticket20990 b/changes/ticket20990 new file mode 100644 index 0000000000..3dbe441057 --- /dev/null +++ b/changes/ticket20990 @@ -0,0 +1,4 @@ + o Minor bugfixes (build): + - Replace obsolete Autoconf macros with their modern equivalent and + prevent similar issues in the future. Fixes bug 20990; bugfix on + 0.1.0.1-rc. diff --git a/changes/ticket21026 b/changes/ticket21026 new file mode 100644 index 0000000000..530a52c95e --- /dev/null +++ b/changes/ticket21026 @@ -0,0 +1,3 @@ + o Minor bugfixes (testing): + - Remove undefined behavior from the backtrace generator by removing + its signal handler. Fixes bug 21026; bugfix on 0.2.5.2-alpha. diff --git a/changes/ticket21037 b/changes/ticket21037 new file mode 100644 index 0000000000..8507b88cde --- /dev/null +++ b/changes/ticket21037 @@ -0,0 +1,4 @@ + o Minor features (logging): + - In several places, describe unset ed25519 keys as "<unset>", rather + than "AAAAAAAA...AAA". Closes ticket 21037. + diff --git a/changes/ticket21096 b/changes/ticket21096 new file mode 100644 index 0000000000..4265a3d5fa --- /dev/null +++ b/changes/ticket21096 @@ -0,0 +1,3 @@ + o Minor features (linting): + - Enhance the changes file linter to warn on Tor versions that are + prefixed with 'tor-'. Closes ticket 21096. diff --git a/configure.ac b/configure.ac index 721f5cd8c3..bacb08b245 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ AC_CONFIG_MACRO_DIR([m4]) # "foreign" means we don't follow GNU package layout standards # "1.11" means we require automake version 1.11 or newer # "subdir-objects" means put .o files in the same directory as the .c files -AM_INIT_AUTOMAKE([foreign 1.11 subdir-objects]) +AM_INIT_AUTOMAKE([foreign 1.11 subdir-objects -Wall -Werror]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_CONFIG_HEADERS([orconfig.h]) @@ -170,11 +170,15 @@ AC_ARG_ENABLE(seccomp, AC_ARG_ENABLE(libscrypt, AS_HELP_STRING(--disable-libscrypt, [do not attempt to use libscrypt])) -dnl check for the correct "ar" when cross-compiling -AN_MAKEVAR([AR], [AC_PROG_AR]) -AN_PROGRAM([ar], [AC_PROG_AR]) -AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL([AR], [ar], [ar])]) -AC_PROG_AR +dnl check for the correct "ar" when cross-compiling. +dnl (AM_PROG_AR was new in automake 1.11.2, which we do not yet require, +dnl so kludge up a replacement for the case where it isn't there yet.) +m4_ifdef([AM_PROG_AR], + [AM_PROG_AR], + [AN_MAKEVAR([AR], [AC_PROG_AR]) + AN_PROGRAM([ar], [AC_PROG_AR]) + AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL([AR], [ar], [:])]) + AC_PROG_AR]) dnl Check whether the above macro has settled for a simply named tool even dnl though we're cross compiling. We must do this before running AC_PROG_CC, @@ -194,23 +198,18 @@ AC_PROG_CC AC_PROG_CPP AC_PROG_MAKE_SET AC_PROG_RANLIB +AC_PROG_SED AC_ARG_VAR([PERL], [path to Perl binary]) AC_CHECK_PROGS([PERL], [perl]) AM_CONDITIONAL(USE_PERL, [test "x$ac_cv_prog_PERL" != "x"]) -dnl autoconf 2.59 appears not to support AC_PROG_SED -AC_CHECK_PROG([SED],[sed],[sed],[/bin/false]) - dnl check for asciidoc and a2x AC_PATH_PROG([ASCIIDOC], [asciidoc], none) AC_PATH_PROGS([A2X], [a2x a2x.py], none) AM_CONDITIONAL(USE_ASCIIDOC, test "x$asciidoc" = "xtrue") -AM_CONDITIONAL(USE_FW_HELPER, test "x$natpmp" = "xtrue" || test "x$upnp" = "xtrue") -AM_CONDITIONAL(NAT_PMP, test "x$natpmp" = "xtrue") -AM_CONDITIONAL(MINIUPNPC, test "x$upnp" = "xtrue") AM_PROG_CC_C_O AC_PROG_CC_C99 @@ -429,7 +428,7 @@ AC_CHECK_FUNCS( # checks. So we should only probe for those functions if we are sure that we # are not targetting OSX 10.11 or earlier. AC_MSG_CHECKING([for a pre-Sierra OSX build target]) -AC_TRY_COMPILE([ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #ifdef __APPLE__ # include <AvailabilityMacros.h> # ifndef MAC_OS_X_VERSION_10_12 @@ -441,7 +440,7 @@ AC_TRY_COMPILE([ # endif # endif #endif -], [], +]], [[]])], [on_macos_pre_10_12=no ; AC_MSG_RESULT([no])], [on_macos_pre_10_12=yes; AC_MSG_RESULT([yes])]) @@ -510,12 +509,13 @@ TOR_SEARCH_LIBRARY(libevent, $trylibeventdir, [-levent $STATIC_LIBEVENT_FLAGS $T #ifdef _WIN32 #include <winsock2.h> #endif -void *event_init(void);], +struct event_base; +struct event_base *event_base_new(void);], [ #ifdef _WIN32 {WSADATA d; WSAStartup(0x101,&d); } #endif -event_init(); +event_base_new(); ], [--with-libevent-dir], [/opt/libevent]) dnl Determine the incantation needed to link libevent. @@ -640,16 +640,16 @@ LIBS="$TOR_OPENSSL_LIBS $LIBS" LDFLAGS="$TOR_LDFLAGS_openssl $LDFLAGS" CPPFLAGS="$TOR_CPPFLAGS_openssl $CPPFLAGS" -AC_TRY_COMPILE([ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <openssl/opensslv.h> #if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER < 0x1000100fL #error "too old" #endif - ], [], + ]], [[]])], [ : ], - [ AC_ERROR([OpenSSL is too old. We require 1.0.1 or later. You can specify a path to a newer one with --with-openssl-dir.]) ]) + [ AC_MSG_ERROR([OpenSSL is too old. We require 1.0.1 or later. You can specify a path to a newer one with --with-openssl-dir.]) ]) -AC_TRY_COMPILE([ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <openssl/opensslv.h> #include <openssl/evp.h> #if defined(OPENSSL_NO_EC) || defined(OPENSSL_NO_ECDH) || defined(OPENSSL_NO_ECDSA) @@ -658,9 +658,9 @@ AC_TRY_COMPILE([ #if !defined(NID_X9_62_prime256v1) || !defined(NID_secp224r1) #error "curves unavailable" #endif - ], [], + ]], [[]])], [ : ], - [ AC_ERROR([OpenSSL is built without full ECC support, including curves P256 and P224. You can specify a path to one with ECC support with --with-openssl-dir.]) ]) + [ AC_MSG_ERROR([OpenSSL is built without full ECC support, including curves P256 and P224. You can specify a path to one with ECC support with --with-openssl-dir.]) ]) AC_CHECK_MEMBERS([struct ssl_method_st.get_cipher_by_char], , , [#include <openssl/ssl.h> @@ -1465,9 +1465,9 @@ AC_CHECK_FUNC(gethostbyname_r, [ AC_MSG_CHECKING([how many arguments gethostbyname_r() wants]) OLD_CFLAGS=$CFLAGS CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <netdb.h> - ], [[ + ]], [[ char *cp1, *cp2; struct hostent *h1, *h2; int i1, i2; @@ -1478,27 +1478,27 @@ AC_CHECK_FUNC(gethostbyname_r, [ [Define this if gethostbyname_r takes 6 arguments]) AC_MSG_RESULT(6) ], [ - AC_TRY_COMPILE([ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <netdb.h> - ], [ + ]], [[ char *cp1, *cp2; struct hostent *h1; int i1, i2; (void)gethostbyname_r(cp1,h1,cp2,i1,&i2); - ], [ + ]])], [ AC_DEFINE(HAVE_GETHOSTBYNAME_R) AC_DEFINE(HAVE_GETHOSTBYNAME_R_5_ARG, 1, [Define this if gethostbyname_r takes 5 arguments]) AC_MSG_RESULT(5) ], [ - AC_TRY_COMPILE([ + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <netdb.h> - ], [ + ]], [[ char *cp1; struct hostent *h1; struct hostent_data hd; (void) gethostbyname_r(cp1,h1,&hd); - ], [ + ]])], [ AC_DEFINE(HAVE_GETHOSTBYNAME_R) AC_DEFINE(HAVE_GETHOSTBYNAME_R_3_ARG, 1, [Define this if gethostbyname_r takes 3 arguments]) diff --git a/doc/HACKING/HelpfulTools.md b/doc/HACKING/HelpfulTools.md index a7f36e6c7e..67481ace43 100644 --- a/doc/HACKING/HelpfulTools.md +++ b/doc/HACKING/HelpfulTools.md @@ -142,6 +142,12 @@ run `make test-network`. We also have scripts to run integration tests using Stem. To try them, set `STEM_SOURCE_DIR` to your Stem source directory, and run `test-stem`. +Profiling Tor +------------- + +Ongoing notes about Tor profiling can be found at +https://pad.riseup.net/p/profiling-tor + Profiling Tor with oprofile --------------------------- @@ -168,6 +174,55 @@ Here are some basic instructions * `opreport -l that_dir/*` - Profit +Profiling Tor with perf +----------------------- + +This works with a running Tor, and requires root. + +1. Decide how long you want to profile for. Start with (say) 30 seconds. If that + works, try again with longer times. + +2. Find the PID of your running tor process. + +3. Run `perf record --call-graph dwarf -p <PID> sleep <SECONDS>` + + (You may need to do this as root.) + + You might need to add `-e cpu-clock` as an option to the perf record line + above, if you are on an older CPU without access to hardware profiling + events, or in a VM, or something. + +4. Now you have a perf.data file. Have a look at it with `perf report + --no-children --sort symbol,dso` or `perf report --no-children --sort + symbol,dso --stdio --header`. How does it look? + +5a. Once you have a nice big perf.data file, you can compress it, encrypt it, + and send it to your favorite Tor developers. + +5b. Or maybe you'd rather not send a nice big perf.data file. Who knows what's + in that!? It's kinda scary. To generate a less scary file, you can use `perf + report -g > <FILENAME>.out`. Then you can compress that and put it somewhere + public. + +Profiling Tor with gperftools aka Google-performance-tools +---------------------------------------------------------- + +This should work on nearly any unixy system. It doesn't seem to be compatible +with RunAsDaemon though. + +Beforehand, install google-perftools. + +1. You need to rebuild Tor, hack the linking steps to add `-lprofiler` to the + libs. You can do this by adding `LIBS=-lprofiler` when you call `./configure`. + +Now you can run Tor with profiling enabled, and use the pprof utility to look at +performance! See the gperftools manual for more info, but basically: + +2. Run `env CPUPROFILE=/tmp/profile src/or/tor -f <path/torrc>`. The profile file + is not written to until Tor finishes execuction. + +3. Run `pprof src/or/tor /tm/profile` to start the REPL. + Generating and analyzing a callgraph ------------------------------------ diff --git a/doc/include.am b/doc/include.am index 7164a4b2a0..0e8de231e1 100644 --- a/doc/include.am +++ b/doc/include.am @@ -12,17 +12,11 @@ # part of the source distribution, so that people without asciidoc can # just use the .1 and .html files. -base_mans = doc/tor doc/tor-gencert doc/tor-resolve doc/torify -all_mans = $(base_mans) -if USE_FW_HELPER -install_mans = $(all_mans) -else -install_mans = $(base_mans) -endif +all_mans = doc/tor doc/tor-gencert doc/tor-resolve doc/torify if USE_ASCIIDOC -nodist_man1_MANS = $(install_mans:=.1) -doc_DATA = $(install_mans:=.html) +nodist_man1_MANS = $(all_mans:=.1) +doc_DATA = $(all_mans:=.html) html_in = $(all_mans:=.html.in) man_in = $(all_mans:=.1.in) txt_in = $(all_mans:=.1.txt) diff --git a/doc/tor.1.txt b/doc/tor.1.txt index 36a67ffa23..32f89086aa 100644 --- a/doc/tor.1.txt +++ b/doc/tor.1.txt @@ -390,7 +390,8 @@ GENERAL OPTIONS file readable by the default GID. (Default: 0) [[DataDirectory]] **DataDirectory** __DIR__:: - Store working data in DIR (Default: @LOCALSTATEDIR@/lib/tor) + Store working data in DIR. Can not be changed while tor is running. + (Default: @LOCALSTATEDIR@/lib/tor) [[DataDirectoryGroupReadable]] **DataDirectoryGroupReadable** **0**|**1**:: If this option is set to 0, don't allow the filesystem group to read the @@ -464,7 +465,8 @@ GENERAL OPTIONS not supported. We believe that this feature works on modern Gnu/Linux distributions, and that it should work on *BSD systems (untested). This option requires that you start your Tor as root, and you should use the - **User** option to properly reduce Tor's privileges. (Default: 0) + **User** option to properly reduce Tor's privileges. + Can not be changed while tor is running. (Default: 0) [[DisableDebuggerAttachment]] **DisableDebuggerAttachment** **0**|**1**:: If set to 1, Tor will attempt to prevent basic debugging attachment attempts @@ -539,7 +541,20 @@ GENERAL OPTIONS [[Sandbox]] **Sandbox** **0**|**1**:: If set to 1, Tor will run securely through the use of a syscall sandbox. Otherwise the sandbox will be disabled. The option is currently an - experimental feature. (Default: 0) + experimental feature. Can not be changed while tor is running. + + When the Sandbox is 1, the following options can not be changed when tor + is running: + Address + ConnLimit + CookieAuthFile + DirPortFrontPage + ExtORPortCookieAuthFile + Logs + ServerDNSResolvConfFile + Tor must remain in client or server mode (some changes to ClientOnly and + ORPort are not allowed). + (Default: 0) [[Socks4Proxy]] **Socks4Proxy** __host__[:__port__]:: Tor will make all OR connections through the SOCKS 4 proxy at host:port @@ -627,7 +642,7 @@ GENERAL OPTIONS [[PidFile]] **PidFile** __FILE__:: On startup, write our PID to FILE. On clean shutdown, remove - FILE. + FILE. Can not be changed while tor is running. [[ProtocolWarnings]] **ProtocolWarnings** **0**|**1**:: If 1, Tor will log with severity \'warn' various cases of other parties not @@ -643,6 +658,7 @@ GENERAL OPTIONS [[RunAsDaemon]] **RunAsDaemon** **0**|**1**:: If 1, Tor forks and daemonizes to the background. This option has no effect on Windows; instead you should use the --service command-line option. + Can not be changed while tor is running. (Default: 0) [[LogTimeGranularity]] **LogTimeGranularity** __NUM__:: @@ -659,7 +675,8 @@ GENERAL OPTIONS [[SyslogIdentityTag]] **SyslogIdentityTag** __tag__:: When logging to syslog, adds a tag to the syslog identity such that - log entries are marked with "Tor-__tag__". (Default: none) + log entries are marked with "Tor-__tag__". Can not be changed while tor is + running. (Default: none) [[SafeLogging]] **SafeLogging** **0**|**1**|**relay**:: Tor can scrub potentially sensitive strings from log messages (e.g. @@ -674,6 +691,7 @@ GENERAL OPTIONS [[User]] **User** __Username__:: On startup, setuid to this user and setgid to their primary group. + Can not be changed while tor is running. [[KeepBindCapabilities]] **KeepBindCapabilities** **0**|**1**|**auto**:: On Linux, when we are started as root and we switch our identity using @@ -681,20 +699,23 @@ GENERAL OPTIONS try to retain our ability to bind to low ports. If this value is 1, we try to keep the capability; if it is 0 we do not; and if it is **auto**, we keep the capability only if we are configured to listen on a low port. + Can not be changed while tor is running. (Default: auto.) [[HardwareAccel]] **HardwareAccel** **0**|**1**:: If non-zero, try to use built-in (static) crypto hardware acceleration when - available. (Default: 0) + available. Can not be changed while tor is running. (Default: 0) [[AccelName]] **AccelName** __NAME__:: When using OpenSSL hardware crypto acceleration attempt to load the dynamic engine of this name. This must be used for any dynamic hardware engine. - Names can be verified with the openssl engine command. + Names can be verified with the openssl engine command. Can not be changed + while tor is running. [[AccelDir]] **AccelDir** __DIR__:: Specify this option if using dynamic hardware acceleration and the engine implementation library resides somewhere other than the OpenSSL default. + Can not be changed while tor is running. [[AvoidDiskWrites]] **AvoidDiskWrites** **0**|**1**:: If non-zero, try to write to disk less frequently than we would otherwise. @@ -1150,6 +1171,7 @@ The following options are useful only for clients (that is, if authentication" when IsolateSOCKSAuth is disabled, or when this option is set. +[[SocksPortFlagsMisc]]:: Flags are processed left to right. If flags conflict, the last flag on the line is used, and all earlier flags are ignored. No error is issued for conflicting flags. @@ -1180,7 +1202,8 @@ The following options are useful only for clients (that is, if NUM must be between 1 and 1000, inclusive. Note that the configured bandwidth limits are still expressed in bytes per second: this option only affects the frequency with which Tor checks to see whether - previously exhausted connections may read again. (Default: 100 msec) + previously exhausted connections may read again. + Can not be changed while tor is running. (Default: 100 msec) [[TrackHostExits]] **TrackHostExits** __host__,__.domain__,__...__:: For each value in the comma separated list, Tor will track recent @@ -1334,7 +1357,7 @@ The following options are useful only for clients (that is, if [[TransProxyType]] **TransProxyType** **default**|**TPROXY**|**ipfw**|**pf-divert**:: TransProxyType may only be enabled when there is transparent proxy listener - enabled. + enabled. + + Set this to "TPROXY" if you wish to be able to use the TPROXY Linux module to transparently proxy connections that are configured using the TransPort @@ -1342,19 +1365,19 @@ The following options are useful only for clients (that is, if for all addresses, even when the TransListenAddress is configured for an internal address. Detailed information on how to configure the TPROXY feature can be found in the Linux kernel source tree in the file - Documentation/networking/tproxy.txt. + Documentation/networking/tproxy.txt. + + - Set this option to "ipfw" to use the FreeBSD ipfw interface. + Set this option to "ipfw" to use the FreeBSD ipfw interface. + + On *BSD operating systems when using pf, set this to "pf-divert" to take advantage of +divert-to+ rules, which do not modify the packets like +rdr-to+ rules do. Detailed information on how to configure pf to use +divert-to+ rules can be found in the pf.conf(5) manual page. On OpenBSD, +divert-to+ is available to use on versions greater than or equal to - OpenBSD 4.4. + OpenBSD 4.4. + + Set this to "default", or leave it unconfigured, to use regular IPTables - on Linux, or to use pf +rdr-to+ rules on *BSD systems. + on Linux, or to use pf +rdr-to+ rules on *BSD systems. + + (Default: "default".) @@ -1462,11 +1485,11 @@ The following options are useful only for clients (that is, if (Example: Tor2webRendezvousPoints Fastyfasty, ABCD1234CDEF5678ABCD1234CDEF5678ABCD1234, \{cc}, 255.254.0.0/8) + + - This feature can only be used if Tor2webMode is also enabled. + This feature can only be used if Tor2webMode is also enabled. + + ExcludeNodes have higher priority than Tor2webRendezvousPoints, which means that nodes specified in ExcludeNodes will not be - picked as RPs. + picked as RPs. + + If no nodes in Tor2webRendezvousPoints are currently available for use, Tor will choose a random node when building HS circuits. @@ -1494,7 +1517,7 @@ The following options are useful only for clients (that is, if These options override the default behavior of Tor's (**currently experimental**) path bias detection algorithm. To try to find broken or misbehaving guard nodes, Tor looks for nodes where more than a certain - fraction of circuits through that guard fail to get built. + fraction of circuits through that guard fail to get built. + + The PathBiasCircThreshold option controls how many circuits we need to build through a guard before we make these checks. The PathBiasNoticeRate, @@ -1520,14 +1543,14 @@ The following options are useful only for clients (that is, if [[PathBiasScaleUseThreshold]] **PathBiasScaleUseThreshold** __NUM__:: Similar to the above options, these options override the default behavior - of Tor's (**currently experimental**) path use bias detection algorithm. + of Tor's (**currently experimental**) path use bias detection algorithm. + + Where as the path bias parameters govern thresholds for successfully building circuits, these four path use bias parameters govern thresholds only for circuit usage. Circuits which receive no stream usage are not counted by this detection algorithm. A used circuit is considered successful if it is capable of carrying streams or otherwise receiving - well-formed responses to RELAY cells. + well-formed responses to RELAY cells. + + By default, or if a negative value is provided for one of these options, Tor uses reasonable defaults from the networkstatus consensus document. @@ -1661,7 +1684,7 @@ is non-zero): Tells Tor whether to run as an exit relay. If Tor is running as a non-bridge server, and ExitRelay is set to 1, then Tor allows traffic to exit according to the ExitPolicy option (or the default ExitPolicy if - none is specified). + none is specified). + + If ExitRelay is set to 0, no traffic is allowed to exit, and the ExitPolicy option is ignored. + @@ -1739,6 +1762,7 @@ is non-zero): reject *:6881-6999 accept *:* +[[ExitPolicyDefault]]:: Since the default exit policy uses accept/reject *, it applies to both IPv4 and IPv6 addresses. @@ -1775,7 +1799,7 @@ is non-zero): that they are in the same \'family', Tor clients will not use them in the same circuit. (Each server only needs to list the other servers in its family; it doesn't need to list itself, but it won't hurt.) Do not list - any bridge relay as it would compromise its concealment. + any bridge relay as it would compromise its concealment. + + When listing a node, it's better to list it by fingerprint than by nickname: fingerprints are more reliable. @@ -1793,26 +1817,27 @@ is non-zero): Advertise this port to listen for connections from Tor clients and servers. This option is required to be a Tor server. Set it to "auto" to have Tor pick a port for you. Set it to 0 to not - run an ORPort at all. This option can occur more than once. (Default: 0) -+ + run an ORPort at all. This option can occur more than once. (Default: 0) + + + Tor recognizes these flags on each ORPort: - **NoAdvertise**:: + **NoAdvertise**;; By default, we bind to a port and tell our users about it. If NoAdvertise is specified, we don't advertise, but listen anyway. This can be useful if the port everybody will be connecting to (for example, one that's opened on our firewall) is somewhere else. - **NoListen**:: + **NoListen**;; By default, we bind to a port and tell our users about it. If NoListen is specified, we don't bind, but advertise anyway. This can be useful if something else (for example, a firewall's port forwarding configuration) is causing connections to reach us. - **IPv4Only**:: + **IPv4Only**;; If the address is absent, or resolves to both an IPv4 and an IPv6 address, only listen to the IPv4 address. - **IPv6Only**:: + **IPv6Only**;; If the address is absent, or resolves to both an IPv4 and an IPv6 address, only listen to the IPv6 address. -+ + +[[ORPortFlagsExclusive]]:: For obvious reasons, NoAdvertise and NoListen are mutually exclusive, and IPv4Only and IPv6Only are mutually exclusive. @@ -1820,8 +1845,8 @@ is non-zero): Bind to this IP address to listen for connections from Tor clients and servers. If you specify a port, bind to this port rather than the one specified in ORPort. (Default: 0.0.0.0) This directive can be specified - multiple times to bind to multiple addresses/ports. -+ + multiple times to bind to multiple addresses/ports. + + + This option is deprecated; you can get the same behavior with ORPort now that it supports NoAdvertise and explicit addresses. @@ -1840,7 +1865,7 @@ is non-zero): [[PublishServerDescriptor]] **PublishServerDescriptor** **0**|**1**|**v3**|**bridge**,**...**:: This option specifies which descriptors Tor will publish when acting as a relay. You can - choose multiple arguments, separated by commas. + choose multiple arguments, separated by commas. + + If this option is set to 0, Tor will not publish its descriptors to any directories. (This is useful if you're testing @@ -2095,16 +2120,16 @@ if DirPort is non-zero): If this option is nonzero, advertise the directory service on this port. Set it to "auto" to have Tor pick a port for you. This option can occur more than once, but only one advertised DirPort is supported: all - but one DirPort must have the **NoAdvertise** flag set. (Default: 0) -+ + but one DirPort must have the **NoAdvertise** flag set. (Default: 0) + + + The same flags are supported here as are supported by ORPort. [[DirListenAddress]] **DirListenAddress** __IP__[:__PORT__]:: Bind the directory service to this address. If you specify a port, bind to this port rather than the one specified in DirPort. (Default: 0.0.0.0) This directive can be specified multiple times to bind to multiple - addresses/ports. -+ + addresses/ports. + + + This option is deprecated; you can get the same behavior with DirPort now that it supports NoAdvertise and explicit addresses. @@ -2199,7 +2224,7 @@ on the public Tor network. [[AuthDirBadExit]] **AuthDirBadExit** __AddressPattern...__:: Authoritative directories only. A set of address patterns for servers that will be listed as bad exits in any network status document this authority - publishes, if **AuthDirListBadExits** is set. + publishes, if **AuthDirListBadExits** is set. + + (The address pattern syntax here and in the options below is the same as for exit policies, except that you don't need to say @@ -2420,20 +2445,20 @@ The following options are used to configure a hidden service. Single Onion Service. One-hop circuits make Single Onion servers easily locatable, but clients remain location-anonymous. However, the fact that a client is accessing a Single Onion rather than a Hidden Service may be - statistically distinguishable. - + statistically distinguishable. + + + **WARNING:** Once a hidden service directory has been used by a tor instance in HiddenServiceSingleHopMode, it can **NEVER** be used again for a hidden service. It is best practice to create a new hidden service directory, key, and address for each new Single Onion Service and Hidden Service. It is not possible to run Single Onion Services and Hidden Services from the same tor instance: they should be run on different - servers with different IP addresses. - + servers with different IP addresses. + + + HiddenServiceSingleHopMode requires HiddenServiceNonAnonymousMode to be set to 1. Since a Single Onion service is non-anonymous, you can not configure a SOCKSPort on a tor instance that is running in - **HiddenServiceSingleHopMode**. + **HiddenServiceSingleHopMode**. Can not be changed while tor is running. (Default: 0) [[HiddenServiceNonAnonymousMode]] **HiddenServiceNonAnonymousMode** **0**|**1**:: @@ -2441,8 +2466,8 @@ The following options are used to configure a hidden service. non-anonymous HiddenServiceSingleHopMode. Enables direct connections in the server-side hidden service protocol. If you are using this option, you need to disable all client-side services on your Tor instance, - including setting SOCKSPort to "0". - (Default: 0) + including setting SOCKSPort to "0". Can not be changed while tor is + running. (Default: 0) TESTING NETWORK OPTIONS ----------------------- @@ -2587,7 +2612,7 @@ The following options are used for running a testing Tor network. A list of identity fingerprints, country codes, and address patterns of nodes to vote Exit for regardless of their uptime, bandwidth, or exit policy. See the **ExcludeNodes** - option for more information on how to specify nodes. + option for more information on how to specify nodes. + + In order for this option to have any effect, **TestingTorNetwork** has to be set. See the **ExcludeNodes** option for more @@ -2596,7 +2621,7 @@ The following options are used for running a testing Tor network. [[TestingDirAuthVoteExitIsStrict]] **TestingDirAuthVoteExitIsStrict** **0**|**1** :: If True (1), a node will never receive the Exit flag unless it is specified in the **TestingDirAuthVoteExit** list, regardless of its uptime, bandwidth, - or exit policy. + or exit policy. + + In order for this option to have any effect, **TestingTorNetwork** has to be set. @@ -2605,14 +2630,14 @@ The following options are used for running a testing Tor network. A list of identity fingerprints and country codes and address patterns of nodes to vote Guard for regardless of their uptime and bandwidth. See the **ExcludeNodes** option for more - information on how to specify nodes. + information on how to specify nodes. + + In order for this option to have any effect, **TestingTorNetwork** has to be set. [[TestingDirAuthVoteGuardIsStrict]] **TestingDirAuthVoteGuardIsStrict** **0**|**1** :: If True (1), a node will never receive the Guard flag unless it is specified - in the **TestingDirAuthVoteGuard** list, regardless of its uptime and bandwidth. + in the **TestingDirAuthVoteGuard** list, regardless of its uptime and bandwidth. + + In order for this option to have any effect, **TestingTorNetwork** has to be set. @@ -2621,14 +2646,14 @@ The following options are used for running a testing Tor network. A list of identity fingerprints and country codes and address patterns of nodes to vote HSDir for regardless of their uptime and DirPort. See the **ExcludeNodes** option for more - information on how to specify nodes. + information on how to specify nodes. + + In order for this option to have any effect, **TestingTorNetwork** must be set. [[TestingDirAuthVoteHSDirIsStrict]] **TestingDirAuthVoteHSDirIsStrict** **0**|**1** :: If True (1), a node will never receive the HSDir flag unless it is specified - in the **TestingDirAuthVoteHSDir** list, regardless of its uptime and DirPort. + in the **TestingDirAuthVoteHSDir** list, regardless of its uptime and DirPort. + + In order for this option to have any effect, **TestingTorNetwork** has to be set. diff --git a/m4/ax_check_sign.m4 b/m4/ax_check_sign.m4 index 104b17014c..d67e114dba 100644 --- a/m4/ax_check_sign.m4 +++ b/m4/ax_check_sign.m4 @@ -41,8 +41,8 @@ AU_ALIAS([VL_CHECK_SIGN], [AX_CHECK_SIGN]) AC_DEFUN([AX_CHECK_SIGN], [ typename=`echo $1 | sed "s/@<:@^a-zA-Z0-9_@:>@/_/g"` AC_CACHE_CHECK([whether $1 is signed], ax_cv_decl_${typename}_signed, [ - AC_TRY_COMPILE([$4], - [ int foo @<:@ 1 - 2 * !((($1) -1) < 0) @:>@ ], + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$4]], + [[ int foo @<:@ 1 - 2 * !((($1) -1) < 0) @:>@ ]])], [ eval "ax_cv_decl_${typename}_signed=\"yes\"" ], [ eval "ax_cv_decl_${typename}_signed=\"no\"" ])]) symbolname=`echo $1 | sed "s/@<:@^a-zA-Z0-9_@:>@/_/g" | tr "a-z" "A-Z"` diff --git a/m4/pc_from_ucontext.m4 b/m4/pc_from_ucontext.m4 index 8a9dc459e6..9b66bf752c 100644 --- a/m4/pc_from_ucontext.m4 +++ b/m4/pc_from_ucontext.m4 @@ -79,29 +79,29 @@ AC_DEFUN([AC_PC_FROM_UCONTEXT], if ! $pc_field_found; then # Prefer sys/ucontext.h to ucontext.h, for OS X's sake. if test "x$ac_cv_header_cygwin_signal_h" = xyes; then - AC_TRY_COMPILE([#include <cygwin/signal.h>], - [ucontext_t u; return u.$pc_field == 0;], + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <cygwin/signal.h>]], + [[ucontext_t u; return u.$pc_field == 0;]])], AC_DEFINE_UNQUOTED(PC_FROM_UCONTEXT, $pc_field, How to access the PC from a struct ucontext) AC_MSG_RESULT([$pc_field]) pc_field_found=true) elif test "x$ac_cv_header_sys_ucontext_h" = xyes; then - AC_TRY_COMPILE([#include <sys/ucontext.h>], - [ucontext_t u; return u.$pc_field == 0;], + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/ucontext.h>]], + [[ucontext_t u; return u.$pc_field == 0;]])], AC_DEFINE_UNQUOTED(PC_FROM_UCONTEXT, $pc_field, How to access the PC from a struct ucontext) AC_MSG_RESULT([$pc_field]) pc_field_found=true) elif test "x$ac_cv_header_ucontext_h" = xyes; then - AC_TRY_COMPILE([#include <ucontext.h>], - [ucontext_t u; return u.$pc_field == 0;], + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <ucontext.h>]], + [[ucontext_t u; return u.$pc_field == 0;]])], AC_DEFINE_UNQUOTED(PC_FROM_UCONTEXT, $pc_field, How to access the PC from a struct ucontext) AC_MSG_RESULT([$pc_field]) pc_field_found=true) else # hope some standard header gives it to us - AC_TRY_COMPILE([], - [ucontext_t u; return u.$pc_field == 0;], + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], + [[ucontext_t u; return u.$pc_field == 0;]])], AC_DEFINE_UNQUOTED(PC_FROM_UCONTEXT, $pc_field, How to access the PC from a struct ucontext) AC_MSG_RESULT([$pc_field]) @@ -114,8 +114,8 @@ AC_DEFUN([AC_PC_FROM_UCONTEXT], pc_fields="$pc_fields sc_rip" # OpenBSD (x86_64) for pc_field in $pc_fields; do if ! $pc_field_found; then - AC_TRY_COMPILE([#include <signal.h>], - [ucontext_t u; return u.$pc_field == 0;], + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <signal.h>]], + [[ucontext_t u; return u.$pc_field == 0;]])], AC_DEFINE_UNQUOTED(PC_FROM_UCONTEXT, $pc_field, How to access the PC from a struct ucontext) AC_MSG_RESULT([$pc_field]) diff --git a/scripts/maint/lintChanges.py b/scripts/maint/lintChanges.py index b63a4eb3a1..bf06064fa8 100755 --- a/scripts/maint/lintChanges.py +++ b/scripts/maint/lintChanges.py @@ -7,7 +7,7 @@ import re import os -KNOWN_GROUPS=set([ +KNOWN_GROUPS = set([ "Minor bugfix", "Minor bugfixes", "Major bugfix", @@ -22,6 +22,7 @@ KNOWN_GROUPS=set([ "Code simplification and refactoring", "Removed features"]) + def lintfile(fname): have_warned = [] @@ -43,17 +44,15 @@ def lintfile(fname): if bugnum and bugnum not in contents: warn("bug number {} does not appear".format(bugnum)) - lines = contents.split("\n") - m = re.match(r'^[ ]{2}o ([^\(:]*)([^:]*):', contents) if not m: warn("header not in format expected") elif m.group(1).strip() not in KNOWN_GROUPS: - warn("Weird header: %r"%m.group(1)) - elif ( ("bugfix" in m.group(1) or "feature" in m.group(1)) and - ("Removed" not in m.group(1)) and - '(' not in m.group(2)): - warn("Missing subcategory on %s"%m.group(1)) + warn("Weird header: %r" % m.group(1)) + elif (("bugfix" in m.group(1) or "feature" in m.group(1)) and + ("Removed" not in m.group(1)) and + '(' not in m.group(2)): + warn("Missing subcategory on %s" % m.group(1)) if m: isBug = ("bug" in m.group(1).lower() or "fix" in m.group(1).lower()) @@ -76,6 +75,8 @@ def lintfile(fname): elif not re.search('[fF]ixes ([a-z ]*)bug (\d+); bugfix on ', contents): warn("bugfix incant is not semicoloned") + elif re.search('tor-([0-9]+)', contents): + warn("do not prefix versions with 'tor-'") if __name__ == '__main__': diff --git a/src/common/address.c b/src/common/address.c index c89e8797c6..2693239146 100644 --- a/src/common/address.c +++ b/src/common/address.c @@ -159,6 +159,8 @@ tor_addr_from_sockaddr(tor_addr_t *a, const struct sockaddr *sa, tor_assert(a); tor_assert(sa); + /* This memset is redundant; leaving it in to avoid any future accidents, + however. */ memset(a, 0, sizeof(*a)); if (sa->sa_family == AF_INET) { @@ -235,8 +237,8 @@ tor_addr_make_null(tor_addr_t *a, sa_family_t family) * * Return 0 on success, -1 on failure; 1 on transient failure. */ -int -tor_addr_lookup(const char *name, uint16_t family, tor_addr_t *addr) +MOCK_IMPL(int, +tor_addr_lookup,(const char *name, uint16_t family, tor_addr_t *addr)) { /* Perhaps eventually this should be replaced by a tor_getaddrinfo or * something. diff --git a/src/common/address.h b/src/common/address.h index 41daf012e6..0dc6edae37 100644 --- a/src/common/address.h +++ b/src/common/address.h @@ -190,7 +190,8 @@ tor_addr_eq_ipv4h(const tor_addr_t *a, uint32_t u) */ #define TOR_ADDR_BUF_LEN 48 -int tor_addr_lookup(const char *name, uint16_t family, tor_addr_t *addr_out); +MOCK_DECL(int, tor_addr_lookup,(const char *name, uint16_t family, + tor_addr_t *addr_out)); char *tor_addr_to_str_dup(const tor_addr_t *addr) ATTR_MALLOC; /** Wrapper function of fmt_addr_impl(). It does not decorate IPv6 diff --git a/src/common/compat_time.c b/src/common/compat_time.c index 3493ea0c22..d044bbe1d7 100644 --- a/src/common/compat_time.c +++ b/src/common/compat_time.c @@ -324,10 +324,27 @@ monotime_diff_nsec(const monotime_t *start, /* end of "__APPLE__" */ #elif defined(HAVE_CLOCK_GETTIME) +#ifdef CLOCK_MONOTONIC_COARSE +/** + * Which clock should we use for coarse-grained monotonic time? By default + * this is CLOCK_MONOTONIC_COARSE, but it might not work -- for example, + * if we're compiled with newer Linux headers and then we try to run on + * an old Linux kernel. In that case, we will fall back to CLOCK_MONOTONIC. + */ +static int clock_monotonic_coarse = CLOCK_MONOTONIC_COARSE; +#endif + static void monotime_init_internal(void) { - /* no action needed. */ +#ifdef CLOCK_MONOTONIC_COARSE + struct timespec ts; + if (clock_gettime(CLOCK_MONOTONIC_COARSE, &ts) < 0) { + log_info(LD_GENERAL, "CLOCK_MONOTONIC_COARSE isn't working (%s); " + "falling back to CLOCK_MONOTONIC.", strerror(errno)); + clock_monotonic_coarse = CLOCK_MONOTONIC; + } +#endif } void @@ -355,7 +372,18 @@ monotime_coarse_get(monotime_coarse_t *out) return; } #endif - int r = clock_gettime(CLOCK_MONOTONIC_COARSE, &out->ts_); + int r = clock_gettime(clock_monotonic_coarse, &out->ts_); + if (PREDICT_UNLIKELY(r < 0) && + errno == EINVAL && + clock_monotonic_coarse == CLOCK_MONOTONIC_COARSE) { + /* We should have caught this at startup in monotime_init_internal! + */ + log_warn(LD_BUG, "Falling back to non-coarse monotonic time %s initial " + "system start?", monotime_initialized?"after":"without"); + clock_monotonic_coarse = CLOCK_MONOTONIC; + r = clock_gettime(clock_monotonic_coarse, &out->ts_); + } + tor_assert(r == 0); } #endif diff --git a/src/common/crypto.h b/src/common/crypto.h index bf2fa06aaa..64df52cb58 100644 --- a/src/common/crypto.h +++ b/src/common/crypto.h @@ -59,10 +59,12 @@ #define DIGEST256_LEN 32 /** Length of the output of our 64-bit optimized message digests (SHA512). */ #define DIGEST512_LEN 64 -/** Length of our symmetric cipher's keys. */ +/** Length of our symmetric cipher's keys of 128-bit. */ #define CIPHER_KEY_LEN 16 -/** Length of our symmetric cipher's IV. */ +/** Length of our symmetric cipher's IV of 128-bit. */ #define CIPHER_IV_LEN 16 +/** Length of our symmetric cipher's keys of 256-bit. */ +#define CIPHER256_KEY_LEN 32 /** Length of our public keys. */ #define PK_BYTES (1024/8) /** Length of our DH keys. */ diff --git a/src/common/crypto_curve25519.c b/src/common/crypto_curve25519.c index fcbee3aba2..5f328e124c 100644 --- a/src/common/crypto_curve25519.c +++ b/src/common/crypto_curve25519.c @@ -80,7 +80,7 @@ curve25519_impl(uint8_t *output, const uint8_t *secret, /** * Helper function: Multiply the scalar "secret" by the Curve25519 * basepoint (X=9), and store the result in "output". Return 0 on - * success, -1 on false. + * success, -1 on failure. */ STATIC int curve25519_basepoint_impl(uint8_t *output, const uint8_t *secret) diff --git a/src/common/crypto_format.c b/src/common/crypto_format.c index 483013ee68..aa2a9d1fb0 100644 --- a/src/common/crypto_format.c +++ b/src/common/crypto_format.c @@ -161,16 +161,21 @@ curve25519_public_from_base64(curve25519_public_key_t *pkey, } } -/** For convenience: Convert <b>pkey</b> to a statically allocated base64 - * string and return it. Not threadsafe. Subsequent calls invalidate +/** For logging convenience: Convert <b>pkey</b> to a statically allocated + * base64 string and return it. Not threadsafe. Format not meant to be + * computer-readable; it may change in the future. Subsequent calls invalidate * previous returns. */ const char * ed25519_fmt(const ed25519_public_key_t *pkey) { static char formatted[ED25519_BASE64_LEN+1]; if (pkey) { - int r = ed25519_public_to_base64(formatted, pkey); - tor_assert(!r); + if (ed25519_public_key_is_zero(pkey)) { + strlcpy(formatted, "<unset>", sizeof(formatted)); + } else { + int r = ed25519_public_to_base64(formatted, pkey); + tor_assert(!r); + } } else { strlcpy(formatted, "<null>", sizeof(formatted)); } diff --git a/src/common/util.c b/src/common/util.c index 9d134c1bb2..824b4fbc67 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -187,8 +187,9 @@ tor_malloc_zero_(size_t size DMALLOC_PARAMS) * 0xfffe0001. */ #define SQRT_SIZE_MAX_P1 (((size_t)1) << (sizeof(size_t)*4)) -/** Return non-zero if and only if the product of the arguments is exact. */ -static inline int +/** Return non-zero if and only if the product of the arguments is exact, + * and cannot overflow. */ +int size_mul_check(const size_t x, const size_t y) { /* This first check is equivalent to @@ -202,15 +203,6 @@ size_mul_check(const size_t x, const size_t y) x <= SIZE_MAX / y); } -#ifdef TOR_UNIT_TESTS -/** Exposed for unit tests only */ -int -size_mul_check__(const size_t x, const size_t y) -{ - return size_mul_check(x,y); -} -#endif - /** Allocate a chunk of <b>nmemb</b>*<b>size</b> bytes of memory, fill * the memory with zero bytes, and return a pointer to the result. * Log and terminate the process on error. (Same as diff --git a/src/common/util.h b/src/common/util.h index 2b3e48ea8e..ff566151cb 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -553,9 +553,7 @@ STATIC int format_helper_exit_status(unsigned char child_state, #endif -#ifdef TOR_UNIT_TESTS -int size_mul_check__(const size_t x, const size_t y); -#endif +int size_mul_check(const size_t x, const size_t y); #define ARRAY_LENGTH(x) ((sizeof(x)) / sizeof(x[0])) diff --git a/src/common/util_format.c b/src/common/util_format.c index aef9db85c8..6e0a04586a 100644 --- a/src/common/util_format.c +++ b/src/common/util_format.c @@ -398,7 +398,7 @@ base64_decode(char *dest, size_t destlen, const char *src, size_t srclen) * Number of bytes required to hold all bits == (srclen*6)/8. * Yes, we want to round down: anything that hangs over the end of a * byte is padding. */ - if (destlen < (srclen*3)/4) + if (!size_mul_check(srclen, 3) || destlen < (srclen*3)/4) return -1; if (destlen > SIZE_T_CEILING) return -1; diff --git a/src/config/geoip b/src/config/geoip index 406fff09e7..68ae3759c1 100644 --- a/src/config/geoip +++ b/src/config/geoip @@ -1,4 +1,4 @@ -# Last updated based on December 7 2016 Maxmind GeoLite2 Country +# Last updated based on January 4 2017 Maxmind GeoLite2 Country # wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz # gunzip GeoLite2-Country.mmdb.gz # python mmdb-convert.py GeoLite2-Country.mmdb @@ -361,7 +361,7 @@ 86222616,86222847,JE 86222848,86226943,NL 86226944,86228991,SE -86228992,86231039,BE +86228992,86231039,GB 86231040,86233087,ES 86233088,86235135,RO 86235136,86237183,ES @@ -454,7 +454,9 @@ 86446680,86446683,ES 86446684,86446727,FR 86446728,86446731,DE -86446732,86446931,FR +86446732,86446767,FR +86446768,86446771,GB +86446772,86446931,FR 86446932,86446935,CZ 86446936,86447091,FR 86447092,86447103,ES @@ -464,7 +466,9 @@ 86447288,86447288,DE 86447289,86447335,FR 86447336,86447339,ES -86447340,86448559,FR +86447340,86447351,FR +86447352,86447355,GB +86447356,86448559,FR 86448560,86448575,GB 86448576,86448803,FR 86448804,86448807,FI @@ -499,7 +503,10 @@ 86450336,86450339,GB 86450340,86450775,FR 86450776,86450779,PL -86450780,86450863,FR +86450780,86450783,FR +86450784,86450815,DE +86450816,86450847,FR +86450848,86450863,ES 86450864,86450867,PT 86450868,86450875,FR 86450876,86450879,GB @@ -591,7 +598,9 @@ 86457456,86457456,DE 86457457,86457471,FR 86457472,86457519,ES -86457520,86457799,FR +86457520,86457703,FR +86457704,86457707,ES +86457708,86457799,FR 86457800,86457803,ES 86457804,86467207,FR 86467208,86467211,IE @@ -821,17 +830,17 @@ 87761408,87761663,CZ 87761664,87761919,RU 87761920,87762431,FR -87762432,87762943,CZ +87762432,87762943,UA 87762944,87763967,KZ -87763968,87766015,RU -87766016,87818239,CZ +87763968,87766527,RU +87766528,87818239,CZ 87818240,87883775,PL 87883776,87885823,IT 87885824,87889919,RU -87889920,87890431,IR -87890432,87890943,US +87889920,87890687,IR +87890688,87890943,US 87890944,87891199,NL -87891200,87891967,US +87891200,87891967,IR 87891968,87902207,DE 87902208,87904255,IR 87904256,87906303,DE @@ -934,9 +943,7 @@ 90516480,90516735,DE 90516736,90516991,RO 90516992,90517503,NL -90517504,90518527,RU -90518528,90519551,NL -90519552,90529791,RU +90517504,90529791,RU 90529792,90533119,NL 90533120,90533375,DE 90533376,90533631,NL @@ -1165,7 +1172,9 @@ 92734832,92734847,ES 92734848,92735103,FR 92735104,92735119,GB -92735120,92735615,FR +92735120,92735347,FR +92735348,92735351,GB +92735352,92735615,FR 92735616,92735616,DE 92735617,92735619,FR 92735620,92735623,ES @@ -1243,7 +1252,11 @@ 92748517,92748517,BE 92748518,92748543,FR 92748544,92748799,PT -92748800,92748983,FR +92748800,92748843,FR +92748844,92748847,GB +92748848,92748863,FR +92748864,92748879,ES +92748880,92748983,FR 92748984,92748991,GB 92748992,92748999,ES 92749000,92749007,PT @@ -1360,11 +1373,14 @@ 92784668,92784671,IE 92784672,92784895,FR 92784896,92784959,ES -92784960,92785363,FR +92784960,92785183,FR +92785184,92785199,ES +92785200,92785363,FR 92785364,92785367,PT 92785368,92785407,FR 92785408,92785439,ES -92785440,92785611,FR +92785440,92785455,DE +92785456,92785611,FR 92785612,92785615,ES 92785616,92785735,FR 92785736,92785739,DE @@ -1416,9 +1432,7 @@ 92794692,92794695,ES 92794696,92795631,FR 92795632,92795639,CZ -92795640,92796575,FR -92796576,92796579,GB -92796580,92796687,FR +92795640,92796687,FR 92796688,92796691,DE 92796692,92796879,FR 92796880,92796895,FI @@ -1432,7 +1446,9 @@ 93323264,93335551,CH 93335552,93339647,IL 93339648,93343743,RU -93343744,93347839,GB +93343744,93345791,GB +93345792,93346303,NL +93346304,93347839,GB 93347840,93356031,RU 93356032,93358079,IR 93358080,93360127,FR @@ -1762,7 +1778,11 @@ 96172800,96173055,GP 96173056,96174079,MF 96174080,96206847,HU -96206848,96305151,RU +96206848,96262143,RU +96262144,96262399,NL +96262400,96266239,RU +96266240,96266495,NL +96266496,96305151,RU 96305152,96321535,DE 96321536,96323583,RU 96323584,96323711,ZA @@ -1852,7 +1872,9 @@ 96763456,96763471,ES 96763472,96763551,FR 96763552,96763555,GB -96763556,96764239,FR +96763556,96763575,FR +96763576,96763579,ES +96763580,96764239,FR 96764240,96764255,DE 96764256,96764383,FR 96764384,96764399,FI @@ -1923,7 +1945,9 @@ 96778868,96778871,BE 96778872,96779007,FR 96779008,96779011,PT -96779012,96779167,FR +96779012,96779015,FR +96779016,96779023,ES +96779024,96779167,FR 96779168,96779199,PT 96779200,96779247,FR 96779248,96779255,CZ @@ -2414,7 +2438,9 @@ 225079808,225080319,PR 225080320,225443839,US 225443840,225705983,JP -225705984,234881023,US +225705984,226230271,US +226230272,226295807,KR +226295808,234881023,US 234881024,234883071,CN 234883072,234884095,JP 234884096,234885119,CN @@ -2464,7 +2490,7 @@ 241606656,241607679,IN 241607680,241608703,JP 241608704,241609727,PH -241609728,241610751,PK +241609728,241610751,US 241610752,241611775,JP 241611776,241612799,CN 241612800,241613823,HK @@ -3179,7 +3205,9 @@ 391872512,391888895,CA 391888896,391897087,US 391897088,391905279,CA -391905280,391938047,US +391905280,391937535,US +391937536,391937791,CA +391937792,391938047,IE 391938048,391946239,CA 391946240,391960639,US 391960640,391960647,RO @@ -3428,8 +3456,8 @@ 394264576,394264831,CA 394270720,394271231,NL 394296320,394296831,NL -394330112,394330367,US -394395648,394789119,US +394297344,394297599,US +394330112,394789119,US 394854400,394854655,CA 394919936,395051007,US 395051008,395051263,CA @@ -3625,9 +3653,7 @@ 400888576,400888831,GB 400888832,400895551,US 400895552,400895615,GB -400895616,400897535,US -400897536,400897791,GB -400897792,400911103,US +400895616,400911103,US 400911104,400911359,PA 400911360,400911583,AU 400911584,400911615,US @@ -3771,7 +3797,9 @@ 402260272,402260279,GB 402260280,402262455,US 402262456,402262463,FI -402262464,402266727,US +402262464,402265690,US +402265691,402265691,BD +402265692,402266727,US 402266728,402266735,NO 402266736,402279935,US 402279936,402280063,CA @@ -3791,7 +3819,8 @@ 402524264,402524271,FI 402524272,402550015,US 402550016,402550271,CA -402550272,402550783,GB +402550272,402550527,US +402550528,402550783,GB 402550784,402591663,US 402591664,402591671,AU 402591672,402593535,US @@ -4229,7 +4258,8 @@ 461101056,461102079,IN 461102080,461103103,ID 461103104,461104127,AU -461104128,461105151,HK +461104128,461104383,CN +461104384,461105151,HK 461105152,461106175,CN 461106176,461107199,JP 461107200,461108223,IN @@ -4463,7 +4493,8 @@ 521023488,521023743,NL 521023744,521023999,RO 521024000,521024511,BE -521024512,521026559,RO +521024512,521024767,TR +521024768,521026559,RO 521026560,521027583,ES 521027584,521027839,RO 521027840,521028607,GB @@ -4708,10 +4739,8 @@ 523182080,523190271,IR 523190272,523192319,FI 523192320,523194367,ES -523194368,523197183,DE -523197184,523197951,AE -523197952,523198207,DE -523198208,523198463,AE +523194368,523196415,DE +523196416,523198463,AE 523198464,523202559,CZ 523202560,523223039,RU 523223040,523225087,AM @@ -4840,9 +4869,8 @@ 529838080,529842175,UA 529842176,529843199,ES 529843200,529843711,RU -529843712,529845247,CZ -529845248,529846271,UZ -529846272,529847295,CZ +529843712,529846271,CZ +529846272,529847295,UZ 529847296,529848319,GB 529848320,529848575,NL 529848576,529848831,CZ @@ -4963,7 +4991,9 @@ 531430824,531430831,IT 531430832,531430847,GB 531430848,531430855,IT -531430856,531431423,GB +531430856,531430911,GB +531430912,531430919,IT +531430920,531431423,GB 531431424,531496959,RU 531496960,531628031,PL 531628032,531660799,TR @@ -5442,7 +5472,7 @@ 620703744,620704767,NZ 620704768,620705791,BD 620705792,620706815,HK -620706816,620707839,AU +620706816,620707839,US 620707840,620708863,IN 620708864,620709887,HK 620709888,620711935,AU @@ -5474,7 +5504,7 @@ 620743936,620744191,AU 620744192,620744703,HK 620744704,620745727,IN -620745728,620746751,AU +620745728,620746751,US 620746752,620747775,JP 620747776,620748799,PH 620748800,620751871,IN @@ -5734,7 +5764,9 @@ 623077858,623077861,NZ 623077862,623083519,CH 623083520,623116287,ES -623116288,623378431,KW +623116288,623191332,KW +623191333,623191333,SA +623191334,623378431,KW 623378432,623509503,OM 623509504,623575807,SA 623575808,623576063,RO @@ -5774,7 +5806,8 @@ 623812608,623820799,SE 623820800,623821823,NL 623821824,623822335,US -623822336,623822847,NL +623822336,623822591,NL +623822592,623822847,DE 623822848,623824895,GB 623824896,623826943,CZ 623826944,623837183,UA @@ -5853,9 +5886,7 @@ 624643232,624643235,DE 624643236,624643243,FR 624643244,624643247,ES -624643248,624643315,FR -624643316,624643319,IE -624643320,624643423,FR +624643248,624643423,FR 624643424,624643459,ES 624643460,624643999,FR 624644000,624644015,GB @@ -5921,8 +5952,7 @@ 624657616,624657631,GB 624657632,624657711,FR 624657712,624657715,ES -624657716,624657719,PT -624657720,624657831,FR +624657716,624657831,FR 624657832,624657839,ES 624657840,624657883,FR 624657884,624657887,ES @@ -5945,7 +5975,9 @@ 624659072,624659135,ES 624659136,624660103,FR 624660104,624660107,PT -624660108,624660607,FR +624660108,624660127,FR +624660128,624660131,IE +624660132,624660607,FR 624660608,624660639,IE 624660640,624660827,FR 624660828,624660839,ES @@ -6061,7 +6093,9 @@ 624670660,624670663,IE 624670664,624670915,FR 624670916,624670919,ES -624670920,624671287,FR +624670920,624670935,FR +624670936,624670939,GB +624670940,624671287,FR 624671288,624671291,ES 624671292,624671455,FR 624671456,624671471,ES @@ -6081,7 +6115,9 @@ 624673804,624673807,NL 624673808,624673903,FR 624673904,624673919,ES -624673920,624674411,FR +624673920,624673931,FR +624673932,624673935,GB +624673936,624674411,FR 624674412,624674415,ES 624674416,624674447,FR 624674448,624674451,GB @@ -6100,7 +6136,9 @@ 624675776,624675779,ES 624675780,624676003,FR 624676004,624676007,DE -624676008,624676071,FR +624676008,624676015,FR +624676016,624676019,GB +624676020,624676071,FR 624676072,624676075,ES 624676076,624676087,FR 624676088,624676091,DE @@ -6108,9 +6146,7 @@ 624676628,624676631,GB 624676632,624676715,FR 624676716,624676719,ES -624676720,624676923,FR -624676924,624676927,ES -624676928,624677463,FR +624676720,624677463,FR 624677464,624677467,ES 624677468,624677471,GB 624677472,624677583,FR @@ -6151,9 +6187,7 @@ 624681536,624681599,ES 624681600,624681807,FR 624681808,624681823,BE -624681824,624682059,FR -624682060,624682063,IE -624682064,624682263,FR +624681824,624682263,FR 624682264,624682267,ES 624682268,624682319,FR 624682320,624682323,ES @@ -6161,7 +6195,9 @@ 624682496,624682527,ES 624682528,624682623,FR 624682624,624682639,ES -624682640,624683015,FR +624682640,624683007,FR +624683008,624683011,GB +624683012,624683015,FR 624683016,624683023,ES 624683024,624683031,FR 624683032,624683039,GB @@ -6217,7 +6253,9 @@ 624686712,624686719,ES 624686720,624686783,FR 624686784,624686815,ES -624686816,624687343,FR +624686816,624686895,FR +624686896,624686911,IE +624686912,624687343,FR 624687344,624687346,CZ 624687347,624687347,ES 624687348,624687783,FR @@ -6408,7 +6446,8 @@ 628023296,628029439,RU 628029440,628031487,GB 628031488,628064255,MM -628064256,628097023,HU +628064256,628080639,PK +628080640,628097023,HU 628097024,628230143,RU 628230144,628232191,IT 628232192,628236287,RU @@ -6667,7 +6706,8 @@ 631037952,631038207,BG 631038208,631039999,RO 631040000,631043071,IR -631043072,631043839,RO +631043072,631043583,RO +631043584,631043839,TR 631043840,631044095,MD 631044096,631045119,IR 631045120,631046143,RO @@ -6840,7 +6880,9 @@ 635200168,635200175,IT 635200176,635200263,GB 635200264,635200271,IT -635200272,635200335,GB +635200272,635200319,GB +635200320,635200327,IT +635200328,635200335,GB 635200336,635200343,IT 635200344,635200431,GB 635200432,635200439,IT @@ -6929,7 +6971,9 @@ 635864832,635865087,ES 635865088,635865855,RU 635865856,635866111,US -635866112,635882495,RU +635866112,635871487,RU +635871488,635871743,UA +635871744,635882495,RU 635882496,635882751,GE 635882752,635893503,RU 635893504,635893759,AZ @@ -7207,9 +7251,9 @@ 644835072,644835327,CA 644835328,644836351,US 644836352,644837375,CA -644837376,644838336,US -644838337,644838337,CA -644838338,644838911,US +644837376,644838143,US +644838144,644838399,CA +644838400,644838911,US 644838912,644839679,CA 644839680,644840447,US 644840448,644841471,CA @@ -7267,7 +7311,9 @@ 645576999,645577215,CA 645577216,645612543,US 645612544,645613567,MX -645613568,645644351,US +645613568,645614591,US +645614592,645614847,MX +645614848,645644351,US 645644352,645644415,MX 645644416,645644927,US 645644928,645645055,MX @@ -7297,7 +7343,9 @@ 646194176,646194943,CA 646194944,646195199,US 646195200,646198783,CA -646198784,646254591,US +646198784,646199384,US +646199385,646199385,CA +646199386,646254591,US 646254592,646256639,CA 646256640,646262783,US 646262784,646264831,CA @@ -8951,7 +8999,8 @@ 736380928,736381951,IN 736381952,736382975,CN 736382976,736383999,TH -736384000,736385023,LA +736384000,736384767,LA +736384768,736385023,TH 736385024,736386047,HK 736386048,736388095,IN 736388096,736389119,CN @@ -9819,8 +9868,8 @@ 757125120,757125151,NL 757125152,757125215,US 757125216,757125247,NL -757125248,757125279,US -757125280,757125631,NL +757125248,757125407,US +757125408,757125631,NL 757125632,757131263,US 757131264,757133311,NL 757133312,757135359,AU @@ -10092,7 +10141,7 @@ 758982016,758982143,TV 758982144,758982271,US 758982272,758982399,KM -758982400,758982527,US +758982400,758982527,CD 758982528,758982655,ST 758982656,758982783,MV 758982784,758982911,AR @@ -10101,7 +10150,8 @@ 758983680,758983807,US 758983808,758983935,VA 758983936,758984063,ZW -758984064,758984703,US +758984064,758984191,SO +758984192,758984703,US 758984704,758988799,CA 758988800,758994943,US 758994944,758996991,IN @@ -10208,8 +10258,8 @@ 759791616,759824639,US 759824640,759824895,SA 759824896,759825151,CR -759825152,759825407,NO -759825408,759825663,BE +759825152,759825407,US +759825408,759825663,DE 759825664,759828735,US 759828736,759828863,GT 759828864,759828991,SV @@ -10254,10 +10304,12 @@ 759860736,759860991,US 759860992,759955455,CA 759955456,759963647,US -759963648,759965695,NL -759965696,759975935,US +759963648,759965759,NL +759965760,759975935,US 759975936,759977471,DE -759977472,759980031,US +759977472,759977983,US +759977984,759979007,DE +759979008,759980031,US 759980032,759984127,JP 759984128,759985151,AU 759985152,759988223,US @@ -10267,10 +10319,8 @@ 759996416,760004607,US 760004608,760006967,JP 760006968,760007039,US -760007040,760007103,JP -760007104,760007167,US -760007168,760011263,JP -760011264,760111103,US +760007040,760012799,JP +760012800,760111103,US 760111104,760119295,CA 760119296,760127487,US 760127488,760152063,CA @@ -10595,6 +10645,7 @@ 762816512,762824703,IN 762824704,762825727,SG 762825728,762826751,JP +762826752,762827775,US 762827776,762829823,VN 762829824,762830847,AU 762830848,762832895,IN @@ -10798,6 +10849,7 @@ 763194368,763196415,HK 763196416,763197439,IN 763197440,763199487,AU +763199488,763199743,DE 763200512,763201535,IN 763201536,763202559,CN 763202560,763207679,IN @@ -10925,14 +10977,26 @@ 768606208,768868351,GH 768868352,769130495,ZM 769130496,769392639,MA +769400832,769404927,ZA +769405440,769405951,CI +769405952,769406975,GN +769406976,769409023,ZA +769409024,769425407,SC 769425408,769458175,ZA 769458176,769459199,MU +769459200,769460223,CD +769460224,769461247,UG +769461248,769462271,ZA 769462272,769463295,MU 769463296,769464319,AO +769464320,769464575,GH +769464576,769464831,MW +769464832,769465087,ZA 769465088,769465343,EG 769465344,769466367,CI -769466368,769474559,ZA -769474560,769476607,SC +769466368,769474815,ZA +769474816,769475583,NG +769475584,769476607,ZA 769476608,769478655,UG 769478656,769507327,ZA 769507328,769509375,TZ @@ -10980,7 +11044,9 @@ 771316480,771316735,HK 771316736,771317759,CN 771317760,771318783,HK -771318784,771320063,SG +771318784,771319295,SG +771319296,771319551,BD +771319552,771320063,SG 771320064,771320319,TW 771320320,771320831,AU 771320832,771321855,IN @@ -11865,7 +11931,9 @@ 778667348,778667351,GB 778667352,778667499,FR 778667500,778667503,GB -778667504,778668391,FR +778667504,778667999,FR +778668000,778668003,GB +778668004,778668391,FR 778668392,778668395,FI 778668396,778668399,ES 778668400,778668479,FR @@ -11876,7 +11944,9 @@ 778668628,778668631,ES 778668632,778668719,FR 778668720,778668723,PT -778668724,778668863,FR +778668724,778668731,FR +778668732,778668735,GB +778668736,778668863,FR 778668864,778668895,DE 778668896,778669055,FR 778669056,778669087,ES @@ -12091,7 +12161,9 @@ 778696220,778696223,GB 778696224,778696271,FR 778696272,778696287,ES -778696288,778696495,FR +778696288,778696435,FR +778696436,778696439,GB +778696440,778696495,FR 778696496,778696499,ES 778696500,778696811,FR 778696812,778696815,DE @@ -12109,9 +12181,7 @@ 778697176,778697179,ES 778697180,778697279,FR 778697280,778697287,IE -778697288,778697343,FR -778697344,778697347,IE -778697348,778697435,FR +778697288,778697435,FR 778697436,778697439,GB 778697440,778697471,FR 778697472,778697479,CZ @@ -12206,7 +12276,8 @@ 781651968,781654015,PL 781654016,781656063,RU 781656064,781658111,RO -781658112,781662207,UA +781658112,781660159,UA +781660160,781662207,RU 781662208,781664255,SK 781664256,781666303,RU 781666304,781668351,PL @@ -12313,7 +12384,9 @@ 782745600,782761983,CZ 782761984,783024127,PL 783024128,783040511,RU -783040512,783048703,UA +783040512,783047423,UA +783047424,783047679,RU +783047680,783048703,UA 783048704,783056895,RU 783056896,783065087,UA 783065088,783073279,RU @@ -12452,7 +12525,9 @@ 784039936,784072703,PL 784072704,784105471,RU 784105472,784138239,HR -784138240,784155487,DE +784138240,784145617,DE +784145618,784145618,BE +784145619,784155487,DE 784155488,784155491,NL 784155492,784155495,BE 784155496,784155503,AT @@ -12726,7 +12801,8 @@ 787165184,787167231,RU 787167232,787169279,CH 787169280,787171327,RU -787171328,787173375,KG +787171328,787172863,KG +787172864,787173375,RU 787173376,787175423,KZ 787175424,787177471,SA 787177472,787179519,RS @@ -12817,10 +12893,19 @@ 787715328,787715583,YE 787715584,787715839,BH 787715840,787718143,NL -787718144,787741951,RU +787718144,787718399,RU +787718400,787720959,NL +787720960,787721471,RU +787721472,787722751,NL +787722752,787725311,RU +787725312,787726335,NL +787726336,787738623,RU +787738624,787739903,NL +787739904,787740159,RU +787740160,787741951,NL 787741952,787742207,BZ -787742208,787742719,RU -787742720,787750143,NL +787742208,787742463,RU +787742464,787750143,NL 787750144,787750159,BD 787750160,787750175,BT 787750176,787750191,BN @@ -13154,7 +13239,10 @@ 835715072,835977215,CN 835977216,836042751,JP 836042752,836046847,HK -836046848,836050943,SG +836046848,836048895,SG +836048896,836049919,HK +836049920,836050431,SG +836050432,836050943,HK 836050944,836059135,IN 836059136,836075519,VN 836075520,836501503,TW @@ -13193,7 +13281,9 @@ 839009024,839009279,HU 839009280,839016191,US 839016192,839016447,CA -839016448,839078911,US +839016448,839075839,US +839075840,839076863,DE +839076864,839078911,US 839078912,839079935,DE 839079936,839339607,US 839339610,839340031,US @@ -13341,9 +13431,15 @@ 872297824,872297855,ES 872297856,872299103,FR 872299104,872299135,PT -872299136,872300031,FR +872299136,872299239,FR +872299240,872299247,ES +872299248,872299967,FR +872299968,872299983,ES +872299984,872300031,FR 872300032,872300063,ES -872300064,872300543,FR +872300064,872300215,FR +872300216,872300223,BE +872300224,872300543,FR 872300544,872300559,GB 872300560,872300639,FR 872300640,872300671,PT @@ -13405,7 +13501,9 @@ 872323072,872323135,FR 872323136,872323199,ES 872323200,872323327,GB -872323328,872323551,FR +872323328,872323407,FR +872323408,872323423,FI +872323424,872323551,FR 872323552,872323583,GB 872323584,872323775,FR 872323776,872323839,ES @@ -13419,7 +13517,9 @@ 872326152,872326155,CZ 872326156,872326175,FR 872326176,872326207,PT -872326208,872327615,FR +872326208,872326271,FR +872326272,872326275,FI +872326276,872327615,FR 872327616,872327679,ES 872327680,872327807,FR 872327808,872327811,FI @@ -13491,12 +13591,16 @@ 872356416,872357423,FR 872357424,872357439,PT 872357440,872357503,ES -872357504,872363135,FR +872357504,872363071,FR +872363072,872363103,ES +872363104,872363135,FR 872363136,872363199,PL 872363200,872363871,FR 872363872,872363903,PT 872363904,872364863,FR -872364864,872364927,NL +872364864,872364898,NL +872364899,872364899,FR +872364900,872364927,NL 872364928,872365311,FR 872365312,872365319,PT 872365320,872374459,FR @@ -13533,7 +13637,9 @@ 872382144,872382207,ES 872382208,872382335,FR 872382336,872382463,GB -872382464,872383519,FR +872382464,872382779,FR +872382780,872382783,ES +872382784,872383519,FR 872383520,872383551,ES 872383552,872383583,GB 872383584,872383743,FR @@ -13580,7 +13686,9 @@ 872406816,872406847,FI 872406848,872406879,FR 872406880,872406911,ES -872406912,872408383,FR +872406912,872407167,FR +872407168,872407171,FI +872407172,872408383,FR 872408384,872408447,IE 872408448,872409215,FR 872409216,872409343,GB @@ -14600,7 +14708,9 @@ 1023315712,1023315967,AU 1023315968,1023317503,US 1023317504,1023317759,IN -1023317760,1023328255,US +1023317760,1023323429,US +1023323430,1023323430,CN +1023323431,1023328255,US 1023328256,1023344639,JP 1023344640,1023410175,CN 1023410176,1023672319,IN @@ -15040,7 +15150,9 @@ 1044676608,1044684799,RU 1044684800,1044685158,GG 1044685159,1044685159,JE -1044685160,1044692991,GG +1044685160,1044692422,GG +1044692423,1044692423,IM +1044692424,1044692991,GG 1044692992,1044697087,AT 1044697088,1044697343,DE 1044697344,1044697599,AT @@ -15275,7 +15387,9 @@ 1046498688,1046498695,DE 1046498696,1046498799,GB 1046498800,1046498807,DE -1046498808,1046502106,GB +1046498808,1046499255,GB +1046499256,1046499263,DE +1046499264,1046502106,GB 1046502107,1046502108,DE 1046502109,1046503095,GB 1046503096,1046503103,DE @@ -15413,8 +15527,13 @@ 1047461888,1047494655,DE 1047494656,1047527423,PL 1047527424,1047529471,GB -1047529472,1047535103,BE -1047535104,1047535359,US +1047529472,1047530495,NL +1047530496,1047531007,GB +1047531008,1047531263,RS +1047531264,1047533567,BE +1047533568,1047534847,DE +1047534848,1047535103,BE +1047535104,1047535359,GB 1047535360,1047535615,BE 1047535616,1047551999,DE 1047552000,1047560191,RU @@ -15671,7 +15790,9 @@ 1051125472,1051125479,BE 1051125480,1051131903,NL 1051131904,1051197439,CH -1051197440,1051213823,CZ +1051197440,1051198531,CZ +1051198532,1051198535,SK +1051198536,1051213823,CZ 1051213824,1051230207,SK 1051230208,1051238399,SE 1051238400,1051246591,GE @@ -17444,8 +17565,8 @@ 1077964032,1077967103,US 1077967104,1077967359,CA 1077967360,1077967615,US -1077967616,1077967871,GB -1077967872,1077977087,US +1077967616,1077968127,GB +1077968128,1077977087,US 1077977088,1077985279,CA 1077985280,1077993471,US 1077993472,1078001663,CA @@ -17556,8 +17677,8 @@ 1079320576,1079322831,CA 1079322832,1079322839,US 1079322840,1079328767,CA -1079328768,1079377919,US -1079377920,1079378943,CA +1079328768,1079378175,US +1079378176,1079378943,CA 1079378944,1079379199,US 1079379200,1079379455,CA 1079379456,1079383039,US @@ -17616,7 +17737,11 @@ 1079433216,1079435263,CR 1079435264,1079435775,CO 1079435776,1079436031,CA -1079436032,1079440191,US +1079436032,1079439359,US +1079439360,1079439391,CA +1079439392,1079439615,US +1079439616,1079439871,CA +1079439872,1079440191,US 1079440192,1079440207,CA 1079440208,1079459839,US 1079459840,1079508991,CA @@ -17966,7 +18091,9 @@ 1089462784,1089463039,CA 1089463040,1089463295,US 1089463296,1089464319,CA -1089464320,1089526783,US +1089464320,1089465855,US +1089465856,1089466367,GB +1089466368,1089526783,US 1089526784,1089527039,VE 1089527040,1089579519,US 1089579520,1089580031,VE @@ -18190,7 +18317,9 @@ 1096925184,1096941567,CA 1096941568,1097007103,US 1097007104,1097031679,JP -1097031680,1097076123,US +1097031680,1097039871,US +1097039872,1097056255,SE +1097056256,1097076123,US 1097076124,1097076127,DE 1097076128,1097727999,US 1097728000,1097736191,CA @@ -18514,8 +18643,7 @@ 1112530944,1112539135,CA 1112539136,1112869887,US 1112869888,1112870143,CA -1112870400,1112870911,US -1112871936,1112873983,US +1112870144,1112873983,US 1112873984,1112875007,CA 1112875008,1112875519,US 1112875520,1112875775,CA @@ -18550,7 +18678,9 @@ 1113661440,1113669631,US 1113669632,1113677823,CA 1113677824,1113681919,US -1113686016,1113718783,US +1113686016,1113696575,US +1113696576,1113696639,CA +1113696640,1113718783,US 1113718784,1113743359,DO 1113743360,1113854207,US 1113854208,1113854463,CA @@ -18773,24 +18903,7 @@ 1119109120,1119109887,CA 1119109888,1119110143,US 1119110144,1119111167,CA -1119111168,1119166723,US -1119166848,1119166855,US -1119166864,1119166871,HT -1119166952,1119166959,US -1119166976,1119167007,US -1119167072,1119167079,US -1119167080,1119167087,CA -1119167088,1119167095,US -1119167200,1119167215,US -1119167232,1119167495,US -1119167496,1119167503,CA -1119167512,1119167519,US -1119167536,1119167543,US -1119167552,1119167999,US -1119168024,1119168031,CA -1119168032,1119168047,US -1119168112,1119168119,US -1119168128,1119170559,US +1119111168,1119166463,US 1119171072,1119171327,US 1119171360,1119171383,US 1119171384,1119171391,CA @@ -18801,18 +18914,7 @@ 1119172200,1119172207,CA 1119172256,1119172263,US 1119172352,1119172863,US -1119172864,1119174015,MX -1119174024,1119174031,GT -1119174032,1119174039,MX -1119174048,1119174207,MX -1119174208,1119174271,GT -1119174272,1119174335,MX -1119174344,1119174351,GT -1119174352,1119174359,MX -1119174400,1119174407,GT -1119174408,1119174415,MX -1119174424,1119174527,MX -1119174536,1119174543,MX +1119172864,1119173631,MX 1119174656,1119199231,US 1119199232,1119207169,MN 1119207170,1119207170,US @@ -18836,9 +18938,7 @@ 1119502336,1119510527,CA 1119510528,1119558143,US 1119558144,1119558655,PR -1119558656,1119568383,US -1119568384,1119568639,GB -1119568640,1119570559,US +1119558656,1119570559,US 1119570560,1119570687,GB 1119570688,1119571967,US 1119571968,1119576063,CA @@ -19189,7 +19289,9 @@ 1137376356,1137376356,CA 1137376357,1137378815,US 1137378816,1137379071,UA -1137379072,1137426431,US +1137379072,1137385471,US +1137385472,1137387519,IL +1137387520,1137426431,US 1137426432,1137442815,PR 1137442816,1137491967,US 1137491968,1137508351,CA @@ -19266,7 +19368,9 @@ 1138375424,1138375679,AS 1138375680,1138419711,US 1138419712,1138419967,DE -1138419968,1138499583,US +1138419968,1138474239,US +1138474240,1138474751,CA +1138474752,1138499583,US 1138499584,1138503679,CA 1138503680,1138508575,US 1138508576,1138508591,IT @@ -19395,9 +19499,7 @@ 1157931008,1157935103,BS 1157935104,1157943295,US 1157943296,1157947391,CA -1157947392,1157984255,US -1157984256,1157984767,CA -1157984768,1158027263,US +1157947392,1158027263,US 1158027264,1158027519,CA 1158027520,1158028287,US 1158028288,1158028543,CA @@ -19614,7 +19716,11 @@ 1161834980,1161834980,BZ 1161834981,1161835058,US 1161835059,1161835059,BZ -1161835060,1161835230,US +1161835060,1161835109,US +1161835110,1161835110,BZ +1161835111,1161835226,US +1161835227,1161835227,BZ +1161835228,1161835230,US 1161835231,1161835231,PH 1161835232,1161837174,US 1161837175,1161837175,BZ @@ -19860,7 +19966,7 @@ 1168867328,1168875519,CA 1168875520,1168916479,US 1168916480,1168924671,HK -1168924672,1168932863,CA +1168924672,1168932863,IT 1168932864,1168936959,US 1168936960,1168949247,CA 1168949248,1168949503,US @@ -20024,7 +20130,7 @@ 1192296448,1192361983,CA 1192361984,1192427519,US 1192427520,1192460287,CA -1192464384,1192468479,US +1192460288,1192468479,US 1192468480,1192476671,CA 1192476672,1192488959,US 1192488960,1192493055,CA @@ -20272,7 +20378,11 @@ 1224201216,1224202239,NL 1224202240,1224210431,US 1224210432,1224212479,NL -1224212480,1224329215,US +1224212480,1224327167,US +1224327168,1224327295,NL +1224327296,1224327935,US +1224327936,1224327943,CA +1224327944,1224329215,US 1224329216,1224329471,CA 1224329472,1224331263,US 1224331264,1224333311,PR @@ -20361,9 +20471,7 @@ 1248936960,1248939007,CA 1248939008,1248946175,US 1248946176,1248947199,VG -1248947200,1248958463,US -1248958464,1248959487,CA -1248959488,1248964607,US +1248947200,1248964607,US 1248964608,1248966655,CA 1248966656,1248997375,US 1248997376,1248998399,ID @@ -20447,12 +20555,12 @@ 1249359872,1249361919,CA 1249361920,1249379327,US 1249379328,1249380351,CA -1249380352,1249383423,US +1249380352,1249384447,US 1249384448,1249386495,PR 1249386496,1249391615,US 1249391616,1249392639,CA 1249392640,1249396735,US -1249396736,1249397759,CA +1249396736,1249398783,CA 1249398784,1249409023,US 1249409024,1249410047,CA 1249410048,1249434623,US @@ -20907,7 +21015,9 @@ 1296262144,1296262383,IE 1296262384,1296262399,IN 1296262400,1296262655,US -1296262656,1296263679,IE +1296262656,1296263523,IE +1296263524,1296263527,CH +1296263528,1296263679,IE 1296263680,1296263935,US 1296263936,1296264263,IE 1296264264,1296264271,GB @@ -21039,7 +21149,8 @@ 1296769024,1296771071,TR 1296771072,1296773119,LT 1296773120,1296774143,FR -1296775168,1296779263,FR +1296774145,1296774287,FR +1296774912,1296779263,FR 1296779264,1296781311,CZ 1296781312,1296783359,DK 1296783360,1296785407,LB @@ -22262,7 +22373,21 @@ 1334316032,1334316159,NO 1334316160,1334345727,SE 1334345728,1334378495,RU -1334378496,1334411263,IT +1334378496,1334379263,IT +1334379264,1334379519,PL +1334379520,1334379971,IT +1334379972,1334379975,DE +1334379976,1334383001,IT +1334383002,1334383002,GB +1334383003,1334383103,IT +1334383104,1334383359,FR +1334383360,1334386895,IT +1334386896,1334386896,FR +1334386897,1334389823,IT +1334389824,1334389887,ES +1334389888,1334390015,IT +1334390016,1334390271,ES +1334390272,1334411263,IT 1334411264,1334444031,RU 1334444032,1334503935,SE 1334503936,1334504191,DK @@ -23066,9 +23191,15 @@ 1347559424,1347567615,RU 1347567616,1347567888,SC 1347567889,1347567889,NL -1347567890,1347569663,SC +1347567890,1347569125,SC +1347569126,1347569126,NL +1347569127,1347569314,SC +1347569315,1347569315,NL +1347569316,1347569663,SC 1347569664,1347570687,NL -1347570688,1347571711,SC +1347570688,1347571538,SC +1347571539,1347571539,NL +1347571540,1347571711,SC 1347571712,1347575807,RU 1347575808,1347579903,DK 1347579904,1347588095,GB @@ -23220,7 +23351,8 @@ 1348009984,1348014079,RU 1348014080,1348018175,DK 1348018176,1348026367,NO -1348026368,1348030463,DE +1348026368,1348028415,DE +1348028416,1348030463,LV 1348030464,1348034559,GB 1348034560,1348038655,AT 1348038656,1348042751,FR @@ -23229,7 +23361,9 @@ 1348055040,1348059135,LB 1348059136,1348063231,RU 1348063232,1348067327,CH -1348067328,1348071423,NL +1348067328,1348070399,NL +1348070400,1348070911,DE +1348070912,1348071423,NL 1348071424,1348075519,DE 1348075520,1348076287,LV 1348076288,1348076543,RU @@ -23491,6 +23625,8 @@ 1357318400,1357318655,FR 1357318912,1357319167,DE 1357319168,1357319171,PL +1357319172,1357319178,GB +1357319180,1357319187,GB 1357321024,1357321087,KE 1357321984,1357322239,GB 1357322240,1357322255,DE @@ -23558,7 +23694,7 @@ 1357375216,1357375223,ES 1357375224,1357375423,GB 1357375424,1357375487,IE -1357377536,1357378639,FR +1357377536,1357378647,FR 1357378816,1357379071,FR 1357381632,1357414399,NO 1357414400,1357447167,LV @@ -23669,9 +23805,7 @@ 1357985016,1357985023,IT 1357985024,1357985575,GB 1357985576,1357985583,IT -1357985584,1357985775,GB -1357985776,1357985783,IT -1357985784,1357985791,GB +1357985584,1357985791,GB 1357985792,1357987839,DE 1357987840,1357991935,GB 1357991936,1357996031,NO @@ -24250,9 +24384,9 @@ 1360986632,1360986635,US 1360986636,1360986755,GB 1360986756,1360986763,US -1360986764,1360989653,GB -1360989654,1360989654,FR -1360989655,1360989929,GB +1360986764,1360989439,GB +1360989440,1360989695,FR +1360989696,1360989929,GB 1360989930,1360989930,FR 1360989931,1360989935,GB 1360989936,1360989943,FR @@ -24378,7 +24512,6 @@ 1364885504,1364889599,GB 1364889600,1364893695,IR 1364893696,1364897791,CZ -1364897792,1364901887,SI 1364901888,1364905983,DE 1364905984,1364910079,RU 1364910080,1364914175,UA @@ -24586,7 +24719,9 @@ 1370302976,1370303487,NO 1370303488,1370312703,NL 1370312704,1370316799,CH -1370316800,1370324991,NL +1370316800,1370318847,NL +1370318848,1370320895,ES +1370320896,1370324991,NL 1370324992,1370357759,DE 1370357760,1370390527,IT 1370390528,1370423295,GB @@ -24617,14 +24752,18 @@ 1371734016,1371799551,RU 1371799552,1371865087,RO 1371865088,1371930623,FI -1371930624,1371996159,LV +1371930624,1371979007,LV +1371979008,1371979263,LT +1371979264,1371996159,LV 1371996160,1371996671,GB 1371996672,1371996927,GA 1371996928,1372000255,GB 1372000256,1372001279,UG 1372001280,1372012543,GB 1372012544,1372013567,ZM -1372013568,1372016127,GB +1372013568,1372014079,GB +1372014080,1372014335,NG +1372014336,1372016127,GB 1372016128,1372016383,GH 1372016384,1372017583,GB 1372017584,1372017599,CD @@ -25092,7 +25231,7 @@ 1386444800,1386445823,DK 1386445824,1386447871,GB 1386447872,1386448895,DK -1386448896,1386449151,GB +1386448896,1386449151,IL 1386449152,1386449343,NL 1386449344,1386449347,GB 1386449348,1386449359,NL @@ -25110,7 +25249,10 @@ 1386449404,1386449407,DE 1386449408,1386449663,GB 1386449664,1386449919,HK -1386449920,1386450943,IL +1386449920,1386449920,US +1386449921,1386450175,IL +1386450176,1386450431,US +1386450432,1386450943,IL 1386450944,1386455039,GB 1386455040,1386456063,DK 1386456064,1386457087,GB @@ -25448,7 +25590,7 @@ 1399848960,1400111103,FR 1400111104,1400373247,NL 1400373248,1400635391,IR -1400635392,1400768511,DE +1400700928,1400768511,DE 1400897536,1400963071,NL 1400963072,1401028607,DE 1401028608,1401094143,IL @@ -25485,7 +25627,6 @@ 1401470976,1401473023,NL 1401473024,1401475071,CZ 1401475072,1401477119,FR -1401477120,1401479167,BE 1401479168,1401481215,PL 1401481216,1401485311,RU 1401485312,1401487834,GB @@ -25603,8 +25744,7 @@ 1401923584,1401925631,GG 1401925632,1401927679,BG 1401927680,1401929727,NL -1401929728,1401931775,RU -1401931776,1401933823,UA +1401929728,1401933823,RU 1401933824,1401935871,DE 1401935872,1401937919,FI 1401937920,1401939967,GB @@ -25791,8 +25931,7 @@ 1404043264,1404051455,EE 1404051456,1404059647,HR 1404059648,1404076543,SE -1404076544,1404081663,LV -1404081664,1404084223,SE +1404076544,1404084223,LV 1404084224,1404099327,LT 1404099328,1404099583,SE 1404099584,1404103167,LT @@ -25803,8 +25942,8 @@ 1404125184,1404133375,HR 1404133376,1404141567,SE 1404141568,1404149759,LV -1404149760,1404157951,SE -1404157952,1404174335,LV +1404149760,1404151807,SE +1404151808,1404174335,LV 1404174336,1404182527,EE 1404182528,1404187519,SE 1404187520,1404187535,LV @@ -25876,8 +26015,7 @@ 1404788736,1404796927,LT 1404796928,1404801023,EE 1404801024,1404803071,SE -1404803072,1404804095,LV -1404804096,1404805119,SE +1404803072,1404805119,LV 1404805120,1404813311,AT 1404813312,1404815871,EE 1404815872,1404816383,LT @@ -26354,6 +26492,7 @@ 1411850240,1411858431,FR 1411858432,1411870719,DE 1411870720,1411870975,CH +1411871232,1411871487,GB 1411871744,1411871771,GB 1411871772,1411871775,FR 1411871776,1411872015,GB @@ -26485,7 +26624,9 @@ 1422400408,1422400415,IN 1422400416,1422402175,DE 1422402176,1422402239,IN -1422402240,1422406655,DE +1422402240,1422406487,DE +1422406488,1422406495,IN +1422406496,1422406655,DE 1422406656,1422406783,IN 1422406784,1422406911,DE 1422406912,1422407039,IN @@ -26567,7 +26708,9 @@ 1424608084,1424608087,FR 1424608088,1424608743,GB 1424608744,1424608751,ES -1424608752,1424610643,GB +1424608752,1424609543,GB +1424609544,1424609551,CH +1424609552,1424610643,GB 1424610644,1424610644,PL 1424610645,1424610992,GB 1424610993,1424610993,FR @@ -26843,7 +26986,9 @@ 1432092672,1432100863,RU 1432100864,1432109055,CZ 1432109056,1432117247,GB -1432125440,1432131583,NL +1432125440,1432130703,NL +1432130704,1432130711,GB +1432130712,1432131583,NL 1432131584,1432133631,US 1432133632,1432150015,GB 1432150016,1432158207,BA @@ -27093,18 +27238,20 @@ 1437073408,1437335551,FR 1437335552,1437597695,RU 1437597696,1438121983,DE -1438121984,1438127103,NL -1438127104,1438127359,GB +1438121984,1438126079,NL +1438126080,1438127359,CZ 1438127360,1438127615,SE 1438127616,1438127871,BE -1438127872,1438146559,NL +1438127872,1438130175,CZ +1438130176,1438138367,NL +1438138368,1438146559,FR 1438146560,1438154751,MT 1438154752,1438171135,DK 1438171136,1438173183,GB 1438173184,1438179327,IM 1438179328,1438181375,NL 1438181376,1438183423,SA -1438183424,1438184447,NL +1438183424,1438184447,PS 1438184448,1438185471,CH 1438185472,1438186495,DE 1438186496,1438187519,CH @@ -27363,10 +27510,8 @@ 1440213257,1440251903,DE 1440251904,1440284671,SK 1440284672,1440317439,FI -1440317440,1440320255,BG -1440320256,1440320511,DE -1440320512,1440322047,BG -1440322048,1440323071,DE +1440317440,1440322559,BG +1440322560,1440323071,DE 1440323072,1440325631,BG 1440325632,1440326655,DE 1440326656,1440328703,BG @@ -27656,7 +27801,9 @@ 1449816576,1449817855,GB 1449817856,1449818111,RO 1449818112,1449818367,DE -1449818368,1449820927,RO +1449818368,1449818623,RO +1449818624,1449819135,TR +1449819136,1449820927,RO 1449820928,1449821183,DE 1449821184,1449822719,RO 1449822720,1449823743,GB @@ -27760,7 +27907,9 @@ 1450311680,1450442751,FI 1450442752,1450704895,CH 1450704896,1451229183,RO -1451229184,1455423487,GB +1451229184,1451415166,GB +1451415167,1451415167,US +1451415168,1455423487,GB 1455423488,1456726527,FR 1456726528,1456726783,RE 1456726784,1459617791,FR @@ -27788,10 +27937,13 @@ 1466040320,1466073087,EE 1466073088,1466086016,FR 1466086017,1466086017,ES -1466086018,1466097663,FR -1466097664,1466099711,ES +1466086018,1466097919,FR +1466097920,1466099711,ES 1466099712,1466101759,PL -1466101760,1466103807,DE +1466101760,1466102271,FR +1466102272,1466102527,DE +1466102528,1466102783,FR +1466102784,1466103807,DE 1466103808,1466104575,GB 1466104576,1466104942,FR 1466104943,1466104943,BE @@ -27884,9 +28036,7 @@ 1467582464,1467584511,DE 1467584512,1467593727,BG 1467593728,1467597823,DE -1467597824,1467600895,BG -1467600896,1467601407,DE -1467601408,1467604991,BG +1467597824,1467604991,BG 1467604992,1467744255,DE 1467744256,1467777023,GB 1467777024,1467875327,ES @@ -28469,8 +28619,13 @@ 1489666048,1489674239,GB 1489674240,1489676287,NL 1489676288,1489688575,GB -1489688576,1489690111,IL -1489690112,1489690623,NL +1489688576,1489688831,IL +1489688832,1489689087,GB +1489689088,1489689343,IL +1489689344,1489689599,GB +1489689600,1489689855,IL +1489689856,1489690367,NL +1489690368,1489690623,IL 1489690624,1489692415,GB 1489692416,1489692422,AU 1489692423,1489692423,GB @@ -28524,9 +28679,7 @@ 1490328576,1490337791,GB 1490337792,1490354175,RU 1490354176,1490386943,SA -1490386944,1490391039,IT -1490391040,1490395135,CH -1490395136,1490403327,IT +1490386944,1490403327,CH 1490403328,1490419711,BG 1490419712,1490420735,DE 1490420736,1490421759,IR @@ -28679,8 +28832,15 @@ 1495160256,1495160263,GB 1495160320,1495160575,FR 1495162112,1495162367,DE +1495162496,1495162499,DE 1495162608,1495162623,GB -1495162624,1495164927,FR +1495162624,1495163399,FR +1495163400,1495163403,GB +1495163404,1495163407,FR +1495163408,1495163411,ES +1495163412,1495163415,IT +1495163416,1495164927,FR +1495165192,1495165195,NL 1495165408,1495165439,FR 1495165696,1495165951,ES 1495167488,1495167503,GB @@ -28690,6 +28850,7 @@ 1495168384,1495168415,FR 1495168640,1495168655,FR 1495169024,1495169279,FR +1495170128,1495170143,FR 1495170760,1495170763,DE 1495170816,1495171071,FR 1495171072,1495203839,NL @@ -29086,7 +29247,8 @@ 1495688704,1495689215,IR 1495689216,1495689727,RO 1495689728,1495690239,DE -1495690240,1495693311,RO +1495690240,1495691263,RO +1495691264,1495693311,DE 1495693312,1495695359,GB 1495695360,1495699455,RO 1495699456,1495700479,GB @@ -29220,7 +29382,8 @@ 1495866112,1495866879,GB 1495866880,1495867391,RO 1495867392,1495867903,IR -1495867904,1495869439,RO +1495867904,1495868415,DE +1495868416,1495869439,RO 1495869440,1495870463,IR 1495870464,1495871487,RO 1495871488,1495871743,ES @@ -29331,9 +29494,10 @@ 1496018944,1496019967,FR 1496019968,1496020735,RO 1496020736,1496020991,AU -1496020992,1496023039,RO +1496020992,1496023039,DE 1496023040,1496024063,MD -1496024064,1496027135,RO +1496024064,1496025087,TR +1496025088,1496027135,RO 1496027136,1496029183,IR 1496029184,1496032255,RO 1496032256,1496033279,KZ @@ -29410,7 +29574,8 @@ 1496142848,1496143871,CH 1496143872,1496144895,RO 1496144896,1496145151,US -1496145152,1496145663,RO +1496145152,1496145407,RO +1496145408,1496145663,TR 1496145664,1496145919,IT 1496145920,1496150015,RO 1496150016,1496152063,IR @@ -29468,7 +29633,9 @@ 1496238080,1496240127,IQ 1496240128,1496242175,RO 1496242176,1496243199,IR -1496243200,1496253439,RO +1496243200,1496248595,RO +1496248596,1496248596,MD +1496248597,1496253439,RO 1496253440,1496254463,ES 1496254464,1496260607,RO 1496260608,1496261119,IT @@ -29846,7 +30013,9 @@ 1505607680,1505615871,SE 1505615872,1505624063,SA 1505624064,1505632255,FI -1505632256,1505646847,CZ +1505632256,1505644799,CZ +1505644800,1505645055,PL +1505645056,1505646847,CZ 1505646848,1505647103,PL 1505647104,1505648639,CZ 1505648640,1505656831,LT @@ -30133,7 +30302,9 @@ 1509453824,1509457919,RU 1509457920,1509462015,NL 1509462016,1509466111,LI -1509466112,1509470207,SC +1509466112,1509469749,SC +1509469750,1509469750,NL +1509469751,1509470207,SC 1509470208,1509478399,RU 1509478400,1509482495,FR 1509482496,1509486591,RU @@ -30444,7 +30615,8 @@ 1518403584,1518436351,SE 1518436352,1518452735,NO 1518452736,1518460927,AT -1518460928,1518472191,SE +1518460928,1518469119,LV +1518469120,1518472191,SE 1518472192,1518475263,LT 1518475264,1518476287,SE 1518476288,1518476799,EE @@ -30476,7 +30648,8 @@ 1518727168,1518731263,SE 1518731264,1518780415,LT 1518780416,1518796799,HR -1518796800,1518927871,SE +1518796800,1518862335,LT +1518862336,1518927871,SE 1518927872,1518961663,LT 1518961664,1518962175,EE 1518962176,1518962687,LV @@ -30582,27 +30755,28 @@ 1532682240,1532690431,LV 1532690432,1532755967,FR 1532755968,1532756991,DE -1532756992,1532784639,BG +1532756992,1532774143,BG +1532774144,1532774399,CH +1532774400,1532784639,BG 1532784640,1532785151,TR 1532785152,1532787711,BG 1532787712,1532789759,DE -1532789760,1532791807,BG -1532791808,1532794879,DE -1532794880,1532795903,BG +1532789760,1532795903,BG 1532795904,1532796927,DE 1532796928,1532797951,BG 1532797952,1532798975,DE 1532798976,1532799999,BG 1532800000,1532801023,DE 1532801024,1532802047,BG -1532802048,1532805119,DE -1532805120,1532808191,BG -1532808192,1532811263,DE -1532811264,1532812031,BG +1532802048,1532803071,DE +1532803072,1532808191,BG +1532808192,1532809215,DE +1532809216,1532812031,BG 1532812032,1532812287,RO 1532812288,1532813311,DE 1532813312,1532816383,BG -1532816384,1532821503,DE +1532816384,1532817407,DE +1532817408,1532821503,BG 1532821504,1532887039,TR 1532887040,1532952575,PL 1532952576,1533018111,SE @@ -30707,14 +30881,20 @@ 1533761536,1533763583,NL 1533763584,1533768703,RU 1533768704,1533768959,GB -1533768960,1533771519,RU +1533768960,1533769727,RU +1533769728,1533770751,BZ +1533770752,1533771519,RU 1533771520,1533771775,GB 1533771776,1533804543,IR 1533804544,1533805567,RU 1533805568,1533807615,NL 1533807616,1533808639,US 1533808640,1533809663,SG -1533809664,1533818879,RU +1533809664,1533810687,GB +1533810688,1533811199,RU +1533811200,1533811711,GB +1533811712,1533812735,RU +1533812736,1533818879,GB 1533818880,1533819903,NL 1533819904,1533820927,RU 1533820928,1533825407,DE @@ -30755,9 +30935,7 @@ 1533929472,1533932799,GB 1533932800,1533933055,DE 1533933056,1534066687,GB -1534066688,1534300159,AT -1534300160,1534300415,DE -1534300416,1534328831,AT +1534066688,1534328831,AT 1534328832,1534459903,ES 1534459904,1534590975,AT 1534590976,1534656511,HU @@ -31012,7 +31190,9 @@ 1535562404,1535562407,GB 1535562408,1535562591,FR 1535562592,1535562623,FI -1535562624,1535562879,FR +1535562624,1535562699,FR +1535562700,1535562703,PT +1535562704,1535562879,FR 1535562880,1535563007,ES 1535563008,1535563371,FR 1535563372,1535563375,FI @@ -31960,7 +32140,7 @@ 1539774720,1539774975,PL 1539774976,1539775231,RU 1539775488,1539775743,UA -1539775744,1539775999,IL +1539775744,1539775999,NL 1539776256,1539776511,SK 1539776768,1539777023,UA 1539777024,1539777279,RU @@ -32124,7 +32304,7 @@ 1539825408,1539825919,RU 1539825920,1539826175,DE 1539826176,1539826431,AM -1539826432,1539826687,BE +1539826432,1539826687,NL 1539826688,1539826943,CH 1539826944,1539827199,RU 1539827200,1539827455,ES @@ -32208,9 +32388,9 @@ 1539902464,1539903487,LV 1539903488,1539904511,PL 1539904512,1539905535,CZ -1539905536,1539906047,UA -1539906048,1539906303,RU -1539906304,1539906559,UA +1539905536,1539905791,RU +1539905792,1539906047,UA +1539906048,1539906559,RU 1539908608,1539909631,UA 1539909632,1539910655,RU 1539910656,1539911679,PL @@ -32293,7 +32473,9 @@ 1540008960,1540011007,PL 1540011008,1540014079,RU 1540014080,1540015103,PL -1540015104,1540016193,RU +1540015104,1540016127,RU +1540016128,1540016135,DE +1540016136,1540016193,RU 1540016194,1540016194,NL 1540016195,1540016393,RU 1540016394,1540016394,IE @@ -32353,7 +32535,7 @@ 1540081664,1540082687,DE 1540082688,1540083711,NO 1540083712,1540084735,RU -1540084736,1540085759,NL +1540084736,1540085759,DE 1540085760,1540087807,PL 1540087808,1540092927,RU 1540092928,1540094975,PL @@ -33575,7 +33757,7 @@ 1540740096,1540740351,GB 1540740352,1540740607,SA 1540740608,1540740863,NL -1540740864,1540741119,RO +1540740864,1540741119,ES 1540741120,1540741375,GB 1540741632,1540742143,NL 1540742400,1540742655,DE @@ -36347,7 +36529,7 @@ 1542357504,1542357759,GB 1542357760,1542358015,FR 1542358016,1542358271,UA -1542358272,1542358527,CZ +1542358272,1542358527,RU 1542358528,1542359039,PL 1542359040,1542360319,RU 1542360320,1542360575,NL @@ -36544,7 +36726,6 @@ 1542462208,1542462463,GE 1542462464,1542463487,PL 1542463488,1542463743,FR -1542463744,1542463999,ES 1542464000,1542464255,DE 1542464256,1542464511,CZ 1542464512,1542464767,RU @@ -36761,7 +36942,6 @@ 1542691328,1542691839,PT 1542691840,1542692863,RU 1542692864,1542696959,IR -1542696960,1542701055,RU 1542701056,1542709247,UA 1542709248,1542717439,RU 1542717440,1542733823,UA @@ -37167,7 +37347,9 @@ 1547665408,1547669503,GB 1547669504,1547673599,AT 1547673600,1547677695,NL -1547677696,1547683839,RU +1547677696,1547682559,RU +1547682560,1547682815,NL +1547682816,1547683839,RU 1547683840,1547683967,PL 1547683968,1547684031,EE 1547684032,1547684095,LV @@ -37182,11 +37364,15 @@ 1548159236,1548159487,NL 1548159488,1548159999,GB 1548160000,1548160257,NL -1548160260,1548160607,NL +1548160260,1548160567,NL +1548160568,1548160575,DE +1548160576,1548160607,NL 1548160608,1548160639,GB 1548160640,1548161375,NL 1548161376,1548161407,GB -1548161408,1548162463,NL +1548161408,1548161727,NL +1548161728,1548161791,GB +1548161792,1548162463,NL 1548162464,1548162495,FR 1548162496,1548169215,NL 1548169216,1548171263,DE @@ -37306,7 +37492,9 @@ 1558083960,1558083963,CZ 1558083964,1558084208,FR 1558084209,1558084209,ES -1558084210,1558084655,FR +1558084210,1558084649,FR +1558084650,1558084650,IT +1558084651,1558084655,FR 1558084656,1558084659,BE 1558084660,1558085055,FR 1558085056,1558085071,GB @@ -37332,7 +37520,9 @@ 1558112096,1558112127,ES 1558112128,1558112191,FR 1558112192,1558112192,ES -1558112193,1558112207,FR +1558112193,1558112198,FR +1558112199,1558112199,ES +1558112200,1558112207,FR 1558112208,1558112208,ES 1558112209,1558112209,FR 1558112210,1558112211,ES @@ -37347,9 +37537,20 @@ 1558126592,1558128639,RU 1558128640,1558129663,LU 1558129664,1558130687,US -1558130688,1558141439,LU +1558130688,1558138879,LU +1558138880,1558139135,RU +1558139136,1558139391,NL +1558139392,1558139903,US +1558139904,1558140159,DE +1558140160,1558140415,RU +1558140416,1558140671,SG +1558140672,1558140927,RU +1558140928,1558141439,LU 1558141440,1558141695,CY -1558141696,1558147583,LU +1558141696,1558141951,RU +1558141952,1558144255,LU +1558144256,1558144767,RU +1558144768,1558147583,LU 1558147584,1558147839,RU 1558147840,1558148095,LU 1558148096,1558148351,SG @@ -37369,7 +37570,9 @@ 1558180024,1558180039,IT 1558180040,1558180071,NL 1558180072,1558180079,IT -1558180080,1558180287,NL +1558180080,1558180095,NL +1558180096,1558180111,IT +1558180112,1558180287,NL 1558180288,1558180367,IT 1558180368,1558180863,NL 1558180864,1558183935,IT @@ -37444,7 +37647,7 @@ 1559941888,1559943167,DE 1559943168,1559944191,LU 1559944192,1559945727,FR -1559945728,1559946751,LU +1559945728,1559946751,GB 1559946752,1559947519,DE 1559947520,1559949311,LU 1559949312,1559950335,DE @@ -37737,13 +37940,15 @@ 1567699968,1567702015,RO 1567702016,1567703039,TR 1567703040,1567705087,MD -1567705088,1567707135,BG +1567705088,1567705599,BG +1567705600,1567705855,MD +1567705856,1567707135,BG 1567707136,1567709183,MD 1567709184,1567709439,RO 1567709440,1567709695,IT 1567709696,1567710207,RO 1567710208,1567711231,MD -1567711232,1567711487,RO +1567711232,1567711487,TR 1567711488,1567711743,PL 1567711744,1567712511,RO 1567712512,1567712767,PL @@ -37753,7 +37958,9 @@ 1567715328,1567717375,MD 1567717376,1567719167,RO 1567719168,1567719423,GB -1567719424,1567721471,RO +1567719424,1567720191,RO +1567720192,1567720447,NO +1567720448,1567721471,RO 1567721472,1567723519,ES 1567723520,1567727359,RO 1567727360,1567727615,GB @@ -38180,7 +38387,9 @@ 1571704832,1571706879,GB 1571706880,1571708179,SC 1571708180,1571708180,NL -1571708181,1571708927,SC +1571708181,1571708338,SC +1571708339,1571708339,NL +1571708340,1571708927,SC 1571708928,1571709439,GB 1571709440,1571709567,DE 1571709568,1571709695,GB @@ -38216,7 +38425,8 @@ 1571748608,1571748863,GB 1571748864,1571749119,US 1571749120,1571749375,SG -1571749376,1571749887,GB +1571749376,1571749631,GB +1571749632,1571749887,SG 1571749888,1571758079,RU 1571758080,1571766271,IL 1571766272,1571786751,PL @@ -38253,8 +38463,7 @@ 1572035584,1572036607,GB 1572036608,1572039679,RU 1572039680,1572043263,GB -1572043264,1572043775,RU -1572043776,1572044799,GB +1572043264,1572044799,RU 1572044800,1572061183,IT 1572061184,1572077567,PL 1572077568,1572093951,RU @@ -39093,7 +39302,9 @@ 1586233344,1586241535,FR 1586241536,1586249727,SE 1586249728,1586257919,SI -1586257920,1586264063,SE +1586257920,1586261503,SE +1586261504,1586261759,RS +1586261760,1586264063,SE 1586264064,1586265087,LV 1586265088,1586266111,SE 1586266112,1586274303,RU @@ -39244,7 +39455,9 @@ 1588682752,1588684799,RO 1588684800,1588685055,TH 1588685056,1588685311,VG -1588685312,1588688383,RO +1588685312,1588686847,RO +1588686848,1588687103,NO +1588687104,1588688383,RO 1588688384,1588688639,GB 1588688640,1588689407,RO 1588689408,1588689663,GB @@ -39282,7 +39495,8 @@ 1589510144,1589542911,RU 1589542912,1589560319,BG 1589560320,1589561343,GI -1589561344,1589575679,BG +1589561344,1589563391,NL +1589563392,1589575679,BG 1589575680,1589608447,RU 1589608448,1589622783,SE 1589622784,1589641215,DK @@ -39610,7 +39824,9 @@ 1596873472,1596873727,RU 1596873728,1596873983,UZ 1596873984,1596874751,RU -1596874752,1596875775,UA +1596874752,1596875007,UA +1596875008,1596875263,RU +1596875264,1596875775,UA 1596875776,1596876799,UZ 1596876800,1596877311,RU 1596877312,1596877596,CZ @@ -39681,8 +39897,7 @@ 1596956160,1596956671,RU 1596956672,1596956927,CZ 1596956928,1596957183,RU -1596957184,1596957695,UA -1596957696,1596957951,RU +1596957184,1596957951,UA 1596957952,1596958207,CZ 1596958208,1596958463,RU 1596958464,1596958719,UA @@ -40133,9 +40348,7 @@ 1605099520,1605107711,RU 1605107712,1605108247,GB 1605108248,1605108255,IT -1605108256,1605108567,GB -1605108568,1605108575,IT -1605108576,1605108583,GB +1605108256,1605108583,GB 1605108584,1605108591,IT 1605108592,1605109079,GB 1605109080,1605109087,IT @@ -40165,9 +40378,7 @@ 1605111904,1605111911,IT 1605111912,1605111935,GB 1605111936,1605111943,IT -1605111944,1605112119,GB -1605112120,1605112127,IT -1605112128,1605113383,GB +1605111944,1605113383,GB 1605113384,1605113391,IT 1605113392,1605113407,GB 1605113408,1605113415,IT @@ -40573,7 +40784,7 @@ 1698004992,1698013183,IN 1698013184,1698021375,US 1698021376,1698029567,NZ -1698029568,1698037759,AU +1698029568,1698037759,PK 1698037760,1698103295,CN 1698103296,1698136063,KR 1698136064,1698160639,JP @@ -40699,8 +40910,7 @@ 1728153600,1728154623,SG 1728154624,1728155647,JP 1728155648,1728157695,MY -1728157696,1728157951,HK -1728157952,1728158463,MY +1728157696,1728158463,HK 1728158464,1728158719,NL 1728158720,1728159743,HK 1728159744,1728161791,TH @@ -40769,8 +40979,7 @@ 1728286720,1728287743,AU 1728287744,1728290815,CN 1728290816,1728291839,AU -1728291840,1728292607,US -1728292608,1728292863,SG +1728291840,1728292863,SG 1728292864,1728293887,PG 1728293888,1728294911,MY 1728294912,1728295935,TH @@ -41263,6 +41472,7 @@ 1728751616,1728751871,IN 1728751872,1728752639,ID 1728752640,1728753663,HK +1728753664,1728754687,PH 1728754688,1728755711,IN 1728755712,1728756735,ID 1728756736,1728757759,IN @@ -42579,7 +42789,13 @@ 1730017792,1730019327,PH 1730019328,1730020351,ID 1730020352,1730021375,HK -1730022400,1730023423,IN +1730022400,1730023169,IN +1730023170,1730023231,US +1730023232,1730023232,IN +1730023233,1730023296,US +1730023297,1730023297,IN +1730023298,1730023359,US +1730023360,1730023423,IN 1730023424,1730024447,HK 1730024448,1730025471,CN 1730025472,1730026495,HK @@ -42902,9 +43118,7 @@ 1730599936,1730604031,CN 1730604032,1730605055,NP 1730605056,1730607103,IN -1730608128,1730608639,CN -1730608640,1730608895,HK -1730608896,1730609151,CN +1730608128,1730609151,CN 1730609152,1730610687,IN 1730610688,1730610943,MY 1730610944,1730611199,SG @@ -42925,7 +43139,6 @@ 1730623488,1730624511,HK 1730624512,1730625535,AU 1730625536,1730626559,CN -1730626560,1730627583,HK 1730628608,1730629631,HK 1730629632,1730630655,PK 1730630656,1730631679,AU @@ -43047,7 +43260,6 @@ 1730801664,1730802687,JP 1730802688,1730803199,BD 1730803200,1730803711,ID -1730803712,1730804735,HK 1730804736,1730805759,JP 1730805760,1730806783,AF 1730807808,1730808831,CN @@ -43937,7 +44149,9 @@ 1731940352,1731942655,IN 1731942656,1731942911,JP 1731942912,1731943423,HK -1731943424,1731944447,KR +1731943424,1731944258,KR +1731944259,1731944259,CH +1731944260,1731944447,KR 1731944448,1731945471,IN 1731945472,1731946495,CN 1731946496,1731947519,IN @@ -43966,6 +44180,7 @@ 1731987456,1731987711,SG 1731987712,1731987967,ID 1731987968,1731988479,SG +1731988480,1731989503,US 1731989504,1731990527,VN 1731990528,1731990783,AU 1731990784,1731991039,IN @@ -44143,7 +44358,8 @@ 1732242432,1732243455,HK 1732243456,1732249599,CN 1732249600,1732250623,SG -1732250624,1732251135,MY +1732250624,1732250879,HK +1732250880,1732251135,MY 1732251136,1732251647,ID 1732251648,1732252671,SG 1732252672,1732253695,MM @@ -44287,9 +44503,8 @@ 1732504576,1732505599,IN 1732505600,1732506623,ID 1732506624,1732507647,IN -1732507648,1732507902,AU -1732507903,1732507903,PH -1732507904,1732508671,AU +1732507648,1732507648,PH +1732507649,1732508671,AU 1732508672,1732509695,CN 1732509696,1732510719,ID 1732510720,1732511743,BD @@ -44328,8 +44543,7 @@ 1732546560,1732547583,JP 1732547584,1732549631,KR 1732549632,1732550655,PH -1732550656,1732551679,AU -1732551680,1732552703,SG +1732550656,1732552703,AU 1732552704,1732554751,HK 1732554752,1732555263,IN 1732555264,1732555775,AU @@ -44541,7 +44755,7 @@ 1732800512,1732806655,CN 1732806656,1732808703,IN 1732808704,1732809727,CN -1732809728,1732809983,KR +1732809728,1732809983,US 1732809984,1732810751,CN 1732810752,1732811775,HK 1732811776,1732812799,IN @@ -44938,7 +45152,7 @@ 1733249024,1733249279,AU 1733249280,1733249791,IN 1733249792,1733250047,AU -1733250048,1733251071,GB +1733250048,1733251071,US 1733251072,1733253119,CN 1733253120,1733253631,AU 1733253632,1733254143,ID @@ -45029,6 +45243,127 @@ 1733345280,1733346303,CN 1733346304,1733347327,IN 1733347328,1733348351,CN +1733348352,1733349375,JP +1733349376,1733349631,NZ +1733349632,1733349887,AU +1733349888,1733350399,MN +1733350400,1733351423,CN +1733351424,1733352447,TH +1733352448,1733352959,HK +1733352960,1733353471,JP +1733353472,1733354495,BD +1733354496,1733355519,AU +1733355520,1733356543,CN +1733356544,1733358591,ID +1733358592,1733359615,AU +1733359616,1733360383,IN +1733360384,1733360639,AU +1733360640,1733361151,HK +1733361152,1733361663,AU +1733361664,1733362687,IN +1733362688,1733364735,CN +1733364736,1733365759,IN +1733365760,1733367807,CN +1733367808,1733371903,IN +1733371904,1733372927,AU +1733372928,1733374975,CN +1733374976,1733375743,AU +1733375744,1733377023,IN +1733377024,1733379071,ID +1733379072,1733380095,BD +1733380096,1733381119,JP +1733381120,1733381375,AU +1733381376,1733382143,IN +1733382144,1733384191,VN +1733384192,1733386239,IN +1733386240,1733387263,CN +1733387264,1733387775,ID +1733387776,1733388031,AU +1733388032,1733388287,IN +1733388288,1733388799,BD +1733388800,1733390591,IN +1733390592,1733391359,MM +1733391360,1733392383,IN +1733392384,1733393407,CN +1733393408,1733394431,AU +1733394432,1733395455,SG +1733395456,1733396479,ID +1733396480,1733396735,NP +1733396736,1733396991,IN +1733396992,1733397247,ID +1733397248,1733397503,IN +1733397504,1733399551,JP +1733399552,1733400575,CN +1733400576,1733402879,IN +1733402880,1733403135,AU +1733403136,1733403391,MY +1733403392,1733403647,SG +1733403648,1733405695,CN +1733405696,1733406719,BD +1733406720,1733407743,JP +1733407744,1733407999,TH +1733408000,1733408511,IN +1733408512,1733409279,CN +1733409280,1733409535,DE +1733409536,1733409791,CN +1733409792,1733411327,IN +1733411328,1733411839,ID +1733411840,1733412863,BD +1733412864,1733413887,CN +1733413888,1733414911,BD +1733414912,1733416959,IN +1733419008,1733420031,NZ +1733420032,1733420287,SG +1733420288,1733421055,IN +1733421056,1733422079,CN +1733422080,1733424127,IN +1733424128,1733424383,AU +1733424384,1733424639,IN +1733424640,1733424895,ID +1733424896,1733425151,HK +1733425152,1733425663,ID +1733425664,1733427199,IN +1733427200,1733428223,GB +1733428224,1733428735,HK +1733428736,1733429247,ID +1733429248,1733430271,BD +1733430272,1733431295,ID +1733431296,1733432319,HK +1733432320,1733437439,VN +1733437440,1733438975,IN +1733438976,1733439487,PH +1733439488,1733440511,IN +1733440512,1733441535,CN +1733441536,1733442559,LA +1733442560,1733443583,CN +1733443584,1733444095,GB +1733444096,1733444607,IN +1733444608,1733445631,CN +1733445632,1733448703,IN +1733448704,1733449727,CN +1733449728,1733450751,JP +1733450752,1733453823,IN +1733453824,1733454847,CN +1733454848,1733455871,AU +1733455872,1733456895,JP +1733456896,1733457919,PH +1733457920,1733458943,PK +1733458944,1733459199,AU +1733459200,1733459455,IN +1733459456,1733459967,ID +1733459968,1733460991,GB +1733460992,1733462015,VN +1733462016,1733463039,AU +1733463040,1733464063,HK +1733464064,1733466111,IN +1733466112,1733467135,AU +1733467136,1733469183,IN +1733469184,1733470207,ID +1733470208,1733471231,HK +1733471232,1733472255,BD +1733472256,1733473279,IN +1733473280,1733474303,ID +1733474304,1733476351,IN 1740636160,1740644351,CN 1740644352,1740645375,IN 1740645376,1740647423,HK @@ -45324,6 +45659,7 @@ 1741020160,1741022207,IN 1741022208,1741023231,CN 1741023232,1741025279,AU +1741025280,1741026303,IN 1741026304,1741027327,TH 1741027328,1741028351,BD 1741028352,1741028519,CN @@ -45360,7 +45696,7 @@ 1741051904,1741052927,PH 1741052928,1741053183,AU 1741053184,1741053439,ID -1741053440,1741055999,IN +1741053952,1741055999,IN 1741056000,1741056511,NZ 1741056512,1741057023,AU 1741057024,1741058047,JP @@ -45463,7 +45799,9 @@ 1741243392,1741245439,HK 1741245440,1741257727,CN 1741257728,1741258751,IN -1741258752,1741259775,JP +1741258752,1741259007,JP +1741259008,1741259263,HK +1741259264,1741259775,JP 1741259776,1741264895,IN 1741264896,1741303807,CN 1741303808,1741304831,HK @@ -45647,7 +45985,7 @@ 1741572608,1741573119,KR 1741573120,1741574143,JP 1741574144,1741575167,PH -1741575168,1741576191,PK +1741575168,1741576191,US 1741576192,1741577215,JP 1741577216,1741578239,HK 1741578240,1741578751,IN @@ -45792,7 +46130,7 @@ 1741756416,1741756927,AU 1741756928,1741757439,IN 1741757440,1741758463,HK -1741758464,1741759487,AU +1741758464,1741759487,US 1741759488,1741760511,IN 1741760512,1741761535,HK 1741761536,1741762559,AU @@ -45855,9 +46193,8 @@ 1741815808,1741816831,CN 1741816832,1741817855,PK 1741817856,1741818367,PH -1741818368,1741819135,AU -1741819136,1741819391,PK -1741819392,1741819903,AU +1741818368,1741818879,AU +1741818880,1741819903,US 1741819904,1741820927,BD 1741820928,1741821951,PH 1741821952,1741822975,AU @@ -46267,7 +46604,7 @@ 1742340096,1742341119,CN 1742341120,1742342143,HK 1742342144,1742346239,CN -1742346240,1742347263,SG +1742346240,1742347263,BD 1742347264,1742364671,CN 1742364672,1742365695,PH 1742365696,1742366719,IN @@ -46785,7 +47122,7 @@ 1743125504,1743126527,JP 1743126528,1743127551,CN 1743127552,1743128575,BD -1743128576,1743129599,JP +1743128576,1743129599,PH 1743129600,1743130623,HK 1743130624,1743131647,BD 1743131648,1743132671,IN @@ -46844,7 +47181,6 @@ 1743185920,1743186943,SG 1743186944,1743187967,CN 1743187968,1743188991,HK -1743188992,1743190015,JP 1743190016,1743191039,SG 1743191040,1743192063,AF 1743192064,1743195135,IN @@ -47437,7 +47773,9 @@ 1743897600,1743899647,AU 1743899648,1743900671,ID 1743900672,1743901695,JP -1743901696,1743902463,AU +1743901696,1743901951,AU +1743901952,1743902207,US +1743902208,1743902463,AU 1743902464,1743902719,US 1743902720,1743903743,AU 1743903744,1743904767,CN @@ -47551,7 +47889,7 @@ 1744018432,1744019455,MY 1744019456,1744020479,NZ 1744020480,1744021503,HK -1744021504,1744022527,TH +1744022016,1744022271,TH 1744022528,1744023551,SG 1744023552,1744023807,IN 1744023808,1744024319,ID @@ -47780,7 +48118,7 @@ 1744245760,1744247807,ID 1744247808,1744248831,IN 1744248832,1744249855,ID -1744249856,1744250367,HK +1744249856,1744250367,US 1744250368,1744250879,PH 1744250880,1744251903,ID 1744251904,1744252927,BD @@ -48123,7 +48461,8 @@ 1744602112,1744603135,HK 1744604160,1744607231,IN 1744607232,1744608255,AU -1744608256,1744609791,IN +1744608256,1744609279,IN +1744609536,1744609791,IN 1744609792,1744610047,HK 1744610048,1744610303,ID 1744610304,1744612351,IN @@ -48570,14 +48909,14 @@ 1749188608,1749196799,US 1749196800,1749204991,NL 1749204992,1749221375,US -1749221376,1749237759,NL -1749237760,1749327871,US +1749221376,1749229567,NL +1749229568,1749327871,US 1749327872,1749336063,NL 1749336064,1749340159,US 1749340160,1749344255,NL 1749344256,1749364735,US -1749364736,1749389311,NL -1749389312,1749397503,US +1749364736,1749381119,NL +1749381120,1749397503,US 1749397504,1749406719,NL 1749406720,1749413887,US 1749413888,1749422079,NL @@ -48772,8 +49111,8 @@ 1751834624,1751838719,NL 1751838720,1751879679,US 1751879680,1751883775,NL -1751883776,1751885311,US -1751885312,1751885823,NL +1751883776,1751884799,US +1751884800,1751885823,NL 1751885824,1751896063,US 1751896064,1751896831,NL 1751896832,1751897087,US @@ -48854,7 +49193,9 @@ 1752940544,1752946175,NL 1752946176,1752948735,US 1752948736,1752952831,NL -1752952832,1752982527,US +1752952832,1752971007,US +1752971008,1752971263,NL +1752971264,1752982527,US 1752982528,1753005055,NL 1753005056,1753006079,US 1753006080,1753014271,NL @@ -48862,7 +49203,9 @@ 1753022976,1753026047,NL 1753026048,1753026559,US 1753026560,1753042943,NL -1753042944,1753077247,US +1753042944,1753046015,US +1753046016,1753046271,NL +1753046272,1753077247,US 1753077248,1753077503,NL 1753077504,1753097727,US 1753097728,1753117183,NL @@ -48911,7 +49254,8 @@ 1753487680,1753487727,GB 1753487728,1753489407,US 1753489408,1753489663,GB -1753489664,1753490175,US +1753489664,1753489919,HK +1753489920,1753490175,US 1753490176,1753490431,AU 1753490432,1753490687,IL 1753490688,1753491455,US @@ -48920,7 +49264,9 @@ 1753494528,1753494783,IL 1753494784,1753497407,US 1753497408,1753497455,PH -1753497456,1753512703,US +1753497456,1753499391,US +1753499392,1753499647,PH +1753499648,1753512703,US 1753512704,1753512959,SG 1753512960,1753516543,US 1753516544,1753516799,ES @@ -48942,11 +49288,10 @@ 1753532416,1753532671,JP 1753532672,1753538815,US 1753538816,1753539071,PH -1753539072,1753539583,US +1753539072,1753539327,US +1753539328,1753539583,IE 1753539584,1753539839,CH -1753539840,1753547007,US -1753547008,1753547263,DE -1753547264,1753735167,US +1753539840,1753735167,US 1753735168,1753743359,IE 1753743360,1754136575,US 1754136576,1754169343,CA @@ -49115,7 +49460,9 @@ 1754869760,1754870783,CA 1754870784,1754871807,US 1754871808,1754872831,CA -1754872832,1754890239,US +1754872832,1754886143,US +1754886144,1754888191,IL +1754888192,1754890239,US 1754890240,1754892287,BB 1754892288,1754894335,CA 1754894336,1754899455,US @@ -49297,7 +49644,9 @@ 1757424640,1757425663,CA 1757425664,1757426687,US 1757426688,1757427711,CA -1757427712,1757443071,US +1757427712,1757432831,US +1757432832,1757433855,CA +1757433856,1757443071,US 1757443072,1757446143,CA 1757446144,1757447167,US 1757447168,1757447343,CA @@ -49346,7 +49695,11 @@ 1757957888,1757958143,US 1757958144,1757962239,CA 1757962240,1757966335,BB -1757966336,1758199807,US +1757966336,1757996287,US +1757996288,1757996543,GB +1757996544,1758002431,US +1758002432,1758002687,GB +1758002688,1758199807,US 1758199808,1758330879,CA 1758330880,1758412799,US 1758412800,1758413055,BG @@ -49544,15 +49897,14 @@ 1759526144,1759526399,CC 1759526400,1759526655,JE 1759526656,1759526911,FO -1759526912,1759535103,US +1759526912,1759528959,IL +1759528960,1759535103,US 1759535104,1759543295,CA 1759543296,1759547391,US 1759547392,1759548415,NL 1759548416,1759707735,US 1759707736,1759707743,NO -1759707744,1759709183,US -1759709184,1759709439,LT -1759709440,1759721831,US +1759707744,1759721831,US 1759721832,1759721839,NO 1759721840,1759727103,US 1759727104,1759727359,IN @@ -49598,12 +49950,14 @@ 1760475136,1760476159,GB 1760476160,1760477183,FR 1760477184,1760657407,US -1760657408,1760677887,CA -1760677888,1760690175,US +1760657408,1760673791,CA +1760673792,1760690175,US 1760690176,1760755711,CA 1760755712,1760776191,US 1760776192,1760784383,CA -1760784384,1760812543,US +1760784384,1760811007,US +1760811008,1760812031,NL +1760812032,1760812543,US 1760812544,1760813055,CA 1760813056,1760817151,US 1760817152,1760817407,MO @@ -49618,7 +49972,7 @@ 1760819456,1760819711,GB 1760819712,1760819967,MA 1760819968,1760820223,HK -1760820224,1760820479,JP +1760820224,1760820479,US 1760820480,1760820735,CA 1760820736,1760823295,US 1760823296,1760824319,PT @@ -49669,7 +50023,9 @@ 1761019648,1761019903,VE 1761019904,1761023231,US 1761023232,1761023487,JP -1761023488,1761043711,US +1761023488,1761038335,US +1761038336,1761039871,CA +1761039872,1761043711,US 1761043712,1761043967,PH 1761043968,1761044479,US 1761044480,1761044735,AU @@ -49736,7 +50092,7 @@ 1761259008,1761259031,PT 1761259032,1761259032,US 1761259033,1761259263,PT -1761259264,1761259519,FR +1761259264,1761259519,US 1761259520,1761259775,KH 1761259776,1761260031,AZ 1761260032,1761260287,ET @@ -49747,7 +50103,7 @@ 1761261312,1761261567,PR 1761261568,1761261823,VG 1761261824,1761262079,SG -1761262080,1761262335,IN +1761262080,1761262335,US 1761262336,1761262591,PK 1761262592,1761262847,US 1761262848,1761263103,RU @@ -49795,7 +50151,9 @@ 1761544192,1761546239,CA 1761546240,1761554431,US 1761554432,1761555455,CA -1761555456,1761581055,US +1761555456,1761556479,US +1761556480,1761558527,IL +1761558528,1761581055,US 1761581056,1761583103,CA 1761583104,1761587199,US 1761587200,1761588223,AI @@ -50008,7 +50366,8 @@ 1805000059,1805000059,CA 1805000060,1805010175,US 1805010176,1805010431,CA -1805010432,1805016063,US +1805010432,1805010687,KR +1805010688,1805016063,US 1805016064,1805016319,EE 1805016320,1805016575,RU 1805016576,1805016831,NZ @@ -50706,7 +51065,9 @@ 1835917856,1835917863,IT 1835917864,1835917919,GB 1835917920,1835917935,IT -1835917936,1835918439,GB +1835917936,1835917959,GB +1835917960,1835917967,IT +1835917968,1835918439,GB 1835918440,1835918447,IT 1835918448,1835918519,GB 1835918520,1835918527,IT @@ -50722,9 +51083,7 @@ 1835919512,1835919519,IT 1835919520,1835919751,GB 1835919752,1835919759,IT -1835919760,1835920839,GB -1835920840,1835920847,IT -1835920848,1835921079,GB +1835919760,1835921079,GB 1835921080,1835921087,IT 1835921088,1835921111,GB 1835921112,1835921127,IT @@ -50774,7 +51133,9 @@ 1835991040,1835999231,RU 1835999232,1836007423,IR 1836007424,1836015615,RU -1836015616,1836023807,AD +1836015616,1836017968,AD +1836017969,1836017969,ES +1836017970,1836023807,AD 1836023808,1836040191,RU 1836040192,1836048383,GB 1836048384,1836056575,RS @@ -51552,10 +51913,7 @@ 1844772864,1844838399,RS 1844838400,1844903935,GB 1844903936,1844969471,NO -1844969472,1844973567,EE -1844973568,1844994047,RU -1844994048,1845002239,EE -1845002240,1845006335,RU +1844969472,1845006335,RU 1845006336,1845010431,KZ 1845010432,1845022719,RU 1845022720,1845023743,KZ @@ -52040,7 +52398,9 @@ 1897170944,1897172991,ID 1897172992,1897175039,PH 1897175040,1897176063,JP -1897176064,1897177087,SG +1897176064,1897176319,SG +1897176320,1897176575,HK +1897176576,1897177087,SG 1897177088,1897201663,JP 1897201664,1897209855,KR 1897209856,1897213951,AU @@ -52072,8 +52432,8 @@ 1897736032,1897736223,CN 1897736224,1897736255,US 1897736256,1897736351,CN -1897736352,1897736383,HK -1897736384,1897737984,CN +1897736352,1897736415,HK +1897736416,1897737984,CN 1897737985,1897742335,US 1897742336,1897743575,SI 1897743576,1897743583,SG @@ -53140,6 +53500,7 @@ 1998520320,1998553087,TH 1998553088,1998561279,JP 1998561280,1998562559,IN +1998562688,1998562703,CN 1998562816,1998562863,IN 1998562864,1998562864,HK 1998562865,1998565375,IN @@ -54022,7 +54383,8 @@ 2080778240,2080780287,US 2080780288,2080780799,ID 2080780800,2080781311,MY -2080781312,2080784383,SG +2080781312,2080781823,JP +2080781824,2080784383,SG 2080784384,2080800767,CN 2080800768,2080817151,PH 2080817152,2080825343,NZ @@ -54344,7 +54706,8 @@ 2113863680,2113929215,AU 2113929216,2130706431,JP 2147483648,2147483903,NL -2147483904,2147485695,RO +2147483904,2147484671,RO +2147484672,2147485695,TR 2147485696,2147487743,DK 2147487744,2147489791,NO 2147489792,2147491839,RU @@ -54352,7 +54715,7 @@ 2147494912,2147495167,RO 2147495168,2147495423,DE 2147495424,2147496959,RO -2147496960,2147497215,DE +2147496960,2147497215,ES 2147497216,2147497471,RO 2147497472,2147498239,DE 2147498240,2147498495,RO @@ -56257,7 +56620,9 @@ 2303342460,2303342463,DE 2303342464,2303343039,FR 2303343040,2303343103,PT -2303343104,2303343487,FR +2303343104,2303343435,FR +2303343436,2303343439,GB +2303343440,2303343487,FR 2303343488,2303343615,IE 2303343616,2303343827,FR 2303343828,2303343831,DE @@ -56275,7 +56640,9 @@ 2303353216,2303353343,GB 2303353344,2303353783,FR 2303353784,2303353787,GB -2303353788,2303354639,FR +2303353788,2303354555,FR +2303354556,2303354559,FI +2303354560,2303354639,FR 2303354640,2303354643,GB 2303354644,2303361079,FR 2303361080,2303361087,GB @@ -56283,9 +56650,13 @@ 2303361536,2303361599,GB 2303361600,2303362063,FR 2303362064,2303362079,DE -2303362080,2303365279,FR +2303362080,2303362303,FR +2303362304,2303362559,DE +2303362560,2303365279,FR 2303365280,2303365295,GB -2303365296,2303374745,FR +2303365296,2303368579,FR +2303368580,2303368583,ES +2303368584,2303374745,FR 2303374746,2303374746,ES 2303374747,2303376807,FR 2303376808,2303376815,ES @@ -56295,13 +56666,15 @@ 2303382880,2303382895,ES 2303382896,2303383503,FR 2303383504,2303383519,GB -2303383520,2303384287,FR -2303384288,2303384303,GB -2303384304,2303384959,FR +2303383520,2303384959,FR 2303384960,2303384991,GB 2303384992,2303388415,FR 2303388416,2303388543,ES -2303388544,2303393791,FR +2303388544,2303392843,FR +2303392844,2303392847,FI +2303392848,2303393535,FR +2303393536,2303393567,PT +2303393568,2303393791,FR 2303393792,2303459327,US 2303459328,2303524863,AU 2303524864,2303852543,US @@ -56999,6 +57372,7 @@ 2331508736,2331574271,GB 2331574272,2331639807,FI 2331639808,2331770879,GB +2331770880,2331836415,AU 2331836416,2331901951,GB 2331901952,2331967487,US 2331967488,2331980799,BR @@ -57084,9 +57458,7 @@ 2334064640,2334916607,US 2334916608,2334982143,AU 2334982144,2335113215,US -2335113216,2335129599,NL -2335129600,2335145983,ES -2335145984,2335154175,NL +2335113216,2335154175,ES 2335154176,2335178751,DE 2335178752,2335244287,CA 2335244288,2335309823,US @@ -57102,7 +57474,9 @@ 2335928320,2335932415,IN 2335932416,2335940607,DE 2335940608,2335948799,GB -2335948800,2335952895,SG +2335948800,2335951266,SG +2335951267,2335951267,GB +2335951268,2335952895,SG 2335952896,2335954943,DE 2335954944,2335965183,SG 2335965184,2336010239,US @@ -57175,8 +57549,7 @@ 2342518784,2342584319,FR 2342584320,2342649855,US 2342649856,2342666239,SG -2342666240,2342674431,JP -2342674432,2342682623,US +2342666240,2342682623,JP 2342682624,2342699007,DE 2342699008,2342715391,GB 2342715392,2342780927,AU @@ -57392,12 +57765,10 @@ 2372218880,2372222207,FR 2372222208,2372222975,CH 2372222976,2372223487,NL -2372223488,2372224255,FR -2372224256,2372224511,US +2372223488,2372224511,FR 2372224512,2372225023,GB 2372225024,2372225791,US -2372225792,2372226047,NL -2372226048,2372226303,JP +2372225792,2372226303,NL 2372226304,2372226559,SG 2372226560,2372227583,SE 2372227584,2372228607,KR @@ -57674,7 +58045,9 @@ 2388393984,2389245951,CA 2389245952,2389311487,US 2389311488,2389639167,CA -2389639168,2389704703,US +2389639168,2389671935,US +2389671936,2389688319,CN +2389688320,2389704703,US 2389704704,2390818815,CA 2390818816,2390884351,US 2390884352,2390995455,CA @@ -57959,10 +58332,13 @@ 2416085760,2416086015,GB 2416086016,2416086271,SG 2416086272,2416087039,GB -2416087040,2416095231,NL +2416087040,2416091135,NL +2416091136,2416093183,ES +2416093184,2416095231,NL 2416095232,2416111615,US 2416111616,2416113663,IE -2416113664,2416115711,NL +2416113664,2416114687,ES +2416114688,2416115711,NL 2416115712,2416181247,US 2416181248,2416246783,FI 2416246784,2416312319,US @@ -58127,8 +58503,8 @@ 2419081216,2419082239,CN 2419082240,2419083263,HK 2419083264,2419085311,IN -2419085312,2419086079,MM -2419086080,2419086335,HK +2419085312,2419085823,MM +2419085824,2419086335,HK 2419086336,2419087359,BD 2419087360,2419088383,CN 2419088384,2419089407,KR @@ -58137,7 +58513,9 @@ 2419090176,2419090431,JP 2419090432,2419091455,KR 2419091456,2419091711,US -2419091712,2419092479,SG +2419091712,2419091967,SG +2419091968,2419092223,US +2419092224,2419092479,SG 2419092480,2419094527,BD 2419094528,2419095551,AU 2419095552,2419096575,PK @@ -58282,7 +58660,9 @@ 2432630784,2432696319,CN 2432696320,2433247231,NL 2433247232,2433247487,GB -2433247488,2433810431,NL +2433247488,2433646591,NL +2433646592,2433679359,DE +2433679360,2433810431,NL 2433810432,2433875967,GB 2433875968,2435055615,NL 2435055616,2435121151,GB @@ -58336,7 +58716,7 @@ 2449039360,2449041407,RO 2449041408,2449042431,ES 2449042432,2449042687,GB -2449042944,2449043199,GB +2449042944,2449043199,RO 2449043200,2449043455,FR 2449043456,2449043967,MD 2449043968,2449044223,GB @@ -58545,7 +58925,7 @@ 2457341952,2457342975,UZ 2457342976,2457343999,RU 2457344000,2457346047,UA -2457346048,2457348095,CZ +2457346048,2457348095,BY 2457348096,2457362175,RU 2457362176,2457362431,UA 2457362432,2457364479,GB @@ -58554,9 +58934,7 @@ 2457366016,2457366527,RU 2457366528,2457367551,GB 2457367552,2457370623,CZ -2457370624,2457374719,BY -2457374720,2457375743,CZ -2457375744,2457376767,RU +2457370624,2457376767,BY 2457376768,2457378815,DE 2457378816,2457379839,NL 2457379840,2457380095,CZ @@ -58815,7 +59193,10 @@ 2465988608,2466054143,US 2466054144,2466185215,SE 2466185216,2466189311,GB -2466189312,2466191359,ES +2466189312,2466189567,ES +2466189568,2466191103,NL +2466191104,2466191167,ES +2466191168,2466191359,NL 2466191360,2466193407,CZ 2466193408,2466199551,NL 2466199552,2466201599,AT @@ -58892,8 +59273,9 @@ 2471219200,2471219423,IL 2471219424,2471219439,US 2471219440,2471219455,CA -2471219456,2471219679,FR +2471219456,2471219690,FR 2471219691,2471219691,GB +2471219692,2471219711,FR 2471219712,2471223295,IL 2471223296,2471231487,US 2471231488,2471297023,AU @@ -59384,7 +59766,9 @@ 2503518081,2503518082,US 2503518083,2503525055,CA 2503525056,2503525119,US -2503525120,2503540735,CA +2503525120,2503530911,CA +2503530912,2503530943,US +2503530944,2503540735,CA 2503540736,2503671807,US 2503671808,2503737343,NL 2503737344,2503868415,US @@ -59668,7 +60052,9 @@ 2513078432,2513078463,PT 2513078464,2513078671,FR 2513078672,2513078687,IE -2513078688,2513078911,FR +2513078688,2513078887,FR +2513078888,2513078891,GB +2513078892,2513078911,FR 2513078912,2513079039,GB 2513079040,2513079250,FR 2513079251,2513079254,ES @@ -59676,7 +60062,9 @@ 2513079328,2513079343,IE 2513079344,2513080031,FR 2513080032,2513080063,IT -2513080064,2513081327,FR +2513080064,2513080395,FR +2513080396,2513080399,GB +2513080400,2513081327,FR 2513081328,2513081343,ES 2513081344,2513081935,FR 2513081936,2513081939,DE @@ -59699,7 +60087,15 @@ 2513104820,2513104823,PL 2513104824,2513106239,FR 2513106240,2513106303,IE -2513106304,2513107455,FR +2513106304,2513107079,FR +2513107080,2513107083,FI +2513107084,2513107087,ES +2513107088,2513107231,FR +2513107232,2513107263,GB +2513107264,2513107279,ES +2513107280,2513107311,FR +2513107312,2513107327,PT +2513107328,2513107455,FR 2513107456,2513107583,GB 2513107584,2513108991,FR 2513108992,2513502207,DE @@ -60141,6 +60537,7 @@ 2546039040,2547187711,US 2547187712,2547318783,GB 2547318784,2547515391,US +2547515392,2547523583,EE 2547523584,2547524607,DE 2547524608,2547525631,IR 2547525632,2547535871,GB @@ -60156,11 +60553,17 @@ 2548829974,2548829974,DE 2548829975,2548830035,AT 2548830036,2548830036,DE -2548830037,2548830975,AT +2548830037,2548830949,AT +2548830950,2548830950,IT +2548830951,2548830975,AT 2548830976,2548831231,GB 2548831232,2548831297,AT 2548831298,2548831298,HK -2548831299,2548831501,AT +2548831299,2548831383,AT +2548831384,2548831384,HK +2548831385,2548831404,AT +2548831405,2548831405,HK +2548831406,2548831501,AT 2548831502,2548831502,FR 2548831503,2548831505,AT 2548831506,2548831506,FR @@ -60172,7 +60575,11 @@ 2548831964,2548831964,US 2548831965,2548832017,AT 2548832018,2548832018,ES -2548832019,2548832767,AT +2548832019,2548832049,AT +2548832050,2548832050,ES +2548832051,2548832628,AT +2548832629,2548832629,PL +2548832630,2548832767,AT 2548832768,2548833279,CH 2548833280,2548833535,AT 2548833536,2548833791,NL @@ -60249,7 +60656,9 @@ 2549882384,2549882399,FI 2549882400,2549882879,SE 2549882880,2549884927,CH -2549884928,2549891071,DE +2549884928,2549886207,DE +2549886208,2549886463,CH +2549886464,2549891071,DE 2549891072,2549899263,RU 2549899264,2549901311,PS 2549901312,2549903359,RU @@ -60265,7 +60674,9 @@ 2550136832,2550202367,DO 2550202368,2553544703,US 2553544704,2553610239,IN -2553610240,2554211327,US +2553610240,2553806847,US +2553806848,2554068991,SG +2554068992,2554211327,US 2554211328,2554211383,CN 2554211388,2554211583,CN 2554211584,2554227967,US @@ -60612,20 +61023,26 @@ 2584753280,2584753407,DE 2584753408,2584753663,US 2584753664,2584753727,AE -2584753728,2584753919,ZA +2584753728,2584753791,ZA +2584753792,2584753919,DE 2584753920,2584754175,US -2584754176,2584754431,ZA +2584754176,2584754303,ZA +2584754304,2584754431,DE 2584754432,2584754687,US -2584754688,2584754943,ZA +2584754688,2584754751,ZA +2584754752,2584754943,DE 2584754944,2584755199,US 2584755200,2584755263,AR 2584755264,2584755279,DE -2584755280,2584755455,ZA +2584755280,2584755327,ZA +2584755328,2584755455,DE 2584755456,2584755711,US 2584755712,2584755775,AR -2584755776,2584755967,ZA +2584755776,2584755839,ZA +2584755840,2584755967,DE 2584755968,2584756223,GB -2584756224,2584756479,ZA +2584756224,2584756351,ZA +2584756352,2584756479,DE 2584756480,2584756735,US 2584756736,2584756991,ZA 2584756992,2584757247,US @@ -60674,7 +61091,9 @@ 2584767232,2584767487,TR 2584767488,2584768511,US 2584768512,2584770559,IL -2584770560,2584775423,US +2584770560,2584773631,US +2584773632,2584773887,GB +2584773888,2584775423,US 2584775424,2584775679,KE 2584775680,2584779775,US 2584779776,2584780031,NL @@ -60779,8 +61198,8 @@ 2586953728,2586953983,MX 2586953984,2586954239,PE 2586954240,2586956287,US -2586956288,2586956799,FR -2586956800,2586968127,US +2586956288,2586957311,FR +2586957312,2586968127,US 2586968128,2586968319,FR 2586968320,2587017215,US 2587017216,2587017471,IE @@ -61086,6 +61505,7 @@ 2592038912,2592043007,DZ 2592043008,2592047103,ZA 2592047104,2592079871,AO +2592079872,2593128447,EG 2596274176,2596339711,SC 2596339712,2597322751,ZA 2597322752,2598371327,US @@ -61587,7 +62007,9 @@ 2626945024,2627010559,IT 2627010560,2627076095,NZ 2627076096,2627141631,NL -2627141632,2627469311,US +2627141632,2627354706,US +2627354707,2627354707,HK +2627354708,2627403775,US 2627469312,2627731455,TZ 2627731456,2631925759,EG 2631925760,2632450047,ZA @@ -61774,8 +62196,8 @@ 2640411392,2640411647,NL 2640411648,2640412671,US 2640412672,2640423935,NL -2640423936,2640427007,ES -2640427008,2640445439,NL +2640423936,2640429055,ES +2640429056,2640445439,NL 2640445440,2640510975,US 2640510976,2640576511,FR 2640576512,2640642047,EC @@ -62318,7 +62740,10 @@ 2673803264,2673868799,FR 2673868800,2674130943,US 2674130944,2674139135,DE -2674139136,2674163711,NL +2674139136,2674145791,NL +2674145792,2674146303,GB +2674146304,2674147327,TR +2674147328,2674163711,NL 2674163712,2674164175,GB 2674164176,2674164191,FR 2674164192,2674171903,GB @@ -62340,9 +62765,18 @@ 2674917376,2675048447,US 2675048448,2675113983,GB 2675113984,2675245055,US -2675245056,2675286015,NZ +2675245056,2675255295,NZ +2675255296,2675257343,PH +2675257344,2675261439,US +2675261440,2675269631,NZ +2675269632,2675271679,PH +2675271680,2675286015,NZ 2675286016,2675294207,US -2675294208,2675302399,NZ +2675294208,2675296255,NL +2675296256,2675296767,NZ +2675296768,2675298303,NL +2675298304,2675301375,US +2675301376,2675302399,NZ 2675302400,2675310591,HK 2675310592,2675574239,US 2675574240,2675574271,IT @@ -62376,7 +62810,8 @@ 2675609488,2675609503,CN 2675609504,2675610191,US 2675610192,2675610207,IL -2675610208,2675611295,US +2675610208,2675610215,IT +2675610216,2675611295,US 2675611296,2675611359,IT 2675611360,2675612487,US 2675612488,2675612495,IT @@ -62694,7 +63129,9 @@ 2685427712,2685452287,JP 2685452288,2685454335,CN 2685454336,2685460479,JP -2685460480,2685463039,CN +2685460480,2685462580,CN +2685462581,2685462581,JP +2685462582,2685463039,CN 2685463040,2685463295,JP 2685463296,2685468671,CN 2685468672,2685599743,JP @@ -62823,9 +63260,7 @@ 2697630720,2697632767,CN 2697632768,2697633791,IN 2697633792,2697634815,KR -2697634816,2697635072,US -2697635073,2697635327,NZ -2697635328,2697635583,US +2697634816,2697635583,US 2697635584,2697635839,NZ 2697635840,2697636863,CN 2697636864,2697638911,KR @@ -62910,8 +63345,8 @@ 2701459456,2701524991,AT 2701524992,2701656063,US 2701656064,2701688831,RU -2701688832,2701721343,US -2701721344,2701721599,RU +2701688832,2701721087,US +2701721088,2701721599,RU 2701721600,2701787135,TR 2701787136,2701852671,CO 2701852672,2701918207,US @@ -62954,7 +63389,9 @@ 2704277504,2704343039,FR 2704343040,2704408575,US 2704408576,2704474111,AU -2704474112,2704484351,US +2704474112,2704478207,US +2704478208,2704478463,SG +2704478464,2704484351,US 2704484352,2704485375,AU 2704485376,2704539647,US 2704539648,2704605183,SE @@ -63013,35 +63450,35 @@ 2708865024,2708930559,JP 2708930560,2709127167,US 2709127168,2709192703,KR -2709192704,2709225471,ZA +2709192704,2709225471,ZM 2709225472,2709225727,ES -2709225728,2709225983,ZA +2709225728,2709225983,ZM 2709225984,2709226239,ES -2709226240,2709242111,ZA +2709226240,2709242111,ZM 2709242112,2709242367,US -2709242368,2709242623,ZA +2709242368,2709242623,ZM 2709242624,2709242879,US -2709242880,2709243135,ZA +2709242880,2709243135,ZM 2709243136,2709243391,US -2709243392,2709243647,ZA +2709243392,2709243647,ZM 2709243648,2709243903,US -2709243904,2709244159,ZA +2709243904,2709244159,ZM 2709244160,2709244415,US -2709244416,2709244671,ZA +2709244416,2709244671,ZM 2709244672,2709244927,US -2709244928,2709245183,ZA +2709244928,2709245183,ZM 2709245184,2709245439,US -2709245440,2709245695,ZA +2709245440,2709245695,ZM 2709245696,2709245951,US -2709245952,2709246207,ZA +2709245952,2709246207,ZM 2709246208,2709246463,US -2709246464,2709247231,ZA +2709246464,2709247231,ZM 2709247232,2709247487,MY -2709247488,2709247743,ZA +2709247488,2709247743,ZM 2709247744,2709247999,US -2709248000,2709248255,ZA +2709248000,2709248255,ZM 2709248256,2709248511,US -2709248512,2709258239,ZA +2709248512,2709258239,ZM 2709258240,2709389311,US 2709389312,2709454847,SG 2709454848,2709716991,US @@ -63133,11 +63570,11 @@ 2714412656,2714412671,VN 2714412672,2714413343,US 2714413344,2714413359,PH -2714413360,2714416375,US -2714416376,2714416383,IN -2714416384,2714417215,US +2714413360,2714417215,US 2714417216,2714417247,JP -2714417248,2714419743,US +2714417248,2714419079,US +2714419080,2714419087,MU +2714419088,2714419743,US 2714419744,2714419775,SG 2714419776,2714419871,US 2714419872,2714419903,SG @@ -63828,7 +64265,9 @@ 2746351616,2746417151,CR 2746417152,2746482687,CN 2746482688,2746548223,KR -2746548224,2747072511,US +2746548224,2746662911,US +2746662912,2746679295,CA +2746679296,2747072511,US 2747072512,2747138047,AU 2747138048,2747465727,US 2747465728,2748055551,ZA @@ -63990,7 +64429,9 @@ 2760120840,2760120843,PT 2760120844,2760121663,FR 2760121664,2760121727,ES -2760121728,2760129999,FR +2760121728,2760121827,FR +2760121828,2760121831,ES +2760121832,2760129999,FR 2760130000,2760130015,ES 2760130016,2760130399,FR 2760130400,2760130431,ES @@ -64035,7 +64476,9 @@ 2760150263,2760150263,PL 2760150264,2760150871,FR 2760150872,2760150872,DE -2760150873,2760151208,FR +2760150873,2760151039,FR +2760151040,2760151055,GB +2760151056,2760151208,FR 2760151209,2760151209,CZ 2760151210,2760151335,FR 2760151336,2760151339,GB @@ -64066,7 +64509,9 @@ 2760162682,2760162682,PL 2760162683,2760163135,FR 2760163136,2760163199,ES -2760163200,2760167583,FR +2760163200,2760166682,FR +2760166683,2760166683,DE +2760166684,2760167583,FR 2760167584,2760167599,ES 2760167600,2760167647,FR 2760167648,2760167679,GB @@ -64207,6 +64652,7 @@ 2769158144,2769223679,JP 2769289216,2769321983,LY 2769321984,2769338367,ZA +2769338368,2769340415,TZ 2769340416,2769342463,ZA 2769342464,2769346559,BF 2769346560,2769354751,ZA @@ -64526,7 +64972,8 @@ 2807587328,2807587583,QA 2807587584,2807587839,IN 2807587840,2807588095,AE -2807588096,2807588351,ES +2807588096,2807588223,US +2807588224,2807588351,ES 2807588352,2807588863,CN 2807588864,2807589119,JP 2807589120,2807589375,RO @@ -65251,7 +65698,9 @@ 2838299440,2838299455,US 2838299456,2838299695,NL 2838299696,2838299775,US -2838299776,2838300671,NL +2838299776,2838300367,NL +2838300368,2838300383,US +2838300384,2838300671,NL 2838300672,2838300927,US 2838300928,2838301119,NL 2838301120,2838301183,US @@ -65267,7 +65716,9 @@ 2838304448,2838304511,US 2838304512,2838304703,NL 2838304704,2838304767,US -2838304768,2838307055,NL +2838304768,2838305119,NL +2838305120,2838305151,US +2838305152,2838307055,NL 2838307056,2838307063,US 2838307064,2838307135,NL 2838307136,2838307167,US @@ -65301,7 +65752,9 @@ 2838317902,2838317903,US 2838317904,2838318511,NL 2838318512,2838318527,US -2838318528,2838319135,NL +2838318528,2838318655,NL +2838318656,2838318687,US +2838318688,2838319135,NL 2838319136,2838319167,US 2838319168,2838320191,NL 2838320192,2838320192,US @@ -65357,7 +65810,9 @@ 2838334336,2838334351,US 2838334352,2838337279,NL 2838337280,2838337295,US -2838337296,2838337759,NL +2838337296,2838337375,NL +2838337376,2838337407,US +2838337408,2838337759,NL 2838337760,2838337761,IN 2838337762,2838337763,US 2838337764,2838338271,NL @@ -65389,7 +65844,9 @@ 2838341952,2838341967,US 2838341968,2838343071,NL 2838343072,2838343103,US -2838343104,2838344451,NL +2838343104,2838343711,NL +2838343712,2838343743,US +2838343744,2838344451,NL 2838344452,2838344455,US 2838344456,2838344457,NL 2838344458,2838344459,US @@ -65405,9 +65862,7 @@ 2838345744,2838345751,US 2838345752,2838346015,NL 2838346016,2838346047,US -2838346048,2838346239,NL -2838346240,2838346271,US -2838346272,2838346559,NL +2838346048,2838346559,NL 2838346560,2838346591,US 2838346592,2838346623,NL 2838346624,2838346655,US @@ -65507,7 +65962,9 @@ 2838405184,2838405215,US 2838405216,2838405767,NL 2838405768,2838405775,US -2838405776,2838406087,NL +2838405776,2838405855,NL +2838405856,2838405887,US +2838405888,2838406087,NL 2838406088,2838406095,US 2838406096,2838406271,NL 2838406272,2838406279,US @@ -65537,7 +65994,13 @@ 2838413312,2838415359,US 2838415360,2838415391,NL 2838415392,2838415423,US -2838415424,2838429983,NL +2838415424,2838415655,NL +2838415656,2838415663,US +2838415664,2838415839,NL +2838415840,2838415871,US +2838415872,2838416479,NL +2838416480,2838416511,US +2838416512,2838429983,NL 2838429984,2838430015,US 2838430016,2838431039,NL 2838431040,2838431135,US @@ -65579,7 +66042,19 @@ 2838441536,2838441567,US 2838441568,2838441695,NL 2838441696,2838441711,US -2838441712,2838560767,NL +2838441712,2838442767,NL +2838442768,2838442783,US +2838442784,2838443135,NL +2838443136,2838443167,US +2838443168,2838443295,NL +2838443296,2838443303,US +2838443304,2838443679,NL +2838443680,2838443711,US +2838443712,2838444095,NL +2838444096,2838444159,US +2838444160,2838444223,NL +2838444224,2838444255,US +2838444256,2838560767,NL 2838560768,2838626303,CH 2838626304,2838626399,US 2838626400,2838626431,SA @@ -65599,13 +66074,17 @@ 2838632096,2838632127,DE 2838632128,2838633295,US 2838633296,2838633311,SA -2838633312,2838643407,US +2838633312,2838642719,US +2838642720,2838642723,AE +2838642724,2838643407,US 2838643408,2838643408,GB 2838643409,2838643487,US 2838643488,2838643519,HK 2838643520,2838643696,US 2838643697,2838643697,GB -2838643698,2838645839,US +2838643698,2838644943,US +2838644944,2838644951,AE +2838644952,2838645839,US 2838645840,2838645855,GB 2838645856,2838646207,US 2838646208,2838646239,GB @@ -65613,17 +66092,15 @@ 2838646736,2838646751,CN 2838646752,2838646863,US 2838646864,2838646879,CN -2838646880,2838649167,US -2838649168,2838649183,GB -2838649184,2838649391,US -2838649392,2838649399,GB -2838649400,2838650527,US +2838646880,2838647103,US +2838647104,2838647111,AE +2838647112,2838650527,US 2838650528,2838650559,GB 2838650560,2838653631,US 2838653632,2838653639,GB -2838653640,2838655527,US -2838655528,2838655535,GB -2838655536,2838658607,US +2838653640,2838657295,US +2838657296,2838657299,AE +2838657300,2838658607,US 2838658608,2838658623,NL 2838658624,2838659007,US 2838659008,2838659023,GB @@ -65641,9 +66118,9 @@ 2838664728,2838664735,ZA 2838664736,2838665759,US 2838665760,2838665791,JP -2838665792,2838667103,US -2838667104,2838667135,NL -2838667136,2838708223,US +2838665792,2838669519,US +2838669520,2838669535,NL +2838669536,2838708223,US 2838708224,2838724607,NO 2838724608,2838757375,US 2838757376,2838822911,CH @@ -65695,7 +66172,9 @@ 2838931668,2838931671,CZ 2838931672,2838933919,US 2838933920,2838933951,NL -2838933952,2838938991,US +2838933952,2838937733,US +2838937734,2838937735,IN +2838937736,2838938991,US 2838938992,2838939007,AU 2838939008,2838946735,US 2838946736,2838946751,CA @@ -65764,8 +66243,7 @@ 2848212992,2848215039,GB 2848215040,2848244735,US 2848244736,2848245759,GB -2848245760,2848276479,US -2848325632,2848522239,US +2848245760,2848522239,US 2848587776,2848653311,ZA 2848653312,2848980991,US 2848980992,2850029567,KR @@ -65979,7 +66457,9 @@ 2857335808,2857336831,MX 2857336832,2857340927,BR 2857340928,2857341951,DO -2857341952,2857350143,BR +2857341952,2857348351,BR +2857348352,2857348607,US +2857348608,2857350143,BR 2857350144,2857351167,AR 2857351168,2857363455,BR 2857363456,2857364479,CL @@ -65992,31 +66472,84 @@ 2857374720,2857375743,GT 2857375744,2857376767,AR 2857376768,2857377791,MX -2857377792,2857387007,BR +2857377792,2857388031,BR 2857388032,2857389055,CL -2857389056,2857390079,BR +2857389056,2857392127,BR 2857392128,2857393151,CR 2857393152,2857394175,CL -2857394176,2857399295,BR +2857394176,2857395199,CO +2857395200,2857397247,BR +2857397248,2857398271,AR +2857398272,2857399295,BR 2857399296,2857400319,AR -2857400320,2857402367,BR -2857403392,2857404415,BR +2857400320,2857404415,BR 2857404416,2857405439,AR 2857405440,2857406463,HN -2857406464,2857411583,BR +2857406464,2857412607,BR 2857412608,2857414655,AR 2857414656,2857420799,BR 2857420800,2857421823,AR -2857421824,2857437183,BR +2857421824,2857427967,BR +2857427968,2857428991,AR +2857428992,2857431039,BR +2857431040,2857432063,MX +2857432064,2857433087,BR +2857433088,2857434111,HT +2857434112,2857437183,BR 2857437184,2857438207,DO -2857440256,2857441279,BR +2857438208,2857441279,BR 2857441280,2857442303,CO 2857443328,2857444351,CR -2857444352,2857445375,BR -2857446400,2857447423,BR +2857444352,2857448447,BR 2857448448,2857449471,HN -2857451520,2857459711,BR +2857449472,2857466879,BR 2857466880,2857467903,HN +2857467904,2857470719,BR +2857470720,2857470975,AR +2857470976,2857471999,MX +2857472000,2857473023,VE +2857473024,2857485311,BR +2857485312,2857486335,HN +2857486336,2857489407,BR +2857489408,2857490431,AR +2857490432,2857493503,BR +2857493504,2857494527,AR +2857494528,2857496575,BR +2857496576,2857497599,PE +2857497600,2857499647,BR +2857499648,2857500671,CO +2857500672,2857501695,HN +2857501696,2857506815,BR +2857506816,2857507839,DO +2857507840,2857509887,BR +2857509888,2857510911,HN +2857510912,2857511423,CO +2857511424,2857511679,BR +2857511936,2857525247,BR +2857525248,2857526271,PE +2857526272,2857529343,BR +2857529344,2857530367,EC +2857533440,2857534463,CL +2857534464,2857537535,BR +2857537536,2857538559,PY +2857538560,2857539583,BR +2857540608,2857541631,EC +2857544704,2857545727,BR +2857546752,2857547775,BR +2857548800,2857549823,CL +2857549824,2857553919,BR +2857553920,2857554943,TT +2857555968,2857556991,TT +2857556992,2857558015,BR +2857558016,2857559039,CL +2857561088,2857562111,BR +2857563904,2857564159,PA +2857564160,2857565183,BR +2857567232,2857568255,AR +2857568256,2857569279,CR +2857572352,2857574399,BR +2857574400,2857575423,AR +2857575424,2857576447,BR 2857631744,2857633791,BR 2857633792,2857634815,TT 2857634816,2857643007,BR @@ -66167,6 +66700,8 @@ 2867728384,2867729407,PY 2867729408,2867730431,AR 2867730432,2867731455,CL +2867731456,2867732479,BR +2867732480,2867733503,CL 2867733504,2867734527,BR 2867734528,2867735551,AR 2867735552,2867740671,BR @@ -66184,13 +66719,14 @@ 2867776512,2867777535,AR 2867777536,2867780607,BR 2867780608,2867781631,MX +2867781888,2867782143,BR 2867782144,2867782655,CO 2867782656,2867784703,BR 2867784704,2867785727,CO 2867785728,2867787775,AR 2867787776,2867788799,BR 2867788800,2867789823,MX -2867789824,2867791871,BR +2867789824,2867792895,BR 2867792896,2867793919,HT 2867793920,2867796991,BR 2867796992,2867799039,AR @@ -66205,7 +66741,7 @@ 2867812352,2867813375,AR 2867813376,2867815423,BR 2867815424,2867816447,PE -2867816448,2867819519,BR +2867816448,2867820543,BR 2867820544,2867821567,BO 2867821568,2867822591,BR 2867822592,2867823615,AR @@ -66221,8 +66757,7 @@ 2867837952,2867838975,CL 2867838976,2867842047,BR 2867842048,2867843071,EC -2867843072,2867848191,BR -2867849216,2867850239,BR +2867843072,2867850239,BR 2867850240,2867851263,SV 2867851264,2867852287,BR 2867852288,2867853311,AR @@ -66413,8 +66948,7 @@ 2868829184,2868831231,BR 2868831232,2868832255,CO 2868832256,2868833279,PE -2868833280,2868834303,UY -2868834304,2868838399,BR +2868833280,2868838399,BR 2868838400,2868903935,BE 2868903936,2869035007,SG 2869035008,2869166079,JP @@ -66508,17 +67042,7 @@ 2882469888,2882535423,SG 2882535424,2883583999,CN 2883584000,2885681151,VN -2885681152,2886667007,US -2886667008,2886667136,DE -2886667137,2886667137,US -2886667138,2886667195,DE -2886667196,2886667196,US -2886667197,2886667240,DE -2886667241,2886667241,US -2886667242,2886667257,DE -2886667258,2886667258,US -2886667259,2886667263,DE -2886667264,2886729727,US +2885681152,2886729727,US 2887778304,2890137599,US 2890137600,2890138623,AU 2890138624,2890139647,TH @@ -66537,7 +67061,9 @@ 2890164224,2890165247,TH 2890165248,2890167295,US 2890167296,2890168319,AU -2890168320,2890956799,US +2890168320,2890174463,US +2890174464,2890174719,SG +2890174720,2890956799,US 2890956800,2890989567,AE 2890989568,2891017215,US 2891017216,2891017471,JP @@ -66566,20 +67092,23 @@ 2891807488,2891807743,US 2891807744,2891808767,CA 2891808768,2891841535,US -2891841536,2891842303,SE +2891841536,2891841791,SE +2891841792,2891842303,US 2891842304,2891843327,GB -2891843328,2891843839,SE -2891843840,2891844095,GB -2891844096,2891845119,FR -2891845120,2891846399,DE -2891846400,2891846911,CH -2891846912,2891847679,NL -2891847680,2891847935,SG -2891847936,2891848447,MY +2891843328,2891844095,US +2891844096,2891844351,FR +2891844352,2891845119,US +2891845120,2891845631,DE +2891845632,2891845887,US +2891845888,2891846399,DE +2891846400,2891846655,CH +2891846656,2891846911,US +2891846912,2891847167,NL +2891847168,2891848447,US 2891848448,2891848959,JP -2891848960,2891849471,BN -2891849472,2891849983,PH -2891849984,2891850495,TH +2891848960,2891849215,BN +2891849216,2891850239,US +2891850240,2891850495,TH 2891850496,2891850751,SG 2891850752,2891853567,US 2891853568,2891853823,SG @@ -66593,7 +67122,8 @@ 2891858432,2891858687,CA 2891858688,2891862527,US 2891862528,2891863039,KR -2891863040,2891863551,AU +2891863040,2891863295,FR +2891863296,2891863551,AU 2891863552,2891864063,JP 2891864064,2891864575,SG 2891864576,2891865087,US @@ -66603,7 +67133,9 @@ 2891865856,2891866111,US 2891866112,2891867647,AU 2891867648,2891867903,US -2891867904,2891868927,AU +2891867904,2891868159,AU +2891868160,2891868671,IT +2891868672,2891868927,AU 2891868928,2891869439,US 2891869440,2891869695,AT 2891869696,2891869951,US @@ -66643,8 +67175,8 @@ 2892068864,2892069887,CA 2892069888,2892070911,US 2892070912,2892103679,CA -2892103680,2892120831,US -2892120832,2892121087,CA +2892103680,2892120575,US +2892120576,2892121087,CA 2892121088,2892122367,US 2892122368,2892122623,CA 2892122624,2892140543,US @@ -66671,9 +67203,14 @@ 2892399104,2892399231,TG 2892399232,2892399615,US 2892399616,2892399743,FJ -2892399744,2892401023,US +2892399744,2892399871,US +2892399872,2892399999,CW +2892400000,2892401023,US 2892401024,2892401151,ER -2892401152,2892401919,US +2892401152,2892401279,NR +2892401280,2892401407,US +2892401408,2892401535,MR +2892401536,2892401919,US 2892401920,2892402047,MF 2892402048,2892402175,US 2892402176,2892402303,MP @@ -66736,20 +67273,19 @@ 2892994816,2892995327,GB 2892995328,2892995839,AU 2892995840,2892996095,GB -2892996096,2892996351,KW -2892996352,2892996607,US +2892996096,2892996607,US 2892996608,2892996863,CA 2892996864,2892997119,AU 2892997120,2892997375,CA 2892997376,2892997631,BG 2892997632,2892997887,AU 2892997888,2892998143,JP -2892998144,2892998655,GB +2892998144,2892998399,US +2892998400,2892998655,GB 2892998656,2892998911,HK 2892998912,2892999167,MX 2892999168,2892999423,CR -2892999424,2892999551,TW -2892999552,2892999935,US +2892999424,2892999935,US 2892999936,2893000191,IT 2893000192,2893000447,JP 2893000448,2893000959,HK @@ -66776,9 +67312,10 @@ 2893007104,2893007359,US 2893007360,2893007615,IE 2893007616,2893007871,DE -2893007872,2893009151,US -2893009152,2893009407,AM -2893009408,2893009663,US +2893007872,2893008639,GB +2893008640,2893008895,US +2893008896,2893009151,GB +2893009152,2893009663,US 2893009664,2893010175,GB 2893010176,2893010431,US 2893010432,2893010687,DE @@ -66795,7 +67332,18 @@ 2893015296,2893015551,BS 2893015552,2893016575,US 2893016576,2893016831,SE -2893016832,2893676543,US +2893016832,2893017343,CA +2893017344,2893017599,SG +2893017600,2893017855,DE +2893017856,2893018111,FR +2893018112,2893018623,BE +2893018624,2893019135,SE +2893019136,2893019647,AU +2893019648,2893019903,DE +2893019904,2893020159,SG +2893020160,2893020415,NL +2893020416,2893020671,AT +2893020672,2893676543,US 2893676544,2893807615,JP 2893807616,2894921727,US 2894921728,2895118335,GB @@ -66833,7 +67381,15 @@ 2899968000,2900099071,CA 2900099072,2901740455,US 2901740456,2901740463,CA -2901740464,2902405119,US +2901740464,2902200319,US +2902200320,2902204415,CN +2902204416,2902208511,US +2902208512,2902212607,CN +2902212608,2902228991,US +2902228992,2902245375,CN +2902245376,2902246143,US +2902246144,2902246399,CN +2902246400,2902405119,US 2902405120,2902405935,CA 2902405936,2902405951,US 2902405952,2902408191,CA @@ -66907,8 +67463,8 @@ 2915520512,2915520642,AU 2915520643,2915520643,US 2915520644,2915520671,AU -2915520672,2915520703,US -2915520704,2915521023,AU +2915520672,2915520735,US +2915520736,2915521023,AU 2915521024,2915521279,JP 2915521280,2915521535,PL 2915521536,2915526911,US @@ -66932,8 +67488,8 @@ 2915528928,2915528943,NL 2915528944,2915528959,US 2915528960,2915529023,NL -2915529024,2915529183,US -2915529184,2915529215,NL +2915529024,2915529151,US +2915529152,2915529215,NL 2915529216,2915795013,US 2915795014,2915795014,MX 2915795015,2915894575,US @@ -67506,7 +68062,9 @@ 2954824288,2954824319,ES 2954824320,2954824415,FR 2954824416,2954824431,GB -2954824432,2954824639,FR +2954824432,2954824511,FR +2954824512,2954824527,FI +2954824528,2954824639,FR 2954824640,2954824655,GB 2954824656,2954824687,FR 2954824688,2954824703,FI @@ -67789,7 +68347,9 @@ 2954855528,2954855535,ES 2954855536,2954855663,FR 2954855664,2954855679,PT -2954855680,2954855879,FR +2954855680,2954855807,FR +2954855808,2954855871,DE +2954855872,2954855879,FR 2954855880,2954855887,ES 2954855888,2954856179,FR 2954856180,2954856183,ES @@ -67863,7 +68423,9 @@ 2954870844,2954870847,ES 2954870848,2954870903,FR 2954870904,2954870907,ES -2954870908,2954871807,FR +2954870908,2954871679,FR +2954871680,2954871695,FI +2954871696,2954871807,FR 2954871808,2954871823,ES 2954871824,2954871955,FR 2954871956,2954871959,PT @@ -67933,7 +68495,9 @@ 2954877968,2954877983,PT 2954877984,2954878143,FR 2954878144,2954878207,ES -2954878208,2954878607,FR +2954878208,2954878471,FR +2954878472,2954878475,GB +2954878476,2954878607,FR 2954878608,2954878623,FI 2954878624,2954878695,FR 2954878696,2954878703,IE @@ -68057,8 +68621,6 @@ 2956607488,2956611583,PS 2956611584,2956613631,IT 2956613632,2956614911,GB -2956614912,2956615167,NL -2956615168,2956615423,FR 2956615680,2956623871,GB 2956623872,2956656639,GR 2956656640,2956722175,RU @@ -68395,7 +68957,8 @@ 2960351232,2960353279,UA 2960353280,2960369663,RU 2960369664,2960371711,IT -2960371712,2960383999,RU +2960371712,2960375807,US +2960375808,2960383999,RU 2960384000,2960388095,RO 2960388096,2960392191,PL 2960392192,2960400383,RU @@ -68428,7 +68991,9 @@ 2960506880,2960523263,RU 2960523264,2960525311,LT 2960525312,2960527359,RU -2960527360,2960531455,LT +2960527360,2960529407,LT +2960529408,2960530431,RU +2960530432,2960531455,LT 2960533504,2960537599,UA 2960537600,2960539647,RO 2960539648,2960543743,RU @@ -68660,9 +69225,7 @@ 2967446784,2967447039,DE 2967447040,2967451647,RO 2967451648,2967452671,KZ -2967452672,2967453183,RO -2967453184,2967453439,NL -2967453440,2967453695,RO +2967452672,2967453695,RO 2967468032,2967470079,US 2967470080,2967601151,SA 2967601152,2967633919,HU @@ -68729,7 +69292,11 @@ 2984939520,2984951807,BR 2984951808,2984968191,EC 2984968192,2985033727,BR -2985033728,2985951231,MX +2985033728,2985639935,MX +2985639936,2985644031,US +2985644032,2985799679,MX +2985799680,2985803775,US +2985803776,2985951231,MX 2985951232,2986082303,PY 2986082304,2986344447,CO 2986344448,2987393023,DE @@ -68963,7 +69530,9 @@ 2988444116,2988444119,IT 2988444120,2988444208,FR 2988444209,2988444209,FI -2988444210,2988444671,FR +2988444210,2988444231,FR +2988444232,2988444239,FI +2988444240,2988444671,FR 2988444672,2988444679,ES 2988444680,2988444719,FR 2988444720,2988444735,ES @@ -69018,7 +69587,9 @@ 2988459536,2988459539,ES 2988459540,2988459599,FR 2988459600,2988459603,GB -2988459604,2988459647,FR +2988459604,2988459619,FR +2988459620,2988459623,GB +2988459624,2988459647,FR 2988459648,2988459679,GB 2988459680,2988459687,FR 2988459688,2988459691,PL @@ -69085,7 +69656,9 @@ 2988464624,2988464627,ES 2988464628,2988464787,FR 2988464788,2988464791,ES -2988464792,2988465215,FR +2988464792,2988465191,FR +2988465192,2988465195,PL +2988465196,2988465215,FR 2988465216,2988465219,ES 2988465220,2988465551,FR 2988465552,2988465563,ES @@ -69125,7 +69698,9 @@ 2988480064,2988480095,ES 2988480096,2988480207,FR 2988480208,2988480223,ES -2988480224,2988480927,FR +2988480224,2988480799,FR +2988480800,2988480803,GB +2988480804,2988480927,FR 2988480928,2988480959,ES 2988480960,2988481059,FR 2988481060,2988481063,FI @@ -69170,7 +69745,9 @@ 2988483376,2988483379,GB 2988483380,2988483595,FR 2988483596,2988483599,FI -2988483600,2988484047,FR +2988483600,2988483967,FR +2988483968,2988483983,GB +2988483984,2988484047,FR 2988484048,2988484051,ES 2988484052,2988484127,FR 2988484128,2988484131,PT @@ -69299,9 +69876,13 @@ 2988500520,2988500523,ES 2988500524,2988500855,FR 2988500856,2988500859,ES -2988500860,2988501683,FR +2988500860,2988500939,FR +2988500940,2988500943,ES +2988500944,2988501683,FR 2988501684,2988501687,GB -2988501688,2988502051,FR +2988501688,2988502031,FR +2988502032,2988502035,IE +2988502036,2988502051,FR 2988502052,2988502055,PL 2988502056,2988502263,FR 2988502264,2988502267,ES @@ -69402,7 +69983,9 @@ 2988510248,2988510251,FI 2988510252,2988510311,FR 2988510312,2988510319,GB -2988510320,2988511747,FR +2988510320,2988511023,FR +2988511024,2988511027,GB +2988511028,2988511747,FR 2988511748,2988511751,GB 2988511752,2988511955,FR 2988511956,2988511959,ES @@ -69505,7 +70088,9 @@ 2988527188,2988527191,ES 2988527192,2988527487,FR 2988527488,2988527503,GB -2988527504,2988527591,FR +2988527504,2988527547,FR +2988527548,2988527551,IE +2988527552,2988527591,FR 2988527592,2988527595,IE 2988527596,2988527723,FR 2988527724,2988527727,ES @@ -69547,7 +70132,9 @@ 2988530400,2988530403,ES 2988530404,2988530423,FR 2988530424,2988530431,ES -2988530432,2988531023,FR +2988530432,2988530703,FR +2988530704,2988530719,PT +2988530720,2988531023,FR 2988531024,2988531027,ES 2988531028,2988531179,FR 2988531180,2988531183,GB @@ -69597,7 +70184,9 @@ 2988542272,2988542335,ES 2988542336,2988542339,FR 2988542340,2988542340,PT -2988542341,2988543179,FR +2988542341,2988542519,FR +2988542520,2988542523,GB +2988542524,2988543179,FR 2988543180,2988543183,ES 2988543184,2988543199,FR 2988543200,2988543203,GB @@ -69791,7 +70380,9 @@ 2988557540,2988557543,ES 2988557544,2988557631,FR 2988557632,2988557635,GB -2988557636,2988558731,FR +2988557636,2988558203,FR +2988558204,2988558207,DE +2988558208,2988558731,FR 2988558732,2988558735,PT 2988558736,2988558803,FR 2988558804,2988558807,ES @@ -69829,7 +70420,9 @@ 2988561684,2988561687,ES 2988561688,2988561763,FR 2988561764,2988561767,IT -2988561768,2988562495,FR +2988561768,2988561939,FR +2988561940,2988561943,FI +2988561944,2988562495,FR 2988562496,2988562527,FI 2988562528,2988562595,FR 2988562596,2988562599,GB @@ -71183,7 +71776,8 @@ 3025603104,3025603215,HK 3025603216,3025603231,CN 3025603232,3025603247,HK -3025603248,3025603327,IN +3025603248,3025603251,CN +3025603252,3025603327,IN 3025603328,3025603335,GU 3025603336,3025603583,IN 3025603584,3025603839,SG @@ -71264,8 +71858,8 @@ 3025625916,3025625919,IN 3025625920,3025625927,KR 3025625928,3025625935,IN -3025625936,3025625983,SG -3025625984,3025626111,IN +3025625936,3025626015,SG +3025626016,3025626111,IN 3025626112,3025626623,SG 3025626624,3025629439,IN 3025629440,3025629567,HK @@ -71327,7 +71921,9 @@ 3025639840,3025639871,HK 3025639872,3025639887,CN 3025639888,3025639903,HK -3025639904,3025639967,IN +3025639904,3025639943,IN +3025639944,3025639951,JP +3025639952,3025639967,IN 3025639968,3025639999,SG 3025640000,3025640191,IN 3025640192,3025640447,JP @@ -72218,9 +72814,7 @@ 3056772096,3056773119,JP 3056773120,3056774143,WS 3056774144,3056775167,JP -3056775168,3056778751,NO -3056778752,3056779007,AU -3056779008,3056779263,NO +3056775168,3056779263,NO 3056779264,3056791551,JP 3056791552,3056795647,ID 3056795648,3056861183,CN @@ -72805,8 +73399,7 @@ 3104010240,3104011263,PL 3104011264,3104012287,ES 3104012288,3104012799,BH -3104012800,3104013055,SA -3104013056,3104013311,BH +3104012800,3104013311,SA 3104013312,3104014335,IR 3104014336,3104015359,FR 3104015360,3104016383,SE @@ -73279,7 +73872,9 @@ 3104497664,3104498687,CH 3104498688,3104499119,NL 3104499120,3104499127,IT -3104499128,3104500735,NL +3104499128,3104499503,NL +3104499504,3104499511,IT +3104499512,3104500735,NL 3104500736,3104501759,CZ 3104501760,3104502783,LY 3104502784,3104503807,DE @@ -73610,8 +74205,7 @@ 3104835584,3104836607,RU 3104836608,3104837631,BA 3104837632,3104838655,DK -3104838656,3104839423,NL -3104839424,3104839679,GB +3104838656,3104839679,NL 3104839680,3104840703,IQ 3104840704,3104841727,UA 3104841728,3104843775,PL @@ -73997,7 +74591,6 @@ 3105224704,3105225727,IT 3105225728,3105226751,AM 3105226752,3105227775,RO -3105227776,3105228799,NL 3105228800,3105229823,PL 3105229824,3105230847,NL 3105230848,3105231871,UA @@ -74361,6 +74954,7 @@ 3105588224,3105589247,GB 3105589248,3105590271,ES 3105590272,3105591295,NL +3105591296,3105592319,GB 3105592320,3105593343,RU 3105593344,3105595391,DE 3105595392,3105596415,RU @@ -74694,7 +75288,9 @@ 3105932288,3105933311,SE 3105933312,3105933351,GB 3105933352,3105933359,IT -3105933360,3105933863,GB +3105933360,3105933847,GB +3105933848,3105933855,IT +3105933856,3105933863,GB 3105933864,3105933871,IT 3105933872,3105934215,GB 3105934216,3105934223,IT @@ -75073,7 +75669,7 @@ 3106280448,3106281471,FR 3106281472,3106282495,DK 3106282496,3106283519,LB -3106284544,3106285567,GB +3106283520,3106285567,GB 3106285568,3106286591,DE 3106286592,3106287615,GB 3106287616,3106289663,DE @@ -75248,6 +75844,7 @@ 3106449408,3106450431,AT 3106450432,3106451455,DE 3106451456,3106452479,AZ +3106452480,3106453503,NL 3106453504,3106454527,SE 3106454528,3106455551,ME 3106455552,3106456575,PS @@ -75260,10 +75857,7 @@ 3106462720,3106463743,IT 3106463744,3106464767,IR 3106464768,3106465791,PL -3106465792,3106466047,FR 3106466048,3106466303,NL -3106466304,3106466559,DE -3106466560,3106466815,RO 3106466816,3106467839,EE 3106467840,3106468863,IR 3106468864,3106470911,DE @@ -75349,6 +75943,7 @@ 3106532352,3106533375,BE 3106533376,3106534399,NO 3106534400,3106535423,ES +3106535424,3106536447,UA 3106536448,3106537471,IT 3106537472,3106538495,GB 3106538496,3106539519,SK @@ -75884,8 +76479,7 @@ 3107079168,3107080191,TR 3107080192,3107082239,FR 3107082240,3107083263,RU -3107083264,3107083267,LU -3107083268,3107084287,BE +3107083264,3107084287,LU 3107084288,3107085311,FI 3107085312,3107086335,NL 3107086336,3107087359,EE @@ -76028,9 +76622,7 @@ 3107220480,3107221503,GB 3107221504,3107222527,IT 3107222528,3107223551,IQ -3107223552,3107224063,AT -3107224064,3107224319,DE -3107224320,3107224575,AT +3107223552,3107224575,AT 3107224576,3107225599,FR 3107225600,3107226623,AZ 3107226624,3107227647,RU @@ -76094,7 +76686,6 @@ 3107291136,3107292159,NL 3107292160,3107293183,PL 3107293184,3107294207,FR -3107294208,3107295231,DE 3107295232,3107296255,PL 3107296256,3107297279,IT 3107297280,3107298303,PL @@ -76641,6 +77232,7 @@ 3107842048,3107843071,FI 3107843072,3107844095,SE 3107844096,3107845119,CY +3107845120,3107846143,RU 3107847168,3107848191,RU 3107848192,3107849215,IT 3107849216,3107850239,BE @@ -76793,8 +77385,7 @@ 3108001792,3108002815,GB 3108002816,3108003839,RO 3108003840,3108004863,DE -3108004864,3108005375,RU -3108005376,3108005887,GB +3108004864,3108005887,GB 3108005888,3108006911,LT 3108006912,3108007935,NL 3108007936,3108008959,DE @@ -76924,6 +77515,7 @@ 3108136960,3108137215,NL 3108137216,3108137471,LU 3108137472,3108137983,NL +3108137984,3108139007,RO 3108139008,3108141055,GB 3108141056,3108142079,PL 3108142080,3108143103,TR @@ -77359,7 +77951,8 @@ 3108592640,3108593663,NL 3108593664,3108594687,ES 3108594688,3108597759,CZ -3108597760,3108598271,IR +3108597760,3108598015,NL +3108598016,3108598271,IR 3108598272,3108598527,GB 3108598528,3108598783,IR 3108598784,3108600831,CH @@ -77454,7 +78047,8 @@ 3108711424,3108712447,RU 3108712448,3108713471,BG 3108713472,3108714495,RO -3108714496,3108715519,RS +3108714496,3108714751,XK +3108714752,3108715519,RS 3108715520,3108716543,GB 3108716544,3108717567,RU 3108717568,3108718591,FR @@ -77506,7 +78100,10 @@ 3108764672,3108765695,NL 3108765696,3108766719,FR 3108766720,3108767743,PT -3108767744,3108768767,CZ +3108767744,3108767999,CZ +3108768000,3108768255,SE +3108768256,3108768511,NL +3108768512,3108768767,CZ 3108768768,3108769791,UA 3108769792,3108770815,NL 3108770816,3108772863,FR @@ -77680,7 +78277,7 @@ 3108938752,3108940799,GB 3108940800,3108941823,SE 3108941824,3108942847,DE -3108942848,3108943871,FR +3108942848,3108943871,BE 3108943872,3108944895,DE 3108944896,3108945919,CH 3108945920,3108946943,GB @@ -77821,9 +78418,7 @@ 3109082112,3109083135,PL 3109083136,3109084159,SE 3109084160,3109085183,NL -3109085184,3109085439,AL -3109085440,3109085695,BG -3109085696,3109086207,AL +3109085184,3109086207,AL 3109086208,3109087231,RU 3109087232,3109088255,NL 3109088256,3109089279,LV @@ -77953,7 +78548,8 @@ 3109187584,3109188607,IT 3109188608,3109189631,SA 3109189632,3109190655,AT -3109190656,3109191679,NL +3109190656,3109190911,SE +3109190912,3109191679,NL 3109191680,3109192703,CH 3109192704,3109193727,IT 3109193728,3109194751,IR @@ -78036,7 +78632,8 @@ 3109280768,3109281791,IL 3109281792,3109282815,HU 3109282816,3109283839,DE -3109283840,3109284863,IE +3109283840,3109284095,PL +3109284096,3109284863,IE 3109284864,3109285887,FR 3109285888,3109286911,RU 3109286912,3109287935,TR @@ -78145,6 +78742,7 @@ 3109393408,3109394431,SI 3109394432,3109395455,AL 3109395456,3109396479,SE +3109396480,3109397503,RU 3109397504,3109398527,CZ 3109398528,3109399551,CH 3109399552,3109400575,BE @@ -78242,7 +78840,9 @@ 3109492736,3109493759,TR 3109493760,3109494783,IT 3109494784,3109495807,GB -3109495808,3109498879,AD +3109495808,3109497335,AD +3109497336,3109497336,ES +3109497337,3109498879,AD 3109498880,3109499903,RU 3109499904,3109500927,NO 3109500928,3109502975,GB @@ -78266,7 +78866,6 @@ 3109521408,3109522431,PL 3109522432,3109523455,CZ 3109523456,3109524479,PL -3109524480,3109525503,GB 3109525504,3109527551,NL 3109527552,3109528575,IL 3109528576,3109529599,SE @@ -78375,7 +78974,6 @@ 3109639168,3109640191,LB 3109640192,3109641215,IQ 3109641216,3109642239,NO -3109642240,3109643263,US 3109643264,3109643391,DE 3109643520,3109643775,RU 3109643776,3109644031,UA @@ -78410,10 +79008,10 @@ 3109673216,3109673439,NL 3109673451,3109673451,NO 3109673456,3109673471,NL -3109673472,3109673695,SG +3109673472,3109673695,GB 3109673704,3109673704,IN -3109673728,3109673951,HK -3109673968,3109673983,HK +3109673728,3109673951,AU +3109673968,3109673983,AU 3109673984,3109675007,FR 3109675008,3109677055,DE 3109677056,3109678079,BE @@ -79226,7 +79824,7 @@ 3110458368,3110459391,IT 3110459392,3110459903,IL 3110459904,3110460159,US -3110460160,3110460415,IL +3110460160,3110460415,IT 3110460416,3110461439,CZ 3110461440,3110462463,GB 3110462464,3110463487,IR @@ -79256,6 +79854,7 @@ 3110489088,3110490111,CZ 3110490112,3110491135,FR 3110491136,3110492159,GB +3110492160,3110493183,RO 3110493184,3110494207,DE 3110494208,3110495231,CZ 3110495232,3110496255,SE @@ -79283,7 +79882,9 @@ 3110518784,3110521855,GB 3110521856,3110523903,ES 3110523904,3110524927,SE -3110524928,3110525951,US +3110524928,3110525439,US +3110525440,3110525695,NL +3110525696,3110525951,DE 3110525952,3110526975,GB 3110526976,3110527999,DE 3110528000,3110529023,AT @@ -79421,14 +80022,14 @@ 3110663168,3110664191,LB 3110664192,3110665215,RU 3110665216,3110666239,LB -3110666240,3110667263,DK 3110667264,3110668287,RO 3110668288,3110669311,PL 3110669312,3110671359,ES 3110671360,3110672383,AT 3110672384,3110673407,ES 3110673408,3110674431,FR -3110674432,3110676479,RO +3110674432,3110675455,GB +3110675456,3110676479,RO 3110676480,3110677503,DE 3110677504,3110679551,RU 3110679552,3110680575,BE @@ -79462,6 +80063,7 @@ 3110709248,3110710271,RU 3110710272,3110711295,CY 3110711296,3110712319,IL +3110712320,3110713343,DK 3110713344,3110714367,IR 3110714368,3110715391,RO 3110715392,3110716415,NL @@ -79523,6 +80125,7 @@ 3110771712,3110772735,KZ 3110772736,3110773759,AT 3110773760,3110774783,DE +3110774784,3110775807,PL 3110775808,3110776831,RU 3110776832,3110777855,GB 3110777856,3110778879,SE @@ -79607,7 +80210,6 @@ 3110872064,3110873087,MD 3110873088,3110874111,IE 3110874112,3110875135,GB -3110875136,3110876159,PL 3110876160,3110878207,GB 3110878208,3110879231,CZ 3110879232,3110880255,LV @@ -79785,12 +80387,13 @@ 3111072768,3111074815,FR 3111074816,3111075839,DE 3111075840,3111076863,IR +3111076864,3111077887,DE 3111077888,3111078911,NL 3111078912,3111079935,IT 3111079936,3111080959,NL 3111080960,3111081983,RU 3111081984,3111083007,HU -3111083008,3111084031,UA +3111083008,3111084031,GB 3111084032,3111085055,CZ 3111085056,3111086079,RU 3111086080,3111087103,KZ @@ -80001,7 +80604,7 @@ 3111290880,3111291903,UA 3111291904,3111292927,NL 3111292928,3111293951,SI -3111293952,3111294975,GB +3111293952,3111294975,CY 3111294976,3111295999,US 3111296000,3111297023,NL 3111297024,3111298047,IE @@ -80215,6 +80818,7 @@ 3111507968,3111508991,IT 3111508992,3111510015,FI 3111510016,3111511039,LB +3111511040,3111512063,GR 3111512064,3111513087,RU 3111513088,3111514111,GB 3111514112,3111515135,UA @@ -80342,7 +80946,7 @@ 3111648768,3111649023,NL 3111649024,3111650559,GB 3111650560,3111650815,NL -3111650816,3111651071,SE +3111650816,3111651071,TR 3111651072,3111651327,GB 3111651328,3111652351,RO 3111652352,3111652863,GB @@ -80520,7 +81124,7 @@ 3111829504,3111830527,NL 3111830528,3111831551,NO 3111831552,3111832575,TR -3111832576,3111835647,GB +3111832576,3111836671,GB 3111836672,3111837695,RO 3111837696,3111838719,IT 3111838720,3111839743,AL @@ -80647,6 +81251,7 @@ 3111980032,3111981055,IL 3111981056,3111982079,RU 3111982080,3111983103,IR +3111983104,3111984127,UA 3111984128,3111985151,FI 3111985152,3111986175,TR 3111986176,3111987199,RU @@ -80790,7 +81395,7 @@ 3112097792,3112098815,TR 3112098816,3112099839,CH 3112099840,3112100863,GB -3112100864,3112102911,FR +3112100864,3112101887,FR 3112102912,3112103935,GB 3112103936,3112104959,DE 3112104960,3112105983,FR @@ -80960,7 +81565,6 @@ 3112276992,3112278015,LV 3112278016,3112279039,FI 3112279040,3112280063,NO -3112280064,3112281087,GB 3112281088,3112282111,FR 3112282112,3112283135,IR 3112283136,3112284159,AT @@ -81080,7 +81684,7 @@ 3112414208,3112415231,RU 3112415232,3112416255,AE 3112416256,3112417279,RU -3112417280,3112418303,ES +3112417280,3112419327,ES 3112419328,3112420351,FR 3112420352,3112421375,DE 3112421376,3112423423,GB @@ -81279,8 +81883,7 @@ 3112635264,3112635391,DE 3112635392,3112636415,BE 3112636416,3112637439,AT -3112637440,3112637951,CZ -3112637952,3112638463,SK +3112637440,3112638463,CZ 3112638464,3112639487,DE 3112639488,3112640511,IR 3112640512,3112641535,DE @@ -81579,9 +82182,7 @@ 3112946688,3112947711,DE 3112947712,3112948735,AT 3112948736,3112949759,RU -3112949760,3112950271,CZ -3112950272,3112950527,SK -3112950528,3112950783,CZ +3112949760,3112950783,CZ 3112950784,3112951807,JO 3112951808,3112952831,SK 3112952832,3112953855,IL @@ -81666,8 +82267,8 @@ 3113028608,3113029631,AE 3113029632,3113030655,ES 3113030656,3113031679,CH -3113031680,3113032191,RO -3113032192,3113032703,NL +3113031680,3113032447,RO +3113032448,3113032703,NL 3113032704,3113033727,SE 3113033728,3113034751,TR 3113034752,3113035775,IR @@ -81751,7 +82352,7 @@ 3113111552,3113112575,NO 3113112576,3113113599,GB 3113113600,3113114623,IT -3113114624,3113116671,IR +3113114624,3113115647,IR 3113116672,3113117695,NL 3113117696,3113118719,KW 3113118720,3113120767,DE @@ -82120,7 +82721,9 @@ 3113468928,3113469951,TR 3113469952,3113470975,ME 3113470976,3113471999,FR -3113472000,3113474047,GB +3113472000,3113473023,GB +3113473024,3113473279,FR +3113473280,3113474047,GB 3113474048,3113475071,DE 3113475072,3113479167,FR 3113479168,3113480191,SE @@ -82467,7 +83070,8 @@ 3113759744,3113760767,FR 3113760768,3113761791,BE 3113761792,3113762815,ES -3113762816,3113763839,SK +3113762816,3113763327,SK +3113763328,3113763839,US 3113763840,3113764863,VA 3113764864,3113765887,IE 3113766912,3113767935,RU @@ -82483,7 +83087,8 @@ 3113777152,3113778175,PL 3113778176,3113779199,TR 3113779200,3113780223,GB -3113780224,3113781247,RU +3113780224,3113780479,KZ +3113780480,3113781247,RU 3113781248,3113782271,BY 3113782272,3113783295,IT 3113783296,3113784319,TR @@ -82730,8 +83335,7 @@ 3114038272,3114039295,GB 3114039296,3114040319,CZ 3114040320,3114041343,DE -3114041344,3114041855,HU -3114041856,3114042367,SK +3114041344,3114042367,SK 3114042368,3114043391,IT 3114043392,3114045439,GB 3114045440,3114046463,AT @@ -82801,8 +83405,7 @@ 3114112000,3114113023,GB 3114113024,3114114047,ES 3114114048,3114115071,DE -3114115072,3114115839,SE -3114115840,3114116095,CA +3114115072,3114116095,SE 3114116096,3114117119,PL 3114117120,3114118143,SE 3114118144,3114119167,PL @@ -82874,7 +83477,8 @@ 3114173440,3114173679,DE 3114173680,3114173695,GB 3114173696,3114174463,DE -3114174464,3114175487,NL +3114174464,3114175231,NL +3114175232,3114175487,HU 3114175488,3114176511,IT 3114176512,3114177535,NL 3114177536,3114177775,DE @@ -82994,9 +83598,7 @@ 3114285056,3114286079,NL 3114286080,3114288127,UA 3114288128,3114289151,IS -3114289152,3114290175,BG -3114290176,3114291199,MD -3114291200,3114292223,BG +3114289152,3114292223,BG 3114292224,3114293247,DE 3114293248,3114294271,UA 3114294272,3114295295,RO @@ -83092,7 +83694,8 @@ 3114382336,3114383359,RU 3114383360,3114384383,ES 3114384384,3114385407,GB -3114385408,3114386431,IT +3114385408,3114386175,IT +3114386176,3114386431,DE 3114386432,3114387455,NL 3114387456,3114388479,US 3114388480,3114389503,HU @@ -83108,8 +83711,7 @@ 3114398720,3114399743,AT 3114399744,3114400767,GB 3114400768,3114401023,SK -3114401024,3114401279,CZ -3114401280,3114401791,SK +3114401024,3114401791,CZ 3114401792,3114402815,HU 3114402816,3114403839,CZ 3114403840,3114404863,NL @@ -83180,7 +83782,9 @@ 3114458112,3114459135,RO 3114459136,3114460159,GB 3114460160,3114461183,DK -3114461184,3114462207,NL +3114461184,3114461695,NL +3114461696,3114461951,RU +3114461952,3114462207,NL 3114462208,3114463231,GR 3114463232,3114464255,US 3114464256,3114465279,BE @@ -83321,8 +83925,7 @@ 3114600448,3114603519,DE 3114603520,3114604543,TR 3114604544,3114605567,BG -3114605568,3114606335,IR -3114606336,3114606591,GB +3114605568,3114606591,IR 3114606592,3114607615,FR 3114607616,3114608639,SK 3114608640,3114609663,IR @@ -83441,7 +84044,8 @@ 3114724352,3114725119,NL 3114725120,3114725375,US 3114725376,3114726399,RU -3114726400,3114727423,SE +3114726400,3114726407,NO +3114726408,3114727423,SE 3114727424,3114728447,BE 3114728448,3114729471,GB 3114729472,3114730495,RO @@ -83494,7 +84098,7 @@ 3114781696,3114782719,NL 3114782720,3114783743,CZ 3114783744,3114784767,PL -3114784768,3114785791,EE +3114784768,3114785791,RU 3114785792,3114786815,FR 3114786816,3114787839,RU 3114787840,3114788863,GB @@ -83761,7 +84365,9 @@ 3115067392,3115068415,DE 3115068416,3115069439,HU 3115069440,3115070463,NL -3115070464,3115072511,DE +3115070464,3115071487,DE +3115071488,3115071743,NL +3115071744,3115072511,DE 3115072512,3115073535,ES 3115073536,3115074559,DE 3115074560,3115075583,IR @@ -83788,7 +84394,8 @@ 3115095040,3115096063,DE 3115096064,3115097087,FR 3115097088,3115098111,LT -3115098112,3115100159,NL +3115098112,3115099647,NL +3115099648,3115100159,US 3115100160,3115101183,ES 3115101184,3115102207,GB 3115102208,3115103231,ES @@ -83910,7 +84517,8 @@ 3115225088,3115226111,UA 3115226112,3115227135,DE 3115227136,3115228159,PL -3115228160,3115229183,IL +3115228160,3115228671,AT +3115228672,3115229183,IL 3115229184,3115230207,EE 3115230208,3115231231,RU 3115231232,3115232255,CZ @@ -83978,7 +84586,7 @@ 3115292672,3115293695,GB 3115293696,3115294719,RU 3115294720,3115295743,GB -3115295744,3115296767,NL +3115295744,3115296767,PE 3115296768,3115297791,IE 3115297792,3115298815,RU 3115298816,3115299839,FI @@ -83989,7 +84597,8 @@ 3115303936,3115305983,NL 3115305984,3115306495,TR 3115306496,3115307007,BE -3115307008,3115308031,DE +3115307008,3115307519,DE +3115307520,3115308031,CA 3115308032,3115309055,IT 3115309056,3115310079,BE 3115310080,3115311103,CZ @@ -84064,10 +84673,7 @@ 3115385856,3115387903,SK 3115387904,3115388927,MK 3115388928,3115389951,AT -3115389952,3115390463,GB -3115390464,3115390719,RO -3115390720,3115390975,NL -3115390976,3115391999,GB +3115389952,3115391999,GB 3115392000,3115393023,AL 3115393024,3115395071,IT 3115395072,3115396095,ES @@ -84079,7 +84685,9 @@ 3115401216,3115402239,GB 3115402240,3115403263,NL 3115403264,3115404287,ES -3115404288,3115406335,GB +3115404288,3115405567,GB +3115405568,3115405823,DE +3115405824,3115406335,GB 3115406336,3115407359,DE 3115407360,3115408383,CY 3115408384,3115409407,MD @@ -84230,7 +84838,9 @@ 3115563008,3115564031,ES 3115564032,3115565055,RU 3115565056,3115566079,FR -3115566080,3115567103,RU +3115566080,3115566335,RU +3115566336,3115566591,CY +3115566592,3115567103,RU 3115567104,3115569151,NL 3115569152,3115570175,GB 3115570176,3115571199,UA @@ -84240,9 +84850,7 @@ 3115574272,3115575295,GB 3115575296,3115576319,ES 3115576320,3115577343,FI -3115577344,3115577567,IL -3115577568,3115577583,US -3115577584,3115577855,IL +3115577344,3115577855,IL 3115577856,3115578367,NL 3115578368,3115579391,GB 3115579392,3115580415,US @@ -84250,13 +84858,17 @@ 3115581440,3115582463,CZ 3115582464,3115583487,GB 3115583488,3115584511,NL -3115584512,3115585535,CZ +3115584512,3115584767,AT +3115584768,3115585023,US +3115585024,3115585535,CZ 3115585536,3115586559,RU 3115586560,3115587583,CH 3115587584,3115588607,DE 3115588608,3115589631,TR 3115589632,3115590655,GB -3115590656,3115591423,GR +3115590656,3115591167,GR +3115591168,3115591183,DE +3115591184,3115591423,GR 3115591424,3115591679,NL 3115591680,3115592703,CH 3115592704,3115593727,BE @@ -84269,6 +84881,236 @@ 3115599872,3115600895,HU 3115600896,3115601919,BE 3115601920,3115602943,JO +3115602944,3115603967,AE +3115603968,3115604991,HU +3115604992,3115606015,FR +3115606016,3115607039,NL +3115607040,3115608063,MD +3115608064,3115609087,NL +3115609088,3115610111,RU +3115610112,3115611135,PL +3115611136,3115612159,GB +3115612160,3115613183,IT +3115613184,3115614207,LT +3115614208,3115615231,IR +3115615232,3115616255,FR +3115616256,3115618303,SK +3115618304,3115619327,ES +3115619328,3115621375,NL +3115621376,3115622399,GB +3115622400,3115623423,RU +3115623424,3115624447,DE +3115624448,3115624703,GB +3115624704,3115625471,IM +3115625472,3115626495,NL +3115626496,3115627519,RU +3115627520,3115628543,IT +3115628544,3115629567,GB +3115629568,3115630591,RU +3115630592,3115631615,GB +3115631616,3115632639,NL +3115632640,3115633663,RU +3115633664,3115635711,PL +3115635712,3115636735,RU +3115636736,3115637759,GB +3115637760,3115638783,US +3115638784,3115639807,DE +3115639808,3115640831,RU +3115640832,3115641855,NO +3115641856,3115642879,RU +3115642880,3115643903,IE +3115643904,3115644927,FR +3115644928,3115645951,RU +3115645952,3115647999,SE +3115648000,3115649023,FR +3115649024,3115650047,NL +3115650048,3115651071,DE +3115651072,3115652095,UA +3115652096,3115653119,DK +3115653120,3115654143,DE +3115654144,3115655167,GR +3115655168,3115656191,ES +3115656192,3115657215,UA +3115657216,3115658239,MD +3115658240,3115659263,SE +3115659264,3115660287,MD +3115660288,3115661311,IQ +3115661312,3115662335,CZ +3115662336,3115663359,NO +3115663360,3115664383,SA +3115664384,3115665407,RS +3115665408,3115666431,NL +3115666432,3115667455,FR +3115667456,3115668479,NO +3115668480,3115669503,NL +3115669504,3115670527,SE +3115670528,3115671551,IT +3115671552,3115672575,SE +3115672576,3115673599,RO +3115673600,3115674623,DE +3115674624,3115675647,SY +3115675648,3115676671,DE +3115676672,3115677695,GB +3115677696,3115678719,DE +3115678720,3115679743,GB +3115679744,3115681791,NL +3115681792,3115682815,IT +3115682816,3115683839,NL +3115683840,3115684863,GB +3115684864,3115685887,BG +3115685888,3115687935,FR +3115687936,3115689983,UA +3115689984,3115691007,DE +3115691008,3115692031,IE +3115692032,3115693055,CZ +3115693056,3115694079,IR +3115694080,3115695103,CZ +3115695104,3115697151,DE +3115697152,3115698175,GB +3115698176,3115699199,RS +3115699200,3115700223,CH +3115700224,3115701247,TR +3115701248,3115702271,NL +3115702272,3115703295,SE +3115703296,3115704319,GR +3115704320,3115705343,DE +3115705344,3115706367,MD +3115706368,3115707391,NL +3115707392,3115708415,ES +3115708416,3115709439,RO +3115709440,3115710463,RU +3115710464,3115711487,GE +3115711488,3115714559,BG +3115714560,3115715583,GB +3115715584,3115717631,RU +3115717632,3115718655,UA +3115718656,3115719679,CH +3115719680,3115720703,GB +3115720704,3115722751,DE +3115722752,3115723775,FR +3115723776,3115724799,DE +3115724800,3115725311,GB +3115725312,3115725567,DE +3115725568,3115725823,CH +3115725824,3115726847,GB +3115726848,3115727871,NL +3115727872,3115728127,GB +3115728128,3115728383,US +3115728384,3115728639,GB +3115728640,3115728895,NL +3115728896,3115729919,FR +3115729920,3115730943,GB +3115730944,3115731967,IE +3115731968,3115732991,MD +3115732992,3115734015,DE +3115734016,3115735039,SE +3115735040,3115736063,GB +3115736064,3115737087,LV +3115737088,3115738111,PL +3115738112,3115739135,UA +3115739136,3115740159,NL +3115740160,3115741183,RU +3115741184,3115742207,LB +3115742208,3115743231,IT +3115743232,3115744255,AM +3115744256,3115745279,GB +3115745280,3115746303,RU +3115746304,3115747327,BE +3115747328,3115748351,JO +3115748352,3115749375,IT +3115749376,3115750399,GB +3115750400,3115751423,GE +3115751424,3115752447,ES +3115752448,3115753471,GB +3115753472,3115754495,RS +3115754496,3115755519,RU +3115755520,3115756543,FR +3115756544,3115757567,IT +3115757568,3115758591,AT +3115758592,3115759615,ES +3115759616,3115760639,DE +3115760640,3115761663,TR +3115761664,3115762687,MD +3115762688,3115763711,IT +3115763712,3115764735,GB +3115764736,3115765759,DK +3115765760,3115766783,IT +3115766784,3115767807,HU +3115767808,3115768831,KZ +3115768832,3115769855,IR +3115769856,3115770879,PL +3115770880,3115771903,GB +3115771904,3115772927,DE +3115772928,3115773951,TR +3115773952,3115774975,GB +3115776000,3115777023,IR +3115777024,3115779071,FR +3115779072,3115780095,IT +3115780096,3115781119,CZ +3115781120,3115782143,RU +3115782144,3115783167,ES +3115783168,3115784191,GB +3115784192,3115785215,DE +3115785216,3115786239,NL +3115786240,3115787263,MD +3115787264,3115788287,PL +3115788288,3115789311,DK +3115789312,3115790335,UA +3115790336,3115791359,RU +3115791360,3115792383,DE +3115792384,3115793407,SE +3115793408,3115795455,FR +3115795456,3115796479,IT +3115796480,3115797503,CZ +3115797504,3115798527,RU +3115798528,3115799551,MD +3115799552,3115801599,DE +3115801600,3115802623,LB +3115802624,3115802879,NL +3115802880,3115803135,RO +3115803136,3115803647,NL +3115803648,3115804671,GB +3115804672,3115804927,CH +3115804928,3115805183,IT +3115805184,3115805247,ES +3115805248,3115805695,GB +3115805696,3115806719,UA +3115806720,3115807743,NL +3115807744,3115808767,BE +3115808768,3115809791,BY +3115809792,3115810815,DE +3115810816,3115811839,IR +3115811840,3115812863,IL +3115812864,3115813887,MD +3115813888,3115814911,FR +3115814912,3115815935,SE +3115815936,3115816959,RS +3115816960,3115817983,SE +3115817984,3115819007,DE +3115819008,3115820031,RU +3115820032,3115822079,TR +3115822080,3115823103,RU +3115823104,3115825151,DE +3115825152,3115826175,GR +3115826176,3115828223,CH +3115828224,3115829247,RU +3115829248,3115830271,NL +3115830272,3115831295,DE +3115831296,3115832319,FR +3115832320,3115833343,GB +3115833344,3115834367,FR +3115834368,3115835391,ES +3115835392,3115836415,PL +3115836416,3115837439,FR +3115837440,3115838463,SK +3115838464,3115839487,PL +3115839488,3115840511,UZ +3115840512,3115841535,IE +3115841536,3115842559,MK +3115842560,3115843583,FR +3115843584,3115844607,ES +3115844608,3115845631,FR +3115845632,3115846655,PL 3117416448,3117417471,FR 3120562176,3120594943,CO 3120594944,3120599039,AR @@ -84535,11 +85377,33 @@ 3136986112,3140614143,BR 3140614144,3140616191,CR 3140616192,3145727999,BR -3145728000,3149135871,MX +3145728000,3147731455,MX +3147731456,3147731711,US +3147731712,3147734527,MX +3147734528,3147734783,US +3147734784,3147735039,MX +3147735040,3147735807,US +3147735808,3147739135,MX +3147739136,3147740159,US +3147740160,3147745279,MX +3147745280,3147746303,US +3147746304,3147747839,MX +3147747840,3147748351,US +3147748352,3147750399,MX +3147750400,3147751423,US +3147751424,3147751935,MX +3147751936,3147752447,US +3147752448,3147753471,MX +3147753472,3147753727,US +3147753728,3147756543,MX +3147756544,3147757055,US +3147757056,3149135871,MX 3149135872,3149398015,BR 3149398016,3149881343,MX 3149881344,3149889535,BR -3149889536,3154051071,MX +3149889536,3151514623,MX +3151514624,3151515647,US +3151515648,3154051071,MX 3154051072,3154116607,BR 3154116608,3154124799,RU 3154124800,3154126847,PL @@ -84586,9 +85450,12 @@ 3156803584,3156869119,TR 3156869120,3156901887,LU 3156901888,3156906239,NL -3156906240,3156910079,LU +3156906240,3156907007,LU +3156907008,3156908031,RU +3156908032,3156910079,LU 3156910080,3156912127,NL -3156912128,3156916223,LU +3156912128,3156914175,LU +3156914176,3156916223,RU 3156916224,3156917247,GB 3156917248,3156920319,LU 3156920320,3156921343,SG @@ -84939,9 +85806,7 @@ 3161948160,3161964543,RO 3161964544,3161980927,ES 3161980928,3161989119,SK -3161989120,3161989375,NL -3161989376,3161989631,TR -3161989632,3161990143,NL +3161989120,3161990143,NL 3161990144,3161991167,TR 3161991168,3161993215,NL 3161993216,3161997311,RU @@ -84992,7 +85857,8 @@ 3162324992,3162327039,IE 3162327040,3162329087,CH 3162329088,3162331135,IE -3162331136,3162332927,GB +3162331136,3162332671,GB +3162332672,3162332927,NL 3162332928,3162333183,DE 3162333184,3162341375,IT 3162341376,3162349567,PL @@ -85022,8 +85888,7 @@ 3162570752,3162603519,HR 3162603520,3162636287,GE 3162636288,3162669055,FR -3162669056,3162673151,EE -3162673152,3162676223,RU +3162669056,3162676223,RU 3162676224,3162677247,KZ 3162677248,3162679039,RU 3162679040,3162679295,KZ @@ -85034,8 +85899,8 @@ 3162682368,3162682879,MD 3162682880,3162683135,GB 3162683136,3162683391,ES -3162683392,3162693631,EE -3162693632,3162701567,RU +3162683392,3162685439,EE +3162685440,3162701567,RU 3162701568,3162701823,UZ 3162701824,3162734591,MD 3162734592,3162767359,RU @@ -85171,7 +86036,9 @@ 3164953024,3164953087,IE 3164953088,3164953583,FR 3164953584,3164953599,ES -3164953600,3164954507,FR +3164953600,3164954471,FR +3164954472,3164954479,IE +3164954480,3164954507,FR 3164954508,3164954511,ES 3164954512,3164958895,FR 3164958896,3164958911,PT @@ -85271,9 +86138,7 @@ 3164974336,3164974437,GB 3164974438,3164974438,IT 3164974439,3164974463,GB -3164974464,3164974527,FR -3164974528,3164974559,ES -3164974560,3164975199,FR +3164974464,3164975199,FR 3164975200,3164975215,ES 3164975216,3164975311,FR 3164975312,3164975327,ES @@ -85283,16 +86148,21 @@ 3164976144,3164976159,BE 3164976160,3164976231,FR 3164976232,3164976239,ES -3164976240,3164976815,FR -3164976816,3164976831,ES -3164976832,3164978079,FR +3164976240,3164977223,FR +3164977224,3164977231,PT +3164977232,3164977255,FR +3164977256,3164977263,PT +3164977264,3164977271,FI +3164977272,3164978079,FR 3164978080,3164978111,PT 3164978112,3164978623,FR 3164978624,3164978655,ES 3164978656,3164979151,FR 3164979152,3164979155,ES 3164979156,3164995583,FR -3164995584,3165032447,NL +3164995584,3165030399,NL +3165030400,3165031423,GB +3165031424,3165032447,NL 3165032448,3165036543,GB 3165036544,3165038591,DE 3165038592,3165040639,GB @@ -85816,11 +86686,31 @@ 3170828288,3170861055,RU 3170861056,3170893823,RS 3170893824,3179282431,BR -3179282432,3184116735,MX +3179282432,3182062591,MX +3182062592,3182063615,US +3182063616,3182215167,MX +3182215168,3182215423,US +3182215424,3182481407,MX +3182481408,3182482431,US +3182482432,3182482943,MX +3182482944,3182483455,US +3182483456,3182484479,MX +3182484480,3182485503,US +3182485504,3183853567,MX +3183853568,3183861759,US +3183861760,3183863807,MX +3183863808,3183864831,US +3183864832,3183865343,MX +3183865344,3183867903,US +3183867904,3184116735,MX 3184116736,3184123903,BR 3184123904,3184125951,MX 3184125952,3184127999,BR -3184128000,3187671039,MX +3184128000,3187414015,MX +3187414016,3187414527,US +3187414528,3187417087,MX +3187417088,3187421183,US +3187421184,3187671039,MX 3187671040,3187687423,CO 3187687424,3187695615,DO 3187695616,3187703807,AR @@ -87069,7 +87959,9 @@ 3210795008,3210796031,IL 3210796032,3210798847,US 3210798848,3210799103,ES -3210799104,3210802943,US +3210799104,3210802431,US +3210802432,3210802687,ES +3210802688,3210802943,US 3210802944,3210803039,CL 3210803040,3210803055,AU 3210803056,3210803071,CL @@ -87218,9 +88110,13 @@ 3211092992,3211093007,SK 3211093008,3211093503,DE 3211093504,3211093519,HR -3211093520,3211094015,DE +3211093520,3211093791,DE +3211093792,3211093807,IN +3211093808,3211094015,DE 3211094016,3211094031,CZ -3211094032,3211094143,DE +3211094032,3211094079,DE +3211094080,3211094095,GB +3211094096,3211094143,DE 3211094144,3211094271,US 3211094272,3211094527,DE 3211094528,3211094543,HR @@ -87627,7 +88523,9 @@ 3222868992,3222872319,US 3222872320,3222872575,CA 3222872576,3222874623,US -3222874880,3222876159,US +3222874880,3222875647,US +3222875648,3222875903,SG +3222875904,3222876159,US 3222876416,3222890751,US 3222890752,3222891007,CA 3222891008,3222936575,US @@ -87878,8 +88776,7 @@ 3223634944,3223635455,GB 3223635456,3223637247,SE 3223637248,3223637503,GB -3223637504,3223638015,SE -3223638016,3223638271,NL +3223637504,3223638271,SE 3223638272,3223638527,GB 3223638528,3223640831,SE 3223640832,3223641087,GB @@ -89132,8 +90029,8 @@ 3227545088,3227547647,ZA 3227547648,3227551743,MU 3227551744,3227552255,MF -3227552256,3227552767,ZA -3227552768,3227553791,MU +3227552256,3227552511,ZA +3227552512,3227553791,MU 3227553792,3227554047,ZA 3227554304,3227554559,ZA 3227554560,3227554815,MU @@ -89162,37 +90059,12 @@ 3227581696,3227582207,ZA 3227582208,3227638271,US 3227638272,3227638527,CA -3227638528,3227648255,US -3227648256,3227649023,FI -3227649024,3227649791,US -3227649792,3227650559,FI -3227650560,3227650815,US -3227650816,3227651071,FI -3227651072,3227653375,US -3227653376,3227654143,FI -3227654144,3227655935,US -3227655936,3227656703,FI -3227656704,3227656959,US -3227656960,3227657215,FI -3227657216,3227657471,US -3227657472,3227657983,FI -3227657984,3227658495,US -3227658496,3227659263,FI -3227659264,3227659775,US +3227638528,3227647999,US +3227648000,3227659775,FI 3227659776,3227660031,JP -3227660032,3227660287,FI -3227660288,3227660543,US +3227660032,3227660543,FI 3227660544,3227660799,EE -3227660800,3227661823,US -3227661824,3227662335,FI -3227662336,3227663615,US -3227663616,3227664127,FI -3227664128,3227664383,US -3227664384,3227672575,FI -3227672576,3227673087,US -3227673088,3227674111,FI -3227674112,3227674623,US -3227674624,3227678719,FI +3227660800,3227678719,FI 3227678720,3227680767,LU 3227680768,3227713535,FI 3227713536,3227720131,CA @@ -89366,7 +90238,9 @@ 3227775696,3227775707,BZ 3227775708,3227775731,CA 3227775732,3227775743,BZ -3227775744,3227775935,CA +3227775744,3227775856,CA +3227775857,3227775857,ES +3227775858,3227775935,CA 3227775936,3227775939,US 3227775940,3227775959,CA 3227775960,3227775963,US @@ -89534,8 +90408,7 @@ 3227931136,3227931391,US 3227931392,3227931647,AU 3227931648,3227931903,PE -3227931904,3227932159,US -3227932672,3227932927,US +3227931904,3227932927,US 3227932928,3227933183,DE 3227933184,3227933695,US 3227933696,3227933951,NZ @@ -90057,7 +90930,7 @@ 3229885440,3229886719,US 3229886720,3229886975,AU 3229886976,3229889791,US -3229889792,3229890047,PT +3229889792,3229890047,NL 3229890048,3229890303,US 3229890304,3229890559,PT 3229890560,3229891583,US @@ -91277,8 +92150,7 @@ 3233457408,3233457631,RO 3233457632,3233457647,US 3233457648,3233457663,RO -3233457664,3233458687,US -3233458688,3233458943,HU +3233457664,3233458943,US 3233458944,3233458959,BG 3233458960,3233458975,US 3233458976,3233459007,BG @@ -91761,7 +92633,8 @@ 3234822656,3234826751,US 3234826752,3234827007,CA 3234827008,3234827519,US -3234827520,3234828031,NL +3234827520,3234827775,GB +3234827776,3234828031,LU 3234828032,3234828287,NZ 3234828288,3234828799,US 3234828800,3234829055,CL @@ -92157,9 +93030,7 @@ 3237050112,3237050159,GB 3237050160,3237050175,US 3237050176,3237050303,GB -3237050304,3237051135,US -3237051136,3237051391,CA -3237051392,3237051903,US +3237050304,3237051903,US 3237051904,3237052159,TR 3237052160,3237052287,CA 3237052288,3237125295,US @@ -92208,7 +93079,7 @@ 3237328640,3237328895,CA 3237328896,3237329151,US 3237329152,3237329407,NZ -3237329664,3237330943,US +3237329408,3237330943,US 3237330944,3237331199,AU 3237331200,3237331967,US 3237331968,3237332223,AU @@ -92581,7 +93452,7 @@ 3237867776,3237868031,GB 3237868032,3237868159,HK 3237868160,3237868287,AU -3237868288,3237868543,DK +3237868288,3237868543,US 3237868544,3237868799,GB 3237868800,3237869311,US 3237869312,3237869439,KR @@ -94432,7 +95303,8 @@ 3244142592,3244143615,DE 3244143616,3244144639,FR 3244144640,3244146687,UA -3244146688,3244147711,RU +3244146688,3244146943,GB +3244146944,3244147711,RU 3244147712,3244149247,GB 3244149248,3244149503,US 3244149504,3244149759,GB @@ -94732,7 +95604,6 @@ 3244898048,3244898303,DE 3244898304,3244898559,IR 3244898560,3244898815,GI -3244898816,3244899071,RO 3244899072,3244899327,RU 3244899328,3244899583,BG 3244899584,3244899839,GB @@ -95450,9 +96321,7 @@ 3246825984,3246826239,US 3246826240,3246828066,CH 3246828068,3246915583,CH -3246915584,3246979608,PT -3246979609,3246979609,US -3246979610,3246979783,PT +3246915584,3246979783,PT 3246979784,3246979784,US 3246979785,3247046655,PT 3247046656,3247046911,AT @@ -95804,7 +96673,9 @@ 3248557056,3248558079,UA 3248558080,3248560127,NO 3248560896,3248561151,IN -3248561664,3248575487,NO +3248561664,3248562080,NO +3248562081,3248562081,DK +3248562082,3248575487,NO 3248575488,3248576511,CZ 3248576512,3248599039,NO 3248599040,3248603135,SE @@ -96362,7 +97233,7 @@ 3250413568,3250414079,UA 3250414080,3250414591,RO 3250414592,3250415103,SE -3250415104,3250415359,NL +3250415104,3250415359,GB 3250415360,3250415615,PL 3250415616,3250416127,FR 3250416128,3250417663,DE @@ -96579,7 +97450,7 @@ 3251156736,3251156991,UA 3251156992,3251157247,FR 3251157248,3251157503,BE -3251157504,3251158015,PL +3251157760,3251158015,PL 3251158016,3251158271,TR 3251158272,3251158527,RU 3251158528,3251158783,UA @@ -96854,8 +97725,8 @@ 3252196352,3252197119,LT 3252197120,3252197375,SE 3252197376,3252207615,HR -3252207616,3252219903,LT -3252219904,3252221183,SE +3252207616,3252220927,LT +3252220928,3252221183,SE 3252221184,3252222463,LT 3252222464,3252223487,SE 3252223488,3252223999,LT @@ -96864,8 +97735,7 @@ 3252232577,3252256767,SE 3252256768,3252273151,EE 3252273152,3252286463,HR -3252286464,3252287487,SE -3252287488,3252289535,LT +3252286464,3252289535,LT 3252289536,3252289791,BG 3252289792,3252291583,GR 3252291584,3252292607,DE @@ -97271,8 +98141,7 @@ 3253624832,3253625855,UA 3253625856,3253626879,IT 3253626880,3253627903,DE -3253627904,3253628671,RU -3253628672,3253628927,UA +3253627904,3253628927,UA 3253628928,3253629951,GR 3253629952,3253630975,UA 3253632000,3253633023,DE @@ -97625,15 +98494,43 @@ 3254266368,3254266623,RE 3254266624,3254277119,FR 3254277120,3254278143,YT -3254278144,3254488431,FR +3254278144,3254485879,FR +3254485880,3254485887,CI +3254485888,3254486527,FR +3254486528,3254486543,CH +3254486544,3254487039,FR +3254487040,3254487199,KM +3254487200,3254487263,FR +3254487264,3254487295,KM +3254487296,3254487419,CF +3254487420,3254487559,FR +3254487560,3254487803,CI +3254487804,3254488431,FR 3254488432,3254488447,MG -3254488448,3254489407,FR +3254488448,3254489087,FR +3254489088,3254489343,DZ +3254489344,3254489365,FR +3254489366,3254489367,MR +3254489368,3254489369,FR +3254489370,3254489370,MR +3254489371,3254489373,FR +3254489374,3254489375,MR +3254489376,3254489407,FR 3254489408,3254489439,MR -3254489440,3254489447,FR -3254489448,3254489455,MR -3254489456,3254489487,FR -3254489488,3254489503,MR -3254489504,3254491903,FR +3254489440,3254489443,FR +3254489444,3254489455,MR +3254489456,3254489463,FR +3254489464,3254489519,MR +3254489520,3254489535,FR +3254489536,3254489567,MR +3254489568,3254489599,FR +3254489600,3254489855,MR +3254489856,3254490111,TD +3254490112,3254490367,FR +3254490368,3254490623,CF +3254490624,3254491135,FR +3254491136,3254491391,DZ +3254491392,3254491903,FR 3254491904,3254492031,CM 3254492032,3254493183,FR 3254493184,3254493253,GP @@ -98091,7 +98988,7 @@ 3255374848,3255375359,CY 3255375360,3255375871,RO 3255375872,3255376383,PL -3255376384,3255376895,UA +3255376384,3255376895,RU 3255376896,3255377407,GB 3255377408,3255377919,KZ 3255377920,3255378431,GB @@ -98791,7 +99688,6 @@ 3258081280,3258081535,NL 3258081536,3258081791,BE 3258081792,3258082047,UA -3258082048,3258082303,NL 3258082304,3258082559,CZ 3258082560,3258082815,HU 3258082816,3258083071,NL @@ -99275,8 +100171,8 @@ 3260553984,3260554239,GB 3260554240,3260555263,CH 3260555264,3260563455,HU -3260563456,3260571647,GB -3260571648,3260575743,BE +3260563456,3260573695,GB +3260573696,3260575743,BE 3260575744,3260579839,GB 3260579840,3260580351,PL 3260580352,3260580863,HU @@ -100543,8 +101439,7 @@ 3262478857,3262478857,LI 3262478858,3262478862,DE 3262478863,3262478863,AT -3262478864,3262478864,NL -3262478865,3262478865,DE +3262478864,3262478865,DE 3262478866,3262478866,CH 3262478867,3262478867,GB 3262478868,3262478868,IT @@ -100596,8 +101491,8 @@ 3262478956,3262478956,DE 3262478957,3262478957,PT 3262478958,3262478958,SE -3262478959,3262478959,DE -3262478960,3262478961,NL +3262478959,3262478960,DE +3262478961,3262478961,NL 3262478962,3262478966,DE 3262478967,3262478967,NL 3262478968,3262478968,ES @@ -100622,7 +101517,7 @@ 3262478994,3262478997,DE 3262478998,3262478998,GB 3262478999,3262478999,AT -3262479000,3262479000,CH +3262479000,3262479000,DE 3262479001,3262479001,AT 3262479002,3262479002,DE 3262479003,3262479003,FR @@ -102104,8 +102999,8 @@ 3265607936,3265608191,CZ 3265608448,3265608703,SE 3265608704,3265608959,GB -3265608960,3265609215,RU -3265609216,3265609727,UA +3265608960,3265609471,RU +3265609472,3265609727,UA 3265609728,3265617919,NL 3265617920,3265626111,SI 3265626112,3265634303,JO @@ -102335,7 +103230,9 @@ 3267100672,3267166207,FI 3267166208,3267231743,GB 3267231744,3267297279,RU -3267297280,3267362815,CH +3267297280,3267357132,CH +3267357133,3267357133,US +3267357134,3267362815,CH 3267362816,3267368480,DK 3267368482,3267428351,DK 3267428352,3267493887,GB @@ -102799,7 +103696,7 @@ 3270973952,3270974463,FR 3270974464,3270974975,IT 3270974976,3270975487,NL -3270975488,3270975999,RU +3270975744,3270975999,RU 3270976000,3270976255,FR 3270976256,3270976511,UA 3270976512,3270976767,HU @@ -103005,7 +103902,7 @@ 3271744512,3271745023,AT 3271745024,3271745535,PL 3271745536,3271746047,GB -3271746048,3271746559,RU +3271746048,3271746559,RO 3271746560,3271747071,US 3271747072,3271747583,KZ 3271747584,3271748095,RU @@ -103044,7 +103941,8 @@ 3271812096,3271813119,ES 3271813120,3271814143,PL 3271814144,3271815167,UA -3271815168,3271817215,RU +3271815168,3271816191,RU +3271816192,3271817215,UA 3271817216,3271818239,DE 3271818240,3271819263,RU 3271819264,3271884799,DE @@ -103332,7 +104230,6 @@ 3272421888,3272422143,RU 3272422144,3272422399,GB 3272422400,3272422911,CH -3272422912,3272423423,SE 3272423424,3272423935,BE 3272423936,3272424447,FR 3272424448,3272424703,GB @@ -104798,7 +105695,9 @@ 3276014464,3276014479,FR 3276014480,3276014951,GB 3276014952,3276014959,ES -3276014960,3276018383,GB +3276014960,3276015055,GB +3276015056,3276015063,FR +3276015064,3276018383,GB 3276018384,3276018399,FR 3276018400,3276019711,GB 3276019712,3276020735,FR @@ -104917,7 +105816,9 @@ 3276234368,3276275711,DE 3276275712,3276283903,SK 3276283904,3276292095,GB -3276292096,3276300287,BE +3276292096,3276292479,BE +3276292480,3276292607,CH +3276292608,3276300287,BE 3276300288,3276304383,DE 3276304384,3276304639,BG 3276304640,3276305407,GB @@ -105442,9 +106343,7 @@ 3276889088,3276889215,IT 3276889216,3276890175,GB 3276890176,3276890191,US -3276890192,3276892159,GB -3276892160,3276893183,IT -3276893184,3276893695,GB +3276890192,3276893695,GB 3276893696,3276893951,IT 3276893952,3276897727,GB 3276897728,3276897791,BE @@ -105504,7 +106403,9 @@ 3276926208,3276931071,GB 3276931072,3276939263,KZ 3276939264,3276955647,DE -3276955648,3276963839,GB +3276955648,3276958719,GB +3276958720,3276959743,IL +3276959744,3276963839,GB 3276963840,3276964351,IL 3276964352,3276964863,RO 3276965376,3276966399,RU @@ -105512,7 +106413,7 @@ 3276966912,3276968959,RU 3276968960,3276969471,RO 3276969472,3276969983,UA -3276969984,3276970495,NL +3276969984,3276970495,DE 3276970496,3276971519,RU 3276971520,3276972031,DE 3276972032,3276980223,PL @@ -105526,7 +106427,7 @@ 3277160448,3277176831,NL 3277176832,3277177087,SI 3277177088,3277177343,GB -3277177600,3277178111,PL +3277177856,3277178111,PL 3277178368,3277178623,UA 3277178624,3277178879,PL 3277178880,3277179135,ES @@ -106627,12 +107528,11 @@ 3278942729,3278942730,BE 3278942731,3278942731,DE 3278942732,3278942732,ES -3278942733,3278942733,LU +3278942733,3278942733,DE 3278942734,3278942734,GB 3278942735,3278942735,DE 3278942736,3278942736,IT -3278942737,3278942737,GB -3278942738,3278942739,DE +3278942737,3278942739,DE 3278942740,3278942740,NL 3278942741,3278942741,GB 3278942742,3278942742,DE @@ -106655,9 +107555,7 @@ 3278942767,3278942767,FR 3278942768,3278942768,NO 3278942769,3278942769,GB -3278942770,3278942771,DE -3278942772,3278942772,BE -3278942773,3278942773,DE +3278942770,3278942773,DE 3278942774,3278942774,CH 3278942775,3278942775,FR 3278942776,3278942776,DE @@ -106666,8 +107564,7 @@ 3278942780,3278942784,DE 3278942785,3278942785,GR 3278942786,3278942786,SI -3278942787,3278942787,IT -3278942788,3278942789,DE +3278942787,3278942789,DE 3278942790,3278942790,ES 3278942791,3278942791,IT 3278942792,3278942792,US @@ -106693,8 +107590,7 @@ 3278942818,3278942818,DK 3278942819,3278942819,DE 3278942820,3278942820,IT -3278942821,3278942821,NL -3278942822,3278942824,DE +3278942821,3278942824,DE 3278942825,3278942825,NL 3278942826,3278942826,RU 3278942827,3278942827,FR @@ -106715,9 +107611,7 @@ 3278942852,3278942852,DE 3278942853,3278942853,ES 3278942854,3278942854,GB -3278942855,3278942855,DE -3278942856,3278942856,NO -3278942857,3278942857,DE +3278942855,3278942857,DE 3278942858,3278942858,IT 3278942859,3278942860,DE 3278942861,3278942861,FR @@ -106725,16 +107619,14 @@ 3278942864,3278942864,ES 3278942865,3278942865,GB 3278942866,3278942867,NL -3278942868,3278942868,DE -3278942869,3278942869,IT +3278942868,3278942869,DE 3278942870,3278942870,CH 3278942871,3278942871,IS -3278942872,3278942872,ES +3278942872,3278942872,DE 3278942873,3278942873,IT 3278942874,3278942875,DE 3278942876,3278942876,PL -3278942877,3278942877,DE -3278942878,3278942878,NL +3278942877,3278942878,DE 3278942879,3278942879,DK 3278942880,3278942881,DE 3278942882,3278942882,CH @@ -106755,9 +107647,7 @@ 3278942911,3278942911,IT 3278942912,3278942913,DE 3278942914,3278942914,CH -3278942915,3278942915,DE -3278942916,3278942916,CH -3278942917,3278942922,DE +3278942915,3278942922,DE 3278942923,3278942923,NL 3278942924,3278942924,DE 3278942925,3278942925,GB @@ -107195,8 +108085,7 @@ 3278943558,3278943558,AT 3278943559,3278943560,DE 3278943561,3278943561,FR -3278943562,3278943564,DE -3278943565,3278943565,GB +3278943562,3278943565,DE 3278943566,3278943566,BE 3278943567,3278943567,AE 3278943568,3278943568,NL @@ -107216,9 +108105,7 @@ 3278943584,3278943585,DE 3278943586,3278943586,NL 3278943587,3278943587,ES -3278943588,3278943588,DE -3278943589,3278943589,IT -3278943590,3278943590,DE +3278943588,3278943590,DE 3278943591,3278943591,NL 3278943592,3278943592,DE 3278943593,3278943593,PL @@ -107400,9 +108287,7 @@ 3278943832,3278943832,BE 3278943833,3278943833,DE 3278943834,3278943835,GB -3278943836,3278943836,DE -3278943837,3278943837,ES -3278943838,3278943838,DE +3278943836,3278943838,DE 3278943839,3278943839,IT 3278943840,3278943845,DE 3278943846,3278943846,GB @@ -107428,8 +108313,7 @@ 3278943872,3278943873,DE 3278943874,3278943874,CH 3278943875,3278943875,IL -3278943876,3278943881,DE -3278943882,3278943882,PL +3278943876,3278943882,DE 3278943883,3278943883,CH 3278943884,3278943884,DE 3278943885,3278943885,IT @@ -107464,8 +108348,7 @@ 3278943921,3278943923,DE 3278943924,3278943924,IT 3278943925,3278943926,ES -3278943927,3278943928,DE -3278943929,3278943929,PT +3278943927,3278943929,DE 3278943930,3278943930,IT 3278943931,3278943932,DE 3278943933,3278943933,ES @@ -107523,8 +108406,8 @@ 3278944016,3278944020,DE 3278944021,3278944021,IT 3278944022,3278944022,FR -3278944023,3278944023,AT -3278944024,3278944025,CH +3278944023,3278944024,DE +3278944025,3278944025,CH 3278944026,3278944026,DE 3278944027,3278944027,FR 3278944028,3278944028,DE @@ -107571,7 +108454,7 @@ 3278944081,3278944081,GB 3278944082,3278944082,IT 3278944083,3278944084,ES -3278944085,3278944085,PT +3278944085,3278944085,DE 3278944086,3278944086,NL 3278944087,3278944087,DE 3278944088,3278944088,IT @@ -107581,8 +108464,7 @@ 3278944092,3278944092,GR 3278944093,3278944094,DE 3278944095,3278944095,AT -3278944096,3278944096,GB -3278944097,3278944097,DE +3278944096,3278944097,DE 3278944098,3278944098,SE 3278944099,3278944099,GB 3278944100,3278944102,DE @@ -107618,8 +108500,7 @@ 3278944140,3278944140,PT 3278944141,3278944141,FR 3278944142,3278944142,GB -3278944143,3278944143,AT -3278944144,3278944144,DE +3278944143,3278944144,DE 3278944145,3278944145,SE 3278944146,3278944147,DE 3278944148,3278944148,ES @@ -107644,7 +108525,7 @@ 3278944178,3278944179,DE 3278944180,3278944180,GB 3278944181,3278944181,IT -3278944182,3278944182,FR +3278944182,3278944182,DE 3278944183,3278944184,ES 3278944185,3278944185,NL 3278944186,3278944192,DE @@ -107672,8 +108553,7 @@ 3278944218,3278944219,DE 3278944220,3278944220,GB 3278944221,3278944221,GR -3278944222,3278944222,IT -3278944223,3278944224,DE +3278944222,3278944224,DE 3278944225,3278944225,NL 3278944226,3278944226,RU 3278944227,3278944227,IT @@ -107693,7 +108573,7 @@ 3278944246,3278944246,NL 3278944247,3278944247,ES 3278944248,3278944248,NL -3278944249,3278944249,ES +3278944249,3278944249,DE 3278944250,3278944250,IT 3278944251,3278944251,AT 3278944252,3278944252,IT @@ -108808,7 +109688,8 @@ 3282501632,3282534399,GR 3282534400,3282538495,GB 3282538496,3282542591,PL -3282542592,3282550783,GB +3282542592,3282546687,US +3282546688,3282550783,GB 3282550784,3282554879,FR 3282554880,3282558975,DE 3282558976,3282563071,FR @@ -109825,8 +110706,7 @@ 3286658048,3286658303,DE 3286658304,3286658559,RU 3286658560,3286658815,NL -3286658816,3286659071,RU -3286659072,3286659327,UA +3286658816,3286659327,RU 3286659328,3286659583,PL 3286659584,3286659839,DE 3286659840,3286660095,UA @@ -110115,7 +110995,6 @@ 3287461376,3287461631,CH 3287461632,3287461887,AT 3287461888,3287462143,PL -3287462400,3287462655,BE 3287462656,3287462911,UA 3287462912,3287463167,FR 3287463168,3287463423,IT @@ -110153,7 +111032,7 @@ 3287554048,3287554559,RU 3287554560,3287555071,PL 3287555072,3287555583,GB -3287555584,3287556095,FR +3287555584,3287556095,US 3287556096,3287563007,TR 3287563008,3287563263,US 3287563264,3287564287,TR @@ -110996,13 +111875,29 @@ 3291555840,3291556095,GN 3291611136,3291611647,ZA 3291611648,3291611903,MU +3291611904,3291612159,ZA +3291612160,3291613183,NG 3291676672,3291742207,ZA 3291742208,3291742463,US 3291742464,3291742591,GB 3291742592,3291742719,IE 3291742720,3291750399,US 3291750400,3291750655,GB -3291750656,3291817471,US +3291750656,3291757311,US +3291757312,3291757567,GB +3291757568,3291758079,US +3291758080,3291758335,GB +3291758336,3291762175,US +3291762176,3291762431,GB +3291762432,3291763199,US +3291763200,3291763455,GB +3291763456,3291763711,US +3291763712,3291763967,GB +3291763968,3291813375,US +3291813376,3291813631,GB +3291813632,3291815423,US +3291815424,3291815679,GB +3291815680,3291817471,US 3291817472,3291817983,NL 3291817984,3291819263,US 3291819264,3291819775,NL @@ -111010,11 +111905,37 @@ 3291821056,3291821567,NL 3291821568,3291823103,US 3291823104,3291823359,DE -3291823360,3291906047,US +3291823360,3291824127,US +3291824128,3291824383,GB +3291824384,3291826175,US +3291826176,3291826431,CA +3291826432,3291827199,US +3291827200,3291827455,CA +3291827456,3291828223,US +3291828224,3291828479,GB +3291828480,3291878143,US +3291878144,3291878399,CA +3291878400,3291880703,US +3291880704,3291880959,CA +3291880960,3291883775,US +3291883776,3291884031,CA +3291884032,3291884543,US +3291884544,3291884799,CA +3291884800,3291886335,US +3291886336,3291886591,CA +3291886592,3291887359,US +3291887360,3291887615,FR +3291887616,3291888895,US +3291888896,3291889151,FR +3291889152,3291893759,US +3291893760,3291894015,CA +3291894016,3291906047,US 3291906048,3291907071,LK 3291907072,3291939063,US 3291939064,3291939064,GB -3291939065,3291971583,US +3291939065,3291943423,US +3291943424,3291943679,FR +3291943680,3291971583,US 3291971584,3291972607,JP 3291972608,3292004351,US 3292004352,3292004607,SC @@ -111855,7 +112776,34 @@ 3304529920,3304535295,US 3304535296,3304536063,SC 3304536064,3304538111,CA -3304538112,3304587263,SC +3304538112,3304539135,SC +3304539136,3304548351,US +3304548352,3304549375,SC +3304549376,3304562687,US +3304562688,3304563711,GB +3304563712,3304564735,NL +3304564736,3304565759,CH +3304565760,3304566783,ES +3304566784,3304567807,PT +3304567808,3304568831,PL +3304568832,3304569855,NO +3304569856,3304570879,NZ +3304570880,3304571903,LU +3304571904,3304572927,HU +3304572928,3304573951,HK +3304573952,3304574975,AU +3304574976,3304575999,AT +3304576000,3304577023,BE +3304577024,3304578047,LV +3304578048,3304579071,CZ +3304579072,3304580095,DK +3304580096,3304581119,DE +3304581120,3304582143,FR +3304582144,3304583167,AT +3304583168,3304584191,IN +3304584192,3304585215,RU +3304585216,3304586239,US +3304586240,3304587263,BR 3304587264,3304669183,ZA 3304669184,3304685567,TZ 3304685568,3304701951,ZA @@ -112796,9 +113744,7 @@ 3323660544,3323661311,US 3323661312,3323662335,CA 3323662336,3323674623,US -3323674624,3323677967,CA -3323677968,3323677983,IN -3323677984,3323678031,CA +3323674624,3323678031,CA 3323678032,3323678047,US 3323678048,3323678055,CA 3323678056,3323678059,MX @@ -112859,7 +113805,9 @@ 3323682656,3323682687,IE 3323682688,3323682751,CA 3323682752,3323682767,US -3323682768,3323682839,CA +3323682768,3323682771,CA +3323682772,3323682775,RO +3323682776,3323682839,CA 3323682840,3323682843,BD 3323682844,3323682947,CA 3323682948,3323682951,US @@ -112996,7 +113944,8 @@ 3323686440,3323686447,BR 3323686448,3323686599,CA 3323686600,3323686607,BR -3323686608,3323686631,CA +3323686608,3323686623,CA +3323686624,3323686631,NL 3323686632,3323686639,BR 3323686640,3323686655,US 3323686656,3323686683,CA @@ -113237,10 +114186,13 @@ 3324526592,3324579839,US 3324582912,3324583935,CA 3324583936,3324587775,CL -3324587776,3324633087,US +3324587776,3324601087,US +3324601088,3324601343,GB +3324601344,3324604671,US +3324604672,3324604927,GB +3324604928,3324633087,US 3324633088,3324634111,PE -3324634112,3324635135,AR -3324635136,3324635647,US +3324634112,3324635647,AR 3324635648,3324635903,HK 3324635904,3324636159,US 3324636160,3324637183,NZ @@ -113741,7 +114693,7 @@ 3324943168,3324943215,US 3324943216,3324943231,GB 3324943232,3324963535,US -3324963536,3324963543,GB +3324963536,3324963543,CA 3324963544,3324963567,US 3324963568,3324963575,GB 3324963576,3324963579,US @@ -113783,8 +114735,7 @@ 3325171712,3325190143,US 3325190144,3325191687,CA 3325191688,3325191695,US -3325191696,3325198363,CA -3325198364,3325198367,US +3325191696,3325198367,CA 3325198368,3325198375,MY 3325198376,3325198379,CA 3325198380,3325198383,US @@ -113926,8 +114877,8 @@ 3325201288,3325201367,CA 3325201368,3325201375,MY 3325201376,3325201391,CA -3325201392,3325201407,US -3325201408,3325201427,CA +3325201392,3325201415,US +3325201416,3325201427,CA 3325201428,3325201431,US 3325201432,3325201531,CA 3325201532,3325201535,US @@ -113977,7 +114928,9 @@ 3325205504,3325206428,CA 3325206429,3325206429,US 3325206430,3325206623,CA -3325206624,3325206627,RO +3325206624,3325206625,RO +3325206626,3325206626,CA +3325206627,3325206627,RO 3325206628,3325206639,CA 3325206640,3325206671,US 3325206672,3325206679,BR @@ -113997,7 +114950,9 @@ 3325206880,3325206911,BA 3325206912,3325206915,CA 3325206916,3325206919,US -3325206920,3325207055,CA +3325206920,3325206935,CA +3325206936,3325206943,HR +3325206944,3325207055,CA 3325207056,3325207059,GB 3325207060,3325207071,CA 3325207072,3325207103,MX @@ -114402,7 +115357,9 @@ 3325217248,3325217279,BA 3325217280,3325217307,CA 3325217308,3325217311,HK -3325217312,3325217651,CA +3325217312,3325217471,CA +3325217472,3325217503,IE +3325217504,3325217651,CA 3325217652,3325217655,AE 3325217656,3325217695,CA 3325217696,3325217699,US @@ -114435,23 +115392,19 @@ 3325218252,3325218255,PL 3325218256,3325218447,CA 3325218448,3325218455,AR -3325218456,3325218463,CA -3325218464,3325218479,ES +3325218456,3325218479,CA 3325218480,3325218483,BR 3325218484,3325218487,CA 3325218488,3325218491,US 3325218492,3325218519,CA 3325218520,3325218523,US -3325218524,3325218531,CA -3325218532,3325218535,US -3325218536,3325218559,CA +3325218524,3325218559,CA 3325218560,3325218567,US 3325218568,3325218583,CA 3325218584,3325218591,IN 3325218592,3325218615,CA 3325218616,3325218623,BR -3325218624,3325218655,CA -3325218656,3325218663,TR +3325218624,3325218663,CA 3325218664,3325218667,US 3325218668,3325218671,CA 3325218672,3325218687,IT @@ -114462,9 +115415,7 @@ 3325219084,3325219087,BZ 3325219088,3325219091,CA 3325219092,3325219095,VE -3325219096,3325219247,CA -3325219248,3325219263,US -3325219264,3325219407,CA +3325219096,3325219407,CA 3325219408,3325219411,FR 3325219412,3325219415,CA 3325219416,3325219419,US @@ -114916,7 +115867,9 @@ 3325230104,3325230111,US 3325230112,3325230123,CA 3325230124,3325230127,CL -3325230128,3325230167,CA +3325230128,3325230135,CA +3325230136,3325230143,FR +3325230144,3325230167,CA 3325230168,3325230171,PK 3325230172,3325230175,US 3325230176,3325230319,CA @@ -115457,9 +116410,7 @@ 3331647232,3331647487,CA 3331647488,3331649279,US 3331649280,3331649535,CA -3331649536,3331818495,US -3331818496,3331818751,MX -3331818752,3331840111,US +3331649536,3331840111,US 3331840112,3331840115,CA 3331840116,3331853823,US 3331854080,3331868161,US @@ -115954,9 +116905,7 @@ 3337963968,3337964031,IN 3337964032,3337964671,US 3337964672,3337964735,IN -3337964736,3337965055,US -3337965056,3337965311,HK -3337965312,3337969663,US +3337964736,3337969663,US 3337969664,3337973759,PR 3337973760,3337977855,CA 3337977856,3337980671,US @@ -116540,7 +117489,9 @@ 3340926816,3340926823,GB 3340926824,3340926959,US 3340926960,3340926967,IL -3340926968,3341082623,US +3340926968,3341057023,US +3341057024,3341058047,CA +3341058048,3341082623,US 3341082624,3341084671,CA 3341084672,3341180927,US 3341180928,3341182975,CA @@ -119578,7 +120529,9 @@ 3357606912,3357607167,AR 3357607168,3357613055,MX 3357613056,3357613311,AR -3357613312,3357618943,MX +3357613312,3357616895,MX +3357616896,3357617151,US +3357617152,3357618943,MX 3357618944,3357619199,SV 3357619200,3357623039,MX 3357623040,3357623295,AR @@ -119947,7 +120900,15 @@ 3360403456,3360405503,BR 3360405504,3360407551,HN 3360407552,3360423935,PA -3360423936,3360534527,MX +3360423936,3360514047,MX +3360514048,3360516351,US +3360516352,3360516607,MX +3360516608,3360516863,US +3360516864,3360517119,MX +3360517120,3360517631,US +3360517632,3360518143,MX +3360518144,3360520191,US +3360520192,3360534527,MX 3360534528,3360536575,BR 3360536576,3360537599,CL 3360537600,3360538623,EC @@ -120448,7 +121409,13 @@ 3382704128,3382706175,BR 3382706176,3382853631,MX 3382853632,3382870015,BR -3382870016,3383701503,MX +3382870016,3382985727,MX +3382985728,3382985983,US +3382985984,3383033855,MX +3383033856,3383038975,US +3383038976,3383039487,MX +3383039488,3383042047,US +3383042048,3383701503,MX 3383701504,3383705599,BR 3383705600,3383754751,MX 3383754752,3384147967,AR @@ -120760,7 +121727,9 @@ 3389366272,3389374463,AU 3389374464,3389378559,MN 3389378560,3389381631,CN -3389381632,3389382655,JP +3389381632,3389382143,JP +3389382144,3389382399,AQ +3389382400,3389382655,JP 3389382656,3389390847,TW 3389390848,3389391359,HK 3389391360,3389391615,VN @@ -121954,7 +122923,6 @@ 3392926720,3392927231,IN 3392927232,3392927743,AU 3392927744,3392927999,IN -3392928000,3392928255,HK 3392928256,3392928767,TW 3392928768,3392929279,VN 3392929280,3392929535,PK @@ -122151,7 +123119,9 @@ 3393620992,3393621247,JP 3393621248,3393622015,AU 3393622016,3393626111,PK -3393626112,3393630207,HK +3393626112,3393629523,HK +3393629524,3393629525,MO +3393629526,3393630207,HK 3393630208,3393634303,JP 3393634304,3393638399,CN 3393638400,3393650687,JP @@ -122852,9 +123822,7 @@ 3397738496,3397742591,MY 3397742592,3397746687,JP 3397746688,3397763071,TH -3397763072,3397767679,SG -3397767680,3397768191,PH -3397768192,3397771263,SG +3397763072,3397771263,SG 3397771264,3397779455,TW 3397779456,3397781503,ID 3397781504,3397783551,BD @@ -123228,9 +124196,7 @@ 3399995392,3399999487,KR 3399999488,3400000475,JP 3400000476,3400000479,US -3400000480,3400002303,JP -3400002304,3400002367,HK -3400002368,3400003583,JP +3400000480,3400003583,JP 3400003584,3400005631,AU 3400005632,3400006143,JP 3400006400,3400007679,JP @@ -123383,9 +124349,7 @@ 3400648816,3400648831,HK 3400648832,3400649943,JP 3400649944,3400649951,HK -3400649952,3400650143,JP -3400650144,3400650159,HK -3400650160,3400650409,JP +3400649952,3400650409,JP 3400650410,3400650410,AU 3400650411,3400650751,JP 3400650752,3400654847,AU @@ -125225,7 +126189,9 @@ 3411058688,3411062783,AU 3411062784,3411064831,HK 3411064832,3411065087,BD -3411065088,3411085311,HK +3411065088,3411065855,HK +3411065856,3411066879,BD +3411066880,3411085311,HK 3411085312,3411086335,KR 3411086336,3411087359,JP 3411087360,3411091455,CN @@ -126691,7 +127657,9 @@ 3423311872,3423313151,VI 3423313152,3423313407,US 3423313408,3423313919,VI -3423313920,3423366479,US +3423313920,3423329567,US +3423329568,3423329599,IL +3423329600,3423366479,US 3423366480,3423366495,IT 3423366496,3423371263,US 3423371264,3423375359,ZA @@ -126712,7 +127680,11 @@ 3423533056,3423535103,AI 3423535104,3423543295,US 3423543296,3423545343,CA -3423545344,3423571967,US +3423545344,3423552767,US +3423552768,3423553023,GB +3423553024,3423553279,US +3423553280,3423553535,GB +3423553536,3423571967,US 3423571968,3423574015,PR 3423574016,3423579135,US 3423579136,3423580159,CA @@ -127491,7 +128463,9 @@ 3438542848,3438608383,CA 3438608384,3438610125,US 3438610126,3438610126,DE -3438610127,3438610408,US +3438610127,3438610325,US +3438610326,3438610326,GB +3438610327,3438610408,US 3438610409,3438610410,GB 3438610411,3438611455,US 3438611456,3438611711,GB @@ -127673,9 +128647,7 @@ 3450093056,3450093311,CH 3450093312,3450217215,US 3450217216,3450217471,LC -3450217472,3450253567,US -3450253568,3450253823,AU -3450253824,3450254079,US +3450217472,3450254079,US 3450254080,3450254335,CA 3450254336,3450272511,US 3450272512,3450272767,MX @@ -127789,7 +128761,9 @@ 3452174336,3452436479,US 3452436480,3452502015,CA 3452502016,3452506111,HK -3452506112,3452658431,US +3452506112,3452516095,US +3452516096,3452516351,PL +3452516352,3452658431,US 3452658432,3452658687,HK 3452658688,3452678143,US 3452678400,3452715007,US @@ -128769,19 +129743,15 @@ 3464175360,3464180735,CA 3464180736,3464200703,US 3464200704,3464200959,AU -3464200960,3464201215,NZ -3464201216,3464201471,JP -3464201472,3464201727,GR -3464201728,3464201983,EG -3464201984,3464202495,CA -3464202496,3464202751,FR -3464202752,3464203007,IT +3464200960,3464202239,US +3464202240,3464202495,CA +3464202496,3464203007,US 3464203008,3464203263,SE 3464203264,3464203519,DE 3464203520,3464204799,US 3464204800,3464205311,NL 3464205312,3464205567,SE -3464205568,3464205823,VE +3464205568,3464205823,US 3464205824,3464205951,AF 3464205952,3464206079,UZ 3464206080,3464206207,TJ @@ -128824,9 +129794,23 @@ 3464426752,3464429311,US 3464429312,3464429567,CA 3464429568,3464548351,US -3464548352,3464548607,AG -3464548608,3464548863,LC -3464548864,3464549119,KN +3464548352,3464548671,AG +3464548672,3464548679,LC +3464548680,3464548687,AG +3464548688,3464548695,LC +3464548696,3464548703,AG +3464548704,3464548711,LC +3464548712,3464548751,AG +3464548752,3464548767,LC +3464548768,3464548783,AG +3464548784,3464548787,LC +3464548788,3464548807,AG +3464548808,3464548815,LC +3464548816,3464548831,AG +3464548832,3464548839,LC +3464548840,3464548847,AG +3464548848,3464548855,LC +3464548856,3464549119,AG 3464549120,3464549375,VG 3464549376,3464549439,AG 3464549440,3464549503,MS @@ -129209,7 +130193,8 @@ 3469989888,3469990399,CA 3469990400,3470131199,US 3470131200,3470135295,AG -3470135296,3470137343,LC +3470135296,3470136319,LC +3470136320,3470137343,AG 3470137344,3470139391,VG 3470139392,3470153727,US 3470153728,3470153983,IN @@ -129727,8 +130712,8 @@ 3482779648,3482910719,US 3482910720,3482927103,CA 3482927104,3483025407,US -3483025408,3483029503,DE -3483029504,3483435007,US +3483025408,3483033599,DE +3483033600,3483435007,US 3483435008,3483533311,CA 3483533312,3483631615,US 3483631616,3483697151,CA @@ -130128,7 +131113,9 @@ 3487862016,3487875071,BM 3487875072,3487891455,US 3487891456,3487907839,CA -3487907840,3487969791,US +3487907840,3487913471,US +3487913472,3487913983,CA +3487913984,3487969791,US 3487969792,3487970047,KW 3487970048,3488014335,US 3488014336,3488022527,CA @@ -130455,7 +131442,9 @@ 3494655744,3494655759,GB 3494655760,3494660095,US 3494660096,3494661119,CA -3494661120,3494668287,US +3494661120,3494664191,US +3494664192,3494665215,CA +3494665216,3494668287,US 3494668288,3494670335,CA 3494670336,3494712319,US 3494712320,3494712575,CA @@ -131075,17 +132064,7 @@ 3509166080,3509215231,US 3509215232,3509223423,CA 3509223424,3509239807,US -3509239808,3509242879,NL -3509242880,3509243135,US -3509243136,3509244159,NL -3509244160,3509244415,US -3509244416,3509245231,NL -3509245232,3509245239,US -3509245240,3509245279,NL -3509245280,3509245295,US -3509245296,3509249279,NL -3509249280,3509249535,US -3509249536,3509256191,NL +3509239808,3509256191,NL 3509256192,3509305599,US 3509305600,3509305615,GB 3509305616,3509346303,US @@ -131202,9 +132181,7 @@ 3509583616,3509583871,CA 3509583872,3509731327,US 3509731328,3509739519,CA -3509739520,3509827583,US -3509827584,3509827591,SG -3509827592,3509828095,US +3509739520,3509828095,US 3509828096,3509828159,CA 3509828160,3509846015,US 3509846016,3509977087,CA @@ -131694,9 +132671,7 @@ 3518062592,3518066687,CA 3518066688,3518075647,US 3518075648,3518075903,AU -3518075904,3518076079,US -3518076080,3518076087,AU -3518076088,3518076671,US +3518075904,3518076671,US 3518076672,3518076927,PA 3518076928,3518374719,US 3518374720,3518374783,IN @@ -132145,7 +133120,9 @@ 3524827552,3524827615,JP 3524827616,3524828127,SG 3524828128,3524828159,JP -3524828160,3524828927,SG +3524828160,3524828415,SG +3524828416,3524828671,JP +3524828672,3524828927,SG 3524828928,3524829183,JP 3524829184,3524829439,SG 3524829440,3524829695,JP @@ -132237,14 +133214,15 @@ 3527004160,3527008255,ID 3527008256,3527016447,KR 3527016448,3527249919,TW -3527249920,3527254015,CN +3527249920,3527250943,CN +3527250944,3527251455,TW +3527251456,3527254015,CN 3527254016,3527933951,TW 3527933952,3528392703,CN 3528392704,3528396799,JP 3528396800,3528400895,AU 3528400896,3528404991,JP 3528404992,3528407039,NZ -3528407040,3528409087,AU 3528409088,3528425471,CN 3528441856,3528445951,JP 3528445952,3528450047,ID @@ -132411,7 +133389,7 @@ 3556990976,3556999167,UA 3556999168,3557007359,RU 3557007360,3557015551,IT -3557015552,3557023743,DE +3557015552,3557023743,LV 3557023744,3557031935,BE 3557031936,3557040127,IT 3557040128,3557048319,NO @@ -132468,7 +133446,7 @@ 3557339164,3557339164,BE 3557343232,3557351423,DE 3557351424,3557356543,RU -3557356544,3557357311,UA +3557356544,3557357311,NL 3557357312,3557359615,RU 3557359616,3557359991,JE 3557359992,3557359999,GB @@ -132633,8 +133611,8 @@ 3558260736,3558268927,UA 3558268928,3558275839,GI 3558275840,3558276095,HK -3558276096,3558276351,GI -3558276352,3558276863,GB +3558276096,3558276607,GI +3558276608,3558276863,GB 3558276864,3558277119,GI 3558277120,3558285951,GB 3558285952,3558286079,DE @@ -133639,13 +134617,11 @@ 3560943076,3560943079,ES 3560943080,3560943110,DE 3560943111,3560943111,ES -3560943112,3560943113,DE -3560943114,3560943115,ES +3560943112,3560943114,DE +3560943115,3560943115,ES 3560943116,3560943116,DK 3560943117,3560943117,IL -3560943118,3560943118,DE -3560943119,3560943119,IT -3560943120,3560943121,DE +3560943118,3560943121,DE 3560943122,3560943122,ES 3560943123,3560943125,DE 3560943126,3560943126,FR @@ -133663,7 +134639,7 @@ 3560943143,3560943145,HU 3560943146,3560943149,DE 3560943150,3560943150,ES -3560943151,3560943151,IT +3560943151,3560943151,DE 3560943152,3560943152,HU 3560943153,3560943154,DE 3560943155,3560943155,FR @@ -133684,7 +134660,7 @@ 3560943173,3560943173,BE 3560943174,3560943176,DE 3560943177,3560943177,CH -3560943178,3560943178,IT +3560943178,3560943178,DE 3560943179,3560943179,PL 3560943180,3560943180,GB 3560943181,3560943181,DE @@ -133742,15 +134718,15 @@ 3560943255,3560943255,GB 3560943256,3560943256,DE 3560943257,3560943257,ES -3560943258,3560943258,FR -3560943259,3560943259,DE +3560943258,3560943259,DE 3560943260,3560943260,ES 3560943261,3560943261,IE 3560943262,3560943262,DE 3560943263,3560943263,IT 3560943264,3560943264,CZ 3560943265,3560943267,DE -3560943268,3560943269,IT +3560943268,3560943268,IT +3560943269,3560943269,DE 3560943270,3560943270,GB 3560943271,3560943271,IT 3560943272,3560943272,ES @@ -133766,11 +134742,8 @@ 3560943284,3560943286,DE 3560943287,3560943287,NL 3560943288,3560943290,FR -3560943291,3560943292,IT -3560943293,3560943293,DE -3560943294,3560943294,IT -3560943295,3560943295,DE -3560943296,3560943296,RU +3560943291,3560943291,IT +3560943292,3560943296,DE 3560943297,3560943297,ES 3560943298,3560943298,FR 3560943299,3560943299,GB @@ -133779,18 +134752,16 @@ 3560943302,3560943302,ES 3560943303,3560943303,IT 3560943304,3560943304,FR -3560943305,3560943309,DE -3560943310,3560943311,IT +3560943305,3560943310,DE +3560943311,3560943311,IT 3560943312,3560943312,PL 3560943313,3560943313,DE 3560943314,3560943314,ES 3560943315,3560943315,IT -3560943316,3560943316,GB +3560943316,3560943316,DE 3560943317,3560943317,IT 3560943318,3560943318,CH -3560943319,3560943320,DE -3560943321,3560943321,GB -3560943322,3560943322,DE +3560943319,3560943322,DE 3560943323,3560943323,NL 3560943324,3560943324,DE 3560943325,3560943325,CH @@ -133806,7 +134777,7 @@ 3560943342,3560943342,ES 3560943343,3560943343,FR 3560943344,3560943344,NL -3560943345,3560943345,CH +3560943345,3560943345,DE 3560943346,3560943346,IT 3560943347,3560943347,ES 3560943348,3560943348,FR @@ -133820,19 +134791,18 @@ 3560943358,3560943358,BE 3560943359,3560943361,DE 3560943362,3560943362,GB -3560943363,3560943365,DE -3560943366,3560943367,IT +3560943363,3560943366,DE +3560943367,3560943367,IT 3560943368,3560943368,DE 3560943369,3560943369,GR -3560943370,3560943370,DE -3560943371,3560943371,AT +3560943370,3560943371,DE 3560943372,3560943372,FR 3560943373,3560943375,DE 3560943376,3560943376,ES 3560943377,3560943377,GB 3560943378,3560943378,DE -3560943379,3560943380,ES -3560943381,3560943383,DE +3560943379,3560943379,ES +3560943380,3560943383,DE 3560943384,3560943384,FR 3560943385,3560943385,ES 3560943386,3560943386,CH @@ -133843,7 +134813,7 @@ 3560943395,3560943395,NL 3560943396,3560943397,DE 3560943398,3560943398,BE -3560943399,3560943399,CH +3560943399,3560943399,DE 3560943400,3560943400,IT 3560943401,3560943401,DE 3560943402,3560943402,NL @@ -133872,9 +134842,7 @@ 3560943427,3560943427,FR 3560943428,3560943428,NO 3560943429,3560943430,NL -3560943431,3560943433,DE -3560943434,3560943434,SE -3560943435,3560943435,DE +3560943431,3560943435,DE 3560943436,3560943436,FR 3560943437,3560943437,ES 3560943438,3560943438,FR @@ -133883,8 +134851,7 @@ 3560943441,3560943441,DE 3560943442,3560943442,ES 3560943443,3560943443,BE -3560943444,3560943444,CH -3560943445,3560943446,DE +3560943444,3560943446,DE 3560943447,3560943447,GB 3560943448,3560943450,DE 3560943451,3560943451,PL @@ -133907,7 +134874,7 @@ 3560943472,3560943472,BE 3560943473,3560943473,AT 3560943474,3560943474,CH -3560943475,3560943475,ES +3560943475,3560943475,DE 3560943476,3560943476,BE 3560943477,3560943477,DE 3560943478,3560943478,IT @@ -133924,25 +134891,19 @@ 3560943493,3560943493,FR 3560943494,3560943494,GB 3560943495,3560943495,IT -3560943496,3560943500,DE -3560943501,3560943501,ES -3560943502,3560943510,DE +3560943496,3560943510,DE 3560943511,3560943511,IT 3560943512,3560943512,DE 3560943513,3560943513,LU 3560943514,3560943515,ES -3560943516,3560943517,DE -3560943518,3560943518,LU -3560943519,3560943519,DE +3560943516,3560943519,DE 3560943520,3560943520,DK 3560943521,3560943521,DE 3560943522,3560943522,GB 3560943523,3560943524,DE 3560943525,3560943525,NL 3560943526,3560943526,IT -3560943527,3560943527,DE -3560943528,3560943528,FR -3560943529,3560943529,DE +3560943527,3560943529,DE 3560943530,3560943530,CH 3560943531,3560943532,DE 3560943533,3560943533,HU @@ -133963,8 +134924,7 @@ 3560943549,3560943549,DE 3560943550,3560943550,HU 3560943551,3560943551,FR -3560943552,3560943552,IT -3560943553,3560943553,DE +3560943552,3560943553,DE 3560943554,3560943554,IS 3560943555,3560943555,FR 3560943556,3560943556,DE @@ -133973,9 +134933,7 @@ 3560943559,3560943559,GB 3560943560,3560943562,IT 3560943563,3560943563,HU -3560943564,3560943564,DE -3560943565,3560943565,GB -3560943566,3560943566,DE +3560943564,3560943566,DE 3560943567,3560943567,FR 3560943568,3560943568,GB 3560943569,3560943570,FR @@ -133995,8 +134953,7 @@ 3560943586,3560943586,ES 3560943587,3560943587,DE 3560943588,3560943588,IT -3560943589,3560943589,NL -3560943590,3560943590,DE +3560943589,3560943590,DE 3560943591,3560943591,AT 3560943592,3560943592,SK 3560943593,3560943593,PL @@ -134004,7 +134961,8 @@ 3560943595,3560943596,ES 3560943597,3560943599,DE 3560943600,3560943600,AT -3560943601,3560943602,IT +3560943601,3560943601,DE +3560943602,3560943602,IT 3560943603,3560943603,DE 3560943604,3560943604,ES 3560943605,3560943605,GB @@ -134027,24 +134985,21 @@ 3560943629,3560943629,IT 3560943630,3560943630,DE 3560943631,3560943631,HU -3560943632,3560943632,CH +3560943632,3560943632,DE 3560943633,3560943633,ES 3560943634,3560943634,FR -3560943635,3560943635,ES -3560943636,3560943636,DE +3560943635,3560943636,DE 3560943637,3560943637,PL 3560943638,3560943638,DE 3560943639,3560943639,ES 3560943640,3560943640,FR -3560943641,3560943641,DE -3560943642,3560943643,IT +3560943641,3560943642,DE +3560943643,3560943643,IT 3560943644,3560943644,DE 3560943645,3560943645,GB 3560943646,3560943646,DE 3560943647,3560943647,ES -3560943648,3560943648,DE -3560943649,3560943649,NL -3560943650,3560943651,DE +3560943648,3560943651,DE 3560943652,3560943652,AT 3560943653,3560943653,DE 3560943654,3560943654,IT @@ -134076,8 +135031,7 @@ 3560943687,3560943687,PT 3560943688,3560943688,DE 3560943689,3560943689,PT -3560943690,3560943690,IT -3560943691,3560943691,DE +3560943690,3560943691,DE 3560943692,3560943692,SE 3560943693,3560943693,DE 3560943694,3560943694,FR @@ -134109,12 +135063,9 @@ 3560943729,3560943729,DE 3560943730,3560943730,NL 3560943731,3560943731,IT -3560943732,3560943732,DE -3560943733,3560943733,NO -3560943734,3560943736,DE +3560943732,3560943736,DE 3560943737,3560943737,GR -3560943738,3560943738,PT -3560943739,3560943740,DE +3560943738,3560943740,DE 3560943741,3560943741,FR 3560943742,3560943742,DE 3560943743,3560943743,PL @@ -134149,9 +135100,7 @@ 3560943781,3560943781,ES 3560943782,3560943782,DE 3560943783,3560943783,BE -3560943784,3560943786,DE -3560943787,3560943787,ES -3560943788,3560943788,DE +3560943784,3560943788,DE 3560943789,3560943789,IT 3560943790,3560943790,DE 3560943791,3560943791,IT @@ -134159,12 +135108,10 @@ 3560943794,3560943794,FR 3560943795,3560943795,DE 3560943796,3560943796,IT -3560943797,3560943797,DE -3560943798,3560943798,DK -3560943799,3560943800,DE +3560943797,3560943800,DE 3560943801,3560943801,FR 3560943802,3560943802,IT -3560943803,3560943803,HU +3560943803,3560943803,DE 3560943804,3560943804,ES 3560943805,3560943805,DE 3560943806,3560943806,ES @@ -134172,9 +135119,7 @@ 3560943811,3560943811,ES 3560943812,3560943812,IT 3560943813,3560943813,CH -3560943814,3560943814,DE -3560943815,3560943815,IT -3560943816,3560943816,DE +3560943814,3560943816,DE 3560943817,3560943817,FR 3560943818,3560943818,PT 3560943819,3560943819,DE @@ -134186,19 +135131,18 @@ 3560943828,3560943828,ES 3560943829,3560943829,NL 3560943830,3560943830,DE -3560943831,3560943833,FR +3560943831,3560943831,FR +3560943832,3560943832,DE +3560943833,3560943833,FR 3560943834,3560943836,DE 3560943837,3560943837,CH -3560943838,3560943838,DE -3560943839,3560943839,NO -3560943840,3560943840,DE +3560943838,3560943840,DE 3560943841,3560943841,GB 3560943842,3560943842,DE 3560943843,3560943843,GB 3560943844,3560943844,BE 3560943845,3560943845,CZ -3560943846,3560943846,LU -3560943847,3560943847,CZ +3560943846,3560943847,DE 3560943848,3560943848,FR 3560943849,3560943849,DE 3560943850,3560943850,NL @@ -134208,8 +135152,7 @@ 3560943860,3560943860,GB 3560943861,3560943865,DE 3560943866,3560943866,BE -3560943867,3560943867,ES -3560943868,3560943868,DE +3560943867,3560943868,DE 3560943869,3560943869,LU 3560943870,3560943871,DE 3560943872,3560943875,BR @@ -134882,7 +135825,8 @@ 3561316352,3561324543,RU 3561324544,3561325567,IT 3561325568,3561326591,CH -3561326592,3561332735,IT +3561326592,3561328639,IT +3561328640,3561332735,US 3561332736,3561340927,AT 3561340928,3561357311,GB 3561357312,3561365503,DK @@ -135063,7 +136007,7 @@ 3562414080,3562422271,DE 3562422272,3562430463,IR 3562430464,3562431231,UA -3562431232,3562431487,BZ +3562431232,3562431487,RU 3562431488,3562438655,UA 3562438656,3562463231,DE 3562463232,3562471423,UA @@ -136221,13 +137165,13 @@ 3572346880,3572348927,DK 3572348928,3572350975,RS 3572350976,3572355071,SE -3572355072,3572356095,DK +3572355072,3572356095,CH 3572356096,3572357119,GB 3572357120,3572358143,NL 3572358144,3572360191,GB 3572360192,3572361215,ES 3572361216,3572362239,LT -3572362240,3572363263,DK +3572362240,3572363263,ES 3572363264,3572364287,RS 3572364288,3572365311,DE 3572365312,3572366335,DK @@ -136382,13 +137326,17 @@ 3575648224,3575648255,PT 3575648256,3575652991,FR 3575652992,3575653119,GB -3575653120,3575653759,FR +3575653120,3575653711,FR +3575653712,3575653727,ES +3575653728,3575653759,FR 3575653760,3575653887,ES 3575653888,3575655039,FR 3575655040,3575655103,ES 3575655104,3575655615,FR 3575655616,3575655623,IE -3575655624,3575656287,FR +3575655624,3575655863,FR +3575655864,3575655867,ES +3575655868,3575656287,FR 3575656288,3575656319,PT 3575656320,3575657087,FR 3575657088,3575657215,ES @@ -136402,7 +137350,8 @@ 3575659168,3575659183,FI 3575659184,3575659863,FR 3575659864,3575659867,GB -3575659868,3575660159,FR +3575659868,3575660155,FR +3575660156,3575660159,GB 3575660160,3575660223,ES 3575660224,3575660351,FR 3575660352,3575660415,PT @@ -136899,13 +137848,11 @@ 3580039168,3580039199,NL 3580039200,3580039231,AT 3580039232,3580100607,ES -3580100608,3580102143,LV -3580102144,3580103167,SE -3580103168,3580108799,LV +3580100608,3580108799,LV 3580108800,3580112895,SE 3580112896,3580116991,LV -3580116992,3580131327,SE -3580131328,3580134399,LV +3580116992,3580129279,SE +3580129280,3580134399,LV 3580134400,3580135423,SE 3580135424,3580135935,EE 3580135936,3580136447,SE @@ -136931,7 +137878,9 @@ 3580215296,3580217343,EE 3580217344,3580219391,SE 3580219392,3580221951,LV -3580221952,3580231935,SE +3580221952,3580223487,SE +3580223488,3580231679,LV +3580231680,3580231935,SE 3580231936,3580232191,LV 3580232192,3580232447,SE 3580232448,3580233215,LT @@ -136946,10 +137895,8 @@ 3580244992,3580246015,LT 3580246016,3580248063,LV 3580248064,3580254207,EE -3580254208,3580255231,LV -3580255232,3580258303,SE -3580258304,3580258559,LV -3580258560,3580260351,SE +3580254208,3580259327,LV +3580259328,3580260351,SE 3580260352,3580265471,AT 3580265472,3580265727,SE 3580265728,3580268543,EE @@ -137090,7 +138037,9 @@ 3582287872,3582296063,DE 3582296064,3582304255,GB 3582304256,3582312447,UA -3582312448,3582313855,JE +3582312448,3582313551,JE +3582313552,3582313559,GB +3582313560,3582313855,JE 3582313856,3582313871,GB 3582313872,3582320639,JE 3582320640,3582328831,CH @@ -137160,9 +138109,7 @@ 3582861312,3582869503,RU 3582869504,3582877695,NO 3582877696,3582885887,AT -3582885888,3582892031,TR -3582892032,3582892543,US -3582892544,3582894079,TR +3582885888,3582894079,TR 3582894080,3582902271,CH 3582902272,3582910463,RU 3582910464,3582916607,SI @@ -137690,9 +138637,7 @@ 3586544268,3586544271,DK 3586544272,3586544383,DE 3586544384,3586544511,DK -3586544512,3586547711,DE -3586547712,3586547967,NL -3586547968,3586555903,DE +3586544512,3586555903,DE 3586555904,3586572287,IT 3586572288,3586585215,RS 3586585216,3586585223,XK @@ -138011,9 +138956,13 @@ 3589341184,3589373951,PL 3589373952,3589390335,DE 3589390336,3589423103,RU -3589423104,3589430591,GB +3589423104,3589425011,GB +3589425012,3589425015,PT +3589425016,3589430591,GB 3589430592,3589430655,ES -3589430656,3589433343,GB +3589430656,3589431311,GB +3589431312,3589431327,PT +3589431328,3589433343,GB 3589433344,3589435391,IE 3589435392,3589435759,GB 3589435760,3589435763,ES @@ -138103,7 +139052,14 @@ 3590009264,3590009279,DE 3590009280,3590012927,GB 3590012928,3590029311,BE -3590029312,3590045695,FR +3590029312,3590032159,FR +3590032160,3590032175,ES +3590032176,3590032191,GB +3590032192,3590032271,FR +3590032272,3590032295,PT +3590032296,3590032319,FR +3590032320,3590032351,ES +3590032352,3590045695,FR 3590045696,3590062079,RU 3590062080,3590078463,DE 3590078464,3590094847,RU @@ -138772,7 +139728,9 @@ 3634053120,3634061311,CL 3634061312,3634094079,US 3634094080,3634098175,SE -3634098176,3634286079,US +3634098176,3634257919,US +3634257920,3634262015,SE +3634262016,3634286079,US 3634286080,3634286335,CA 3634286336,3634288895,US 3634288896,3634289151,CA @@ -138807,9 +139765,13 @@ 3635142656,3635146751,CA 3635146752,3635159039,US 3635159040,3635163135,CA -3635163136,3635171071,US +3635163136,3635167743,US +3635167744,3635167999,GB +3635168000,3635171071,US 3635171072,3635171327,CA -3635171328,3635314687,US +3635171328,3635187967,US +3635187968,3635188223,CN +3635188224,3635314687,US 3635314688,3635322879,CA 3635322880,3635466239,US 3635466240,3635470335,CA @@ -138965,9 +139927,7 @@ 3636822016,3636854783,CA 3636854784,3636887551,US 3636887552,3636895743,CA -3636895744,3636909055,US -3636909056,3636909311,CA -3636909312,3636914175,US +3636895744,3636914175,US 3636914176,3636914431,CA 3636914432,3636918527,US 3636918528,3636918783,CA @@ -139112,7 +140072,6 @@ 3639692288,3639704573,US 3639704574,3639704574,GB 3639704575,3639730175,US -3639730176,3639734271,CA 3639734272,3639736575,US 3639736576,3639736831,HK 3639736832,3639737343,US @@ -139381,8 +140340,10 @@ 3642036224,3642040319,HU 3642040320,3642048511,BY 3642048512,3642048767,IL -3642048768,3642049023,DE -3642049024,3642056703,GB +3642048768,3642049535,GB +3642049536,3642049791,SE +3642049792,3642050047,FI +3642050048,3642056703,GB 3642056704,3642060799,RU 3642060800,3642064895,KE 3642064896,3642068991,IT @@ -139527,12 +140488,10 @@ 3642535936,3642540031,IS 3642540032,3642544127,SE 3642544128,3642552319,RU -3642552320,3642553935,UA -3642553936,3642553936,RU +3642552320,3642553855,UA +3642553856,3642553936,RU 3642553937,3642553937,US -3642553938,3642553951,RU -3642553952,3642554111,UA -3642554112,3642554367,RU +3642553938,3642554367,RU 3642554368,3642554623,LT 3642554624,3642554720,UA 3642554721,3642554721,LV @@ -139897,7 +140856,8 @@ 3645763627,3645763627,AT 3645763628,3645763629,DE 3645763630,3645763631,NL -3645763632,3645763633,GB +3645763632,3645763632,GB +3645763633,3645763633,DE 3645763634,3645763634,NL 3645763635,3645763635,DE 3645763636,3645763636,AT @@ -139918,23 +140878,16 @@ 3645763655,3645763660,DE 3645763661,3645763662,FR 3645763663,3645763663,HU -3645763664,3645763665,DE -3645763666,3645763666,NL -3645763667,3645763670,DE +3645763664,3645763670,DE 3645763671,3645763671,FR 3645763672,3645763672,DE 3645763673,3645763673,BE 3645763674,3645763676,DE 3645763677,3645763678,HU 3645763679,3645763679,IT -3645763680,3645763680,DE -3645763681,3645763681,CH -3645763682,3645763682,DE -3645763683,3645763683,NO +3645763680,3645763683,DE 3645763684,3645763684,CH -3645763685,3645763685,NL -3645763686,3645763686,DE -3645763687,3645763687,ES +3645763685,3645763687,DE 3645763688,3645763690,NL 3645763691,3645763691,CH 3645763692,3645763692,DE @@ -139966,7 +140919,8 @@ 3645763724,3645763726,IT 3645763727,3645763727,NL 3645763728,3645763728,GR -3645763729,3645763730,IT +3645763729,3645763729,DE +3645763730,3645763730,IT 3645763731,3645763732,DE 3645763733,3645763733,FR 3645763734,3645763734,DE @@ -139975,16 +140929,16 @@ 3645763737,3645763737,DE 3645763738,3645763738,CH 3645763739,3645763740,ES -3645763741,3645763742,DE -3645763743,3645763743,IT -3645763744,3645763746,DE -3645763747,3645763752,NL -3645763753,3645763753,ES +3645763741,3645763746,DE +3645763747,3645763750,NL +3645763751,3645763751,DE +3645763752,3645763752,NL +3645763753,3645763753,DE 3645763754,3645763755,NL -3645763756,3645763756,DE -3645763757,3645763757,BE +3645763756,3645763757,DE 3645763758,3645763758,FR -3645763759,3645763760,NL +3645763759,3645763759,DE +3645763760,3645763760,NL 3645763761,3645763761,SE 3645763762,3645763762,ES 3645763763,3645763763,DE @@ -139995,14 +140949,11 @@ 3645763769,3645763769,FR 3645763770,3645763770,NL 3645763771,3645763771,GB -3645763772,3645763772,CH -3645763773,3645763773,DE +3645763772,3645763773,DE 3645763774,3645763774,NL 3645763775,3645763775,DE 3645763776,3645763776,NL -3645763777,3645763781,DE -3645763782,3645763782,NL -3645763783,3645763783,DE +3645763777,3645763783,DE 3645763784,3645763784,NL 3645763785,3645763785,DE 3645763786,3645763786,CH @@ -140142,8 +141093,7 @@ 3645763974,3645763974,GB 3645763975,3645763975,AT 3645763976,3645763976,IT -3645763977,3645763977,DE -3645763978,3645763978,NL +3645763977,3645763978,DE 3645763979,3645763979,IT 3645763980,3645763981,DE 3645763982,3645763982,IT @@ -140158,21 +141108,20 @@ 3645763995,3645763995,ES 3645763996,3645764000,DE 3645764001,3645764001,IT -3645764002,3645764008,DE -3645764009,3645764010,FR +3645764002,3645764009,DE +3645764010,3645764010,FR 3645764011,3645764012,DE 3645764013,3645764013,HU 3645764014,3645764015,GB 3645764016,3645764016,IT 3645764017,3645764017,GB -3645764018,3645764018,DE -3645764019,3645764019,NL +3645764018,3645764019,DE 3645764020,3645764020,IT 3645764021,3645764021,DE 3645764022,3645764022,ES 3645764023,3645764023,FR -3645764024,3645764026,ES -3645764027,3645764028,DE +3645764024,3645764025,ES +3645764026,3645764028,DE 3645764029,3645764029,ES 3645764030,3645764030,DE 3645764031,3645764031,NL @@ -140188,8 +141137,7 @@ 3645764043,3645764043,DE 3645764044,3645764044,ES 3645764045,3645764045,AE -3645764046,3645764046,ES -3645764047,3645764048,DE +3645764046,3645764048,DE 3645764049,3645764049,ES 3645764050,3645764051,DE 3645764052,3645764052,FR @@ -140981,7 +141929,9 @@ 3649372160,3649437695,IT 3649437696,3649470463,GB 3649470464,3649471487,SG -3649471488,3649472511,HK +3649471488,3649471999,HK +3649472000,3649472007,GB +3649472008,3649472511,HK 3649472512,3649512191,GB 3649512192,3649512447,FR 3649512448,3649568767,GB @@ -141359,9 +142309,7 @@ 3652096000,3652100095,BG 3652100096,3652108287,RU 3652108288,3652116479,FR -3652116480,3652119807,TM -3652119808,3652120063,RU -3652120064,3652120575,TM +3652116480,3652120575,TM 3652120576,3652124671,GB 3652124672,3652128767,UA 3652128768,3652136959,RU diff --git a/src/config/geoip6 b/src/config/geoip6 index 1f1430e4c6..6c1168418c 100644 --- a/src/config/geoip6 +++ b/src/config/geoip6 @@ -1,4 +1,4 @@ -# Last updated based on December 7 2016 Maxmind GeoLite2 Country +# Last updated based on January 4 2017 Maxmind GeoLite2 Country # wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz # gunzip GeoLite2-Country.mmdb.gz # python mmdb-convert.py GeoLite2-Country.mmdb @@ -274,7 +274,9 @@ 2001:470:7147:8000::,2001:470:7147:ffff:ffff:ffff:ffff:ffff,RU 2001:470:7148::,2001:470:7170:ffff:ffff:ffff:ffff:ffff,US 2001:470:7171::,2001:470:7171:ffff:ffff:ffff:ffff:ffff,DE -2001:470:7172::,2001:470:7286:ffff:ffff:ffff:ffff:ffff,US +2001:470:7172::,2001:470:7271:ffff:ffff:ffff:ffff:ffff,US +2001:470:7272::,2001:470:7272:ffff:ffff:ffff:ffff:ffff,DE +2001:470:7273::,2001:470:7286:ffff:ffff:ffff:ffff:ffff,US 2001:470:7287::,2001:470:7287:ffff:ffff:ffff:ffff:ffff,PL 2001:470:7288::,2001:470:7309:ffff:ffff:ffff:ffff:ffff,US 2001:470:730a::,2001:470:730a:7fff:ffff:ffff:ffff:ffff,DE @@ -619,7 +621,6 @@ 2001:678:e4::,2001:678:e4:ffff:ffff:ffff:ffff:ffff,SE 2001:678:e8::,2001:678:e8:ffff:ffff:ffff:ffff:ffff,CZ 2001:678:ec::,2001:678:ec:ffff:ffff:ffff:ffff:ffff,RU -2001:678:f0::,2001:678:f0:ffff:ffff:ffff:ffff:ffff,SE 2001:678:f4::,2001:678:f4:ffff:ffff:ffff:ffff:ffff,RU 2001:678:f8::,2001:678:f8:ffff:ffff:ffff:ffff:ffff,DE 2001:678:fc::,2001:678:fc:ffff:ffff:ffff:ffff:ffff,LT @@ -745,6 +746,30 @@ 2001:678:2e0::,2001:678:2e0:ffff:ffff:ffff:ffff:ffff,DE 2001:678:2e4::,2001:678:2e4:ffff:ffff:ffff:ffff:ffff,NL 2001:678:2e8::,2001:678:2e8:ffff:ffff:ffff:ffff:ffff,RU +2001:678:2ec::,2001:678:2ec:ffff:ffff:ffff:ffff:ffff,RU +2001:678:2f0::,2001:678:2f0:ffff:ffff:ffff:ffff:ffff,RU +2001:678:2f4::,2001:678:2f4:ffff:ffff:ffff:ffff:ffff,IL +2001:678:2f8::,2001:678:2f8:ffff:ffff:ffff:ffff:ffff,DE +2001:678:2fc::,2001:678:2fc:ffff:ffff:ffff:ffff:ffff,GB +2001:678:300::,2001:678:303:ffff:ffff:ffff:ffff:ffff,DE +2001:678:310::,2001:678:310:ffff:ffff:ffff:ffff:ffff,CH +2001:678:314::,2001:678:314:ffff:ffff:ffff:ffff:ffff,RO +2001:678:318::,2001:678:318:ffff:ffff:ffff:ffff:ffff,UA +2001:678:31c::,2001:678:31c:ffff:ffff:ffff:ffff:ffff,UA +2001:678:320::,2001:678:320:ffff:ffff:ffff:ffff:ffff,CZ +2001:678:324::,2001:678:324:ffff:ffff:ffff:ffff:ffff,LV +2001:678:328::,2001:678:328:ffff:ffff:ffff:ffff:ffff,CH +2001:678:32c::,2001:678:32c:ffff:ffff:ffff:ffff:ffff,GB +2001:678:330::,2001:678:330:ffff:ffff:ffff:ffff:ffff,SE +2001:678:334::,2001:678:334:ffff:ffff:ffff:ffff:ffff,UA +2001:678:338::,2001:678:338:ffff:ffff:ffff:ffff:ffff,DE +2001:678:33c::,2001:678:33c:ffff:ffff:ffff:ffff:ffff,DK +2001:678:340::,2001:678:340:ffff:ffff:ffff:ffff:ffff,DE +2001:678:344::,2001:678:344:ffff:ffff:ffff:ffff:ffff,RU +2001:678:348::,2001:678:348:ffff:ffff:ffff:ffff:ffff,NL +2001:678:34c::,2001:678:34c:ffff:ffff:ffff:ffff:ffff,US +2001:678:350::,2001:678:350:ffff:ffff:ffff:ffff:ffff,RU +2001:678:354::,2001:678:354:ffff:ffff:ffff:ffff:ffff,RU 2001:67c::,2001:67c::ffff:ffff:ffff:ffff:ffff,IE 2001:67c:4::,2001:67c:4:ffff:ffff:ffff:ffff:ffff,DE 2001:67c:8::,2001:67c:8:ffff:ffff:ffff:ffff:ffff,CH @@ -1041,7 +1066,6 @@ 2001:67c:4a0::,2001:67c:4a0:ffff:ffff:ffff:ffff:ffff,DE 2001:67c:4a4::,2001:67c:4a4:ffff:ffff:ffff:ffff:ffff,SE 2001:67c:4a8::,2001:67c:4a8:ffff:ffff:ffff:ffff:ffff,SI -2001:67c:4ac::,2001:67c:4ac:ffff:ffff:ffff:ffff:ffff,PL 2001:67c:4b0::,2001:67c:4b0:ffff:ffff:ffff:ffff:ffff,RU 2001:67c:4b4::,2001:67c:4b4:ffff:ffff:ffff:ffff:ffff,RU 2001:67c:4b8::,2001:67c:4b8:ffff:ffff:ffff:ffff:ffff,CH @@ -1413,6 +1437,7 @@ 2001:67c:130c::,2001:67c:130c:ffff:ffff:ffff:ffff:ffff,SE 2001:67c:1310::,2001:67c:1310:ffff:ffff:ffff:ffff:ffff,GB 2001:67c:1314::,2001:67c:1314:ffff:ffff:ffff:ffff:ffff,CZ +2001:67c:1318::,2001:67c:1318:ffff:ffff:ffff:ffff:ffff,PL 2001:67c:131c::,2001:67c:131c:ffff:ffff:ffff:ffff:ffff,RU 2001:67c:1320::,2001:67c:1320:ffff:ffff:ffff:ffff:ffff,DE 2001:67c:1324::,2001:67c:1324:ffff:ffff:ffff:ffff:ffff,UA @@ -1743,6 +1768,7 @@ 2001:67c:196c::,2001:67c:196c:ffff:ffff:ffff:ffff:ffff,DE 2001:67c:1970::,2001:67c:1970:ffff:ffff:ffff:ffff:ffff,RU 2001:67c:1974::,2001:67c:1974:ffff:ffff:ffff:ffff:ffff,AT +2001:67c:1978::,2001:67c:1978:ffff:ffff:ffff:ffff:ffff,DE 2001:67c:197c::,2001:67c:197c:ffff:ffff:ffff:ffff:ffff,NO 2001:67c:1980::,2001:67c:1980:ffff:ffff:ffff:ffff:ffff,FR 2001:67c:1984::,2001:67c:1984:ffff:ffff:ffff:ffff:ffff,BG @@ -1804,7 +1830,6 @@ 2001:67c:1b7c::,2001:67c:1b7c:ffff:ffff:ffff:ffff:ffff,RU 2001:67c:1b80::,2001:67c:1b80:ffff:ffff:ffff:ffff:ffff,RU 2001:67c:1b84::,2001:67c:1b84:ffff:ffff:ffff:ffff:ffff,DE -2001:67c:1b88::,2001:67c:1b88:ffff:ffff:ffff:ffff:ffff,CZ 2001:67c:1b8c::,2001:67c:1b8c:ffff:ffff:ffff:ffff:ffff,PL 2001:67c:1b90::,2001:67c:1b90:ffff:ffff:ffff:ffff:ffff,PL 2001:67c:1b94::,2001:67c:1b94:ffff:ffff:ffff:ffff:ffff,UA @@ -2383,7 +2408,6 @@ 2001:67c:28f8::,2001:67c:28f8:ffff:ffff:ffff:ffff:ffff,LT 2001:67c:28fc::,2001:67c:28fc:ffff:ffff:ffff:ffff:ffff,NL 2001:67c:2900::,2001:67c:291f:ffff:ffff:ffff:ffff:ffff,NL -2001:67c:2980::,2001:67c:2980:ffff:ffff:ffff:ffff:ffff,NL 2001:67c:2984::,2001:67c:2984:ffff:ffff:ffff:ffff:ffff,CH 2001:67c:2988::,2001:67c:2989:ffff:ffff:ffff:ffff:ffff,TR 2001:67c:2990::,2001:67c:2990:ffff:ffff:ffff:ffff:ffff,GB @@ -2525,7 +2549,6 @@ 2001:67c:2bd0::,2001:67c:2bd0:ffff:ffff:ffff:ffff:ffff,SE 2001:67c:2bd4::,2001:67c:2bd4:ffff:ffff:ffff:ffff:ffff,SE 2001:67c:2bd8::,2001:67c:2bd8:ffff:ffff:ffff:ffff:ffff,SE -2001:67c:2bdc::,2001:67c:2bdc:ffff:ffff:ffff:ffff:ffff,PL 2001:67c:2be0::,2001:67c:2be0:ffff:ffff:ffff:ffff:ffff,PL 2001:67c:2be4::,2001:67c:2be4:ffff:ffff:ffff:ffff:ffff,PL 2001:67c:2bec::,2001:67c:2bec:ffff:ffff:ffff:ffff:ffff,PL @@ -3013,6 +3036,7 @@ 2001:7fa:10::,2001:7fa:10:ffff:ffff:ffff:ffff:ffff,CN 2001:7fa:11::,2001:7fa:11:ffff:ffff:ffff:ffff:ffff,AU 2001:7fc::,2001:7fc:1:ffff:ffff:ffff:ffff:ffff,DE +2001:7fc:3::,2001:7fc:3:ffff:ffff:ffff:ffff:ffff,SE 2001:7fe::,2001:7fe:ffff:ffff:ffff:ffff:ffff:ffff,SE 2001:808::,2001:80f:ffff:ffff:ffff:ffff:ffff:ffff,PL 2001:810::,2001:810:ffff:ffff:ffff:ffff:ffff:ffff,FR @@ -3858,7 +3882,7 @@ 2001:df1:a800::,2001:df1:a800:ffff:ffff:ffff:ffff:ffff,SG 2001:df1:aa00::,2001:df1:aa00:ffff:ffff:ffff:ffff:ffff,ID 2001:df1:ac00::,2001:df1:ac00:ffff:ffff:ffff:ffff:ffff,HK -2001:df1:ae00::,2001:df1:ae00:ffff:ffff:ffff:ffff:ffff,AU +2001:df1:ae00::,2001:df1:ae01:ffff:ffff:ffff:ffff:ffff,AU 2001:df1:b000::,2001:df1:b000:ffff:ffff:ffff:ffff:ffff,TH 2001:df1:b200::,2001:df1:b200:ffff:ffff:ffff:ffff:ffff,HK 2001:df1:b400::,2001:df1:b400:ffff:ffff:ffff:ffff:ffff,AU @@ -4328,7 +4352,6 @@ 2001:df5:7800::,2001:df5:7800:ffff:ffff:ffff:ffff:ffff,CN 2001:df5:7a00::,2001:df5:7a00:ffff:ffff:ffff:ffff:ffff,SG 2001:df5:7c00::,2001:df5:7c00:ffff:ffff:ffff:ffff:ffff,IN -2001:df5:7e00::,2001:df5:7e00:ffff:ffff:ffff:ffff:ffff,BD 2001:df5:8000::,2001:df5:8000:ffff:ffff:ffff:ffff:ffff,SG 2001:df5:8200::,2001:df5:8200:ffff:ffff:ffff:ffff:ffff,AU 2001:df5:8400::,2001:df5:8400:ffff:ffff:ffff:ffff:ffff,SG @@ -4454,6 +4477,7 @@ 2001:df6:8000::,2001:df6:8000:ffff:ffff:ffff:ffff:ffff,JP 2001:df6:8200::,2001:df6:8200:ffff:ffff:ffff:ffff:ffff,AU 2001:df6:8400::,2001:df6:8400:ffff:ffff:ffff:ffff:ffff,AU +2001:df6:8600::,2001:df6:8600:ffff:ffff:ffff:ffff:ffff,NZ 2001:df6:8800::,2001:df6:8800:ffff:ffff:ffff:ffff:ffff,AU 2001:df6:8a00::,2001:df6:8a00:ffff:ffff:ffff:ffff:ffff,ID 2001:df6:8c00::,2001:df6:8c00:ffff:ffff:ffff:ffff:ffff,TH @@ -4465,7 +4489,7 @@ 2001:df6:9800::,2001:df6:9800:ffff:ffff:ffff:ffff:ffff,AU 2001:df6:9a00::,2001:df6:9a00:ffff:ffff:ffff:ffff:ffff,TH 2001:df6:9c00::,2001:df6:9c00:ffff:ffff:ffff:ffff:ffff,TH -2001:df6:9e00::,2001:df6:9e00:ffff:ffff:ffff:ffff:ffff,IN +2001:df6:9e00::,2001:df6:9e01:ffff:ffff:ffff:ffff:ffff,IN 2001:df6:a000::,2001:df6:a000:ffff:ffff:ffff:ffff:ffff,JP 2001:df6:a200::,2001:df6:a200:ffff:ffff:ffff:ffff:ffff,BD 2001:df6:a400::,2001:df6:a400:ffff:ffff:ffff:ffff:ffff,SG @@ -4519,36 +4543,69 @@ 2001:df7:800::,2001:df7:800:ffff:ffff:ffff:ffff:ffff,IN 2001:df7:a00::,2001:df7:a00:ffff:ffff:ffff:ffff:ffff,ID 2001:df7:c00::,2001:df7:c00:ffff:ffff:ffff:ffff:ffff,TW +2001:df7:e00::,2001:df7:e00:ffff:ffff:ffff:ffff:ffff,NZ 2001:df7:1000::,2001:df7:1000:ffff:ffff:ffff:ffff:ffff,IN +2001:df7:1200::,2001:df7:1200:ffff:ffff:ffff:ffff:ffff,AU 2001:df7:1400::,2001:df7:1400:ffff:ffff:ffff:ffff:ffff,AU +2001:df7:1600::,2001:df7:1600:ffff:ffff:ffff:ffff:ffff,HK +2001:df7:1a00::,2001:df7:1a00:ffff:ffff:ffff:ffff:ffff,ID 2001:df7:1c00::,2001:df7:1c00:ffff:ffff:ffff:ffff:ffff,ID +2001:df7:1e00::,2001:df7:1e00:ffff:ffff:ffff:ffff:ffff,AU 2001:df7:2000::,2001:df7:2000:ffff:ffff:ffff:ffff:ffff,AU +2001:df7:2200::,2001:df7:2200:ffff:ffff:ffff:ffff:ffff,TH 2001:df7:2400::,2001:df7:2400:ffff:ffff:ffff:ffff:ffff,AU +2001:df7:2600::,2001:df7:2600:ffff:ffff:ffff:ffff:ffff,HK 2001:df7:2800::,2001:df7:2800:ffff:ffff:ffff:ffff:ffff,AU +2001:df7:2a00::,2001:df7:2a00:ffff:ffff:ffff:ffff:ffff,AU 2001:df7:2c00::,2001:df7:2c00:ffff:ffff:ffff:ffff:ffff,IN +2001:df7:2e00::,2001:df7:2e00:ffff:ffff:ffff:ffff:ffff,IN 2001:df7:3000::,2001:df7:3001:ffff:ffff:ffff:ffff:ffff,NZ +2001:df7:3200::,2001:df7:3200:ffff:ffff:ffff:ffff:ffff,AU 2001:df7:3400::,2001:df7:3400:ffff:ffff:ffff:ffff:ffff,ID +2001:df7:3600::,2001:df7:3600:ffff:ffff:ffff:ffff:ffff,ID 2001:df7:3800::,2001:df7:3800:ffff:ffff:ffff:ffff:ffff,AU +2001:df7:3a00::,2001:df7:3a00:ffff:ffff:ffff:ffff:ffff,BD 2001:df7:3c00::,2001:df7:3c00:ffff:ffff:ffff:ffff:ffff,ID +2001:df7:3e00::,2001:df7:3e00:ffff:ffff:ffff:ffff:ffff,AU 2001:df7:4000::,2001:df7:4000:ffff:ffff:ffff:ffff:ffff,SG +2001:df7:4200::,2001:df7:4200:ffff:ffff:ffff:ffff:ffff,AU 2001:df7:4400::,2001:df7:4400:ffff:ffff:ffff:ffff:ffff,IN +2001:df7:4600::,2001:df7:4600:ffff:ffff:ffff:ffff:ffff,IN 2001:df7:4800::,2001:df7:481f:ffff:ffff:ffff:ffff:ffff,JP +2001:df7:4a00::,2001:df7:4a00:ffff:ffff:ffff:ffff:ffff,IN 2001:df7:4c00::,2001:df7:4c00:ffff:ffff:ffff:ffff:ffff,IN +2001:df7:4e00::,2001:df7:4e00:ffff:ffff:ffff:ffff:ffff,AU 2001:df7:5000::,2001:df7:5000:ffff:ffff:ffff:ffff:ffff,IN +2001:df7:5200::,2001:df7:5200:ffff:ffff:ffff:ffff:ffff,NP 2001:df7:5400::,2001:df7:5400:ffff:ffff:ffff:ffff:ffff,ID +2001:df7:5600::,2001:df7:5600:ffff:ffff:ffff:ffff:ffff,JP +2001:df7:5a00::,2001:df7:5a00:ffff:ffff:ffff:ffff:ffff,ID 2001:df7:5c00::,2001:df7:5c00:ffff:ffff:ffff:ffff:ffff,HK +2001:df7:5e00::,2001:df7:5e00:ffff:ffff:ffff:ffff:ffff,AU 2001:df7:6000::,2001:df7:6000:ffff:ffff:ffff:ffff:ffff,IN +2001:df7:6200::,2001:df7:6200:ffff:ffff:ffff:ffff:ffff,AU 2001:df7:6400::,2001:df7:6400:ffff:ffff:ffff:ffff:ffff,MY +2001:df7:6600::,2001:df7:6600:ffff:ffff:ffff:ffff:ffff,CN 2001:df7:6800::,2001:df7:6800:ffff:ffff:ffff:ffff:ffff,IN +2001:df7:6a00::,2001:df7:6a00:ffff:ffff:ffff:ffff:ffff,AU 2001:df7:6c00::,2001:df7:6c00:ffff:ffff:ffff:ffff:ffff,ID +2001:df7:6e00::,2001:df7:6e00:ffff:ffff:ffff:ffff:ffff,IN 2001:df7:7000::,2001:df7:7000:ffff:ffff:ffff:ffff:ffff,HK +2001:df7:7200::,2001:df7:7200:ffff:ffff:ffff:ffff:ffff,ID 2001:df7:7400::,2001:df7:7400:ffff:ffff:ffff:ffff:ffff,ID +2001:df7:7600::,2001:df7:7600:ffff:ffff:ffff:ffff:ffff,AU 2001:df7:7800::,2001:df7:7800:ffff:ffff:ffff:ffff:ffff,JP +2001:df7:7a00::,2001:df7:7a00:ffff:ffff:ffff:ffff:ffff,ID 2001:df7:7c00::,2001:df7:7c00:ffff:ffff:ffff:ffff:ffff,TH +2001:df7:7e00::,2001:df7:7e00:ffff:ffff:ffff:ffff:ffff,IN +2001:df7:8200::,2001:df7:8200:ffff:ffff:ffff:ffff:ffff,ID 2001:df7:8400::,2001:df7:8401:ffff:ffff:ffff:ffff:ffff,IN +2001:df7:8600::,2001:df7:8600:ffff:ffff:ffff:ffff:ffff,ID 2001:df7:8800::,2001:df7:8800:ffff:ffff:ffff:ffff:ffff,ID +2001:df7:8a00::,2001:df7:8a00:ffff:ffff:ffff:ffff:ffff,IN 2001:df7:8c00::,2001:df7:8c00:ffff:ffff:ffff:ffff:ffff,MM -2001:df7:9400::,2001:df7:9400:ffff:ffff:ffff:ffff:ffff,HK +2001:df7:8e00::,2001:df7:8e00:ffff:ffff:ffff:ffff:ffff,ID +2001:df7:9400::,2001:df7:9400:ffff:ffff:ffff:ffff:ffff,US 2001:df7:9800::,2001:df7:9800:ffff:ffff:ffff:ffff:ffff,NZ 2001:df7:9c00::,2001:df7:9c00:ffff:ffff:ffff:ffff:ffff,AU 2001:df7:a000::,2001:df7:a000:ffff:ffff:ffff:ffff:ffff,AU @@ -5130,7 +5187,9 @@ 2001:41d0:a:7e09::,2001:41d0:a:7e09:ffff:ffff:ffff:ffff,PT 2001:41d0:a:7e0a::,2001:41d0:129:9bff:ffff:ffff:ffff:ffff,FR 2001:41d0:129:9c00::,2001:41d0:129:9cff:ffff:ffff:ffff:ffff,NL -2001:41d0:129:9d00::,2001:41d0:ffff:ffff:ffff:ffff:ffff:ffff,FR +2001:41d0:129:9d00::,2001:41d0:1000:171a:ffff:ffff:ffff:ffff,FR +2001:41d0:1000:171b::,2001:41d0:1000:171b:ffff:ffff:ffff:ffff,DE +2001:41d0:1000:171c::,2001:41d0:ffff:ffff:ffff:ffff:ffff:ffff,FR 2001:41d8::,2001:41d8:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2001:41e0::,2001:41e0:ffff:ffff:ffff:ffff:ffff:ffff,CH 2001:41e8::,2001:41e8:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -5334,6 +5393,11 @@ 2001:43f8:c40::,2001:43f8:c40:ffff:ffff:ffff:ffff:ffff,KE 2001:43f8:c50::,2001:43f8:c50:ffff:ffff:ffff:ffff:ffff,EG 2001:43f8:c60::,2001:43f8:c61:ffff:ffff:ffff:ffff:ffff,GN +2001:43f8:c70::,2001:43f8:c70:ffff:ffff:ffff:ffff:ffff,ZA +2001:43f8:c80::,2001:43f8:c80:ffff:ffff:ffff:ffff:ffff,ZA +2001:43f8:c90::,2001:43f8:c90:ffff:ffff:ffff:ffff:ffff,ZA +2001:43f8:ca0::,2001:43f8:ca0:ffff:ffff:ffff:ffff:ffff,CI +2001:43f8:cb0::,2001:43f8:cb0:ffff:ffff:ffff:ffff:ffff,KE 2001:43f8:e00::,2001:43f8:eff:ffff:ffff:ffff:ffff:ffff,MU 2001:4400::,2001:4403:ffff:ffff:ffff:ffff:ffff:ffff,NZ 2001:4408::,2001:4408:ffff:ffff:ffff:ffff:ffff:ffff,IN @@ -5659,7 +5723,6 @@ 2001:4d80::,2001:4d80:ffff:ffff:ffff:ffff:ffff:ffff,RO 2001:4d88::,2001:4d8f:ffff:ffff:ffff:ffff:ffff:ffff,DE 2001:4d98::,2001:4d98:ffff:ffff:ffff:ffff:ffff:ffff,CH -2001:4da0::,2001:4da7:ffff:ffff:ffff:ffff:ffff:ffff,CH 2001:4da8::,2001:4da8:ffff:ffff:ffff:ffff:ffff:ffff,NO 2001:4db0::,2001:4db0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2001:4db8::,2001:4db8:ffff:ffff:ffff:ffff:ffff:ffff,SE @@ -5885,28 +5948,52 @@ 2400:5880::,2400:5880:ffff:ffff:ffff:ffff:ffff:ffff,MY 2400:58c0::,2400:58c0:ffff:ffff:ffff:ffff:ffff:ffff,IN 2400:5900::,2400:5900:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2400:5940::,2400:5940:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:59c0::,2400:59c0:ffff:ffff:ffff:ffff:ffff:ffff,TH 2400:5a00::,2400:5a00:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:5a40::,2400:5a40:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:5a80::,2400:5a80:ffff:ffff:ffff:ffff:ffff:ffff,BD +2400:5ac0::,2400:5ac0:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:5b40::,2400:5b40:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:5b80::,2400:5b80:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:5bc0::,2400:5bc0:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:5c40::,2400:5c40:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:5c80::,2400:5c80:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:5cc0::,2400:5cc0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:5d00::,2400:5d00:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:5d40::,2400:5d40:ffff:ffff:ffff:ffff:ffff:ffff,BD 2400:5d80::,2400:5d80:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:5dc0::,2400:5dc0:ffff:ffff:ffff:ffff:ffff:ffff,AU 2400:5e00::,2400:5e00:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:5e40::,2400:5e40:ffff:ffff:ffff:ffff:ffff:ffff,HK 2400:5e80::,2400:5e80:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:5ec0::,2400:5ec0:ffff:ffff:ffff:ffff:ffff:ffff,ID 2400:5f00::,2400:5f00:ffff:ffff:ffff:ffff:ffff:ffff,PF +2400:5f40::,2400:5f40:ffff:ffff:ffff:ffff:ffff:ffff,MM 2400:5f80::,2400:5f80:ffff:ffff:ffff:ffff:ffff:ffff,HK +2400:5fc0::,2400:5fc0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6000::,2400:6000:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:6040::,2400:6040:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6080::,2400:6080:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2400:60c0::,2400:60c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6100::,2400:6100:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:6140::,2400:6140:ffff:ffff:ffff:ffff:ffff:ffff,AU 2400:6180::,2400:6180:ff:ffff:ffff:ffff:ffff:ffff,SG 2400:6180:100::,2400:6180:100:7fff:ffff:ffff:ffff:ffff,IN 2400:6180:100:8000::,2400:6180:ffff:ffff:ffff:ffff:ffff:ffff,SG +2400:61c0::,2400:61c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6200::,2400:6200:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:6240::,2400:6240:ffff:ffff:ffff:ffff:ffff:ffff,ID 2400:6280::,2400:6280:ffff:ffff:ffff:ffff:ffff:ffff,TH +2400:62c0::,2400:62c0:ffff:ffff:ffff:ffff:ffff:ffff,MM 2400:6300::,2400:6300:ffff:ffff:ffff:ffff:ffff:ffff,IN +2400:6340::,2400:6340:ffff:ffff:ffff:ffff:ffff:ffff,MM 2400:6380::,2400:6380:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:63c0::,2400:63c0:ffff:ffff:ffff:ffff:ffff:ffff,IN 2400:6400::,2400:6400:ffff:ffff:ffff:ffff:ffff:ffff,TO +2400:6440::,2400:6440:ffff:ffff:ffff:ffff:ffff:ffff,MM 2400:6480::,2400:6480:ffff:ffff:ffff:ffff:ffff:ffff,IN +2400:64c0::,2400:64c0:ffff:ffff:ffff:ffff:ffff:ffff,ID 2400:6500::,2400:6500::70ff:ffff:ffff:ffff:ffff,SG 2400:6500:0:7100::,2400:6500::71ff:ffff:ffff:ffff:ffff,JP 2400:6500:0:7200::,2400:6500::72ff:ffff:ffff:ffff:ffff,AU @@ -5916,74 +6003,142 @@ 2400:6500:0:7600::,2400:6500:100:70ff:ffff:ffff:ffff:ffff,SG 2400:6500:100:7100::,2400:6500:100:71ff:ffff:ffff:ffff:ffff,CN 2400:6500:100:7200::,2400:6500:ffff:ffff:ffff:ffff:ffff:ffff,SG +2400:6540::,2400:6540:ffff:ffff:ffff:ffff:ffff:ffff,VN 2400:6580::,2400:6580:ffff:ffff:ffff:ffff:ffff:ffff,IN +2400:65c0::,2400:65c0:ffff:ffff:ffff:ffff:ffff:ffff,IN 2400:6600::,2400:6600:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:6640::,2400:6640:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6680::,2400:6680:ffff:ffff:ffff:ffff:ffff:ffff,SG +2400:66c0::,2400:66c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6700::,2400:6700:ffff:ffff:ffff:ffff:ffff:ffff,JP +2400:6740::,2400:6740:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6780::,2400:6780:ffff:ffff:ffff:ffff:ffff:ffff,SG +2400:67c0::,2400:67c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6800::,2400:6800:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:6840::,2400:6840:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6880::,2400:6880:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:68c0::,2400:68c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6900::,2400:6900:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2400:6940::,2400:6940:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6980::,2400:6980:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:69c0::,2400:69c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6a00::,2400:6a00:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:6a40::,2400:6a40:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6a80::,2400:6a80:ffff:ffff:ffff:ffff:ffff:ffff,PH +2400:6ac0::,2400:6ac0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6b00::,2400:6b00:ffff:ffff:ffff:ffff:ffff:ffff,JP +2400:6b40::,2400:6b40:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6b80::,2400:6b80:ffff:ffff:ffff:ffff:ffff:ffff,IN +2400:6bc0::,2400:6bc0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6c00::,2400:6c00:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:6c40::,2400:6c40:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6c80::,2400:6c80:ffff:ffff:ffff:ffff:ffff:ffff,HK +2400:6cc0::,2400:6cc0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6d00::,2400:6d00:ffff:ffff:ffff:ffff:ffff:ffff,FJ +2400:6d40::,2400:6d40:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6d80::,2400:6d80:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:6dc0::,2400:6dc0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6e00::,2400:6e00:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:6e40::,2400:6e40:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6e80::,2400:6e80:ffff:ffff:ffff:ffff:ffff:ffff,MY +2400:6ec0::,2400:6ec0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6f00::,2400:6f00:ffff:ffff:ffff:ffff:ffff:ffff,JP +2400:6f40::,2400:6f40:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:6f80::,2400:6f80:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:6fc0::,2400:6fc0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7000::,2400:7000:ffff:ffff:ffff:ffff:ffff:ffff,TW +2400:7040::,2400:7040:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7080::,2400:7080:ffff:ffff:ffff:ffff:ffff:ffff,NP +2400:70c0::,2400:70c0:ffff:ffff:ffff:ffff:ffff:ffff,AU 2400:7100::,2400:7100:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:7140::,2400:7140:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7180::,2400:7180:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2400:71c0::,2400:71c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7200::,2400:7200:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:7240::,2400:7240:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:72c0::,2400:72c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7300::,2400:7300:ffff:ffff:ffff:ffff:ffff:ffff,HK +2400:7340::,2400:7340:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7380::,2400:7380:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2400:73c0::,2400:73c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7400::,2400:7400:ffff:ffff:ffff:ffff:ffff:ffff,MY +2400:7440::,2400:7440:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7480::,2400:7480:ffff:ffff:ffff:ffff:ffff:ffff,MN +2400:74c0::,2400:74c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7500::,2400:7500:ffff:ffff:ffff:ffff:ffff:ffff,ID +2400:7540::,2400:7540:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:75c0::,2400:75c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7600::,2400:7600:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:7640::,2400:7640:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7680::,2400:7680:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:76c0::,2400:76c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7700::,2400:7700:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2400:7740::,2400:7740:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7780::,2400:7780:ffff:ffff:ffff:ffff:ffff:ffff,IN +2400:77c0::,2400:77c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7800::,2400:7800:ffff:ffff:ffff:ffff:ffff:ffff,JP +2400:7840::,2400:7840:ffff:ffff:ffff:ffff:ffff:ffff,SE 2400:7880::,2400:7880:ffff:ffff:ffff:ffff:ffff:ffff,NZ +2400:78c0::,2400:78c0:ffff:ffff:ffff:ffff:ffff:ffff,ID 2400:7900::,2400:7900:ffff:ffff:ffff:ffff:ffff:ffff,IN +2400:7940::,2400:7940:ffff:ffff:ffff:ffff:ffff:ffff,JP 2400:7980::,2400:7980:ffff:ffff:ffff:ffff:ffff:ffff,SG +2400:79c0::,2400:79c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7a00::,2400:7a00:ffff:ffff:ffff:ffff:ffff:ffff,HK +2400:7a40::,2400:7a40:ffff:ffff:ffff:ffff:ffff:ffff,AU 2400:7a80::,2400:7a80:ffff:ffff:ffff:ffff:ffff:ffff,HK +2400:7ac0::,2400:7ac0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7b00::,2400:7b00:ffff:ffff:ffff:ffff:ffff:ffff,JP +2400:7b40::,2400:7b40:ffff:ffff:ffff:ffff:ffff:ffff,BD 2400:7b80::,2400:7b83:ffff:ffff:ffff:ffff:ffff:ffff,TH +2400:7bc0::,2400:7bc0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:7c00::,2400:7c00:ffff:ffff:ffff:ffff:ffff:ffff,MY +2400:7c40::,2400:7c40:ffff:ffff:ffff:ffff:ffff:ffff,BD 2400:7c80::,2400:7c80:ffff:ffff:ffff:ffff:ffff:ffff,IN +2400:7cc0::,2400:7cc0:ffff:ffff:ffff:ffff:ffff:ffff,BD 2400:7d00::,2400:7d00:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:7d40::,2400:7d40:ffff:ffff:ffff:ffff:ffff:ffff,BD 2400:7d80::,2400:7d80:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:7dc0::,2400:7dc0:ffff:ffff:ffff:ffff:ffff:ffff,ID 2400:7e00::,2400:7e00:ffff:ffff:ffff:ffff:ffff:ffff,JP +2400:7e40::,2400:7e40:ffff:ffff:ffff:ffff:ffff:ffff,HK 2400:7e80::,2400:7e80:ffff:ffff:ffff:ffff:ffff:ffff,SG +2400:7ec0::,2400:7ec0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2400:7f00::,2400:7f00:ffff:ffff:ffff:ffff:ffff:ffff,AU 2400:7f80::,2400:7f80:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:7fc0::,2400:7fc0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:8000::,2400:8000:ffff:ffff:ffff:ffff:ffff:ffff,ID +2400:8040::,2400:8040:ffff:ffff:ffff:ffff:ffff:ffff,JP 2400:8080::,2400:8080:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:80c0::,2400:80c0:ffff:ffff:ffff:ffff:ffff:ffff,IN 2400:8100::,2400:8100:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:8140::,2400:8140:ffff:ffff:ffff:ffff:ffff:ffff,ID 2400:8180::,2400:8180:ffff:ffff:ffff:ffff:ffff:ffff,IN +2400:81c0::,2400:81c0:ffff:ffff:ffff:ffff:ffff:ffff,LA 2400:8200::,2400:8200:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:8240::,2400:8240:ffff:ffff:ffff:ffff:ffff:ffff,SG 2400:8280::,2400:8280:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:82c0::,2400:82c0:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:8300::,2400:8300:ffff:ffff:ffff:ffff:ffff:ffff,JP +2400:8340::,2400:8340:ffff:ffff:ffff:ffff:ffff:ffff,AU 2400:8380::,2400:8380:ffff:ffff:ffff:ffff:ffff:ffff,AU +2400:83c0::,2400:83c0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2400:8400::,2400:8400:ffff:ffff:ffff:ffff:ffff:ffff,JP +2400:8440::,2400:8440:ffff:ffff:ffff:ffff:ffff:ffff,AU 2400:8480::,2400:8480:ffff:ffff:ffff:ffff:ffff:ffff,MM +2400:84c0::,2400:84c0:ffff:ffff:ffff:ffff:ffff:ffff,HK 2400:8500::,2400:8500:24ff:ffff:ffff:ffff:ffff:ffff,JP 2400:8500:2500::,2400:8500:2500:7fff:ffff:ffff:ffff:ffff,US 2400:8500:2500:8000::,2400:8500:ffff:ffff:ffff:ffff:ffff:ffff,JP +2400:8540::,2400:8540:ffff:ffff:ffff:ffff:ffff:ffff,HK 2400:8580::,2400:8580:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:85c0::,2400:85c0:ffff:ffff:ffff:ffff:ffff:ffff,IN 2400:8600::,2400:8600:ffff:ffff:ffff:ffff:ffff:ffff,CN +2400:8640::,2400:8640:ffff:ffff:ffff:ffff:ffff:ffff,HK 2400:8680::,2400:8680:ffff:ffff:ffff:ffff:ffff:ffff,HK +2400:86c0::,2400:86c0:ffff:ffff:ffff:ffff:ffff:ffff,BD 2400:8700::,2400:8700:ffff:ffff:ffff:ffff:ffff:ffff,JP +2400:8740::,2400:8740:ffff:ffff:ffff:ffff:ffff:ffff,IN 2400:8780::,2400:8780:ffff:ffff:ffff:ffff:ffff:ffff,CN 2400:8800::,2400:8800:ffff:ffff:ffff:ffff:ffff:ffff,HK 2400:8880::,2400:8880:ffff:ffff:ffff:ffff:ffff:ffff,IN @@ -6262,6 +6417,7 @@ 2400:f080::,2400:f080:ffff:ffff:ffff:ffff:ffff:ffff,IN 2400:f100::,2400:f100:ffff:ffff:ffff:ffff:ffff:ffff,HK 2400:f180::,2400:f180:ffff:ffff:ffff:ffff:ffff:ffff,SG +2400:f200::,2400:f200:ffff:ffff:ffff:ffff:ffff:ffff,PH 2400:f280::,2400:f280:ffff:ffff:ffff:ffff:ffff:ffff,AU 2400:f300::,2400:f300:ffff:ffff:ffff:ffff:ffff:ffff,IN 2400:f380::,2400:f380:ffff:ffff:ffff:ffff:ffff:ffff,AU @@ -6353,8 +6509,7 @@ 2401:1e80::,2401:1e80:ffff:ffff:ffff:ffff:ffff:ffff,AU 2401:1f00::,2401:1f01:ffff:ffff:ffff:ffff:ffff:ffff,AU 2401:1f80::,2401:1f80:ffff:ffff:ffff:ffff:ffff:ffff,SG -2401:2000::,2401:2000:ffff:ffff:ffff:ffff:ffff:ffff,JP -2401:2001::,2401:2001:ffff:ffff:ffff:ffff:ffff:ffff,AU +2401:2000::,2401:2001:ffff:ffff:ffff:ffff:ffff:ffff,AU 2401:2080::,2401:2080:ffff:ffff:ffff:ffff:ffff:ffff,CN 2401:2100::,2401:2100:ffff:ffff:ffff:ffff:ffff:ffff,JP 2401:2200::,2401:2200:ffff:ffff:ffff:ffff:ffff:ffff,MY @@ -6596,7 +6751,6 @@ 2401:b100::,2401:b100:ffff:ffff:ffff:ffff:ffff:ffff,IN 2401:b180::,2401:b180:ffff:ffff:ffff:ffff:ffff:ffff,CN 2401:b200::,2401:b200:ffff:ffff:ffff:ffff:ffff:ffff,IN -2401:b280::,2401:b280:ffff:ffff:ffff:ffff:ffff:ffff,HK 2401:b300::,2401:b300:ffff:ffff:ffff:ffff:ffff:ffff,AU 2401:b380::,2401:b380:ffff:ffff:ffff:ffff:ffff:ffff,AU 2401:b400::,2401:b400:ffff:ffff:ffff:ffff:ffff:ffff,CN @@ -6647,7 +6801,9 @@ 2401:c900:1201:1cd::,2401:c900:12ff:ffff:ffff:ffff:ffff:ffff,US 2401:c900:1300::,2401:c900:1300:ffff:ffff:ffff:ffff:ffff,SG 2401:c900:1301::,2401:c900:1301:7fff:ffff:ffff:ffff:ffff,AU -2401:c900:1301:8000::,2401:c901:ffff:ffff:ffff:ffff:ffff:ffff,SG +2401:c900:1301:8000::,2401:c900:1601:11c:ffff:ffff:ffff:ffff,SG +2401:c900:1601:11d::,2401:c900:1601:11d:ffff:ffff:ffff:ffff,KR +2401:c900:1601:11e::,2401:c901:ffff:ffff:ffff:ffff:ffff:ffff,SG 2401:c980::,2401:c980:ffff:ffff:ffff:ffff:ffff:ffff,NZ 2401:ca00::,2401:ca00:ffff:ffff:ffff:ffff:ffff:ffff,CN 2401:ca80::,2401:ca80:ffff:ffff:ffff:ffff:ffff:ffff,CN @@ -6771,10 +6927,12 @@ 2401:fa00:11::,2401:fa00:11:7fff:ffff:ffff:ffff:ffff,AU 2401:fa00:11:8000::,2401:fa00:11:ffff:ffff:ffff:ffff:ffff,IN 2401:fa00:12::,2401:fa00:12:ffff:ffff:ffff:ffff:ffff,NZ -2401:fa00:13::,2401:fa00:13:7fff:ffff:ffff:ffff:ffff,HK -2401:fa00:13:8000::,2401:fa00:17:ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:13::,2401:fa00:13:ffff:ffff:ffff:ffff:ffff,HK +2401:fa00:14::,2401:fa00:17:ffff:ffff:ffff:ffff:ffff,IN 2401:fa00:18::,2401:fa00:18:7fff:ffff:ffff:ffff:ffff,PH -2401:fa00:18:8000::,2401:fa00:1e:ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:18:8000::,2401:fa00:1b:ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:1c::,2401:fa00:1c:ffff:ffff:ffff:ffff:ffff,KR +2401:fa00:1d::,2401:fa00:1e:ffff:ffff:ffff:ffff:ffff,IN 2401:fa00:1f::,2401:fa00:1f:7fff:ffff:ffff:ffff:ffff,JP 2401:fa00:1f:8000::,2401:fa00:23:ffff:ffff:ffff:ffff:ffff,IN 2401:fa00:24::,2401:fa00:24:7fff:ffff:ffff:ffff:ffff,MY @@ -6790,7 +6948,9 @@ 2401:fa00:40::,2401:fa00:40:7fff:ffff:ffff:ffff:ffff,CN 2401:fa00:40:8000::,2401:fa00:40:ffff:ffff:ffff:ffff:ffff,IN 2401:fa00:41::,2401:fa00:41:7fff:ffff:ffff:ffff:ffff,CN -2401:fa00:41:8000::,2401:fa00:ffff:ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:41:8000::,2401:fa00:f7:ffff:ffff:ffff:ffff:ffff,IN +2401:fa00:f8::,2401:fa00:f8:ffff:ffff:ffff:ffff:ffff,PH +2401:fa00:f9::,2401:fa00:ffff:ffff:ffff:ffff:ffff:ffff,IN 2401:fa80::,2401:fa80:ffff:ffff:ffff:ffff:ffff:ffff,CN 2401:fb00::,2401:fb00:ffff:ffff:ffff:ffff:ffff:ffff,IN 2401:fb80::,2401:fb80:ffff:ffff:ffff:ffff:ffff:ffff,CN @@ -8151,6 +8311,7 @@ 2404:a280::,2404:a280:ffff:ffff:ffff:ffff:ffff:ffff,IN 2404:a300::,2404:a300:ffff:ffff:ffff:ffff:ffff:ffff,TH 2404:a380::,2404:a380:ffff:ffff:ffff:ffff:ffff:ffff,AU +2404:a480::,2404:a480:ffff:ffff:ffff:ffff:ffff:ffff,US 2404:a500::,2404:a500:ffff:ffff:ffff:ffff:ffff:ffff,IN 2404:a580::,2404:a580:ffff:ffff:ffff:ffff:ffff:ffff,SG 2404:a600::,2404:a600:ffff:ffff:ffff:ffff:ffff:ffff,JP @@ -8796,7 +8957,6 @@ 2405:d400::,2405:d400:ffff:ffff:ffff:ffff:ffff:ffff,PH 2405:d480::,2405:d480:ffff:ffff:ffff:ffff:ffff:ffff,AU 2405:d580::,2405:d580:ffff:ffff:ffff:ffff:ffff:ffff,JP -2405:d600::,2405:d600:ffff:ffff:ffff:ffff:ffff:ffff,AU 2405:d680::,2405:d680:ffff:ffff:ffff:ffff:ffff:ffff,MY 2405:d700::,2405:d700:ffff:ffff:ffff:ffff:ffff:ffff,CN 2405:d780::,2405:d780:ffff:ffff:ffff:ffff:ffff:ffff,JP @@ -10040,6 +10200,14 @@ 2602:233::,2602:233:ffff:ffff:ffff:ffff:ffff:ffff,US 2602:240::,2602:25f:ffff:ffff:ffff:ffff:ffff:ffff,US 2602:300::,2602:3ff:ffff:ffff:ffff:ffff:ffff:ffff,US +2602:ff14::,2602:ff14:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff15::,2602:ff15:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff16::,2602:ff16:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff17::,2602:ff17:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff18::,2602:ff18:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff19::,2602:ff19:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff1a::,2602:ff1a:fff:ffff:ffff:ffff:ffff:ffff,US +2602:ff1b::,2602:ff1b:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ff1c::,2602:ff1c:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ff1d::,2602:ff1d:fff:ffff:ffff:ffff:ffff:ffff,US 2602:ff1e::,2602:ff1e:fff:ffff:ffff:ffff:ffff:ffff,US @@ -10434,15 +10602,26 @@ 2603:6000::,2603:60ff:ffff:ffff:ffff:ffff:ffff:ffff,US 2604::,2604::ffff:ffff:ffff:ffff:ffff:ffff,US 2604:10::,2604:10:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:50::,2604:50:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:90::,2604:90:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:100::,2604:100:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:140::,2604:140:ffff:ffff:ffff:ffff:ffff:ffff,BM 2604:180::,2604:180:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:1c0::,2604:1c0:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:200::,2604:200:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:240::,2604:240:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:280::,2604:280:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:2c0::,2604:2c0:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:300::,2604:300:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:340::,2604:340:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:380::,2604:380:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:3c0::,2604:3c0:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:400::,2604:400:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:440::,2604:440:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:480::,2604:480:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:4c0::,2604:4c0:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:500::,2604:500:ffff:ffff:ffff:ffff:ffff:ffff,US +2604:540::,2604:540:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:580::,2604:580:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:600::,2604:600:ffff:ffff:ffff:ffff:ffff:ffff,US 2604:680::,2604:680:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -12426,20 +12605,35 @@ 2607:e000::,2607:e000:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:e080::,2607:e080:ffff:ffff:ffff:ffff:ffff:ffff,CA 2607:e100::,2607:e100:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:e180::,2607:e180:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:e200::,2607:e200:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:e280::,2607:e280:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:e300::,2607:e300:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:e380::,2607:e380:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:e400::,2607:e400:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:e480::,2607:e480:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:e500::,2607:e500:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:e580::,2607:e580:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:e600::,2607:e600:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:e680::,2607:e680:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:e700::,2607:e700:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:e780::,2607:e780:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:e800::,2607:e800:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:e880::,2607:e880:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:e900::,2607:e900:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:e980::,2607:e980:ffff:ffff:ffff:ffff:ffff:ffff,CA 2607:ea00::,2607:ea00:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:ea80::,2607:ea80:ffff:ffff:ffff:ffff:ffff:ffff,CA 2607:eb00::,2607:eb00:ffff:ffff:ffff:ffff:ffff:ffff,CA +2607:eb80::,2607:eb80:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:ec00::,2607:ec00:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:ec80::,2607:ec80:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:ed00::,2607:ed00:ffff:ffff:ffff:ffff:ffff:ffff,CA +2607:ed80::,2607:ed80:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:ee00::,2607:ee00:ffff:ffff:ffff:ffff:ffff:ffff,CA +2607:ee80::,2607:ee80:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:ef00::,2607:ef00:ffff:ffff:ffff:ffff:ffff:ffff,US +2607:ef80::,2607:ef80:ffff:ffff:ffff:ffff:ffff:ffff,CA 2607:f000::,2607:f000:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:f008::,2607:f008:ffff:ffff:ffff:ffff:ffff:ffff,US 2607:f010::,2607:f010:ffff:ffff:ffff:ffff:ffff:ffff,US @@ -13374,11 +13568,17 @@ 2620:e:c000::,2620:e:c000:ffff:ffff:ffff:ffff:ffff,US 2620:e:e000::,2620:e:e000:ffff:ffff:ffff:ffff:ffff,US 2620:f::,2620:f:f:ffff:ffff:ffff:ffff:ffff,US +2620:f:2000::,2620:f:2000:ffff:ffff:ffff:ffff:ffff,US 2620:f:4000::,2620:f:4000:ffff:ffff:ffff:ffff:ffff,US +2620:f:6000::,2620:f:6000:ffff:ffff:ffff:ffff:ffff,US 2620:f:8000::,2620:f:8000:ffff:ffff:ffff:ffff:ffff,US +2620:f:a000::,2620:f:a000:ffff:ffff:ffff:ffff:ffff,US 2620:f:c000::,2620:f:c000:ffff:ffff:ffff:ffff:ffff,US +2620:f:e000::,2620:f:e000:ffff:ffff:ffff:ffff:ffff,US 2620:10::,2620:10::ffff:ffff:ffff:ffff:ffff,US +2620:10:2000::,2620:10:2000:ffff:ffff:ffff:ffff:ffff,US 2620:10:4000::,2620:10:4000:ffff:ffff:ffff:ffff:ffff,US +2620:10:6000::,2620:10:6000:ffff:ffff:ffff:ffff:ffff,US 2620:10:8000::,2620:10:800f:ffff:ffff:ffff:ffff:ffff,CA 2620:10:c000::,2620:10:c000:ffff:ffff:ffff:ffff:ffff,US 2620:11::,2620:11:ff:ffff:ffff:ffff:ffff:ffff,US @@ -13764,7 +13964,7 @@ 2620:73::,2620:73::ffff:ffff:ffff:ffff:ffff,US 2620:73:8000::,2620:73:8000:ffff:ffff:ffff:ffff:ffff,US 2620:73:c000::,2620:73:c000:ffff:ffff:ffff:ffff:ffff,US -2620:74::,2620:74:1f:ffff:ffff:ffff:ffff:ffff,US +2620:74::,2620:74:ff:ffff:ffff:ffff:ffff:ffff,US 2620:74:40c0::,2620:74:40c0:ffff:ffff:ffff:ffff:ffff,US 2620:74:8080::,2620:74:8080:ffff:ffff:ffff:ffff:ffff,US 2620:74:c040::,2620:74:c040:ffff:ffff:ffff:ffff:ffff,US @@ -15022,6 +15222,16 @@ 2620:12c::,2620:12c:f:ffff:ffff:ffff:ffff:ffff,US 2620:12c:1000::,2620:12c:100f:ffff:ffff:ffff:ffff:ffff,US 2620:12c:2000::,2620:12c:20ff:ffff:ffff:ffff:ffff:ffff,US +2620:12c:3000::,2620:12c:300f:ffff:ffff:ffff:ffff:ffff,US +2620:12c:4000::,2620:12c:400f:ffff:ffff:ffff:ffff:ffff,US +2620:12c:5000::,2620:12c:50ff:ffff:ffff:ffff:ffff:ffff,US +2620:12c:6000::,2620:12c:600f:ffff:ffff:ffff:ffff:ffff,US +2620:12c:7000::,2620:12c:700f:ffff:ffff:ffff:ffff:ffff,US +2620:12c:8000::,2620:12c:80ff:ffff:ffff:ffff:ffff:ffff,US +2620:12c:9000::,2620:12c:900f:ffff:ffff:ffff:ffff:ffff,US +2620:12c:a000::,2620:12c:a00f:ffff:ffff:ffff:ffff:ffff,US +2620:12c:b000::,2620:12c:b0ff:ffff:ffff:ffff:ffff:ffff,US +2620:12c:c000::,2620:12c:c00f:ffff:ffff:ffff:ffff:ffff,US 2620:140::,2620:140:3ff:ffff:ffff:ffff:ffff:ffff,US 2620:141::,2620:141:fff:ffff:ffff:ffff:ffff:ffff,US 2620:143::,2620:143:7ff:ffff:ffff:ffff:ffff:ffff,US @@ -15194,7 +15404,7 @@ 2800:450::,2800:450:ffff:ffff:ffff:ffff:ffff:ffff,CR 2800:460::,2800:460:ffff:ffff:ffff:ffff:ffff:ffff,CL 2800:470::,2800:470:ffff:ffff:ffff:ffff:ffff:ffff,SX -2800:480::,2800:480:ffff:ffff:ffff:ffff:ffff:ffff,CO +2800:480::,2800:487:ffff:ffff:ffff:ffff:ffff:ffff,CO 2800:490::,2800:490:ffff:ffff:ffff:ffff:ffff:ffff,CO 2800:4b0::,2800:4b0:ffff:ffff:ffff:ffff:ffff:ffff,PE 2800:4c0::,2800:4c0:ffff:ffff:ffff:ffff:ffff:ffff,CL @@ -15407,6 +15617,7 @@ 2801:10:9000::,2801:10:9000:ffff:ffff:ffff:ffff:ffff,PY 2801:10:a000::,2801:10:a000:ffff:ffff:ffff:ffff:ffff,AR 2801:10:c000::,2801:10:c000:ffff:ffff:ffff:ffff:ffff,CO +2801:10:d000::,2801:10:d000:ffff:ffff:ffff:ffff:ffff,AR 2801:10:e000::,2801:10:e000:ffff:ffff:ffff:ffff:ffff,AR 2801:11::,2801:11::ffff:ffff:ffff:ffff:ffff,AR 2801:11:1000::,2801:11:1000:ffff:ffff:ffff:ffff:ffff,PY @@ -15450,6 +15661,7 @@ 2801:14:9000::,2801:14:9000:ffff:ffff:ffff:ffff:ffff,CL 2801:14:a000::,2801:14:a001:ffff:ffff:ffff:ffff:ffff,UY 2801:14:c000::,2801:14:c000:ffff:ffff:ffff:ffff:ffff,BO +2801:14:d000::,2801:14:d00f:ffff:ffff:ffff:ffff:ffff,PA 2801:14:e000::,2801:14:e000:ffff:ffff:ffff:ffff:ffff,PY 2801:15::,2801:15::ffff:ffff:ffff:ffff:ffff,EC 2801:15:1000::,2801:15:1000:ffff:ffff:ffff:ffff:ffff,SV @@ -15477,6 +15689,7 @@ 2801:17:1000::,2801:17:1000:ffff:ffff:ffff:ffff:ffff,HN 2801:17:2000::,2801:17:2000:ffff:ffff:ffff:ffff:ffff,PY 2801:17:4000::,2801:17:4000:ffff:ffff:ffff:ffff:ffff,CO +2801:17:5000::,2801:17:5000:ffff:ffff:ffff:ffff:ffff,HT 2801:17:6000::,2801:17:6000:ffff:ffff:ffff:ffff:ffff,AR 2801:17:8000::,2801:17:8000:ffff:ffff:ffff:ffff:ffff,CR 2801:17:9000::,2801:17:9000:ffff:ffff:ffff:ffff:ffff,PA @@ -15561,6 +15774,7 @@ 2801:1f:1000::,2801:1f:1000:ffff:ffff:ffff:ffff:ffff,HN 2801:1f:2000::,2801:1f:2000:ffff:ffff:ffff:ffff:ffff,CR 2801:1f:4000::,2801:1f:4000:ffff:ffff:ffff:ffff:ffff,CR +2801:1f:5000::,2801:1f:5000:ffff:ffff:ffff:ffff:ffff,CO 2801:1f:6000::,2801:1f:6000:ffff:ffff:ffff:ffff:ffff,AR 2801:1f:8000::,2801:1f:8000:ffff:ffff:ffff:ffff:ffff,AR 2801:1f:9000::,2801:1f:9000:ffff:ffff:ffff:ffff:ffff,AR @@ -15885,6 +16099,13 @@ 2801:80:1ad0::,2801:80:1ad1:ffff:ffff:ffff:ffff:ffff,BR 2801:80:1ae0::,2801:80:1ae0:ffff:ffff:ffff:ffff:ffff,BR 2801:80:1af0::,2801:80:1af0:ffff:ffff:ffff:ffff:ffff,BR +2801:80:1b00::,2801:80:1b00:ffff:ffff:ffff:ffff:ffff,BR +2801:80:1b10::,2801:80:1b10:ffff:ffff:ffff:ffff:ffff,BR +2801:80:1b20::,2801:80:1b20:ffff:ffff:ffff:ffff:ffff,BR +2801:80:1b30::,2801:80:1b30:ffff:ffff:ffff:ffff:ffff,BR +2801:80:1b40::,2801:80:1b40:ffff:ffff:ffff:ffff:ffff,BR +2801:80:1b50::,2801:80:1b50:ffff:ffff:ffff:ffff:ffff,BR +2801:80:1b60::,2801:80:1b60:ffff:ffff:ffff:ffff:ffff,BR 2801:82::,2801:82:ffff:ffff:ffff:ffff:ffff:ffff,BR 2801:84::,2801:84:ffff:ffff:ffff:ffff:ffff:ffff,BR 2801:86::,2801:86:ffff:ffff:ffff:ffff:ffff:ffff,BR @@ -15947,6 +16168,7 @@ 2801:130::,2801:130:fff:ffff:ffff:ffff:ffff:ffff,CO 2801:138::,2801:138:ff:ffff:ffff:ffff:ffff:ffff,PA 2801:140::,2801:140:ffff:ffff:ffff:ffff:ffff:ffff,AR +2801:144::,2801:144:3f:ffff:ffff:ffff:ffff:ffff,CO 2801:148::,2801:148:ff:ffff:ffff:ffff:ffff:ffff,AR 2801:150::,2801:150:ffff:ffff:ffff:ffff:ffff:ffff,PE 2801:158::,2801:158:fff:ffff:ffff:ffff:ffff:ffff,PA @@ -15982,6 +16204,7 @@ 2802:3:a000::,2802:3:ffff:ffff:ffff:ffff:ffff:ffff,CO 2802:8000::,2802:80ff:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803::,2803::ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:40::,2803:40:ffff:ffff:ffff:ffff:ffff:ffff,PE 2803:80::,2803:80::ffff:ffff:ffff:ffff,BR 2803:80:0:1::,2803:80:fff:ffff:ffff:ffff:ffff:ffff,CL 2803:80:1000::,2803:80:1fff:ffff:ffff:ffff:ffff:ffff,BR @@ -15994,6 +16217,7 @@ 2803:200::,2803:200:ffff:ffff:ffff:ffff:ffff:ffff,PA 2803:240::,2803:240:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:280::,2803:280:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:2c0::,2803:2c0:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:300::,2803:300:ffff:ffff:ffff:ffff:ffff:ffff,DO 2803:340::,2803:340:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:380::,2803:380:ffff:ffff:ffff:ffff:ffff:ffff,CL @@ -16050,6 +16274,7 @@ 2803:1200::,2803:1200:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:1240::,2803:1240:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:1280::,2803:1280:ffff:ffff:ffff:ffff:ffff:ffff,PE +2803:12c0::,2803:12c0:ffff:ffff:ffff:ffff:ffff:ffff,DO 2803:1300::,2803:1300:ffff:ffff:ffff:ffff:ffff:ffff,CR 2803:1340::,2803:1340:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:1380::,2803:1380:ffff:ffff:ffff:ffff:ffff:ffff,HN @@ -16067,7 +16292,6 @@ 2803:1780::,2803:1780:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:1800::,2803:1800:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:1840::,2803:1840:ffff:ffff:ffff:ffff:ffff:ffff,CO -2803:1880::,2803:1880:ffff:ffff:ffff:ffff:ffff:ffff,PE 2803:18c0::,2803:18c0:ffff:ffff:ffff:ffff:ffff:ffff,SX 2803:1900::,2803:1900:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:1940::,2803:1940:ffff:ffff:ffff:ffff:ffff:ffff,AR @@ -16094,12 +16318,12 @@ 2803:2040::,2803:2040:ffff:ffff:ffff:ffff:ffff:ffff,CR 2803:2080::,2803:2080:ffff:ffff:ffff:ffff:ffff:ffff,HN 2803:20c0::,2803:20c0:ffff:ffff:ffff:ffff:ffff:ffff,AR -2803:2100::,2803:2100:ffff:ffff:ffff:ffff:ffff:ffff,PE 2803:2140::,2803:2140:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:2180::,2803:2180:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:2200::,2803:2200:ffff:ffff:ffff:ffff:ffff:ffff,EC 2803:2240::,2803:2240:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:2280::,2803:2280:ffff:ffff:ffff:ffff:ffff:ffff,BZ +2803:22c0::,2803:22c0:ffff:ffff:ffff:ffff:ffff:ffff,VE 2803:2300::,2803:2300:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:2340::,2803:2340:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:2380::,2803:2380:ffff:ffff:ffff:ffff:ffff:ffff,AR @@ -16203,6 +16427,7 @@ 2803:4200::,2803:4200:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:4240::,2803:4240:ffff:ffff:ffff:ffff:ffff:ffff,PY 2803:4280::,2803:4280:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:42c0::,2803:42c0:ffff:ffff:ffff:ffff:ffff:ffff,HN 2803:4300::,2803:4300:ffff:ffff:ffff:ffff:ffff:ffff,PA 2803:4340::,2803:4340:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:4380::,2803:4380:ffff:ffff:ffff:ffff:ffff:ffff,BO @@ -16304,6 +16529,7 @@ 2803:6200::,2803:6200:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:6240::,2803:6240:ffff:ffff:ffff:ffff:ffff:ffff,VE 2803:6280::,2803:6280:ffff:ffff:ffff:ffff:ffff:ffff,PA +2803:62c0::,2803:62c0:ffff:ffff:ffff:ffff:ffff:ffff,EC 2803:6300::,2803:6300:ffff:ffff:ffff:ffff:ffff:ffff,GT 2803:6340::,2803:6340:ffff:ffff:ffff:ffff:ffff:ffff,CR 2803:6380::,2803:6380:ffff:ffff:ffff:ffff:ffff:ffff,AR @@ -16407,6 +16633,7 @@ 2803:8200::,2803:8200:ffff:ffff:ffff:ffff:ffff:ffff,HN 2803:8240::,2803:8240:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:8280::,2803:8280:ffff:ffff:ffff:ffff:ffff:ffff,VE +2803:82c0::,2803:82c0:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:8300::,2803:8300:ffff:ffff:ffff:ffff:ffff:ffff,EC 2803:8340::,2803:8340:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:8380::,2803:8380:ffff:ffff:ffff:ffff:ffff:ffff,AR @@ -16509,6 +16736,7 @@ 2803:a200::,2803:a200:ffff:ffff:ffff:ffff:ffff:ffff,SR 2803:a240::,2803:a240:ffff:ffff:ffff:ffff:ffff:ffff,EC 2803:a280::,2803:a280:ffff:ffff:ffff:ffff:ffff:ffff,DO +2803:a2c0::,2803:a2c0:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:a340::,2803:a340:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:a380::,2803:a380:ffff:ffff:ffff:ffff:ffff:ffff,PA 2803:a400::,2803:a400:ffff:ffff:ffff:ffff:ffff:ffff,EC @@ -16610,6 +16838,7 @@ 2803:c200::,2803:c200:ffff:ffff:ffff:ffff:ffff:ffff,PE 2803:c240::,2803:c240:ffff:ffff:ffff:ffff:ffff:ffff,BZ 2803:c280::,2803:c280:ffff:ffff:ffff:ffff:ffff:ffff,EC +2803:c2c0::,2803:c2c0:ffff:ffff:ffff:ffff:ffff:ffff,EC 2803:c300::,2803:c300:ffff:ffff:ffff:ffff:ffff:ffff,GT 2803:c340::,2803:c340:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:c380::,2803:c380:ffff:ffff:ffff:ffff:ffff:ffff,HN @@ -16715,6 +16944,7 @@ 2803:e200::,2803:e200:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:e240::,2803:e240:ffff:ffff:ffff:ffff:ffff:ffff,PA 2803:e280::,2803:e280:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:e2c0::,2803:e2c0:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:e300::,2803:e300:ffff:ffff:ffff:ffff:ffff:ffff,CR 2803:e340::,2803:e340:ffff:ffff:ffff:ffff:ffff:ffff,GY 2803:e380::,2803:e380:ffff:ffff:ffff:ffff:ffff:ffff,HN @@ -16798,6 +17028,7 @@ 2803:fc00::,2803:fc00:ffff:ffff:ffff:ffff:ffff:ffff,PY 2803:fc40::,2803:fc40:ffff:ffff:ffff:ffff:ffff:ffff,AR 2803:fc80::,2803:fc80:ffff:ffff:ffff:ffff:ffff:ffff,AR +2803:fcc0::,2803:fcc0:ffff:ffff:ffff:ffff:ffff:ffff,CL 2803:fd00::,2803:fd00:ffff:ffff:ffff:ffff:ffff:ffff,CO 2803:fd40::,2803:fd40:ffff:ffff:ffff:ffff:ffff:ffff,SV 2803:fd80::,2803:fd80:ffff:ffff:ffff:ffff:ffff:ffff,CL @@ -17972,6 +18203,7 @@ 2804:1324::,2804:1324:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:1328::,2804:1328:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:132c::,2804:132c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:1330::,2804:1330:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:1334::,2804:1334:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:1338::,2804:1338:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:133c::,2804:133c:ffff:ffff:ffff:ffff:ffff:ffff,BR @@ -18664,7 +18896,6 @@ 2804:1e10::,2804:1e10:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:1e14::,2804:1e14:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:1e18::,2804:1e18:ffff:ffff:ffff:ffff:ffff:ffff,BR -2804:1e1c::,2804:1e1c:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:1e20::,2804:1e20:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:1e24::,2804:1e24:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:1e28::,2804:1e28:ffff:ffff:ffff:ffff:ffff:ffff,BR @@ -20223,6 +20454,62 @@ 2804:3728::,2804:3728:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:372c::,2804:372c:ffff:ffff:ffff:ffff:ffff:ffff,BR 2804:3730::,2804:3730:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3734::,2804:3734:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3738::,2804:3738:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:373c::,2804:373c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3740::,2804:3740:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3744::,2804:3744:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3748::,2804:3748:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:374c::,2804:374c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3750::,2804:3750:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3754::,2804:3754:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3758::,2804:3758:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:375c::,2804:375c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3760::,2804:3760:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3764::,2804:3764:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3768::,2804:3768:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:376c::,2804:376c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3770::,2804:3770:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3774::,2804:3774:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3778::,2804:3778:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:377c::,2804:377c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3780::,2804:3780:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3784::,2804:3784:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3788::,2804:3788:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:378c::,2804:378c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3790::,2804:3790:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3794::,2804:3794:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3798::,2804:3798:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:379c::,2804:379c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37a0::,2804:37a0:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37a4::,2804:37a4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37a8::,2804:37a8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37ac::,2804:37ac:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37b0::,2804:37b0:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37b4::,2804:37b4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37b8::,2804:37b8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37bc::,2804:37bc:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37c0::,2804:37c0:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37c4::,2804:37c4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37c8::,2804:37c8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37cc::,2804:37cc:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37d0::,2804:37d0:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37d4::,2804:37d4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37d8::,2804:37d8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37dc::,2804:37dc:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37e0::,2804:37e0:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37e4::,2804:37e4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37e8::,2804:37e8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37ec::,2804:37ec:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37f0::,2804:37f0:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37f4::,2804:37f4:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37f8::,2804:37f8:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:37fc::,2804:37fc:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3800::,2804:3800:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3804::,2804:3804:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3808::,2804:3808:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:380c::,2804:380c:ffff:ffff:ffff:ffff:ffff:ffff,BR +2804:3810::,2804:3810:ffff:ffff:ffff:ffff:ffff:ffff,BR 2806::,2806:f:ffff:ffff:ffff:ffff:ffff:ffff,MX 2806:200::,2806:216::ffff:ffff:ffff:ffff:ffff,MX 2806:217::,2806:220:ffff:ffff:ffff:ffff:ffff:ffff,MX @@ -20233,7 +20520,8 @@ 2806:250::,2806:250:ffff:ffff:ffff:ffff:ffff:ffff,MX 2806:260::,2806:260:ffff:ffff:ffff:ffff:ffff:ffff,MX 2806:270::,2806:270:ffff:ffff:ffff:ffff:ffff:ffff,MX -2806:280::,2806:286:ffff:ffff:ffff:ffff:ffff:ffff,MX +2806:280::,2806:287:ffff:ffff:ffff:ffff:ffff:ffff,MX +2806:289::,2806:289:ffff:ffff:ffff:ffff:ffff:ffff,MX 2806:290::,2806:290:ffff:ffff:ffff:ffff:ffff:ffff,MX 2806:2a0::,2806:2a0:ffff:ffff:ffff:ffff:ffff:ffff,MX 2806:2b0::,2806:2b0:ffff:ffff:ffff:ffff:ffff:ffff,MX @@ -20489,7 +20777,9 @@ 2a00:13b0::,2a00:13b0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:13b8::,2a00:13b8:ffff:ffff:ffff:ffff:ffff:ffff,RO 2a00:13c0::,2a00:13c0:ffff:ffff:ffff:ffff:ffff:ffff,RU -2a00:13c8::,2a00:13c8:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a00:13c8::,2a00:13c8:2:ffff:ffff:ffff:ffff:ffff,DE +2a00:13c8:3::,2a00:13c8:3:ffff:ffff:ffff:ffff:ffff,CH +2a00:13c8:4::,2a00:13c8:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:13d0::,2a00:13d0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:13d8::,2a00:13df:ffff:ffff:ffff:ffff:ffff:ffff,SI 2a00:13e0::,2a00:13e0:ffff:ffff:ffff:ffff:ffff:ffff,NO @@ -20520,7 +20810,7 @@ 2a00:1488::,2a00:1488:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a00:1490::,2a00:1490:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a00:1498::,2a00:1498:ffff:ffff:ffff:ffff:ffff:ffff,AT -2a00:14a0::,2a00:14a0:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a00:14a0::,2a00:14a7:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:14a8::,2a00:14a8:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:14b0::,2a00:14b7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:14b8::,2a00:14b8:ffff:ffff:ffff:ffff:ffff:ffff,FI @@ -21111,7 +21401,6 @@ 2a00:5dc0::,2a00:5dc0:ffff:ffff:ffff:ffff:ffff:ffff,RO 2a00:5de0::,2a00:5de0:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a00:5e00::,2a00:5e00:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a00:5e20::,2a00:5e20:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a00:5e40::,2a00:5e40:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a00:5e60::,2a00:5e60:ffff:ffff:ffff:ffff:ffff:ffff,LB 2a00:5e80::,2a00:5e80:ffff:ffff:ffff:ffff:ffff:ffff,FR @@ -21191,7 +21480,6 @@ 2a00:67e0::,2a00:67e7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:6800::,2a00:6800:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:6820::,2a00:6820:ffff:ffff:ffff:ffff:ffff:ffff,FR -2a00:6840::,2a00:6840:ffff:ffff:ffff:ffff:ffff:ffff,SI 2a00:6860::,2a00:6867:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a00:6880::,2a00:6880:ffff:ffff:ffff:ffff:ffff:ffff,LT 2a00:68a0::,2a00:68a0:ffff:ffff:ffff:ffff:ffff:ffff,AE @@ -21327,7 +21615,6 @@ 2a00:7920::,2a00:7920:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a00:7940::,2a00:7940:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a00:7960::,2a00:7960:ffff:ffff:ffff:ffff:ffff:ffff,NL -2a00:7980::,2a00:7980:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a00:79a0::,2a00:79a0:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a00:79c0::,2a00:79c0:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:79e0::,2a00:79e0::ffff:ffff:ffff:ffff:ffff,CH @@ -21347,7 +21634,9 @@ 2a00:79e0:23::,2a00:79e0:23:ffff:ffff:ffff:ffff:ffff,GB 2a00:79e0:24::,2a00:79e0:26:ffff:ffff:ffff:ffff:ffff,CH 2a00:79e0:27::,2a00:79e0:27:ffff:ffff:ffff:ffff:ffff,NL -2a00:79e0:28::,2a00:79e1:abb:ffff:ffff:ffff:ffff:ffff,CH +2a00:79e0:28::,2a00:79e0:ffe2:4ff:ffff:ffff:ffff:ffff,CH +2a00:79e0:ffe2:500::,2a00:79e0:ffe2:5ff:ffff:ffff:ffff:ffff,IE +2a00:79e0:ffe2:600::,2a00:79e1:abb:ffff:ffff:ffff:ffff:ffff,CH 2a00:79e1:abc::,2a00:79e1:abc:ff:ffff:ffff:ffff:ffff,GB 2a00:79e1:abc:100::,2a00:79e1:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a00:7a00::,2a00:7a00:ffff:ffff:ffff:ffff:ffff:ffff,NO @@ -21408,7 +21697,7 @@ 2a00:8140::,2a00:8140:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a00:8160::,2a00:8160:ffff:ffff:ffff:ffff:ffff:ffff,FI 2a00:8180::,2a00:8180:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a00:81a0::,2a00:81a0:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a00:81a0::,2a00:81a7:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a00:81c0::,2a00:81c0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:81e0::,2a00:81e0:ffff:ffff:ffff:ffff:ffff:ffff,LV 2a00:8200::,2a00:8200:ffff:ffff:ffff:ffff:ffff:ffff,DK @@ -22384,8 +22673,8 @@ 2a00:fd00::,2a00:fd00:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a00:fd20::,2a00:fd20:ffff:ffff:ffff:ffff:ffff:ffff,LB 2a00:fd40::,2a00:fd40:5:ffff:ffff:ffff:ffff:ffff,NL -2a00:fd40:6::,2a00:fd40:6:ffff:ffff:ffff:ffff:ffff,SK -2a00:fd40:7::,2a00:fd40:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a00:fd40:6::,2a00:fd40:7:ffff:ffff:ffff:ffff:ffff,SK +2a00:fd40:8::,2a00:fd40:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a00:fd60::,2a00:fd60:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:fd80::,2a00:fd80:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a00:fda0::,2a00:fda0:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -22595,6 +22884,7 @@ 2a01:3d8::,2a01:3d8:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a01:3e0:402::,2a01:3e0:403:ffff:ffff:ffff:ffff:ffff,FR 2a01:3e0:501::,2a01:3e0:501:ffff:ffff:ffff:ffff:ffff,RU +2a01:3e0:502::,2a01:3e0:502:ffff:ffff:ffff:ffff:ffff,DE 2a01:3e0:801::,2a01:3e0:801:ffff:ffff:ffff:ffff:ffff,FR 2a01:3e0:d01::,2a01:3e0:d02:ffff:ffff:ffff:ffff:ffff,GB 2a01:3e0:1101::,2a01:3e0:1101:ffff:ffff:ffff:ffff:ffff,NL @@ -23392,7 +23682,6 @@ 2a01:8fc0::,2a01:8fc0:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a01:8fe0::,2a01:8fe0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a01:9000::,2a01:9000:ffff:ffff:ffff:ffff:ffff:ffff,FR -2a01:9020::,2a01:9020:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a01:9040::,2a01:9040:ffff:ffff:ffff:ffff:ffff:ffff,SI 2a01:9060::,2a01:9060:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a01:9080::,2a01:9080:ffff:ffff:ffff:ffff:ffff:ffff,SE @@ -24311,7 +24600,7 @@ 2a02:1628::,2a02:1628:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:1630::,2a02:1630:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a02:1638::,2a02:1638:ffff:ffff:ffff:ffff:ffff:ffff,CZ -2a02:1648::,2a02:1648:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a02:1648::,2a02:164f:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:1650::,2a02:1650:ffff:ffff:ffff:ffff:ffff:ffff,SA 2a02:1658::,2a02:1658:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:1660::,2a02:1660:ffff:ffff:ffff:ffff:ffff:ffff,NO @@ -24344,7 +24633,7 @@ 2a02:1740::,2a02:1740:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a02:1748::,2a02:1748:ffff:ffff:ffff:ffff:ffff:ffff,AT 2a02:1750::,2a02:1750:ffff:ffff:ffff:ffff:ffff:ffff,RU -2a02:1758::,2a02:1758:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a02:1758::,2a02:175f:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a02:1760::,2a02:1760:ffff:ffff:ffff:ffff:ffff:ffff,BE 2a02:1770::,2a02:1770:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a02:1778::,2a02:1778:ffff:ffff:ffff:ffff:ffff:ffff,PL @@ -24737,7 +25026,6 @@ 2a02:2bb0::,2a02:2bb0:ffff:ffff:ffff:ffff:ffff:ffff,IE 2a02:2bb8::,2a02:2bb8:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a02:2bc0::,2a02:2bc0:ffff:ffff:ffff:ffff:ffff:ffff,GB -2a02:2be0::,2a02:2be0:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a02:2c00::,2a02:2c07:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a02:2c40::,2a02:2c40:ffff:ffff:ffff:ffff:ffff:ffff,BE 2a02:2c60::,2a02:2c60:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -24820,7 +25108,14 @@ 2a02:4720::,2a02:4720:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a02:4740::,2a02:4740:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a02:4760::,2a02:4760:ffff:ffff:ffff:ffff:ffff:ffff,RU -2a02:4780::,2a02:4780:ffff:ffff:ffff:ffff:ffff:ffff,LT +2a02:4780::,2a02:4780::ffff:ffff:ffff:ffff:ffff,LT +2a02:4780:1::,2a02:4780:1:ffff:ffff:ffff:ffff:ffff,US +2a02:4780:2::,2a02:4780:2:ffff:ffff:ffff:ffff:ffff,GB +2a02:4780:3::,2a02:4780:bac:ffff:ffff:ffff:ffff:ffff,LT +2a02:4780:bad::,2a02:4780:bad:ffff:ffff:ffff:ffff:ffff,US +2a02:4780:bae::,2a02:4780:deac:ffff:ffff:ffff:ffff:ffff,LT +2a02:4780:dead::,2a02:4780:dead:ffff:ffff:ffff:ffff:ffff,US +2a02:4780:deae::,2a02:4780:ffff:ffff:ffff:ffff:ffff:ffff,LT 2a02:47a0::,2a02:47a0:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a02:47c0::,2a02:47c0:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a02:47e0::,2a02:47e7:ffff:ffff:ffff:ffff:ffff:ffff,BE @@ -25676,7 +25971,6 @@ 2a03:ae0::,2a03:ae0:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a03:b00::,2a03:b00:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a03:b40::,2a03:b40:ffff:ffff:ffff:ffff:ffff:ffff,ES -2a03:b60::,2a03:b60:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a03:b80::,2a03:b80:ffff:ffff:ffff:ffff:ffff:ffff,FI 2a03:ba0::,2a03:ba7:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a03:bc0::,2a03:bc7:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -26077,7 +26371,7 @@ 2a03:3b60::,2a03:3b60:ffff:ffff:ffff:ffff:ffff:ffff,IR 2a03:3b80::,2a03:3b80:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a03:3ba0::,2a03:3ba0:ffff:ffff:ffff:ffff:ffff:ffff,ES -2a03:3bc0::,2a03:3bc0:ffff:ffff:ffff:ffff:ffff:ffff,SE +2a03:3bc0::,2a03:3bc0:ffff:ffff:ffff:ffff:ffff:ffff,MT 2a03:3be0::,2a03:3be0:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a03:3c00::,2a03:3c00:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a03:3c20::,2a03:3c20:ffff:ffff:ffff:ffff:ffff:ffff,FR @@ -26124,7 +26418,6 @@ 2a03:41c0::,2a03:41c0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a03:41e0::,2a03:41e0:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a03:4200::,2a03:4200:ffff:ffff:ffff:ffff:ffff:ffff,GB -2a03:4220::,2a03:4220:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a03:4240::,2a03:4240:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a03:4260::,2a03:4260:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a03:4280::,2a03:4280:ffff:ffff:ffff:ffff:ffff:ffff,HR @@ -26376,7 +26669,6 @@ 2a03:5f20::,2a03:5f20:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a03:5f60::,2a03:5f60:ffff:ffff:ffff:ffff:ffff:ffff,HU 2a03:5f80::,2a03:5f80:ffff:ffff:ffff:ffff:ffff:ffff,RU -2a03:5fa0::,2a03:5fa0:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a03:5fc0::,2a03:5fc0:ffff:ffff:ffff:ffff:ffff:ffff,FI 2a03:5fe0::,2a03:5fe0:ffff:ffff:ffff:ffff:ffff:ffff,RS 2a03:6000::,2a03:6007:ffff:ffff:ffff:ffff:ffff:ffff,NL @@ -26445,7 +26737,7 @@ 2a03:67c0::,2a03:67c0:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a03:67e0::,2a03:67e0:ffff:ffff:ffff:ffff:ffff:ffff,LT 2a03:6800::,2a03:6800:ffff:ffff:ffff:ffff:ffff:ffff,IT -2a03:6820::,2a03:6820:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a03:6820::,2a03:6820:ffff:ffff:ffff:ffff:ffff:ffff,LV 2a03:6840::,2a03:6840:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a03:6860::,2a03:6860:ffff:ffff:ffff:ffff:ffff:ffff,BE 2a03:6880::,2a03:6880:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -27154,7 +27446,7 @@ 2a03:c140::,2a03:c140:ffff:ffff:ffff:ffff:ffff:ffff,AE 2a03:c180::,2a03:c180:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a03:c1c0::,2a03:c1c0:ffff:ffff:ffff:ffff:ffff:ffff,IT -2a03:c200::,2a03:c200:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a03:c200::,2a03:c207:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a03:c240::,2a03:c240:ffff:ffff:ffff:ffff:ffff:ffff,GE 2a03:c280::,2a03:c280:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a03:c2c0::,2a03:c2c0:ffff:ffff:ffff:ffff:ffff:ffff,FR @@ -27424,7 +27716,7 @@ 2a04:540::,2a04:547:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a04:580::,2a04:587:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a04:5c0::,2a04:5c3:ffff:ffff:ffff:ffff:ffff:ffff,RU -2a04:5e0::,2a04:5e3:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a04:5e0::,2a04:5e7:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a04:600::,2a04:607:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a04:640::,2a04:647:ffff:ffff:ffff:ffff:ffff:ffff,VA 2a04:680::,2a04:687:ffff:ffff:ffff:ffff:ffff:ffff,FI @@ -28267,7 +28559,6 @@ 2a04:d240::,2a04:d247:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a04:d280::,2a04:d287:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a04:d2c0::,2a04:d2c7:ffff:ffff:ffff:ffff:ffff:ffff,RU -2a04:d300::,2a04:d307:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a04:d340::,2a04:d347:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a04:d380::,2a04:d387:ffff:ffff:ffff:ffff:ffff:ffff,AZ 2a04:d3c0::,2a04:d3c7:ffff:ffff:ffff:ffff:ffff:ffff,AT @@ -28310,7 +28601,6 @@ 2a04:dcc0::,2a04:dcc7:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a04:dd00::,2a04:dd07:ffff:ffff:ffff:ffff:ffff:ffff,AE 2a04:dd40::,2a04:dd47:ffff:ffff:ffff:ffff:ffff:ffff,SI -2a04:dd80::,2a04:dd87:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a04:ddc0::,2a04:ddc7:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a04:de00::,2a04:de07:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a04:de40::,2a04:de47:ffff:ffff:ffff:ffff:ffff:ffff,GB @@ -28861,7 +29151,6 @@ 2a05:6600::,2a05:6607:ffff:ffff:ffff:ffff:ffff:ffff,IR 2a05:6640::,2a05:6647:ffff:ffff:ffff:ffff:ffff:ffff,VA 2a05:6680::,2a05:6687:ffff:ffff:ffff:ffff:ffff:ffff,IT -2a05:66c0::,2a05:66c7:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a05:6700::,2a05:6707:ffff:ffff:ffff:ffff:ffff:ffff,RO 2a05:6740::,2a05:6747:ffff:ffff:ffff:ffff:ffff:ffff,AT 2a05:6780::,2a05:6787:ffff:ffff:ffff:ffff:ffff:ffff,RU @@ -29229,7 +29518,6 @@ 2a05:c340::,2a05:c347:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a05:c380::,2a05:c387:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a05:c3c0::,2a05:c3c7:ffff:ffff:ffff:ffff:ffff:ffff,PL -2a05:c400::,2a05:c407:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a05:c440::,2a05:c447:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a05:c480::,2a05:c487:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a05:c4c0::,2a05:c4c7:ffff:ffff:ffff:ffff:ffff:ffff,NL @@ -29313,7 +29601,6 @@ 2a05:d640::,2a05:d647:ffff:ffff:ffff:ffff:ffff:ffff,IQ 2a05:d680::,2a05:d687:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a05:d6c0::,2a05:d6c7:ffff:ffff:ffff:ffff:ffff:ffff,PL -2a05:d700::,2a05:d707:ffff:ffff:ffff:ffff:ffff:ffff,US 2a05:d740::,2a05:d747:ffff:ffff:ffff:ffff:ffff:ffff,IR 2a05:d780::,2a05:d787:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a05:d7c0::,2a05:d7c7:ffff:ffff:ffff:ffff:ffff:ffff,SA @@ -29702,7 +29989,6 @@ 2a06:3380::,2a06:3387:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a06:33c0::,2a06:33c7:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a06:3400::,2a06:3407:ffff:ffff:ffff:ffff:ffff:ffff,GB -2a06:3440::,2a06:3447:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a06:3480::,2a06:3487:ffff:ffff:ffff:ffff:ffff:ffff,LB 2a06:34c0::,2a06:34c7:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a06:3500::,2a06:3507:ffff:ffff:ffff:ffff:ffff:ffff,BE @@ -29785,7 +30071,6 @@ 2a06:4740::,2a06:4747:ffff:ffff:ffff:ffff:ffff:ffff,RO 2a06:47c0::,2a06:47c7:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a06:4840::,2a06:4847:ffff:ffff:ffff:ffff:ffff:ffff,IE -2a06:4880::,2a06:4887:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a06:48c0::,2a06:48c7:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a06:4900::,2a06:4907:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a06:4940::,2a06:4947:ffff:ffff:ffff:ffff:ffff:ffff,LU @@ -30314,7 +30599,6 @@ 2a06:c480::,2a06:c487:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a06:c4c0::,2a06:c4c7:ffff:ffff:ffff:ffff:ffff:ffff,AT 2a06:c500::,2a06:c507:ffff:ffff:ffff:ffff:ffff:ffff,AT -2a06:c540::,2a06:c547:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a06:c580::,2a06:c587:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a06:c5c0::,2a06:c5c7:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a06:c600::,2a06:c607:ffff:ffff:ffff:ffff:ffff:ffff,DE @@ -30376,7 +30660,6 @@ 2a06:d400::,2a06:d407:ffff:ffff:ffff:ffff:ffff:ffff,IR 2a06:d440::,2a06:d447:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a06:d480::,2a06:d487:ffff:ffff:ffff:ffff:ffff:ffff,DK -2a06:d4c0::,2a06:d4c7:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a06:d500::,2a06:d507:ffff:ffff:ffff:ffff:ffff:ffff,AT 2a06:d540::,2a06:d547:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a06:d580::,2a06:d587:ffff:ffff:ffff:ffff:ffff:ffff,CH @@ -31653,7 +31936,7 @@ 2a0a:8605::,2a0a:8605::ffff:ffff:ffff:ffff:ffff,US 2a0a:8605:1::,2a0a:8605:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:8606::,2a0a:8606:ffff:ffff:ffff:ffff:ffff:ffff,FR -2a0a:8607::,2a0a:8607:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:8607::,2a0a:8607:ffff:ffff:ffff:ffff:ffff:ffff,US 2a0a:8680::,2a0a:8687:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:8700::,2a0a:8707:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a0a:8780::,2a0a:8787:ffff:ffff:ffff:ffff:ffff:ffff,ES @@ -31669,7 +31952,9 @@ 2a0a:8c80::,2a0a:8c87:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a0a:8d00::,2a0a:8d07:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:8d80::,2a0a:8d87:ffff:ffff:ffff:ffff:ffff:ffff,RU -2a0a:8e00::,2a0a:8e07:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:8e00::,2a0a:8e01:1236:ffff:ffff:ffff:ffff:ffff,US +2a0a:8e01:1237::,2a0a:8e01:1237:ffff:ffff:ffff:ffff:ffff,CA +2a0a:8e01:1238::,2a0a:8e07:ffff:ffff:ffff:ffff:ffff:ffff,US 2a0a:8e80::,2a0a:8e87:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a0a:8f00::,2a0a:8f00:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:8f80::,2a0a:8f87:ffff:ffff:ffff:ffff:ffff:ffff,RU @@ -31677,7 +31962,9 @@ 2a0a:9080::,2a0a:9087:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:9100::,2a0a:9107:ffff:ffff:ffff:ffff:ffff:ffff,LB 2a0a:9180::,2a0a:9180:ffff:ffff:ffff:ffff:ffff:ffff,DE -2a0a:9200::,2a0a:9207:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:9200::,2a0a:9204:ab6c:ffff:ffff:ffff:ffff:ffff,US +2a0a:9204:ab6d::,2a0a:9204:ab6d:ffff:ffff:ffff:ffff:ffff,CA +2a0a:9204:ab6e::,2a0a:9207:ffff:ffff:ffff:ffff:ffff:ffff,US 2a0a:9280::,2a0a:9287:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:9300::,2a0a:9307:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a0a:9380::,2a0a:9387:ffff:ffff:ffff:ffff:ffff:ffff,ES @@ -31685,7 +31972,9 @@ 2a0a:9480::,2a0a:9480:ffff:ffff:ffff:ffff:ffff:ffff,IL 2a0a:9500::,2a0a:9507:ffff:ffff:ffff:ffff:ffff:ffff,FI 2a0a:9580::,2a0a:9587:ffff:ffff:ffff:ffff:ffff:ffff,GB -2a0a:9600::,2a0a:9607:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:9600::,2a0a:9603:49cd:ffff:ffff:ffff:ffff:ffff,US +2a0a:9603:49ce::,2a0a:9603:49ce:ffff:ffff:ffff:ffff:ffff,CA +2a0a:9603:49cf::,2a0a:9607:ffff:ffff:ffff:ffff:ffff:ffff,US 2a0a:9680::,2a0a:9687:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a0a:9700::,2a0a:9700:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a0a:9780::,2a0a:9787:ffff:ffff:ffff:ffff:ffff:ffff,NL @@ -31693,7 +31982,9 @@ 2a0a:9880::,2a0a:9887:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:9900::,2a0a:9907:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:9980::,2a0a:9987:ffff:ffff:ffff:ffff:ffff:ffff,RU -2a0a:9a00::,2a0a:9a07:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:9a00::,2a0a:9a02:b3d1:ffff:ffff:ffff:ffff:ffff,US +2a0a:9a02:b3d2::,2a0a:9a02:b3d2:ffff:ffff:ffff:ffff:ffff,CA +2a0a:9a02:b3d3::,2a0a:9a07:ffff:ffff:ffff:ffff:ffff:ffff,US 2a0a:9a80::,2a0a:9a80:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:9b00::,2a0a:9b07:ffff:ffff:ffff:ffff:ffff:ffff,US 2a0a:9b80::,2a0a:9b80:ffff:ffff:ffff:ffff:ffff:ffff,NO @@ -31702,138 +31993,271 @@ 2a0a:9d00::,2a0a:9d00:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:9d80::,2a0a:9d87:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:9e00::,2a0a:9e07:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:9e80::,2a0a:9e87:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:9f00::,2a0a:9f07:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:9f80::,2a0a:9f87:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a0a:a000::,2a0a:a000:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a0a:a080::,2a0a:a087:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a0a:a100::,2a0a:a100:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:a180::,2a0a:a180:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a0a:a200::,2a0a:a207:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a0a:a280::,2a0a:a280:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:a300::,2a0a:a307:ffff:ffff:ffff:ffff:ffff:ffff,RO +2a0a:a380::,2a0a:a387:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a0a:a400::,2a0a:a407:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a0a:a480::,2a0a:a487:ffff:ffff:ffff:ffff:ffff:ffff,IR 2a0a:a500::,2a0a:a507:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a0a:a580::,2a0a:a587:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a0a:a600::,2a0a:a607:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:a680::,2a0a:a687:ffff:ffff:ffff:ffff:ffff:ffff,SK 2a0a:a700::,2a0a:a707:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:a780::,2a0a:a787:ffff:ffff:ffff:ffff:ffff:ffff,SK 2a0a:a800::,2a0a:a807:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a0a:a880::,2a0a:a887:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a0a:a900::,2a0a:a900:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a0a:a980::,2a0a:a987:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:aa00::,2a0a:aa03:ffff:ffff:ffff:ffff:ffff:ffff,CY +2a0a:aa80::,2a0a:aa87:ffff:ffff:ffff:ffff:ffff:ffff,IM 2a0a:ab00::,2a0a:ab07:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a0a:ab80::,2a0a:ab80:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a0a:ac00::,2a0a:ac07:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a0a:ac80::,2a0a:ac87:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a0a:ad00::,2a0a:ad07:ffff:ffff:ffff:ffff:ffff:ffff,UA +2a0a:ad80::,2a0a:ad87:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:ae00::,2a0a:ae07:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:ae80::,2a0a:ae87:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a0a:af00::,2a0a:af07:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a0a:af80::,2a0a:af87:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:b000::,2a0a:b000:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:b080::,2a0a:b087:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a0a:b100::,2a0a:b107:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a0a:b180::,2a0a:b187:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a0a:b200::,2a0a:b207:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:b280::,2a0a:b287:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a0a:b300::,2a0a:b307:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a0a:b380::,2a0a:b387:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a0a:b400::,2a0a:b407:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a0a:b480::,2a0a:b487:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:b500::,2a0a:b507:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a0a:b580::,2a0a:b587:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a0a:b600::,2a0a:b607:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:b680::,2a0a:b687:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a0a:b700::,2a0a:b707:ffff:ffff:ffff:ffff:ffff:ffff,GE +2a0a:b780::,2a0a:b787:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a0a:b800::,2a0a:b807:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:b880::,2a0a:b887:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a0a:b900::,2a0a:b907:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:b980::,2a0a:b980:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:ba00::,2a0a:ba07:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:ba80::,2a0a:ba87:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:bb00::,2a0a:bb07:ffff:ffff:ffff:ffff:ffff:ffff,LI +2a0a:bb80::,2a0a:bb87:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:bc00::,2a0a:bc07:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a0a:bc80::,2a0a:bc87:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a0a:bd00::,2a0a:bd00:ffff:ffff:ffff:ffff:ffff:ffff,TR +2a0a:bd80::,2a0a:bd80:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a0a:be00::,2a0a:be07:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:be80::,2a0a:be87:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a0a:bf00::,2a0a:bf07:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a0a:bf80::,2a0a:bf87:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a0a:c000::,2a0a:c007:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a0a:c080::,2a0a:c087:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a0a:c100::,2a0a:c107:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a0a:c180::,2a0a:c187:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:c200::,2a0a:c207:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a0a:c280::,2a0a:c287:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a0a:c300::,2a0a:c307:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:c380::,2a0a:c387:ffff:ffff:ffff:ffff:ffff:ffff,US 2a0a:c400::,2a0a:c407:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:c480::,2a0a:c487:ffff:ffff:ffff:ffff:ffff:ffff,SA 2a0a:c500::,2a0a:c507:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a0a:c580::,2a0a:c587:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a0a:c600::,2a0a:c607:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:c680::,2a0a:c687:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a0a:c700::,2a0a:c707:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a0a:c780::,2a0a:c787:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a0a:c800::,2a0a:c807:ffff:ffff:ffff:ffff:ffff:ffff,MD +2a0a:c880::,2a0a:c880:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a0a:c900::,2a0a:c907:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:c980::,2a0a:c987:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:ca00::,2a0a:ca00:ffff:ffff:ffff:ffff:ffff:ffff,FI +2a0a:ca80::,2a0a:ca87:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a0a:cb00::,2a0a:cb07:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a0a:cb80::,2a0a:cb80:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:cc00::,2a0a:cc07:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a0a:cc80::,2a0a:cc87:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a0a:cd00::,2a0a:cd00:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a0a:cd80::,2a0a:cd87:ffff:ffff:ffff:ffff:ffff:ffff,NO 2a0a:ce00::,2a0a:ce07:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:ce80::,2a0a:ce87:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a0a:cf00::,2a0a:cf07:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a0a:cf80::,2a0a:cf87:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a0a:d000::,2a0a:d007:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a0a:d080::,2a0a:d087:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a0a:d100::,2a0a:d107:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a0a:d180::,2a0a:d187:ffff:ffff:ffff:ffff:ffff:ffff,GR 2a0a:d200::,2a0a:d207:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0a:d280::,2a0a:d287:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a0a:d300::,2a0a:d307:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a0a:d380::,2a0a:d387:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a0a:d400::,2a0a:d407:ffff:ffff:ffff:ffff:ffff:ffff,IR +2a0a:d480::,2a0a:d487:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:d500::,2a0a:d507:ffff:ffff:ffff:ffff:ffff:ffff,FO +2a0a:d580::,2a0a:d587:ffff:ffff:ffff:ffff:ffff:ffff,MD 2a0a:d600::,2a0a:d607:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:d680::,2a0a:d687:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:d700::,2a0a:d707:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a0a:d780::,2a0a:d787:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a0a:d800::,2a0a:d807:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a0a:d880::,2a0a:d887:ffff:ffff:ffff:ffff:ffff:ffff,BG 2a0a:d900::,2a0a:d900:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a0a:d980::,2a0a:d987:ffff:ffff:ffff:ffff:ffff:ffff,BG 2a0a:da00::,2a0a:da00:ffff:ffff:ffff:ffff:ffff:ffff,KW +2a0a:da80::,2a0a:da87:ffff:ffff:ffff:ffff:ffff:ffff,BG 2a0a:db00::,2a0a:db00:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a0a:db80::,2a0a:db87:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:dc00::,2a0a:dc07:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a0a:dc80::,2a0a:dc87:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:dd00::,2a0a:dd07:ffff:ffff:ffff:ffff:ffff:ffff,FI +2a0a:dd80::,2a0a:dd87:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a0a:de00::,2a0a:de00:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a0a:de80::,2a0a:de80:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a0a:df00::,2a0a:df07:ffff:ffff:ffff:ffff:ffff:ffff,BE +2a0a:df80::,2a0a:df87:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a0a:e000::,2a0a:e007:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:e080::,2a0a:e087:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a0a:e100::,2a0a:e107:ffff:ffff:ffff:ffff:ffff:ffff,FI +2a0a:e180::,2a0a:e187:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a0a:e200::,2a0a:e207:ffff:ffff:ffff:ffff:ffff:ffff,IR +2a0a:e280::,2a0a:e287:ffff:ffff:ffff:ffff:ffff:ffff,GE 2a0a:e300::,2a0a:e303:ffff:ffff:ffff:ffff:ffff:ffff,HR +2a0a:e380::,2a0a:e387:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a0a:e400::,2a0a:e407:ffff:ffff:ffff:ffff:ffff:ffff,RO +2a0a:e480::,2a0a:e487:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:e500::,2a0a:e500:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a0a:e580::,2a0a:e587:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a0a:e600::,2a0a:e600:ffff:ffff:ffff:ffff:ffff:ffff,IR +2a0a:e680::,2a0a:e687:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:e700::,2a0a:e700:ffff:ffff:ffff:ffff:ffff:ffff,DK +2a0a:e780::,2a0a:e787:ffff:ffff:ffff:ffff:ffff:ffff,IE 2a0a:e800::,2a0a:e800:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a0a:e880::,2a0a:e887:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:e900::,2a0a:e907:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:e980::,2a0a:e987:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a0a:ea00::,2a0a:ea00:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:ea80::,2a0a:ea87:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a0a:eb00::,2a0a:eb07:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:eb80::,2a0a:eb80:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a0a:ec00::,2a0a:ec07:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a0a:ec80::,2a0a:ec87:ffff:ffff:ffff:ffff:ffff:ffff,LB 2a0a:ed00::,2a0a:ed07:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a0a:ed80::,2a0a:ed87:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:ee00::,2a0a:ee07:ffff:ffff:ffff:ffff:ffff:ffff,RO +2a0a:ee80::,2a0a:ee87:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a0a:ef00::,2a0a:ef07:ffff:ffff:ffff:ffff:ffff:ffff,MD +2a0a:ef80::,2a0a:ef87:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:f000::,2a0a:f000:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:f080::,2a0a:f087:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a0a:f100::,2a0a:f100:ffff:ffff:ffff:ffff:ffff:ffff,LV +2a0a:f180::,2a0a:f187:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a0a:f200::,2a0a:f207:ffff:ffff:ffff:ffff:ffff:ffff,UA +2a0a:f280::,2a0a:f287:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:f300::,2a0a:f307:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a0a:f380::,2a0a:f387:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0a:f400::,2a0a:f407:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a0a:f480::,2a0a:f487:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:f500::,2a0a:f500:ffff:ffff:ffff:ffff:ffff:ffff,AT +2a0a:f580::,2a0a:f587:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a0a:f600::,2a0a:f607:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a0a:f680::,2a0a:f687:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a0a:f700::,2a0a:f707:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a0a:f780::,2a0a:f787:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a0a:f800::,2a0a:f807:ffff:ffff:ffff:ffff:ffff:ffff,FI +2a0a:f880::,2a0a:f887:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a0a:f900::,2a0a:f907:ffff:ffff:ffff:ffff:ffff:ffff,BE +2a0a:f980::,2a0a:f987:ffff:ffff:ffff:ffff:ffff:ffff,IT 2a0a:fa00::,2a0a:fa07:ffff:ffff:ffff:ffff:ffff:ffff,UA +2a0a:fa80::,2a0a:fa87:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a0a:fb00::,2a0a:fb00:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a0a:fb80::,2a0a:fb87:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a0a:fc00::,2a0a:fc07:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:fc80::,2a0a:fc80:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a0a:fd00::,2a0a:fd00:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:fd80::,2a0a:fd87:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0a:fe00::,2a0a:fe03:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a0a:fe80::,2a0a:fe87:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a0a:ff00::,2a0a:ff00:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0a:ff80::,2a0a:ff80:ffff:ffff:ffff:ffff:ffff:ffff,CZ 2a0b::,2a0b:7:ffff:ffff:ffff:ffff:ffff:ffff,CZ +2a0b:80::,2a0b:87:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a0b:100::,2a0b:107:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a0b:180::,2a0b:187:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0b:200::,2a0b:207:ffff:ffff:ffff:ffff:ffff:ffff,UA -2a0b:300::,2a0b:307:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0b:280::,2a0b:287:ffff:ffff:ffff:ffff:ffff:ffff,MD +2a0b:300::,2a0b:307:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0b:380::,2a0b:387:ffff:ffff:ffff:ffff:ffff:ffff,DK 2a0b:400::,2a0b:407:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a0b:480::,2a0b:487:ffff:ffff:ffff:ffff:ffff:ffff,UA 2a0b:500::,2a0b:507:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0b:580::,2a0b:580:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a0b:600::,2a0b:600:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a0b:680::,2a0b:687:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a0b:700::,2a0b:707:ffff:ffff:ffff:ffff:ffff:ffff,IL +2a0b:780::,2a0b:787:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a0b:800::,2a0b:807:ffff:ffff:ffff:ffff:ffff:ffff,NO +2a0b:880::,2a0b:880:ffff:ffff:ffff:ffff:ffff:ffff,LU 2a0b:900::,2a0b:900:ffff:ffff:ffff:ffff:ffff:ffff,IR +2a0b:980::,2a0b:980:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a0b:a00::,2a0b:a07:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a0b:a80::,2a0b:a87:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a0b:b00::,2a0b:b07:ffff:ffff:ffff:ffff:ffff:ffff,PL +2a0b:b80::,2a0b:b87:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0b:c00::,2a0b:c00:ffff:ffff:ffff:ffff:ffff:ffff,LT +2a0b:c80::,2a0b:c87:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a0b:d00::,2a0b:d07:ffff:ffff:ffff:ffff:ffff:ffff,ES +2a0b:d80::,2a0b:d87:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a0b:e00::,2a0b:e07:ffff:ffff:ffff:ffff:ffff:ffff,FI +2a0b:e80::,2a0b:e87:ffff:ffff:ffff:ffff:ffff:ffff,BE 2a0b:f00::,2a0b:f07:ffff:ffff:ffff:ffff:ffff:ffff,UA +2a0b:f80::,2a0b:f87:ffff:ffff:ffff:ffff:ffff:ffff,IR 2a0b:1000::,2a0b:1007:ffff:ffff:ffff:ffff:ffff:ffff,IR +2a0b:1080::,2a0b:1087:ffff:ffff:ffff:ffff:ffff:ffff,IL 2a0b:1100::,2a0b:1107:ffff:ffff:ffff:ffff:ffff:ffff,SK +2a0b:1180::,2a0b:1187:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a0b:1200::,2a0b:1207:ffff:ffff:ffff:ffff:ffff:ffff,CH +2a0b:1280::,2a0b:1287:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a0b:1300::,2a0b:1307:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0b:1380::,2a0b:1387:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a0b:1400::,2a0b:1407:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a0b:1480::,2a0b:1480:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0b:1500::,2a0b:1507:ffff:ffff:ffff:ffff:ffff:ffff,TR +2a0b:1580::,2a0b:1587:ffff:ffff:ffff:ffff:ffff:ffff,RU 2a0b:1600::,2a0b:1607:ffff:ffff:ffff:ffff:ffff:ffff,UA +2a0b:1680::,2a0b:1680:ffff:ffff:ffff:ffff:ffff:ffff,TR 2a0b:1700::,2a0b:1707:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a0b:1780::,2a0b:1787:ffff:ffff:ffff:ffff:ffff:ffff,RO 2a0b:1800::,2a0b:1807:ffff:ffff:ffff:ffff:ffff:ffff,FR +2a0b:1880::,2a0b:1887:ffff:ffff:ffff:ffff:ffff:ffff,IQ 2a0b:1900::,2a0b:1907:ffff:ffff:ffff:ffff:ffff:ffff,US +2a0b:1980::,2a0b:1987:ffff:ffff:ffff:ffff:ffff:ffff,GR 2a0b:1a00::,2a0b:1a07:ffff:ffff:ffff:ffff:ffff:ffff,IT -2a0b:1b00::,2a0b:1b00:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a0b:1a80::,2a0b:1a87:ffff:ffff:ffff:ffff:ffff:ffff,RU +2a0b:1b00::,2a0b:1b07:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a0b:1b80::,2a0b:1b87:ffff:ffff:ffff:ffff:ffff:ffff,NL 2a0b:1c00::,2a0b:1c07:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a0b:1c80::,2a0b:1c87:ffff:ffff:ffff:ffff:ffff:ffff,UZ 2a0b:1d00::,2a0b:1d07:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a0b:1d80::,2a0b:1d80:ffff:ffff:ffff:ffff:ffff:ffff,CH 2a0b:1e00::,2a0b:1e07:ffff:ffff:ffff:ffff:ffff:ffff,HU +2a0b:1e80::,2a0b:1e87:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a0b:1f00::,2a0b:1f07:ffff:ffff:ffff:ffff:ffff:ffff,GB +2a0b:1f80::,2a0b:1f87:ffff:ffff:ffff:ffff:ffff:ffff,ES 2a0b:2000::,2a0b:2007:ffff:ffff:ffff:ffff:ffff:ffff,NL +2a0b:2080::,2a0b:2087:ffff:ffff:ffff:ffff:ffff:ffff,FR 2a0b:2100::,2a0b:2107:ffff:ffff:ffff:ffff:ffff:ffff,IT +2a0b:2180::,2a0b:2180:ffff:ffff:ffff:ffff:ffff:ffff,PL 2a0b:2200::,2a0b:2207:ffff:ffff:ffff:ffff:ffff:ffff,SE +2a0b:2280::,2a0b:2287:ffff:ffff:ffff:ffff:ffff:ffff,IE 2a0b:2300::,2a0b:2300:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0b:2400::,2a0b:2400:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0b:2500::,2a0b:2507:ffff:ffff:ffff:ffff:ffff:ffff,PL @@ -31876,7 +32300,7 @@ 2a0b:4a00::,2a0b:4a07:ffff:ffff:ffff:ffff:ffff:ffff,IR 2a0b:4b00::,2a0b:4b07:ffff:ffff:ffff:ffff:ffff:ffff,SE 2a0b:4c00::,2a0b:4c07:ffff:ffff:ffff:ffff:ffff:ffff,GB -2a0b:4d00::,2a0b:4d00:ffff:ffff:ffff:ffff:ffff:ffff,DE +2a0b:4d00::,2a0b:4d07:ffff:ffff:ffff:ffff:ffff:ffff,DE 2a0b:4e00::,2a0b:4e07:ffff:ffff:ffff:ffff:ffff:ffff,GB 2a0b:4f00::,2a0b:4f07:ffff:ffff:ffff:ffff:ffff:ffff,IE 2a0b:5000::,2a0b:5007:ffff:ffff:ffff:ffff:ffff:ffff,RO @@ -32114,6 +32538,9 @@ 2c0f:f3a8::,2c0f:f3a8:ffff:ffff:ffff:ffff:ffff:ffff,NG 2c0f:f3b0::,2c0f:f3b0:ffff:ffff:ffff:ffff:ffff:ffff,CI 2c0f:f3b8::,2c0f:f3b8:ffff:ffff:ffff:ffff:ffff:ffff,NG +2c0f:f3c0::,2c0f:f3c0:ffff:ffff:ffff:ffff:ffff:ffff,ZA +2c0f:f3c8::,2c0f:f3c8:ffff:ffff:ffff:ffff:ffff:ffff,ZA +2c0f:f3d0::,2c0f:f3d0:ffff:ffff:ffff:ffff:ffff:ffff,MZ 2c0f:f400::,2c0f:f400:ffff:ffff:ffff:ffff:ffff:ffff,ZA 2c0f:f408::,2c0f:f408:ffff:ffff:ffff:ffff:ffff:ffff,KE 2c0f:f410::,2c0f:f410:ffff:ffff:ffff:ffff:ffff:ffff,NG @@ -32221,7 +32648,7 @@ 2c0f:f748::,2c0f:f748:ffff:ffff:ffff:ffff:ffff:ffff,MU 2c0f:f750::,2c0f:f750:ffff:ffff:ffff:ffff:ffff:ffff,UG 2c0f:f758::,2c0f:f758:ffff:ffff:ffff:ffff:ffff:ffff,ZW -2c0f:f760::,2c0f:f760:ffff:ffff:ffff:ffff:ffff:ffff,ZA +2c0f:f760::,2c0f:f760:ffff:ffff:ffff:ffff:ffff:ffff,ZM 2c0f:f768::,2c0f:f768:ffff:ffff:ffff:ffff:ffff:ffff,NG 2c0f:f770::,2c0f:f770:ffff:ffff:ffff:ffff:ffff:ffff,BJ 2c0f:f778::,2c0f:f778:ffff:ffff:ffff:ffff:ffff:ffff,NA diff --git a/src/or/channel.c b/src/or/channel.c index 2951a1d665..dbf442eca0 100644 --- a/src/or/channel.c +++ b/src/or/channel.c @@ -2318,121 +2318,120 @@ channel_flush_some_cells_from_outgoing_queue(channel_t *chan, free_q = 0; handed_off = 0; - if (1) { - /* Figure out how big it is for statistical purposes */ - cell_size = channel_get_cell_queue_entry_size(chan, q); - /* - * Okay, we have a good queue entry, try to give it to the lower - * layer. - */ - switch (q->type) { - case CELL_QUEUE_FIXED: - if (q->u.fixed.cell) { - if (chan->write_cell(chan, - q->u.fixed.cell)) { - ++flushed; - channel_timestamp_xmit(chan); - ++(chan->n_cells_xmitted); - chan->n_bytes_xmitted += cell_size; - free_q = 1; - handed_off = 1; - } - /* Else couldn't write it; leave it on the queue */ - } else { - /* This shouldn't happen */ - log_info(LD_CHANNEL, - "Saw broken cell queue entry of type CELL_QUEUE_FIXED " - "with no cell on channel %p " - "(global ID " U64_FORMAT ").", - chan, U64_PRINTF_ARG(chan->global_identifier)); - /* Throw it away */ - free_q = 1; - handed_off = 0; - } - break; - case CELL_QUEUE_PACKED: - if (q->u.packed.packed_cell) { - if (chan->write_packed_cell(chan, - q->u.packed.packed_cell)) { - ++flushed; - channel_timestamp_xmit(chan); - ++(chan->n_cells_xmitted); - chan->n_bytes_xmitted += cell_size; - free_q = 1; - handed_off = 1; - } - /* Else couldn't write it; leave it on the queue */ - } else { - /* This shouldn't happen */ - log_info(LD_CHANNEL, - "Saw broken cell queue entry of type CELL_QUEUE_PACKED " - "with no cell on channel %p " - "(global ID " U64_FORMAT ").", - chan, U64_PRINTF_ARG(chan->global_identifier)); - /* Throw it away */ - free_q = 1; - handed_off = 0; - } - break; - case CELL_QUEUE_VAR: - if (q->u.var.var_cell) { - if (chan->write_var_cell(chan, - q->u.var.var_cell)) { - ++flushed; - channel_timestamp_xmit(chan); - ++(chan->n_cells_xmitted); - chan->n_bytes_xmitted += cell_size; - free_q = 1; - handed_off = 1; - } - /* Else couldn't write it; leave it on the queue */ - } else { - /* This shouldn't happen */ - log_info(LD_CHANNEL, - "Saw broken cell queue entry of type CELL_QUEUE_VAR " - "with no cell on channel %p " - "(global ID " U64_FORMAT ").", - chan, U64_PRINTF_ARG(chan->global_identifier)); - /* Throw it away */ - free_q = 1; - handed_off = 0; - } - break; - default: - /* Unknown type, log and free it */ - log_info(LD_CHANNEL, - "Saw an unknown cell queue entry type %d on channel %p " - "(global ID " U64_FORMAT "; ignoring it." - " Someone should fix this.", - q->type, chan, U64_PRINTF_ARG(chan->global_identifier)); + /* Figure out how big it is for statistical purposes */ + cell_size = channel_get_cell_queue_entry_size(chan, q); + /* + * Okay, we have a good queue entry, try to give it to the lower + * layer. + */ + switch (q->type) { + case CELL_QUEUE_FIXED: + if (q->u.fixed.cell) { + if (chan->write_cell(chan, + q->u.fixed.cell)) { + ++flushed; + channel_timestamp_xmit(chan); + ++(chan->n_cells_xmitted); + chan->n_bytes_xmitted += cell_size; + free_q = 1; + handed_off = 1; + } + /* Else couldn't write it; leave it on the queue */ + } else { + /* This shouldn't happen */ + log_info(LD_CHANNEL, + "Saw broken cell queue entry of type CELL_QUEUE_FIXED " + "with no cell on channel %p " + "(global ID " U64_FORMAT ").", + chan, U64_PRINTF_ARG(chan->global_identifier)); + /* Throw it away */ + free_q = 1; + handed_off = 0; + } + break; + case CELL_QUEUE_PACKED: + if (q->u.packed.packed_cell) { + if (chan->write_packed_cell(chan, + q->u.packed.packed_cell)) { + ++flushed; + channel_timestamp_xmit(chan); + ++(chan->n_cells_xmitted); + chan->n_bytes_xmitted += cell_size; + free_q = 1; + handed_off = 1; + } + /* Else couldn't write it; leave it on the queue */ + } else { + /* This shouldn't happen */ + log_info(LD_CHANNEL, + "Saw broken cell queue entry of type CELL_QUEUE_PACKED " + "with no cell on channel %p " + "(global ID " U64_FORMAT ").", + chan, U64_PRINTF_ARG(chan->global_identifier)); + /* Throw it away */ + free_q = 1; + handed_off = 0; + } + break; + case CELL_QUEUE_VAR: + if (q->u.var.var_cell) { + if (chan->write_var_cell(chan, + q->u.var.var_cell)) { + ++flushed; + channel_timestamp_xmit(chan); + ++(chan->n_cells_xmitted); + chan->n_bytes_xmitted += cell_size; free_q = 1; - handed_off = 0; + handed_off = 1; + } + /* Else couldn't write it; leave it on the queue */ + } else { + /* This shouldn't happen */ + log_info(LD_CHANNEL, + "Saw broken cell queue entry of type CELL_QUEUE_VAR " + "with no cell on channel %p " + "(global ID " U64_FORMAT ").", + chan, U64_PRINTF_ARG(chan->global_identifier)); + /* Throw it away */ + free_q = 1; + handed_off = 0; } + break; + default: + /* Unknown type, log and free it */ + log_info(LD_CHANNEL, + "Saw an unknown cell queue entry type %d on channel %p " + "(global ID " U64_FORMAT "; ignoring it." + " Someone should fix this.", + q->type, chan, U64_PRINTF_ARG(chan->global_identifier)); + free_q = 1; + handed_off = 0; + } + /* + * if free_q is set, we used it and should remove the queue entry; + * we have to do the free down here so TOR_SIMPLEQ_REMOVE_HEAD isn't + * accessing freed memory + */ + if (free_q) { + TOR_SIMPLEQ_REMOVE_HEAD(&chan->outgoing_queue, next); /* - * if free_q is set, we used it and should remove the queue entry; - * we have to do the free down here so TOR_SIMPLEQ_REMOVE_HEAD isn't - * accessing freed memory + * ...and we handed a cell off to the lower layer, so we should + * update the counters. */ - if (free_q) { - TOR_SIMPLEQ_REMOVE_HEAD(&chan->outgoing_queue, next); - /* - * ...and we handed a cell off to the lower layer, so we should - * update the counters. - */ - ++n_channel_cells_passed_to_lower_layer; - --n_channel_cells_in_queues; - n_channel_bytes_passed_to_lower_layer += cell_size; - n_channel_bytes_in_queues -= cell_size; - channel_assert_counter_consistency(); - /* Update the channel's queue size too */ - chan->bytes_in_queue -= cell_size; - /* Finally, free q */ - cell_queue_entry_free(q, handed_off); - q = NULL; - } + ++n_channel_cells_passed_to_lower_layer; + --n_channel_cells_in_queues; + n_channel_bytes_passed_to_lower_layer += cell_size; + n_channel_bytes_in_queues -= cell_size; + channel_assert_counter_consistency(); + /* Update the channel's queue size too */ + chan->bytes_in_queue -= cell_size; + /* Finally, free q */ + cell_queue_entry_free(q, handed_off); + q = NULL; + } else { /* No cell removed from list, so we can't go on any further */ - else break; + break; } } } diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index 5943e516ff..4ff5eff1d2 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -1440,6 +1440,41 @@ circuit_get_ready_rend_circ_by_rend_data(const rend_data_t *rend_data) return NULL; } +/** Return the first service introduction circuit originating from the global + * circuit list after <b>start</b> or at the start of the list if <b>start</b> + * is NULL. Return NULL if no circuit is found. + * + * A service introduction point circuit has a purpose of either + * CIRCUIT_PURPOSE_S_ESTABLISH_INTRO or CIRCUIT_PURPOSE_S_INTRO. This does not + * return a circuit marked for close and its state must be open. */ +origin_circuit_t * +circuit_get_next_service_intro_circ(origin_circuit_t *start) +{ + int idx = 0; + smartlist_t *lst = circuit_get_global_list(); + + if (start) { + idx = TO_CIRCUIT(start)->global_circuitlist_idx + 1; + } + + for ( ; idx < smartlist_len(lst); ++idx) { + circuit_t *circ = smartlist_get(lst, idx); + + /* Ignore a marked for close circuit or purpose not matching a service + * intro point or if the state is not open. */ + if (circ->marked_for_close || circ->state != CIRCUIT_STATE_OPEN || + (circ->purpose != CIRCUIT_PURPOSE_S_ESTABLISH_INTRO && + circ->purpose != CIRCUIT_PURPOSE_S_INTRO)) { + continue; + } + /* The purposes we are looking for are only for origin circuits so the + * following is valid. */ + return TO_ORIGIN_CIRCUIT(circ); + } + /* Not found. */ + return NULL; +} + /** Return the first circuit originating here in global_circuitlist after * <b>start</b> whose purpose is <b>purpose</b>, and where <b>digest</b> (if * set) matches the private key digest of the rend data associated with the diff --git a/src/or/circuitlist.h b/src/or/circuitlist.h index d83801a7a8..6abee37dc4 100644 --- a/src/or/circuitlist.h +++ b/src/or/circuitlist.h @@ -47,6 +47,7 @@ origin_circuit_t *circuit_get_ready_rend_circ_by_rend_data( const rend_data_t *rend_data); origin_circuit_t *circuit_get_next_by_pk_and_purpose(origin_circuit_t *start, const uint8_t *digest, uint8_t purpose); +origin_circuit_t *circuit_get_next_service_intro_circ(origin_circuit_t *start); origin_circuit_t *circuit_find_to_cannibalize(uint8_t purpose, extend_info_t *info, int flags); void circuit_mark_all_unused_circs(void); diff --git a/src/or/config.c b/src/or/config.c index 7f789c49f3..b8ca14e85b 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -3361,23 +3361,6 @@ options_validate(or_options_t *old_options, or_options_t *options, "of the Internet, so they must not set Reachable*Addresses " "or FascistFirewall or FirewallPorts or ClientUseIPv4 0."); - /* We check if Reachable*Addresses blocks all addresses in - * parse_reachable_addresses(). */ - -#define WARN_PLEASE_USE_IPV6_LOG_MSG \ - "ClientPreferIPv6%sPort 1 is ignored unless tor is using IPv6. " \ - "Please set ClientUseIPv6 1, ClientUseIPv4 0, or configure bridges." - - if (!fascist_firewall_use_ipv6(options) - && options->ClientPreferIPv6ORPort == 1) - log_warn(LD_CONFIG, WARN_PLEASE_USE_IPV6_LOG_MSG, "OR"); - - if (!fascist_firewall_use_ipv6(options) - && options->ClientPreferIPv6DirPort == 1) - log_warn(LD_CONFIG, WARN_PLEASE_USE_IPV6_LOG_MSG, "Dir"); - -#undef WARN_PLEASE_USE_IPV6_LOG_MSG - if (options->UseBridges && server_mode(options)) REJECT("Servers must be able to freely connect to the rest " @@ -4522,7 +4505,6 @@ options_transition_allowed(const or_options_t *old, } while (0) SB_NOCHANGE_STR(Address); - SB_NOCHANGE_STR(PidFile); SB_NOCHANGE_STR(ServerDNSResolvConfFile); SB_NOCHANGE_STR(DirPortFrontPage); SB_NOCHANGE_STR(CookieAuthFile); @@ -5313,35 +5295,35 @@ addressmap_register_auto(const char *from, const char *to, int from_wildcard = 0, to_wildcard = 0; *msg = "whoops, forgot the error message"; - if (1) { - if (!strcmp(to, "*") || !strcmp(from, "*")) { - *msg = "can't remap from or to *"; - return -1; - } - /* Detect asterisks in expressions of type: '*.example.com' */ - if (!strncmp(from,"*.",2)) { - from += 2; - from_wildcard = 1; - } - if (!strncmp(to,"*.",2)) { - to += 2; - to_wildcard = 1; - } - if (to_wildcard && !from_wildcard) { - *msg = "can only use wildcard (i.e. '*.') if 'from' address " - "uses wildcard also"; - return -1; - } + if (!strcmp(to, "*") || !strcmp(from, "*")) { + *msg = "can't remap from or to *"; + return -1; + } + /* Detect asterisks in expressions of type: '*.example.com' */ + if (!strncmp(from,"*.",2)) { + from += 2; + from_wildcard = 1; + } + if (!strncmp(to,"*.",2)) { + to += 2; + to_wildcard = 1; + } - if (address_is_invalid_destination(to, 1)) { - *msg = "destination is invalid"; - return -1; - } + if (to_wildcard && !from_wildcard) { + *msg = "can only use wildcard (i.e. '*.') if 'from' address " + "uses wildcard also"; + return -1; + } - addressmap_register(from, tor_strdup(to), expires, addrmap_source, - from_wildcard, to_wildcard); + if (address_is_invalid_destination(to, 1)) { + *msg = "destination is invalid"; + return -1; } + + addressmap_register(from, tor_strdup(to), expires, addrmap_source, + from_wildcard, to_wildcard); + return 0; } @@ -7859,7 +7841,7 @@ getinfo_helper_config(control_connection_t *conn, case CONFIG_TYPE_CSV: type = "CommaList"; break; case CONFIG_TYPE_CSV_INTERVAL: type = "TimeIntervalCommaList"; break; case CONFIG_TYPE_LINELIST: type = "LineList"; break; - case CONFIG_TYPE_LINELIST_S: type = "Dependant"; break; + case CONFIG_TYPE_LINELIST_S: type = "Dependent"; break; case CONFIG_TYPE_LINELIST_V: type = "Virtual"; break; default: case CONFIG_TYPE_OBSOLETE: diff --git a/src/or/connection.c b/src/or/connection.c index 5b22594969..7e0ee4551e 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -34,7 +34,7 @@ * they become able to read or write register the fact with the event main * loop by calling connection_watch_events(), connection_start_reading(), or * connection_start_writing(). When they no longer want to read or write, - * they call connection_stop_reading() or connection_start_writing(). + * they call connection_stop_reading() or connection_stop_writing(). * * To queue data to be written on a connection, call * connection_write_to_buf(). When data arrives, the diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 415f9e480b..82d5d3c5a2 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -329,6 +329,33 @@ relay_send_end_cell_from_edge(streamid_t stream_id, circuit_t *circ, payload, 1, cpath_layer); } +/* If the connection <b>conn</b> is attempting to connect to an external + * destination that is an hidden service and the reason is a connection + * refused or timeout, log it so the operator can take appropriate actions. + * The log statement is a rate limited warning. */ +static void +warn_if_hs_unreachable(const edge_connection_t *conn, uint8_t reason) +{ + tor_assert(conn); + + if (conn->base_.type == CONN_TYPE_EXIT && + connection_edge_is_rendezvous_stream(conn) && + (reason == END_STREAM_REASON_CONNECTREFUSED || + reason == END_STREAM_REASON_TIMEOUT)) { +#define WARN_FAILED_HS_CONNECTION 300 + static ratelim_t warn_limit = RATELIM_INIT(WARN_FAILED_HS_CONNECTION); + char *m; + if ((m = rate_limit_log(&warn_limit, approx_time()))) { + log_warn(LD_EDGE, "Onion service connection to %s failed (%s)", + (conn->base_.socket_family == AF_UNIX) ? + safe_str(conn->base_.address) : + safe_str(fmt_addrport(&conn->base_.addr, conn->base_.port)), + stream_end_reason_to_string(reason)); + tor_free(m); + } + } +} + /** Send a relay end cell from stream <b>conn</b> down conn's circuit, and * remember that we've done so. If this is not a client connection, set the * relay end cell's reason for closing as <b>reason</b>. @@ -386,6 +413,9 @@ connection_edge_end(edge_connection_t *conn, uint8_t reason) conn->base_.s); connection_edge_send_command(conn, RELAY_COMMAND_END, payload, payload_len); + /* We'll log warn if the connection was an hidden service and couldn't be + * made because the service wasn't available. */ + warn_if_hs_unreachable(conn, control_reason); } else { log_debug(LD_EDGE,"No circ to send end on conn " "(fd "TOR_SOCKET_T_FORMAT").", @@ -3521,7 +3551,7 @@ connection_exit_connect_dir(edge_connection_t *exitconn) * it is a general stream. */ int -connection_edge_is_rendezvous_stream(edge_connection_t *conn) +connection_edge_is_rendezvous_stream(const edge_connection_t *conn) { tor_assert(conn); if (conn->rend_data) diff --git a/src/or/connection_edge.h b/src/or/connection_edge.h index 5dfc8af901..61b5752aed 100644 --- a/src/or/connection_edge.h +++ b/src/or/connection_edge.h @@ -60,7 +60,7 @@ void connection_ap_handshake_socks_resolved_addr(entry_connection_t *conn, int connection_exit_begin_conn(cell_t *cell, circuit_t *circ); int connection_exit_begin_resolve(cell_t *cell, or_circuit_t *circ); void connection_exit_connect(edge_connection_t *conn); -int connection_edge_is_rendezvous_stream(edge_connection_t *conn); +int connection_edge_is_rendezvous_stream(const edge_connection_t *conn); int connection_ap_can_use_exit(const entry_connection_t *conn, const node_t *exit); void connection_ap_expire_beginning(void); diff --git a/src/or/control.c b/src/or/control.c index 248c780cce..364d75c976 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -71,6 +71,7 @@ #include "router.h" #include "routerlist.h" #include "routerparse.h" +#include "shared_random.h" #ifndef _WIN32 #include <pwd.h> @@ -2870,6 +2871,26 @@ getinfo_helper_liveness(control_connection_t *control_conn, return 0; } +/** Implementation helper for GETINFO: answers queries about shared random + * value. */ +static int +getinfo_helper_sr(control_connection_t *control_conn, + const char *question, char **answer, + const char **errmsg) +{ + (void) control_conn; + (void) errmsg; + + if (!strcmp(question, "sr/current")) { + *answer = sr_get_current_for_control(); + } else if (!strcmp(question, "sr/previous")) { + *answer = sr_get_previous_for_control(); + } + /* Else statement here is unrecognized key so do nothing. */ + + return 0; +} + /** Callback function for GETINFO: on a given control connection, try to * answer the question <b>q</b> and store the newly-allocated answer in * *<b>a</b>. If an internal error occurs, return -1 and optionally set @@ -3062,6 +3083,8 @@ static const getinfo_item_t getinfo_items[] = { "Onion services owned by the current control connection."), ITEM("onions/detached", onions, "Onion services detached from the control connection."), + ITEM("sr/current", sr, "Get current shared random value."), + ITEM("sr/previous", sr, "Get previous shared random value."), { NULL, NULL, NULL, 0 } }; diff --git a/src/or/directory.c b/src/or/directory.c index 80f53c28f4..9e41394673 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -1857,15 +1857,15 @@ body_is_plausible(const char *body, size_t len, int purpose) if (purpose == DIR_PURPOSE_FETCH_MICRODESC) { return (!strcmpstart(body,"onion-key")); } - if (1) { - if (!strcmpstart(body,"router") || - !strcmpstart(body,"network-status")) - return 1; - for (i=0;i<32;++i) { - if (!TOR_ISPRINT(body[i]) && !TOR_ISSPACE(body[i])) - return 0; - } + + if (!strcmpstart(body,"router") || + !strcmpstart(body,"network-status")) + return 1; + for (i=0;i<32;++i) { + if (!TOR_ISPRINT(body[i]) && !TOR_ISSPACE(body[i])) + return 0; } + return 1; } @@ -1967,6 +1967,21 @@ connection_dir_client_reached_eof(dir_connection_t *conn) escaped(reason), conn->base_.purpose); + if (conn->guard_state) { + /* we count the connection as successful once we can read from it. We do + * not, however, delay use of the circuit here, since it's just for a + * one-hop directory request. */ + /* XXXXprop271 note that this will not do the right thing for other + * waiting circuits that would be triggered by this circuit becoming + * complete/usable. But that's ok, I think. + */ + /* XXXXprop271 should we count this as only a partial success somehow? + */ + entry_guard_succeeded(&conn->guard_state); + circuit_guard_state_free(conn->guard_state); + conn->guard_state = NULL; + } + /* now check if it's got any hints for us about our IP address. */ if (conn->dirconn_direct) { char *guess = http_get_header(headers, X_ADDRESS_HEADER); @@ -2578,21 +2593,6 @@ connection_dir_process_inbuf(dir_connection_t *conn) tor_assert(conn); tor_assert(conn->base_.type == CONN_TYPE_DIR); - if (conn->guard_state) { - /* we count the connection as successful once we can read from it. We do - * not, however, delay use of the circuit here, since it's just for a - * one-hop directory request. */ - /* XXXXprop271 note that this will not do the right thing for other - * waiting circuits that would be triggered by this circuit becoming - * complete/usable. But that's ok, I think. - */ - /* XXXXprop271 should we count this as only a partial success somehow? - */ - entry_guard_succeeded(&conn->guard_state); - circuit_guard_state_free(conn->guard_state); - conn->guard_state = NULL; - } - /* Directory clients write, then read data until they receive EOF; * directory servers read data until they get an HTTP command, then * write their response (when it's finished flushing, they mark for @@ -3030,63 +3030,61 @@ handle_get_current_consensus(dir_connection_t *conn, smartlist_t *dir_fps = smartlist_new(); long lifetime = NETWORKSTATUS_CACHE_LIFETIME; - if (1) { - networkstatus_t *v; - time_t now = time(NULL); - const char *want_fps = NULL; - char *flavor = NULL; - int flav = FLAV_NS; - #define CONSENSUS_URL_PREFIX "/tor/status-vote/current/consensus/" - #define CONSENSUS_FLAVORED_PREFIX "/tor/status-vote/current/consensus-" - /* figure out the flavor if any, and who we wanted to sign the thing */ - if (!strcmpstart(url, CONSENSUS_FLAVORED_PREFIX)) { - const char *f, *cp; - f = url + strlen(CONSENSUS_FLAVORED_PREFIX); - cp = strchr(f, '/'); - if (cp) { - want_fps = cp+1; - flavor = tor_strndup(f, cp-f); - } else { - flavor = tor_strdup(f); - } - flav = networkstatus_parse_flavor_name(flavor); - if (flav < 0) - flav = FLAV_NS; + networkstatus_t *v; + time_t now = time(NULL); + const char *want_fps = NULL; + char *flavor = NULL; + int flav = FLAV_NS; +#define CONSENSUS_URL_PREFIX "/tor/status-vote/current/consensus/" +#define CONSENSUS_FLAVORED_PREFIX "/tor/status-vote/current/consensus-" + /* figure out the flavor if any, and who we wanted to sign the thing */ + if (!strcmpstart(url, CONSENSUS_FLAVORED_PREFIX)) { + const char *f, *cp; + f = url + strlen(CONSENSUS_FLAVORED_PREFIX); + cp = strchr(f, '/'); + if (cp) { + want_fps = cp+1; + flavor = tor_strndup(f, cp-f); } else { - if (!strcmpstart(url, CONSENSUS_URL_PREFIX)) - want_fps = url+strlen(CONSENSUS_URL_PREFIX); + flavor = tor_strdup(f); } + flav = networkstatus_parse_flavor_name(flavor); + if (flav < 0) + flav = FLAV_NS; + } else { + if (!strcmpstart(url, CONSENSUS_URL_PREFIX)) + want_fps = url+strlen(CONSENSUS_URL_PREFIX); + } - v = networkstatus_get_latest_consensus_by_flavor(flav); + v = networkstatus_get_latest_consensus_by_flavor(flav); - if (v && !networkstatus_consensus_reasonably_live(v, now)) { - write_http_status_line(conn, 404, "Consensus is too old"); - warn_consensus_is_too_old(v, flavor, now); - smartlist_free(dir_fps); - geoip_note_ns_response(GEOIP_REJECT_NOT_FOUND); - tor_free(flavor); - goto done; - } + if (v && !networkstatus_consensus_reasonably_live(v, now)) { + write_http_status_line(conn, 404, "Consensus is too old"); + warn_consensus_is_too_old(v, flavor, now); + smartlist_free(dir_fps); + geoip_note_ns_response(GEOIP_REJECT_NOT_FOUND); + tor_free(flavor); + goto done; + } - if (v && want_fps && - !client_likes_consensus(v, want_fps)) { - write_http_status_line(conn, 404, "Consensus not signed by sufficient " - "number of requested authorities"); - smartlist_free(dir_fps); - geoip_note_ns_response(GEOIP_REJECT_NOT_ENOUGH_SIGS); - tor_free(flavor); - goto done; - } + if (v && want_fps && + !client_likes_consensus(v, want_fps)) { + write_http_status_line(conn, 404, "Consensus not signed by sufficient " + "number of requested authorities"); + smartlist_free(dir_fps); + geoip_note_ns_response(GEOIP_REJECT_NOT_ENOUGH_SIGS); + tor_free(flavor); + goto done; + } - { - char *fp = tor_malloc_zero(DIGEST_LEN); - if (flavor) - strlcpy(fp, flavor, DIGEST_LEN); - tor_free(flavor); - smartlist_add(dir_fps, fp); - } - lifetime = (v && v->fresh_until > now) ? v->fresh_until - now : 0; + { + char *fp = tor_malloc_zero(DIGEST_LEN); + if (flavor) + strlcpy(fp, flavor, DIGEST_LEN); + tor_free(flavor); + smartlist_add(dir_fps, fp); } + lifetime = (v && v->fresh_until > now) ? v->fresh_until - now : 0; if (!smartlist_len(dir_fps)) { /* we failed to create/cache cp */ write_http_status_line(conn, 503, "Network status object unavailable"); @@ -3122,21 +3120,19 @@ handle_get_current_consensus(dir_connection_t *conn, goto done; } - if (1) { - tor_addr_t addr; - if (tor_addr_parse(&addr, (TO_CONN(conn))->address) >= 0) { - geoip_note_client_seen(GEOIP_CLIENT_NETWORKSTATUS, - &addr, NULL, - time(NULL)); - geoip_note_ns_response(GEOIP_SUCCESS); - /* Note that a request for a network status has started, so that we - * can measure the download time later on. */ - if (conn->dirreq_id) - geoip_start_dirreq(conn->dirreq_id, dlen, DIRREQ_TUNNELED); - else - geoip_start_dirreq(TO_CONN(conn)->global_identifier, dlen, - DIRREQ_DIRECT); - } + tor_addr_t addr; + if (tor_addr_parse(&addr, (TO_CONN(conn))->address) >= 0) { + geoip_note_client_seen(GEOIP_CLIENT_NETWORKSTATUS, + &addr, NULL, + time(NULL)); + geoip_note_ns_response(GEOIP_SUCCESS); + /* Note that a request for a network status has started, so that we + * can measure the download time later on. */ + if (conn->dirreq_id) + geoip_start_dirreq(conn->dirreq_id, dlen, DIRREQ_TUNNELED); + else + geoip_start_dirreq(TO_CONN(conn)->global_identifier, dlen, + DIRREQ_DIRECT); } write_http_response_header(conn, -1, compressed, @@ -3528,13 +3524,6 @@ handle_get_hs_descriptor_v3(dir_connection_t *conn, const char *pubkey_str = NULL; const char *url = args->url; - /* Don't serve v3 descriptors if next gen onion service is disabled. */ - if (!hs_v3_protocol_is_enabled()) { - /* 404 is used for an unrecognized URL so send back the same. */ - write_http_status_line(conn, 404, "Not found"); - goto done; - } - /* Reject unencrypted dir connections */ if (!connection_dir_is_encrypted(conn)) { write_http_status_line(conn, 404, "Not found"); @@ -3749,13 +3738,6 @@ directory_handle_command_post(dir_connection_t *conn, const char *headers, * the prop224 be deployed and thus use. */ if (connection_dir_is_encrypted(conn) && !strcmpstart(url, "/tor/hs/")) { const char *msg = "HS descriptor stored successfully."; - /* Don't accept v3 and onward publish request if next gen onion service is - * disabled. */ - if (!hs_v3_protocol_is_enabled()) { - /* 404 is used for an unrecognized URL so send back the same. */ - write_http_status_line(conn, 404, "Not found"); - goto done; - } /* We most probably have a publish request for an HS descriptor. */ int code = handle_post_hs_descriptor(url, body); diff --git a/src/or/entrynodes.c b/src/or/entrynodes.c index 82601868ba..ca3e57b064 100644 --- a/src/or/entrynodes.c +++ b/src/or/entrynodes.c @@ -4746,6 +4746,78 @@ entry_guards_update_state(or_state_t *state) entry_guards_dirty = 0; } +/** + * Format a single entry guard in the format expected by the controller. + * Return a newly allocated string. + */ +STATIC char * +getinfo_helper_format_single_entry_guard(const entry_guard_t *e, + int legacy_guard) +{ + const char *status = NULL; + time_t when = 0; + const node_t *node; + char tbuf[ISO_TIME_LEN+1]; + char nbuf[MAX_VERBOSE_NICKNAME_LEN+1]; + + if (legacy_guard) { +#ifdef ENABLE_LEGACY_GUARD_ALGORITHM + if (!e->made_contact) { + status = "never-connected"; + } else if (e->bad_since) { + when = e->bad_since; + status = "unusable"; + } else if (e->unreachable_since) { + when = e->unreachable_since; + status = "down"; + } else { + status = "up"; + } +#else + tor_assert_nonfatal_unreached(); + status = "BUG"; +#endif + } else { + /* modern case. This is going to be a bit tricky, since the status + * codes above weren't really intended for prop271 guards. + * + * XXXX use a more appropriate format for exporting this information + */ + if (e->confirmed_idx < 0) { + status = "never-connected"; + } else if (! e->currently_listed) { + when = e->unlisted_since_date; + status = "unusable"; + } else if (! e->is_filtered_guard) { + status = "unusable"; + } else if (e->is_reachable == GUARD_REACHABLE_NO) { + when = e->failing_since; + status = "down"; + } else { + status = "up"; + } + } + + node = entry_guard_find_node(e); + if (node) { + node_get_verbose_nickname(node, nbuf); + } else { + nbuf[0] = '$'; + base16_encode(nbuf+1, sizeof(nbuf)-1, e->identity, DIGEST_LEN); + /* e->nickname field is not very reliable if we don't know about + * this router any longer; don't include it. */ + } + + char *result = NULL; + if (when) { + format_iso_time(tbuf, when); + tor_asprintf(&result, "%s %s %s\n", nbuf, status, tbuf); + } else { + tor_asprintf(&result, "%s %s\n", nbuf, status); + } + return result; +} + /** If <b>question</b> is the string "entry-guards", then dump * to *<b>answer</b> a newly allocated string describing all of * the nodes in the global entry_guards list. See control-spec.txt @@ -4765,61 +4837,38 @@ getinfo_helper_entry_guards(control_connection_t *conn, tor_assert(gs != NULL); #ifdef ENABLE_LEGACY_GUARD_ALGORITHM tor_assert(gs->chosen_entry_guards != NULL); -#else - // XXXX - (void)question; - (void)answer; #endif (void) conn; (void) errmsg; -#ifdef ENABLE_LEGACY_GUARD_ALGORITHM if (!strcmp(question,"entry-guards") || !strcmp(question,"helper-nodes")) { - smartlist_t *sl = smartlist_new(); - char tbuf[ISO_TIME_LEN+1]; - char nbuf[MAX_VERBOSE_NICKNAME_LEN+1]; - - SMARTLIST_FOREACH_BEGIN(gs->chosen_entry_guards, entry_guard_t *, e) { - const char *status = NULL; - time_t when = 0; - const node_t *node; - - if (!e->made_contact) { - status = "never-connected"; - } else if (e->bad_since) { - when = e->bad_since; - status = "unusable"; - } else if (e->unreachable_since) { - when = e->unreachable_since; - status = "down"; - } else { - status = "up"; - } + const smartlist_t *guards; + int legacy_mode; + if (gs->type == GS_TYPE_LEGACY) { +#ifdef ENABLE_LEGACY_GUARD_ALGORITHM + guards = gs->chosen_entry_guards; + legacy_mode = 1; +#else + tor_assert_nonfatal_unreached(); + return 0; +#endif + } else { + guards = gs->sampled_entry_guards; + legacy_mode = 0; + } - node = node_get_by_id(e->identity); - if (node) { - node_get_verbose_nickname(node, nbuf); - } else { - nbuf[0] = '$'; - base16_encode(nbuf+1, sizeof(nbuf)-1, e->identity, DIGEST_LEN); - /* e->nickname field is not very reliable if we don't know about - * this router any longer; don't include it. */ - } + smartlist_t *sl = smartlist_new(); - if (when) { - format_iso_time(tbuf, when); - smartlist_add_asprintf(sl, "%s %s %s\n", nbuf, status, tbuf); - } else { - smartlist_add_asprintf(sl, "%s %s\n", nbuf, status); - } + SMARTLIST_FOREACH_BEGIN(guards, const entry_guard_t *, e) { + char *cp = getinfo_helper_format_single_entry_guard(e, legacy_mode); + smartlist_add(sl, cp); } SMARTLIST_FOREACH_END(e); *answer = smartlist_join_strings(sl, "", 0, NULL); SMARTLIST_FOREACH(sl, char *, c, tor_free(c)); smartlist_free(sl); } -#endif return 0; } diff --git a/src/or/entrynodes.h b/src/or/entrynodes.h index db84d594c2..5fa0fec37f 100644 --- a/src/or/entrynodes.h +++ b/src/or/entrynodes.h @@ -610,7 +610,8 @@ STATIC unsigned entry_guards_note_guard_success(guard_selection_t *gs, entry_guard_t *guard, unsigned old_state); STATIC int entry_guard_has_higher_priority(entry_guard_t *a, entry_guard_t *b); - +STATIC char *getinfo_helper_format_single_entry_guard(const entry_guard_t *e, + int is_legacy); #ifdef ENABLE_LEGACY_GUARD_ALGORITHM // ---------- XXXX this stuff is pre-prop271. diff --git a/src/or/hs_cache.c b/src/or/hs_cache.c index b7ff979e5b..43cd8c3258 100644 --- a/src/or/hs_cache.c +++ b/src/or/hs_cache.c @@ -15,6 +15,7 @@ #include "config.h" #include "hs_common.h" #include "hs_descriptor.h" +#include "networkstatus.h" #include "rendcache.h" /* Directory descriptor cache. Map indexed by blinded key. */ @@ -86,7 +87,7 @@ cache_dir_desc_new(const char *desc) } /* The blinded pubkey is the indexed key. */ - dir_desc->key = dir_desc->plaintext_data->blinded_kp.pubkey.pubkey; + dir_desc->key = dir_desc->plaintext_data->blinded_pubkey.pubkey; dir_desc->created_ts = time(NULL); return dir_desc; @@ -366,6 +367,18 @@ hs_cache_handle_oom(time_t now, size_t min_remove_bytes) return bytes_removed; } +/** + * Return the maximum size of an HS descriptor we are willing to accept as an + * HSDir. + */ +unsigned int +hs_cache_get_max_descriptor_size(void) +{ + return (unsigned) networkstatus_get_param(NULL, + "HSV3MaxDescriptorSize", + HS_DESC_MAX_LEN, 1, INT32_MAX); +} + /* Initialize the hidden service cache subsystem. */ void hs_cache_init(void) diff --git a/src/or/hs_cache.h b/src/or/hs_cache.h index 01abb8002f..ba95e73338 100644 --- a/src/or/hs_cache.h +++ b/src/or/hs_cache.h @@ -44,6 +44,8 @@ void hs_cache_free_all(void); void hs_cache_clean_as_dir(time_t now); size_t hs_cache_handle_oom(time_t now, size_t min_remove_bytes); +unsigned int hs_cache_get_max_descriptor_size(void); + /* Store and Lookup function. They are version agnostic that is depending on * the requested version of the descriptor, it will be re-routed to the * right function. */ diff --git a/src/or/hs_common.c b/src/or/hs_common.c index 7dd97e7c7c..de96946ab5 100644 --- a/src/or/hs_common.c +++ b/src/or/hs_common.c @@ -268,17 +268,3 @@ rend_data_get_pk_digest(const rend_data_t *rend_data, size_t *len_out) } } -/* Return true iff the Onion Services protocol version 3 is enabled. This only - * considers the consensus parameter. If the parameter is not found, the - * default is that it's enabled. */ -int -hs_v3_protocol_is_enabled(void) -{ - /* This consensus param controls if the the onion services version 3 is - * enabled or not which is the first version of the next generation - * (proposal 224). If this option is set to 0, the tor daemon won't support - * the protocol as either a relay, directory, service or client. By default, - * it's enabled if the parameter is not found. */ - return networkstatus_get_param(NULL, "EnableOnionServicesV3", 1, 0, 1); -} - diff --git a/src/or/hs_common.h b/src/or/hs_common.h index 8158d278df..e0ab510ea4 100644 --- a/src/or/hs_common.h +++ b/src/or/hs_common.h @@ -39,7 +39,5 @@ const char *rend_data_get_desc_id(const rend_data_t *rend_data, const uint8_t *rend_data_get_pk_digest(const rend_data_t *rend_data, size_t *len_out); -int hs_v3_protocol_is_enabled(void); - #endif /* TOR_HS_COMMON_H */ diff --git a/src/or/hs_descriptor.c b/src/or/hs_descriptor.c index 37aa1d745e..f16a2fdc14 100644 --- a/src/or/hs_descriptor.c +++ b/src/or/hs_descriptor.c @@ -15,13 +15,14 @@ #include "ed25519_cert.h" /* Trunnel interface. */ #include "parsecommon.h" #include "rendcache.h" +#include "hs_cache.h" #include "torcert.h" /* tor_cert_encode_ed22519() */ /* Constant string value used for the descriptor format. */ #define str_hs_desc "hs-descriptor" #define str_desc_cert "descriptor-signing-key-cert" #define str_rev_counter "revision-counter" -#define str_encrypted "encrypted" +#define str_superencrypted "superencrypted" #define str_signature "signature" #define str_lifetime "descriptor-lifetime" /* Constant string value for the encrypted part of the descriptor. */ @@ -35,7 +36,7 @@ #define str_intro_point_start "\n" str_intro_point " " /* Constant string value for the construction to encrypt the encrypted data * section. */ -#define str_enc_hsdir_data "hsdir-encrypted-data" +#define str_enc_hsdir_data "hsdir-superencrypted-data" /* Prefix required to compute/verify HS desc signatures */ #define str_desc_sig_prefix "Tor onion service descriptor sig v3" @@ -56,7 +57,7 @@ static token_rule_t hs_desc_v3_token_table[] = { T1(str_lifetime, R3_DESC_LIFETIME, EQ(1), NO_OBJ), T1(str_desc_cert, R3_DESC_SIGNING_CERT, NO_ARGS, NEED_OBJ), T1(str_rev_counter, R3_REVISION_COUNTER, EQ(1), NO_OBJ), - T1(str_encrypted, R3_ENCRYPTED, NO_ARGS, NEED_OBJ), + T1(str_superencrypted, R3_SUPERENCRYPTED, NO_ARGS, NEED_OBJ), T1_END(str_signature, R3_SIGNATURE, EQ(1), NO_OBJ), END_OF_TABLE }; @@ -219,7 +220,7 @@ encode_link_specifiers(const smartlist_t *specs) /* Encode an introduction point encryption key and return a newly allocated * string with it. On failure, return NULL. */ static char * -encode_enc_key(const ed25519_keypair_t *sig_key, +encode_enc_key(const ed25519_public_key_t *sig_key, const hs_desc_intro_point_t *ip) { char *encoded = NULL; @@ -237,8 +238,7 @@ encode_enc_key(const ed25519_keypair_t *sig_key, uint8_t *cert_data = NULL; /* Create cross certification cert. */ - cert_len = tor_make_rsa_ed25519_crosscert(&sig_key->pubkey, - ip->enc_key.legacy, + cert_len = tor_make_rsa_ed25519_crosscert(sig_key, ip->enc_key.legacy, now + HS_DESC_CERT_LIFETIME, &cert_data); if (cert_len < 0) { @@ -282,7 +282,7 @@ encode_enc_key(const ed25519_keypair_t *sig_key, } tor_cert_t *cross_cert = tor_cert_create(&curve_kp, CERT_TYPE_CROSS_HS_IP_KEYS, - &sig_key->pubkey, now, + sig_key, now, HS_DESC_CERT_LIFETIME, CERT_FLAG_INCLUDE_SIGNING_KEY); memwipe(&curve_kp, 0, sizeof(curve_kp)); @@ -318,7 +318,7 @@ encode_enc_key(const ed25519_keypair_t *sig_key, /* Encode an introduction point object and return a newly allocated string * with it. On failure, return NULL. */ static char * -encode_intro_point(const ed25519_keypair_t *sig_key, +encode_intro_point(const ed25519_public_key_t *sig_key, const hs_desc_intro_point_t *ip) { char *encoded_ip = NULL; @@ -377,9 +377,9 @@ build_secret_input(const hs_descriptor_t *desc, uint8_t *dst, size_t dstlen) /* XXX use the destination length as the memcpy length */ /* Copy blinded public key. */ - memcpy(dst, desc->plaintext_data.blinded_kp.pubkey.pubkey, - sizeof(desc->plaintext_data.blinded_kp.pubkey.pubkey)); - offset += sizeof(desc->plaintext_data.blinded_kp.pubkey.pubkey); + memcpy(dst, desc->plaintext_data.blinded_pubkey.pubkey, + sizeof(desc->plaintext_data.blinded_pubkey.pubkey)); + offset += sizeof(desc->plaintext_data.blinded_pubkey.pubkey); /* Copy subcredential. */ memcpy(dst + offset, desc->subcredential, sizeof(desc->subcredential)); offset += sizeof(desc->subcredential); @@ -541,8 +541,9 @@ build_encrypted(const uint8_t *key, const uint8_t *iv, const char *plaintext, tor_assert(plaintext); tor_assert(encrypted_out); - /* This creates a cipher for AES128. It can't fail. */ - cipher = crypto_cipher_new_with_iv((const char *) key, (const char *) iv); + /* This creates a cipher for AES. It can't fail. */ + cipher = crypto_cipher_new_with_iv_and_bits(key, iv, + HS_DESC_ENCRYPTED_BIT_SIZE); /* This can't fail. */ encrypted_len = build_plaintext_padding(plaintext, plaintext_len, &padded_plaintext); @@ -573,7 +574,7 @@ encrypt_descriptor_data(const hs_descriptor_t *desc, const char *plaintext, size_t encrypted_len, final_blob_len, offset = 0; uint8_t *encrypted; uint8_t salt[HS_DESC_ENCRYPTED_SALT_LEN]; - uint8_t secret_key[CIPHER_KEY_LEN], secret_iv[CIPHER_IV_LEN]; + uint8_t secret_key[HS_DESC_ENCRYPTED_KEY_LEN], secret_iv[CIPHER_IV_LEN]; uint8_t mac_key[DIGEST256_LEN], mac[DIGEST256_LEN]; tor_assert(desc); @@ -665,7 +666,7 @@ encode_encrypted_data(const hs_descriptor_t *desc, /* Build the introduction point(s) section. */ SMARTLIST_FOREACH_BEGIN(desc->encrypted_data.intro_points, const hs_desc_intro_point_t *, ip) { - char *encoded_ip = encode_intro_point(&desc->plaintext_data.signing_kp, + char *encoded_ip = encode_intro_point(&desc->plaintext_data.signing_pubkey, ip); if (encoded_ip == NULL) { log_err(LD_BUG, "HS desc intro point is malformed."); @@ -710,7 +711,8 @@ encode_encrypted_data(const hs_descriptor_t *desc, * newly allocated string of the encoded descriptor. On error, -1 is returned * and encoded_out is untouched. */ static int -desc_encode_v3(const hs_descriptor_t *desc, char **encoded_out) +desc_encode_v3(const hs_descriptor_t *desc, + const ed25519_keypair_t *signing_kp, char **encoded_out) { int ret = -1; char *encoded_str = NULL; @@ -718,6 +720,7 @@ desc_encode_v3(const hs_descriptor_t *desc, char **encoded_out) smartlist_t *lines = smartlist_new(); tor_assert(desc); + tor_assert(signing_kp); tor_assert(encoded_out); tor_assert(desc->plaintext_data.version == 3); @@ -732,7 +735,7 @@ desc_encode_v3(const hs_descriptor_t *desc, char **encoded_out) goto err; } if (tor_cert_encode_ed22519(desc->plaintext_data.signing_key_cert, - &encoded_cert) < 0) { + &encoded_cert) < 0) { /* The function will print error logs. */ goto err; } @@ -750,7 +753,7 @@ desc_encode_v3(const hs_descriptor_t *desc, char **encoded_out) desc->plaintext_data.revision_counter); } - /* Build the encrypted data section. */ + /* Build the superencrypted data section. */ { char *enc_b64_blob=NULL; if (encode_encrypted_data(desc, &enc_b64_blob) < 0) { @@ -761,7 +764,7 @@ desc_encode_v3(const hs_descriptor_t *desc, char **encoded_out) "-----BEGIN MESSAGE-----\n" "%s" "-----END MESSAGE-----", - str_encrypted, enc_b64_blob); + str_superencrypted, enc_b64_blob); tor_free(enc_b64_blob); } @@ -775,8 +778,7 @@ desc_encode_v3(const hs_descriptor_t *desc, char **encoded_out) char ed_sig_b64[ED25519_SIG_BASE64_LEN + 1]; if (ed25519_sign_prefixed(&sig, (const uint8_t *) encoded_str, encoded_len, - str_desc_sig_prefix, - &desc->plaintext_data.signing_kp) < 0) { + str_desc_sig_prefix, signing_kp) < 0) { log_warn(LD_BUG, "Can't sign encoded HS descriptor!"); tor_free(encoded_str); goto err; @@ -1058,7 +1060,7 @@ static size_t desc_decrypt_data_v3(const hs_descriptor_t *desc, char **decrypted_out) { uint8_t *decrypted = NULL; - uint8_t secret_key[CIPHER_KEY_LEN], secret_iv[CIPHER_IV_LEN]; + uint8_t secret_key[HS_DESC_ENCRYPTED_KEY_LEN], secret_iv[CIPHER_IV_LEN]; uint8_t mac_key[DIGEST256_LEN], our_mac[DIGEST256_LEN]; const uint8_t *salt, *encrypted, *desc_mac; size_t encrypted_len, result_len = 0; @@ -1118,8 +1120,9 @@ desc_decrypt_data_v3(const hs_descriptor_t *desc, char **decrypted_out) /* Decrypt. Here we are assured that the encrypted length is valid for * decryption. */ crypto_cipher_t *cipher; - cipher = crypto_cipher_new_with_iv((const char *) secret_key, - (const char *) secret_iv); + + cipher = crypto_cipher_new_with_iv_and_bits(secret_key, secret_iv, + HS_DESC_ENCRYPTED_BIT_SIZE); /* Extra byte for the NUL terminated byte. */ decrypted = tor_malloc_zero(encrypted_len + 1); crypto_cipher_decrypt(cipher, (char *) decrypted, @@ -1365,7 +1368,8 @@ decode_intro_points(const hs_descriptor_t *desc, /* Return 1 iff the given base64 encoded signature in b64_sig from the encoded * descriptor in encoded_desc validates the descriptor content. */ STATIC int -desc_sig_is_valid(const char *b64_sig, const ed25519_keypair_t *signing_kp, +desc_sig_is_valid(const char *b64_sig, + const ed25519_public_key_t *signing_pubkey, const char *encoded_desc, size_t encoded_len) { int ret = 0; @@ -1373,7 +1377,7 @@ desc_sig_is_valid(const char *b64_sig, const ed25519_keypair_t *signing_kp, const char *sig_start; tor_assert(b64_sig); - tor_assert(signing_kp); + tor_assert(signing_pubkey); tor_assert(encoded_desc); /* Verifying nothing won't end well :). */ tor_assert(encoded_len > 0); @@ -1408,7 +1412,7 @@ desc_sig_is_valid(const char *b64_sig, const ed25519_keypair_t *signing_kp, (const uint8_t *) encoded_desc, sig_start - encoded_desc, str_desc_sig_prefix, - &signing_kp->pubkey) != 0) { + signing_pubkey) != 0) { log_warn(LD_REND, "Invalid signature on service descriptor"); goto err; } @@ -1474,10 +1478,10 @@ desc_decode_plaintext_v3(smartlist_t *tokens, goto err; } - /* Copy the public keys into signing_kp and blinded_kp */ - memcpy(&desc->signing_kp.pubkey, &desc->signing_key_cert->signed_key, + /* Copy the public keys into signing_pubkey and blinded_pubkey */ + memcpy(&desc->signing_pubkey, &desc->signing_key_cert->signed_key, sizeof(ed25519_public_key_t)); - memcpy(&desc->blinded_kp.pubkey, &desc->signing_key_cert->signing_key, + memcpy(&desc->blinded_pubkey, &desc->signing_key_cert->signing_key, sizeof(ed25519_public_key_t)); /* Extract revision counter value. */ @@ -1491,7 +1495,7 @@ desc_decode_plaintext_v3(smartlist_t *tokens, } /* Extract the encrypted data section. */ - tok = find_by_keyword(tokens, R3_ENCRYPTED); + tok = find_by_keyword(tokens, R3_SUPERENCRYPTED); tor_assert(tok->object_body); if (strcmp(tok->object_type, "MESSAGE") != 0) { log_warn(LD_REND, "Service descriptor encrypted data section is invalid"); @@ -1511,7 +1515,7 @@ desc_decode_plaintext_v3(smartlist_t *tokens, tok = find_by_keyword(tokens, R3_SIGNATURE); tor_assert(tok->n_args == 1); /* First arg here is the actual encoded signature. */ - if (!desc_sig_is_valid(tok->args[0], &desc->signing_kp, + if (!desc_sig_is_valid(tok->args[0], &desc->signing_pubkey, encoded_desc, encoded_len)) { goto err; } @@ -1700,8 +1704,9 @@ hs_desc_decode_plaintext(const char *encoded, tor_assert(encoded); tor_assert(plaintext); + /* Check that descriptor is within size limits. */ encoded_len = strlen(encoded); - if (encoded_len >= HS_DESC_MAX_LEN) { + if (encoded_len >= hs_cache_get_max_descriptor_size()) { log_warn(LD_REND, "Service descriptor is too big (%lu bytes)", (unsigned long) encoded_len); goto err; @@ -1806,41 +1811,46 @@ hs_desc_decode_descriptor(const char *encoded, return ret; } -/* Table of encode function version specific. The function are indexed by the +/* Table of encode function version specific. The functions are indexed by the * version number so v3 callback is at index 3 in the array. */ static int (*encode_handlers[])( const hs_descriptor_t *desc, + const ed25519_keypair_t *signing_kp, char **encoded_out) = { /* v0 */ NULL, /* v1 */ NULL, /* v2 */ NULL, desc_encode_v3, }; -/* Encode the given descriptor desc. On success, encoded_out points to a newly - * allocated NUL terminated string that contains the encoded descriptor as a - * string. +/* Encode the given descriptor desc including signing with the given key pair + * signing_kp. On success, encoded_out points to a newly allocated NUL + * terminated string that contains the encoded descriptor as a string. * * Return 0 on success and encoded_out is a valid pointer. On error, -1 is * returned and encoded_out is set to NULL. */ int -hs_desc_encode_descriptor(const hs_descriptor_t *desc, char **encoded_out) +hs_desc_encode_descriptor(const hs_descriptor_t *desc, + const ed25519_keypair_t *signing_kp, + char **encoded_out) { int ret = -1; + uint32_t version; tor_assert(desc); tor_assert(encoded_out); /* Make sure we support the version of the descriptor format. */ - if (!hs_desc_is_supported_version(desc->plaintext_data.version)) { + version = desc->plaintext_data.version; + if (!hs_desc_is_supported_version(version)) { goto err; } /* Extra precaution. Having no handler for the supported version should * never happened else we forgot to add it but we bumped the version. */ - tor_assert(ARRAY_LENGTH(encode_handlers) >= desc->plaintext_data.version); - tor_assert(encode_handlers[desc->plaintext_data.version]); + tor_assert(ARRAY_LENGTH(encode_handlers) >= version); + tor_assert(encode_handlers[version]); - ret = encode_handlers[desc->plaintext_data.version](desc, encoded_out); + ret = encode_handlers[version](desc, signing_kp, encoded_out); if (ret < 0) { goto err; } diff --git a/src/or/hs_descriptor.h b/src/or/hs_descriptor.h index 083d353860..b520d24471 100644 --- a/src/or/hs_descriptor.h +++ b/src/or/hs_descriptor.h @@ -40,7 +40,7 @@ /* Length of the KDF output value which is the length of the secret key, * the secret IV and MAC key length which is the length of H() output. */ #define HS_DESC_ENCRYPTED_KDF_OUTPUT_LEN \ - CIPHER_KEY_LEN + CIPHER_IV_LEN + DIGEST256_LEN + CIPHER256_KEY_LEN + CIPHER_IV_LEN + DIGEST256_LEN /* We need to pad the plaintext version of the encrypted data section before * encryption and it has to be a multiple of this value. */ #define HS_DESC_PLAINTEXT_PADDING_MULTIPLE 128 @@ -54,12 +54,18 @@ HS_DESC_ENCRYPTED_SALT_LEN + \ HS_DESC_PLAINTEXT_PADDING_MULTIPLE + DIGEST256_LEN /* Maximum length in bytes of a full hidden service descriptor. */ -#define HS_DESC_MAX_LEN 32768 // XXX justify +#define HS_DESC_MAX_LEN 50000 /* 50kb max size */ /* The minimum amount of fields a descriptor should contain. The parsing of * the fields are version specific so the only required field, as a generic * view of a descriptor, is 1 that is the version field. */ #define HS_DESC_PLAINTEXT_MIN_FIELDS 1 +/* Key length for the descriptor symmetric encryption. As specified in the + * protocol, we use AES-256 for the encrypted section of the descriptor. The + * following is the length in bytes and the bit size. */ +#define HS_DESC_ENCRYPTED_KEY_LEN CIPHER256_KEY_LEN +#define HS_DESC_ENCRYPTED_BIT_SIZE (HS_DESC_ENCRYPTED_KEY_LEN * 8) + /* Type of authentication in the descriptor. */ typedef enum { HS_DESC_AUTH_PASSWORD = 1, @@ -148,13 +154,13 @@ typedef struct hs_desc_plaintext_data_t { * replica which is signed by the blinded public key for that replica. */ tor_cert_t *signing_key_cert; - /* Signing keypair which is used to sign the descriptor. Same public key + /* Signing public key which is used to sign the descriptor. Same public key * as in the signing key certificate. */ - ed25519_keypair_t signing_kp; + ed25519_public_key_t signing_pubkey; - /* Blinded keypair used for this descriptor derived from the master + /* Blinded public key used for this descriptor derived from the master * identity key and generated for a specific replica number. */ - ed25519_keypair_t blinded_kp; + ed25519_public_key_t blinded_pubkey; /* Revision counter is incremented at each upload, regardless of whether * the descriptor has changed. This avoids leaking whether the descriptor @@ -201,6 +207,7 @@ void hs_desc_plaintext_data_free(hs_desc_plaintext_data_t *desc); void hs_desc_encrypted_data_free(hs_desc_encrypted_data_t *desc); int hs_desc_encode_descriptor(const hs_descriptor_t *desc, + const ed25519_keypair_t *signing_kp, char **encoded_out); int hs_desc_decode_descriptor(const char *encoded, @@ -232,7 +239,7 @@ STATIC int encrypted_data_length_is_valid(size_t len); STATIC int cert_is_valid(tor_cert_t *cert, uint8_t type, const char *log_obj_type); STATIC int desc_sig_is_valid(const char *b64_sig, - const ed25519_keypair_t *signing_kp, + const ed25519_public_key_t *signing_pubkey, const char *encoded_desc, size_t encoded_len); STATIC void desc_intro_point_free(hs_desc_intro_point_t *ip); #endif /* HS_DESCRIPTOR_PRIVATE */ diff --git a/src/or/hs_intropoint.c b/src/or/hs_intropoint.c index bfc7ec3876..b37c9a1b9f 100644 --- a/src/or/hs_intropoint.c +++ b/src/or/hs_intropoint.c @@ -70,7 +70,11 @@ verify_establish_intro_cell(const hs_cell_establish_intro_t *cell, ed25519_signature_t sig_struct; const uint8_t *sig_array = hs_cell_establish_intro_getconstarray_sig(cell); - if (hs_cell_establish_intro_getlen_sig(cell) != sizeof(sig_struct.sig)) { + /* Make sure the signature length is of the right size. For EXTRA safety, + * we check both the size of the array and the length which must be the + * same. Safety first!*/ + if (hs_cell_establish_intro_getlen_sig(cell) != sizeof(sig_struct.sig) || + hs_cell_establish_intro_get_sig_len(cell) != sizeof(sig_struct.sig)) { log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL, "ESTABLISH_INTRO sig len is invalid"); return -1; @@ -83,7 +87,7 @@ verify_establish_intro_cell(const hs_cell_establish_intro_t *cell, const size_t sig_msg_len = cell->end_sig_fields - msg; int sig_mismatch = ed25519_checksig_prefixed(&sig_struct, - (uint8_t*) msg, sig_msg_len, + msg, sig_msg_len, ESTABLISH_INTRO_SIG_PREFIX, &auth_key); if (sig_mismatch) { diff --git a/src/or/hs_service.c b/src/or/hs_service.c index 3b5a3e7853..7b12b63065 100644 --- a/src/or/hs_service.c +++ b/src/or/hs_service.c @@ -152,8 +152,9 @@ generate_establish_intro_cell(const uint8_t *circuit_key_material, tor_assert(encoded_len > ED25519_SIG_LEN); if (ed25519_sign_prefixed(&sig, - (uint8_t*) cell_bytes_tmp, - encoded_len - ED25519_SIG_LEN, + cell_bytes_tmp, + encoded_len - + (ED25519_SIG_LEN + sizeof(cell->sig_len)), ESTABLISH_INTRO_SIG_PREFIX, &key_struct)) { log_warn(LD_BUG, "Unable to gen signature for ESTABLISH_INTRO cell."); diff --git a/src/or/main.c b/src/or/main.c index 0d4da65764..24b209ce8a 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -486,7 +486,7 @@ connection_check_event(connection_t *conn, struct event *ev) */ bad = ev != NULL; } else { - /* Everytyhing else should have an underlying socket, or a linked + /* Everything else should have an underlying socket, or a linked * connection (which is also tracked with a read_event/write_event pair). */ bad = ev == NULL; @@ -1656,8 +1656,7 @@ static int check_expired_networkstatus_callback(time_t now, const or_options_t *options) { (void)options; - /* 1f. Check whether our networkstatus has expired. - */ + /* Check whether our networkstatus has expired. */ networkstatus_t *ns = networkstatus_get_latest_consensus(); /*XXXX RD: This value needs to be the same as REASONABLY_LIVE_TIME in * networkstatus_get_reasonably_live_consensus(), but that value is way @@ -1769,7 +1768,7 @@ clean_caches_callback(time_t now, const or_options_t *options) /** * Periodic callback: Clean the cache of failed hidden service lookups - * frequently frequently. + * frequently. */ static int rend_cache_failure_clean_callback(time_t now, const or_options_t *options) diff --git a/src/or/nodelist.c b/src/or/nodelist.c index 2bcedbfb0c..804af297ba 100644 --- a/src/or/nodelist.c +++ b/src/or/nodelist.c @@ -1126,6 +1126,9 @@ node_get_prim_orport(const node_t *node, tor_addr_port_t *ap_out) node_assert_ok(node); tor_assert(ap_out); + /* Check ri first, because rewrite_node_address_for_bridge() updates + * node->ri with the configured bridge address. */ + RETURN_IPV4_AP(node->ri, or_port, ap_out); RETURN_IPV4_AP(node->rs, or_port, ap_out); /* Microdescriptors only have an IPv6 address */ @@ -1156,9 +1159,11 @@ node_get_pref_ipv6_orport(const node_t *node, tor_addr_port_t *ap_out) node_assert_ok(node); tor_assert(ap_out); - /* Prefer routerstatus over microdesc for consistency with the - * fascist_firewall_* functions. Also check if the address or port are valid, - * and try another alternative if they are not. */ + /* Check ri first, because rewrite_node_address_for_bridge() updates + * node->ri with the configured bridge address. + * Prefer rs over md for consistency with the fascist_firewall_* functions. + * Check if the address or port are valid, and try another alternative + * if they are not. */ if (node->ri && tor_addr_port_is_valid(&node->ri->ipv6_addr, node->ri->ipv6_orport, 0)) { @@ -1218,6 +1223,9 @@ node_get_prim_dirport(const node_t *node, tor_addr_port_t *ap_out) node_assert_ok(node); tor_assert(ap_out); + /* Check ri first, because rewrite_node_address_for_bridge() updates + * node->ri with the configured bridge address. */ + RETURN_IPV4_AP(node->ri, dir_port, ap_out); RETURN_IPV4_AP(node->rs, dir_port, ap_out); /* Microdescriptors only have an IPv6 address */ @@ -1250,8 +1258,11 @@ node_get_pref_ipv6_dirport(const node_t *node, tor_addr_port_t *ap_out) node_assert_ok(node); tor_assert(ap_out); - /* Check if the address or port are valid, and try another alternative if - * they are not. Note that microdescriptors have no dir_port. */ + /* Check ri first, because rewrite_node_address_for_bridge() updates + * node->ri with the configured bridge address. + * Prefer rs over md for consistency with the fascist_firewall_* functions. + * Check if the address or port are valid, and try another alternative + * if they are not. */ /* Assume IPv4 and IPv6 dirports are the same */ if (node->ri && tor_addr_port_is_valid(&node->ri->ipv6_addr, diff --git a/src/or/or.h b/src/or/or.h index c35e15ee45..2e1d2af599 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -1760,7 +1760,7 @@ typedef struct dir_connection_t { /** Which 'resource' did we ask the directory for? This is typically the part * of the URL string that defines, relative to the directory conn purpose, * what thing we want. For example, in router descriptor downloads by - * descriptor digest, it contains "d/", then one ore more +-separated + * descriptor digest, it contains "d/", then one or more +-separated * fingerprints. **/ char *requested_resource; diff --git a/src/or/parsecommon.h b/src/or/parsecommon.h index 3019df63eb..15e9f7ae85 100644 --- a/src/or/parsecommon.h +++ b/src/or/parsecommon.h @@ -154,7 +154,7 @@ typedef enum { R3_DESC_LIFETIME, R3_DESC_SIGNING_CERT, R3_REVISION_COUNTER, - R3_ENCRYPTED, + R3_SUPERENCRYPTED, R3_SIGNATURE, R3_CREATE2_FORMATS, R3_AUTHENTICATION_REQUIRED, diff --git a/src/or/policies.c b/src/or/policies.c index f4c0cddbcc..84600f7ef8 100644 --- a/src/or/policies.c +++ b/src/or/policies.c @@ -20,6 +20,7 @@ #include "or.h" #include "config.h" #include "dirserv.h" +#include "microdesc.h" #include "networkstatus.h" #include "nodelist.h" #include "policies.h" @@ -297,8 +298,8 @@ parse_reachable_addresses(void) } else if (fascist_firewall_use_ipv6(options) && (policy_is_reject_star(reachable_or_addr_policy, AF_INET6, 0) || policy_is_reject_star(reachable_dir_addr_policy, AF_INET6, 0))) { - log_warn(LD_CONFIG, "You have configured tor to use IPv6 " - "(ClientUseIPv6 1 or UseBridges 1), but " + log_warn(LD_CONFIG, "You have configured tor to use or prefer IPv6 " + "(or UseBridges 1), but " "ReachableAddresses, ReachableORAddresses, or " "ReachableDirAddresses reject all IPv6 addresses. " "Tor will not connect using IPv6."); @@ -316,10 +317,8 @@ firewall_is_fascist_impl(void) const or_options_t *options = get_options(); /* Assume every non-bridge relay has an IPv4 address. * Clients which use bridges may only know the IPv6 address of their - * bridge. */ - return (options->ClientUseIPv4 == 0 - || (!fascist_firewall_use_ipv6(options) - && options->UseBridges == 1)); + * bridge, but they will connect regardless of the ClientUseIPv6 setting. */ + return options->ClientUseIPv4 == 0; } /** Return true iff the firewall options, including ClientUseIPv4 0 and @@ -426,6 +425,9 @@ fascist_firewall_allows_address(const tor_addr_t *addr, } /** Is this client configured to use IPv6? + * Returns true if the client might use IPv6 for some of its connections + * (including dual-stack and IPv6-only clients), and false if it will never + * use IPv6 for any connections. * Use node_ipv6_or/dir_preferred() when checking a specific node and OR/Dir * port: it supports bridge client per-node IPv6 preferences. */ @@ -433,9 +435,11 @@ int fascist_firewall_use_ipv6(const or_options_t *options) { /* Clients use IPv6 if it's set, or they use bridges, or they don't use - * IPv4 */ - return (options->ClientUseIPv6 == 1 || options->UseBridges == 1 - || options->ClientUseIPv4 == 0); + * IPv4, or they prefer it. + * ClientPreferIPv6DirPort is deprecated, but check it anyway. */ + return (options->ClientUseIPv6 == 1 || options->ClientUseIPv4 == 0 || + options->ClientPreferIPv6ORPort == 1 || + options->ClientPreferIPv6DirPort == 1 || options->UseBridges == 1); } /** Do we prefer to connect to IPv6, ignoring ClientPreferIPv6ORPort and @@ -888,6 +892,33 @@ fascist_firewall_choose_address_ipv4h(uint32_t ipv4h_addr, pref_ipv6, ap); } +/* The microdescriptor consensus has no IPv6 addresses in rs: they are in + * the microdescriptors. This means we can't rely on the node's IPv6 address + * until its microdescriptor is available (when using microdescs). + * But for bridges, rewrite_node_address_for_bridge() updates node->ri with + * the configured address, so we can trust bridge addresses. + * (Bridges could gain an IPv6 address if their microdescriptor arrives, but + * this will never be their preferred address: that is in the config.) + * Returns true if the node needs a microdescriptor for its IPv6 address, and + * false if the addresses in the node are already up-to-date. + */ +static int +node_awaiting_ipv6(const or_options_t* options, const node_t *node) +{ + tor_assert(node); + + /* There's no point waiting for an IPv6 address if we'd never use it */ + if (!fascist_firewall_use_ipv6(options)) { + return 0; + } + + /* We are waiting if we_use_microdescriptors_for_circuits() and we have no + * md. Bridges have a ri based on their config. They would never use the + * address from their md, so there's no need to wait for it. */ + return (!node->md && we_use_microdescriptors_for_circuits(options) && + !node->ri); +} + /** Like fascist_firewall_choose_address_base(), but takes <b>rs</b>. * Consults the corresponding node, then falls back to rs if node is NULL. * This should only happen when there's no valid consensus, and rs doesn't @@ -904,15 +935,15 @@ fascist_firewall_choose_address_rs(const routerstatus_t *rs, tor_assert(ap); + const or_options_t *options = get_options(); const node_t *node = node_get_by_id(rs->identity_digest); - if (node) { + if (node && !node_awaiting_ipv6(options, node)) { return fascist_firewall_choose_address_node(node, fw_connection, pref_only, ap); } else { /* There's no node-specific IPv6 preference, so use the generic IPv6 * preference instead. */ - const or_options_t *options = get_options(); int pref_ipv6 = (fw_connection == FIREWALL_OR_CONNECTION ? fascist_firewall_prefer_ipv6_orport(options) : fascist_firewall_prefer_ipv6_dirport(options)); @@ -946,6 +977,18 @@ fascist_firewall_choose_address_node(const node_t *node, node_assert_ok(node); + /* Calling fascist_firewall_choose_address_node() when the node is missing + * IPv6 information breaks IPv6-only clients. + * If the node is a hard-coded fallback directory or authority, call + * fascist_firewall_choose_address_rs() on the fake (hard-coded) routerstatus + * for the node. + * If it is not hard-coded, check that the node has a microdescriptor, full + * descriptor (routerinfo), or is one of our configured bridges before + * calling this function. */ + if (BUG(node_awaiting_ipv6(get_options(), node))) { + return 0; + } + const int pref_ipv6_node = (fw_connection == FIREWALL_OR_CONNECTION ? node_ipv6_or_preferred(node) : node_ipv6_dir_preferred(node)); diff --git a/src/or/rendservice.c b/src/or/rendservice.c index 1713a84bbd..bf34aee283 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -542,6 +542,95 @@ rend_service_check_dir_and_add(smartlist_t *service_list, return rend_add_service(s_list, service); } +/* If this is a reload and there were hidden services configured before, + * keep the introduction points that are still needed and close the + * other ones. */ +STATIC void +prune_services_on_reload(smartlist_t *old_service_list, + smartlist_t *new_service_list) +{ + origin_circuit_t *ocirc = NULL; + smartlist_t *surviving_services = NULL; + + tor_assert(old_service_list); + tor_assert(new_service_list); + + /* This contains all _existing_ services that survives the relaod that is + * that haven't been removed from the configuration. The difference between + * this list and the new service list is that the new list can possibly + * contain newly configured service that have no introduction points opened + * yet nor key material loaded or generated. */ + surviving_services = smartlist_new(); + + /* Preserve the existing ephemeral services. + * + * This is the ephemeral service equivalent of the "Copy introduction + * points to new services" block, except there's no copy required since + * the service structure isn't regenerated. + * + * After this is done, all ephemeral services will be: + * * Removed from old_service_list, so the equivalent non-ephemeral code + * will not attempt to preserve them. + * * Added to the new_service_list (that previously only had the + * services listed in the configuration). + * * Added to surviving_services, which is the list of services that + * will NOT have their intro point closed. + */ + SMARTLIST_FOREACH_BEGIN(old_service_list, rend_service_t *, old) { + if (rend_service_is_ephemeral(old)) { + SMARTLIST_DEL_CURRENT(old_service_list, old); + smartlist_add(surviving_services, old); + smartlist_add(new_service_list, old); + } + } SMARTLIST_FOREACH_END(old); + + /* Copy introduction points to new services. This is O(n^2), but it's only + * called on reconfigure, so it's ok performance wise. */ + SMARTLIST_FOREACH_BEGIN(new_service_list, rend_service_t *, new) { + SMARTLIST_FOREACH_BEGIN(old_service_list, rend_service_t *, old) { + /* Skip ephemeral services as we only want to copy introduction points + * from current services to newly configured one that already exists. + * The same directory means it's the same service. */ + if (rend_service_is_ephemeral(new) || rend_service_is_ephemeral(old) || + strcmp(old->directory, new->directory)) { + continue; + } + smartlist_add_all(new->intro_nodes, old->intro_nodes); + smartlist_clear(old->intro_nodes); + smartlist_add_all(new->expiring_nodes, old->expiring_nodes); + smartlist_clear(old->expiring_nodes); + /* This regular service will survive the closing IPs step after. */ + smartlist_add(surviving_services, old); + break; + } SMARTLIST_FOREACH_END(old); + } SMARTLIST_FOREACH_END(new); + + /* For every service introduction circuit we can find, see if we have a + * matching surviving configured service. If not, close the circuit. */ + while ((ocirc = circuit_get_next_service_intro_circ(ocirc))) { + int keep_it = 0; + tor_assert(ocirc->rend_data); + SMARTLIST_FOREACH_BEGIN(surviving_services, const rend_service_t *, s) { + if (rend_circuit_pk_digest_eq(ocirc, (uint8_t *) s->pk_digest)) { + /* Keep this circuit as we have a matching configured service. */ + keep_it = 1; + break; + } + } SMARTLIST_FOREACH_END(s); + if (keep_it) { + continue; + } + log_info(LD_REND, "Closing intro point %s for service %s.", + safe_str_client(extend_info_describe( + ocirc->build_state->chosen_exit)), + safe_str_client(rend_data_get_address(ocirc->rend_data))); + /* Reason is FINISHED because service has been removed and thus the + * circuit is considered old/uneeded. */ + circuit_mark_for_close(TO_CIRCUIT(ocirc), END_CIRC_REASON_FINISHED); + } + smartlist_free(surviving_services); +} + /** Set up rend_service_list, based on the values of HiddenServiceDir and * HiddenServicePort in <b>options</b>. Return 0 on success and -1 on * failure. (If <b>validate_only</b> is set, parse, warn and return as @@ -556,6 +645,7 @@ rend_config_services(const or_options_t *options, int validate_only) smartlist_t *old_service_list = NULL; smartlist_t *temp_service_list = NULL; int ok = 0; + int rv = -1; /* Use a temporary service list, so that we can check the new services' * consistency with each other */ @@ -568,7 +658,8 @@ rend_config_services(const or_options_t *options, int validate_only) * which is registered below the loop */ if (rend_service_check_dir_and_add(temp_service_list, options, service, validate_only) < 0) { - return -1; + service = NULL; + goto free_and_return; } service = tor_malloc_zero(sizeof(rend_service_t)); service->directory = tor_strdup(line->value); @@ -580,8 +671,7 @@ rend_config_services(const or_options_t *options, int validate_only) if (!service) { log_warn(LD_CONFIG, "%s with no preceding HiddenServiceDir directive", line->key); - rend_service_free(service); - return -1; + goto free_and_return; } if (!strcasecmp(line->key, "HiddenServicePort")) { char *err_msg = NULL; @@ -590,8 +680,7 @@ rend_config_services(const or_options_t *options, int validate_only) if (err_msg) log_warn(LD_CONFIG, "%s", err_msg); tor_free(err_msg); - rend_service_free(service); - return -1; + goto free_and_return; } tor_assert(!err_msg); smartlist_add(service->ports, portcfg); @@ -602,8 +691,8 @@ rend_config_services(const or_options_t *options, int validate_only) log_warn(LD_CONFIG, "HiddenServiceAllowUnknownPorts should be 0 or 1, not %s", line->value); - rend_service_free(service); - return -1; + smartlist_free(temp_service_list); + goto free_and_return; } log_info(LD_CONFIG, "HiddenServiceAllowUnknownPorts=%d for %s", @@ -617,8 +706,7 @@ rend_config_services(const or_options_t *options, int validate_only) log_warn(LD_CONFIG, "HiddenServiceDirGroupReadable should be 0 or 1, not %s", line->value); - rend_service_free(service); - return -1; + goto free_and_return; } log_info(LD_CONFIG, "HiddenServiceDirGroupReadable=%d for %s", @@ -631,8 +719,7 @@ rend_config_services(const or_options_t *options, int validate_only) log_warn(LD_CONFIG, "HiddenServiceMaxStreams should be between 0 and %d, not %s", 65535, line->value); - rend_service_free(service); - return -1; + goto free_and_return; } log_info(LD_CONFIG, "HiddenServiceMaxStreams=%d for %s", @@ -646,8 +733,7 @@ rend_config_services(const or_options_t *options, int validate_only) "HiddenServiceMaxStreamsCloseCircuit should be 0 or 1, " "not %s", line->value); - rend_service_free(service); - return -1; + goto free_and_return; } log_info(LD_CONFIG, "HiddenServiceMaxStreamsCloseCircuit=%d for %s", @@ -664,8 +750,7 @@ rend_config_services(const or_options_t *options, int validate_only) "should be between %d and %d, not %s", NUM_INTRO_POINTS_DEFAULT, NUM_INTRO_POINTS_MAX, line->value); - rend_service_free(service); - return -1; + goto free_and_return; } log_info(LD_CONFIG, "HiddenServiceNumIntroductionPoints=%d for %s", service->n_intro_points_wanted, @@ -680,8 +765,7 @@ rend_config_services(const or_options_t *options, int validate_only) if (service->auth_type != REND_NO_AUTH) { log_warn(LD_CONFIG, "Got multiple HiddenServiceAuthorizeClient " "lines for a single service."); - rend_service_free(service); - return -1; + goto free_and_return; } type_names_split = smartlist_new(); smartlist_split_string(type_names_split, line->value, " ", 0, 2); @@ -689,9 +773,7 @@ rend_config_services(const or_options_t *options, int validate_only) log_warn(LD_BUG, "HiddenServiceAuthorizeClient has no value. This " "should have been prevented when parsing the " "configuration."); - smartlist_free(type_names_split); - rend_service_free(service); - return -1; + goto free_and_return; } authname = smartlist_get(type_names_split, 0); if (!strcasecmp(authname, "basic")) { @@ -705,8 +787,7 @@ rend_config_services(const or_options_t *options, int validate_only) (char *) smartlist_get(type_names_split, 0)); SMARTLIST_FOREACH(type_names_split, char *, cp, tor_free(cp)); smartlist_free(type_names_split); - rend_service_free(service); - return -1; + goto free_and_return; } service->clients = smartlist_new(); if (smartlist_len(type_names_split) < 2) { @@ -743,8 +824,7 @@ rend_config_services(const or_options_t *options, int validate_only) client_name, REND_CLIENTNAME_MAX_LEN); SMARTLIST_FOREACH(clients, char *, cp, tor_free(cp)); smartlist_free(clients); - rend_service_free(service); - return -1; + goto free_and_return; } client = tor_malloc_zero(sizeof(rend_authorized_client_t)); client->client_name = tor_strdup(client_name); @@ -766,16 +846,14 @@ rend_config_services(const or_options_t *options, int validate_only) smartlist_len(service->clients), service->auth_type == REND_BASIC_AUTH ? 512 : 16, service->auth_type == REND_BASIC_AUTH ? "basic" : "stealth"); - rend_service_free(service); - return -1; + goto free_and_return; } } else { tor_assert(!strcasecmp(line->key, "HiddenServiceVersion")); if (strcmp(line->value, "2")) { log_warn(LD_CONFIG, "The only supported HiddenServiceVersion is 2."); - rend_service_free(service); - return -1; + goto free_and_return; } } } @@ -784,16 +862,15 @@ rend_config_services(const or_options_t *options, int validate_only) * within the loop. It is ok for this service to be NULL, it is ignored. */ if (rend_service_check_dir_and_add(temp_service_list, options, service, validate_only) < 0) { - return -1; + service = NULL; + goto free_and_return; } + service = NULL; /* Free the newly added services if validating */ if (validate_only) { - SMARTLIST_FOREACH(temp_service_list, rend_service_t *, ptr, - rend_service_free(ptr)); - smartlist_free(temp_service_list); - temp_service_list = NULL; - return 0; + rv = 0; + goto free_and_return; } /* Otherwise, use the newly added services as the new service list @@ -807,88 +884,21 @@ rend_config_services(const or_options_t *options, int validate_only) * keep the introduction points that are still needed and close the * other ones. */ if (old_service_list && !validate_only) { - smartlist_t *surviving_services = smartlist_new(); - - /* Preserve the existing ephemeral services. - * - * This is the ephemeral service equivalent of the "Copy introduction - * points to new services" block, except there's no copy required since - * the service structure isn't regenerated. - * - * After this is done, all ephemeral services will be: - * * Removed from old_service_list, so the equivalent non-ephemeral code - * will not attempt to preserve them. - * * Added to the new rend_service_list (that previously only had the - * services listed in the configuration). - * * Added to surviving_services, which is the list of services that - * will NOT have their intro point closed. - */ - SMARTLIST_FOREACH(old_service_list, rend_service_t *, old, { - if (rend_service_is_ephemeral(old)) { - SMARTLIST_DEL_CURRENT(old_service_list, old); - smartlist_add(surviving_services, old); - smartlist_add(rend_service_list, old); - } - }); - - /* Copy introduction points to new services. */ - /* XXXX This is O(n^2), but it's only called on reconfigure, so it's - * probably ok? */ - SMARTLIST_FOREACH_BEGIN(rend_service_list, rend_service_t *, new) { - SMARTLIST_FOREACH_BEGIN(old_service_list, rend_service_t *, old) { - if (BUG(rend_service_is_ephemeral(new)) || - BUG(rend_service_is_ephemeral(old))) { - continue; - } - if (BUG(!new->directory) || BUG(!old->directory) || - strcmp(old->directory, new->directory)) { - continue; - } - smartlist_add_all(new->intro_nodes, old->intro_nodes); - smartlist_clear(old->intro_nodes); - smartlist_add_all(new->expiring_nodes, old->expiring_nodes); - smartlist_clear(old->expiring_nodes); - smartlist_add(surviving_services, old); - break; - } SMARTLIST_FOREACH_END(old); - } SMARTLIST_FOREACH_END(new); - - /* Close introduction circuits of services we don't serve anymore. */ - /* XXXX it would be nicer if we had a nicer abstraction to use here, - * so we could just iterate over the list of services to close, but - * once again, this isn't critical-path code. */ - SMARTLIST_FOREACH_BEGIN(circuit_get_global_list(), circuit_t *, circ) { - if (!circ->marked_for_close && - circ->state == CIRCUIT_STATE_OPEN && - (circ->purpose == CIRCUIT_PURPOSE_S_ESTABLISH_INTRO || - circ->purpose == CIRCUIT_PURPOSE_S_INTRO)) { - origin_circuit_t *oc = TO_ORIGIN_CIRCUIT(circ); - int keep_it = 0; - tor_assert(oc->rend_data); - SMARTLIST_FOREACH(surviving_services, rend_service_t *, ptr, { - if (rend_circuit_pk_digest_eq(oc, (uint8_t *) ptr->pk_digest)) { - keep_it = 1; - break; - } - }); - if (keep_it) - continue; - log_info(LD_REND, "Closing intro point %s for service %s.", - safe_str_client(extend_info_describe( - oc->build_state->chosen_exit)), - rend_data_get_address(oc->rend_data)); - circuit_mark_for_close(circ, END_CIRC_REASON_FINISHED); - /* XXXX Is there another reason we should use here? */ - } - } - SMARTLIST_FOREACH_END(circ); - smartlist_free(surviving_services); - SMARTLIST_FOREACH(old_service_list, rend_service_t *, ptr, - rend_service_free(ptr)); + prune_services_on_reload(old_service_list, rend_service_list); + /* Every remaining service in the old list have been removed from the + * configuration so clean them up safely. */ + SMARTLIST_FOREACH(old_service_list, rend_service_t *, s, + rend_service_free(s)); smartlist_free(old_service_list); } return 0; + free_and_return: + rend_service_free(service); + SMARTLIST_FOREACH(temp_service_list, rend_service_t *, ptr, + rend_service_free(ptr)); + smartlist_free(temp_service_list); + return rv; } /** Add the ephemeral service <b>pk</b>/<b>ports</b> if possible, using diff --git a/src/or/rendservice.h b/src/or/rendservice.h index 4e6b9a2536..3bfac0bece 100644 --- a/src/or/rendservice.h +++ b/src/or/rendservice.h @@ -132,6 +132,9 @@ STATIC int rend_service_poison_new_single_onion_dir( STATIC ssize_t encode_establish_intro_cell_legacy(char *cell_body_out, crypto_pk_t *intro_key, char *rend_circ_nonce); +STATIC void prune_services_on_reload(smartlist_t *old_service_list, + smartlist_t *new_service_list); + #endif int num_rend_services(void); diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 78e7d02ebe..e6ccdddbef 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -949,7 +949,7 @@ authority_certs_fetch_resource_impl(const char *resource, /* If we've just downloaded a consensus from a bridge, re-use that * bridge */ - if (options->UseBridges && node && !get_via_tor) { + if (options->UseBridges && node && node->ri && !get_via_tor) { /* clients always make OR connections to bridges */ tor_addr_port_t or_ap; /* we are willing to use a non-preferred address if we need to */ diff --git a/src/or/shared_random.c b/src/or/shared_random.c index 0eb93382ca..f798a51a9f 100644 --- a/src/or/shared_random.c +++ b/src/or/shared_random.c @@ -502,6 +502,20 @@ get_vote_line_from_commit(const sr_commit_t *commit, sr_phase_t phase) return vote_line; } +/* Convert a given srv object to a string for the control port. This doesn't + * fail and the srv object MUST be valid. */ +static char * +srv_to_control_string(const sr_srv_t *srv) +{ + char *srv_str; + char srv_hash_encoded[SR_SRV_VALUE_BASE64_LEN + 1]; + tor_assert(srv); + + sr_srv_encode(srv_hash_encoded, sizeof(srv_hash_encoded), srv); + tor_asprintf(&srv_str, "%s", srv_hash_encoded); + return srv_str; +} + /* Return a heap allocated string that contains the given <b>srv</b> string * representation formatted for a networkstatus document using the * <b>key</b> as the start of the line. This doesn't return NULL. */ @@ -1348,6 +1362,38 @@ sr_save_and_cleanup(void) sr_cleanup(); } +/* Return the current SRV string representation for the control port. Return a + * newly allocated string on success containing the value else "" if not found + * or if we don't have a valid consensus yet. */ +char * +sr_get_current_for_control(void) +{ + char *srv_str; + const networkstatus_t *c = networkstatus_get_latest_consensus(); + if (c && c->sr_info.current_srv) { + srv_str = srv_to_control_string(c->sr_info.current_srv); + } else { + srv_str = tor_strdup(""); + } + return srv_str; +} + +/* Return the previous SRV string representation for the control port. Return + * a newly allocated string on success containing the value else "" if not + * found or if we don't have a valid consensus yet. */ +char * +sr_get_previous_for_control(void) +{ + char *srv_str; + const networkstatus_t *c = networkstatus_get_latest_consensus(); + if (c && c->sr_info.previous_srv) { + srv_str = srv_to_control_string(c->sr_info.previous_srv); + } else { + srv_str = tor_strdup(""); + } + return srv_str; +} + #ifdef TOR_UNIT_TESTS /* Set the global value of number of SRV agreements so the test can play diff --git a/src/or/shared_random.h b/src/or/shared_random.h index 9885934cc7..dbb8effeaa 100644 --- a/src/or/shared_random.h +++ b/src/or/shared_random.h @@ -129,6 +129,10 @@ const char *sr_commit_get_rsa_fpr(const sr_commit_t *commit) void sr_compute_srv(void); sr_commit_t *sr_generate_our_commit(time_t timestamp, const authority_cert_t *my_rsa_cert); + +char *sr_get_current_for_control(void); +char *sr_get_previous_for_control(void); + #ifdef SHARED_RANDOM_PRIVATE /* Encode */ diff --git a/src/test/test_bt_cl.c b/src/test/test_bt_cl.c index 95b4f48f11..709d599f52 100644 --- a/src/test/test_bt_cl.c +++ b/src/test/test_bt_cl.c @@ -19,14 +19,12 @@ static int crashtype = 0; #ifdef __GNUC__ #define NOINLINE __attribute__((noinline)) -#define NORETURN __attribute__((noreturn)) #endif int crash(int x) NOINLINE; int oh_what(int x) NOINLINE; int a_tangled_web(int x) NOINLINE; int we_weave(int x) NOINLINE; -static void abort_handler(int s) NORETURN; #ifdef HAVE_CFLAG_WNULL_DEREFERENCE DISABLE_GCC_WARNING(null-dereference) @@ -76,13 +74,6 @@ we_weave(int x) return a_tangled_web(x) + a_tangled_web(x+1); } -static void -abort_handler(int s) -{ - (void)s; - exit(0); -} - int main(int argc, char **argv) { @@ -120,8 +111,6 @@ main(int argc, char **argv) configure_backtrace_handler(NULL); - signal(SIGABRT, abort_handler); - printf("%d\n", we_weave(2)); clean_up_backtrace_handler(); diff --git a/src/test/test_config.c b/src/test/test_config.c index a540bcc138..eeda34e089 100644 --- a/src/test/test_config.c +++ b/src/test/test_config.c @@ -46,6 +46,8 @@ #include "transports.h" #include "util.h" +#include "test_helpers.h" + static void test_config_addressmap(void *arg) { @@ -4701,8 +4703,10 @@ test_config_parse_port_config__ports__ports_given(void *data) // Test failure when asked to parse an invalid address followed by auto config_free_lines(config_port_invalid); config_port_invalid = NULL; config_port_invalid = mock_config_line("DNSPort", "invalidstuff!!:auto"); + MOCK(tor_addr_lookup, mock_tor_addr_lookup__fail_on_bad_addrs); ret = parse_port_config(NULL, config_port_invalid, NULL, "DNS", 0, "127.0.0.46", 0, 0); + UNMOCK(tor_addr_lookup); tt_int_op(ret, OP_EQ, -1); // Test success with parsing both an address and a real port diff --git a/src/test/test_controller.c b/src/test/test_controller.c index 4e65d76662..d9c0a1eaac 100644 --- a/src/test/test_controller.c +++ b/src/test/test_controller.c @@ -10,6 +10,7 @@ #include "rendservice.h" #include "routerlist.h" #include "test.h" +#include "test_helpers.h" static void test_add_onion_helper_keyarg(void *arg) @@ -186,8 +187,10 @@ test_rend_service_parse_port_config(void *arg) tor_free(err_msg); /* bogus IP address */ - cfg = rend_service_parse_port_config("100 1.2.3.4.5:9000", + MOCK(tor_addr_lookup, mock_tor_addr_lookup__fail_on_bad_addrs); + cfg = rend_service_parse_port_config("100 foo!!.example.com:9000", " ", &err_msg); + UNMOCK(tor_addr_lookup); tt_assert(!cfg); tt_str_op(err_msg, OP_EQ, "Unparseable address in hidden service port " "configuration."); diff --git a/src/test/test_helpers.c b/src/test/test_helpers.c index 132af39776..5b84366e6d 100644 --- a/src/test/test_helpers.c +++ b/src/test/test_helpers.c @@ -128,3 +128,18 @@ dummy_origin_circuit_new(int n_cells) return TO_CIRCUIT(circ); } +/** Mock-replacement. As tor_addr_lookup, but always fails on any + * address containing a !. This is necessary for running the unit tests + * on networks where DNS hijackers think it's helpful to give answers + * for things like 1.2.3.4.5 or "invalidstuff!!" + */ +int +mock_tor_addr_lookup__fail_on_bad_addrs(const char *name, + uint16_t family, tor_addr_t *out) +{ + if (name && strchr(name, '!')) { + return -1; + } + return tor_addr_lookup__real(name, family, out); +} + diff --git a/src/test/test_helpers.h b/src/test/test_helpers.h index ba93b100d5..c6d4d9c41f 100644 --- a/src/test/test_helpers.h +++ b/src/test/test_helpers.h @@ -17,6 +17,9 @@ void helper_setup_fake_routerlist(void); void connection_write_to_buf_mock(const char *string, size_t len, connection_t *conn, int zlib); +int mock_tor_addr_lookup__fail_on_bad_addrs(const char *name, + uint16_t family, tor_addr_t *out); + extern const char TEST_DESCRIPTORS[]; #endif diff --git a/src/test/test_hs.c b/src/test/test_hs.c index ac9788ceea..fbaabe91d8 100644 --- a/src/test/test_hs.c +++ b/src/test/test_hs.c @@ -787,6 +787,126 @@ test_single_onion_poisoning(void *arg) tor_free(mock_options->DataDirectory); } +static rend_service_t * +helper_create_rend_service(const char *path) +{ + rend_service_t *s = tor_malloc_zero(sizeof(rend_service_t)); + s->ports = smartlist_new(); + s->intro_nodes = smartlist_new(); + s->expiring_nodes = smartlist_new(); + if (path) { + s->directory = tor_strdup(path); + } + return s; +} + +static void +test_prune_services_on_reload(void *arg) +{ + smartlist_t *new = smartlist_new(), *old = smartlist_new(); + /* Non ephemeral service. */ + rend_service_t *s1 = helper_create_rend_service("SomePath"); + /* Create a non ephemeral service with the _same_ path as so we can test the + * transfer of introduction point between the same services on reload. */ + rend_service_t *s2 = helper_create_rend_service(s1->directory); + /* Ephemeral service (directory is NULL). */ + rend_service_t *e1 = helper_create_rend_service(NULL); + rend_service_t *e2 = helper_create_rend_service(NULL); + + (void) arg; + + { + /* Add both services to the old list. */ + smartlist_add(old, s1); + smartlist_add(old, e1); + /* Only put the non ephemeral in the new list. */ + smartlist_add(new, s1); + prune_services_on_reload(old, new); + /* We expect that the ephemeral one is in the new list but removed from + * the old one. */ + tt_int_op(smartlist_len(old), OP_EQ, 1); + tt_assert(smartlist_get(old, 0) == s1); + tt_int_op(smartlist_len(new), OP_EQ, 2); + tt_assert(smartlist_get(new, 0) == s1); + tt_assert(smartlist_get(new, 1) == e1); + /* Cleanup for next test. */ + smartlist_clear(new); + smartlist_clear(old); + } + + { + /* This test will make sure that only the ephemeral service is kept if the + * new list is empty. The old list should contain only the non ephemeral + * one. */ + smartlist_add(old, s1); + smartlist_add(old, e1); + prune_services_on_reload(old, new); + tt_int_op(smartlist_len(old), OP_EQ, 1); + tt_assert(smartlist_get(old, 0) == s1); + tt_int_op(smartlist_len(new), OP_EQ, 1); + tt_assert(smartlist_get(new, 0) == e1); + /* Cleanup for next test. */ + smartlist_clear(new); + smartlist_clear(old); + } + + { + /* This test makes sure that the new list stays the same even from the old + * list being completely different. */ + smartlist_add(new, s1); + smartlist_add(new, e1); + prune_services_on_reload(old, new); + tt_int_op(smartlist_len(old), OP_EQ, 0); + tt_int_op(smartlist_len(new), OP_EQ, 2); + tt_assert(smartlist_get(new, 0) == s1); + tt_assert(smartlist_get(new, 1) == e1); + /* Cleanup for next test. */ + smartlist_clear(new); + } + + { + rend_intro_point_t ip1; + /* This IP should be found in the s2 service after pruning. */ + smartlist_add(s1->intro_nodes, &ip1); + /* Setup our list. */ + smartlist_add(old, s1); + smartlist_add(new, s2); + prune_services_on_reload(old, new); + tt_int_op(smartlist_len(old), OP_EQ, 1); + /* Intro nodes have been moved to the s2 in theory so it must be empty. */ + tt_int_op(smartlist_len(s1->intro_nodes), OP_EQ, 0); + tt_int_op(smartlist_len(new), OP_EQ, 1); + rend_service_t *elem = smartlist_get(new, 0); + tt_assert(elem); + tt_assert(elem == s2); + tt_int_op(smartlist_len(elem->intro_nodes), OP_EQ, 1); + tt_assert(smartlist_get(elem->intro_nodes, 0) == &ip1); + smartlist_clear(s1->intro_nodes); + smartlist_clear(s2->intro_nodes); + /* Cleanup for next test. */ + smartlist_clear(new); + smartlist_clear(old); + } + + { + /* Test two ephemeral services. */ + smartlist_add(old, e1); + smartlist_add(old, e2); + prune_services_on_reload(old, new); + /* Check if they've all been transfered. */ + tt_int_op(smartlist_len(old), OP_EQ, 0); + tt_int_op(smartlist_len(new), OP_EQ, 2); + } + + done: + rend_service_free(s1); + rend_service_free(s2); + rend_service_free(e1); + rend_service_free(e2); + smartlist_free(new); + smartlist_free(old); +} + struct testcase_t hs_tests[] = { { "hs_rend_data", test_hs_rend_data, TT_FORK, NULL, NULL }, @@ -807,6 +927,9 @@ struct testcase_t hs_tests[] = { TT_FORK, &passthrough_setup, (void*)(CREATE_HS_DIR2) }, { "single_onion_poisoning_create_dir_both", test_single_onion_poisoning, TT_FORK, &passthrough_setup, (void*)(CREATE_HS_DIR1 | CREATE_HS_DIR2) }, + { "prune_services_on_reload", test_prune_services_on_reload, TT_FORK, + NULL, NULL }, + END_OF_TESTCASES }; diff --git a/src/test/test_hs_cache.c b/src/test/test_hs_cache.c index e7deec2e22..64391a7c29 100644 --- a/src/test/test_hs_cache.c +++ b/src/test/test_hs_cache.c @@ -66,27 +66,27 @@ helper_build_intro_point(const ed25519_keypair_t *blinded_kp, /* Return a valid hs_descriptor_t object. */ static hs_descriptor_t * helper_build_hs_desc(uint64_t revision_counter, uint32_t lifetime, - ed25519_keypair_t *blinded_kp) + ed25519_public_key_t *signing_pubkey) { int ret; + ed25519_keypair_t blinded_kp; hs_descriptor_t *descp = NULL, *desc = tor_malloc_zero(sizeof(*desc)); desc->plaintext_data.version = HS_DESC_SUPPORTED_FORMAT_VERSION_MAX; - ret = ed25519_keypair_generate(&desc->plaintext_data.signing_kp, 0); + + /* Copy only the public key into the descriptor. */ + memcpy(&desc->plaintext_data.signing_pubkey, signing_pubkey, + sizeof(ed25519_public_key_t)); + + ret = ed25519_keypair_generate(&blinded_kp, 0); tt_int_op(ret, ==, 0); - if (blinded_kp) { - memcpy(&desc->plaintext_data.blinded_kp, blinded_kp, - sizeof(ed25519_keypair_t)); - } else { - ret = ed25519_keypair_generate(&desc->plaintext_data.blinded_kp, 0); - tt_int_op(ret, ==, 0); - } + /* Copy only the public key into the descriptor. */ + memcpy(&desc->plaintext_data.blinded_pubkey, &blinded_kp.pubkey, + sizeof(ed25519_public_key_t)); desc->plaintext_data.signing_key_cert = - tor_cert_create(&desc->plaintext_data.blinded_kp, - CERT_TYPE_SIGNING_HS_DESC, - &desc->plaintext_data.signing_kp.pubkey, time(NULL), - 3600, CERT_FLAG_INCLUDE_SIGNING_KEY); + tor_cert_create(&blinded_kp, CERT_TYPE_SIGNING_HS_DESC, signing_pubkey, + time(NULL), 3600, CERT_FLAG_INCLUDE_SIGNING_KEY); tt_assert(desc->plaintext_data.signing_key_cert); desc->plaintext_data.revision_counter = revision_counter; desc->plaintext_data.lifetime_sec = lifetime; @@ -98,8 +98,7 @@ helper_build_hs_desc(uint64_t revision_counter, uint32_t lifetime, desc->encrypted_data.intro_points = smartlist_new(); /* Add an intro point. */ smartlist_add(desc->encrypted_data.intro_points, - helper_build_intro_point(&desc->plaintext_data.blinded_kp, - "1.2.3.4")); + helper_build_intro_point(&blinded_kp, "1.2.3.4")); descp = desc; done: @@ -109,12 +108,11 @@ helper_build_hs_desc(uint64_t revision_counter, uint32_t lifetime, /* Static variable used to encoded the HSDir query. */ static char query_b64[256]; -/* Build an HSDir query using a ed25519 keypair. */ +/* Build an HSDir query using a ed25519 public key. */ static const char * helper_get_hsdir_query(const hs_descriptor_t *desc) { - ed25519_public_to_base64(query_b64, - &desc->plaintext_data.blinded_kp.pubkey); + ed25519_public_to_base64(query_b64, &desc->plaintext_data.blinded_pubkey); return query_b64; } @@ -132,17 +130,20 @@ test_directory(void *arg) { int ret; size_t oom_size; - char *desc1_str=NULL; + char *desc1_str = NULL; const char *desc_out; - hs_descriptor_t *desc1; + ed25519_keypair_t signing_kp1; + hs_descriptor_t *desc1 = NULL; (void) arg; init_test(); /* Generate a valid descriptor with normal values. */ - desc1 = helper_build_hs_desc(42, 3 * 60 * 60, NULL); + ret = ed25519_keypair_generate(&signing_kp1, 0); + tt_int_op(ret, ==, 0); + desc1 = helper_build_hs_desc(42, 3 * 60 * 60, &signing_kp1.pubkey); tt_assert(desc1); - ret = hs_desc_encode_descriptor(desc1, &desc1_str); + ret = hs_desc_encode_descriptor(desc1, &signing_kp1, &desc1_str); tt_int_op(ret, OP_EQ, 0); /* Very first basic test, should be able to be stored, survive a @@ -170,10 +171,14 @@ test_directory(void *arg) /* Store two descriptors and remove the expiring one only. */ { - hs_descriptor_t *desc_zero_lifetime = helper_build_hs_desc(1, 0, NULL); + ed25519_keypair_t signing_kp_zero; + ret = ed25519_keypair_generate(&signing_kp_zero, 0); + tt_int_op(ret, ==, 0); + hs_descriptor_t *desc_zero_lifetime; + desc_zero_lifetime = helper_build_hs_desc(1, 0, &signing_kp_zero.pubkey); tt_assert(desc_zero_lifetime); char *desc_zero_lifetime_str; - ret = hs_desc_encode_descriptor(desc_zero_lifetime, + ret = hs_desc_encode_descriptor(desc_zero_lifetime, &signing_kp_zero, &desc_zero_lifetime_str); tt_int_op(ret, OP_EQ, 0); @@ -225,7 +230,7 @@ test_directory(void *arg) tt_int_op(ret, OP_EQ, 1); /* Bump revision counter. */ desc1->plaintext_data.revision_counter++; - ret = hs_desc_encode_descriptor(desc1, &new_desc_str); + ret = hs_desc_encode_descriptor(desc1, &signing_kp1, &new_desc_str); tt_int_op(ret, OP_EQ, 0); ret = hs_cache_store_as_dir(new_desc_str); tt_int_op(ret, OP_EQ, 0); @@ -248,15 +253,18 @@ test_clean_as_dir(void *arg) char *desc1_str = NULL; time_t now = time(NULL); hs_descriptor_t *desc1 = NULL; + ed25519_keypair_t signing_kp1; (void) arg; init_test(); /* Generate a valid descriptor with values. */ - desc1 = helper_build_hs_desc(42, 3 * 60 * 60, NULL); + ret = ed25519_keypair_generate(&signing_kp1, 0); + tt_int_op(ret, ==, 0); + desc1 = helper_build_hs_desc(42, 3 * 60 * 60, &signing_kp1.pubkey); tt_assert(desc1); - ret = hs_desc_encode_descriptor(desc1, &desc1_str); + ret = hs_desc_encode_descriptor(desc1, &signing_kp1, &desc1_str); tt_int_op(ret, OP_EQ, 0); ret = hs_cache_store_as_dir(desc1_str); tt_int_op(ret, OP_EQ, 0); @@ -343,7 +351,7 @@ static void test_upload_and_download_hs_desc(void *arg) { int retval; - hs_descriptor_t *published_desc; + hs_descriptor_t *published_desc = NULL; char *published_desc_str = NULL; char *received_desc_str = NULL; @@ -355,9 +363,13 @@ test_upload_and_download_hs_desc(void *arg) /* Generate a valid descriptor with normal values. */ { - published_desc = helper_build_hs_desc(42, 3 * 60 * 60, NULL); + ed25519_keypair_t signing_kp; + retval = ed25519_keypair_generate(&signing_kp, 0); + tt_int_op(retval, ==, 0); + published_desc = helper_build_hs_desc(42, 3 * 60 * 60, &signing_kp.pubkey); tt_assert(published_desc); - retval = hs_desc_encode_descriptor(published_desc, &published_desc_str); + retval = hs_desc_encode_descriptor(published_desc, &signing_kp, + &published_desc_str); tt_int_op(retval, OP_EQ, 0); } @@ -370,7 +382,7 @@ test_upload_and_download_hs_desc(void *arg) /* Simulate a fetch of the previously published descriptor */ { const ed25519_public_key_t *blinded_key; - blinded_key = &published_desc->plaintext_data.blinded_kp.pubkey; + blinded_key = &published_desc->plaintext_data.blinded_pubkey; received_desc_str = helper_fetch_desc_from_hsdir(blinded_key); } @@ -391,7 +403,9 @@ test_hsdir_revision_counter_check(void *arg) { int retval; - hs_descriptor_t *published_desc; + ed25519_keypair_t signing_kp; + + hs_descriptor_t *published_desc = NULL; char *published_desc_str = NULL; char *received_desc_str = NULL; @@ -404,9 +418,13 @@ test_hsdir_revision_counter_check(void *arg) /* Generate a valid descriptor with normal values. */ { - published_desc = helper_build_hs_desc(1312, 3 * 60 * 60, NULL); + retval = ed25519_keypair_generate(&signing_kp, 0); + tt_int_op(retval, ==, 0); + published_desc = helper_build_hs_desc(1312, 3 * 60 * 60, + &signing_kp.pubkey); tt_assert(published_desc); - retval = hs_desc_encode_descriptor(published_desc, &published_desc_str); + retval = hs_desc_encode_descriptor(published_desc, &signing_kp, + &published_desc_str); tt_int_op(retval, OP_EQ, 0); } @@ -426,7 +444,7 @@ test_hsdir_revision_counter_check(void *arg) { const ed25519_public_key_t *blinded_key; - blinded_key = &published_desc->plaintext_data.blinded_kp.pubkey; + blinded_key = &published_desc->plaintext_data.blinded_pubkey; received_desc_str = helper_fetch_desc_from_hsdir(blinded_key); retval = hs_desc_decode_descriptor(received_desc_str,NULL, &received_desc); @@ -445,7 +463,8 @@ test_hsdir_revision_counter_check(void *arg) { published_desc->plaintext_data.revision_counter = 1313; tor_free(published_desc_str); - retval = hs_desc_encode_descriptor(published_desc, &published_desc_str); + retval = hs_desc_encode_descriptor(published_desc, &signing_kp, + &published_desc_str); tt_int_op(retval, OP_EQ, 0); retval = handle_post_hs_descriptor("/tor/hs/3/publish",published_desc_str); @@ -457,7 +476,7 @@ test_hsdir_revision_counter_check(void *arg) { const ed25519_public_key_t *blinded_key; - blinded_key = &published_desc->plaintext_data.blinded_kp.pubkey; + blinded_key = &published_desc->plaintext_data.blinded_pubkey; received_desc_str = helper_fetch_desc_from_hsdir(blinded_key); retval = hs_desc_decode_descriptor(received_desc_str,NULL, &received_desc); diff --git a/src/test/test_hs_descriptor.c b/src/test/test_hs_descriptor.c index 3f588dfcaf..02a71aa473 100644 --- a/src/test/test_hs_descriptor.c +++ b/src/test/test_hs_descriptor.c @@ -77,24 +77,28 @@ helper_build_intro_point(const ed25519_keypair_t *blinded_kp, time_t now, /* Return a valid hs_descriptor_t object. If no_ip is set, no introduction * points are added. */ static hs_descriptor_t * -helper_build_hs_desc(unsigned int no_ip) +helper_build_hs_desc(unsigned int no_ip, ed25519_public_key_t *signing_pubkey) { int ret; time_t now = time(NULL); + ed25519_keypair_t blinded_kp; hs_descriptor_t *descp = NULL, *desc = tor_malloc_zero(sizeof(*desc)); desc->plaintext_data.version = HS_DESC_SUPPORTED_FORMAT_VERSION_MAX; - ret = ed25519_keypair_generate(&desc->plaintext_data.signing_kp, 0); - tt_int_op(ret, ==, 0); - ret = ed25519_keypair_generate(&desc->plaintext_data.blinded_kp, 0); + + /* Copy only the public key into the descriptor. */ + memcpy(&desc->plaintext_data.signing_pubkey, signing_pubkey, + sizeof(ed25519_public_key_t)); + + ret = ed25519_keypair_generate(&blinded_kp, 0); tt_int_op(ret, ==, 0); + /* Copy only the public key into the descriptor. */ + memcpy(&desc->plaintext_data.blinded_pubkey, &blinded_kp.pubkey, + sizeof(ed25519_public_key_t)); desc->plaintext_data.signing_key_cert = - tor_cert_create(&desc->plaintext_data.blinded_kp, - CERT_TYPE_SIGNING_HS_DESC, - &desc->plaintext_data.signing_kp.pubkey, now, - 3600, - CERT_FLAG_INCLUDE_SIGNING_KEY); + tor_cert_create(&blinded_kp, CERT_TYPE_SIGNING_HS_DESC, signing_pubkey, + now, 3600, CERT_FLAG_INCLUDE_SIGNING_KEY); tt_assert(desc->plaintext_data.signing_key_cert); desc->plaintext_data.revision_counter = 42; desc->plaintext_data.lifetime_sec = 3 * 60 * 60; @@ -108,17 +112,13 @@ helper_build_hs_desc(unsigned int no_ip) if (!no_ip) { /* Add four intro points. */ smartlist_add(desc->encrypted_data.intro_points, - helper_build_intro_point(&desc->plaintext_data.blinded_kp, now, - "1.2.3.4", 0)); + helper_build_intro_point(&blinded_kp, now, "1.2.3.4", 0)); smartlist_add(desc->encrypted_data.intro_points, - helper_build_intro_point(&desc->plaintext_data.blinded_kp, now, - "[2600::1]", 0)); + helper_build_intro_point(&blinded_kp, now, "[2600::1]", 0)); smartlist_add(desc->encrypted_data.intro_points, - helper_build_intro_point(&desc->plaintext_data.blinded_kp, now, - "3.2.1.4", 1)); + helper_build_intro_point(&blinded_kp, now, "3.2.1.4", 1)); smartlist_add(desc->encrypted_data.intro_points, - helper_build_intro_point(&desc->plaintext_data.blinded_kp, now, - "", 1)); + helper_build_intro_point(&blinded_kp, now, "", 1)); } descp = desc; @@ -138,11 +138,11 @@ helper_compare_hs_desc(const hs_descriptor_t *desc1, desc2->plaintext_data.lifetime_sec); tt_assert(tor_cert_eq(desc1->plaintext_data.signing_key_cert, desc2->plaintext_data.signing_key_cert)); - tt_mem_op(desc1->plaintext_data.signing_kp.pubkey.pubkey, OP_EQ, - desc2->plaintext_data.signing_kp.pubkey.pubkey, + tt_mem_op(desc1->plaintext_data.signing_pubkey.pubkey, OP_EQ, + desc2->plaintext_data.signing_pubkey.pubkey, ED25519_PUBKEY_LEN); - tt_mem_op(desc1->plaintext_data.blinded_kp.pubkey.pubkey, OP_EQ, - desc2->plaintext_data.blinded_kp.pubkey.pubkey, + tt_mem_op(desc1->plaintext_data.blinded_pubkey.pubkey, OP_EQ, + desc2->plaintext_data.blinded_pubkey.pubkey, ED25519_PUBKEY_LEN); tt_u64_op(desc1->plaintext_data.revision_counter, ==, desc2->plaintext_data.revision_counter); @@ -481,11 +481,15 @@ test_encode_descriptor(void *arg) { int ret; char *encoded = NULL; - hs_descriptor_t *desc = helper_build_hs_desc(0); + ed25519_keypair_t signing_kp; + hs_descriptor_t *desc = NULL; (void) arg; - ret = hs_desc_encode_descriptor(desc, &encoded); + ret = ed25519_keypair_generate(&signing_kp, 0); + tt_int_op(ret, ==, 0); + desc = helper_build_hs_desc(0, &signing_kp.pubkey); + ret = hs_desc_encode_descriptor(desc, &signing_kp, &encoded); tt_int_op(ret, ==, 0); tt_assert(encoded); @@ -499,17 +503,22 @@ test_decode_descriptor(void *arg) { int ret; char *encoded = NULL; - hs_descriptor_t *desc = helper_build_hs_desc(0); + ed25519_keypair_t signing_kp; + hs_descriptor_t *desc = NULL; hs_descriptor_t *decoded = NULL; hs_descriptor_t *desc_no_ip = NULL; (void) arg; + ret = ed25519_keypair_generate(&signing_kp, 0); + tt_int_op(ret, ==, 0); + desc = helper_build_hs_desc(0, &signing_kp.pubkey); + /* Give some bad stuff to the decoding function. */ ret = hs_desc_decode_descriptor("hladfjlkjadf", NULL, &decoded); tt_int_op(ret, OP_EQ, -1); - ret = hs_desc_encode_descriptor(desc, &encoded); + ret = hs_desc_encode_descriptor(desc, &signing_kp, &encoded); tt_int_op(ret, ==, 0); tt_assert(encoded); @@ -521,10 +530,13 @@ test_decode_descriptor(void *arg) /* Decode a descriptor with _no_ introduction points. */ { - desc_no_ip = helper_build_hs_desc(1); + ed25519_keypair_t signing_kp_no_ip; + ret = ed25519_keypair_generate(&signing_kp_no_ip, 0); + tt_int_op(ret, ==, 0); + desc_no_ip = helper_build_hs_desc(1, &signing_kp_no_ip.pubkey); tt_assert(desc_no_ip); tor_free(encoded); - ret = hs_desc_encode_descriptor(desc_no_ip, &encoded); + ret = hs_desc_encode_descriptor(desc_no_ip, &signing_kp_no_ip, &encoded); tt_int_op(ret, ==, 0); tt_assert(encoded); hs_descriptor_free(decoded); @@ -599,6 +611,7 @@ test_decode_intro_point(void *arg) char *encoded_ip = NULL; size_t len_out; hs_desc_intro_point_t *ip = NULL; + ed25519_keypair_t signing_kp; hs_descriptor_t *desc = NULL; (void) arg; @@ -647,7 +660,9 @@ test_decode_intro_point(void *arg) /* Start by testing the "decode all intro points" function. */ { char *line; - desc = helper_build_hs_desc(0); + ret = ed25519_keypair_generate(&signing_kp, 0); + tt_int_op(ret, ==, 0); + desc = helper_build_hs_desc(0, &signing_kp.pubkey); tt_assert(desc); /* Only try to decode an incomplete introduction point section. */ tor_asprintf(&line, "\n%s", intro_point); @@ -674,7 +689,10 @@ test_decode_intro_point(void *arg) /* Try to decode a junk string. */ { hs_descriptor_free(desc); - desc = helper_build_hs_desc(0); + desc = NULL; + ret = ed25519_keypair_generate(&signing_kp, 0); + tt_int_op(ret, ==, 0); + desc = helper_build_hs_desc(0, &signing_kp.pubkey); const char *junk = "this is not a descriptor"; ip = decode_introduction_point(desc, junk); tt_assert(!ip); @@ -977,10 +995,10 @@ test_desc_signature(void *arg) tt_int_op(ret, ==, 0); /* Build the descriptor that should be valid. */ tor_asprintf(&desc, "%ssignature %s\n", data, sig_b64); - ret = desc_sig_is_valid(sig_b64, &kp, desc, strlen(desc)); + ret = desc_sig_is_valid(sig_b64, &kp.pubkey, desc, strlen(desc)); tt_int_op(ret, ==, 1); /* Junk signature. */ - ret = desc_sig_is_valid("JUNK", &kp, desc, strlen(desc)); + ret = desc_sig_is_valid("JUNK", &kp.pubkey, desc, strlen(desc)); tt_int_op(ret, ==, 0); done: diff --git a/src/test/test_hs_intropoint.c b/src/test/test_hs_intropoint.c index 608988ba9a..dbd884cf3b 100644 --- a/src/test/test_hs_intropoint.c +++ b/src/test/test_hs_intropoint.c @@ -12,12 +12,14 @@ #define CIRCUITLIST_PRIVATE #include "test.h" +#include "log_test_helpers.h" #include "crypto.h" #include "or.h" #include "ht.h" #include "hs/cell_establish_intro.h" +#include "hs_common.h" #include "hs_service.h" #include "hs_circuitmap.h" #include "hs_intropoint.h" @@ -143,6 +145,163 @@ test_establish_intro_wrong_keytype2(void *arg) circuit_free(TO_CIRCUIT(intro_circ)); } +/* Send a legit ESTABLISH_INTRO cell but with a wrong MAC. Should fail. */ +static void +test_establish_intro_wrong_mac(void *arg) +{ + int retval; + hs_cell_establish_intro_t *establish_intro_cell = NULL; + or_circuit_t *intro_circ = or_circuit_new(0,NULL);; + uint8_t cell_body[RELAY_PAYLOAD_SIZE]; + ssize_t cell_len = 0; + uint8_t circuit_key_material[DIGEST_LEN] = {0}; + + (void)arg; + + /* Get the auth key of the intro point */ + crypto_rand((char *) circuit_key_material, sizeof(circuit_key_material)); + helper_prepare_circ_for_intro(intro_circ, circuit_key_material); + + /* Create outgoing ESTABLISH_INTRO cell and extract its payload so that we + attempt to parse it. */ + establish_intro_cell = generate_establish_intro_cell(circuit_key_material, + sizeof(circuit_key_material)); + tt_assert(establish_intro_cell); + /* Mangle one byte of the MAC. */ + uint8_t *handshake_ptr = + hs_cell_establish_intro_getarray_handshake_mac(establish_intro_cell); + handshake_ptr[TRUNNEL_SHA3_256_LEN - 1]++; + /* We need to resign the payload with that change. */ + { + ed25519_signature_t sig; + ed25519_keypair_t key_struct; + /* New keypair for the signature since we don't have access to the private + * key material generated earlier when creating the cell. */ + retval = ed25519_keypair_generate(&key_struct, 0); + tt_int_op(retval, OP_EQ, 0); + uint8_t *auth_key_ptr = + hs_cell_establish_intro_getarray_auth_key(establish_intro_cell); + memcpy(auth_key_ptr, key_struct.pubkey.pubkey, ED25519_PUBKEY_LEN); + /* Encode payload so we can sign it. */ + cell_len = get_establish_intro_payload(cell_body, sizeof(cell_body), + establish_intro_cell); + tt_int_op(cell_len, >, 0); + + retval = ed25519_sign_prefixed(&sig, cell_body, + cell_len - + (ED25519_SIG_LEN + + sizeof(establish_intro_cell->sig_len)), + ESTABLISH_INTRO_SIG_PREFIX, &key_struct); + tt_int_op(retval, OP_EQ, 0); + /* And write the signature to the cell */ + uint8_t *sig_ptr = + hs_cell_establish_intro_getarray_sig(establish_intro_cell); + memcpy(sig_ptr, sig.sig, establish_intro_cell->sig_len); + /* Re-encode with the new signature. */ + cell_len = get_establish_intro_payload(cell_body, sizeof(cell_body), + establish_intro_cell); + } + + /* Receive the cell. Should fail because our MAC is wrong. */ + setup_full_capture_of_logs(LOG_INFO); + retval = hs_intro_received_establish_intro(intro_circ, cell_body, cell_len); + expect_log_msg_containing("ESTABLISH_INTRO handshake_auth not as expected"); + teardown_capture_of_logs(); + tt_int_op(retval, ==, -1); + + done: + hs_cell_establish_intro_free(establish_intro_cell); + circuit_free(TO_CIRCUIT(intro_circ)); +} + +/* Send a legit ESTABLISH_INTRO cell but with a wrong auth key length. Should + * fail. */ +static void +test_establish_intro_wrong_auth_key_len(void *arg) +{ + int retval; + hs_cell_establish_intro_t *establish_intro_cell = NULL; + or_circuit_t *intro_circ = or_circuit_new(0,NULL);; + uint8_t cell_body[RELAY_PAYLOAD_SIZE]; + ssize_t cell_len = 0; + size_t bad_auth_key_len = ED25519_PUBKEY_LEN - 1; + uint8_t circuit_key_material[DIGEST_LEN] = {0}; + + (void)arg; + + /* Get the auth key of the intro point */ + crypto_rand((char *) circuit_key_material, sizeof(circuit_key_material)); + helper_prepare_circ_for_intro(intro_circ, circuit_key_material); + + /* Create outgoing ESTABLISH_INTRO cell and extract its payload so that we + attempt to parse it. */ + establish_intro_cell = generate_establish_intro_cell(circuit_key_material, + sizeof(circuit_key_material)); + tt_assert(establish_intro_cell); + /* Mangle the auth key length. */ + hs_cell_establish_intro_set_auth_key_len(establish_intro_cell, + bad_auth_key_len); + hs_cell_establish_intro_setlen_auth_key(establish_intro_cell, + bad_auth_key_len); + cell_len = get_establish_intro_payload(cell_body, sizeof(cell_body), + establish_intro_cell); + tt_int_op(cell_len, >, 0); + + /* Receive the cell. Should fail. */ + setup_full_capture_of_logs(LOG_INFO); + retval = hs_intro_received_establish_intro(intro_circ, cell_body, cell_len); + expect_log_msg_containing("ESTABLISH_INTRO auth key length is invalid"); + teardown_capture_of_logs(); + tt_int_op(retval, ==, -1); + + done: + hs_cell_establish_intro_free(establish_intro_cell); + circuit_free(TO_CIRCUIT(intro_circ)); +} + +/* Send a legit ESTABLISH_INTRO cell but with a wrong sig length. Should + * fail. */ +static void +test_establish_intro_wrong_sig_len(void *arg) +{ + int retval; + hs_cell_establish_intro_t *establish_intro_cell = NULL; + or_circuit_t *intro_circ = or_circuit_new(0,NULL);; + uint8_t cell_body[RELAY_PAYLOAD_SIZE]; + ssize_t cell_len = 0; + size_t bad_sig_len = ED25519_SIG_LEN - 1; + uint8_t circuit_key_material[DIGEST_LEN] = {0}; + + (void)arg; + + /* Get the auth key of the intro point */ + crypto_rand((char *) circuit_key_material, sizeof(circuit_key_material)); + helper_prepare_circ_for_intro(intro_circ, circuit_key_material); + + /* Create outgoing ESTABLISH_INTRO cell and extract its payload so that we + attempt to parse it. */ + establish_intro_cell = generate_establish_intro_cell(circuit_key_material, + sizeof(circuit_key_material)); + tt_assert(establish_intro_cell); + /* Mangle the signature length. */ + hs_cell_establish_intro_set_sig_len(establish_intro_cell, bad_sig_len); + hs_cell_establish_intro_setlen_sig(establish_intro_cell, bad_sig_len); + cell_len = get_establish_intro_payload(cell_body, sizeof(cell_body), + establish_intro_cell); + tt_int_op(cell_len, >, 0); + + /* Receive the cell. Should fail. */ + setup_full_capture_of_logs(LOG_INFO); + retval = hs_intro_received_establish_intro(intro_circ, cell_body, cell_len); + expect_log_msg_containing("ESTABLISH_INTRO sig len is invalid"); + teardown_capture_of_logs(); + tt_int_op(retval, ==, -1); + + done: + hs_cell_establish_intro_free(establish_intro_cell); + circuit_free(TO_CIRCUIT(intro_circ)); +} + /* Send a legit ESTABLISH_INTRO cell but slightly change the signature. Should * fail. */ static void @@ -356,6 +515,15 @@ struct testcase_t hs_intropoint_tests[] = { { "receive_establish_intro_wrong_sig", test_establish_intro_wrong_sig, TT_FORK, NULL, NULL }, + { "receive_establish_intro_wrong_sig_len", + test_establish_intro_wrong_sig_len, TT_FORK, NULL, NULL }, + + { "receive_establish_intro_wrong_auth_key_len", + test_establish_intro_wrong_auth_key_len, TT_FORK, NULL, NULL }, + + { "receive_establish_intro_wrong_mac", + test_establish_intro_wrong_mac, TT_FORK, NULL, NULL }, + END_OF_TESTCASES }; diff --git a/src/test/test_options.c b/src/test/test_options.c index e85e11805b..ce5e1ed62c 100644 --- a/src/test/test_options.c +++ b/src/test/test_options.c @@ -18,6 +18,7 @@ #include "sandbox.h" #include "memarea.h" #include "policies.h" +#include "test_helpers.h" #define NS_MODULE test_options @@ -650,16 +651,18 @@ test_options_validate__authdir(void *ignored) setup_capture_of_logs(LOG_INFO); options_test_data_t *tdata = get_options_test_data( "AuthoritativeDirectory 1\n" - "Address this.should.not_exist.example.org"); + "Address this.should.not!exist!.example.org"); sandbox_disable_getaddrinfo_cache(); + MOCK(tor_addr_lookup, mock_tor_addr_lookup__fail_on_bad_addrs); ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); + UNMOCK(tor_addr_lookup); tt_int_op(ret, OP_EQ, -1); tt_str_op(msg, OP_EQ, "Failed to resolve/guess local address. See logs for" " details."); expect_log_msg("Could not resolve local Address " - "'this.should.not_exist.example.org'. Failing.\n"); + "'this.should.not!exist!.example.org'. Failing.\n"); tor_free(msg); free_options_test_data(tdata); @@ -1794,14 +1797,6 @@ test_options_validate__reachable_addresses(void *ignored) /* Test IPv4-only clients setting IPv6 preferences */ -#define WARN_PLEASE_USE_IPV6_OR_LOG_MSG \ - "ClientPreferIPv6ORPort 1 is ignored unless tor is using IPv6. " \ - "Please set ClientUseIPv6 1, ClientUseIPv4 0, or configure bridges.\n" - -#define WARN_PLEASE_USE_IPV6_DIR_LOG_MSG \ - "ClientPreferIPv6DirPort 1 is ignored unless tor is using IPv6. " \ - "Please set ClientUseIPv6 1, ClientUseIPv4 0, or configure bridges.\n" - free_options_test_data(tdata); tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES "ClientUseIPv4 1\n" @@ -1811,7 +1806,6 @@ test_options_validate__reachable_addresses(void *ignored) ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); tt_int_op(ret, OP_EQ, 0); - expect_log_msg(WARN_PLEASE_USE_IPV6_OR_LOG_MSG); tor_free(msg); free_options_test_data(tdata); @@ -1823,7 +1817,6 @@ test_options_validate__reachable_addresses(void *ignored) ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg); tt_int_op(ret, OP_EQ, 0); - expect_log_msg(WARN_PLEASE_USE_IPV6_DIR_LOG_MSG); tor_free(msg); /* Now test an IPv4/IPv6 client setting IPv6 preferences */ @@ -3037,6 +3030,7 @@ test_options_validate__proxy(void *ignored) options_test_data_t *tdata = NULL; sandbox_disable_getaddrinfo_cache(); setup_capture_of_logs(LOG_WARN); + MOCK(tor_addr_lookup, mock_tor_addr_lookup__fail_on_bad_addrs); free_options_test_data(tdata); tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES @@ -3057,6 +3051,7 @@ test_options_validate__proxy(void *ignored) tor_free(msg); free_options_test_data(tdata); + tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES "HttpProxy not_so_valid!\n" ); @@ -3357,6 +3352,7 @@ test_options_validate__proxy(void *ignored) policies_free_all(); // sandbox_free_getaddrinfo_cache(); tor_free(msg); + UNMOCK(tor_addr_lookup); } static void diff --git a/src/test/test_util.c b/src/test/test_util.c index 86e3fea91a..fafb84f4fe 100644 --- a/src/test/test_util.c +++ b/src/test/test_util.c @@ -5479,26 +5479,26 @@ test_util_calloc_check(void *arg) { (void) arg; /* Easy cases that are good. */ - tt_assert(size_mul_check__(0,0)); - tt_assert(size_mul_check__(0,100)); - tt_assert(size_mul_check__(100,0)); - tt_assert(size_mul_check__(100,100)); + tt_assert(size_mul_check(0,0)); + tt_assert(size_mul_check(0,100)); + tt_assert(size_mul_check(100,0)); + tt_assert(size_mul_check(100,100)); /* Harder cases that are still good. */ - tt_assert(size_mul_check__(SIZE_MAX, 1)); - tt_assert(size_mul_check__(1, SIZE_MAX)); - tt_assert(size_mul_check__(SIZE_MAX / 10, 9)); - tt_assert(size_mul_check__(11, SIZE_MAX / 12)); + tt_assert(size_mul_check(SIZE_MAX, 1)); + tt_assert(size_mul_check(1, SIZE_MAX)); + tt_assert(size_mul_check(SIZE_MAX / 10, 9)); + tt_assert(size_mul_check(11, SIZE_MAX / 12)); const size_t sqrt_size_max_p1 = ((size_t)1) << (sizeof(size_t) * 4); - tt_assert(size_mul_check__(sqrt_size_max_p1, sqrt_size_max_p1 - 1)); + tt_assert(size_mul_check(sqrt_size_max_p1, sqrt_size_max_p1 - 1)); /* Cases that overflow */ - tt_assert(! size_mul_check__(SIZE_MAX, 2)); - tt_assert(! size_mul_check__(2, SIZE_MAX)); - tt_assert(! size_mul_check__(SIZE_MAX / 10, 11)); - tt_assert(! size_mul_check__(11, SIZE_MAX / 10)); - tt_assert(! size_mul_check__(SIZE_MAX / 8, 9)); - tt_assert(! size_mul_check__(sqrt_size_max_p1, sqrt_size_max_p1)); + tt_assert(! size_mul_check(SIZE_MAX, 2)); + tt_assert(! size_mul_check(2, SIZE_MAX)); + tt_assert(! size_mul_check(SIZE_MAX / 10, 11)); + tt_assert(! size_mul_check(11, SIZE_MAX / 10)); + tt_assert(! size_mul_check(SIZE_MAX / 8, 9)); + tt_assert(! size_mul_check(sqrt_size_max_p1, sqrt_size_max_p1)); done: ; diff --git a/src/test/test_util_format.c b/src/test/test_util_format.c index 1d58ba2bf8..21a6923c6d 100644 --- a/src/test/test_util_format.c +++ b/src/test/test_util_format.c @@ -202,6 +202,9 @@ test_util_format_base64_decode(void *ignored) res = base64_decode(dst, SIZE_T_CEILING+1, src, 10); tt_int_op(res, OP_EQ, -1); + res = base64_decode(dst, 1, real_src, SIZE_MAX/3+1); + tt_int_op(res, OP_EQ, -1); + const char *s = "T3BhIG11bmRv"; res = base64_decode(dst, 9, s, strlen(s)); tt_int_op(res, OP_EQ, 9); diff --git a/src/trunnel/hs/cell_establish_intro.c b/src/trunnel/hs/cell_establish_intro.c index 02094fe2bf..633bd7c214 100644 --- a/src/trunnel/hs/cell_establish_intro.c +++ b/src/trunnel/hs/cell_establish_intro.c @@ -231,6 +231,11 @@ hs_cell_establish_intro_getconstarray_handshake_mac(const hs_cell_establish_intr { return (const uint8_t *)hs_cell_establish_intro_getarray_handshake_mac((hs_cell_establish_intro_t*)inp); } +const uint8_t * +hs_cell_establish_intro_get_end_sig_fields(const hs_cell_establish_intro_t *inp) +{ + return inp->end_sig_fields; +} uint16_t hs_cell_establish_intro_get_sig_len(const hs_cell_establish_intro_t *inp) { @@ -242,11 +247,6 @@ hs_cell_establish_intro_set_sig_len(hs_cell_establish_intro_t *inp, uint16_t val inp->sig_len = val; return 0; } -const uint8_t * -hs_cell_establish_intro_get_end_sig_fields(const hs_cell_establish_intro_t *inp) -{ - return inp->end_sig_fields; -} size_t hs_cell_establish_intro_getlen_sig(const hs_cell_establish_intro_t *inp) { @@ -518,12 +518,12 @@ hs_cell_establish_intro_parse_into(hs_cell_establish_intro_t *obj, const uint8_t CHECK_REMAINING(TRUNNEL_SHA3_256_LEN, truncated); memcpy(obj->handshake_mac, ptr, TRUNNEL_SHA3_256_LEN); remaining -= TRUNNEL_SHA3_256_LEN; ptr += TRUNNEL_SHA3_256_LEN; + obj->end_sig_fields = ptr; /* Parse u16 sig_len */ CHECK_REMAINING(2, truncated); obj->sig_len = trunnel_ntohs(trunnel_get_uint16(ptr)); remaining -= 2; ptr += 2; - obj->end_sig_fields = ptr; /* Parse u8 sig[sig_len] */ CHECK_REMAINING(obj->sig_len, truncated); diff --git a/src/trunnel/hs/cell_establish_intro.h b/src/trunnel/hs/cell_establish_intro.h index a9166f10d8..725d47cd85 100644 --- a/src/trunnel/hs/cell_establish_intro.h +++ b/src/trunnel/hs/cell_establish_intro.h @@ -19,8 +19,8 @@ struct hs_cell_establish_intro_st { struct cell_extension_st *extensions; const uint8_t *end_mac_fields; uint8_t handshake_mac[TRUNNEL_SHA3_256_LEN]; - uint16_t sig_len; const uint8_t *end_sig_fields; + uint16_t sig_len; TRUNNEL_DYNARRAY_HEAD(, uint8_t) sig; uint8_t trunnel_error_code_; }; @@ -170,6 +170,9 @@ uint8_t * hs_cell_establish_intro_getarray_handshake_mac(hs_cell_establish_intro * a const pointer */ const uint8_t * hs_cell_establish_intro_getconstarray_handshake_mac(const hs_cell_establish_intro_t *inp); +/** Return the position for end_sig_fields when we parsed this object + */ +const uint8_t * hs_cell_establish_intro_get_end_sig_fields(const hs_cell_establish_intro_t *inp); /** Return the value of the sig_len field of the * hs_cell_establish_intro_t in 'inp' */ @@ -179,9 +182,6 @@ uint16_t hs_cell_establish_intro_get_sig_len(const hs_cell_establish_intro_t *in * return -1 and set the error code on 'inp' on failure. */ int hs_cell_establish_intro_set_sig_len(hs_cell_establish_intro_t *inp, uint16_t val); -/** Return the position for end_sig_fields when we parsed this object - */ -const uint8_t * hs_cell_establish_intro_get_end_sig_fields(const hs_cell_establish_intro_t *inp); /** Return the length of the dynamic array holding the sig field of * the hs_cell_establish_intro_t in 'inp'. */ diff --git a/src/trunnel/hs/cell_establish_intro.trunnel b/src/trunnel/hs/cell_establish_intro.trunnel index 4f9e8f7e08..33a133bf67 100644 --- a/src/trunnel/hs/cell_establish_intro.trunnel +++ b/src/trunnel/hs/cell_establish_intro.trunnel @@ -26,9 +26,9 @@ struct hs_cell_establish_intro { u8 handshake_mac[TRUNNEL_SHA3_256_LEN]; /* Signature */ - u16 sig_len; /* Indicate the end of the handshake authentication data. */ @ptr end_sig_fields; + u16 sig_len; u8 sig[sig_len]; }; |