diff options
84 files changed, 3489 insertions, 1602 deletions
@@ -8,11 +8,11 @@ Changes in version 0.2.4.10-alpha - 2013-02-04 o Major bugfixes (directory authority): - When computing directory thresholds, ignore any rejected-as-sybil nodes during the computation so that they can't influence Fast, - Guard, etc. (We shoud have done this for proposal 109.) Fixes + Guard, etc. (We should have done this for proposal 109.) Fixes bug 8146. - When marking a node as a likely sybil, reset its uptime metrics to zero, so that it cannot time towards getting marked as Guard, - Stable, or HSDir. (We shoud have done this for proposal 109.) Fixes + Stable, or HSDir. (We should have done this for proposal 109.) Fixes bug 8147. o Major bugfixes: diff --git a/Makefile.am b/Makefile.am index 2854763d25..4639c22c41 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,6 +7,8 @@ # 1.9 means we require automake vesion 1.9 AUTOMAKE_OPTIONS = foreign 1.9 subdir-objects +ACLOCAL_AMFLAGS = -I m4 + noinst_LIBRARIES= EXTRA_DIST= noinst_HEADERS= diff --git a/autogen.sh b/autogen.sh index efa2251c24..8c43a9798a 100755 --- a/autogen.sh +++ b/autogen.sh @@ -17,7 +17,7 @@ fi set -e # Run this to generate all the initial makefiles, etc. -aclocal && \ +aclocal -I m4 && \ autoheader && \ autoconf && \ automake --add-missing --copy diff --git a/changes/bug1992 b/changes/bug1992 new file mode 100644 index 0000000000..6a751dc7e6 --- /dev/null +++ b/changes/bug1992 @@ -0,0 +1,11 @@ + o Minor bugfixes: + - Stop trying to resolve our hostname so often (e.g. every time we + think about doing a directory fetch). Now we reuse the cached + answer in some cases. Fixes bugs 1992 (bugfix on 0.2.0.20-rc) + and 2410 (bugfix on 0.1.2.2-alpha). + + o Minor features: + - Make bridge relays check once a minute for whether their IP + address has changed, rather than only every 15 minutes. Resolves + bugs 1913 and 1992. + diff --git a/changes/bug7054 b/changes/bug7054 new file mode 100644 index 0000000000..15680d72ce --- /dev/null +++ b/changes/bug7054 @@ -0,0 +1,4 @@ + o Minor bugfixes (man page): + - Say "KBytes" rather than "KB" in the man page (for various values + of K), to further reduce confusion about whether Tor counts in + units of memory or fractions of units of memory. Fixes bug 7054. diff --git a/changes/bug7801 b/changes/bug7801 new file mode 100644 index 0000000000..1d6d021f3f --- /dev/null +++ b/changes/bug7801 @@ -0,0 +1,13 @@ + o Minor bugfixes: + - When choosing which stream on a formerly stalled circuit to wake + first, make better use of the platform's weak RNG. Previously, we + had been using the % ("modulo") operator to try to generate a 1/N + chance of picking each stream, but this behaves badly with many + platforms' choice of weak RNG. Fix for bug 7801; bugfix on + 0.2.2.20-alpha. + - Use our own weak RNG when we need a weak RNG. Windows's rand() + and Irix's random() only return 15 bits; Solaris's random() + returns more bits but its RAND_MAX says it only returns 15, and + so on. Fixes another aspect of bug 7801; bugfix on + 0.2.2.20-alpha. + diff --git a/changes/bug7816.024 b/changes/bug7816.024 new file mode 100644 index 0000000000..b5d55f5d6d --- /dev/null +++ b/changes/bug7816.024 @@ -0,0 +1,8 @@ + o Minor bugfixes: + - Avoid leaking IPv6 policy content if we fail to format it into + a router descriptor. Spotted by Coverity. Fixes part of 7816; + bugfix on 0.2.4.7-alpha. + + - Avoid leaking memory if we fail to compute a consensus signature + or we generated a consensus we couldn't parse. Spotted by Coverity. + Fixes part of 7816; bugfix on 0.2.0.5-alpha. diff --git a/changes/bug7816_023 b/changes/bug7816_023 new file mode 100644 index 0000000000..a4530292cc --- /dev/null +++ b/changes/bug7816_023 @@ -0,0 +1,7 @@ + o Minor bugfixes (memory leak, controller): + - Fix a memory leak during safe-cookie controller authentication. + Spotted by Coverity. Fixes part of bug 7816; bugfix on 0.2.3.13-alpha. + + o Minor bugfixes (memory leak, HTTPS proxy support): + - Fix a memory leak when receiving headers from an HTTPS proxy. + Spotted by Coverity. Fixes part of bug 7816; bugfix on 0.2.1.1-alpha. diff --git a/changes/bug7816_023_small b/changes/bug7816_023_small new file mode 100644 index 0000000000..cd90f035f1 --- /dev/null +++ b/changes/bug7816_023_small @@ -0,0 +1,3 @@ + o Minor bugfixes: + - Fix various places where we leak file descriptors or memory on + error cases. Spotted by coverity. Fixes parts of bug 7816. diff --git a/changes/bug7902 b/changes/bug7902 new file mode 100644 index 0000000000..051759dc0a --- /dev/null +++ b/changes/bug7902 @@ -0,0 +1,7 @@ + o Minor bugfixes: + - When we receive a RELAY_END cell with the reason DONE, or with no + reason, before receiving a RELAY_CONNECTED cell, report the SOCKS + status as "connection refused." Previously we reporting these + cases as success but then immediately closing the connection. + Fixes bug 7902; bugfix on 0.1.0.1-rc. Reported by "oftc_must_ + be_destroyed." diff --git a/changes/bug8121 b/changes/bug8121 new file mode 100644 index 0000000000..60cba72848 --- /dev/null +++ b/changes/bug8121 @@ -0,0 +1,7 @@ + o Minor features: + - Clear the high bit on curve25519 public keys before passing them to + our backend, in case we ever wind up using a backend that doesn't do + so itself. If we used such a backend, and *didn't* clear the high bit, + we could wind up in a situation where users with such backends would + be distinguishable from users without. Fix for bug 8121; bugfix on + 0.2.4.8-alpha. diff --git a/changes/bug8158 b/changes/bug8158 new file mode 100644 index 0000000000..65b21c2a26 --- /dev/null +++ b/changes/bug8158 @@ -0,0 +1,3 @@ + o Minor bugfixes: + - Use less space when formatting identical microdescriptor lines in + directory votes. Fixes bug 8158; bugfix on 0.2.4.1-alpha. diff --git a/changes/bug8161 b/changes/bug8161 new file mode 100644 index 0000000000..ab7b9c0cad --- /dev/null +++ b/changes/bug8161 @@ -0,0 +1,6 @@ + o Minor changes: + - Lower path use bias thresholds to .80 for notice and .60 for warn. + Fixes bug #8161; bugfix on 0.2.4.10-alpa. + - Make the rate limiting flags for the path use bias log messages + independent from the original path bias flags. Fixes bug #8161; + bugfix on 0.2.4.10-alpha. diff --git a/changes/bug8200 b/changes/bug8200 new file mode 100644 index 0000000000..65fc9dd03a --- /dev/null +++ b/changes/bug8200 @@ -0,0 +1,5 @@ + o Minor bugfix: + - Stop sending a stray "(null)" in some cases for the server status + "EXTERNAL_ADDRESS" controller event. Resolves bug 8200; bugfix + on 0.1.2.6-alpha. + diff --git a/changes/bug8207 b/changes/bug8207 new file mode 100644 index 0000000000..0028d3380f --- /dev/null +++ b/changes/bug8207 @@ -0,0 +1,7 @@ + o Major bugfixes (hidden services): + - Allow hidden service authentication to succeed again. When we + refactored the hidden service introduction code back in 0.2.4.1-alpha, + we didn't update the code that checks whether authentication + information is present, causing all authentication checks to + return "false". Fix for bug 8207; bugfix on 0.2.4.1-alpha. Found by + Coverity; this is CID 718615. diff --git a/changes/bug8208 b/changes/bug8208 new file mode 100644 index 0000000000..c85db90b52 --- /dev/null +++ b/changes/bug8208 @@ -0,0 +1,4 @@ + o Minor bugfixes: + - Avoid a crash if we fail to generate an extrinfo descriptor. + Fixes bug 8208; bugfix on 0.2.3.16-alpha. Found by Coverity; + this is CID 718634. diff --git a/changes/bug8209 b/changes/bug8209 new file mode 100644 index 0000000000..c58923540b --- /dev/null +++ b/changes/bug8209 @@ -0,0 +1,6 @@ + o Minor bugfixes: + - When detecting the largest possible file descriptor (in order to close + all file descriptors when launching a new program), actually use + _SC_OPEN_MAX. The old code for doing this was very, very broken. + Fix for bug 8209; bugfix on 0.2.3.1-alpha. Found by Coverity; this + is CID 743383. diff --git a/changes/bug8210 b/changes/bug8210 new file mode 100644 index 0000000000..85d41b844a --- /dev/null +++ b/changes/bug8210 @@ -0,0 +1,6 @@ + o Minor bugfixes: + - Fix an impossible-to-trigger integer overflow when + estimating how long out onionskin queue would take. (This overflow + would require us to accept 4 million onionskins before processing + 100 of them.) Fixes bug 8210; bugfix on 0.2.4.10-alpha. + diff --git a/changes/bug8218 b/changes/bug8218 new file mode 100644 index 0000000000..ce8d53ba62 --- /dev/null +++ b/changes/bug8218 @@ -0,0 +1,6 @@ + o Major bugfixes: + - Stop marking every relay as having been down for one hour every + time we restart a directory authority. These artificial downtimes + were messing with our Stable and Guard flag calculations. Fixes + bug 8218 (introduced by the fix for 1035). Bugfix on 0.2.2.23-alpha. + diff --git a/changes/cov980650 b/changes/cov980650 new file mode 100644 index 0000000000..cbbada2e66 --- /dev/null +++ b/changes/cov980650 @@ -0,0 +1,4 @@ + o Minor bugfixes: + - Fix a copy-and-paste error when adding a missing A1 to a routerset + because of GeoIPExcludeUnknown. Fix for coverity CID 980650. + Bugfix on 0.2.4.10-alpha. diff --git a/changes/easy.ratelim b/changes/easy.ratelim new file mode 100644 index 0000000000..cadd1e4f5e --- /dev/null +++ b/changes/easy.ratelim @@ -0,0 +1,3 @@ + o Code simplification and refactoring: + - Add a wrapper function for the common "log a message with a rate-limit" + case. diff --git a/changes/feature4994 b/changes/feature4994 new file mode 100644 index 0000000000..4fa0e037b7 --- /dev/null +++ b/changes/feature4994 @@ -0,0 +1,7 @@ + o Minor features: + - Teach bridge-using clients to avoid 0.2.2 bridges when making + microdescriptor-related dir requests, and only fall back to normal + descriptors if none of their bridges can handle microdescriptors + (as opposed to the fix in ticket 4013, which caused them to fall + back to normal descriptors if *any* of their bridges preferred + them). Resolves ticket 4994. diff --git a/changes/geoip-feb2013 b/changes/geoip-feb2013 new file mode 100644 index 0000000000..b5d794258f --- /dev/null +++ b/changes/geoip-feb2013 @@ -0,0 +1,3 @@ + o Minor features: + - Update to the February 6 2013 Maxmind GeoLite Country database. + diff --git a/changes/integers_donna b/changes/integers_donna new file mode 100644 index 0000000000..e9c69e8e1c --- /dev/null +++ b/changes/integers_donna @@ -0,0 +1,3 @@ + o Minor bugfixes (portability) + - Tweak the curve25519-donna*.c implementations to tolerate systems + that lack stdint.h. Fixes bug 3894; bugfix on 0.2.4.8-alpha. diff --git a/changes/signof_enum b/changes/signof_enum new file mode 100644 index 0000000000..ba4fb597d7 --- /dev/null +++ b/changes/signof_enum @@ -0,0 +1,7 @@ + o Code simplifications and refactoring: + - Use Ville Laurikari's implementation of AX_CHECK_SIGN() to determine + the signs of types during autoconf. This is better than our old + approach, which didn't work when cross-compiling. + - Detect the sign of enum values, rather than assuming that MSC is the + only compiler where enum types are all signed. Fix for bug 7727; + bugfix on 0.2.4.10-alpha. diff --git a/changes/ticket2267 b/changes/ticket2267 new file mode 100644 index 0000000000..b589b5721f --- /dev/null +++ b/changes/ticket2267 @@ -0,0 +1,8 @@ + o Minor features: + - Refactor resolve_my_address() so it returns the method by which we + decided our public IP address (explicitly configured, resolved from + explicit hostname, guessed from interfaces, learned by gethostname). + Now we can provide more helpful log messages when a relay guesses + its IP address incorrectly (e.g. due to unexpected lines in + /etc/hosts). Resolves ticket 2267. + diff --git a/configure.ac b/configure.ac index c27cbd2c85..864477b8fc 100644 --- a/configure.ac +++ b/configure.ac @@ -5,6 +5,7 @@ dnl See LICENSE for licensing information AC_INIT([tor],[0.2.4.10-alpha-dev]) AC_CONFIG_SRCDIR([src/or/main.c]) +AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_CONFIG_HEADERS([orconfig.h]) @@ -957,8 +958,9 @@ AC_CHECK_TYPES([rlim_t], , , #endif ]) -AC_CACHE_CHECK([whether time_t is signed], tor_cv_time_t_signed, [ -AC_RUN_IFELSE([AC_LANG_SOURCE([ +AX_CHECK_SIGN([time_t], + [ AC_DEFINE(TIME_T_IS_SIGNED, 1, [Define if time_t is signed]) ], + [ : ], [ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif @@ -968,36 +970,26 @@ AC_RUN_IFELSE([AC_LANG_SOURCE([ #ifdef HAVE_TIME_H #include <time.h> #endif -int main(int c, char**v) { if (((time_t)-1)<0) return 1; else return 0; }])], - tor_cv_time_t_signed=no, tor_cv_time_t_signed=yes, tor_cv_time_t_signed=cross) ]) -if test "$tor_cv_time_t_signed" = cross; then - AC_MSG_NOTICE([Cross compiling: assuming that time_t is signed.]) -fi - -if test "$tor_cv_time_t_signed" != no; then - AC_DEFINE([TIME_T_IS_SIGNED], 1, - [Define to 1 iff time_t is signed]) -fi - -AC_CACHE_CHECK([whether size_t is signed], tor_cv_size_t_signed, [ -AC_RUN_IFELSE([AC_LANG_SOURCE([ +AX_CHECK_SIGN([size_t], + [ tor_cv_size_t_signed=yes ], + [ tor_cv_size_t_signed=no ], [ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif -int main(int c, char**v) { if (((size_t)-1)<0) return 1; else return 0; }])], - tor_cv_size_t_signed=no, tor_cv_size_t_signed=yes, tor_cv_size_t_signed=cross) ]) -if test "$tor_cv_size_t_signed" = cross; then - AC_MSG_NOTICE([Cross compiling: assuming that size_t is not signed.]) -fi - if test "$tor_cv_size_t_signed" = yes; then AC_MSG_ERROR([You have a signed size_t; that's grossly nonconformant.]) fi +AX_CHECK_SIGN([enum always], + [ AC_DEFINE(ENUM_VALS_ARE_SIGNED, 1, [Define if enum is always signed]) ], + [ : ], [ + enum always { AAA, BBB, CCC }; +]) + AC_CHECK_SIZEOF(socklen_t, , [AC_INCLUDES_DEFAULT() #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> diff --git a/doc/tor.1.txt b/doc/tor.1.txt index a15aecb488..75bca79378 100644 --- a/doc/tor.1.txt +++ b/doc/tor.1.txt @@ -124,42 +124,42 @@ option name with a forward slash. GENERAL OPTIONS --------------- -**BandwidthRate** __N__ **bytes**|**KB**|**MB**|**GB**:: +**BandwidthRate** __N__ **bytes**|**KBytes**|**MBytes**|**GBytes**:: A token bucket limits the average incoming bandwidth usage on this node to the specified number of bytes per second, and the average outgoing bandwidth usage to that same value. If you want to run a relay in the - public network, this needs to be _at the very least_ 30 KB (that is, - 30720 bytes). (Default: 1 GB) + public network, this needs to be _at the very least_ 30 KBytes (that is, + 30720 bytes). (Default: 1 GByte) -**BandwidthBurst** __N__ **bytes**|**KB**|**MB**|**GB**:: +**BandwidthBurst** __N__ **bytes**|**KBytes**|**MBytes**|**GBytes**:: Limit the maximum token bucket size (also known as the burst) to the given - number of bytes in each direction. (Default: 1 GB) + number of bytes in each direction. (Default: 1 GByte) -**MaxAdvertisedBandwidth** __N__ **bytes**|**KB**|**MB**|**GB**:: +**MaxAdvertisedBandwidth** __N__ **bytes**|**KBytes**|**MBytes**|**GBytes**:: If set, we will not advertise more than this amount of bandwidth for our BandwidthRate. Server operators who want to reduce the number of clients who ask to build circuits through them (since this is proportional to advertised bandwidth rate) can thus reduce the CPU demands on their server without impacting network performance. -**RelayBandwidthRate** __N__ **bytes**|**KB**|**MB**|**GB**:: +**RelayBandwidthRate** __N__ **bytes**|**KBytes**|**MBytes**|**GBytes**:: If not 0, a separate token bucket limits the average incoming bandwidth usage for \_relayed traffic_ on this node to the specified number of bytes per second, and the average outgoing bandwidth usage to that same value. Relayed traffic currently is calculated to include answers to directory requests, but that may change in future versions. (Default: 0) -**RelayBandwidthBurst** __N__ **bytes**|**KB**|**MB**|**GB**:: +**RelayBandwidthBurst** __N__ **bytes**|**KBytes**|**MBytes**|**GBytes**:: If not 0, limit the maximum token bucket size (also known as the burst) for \_relayed traffic_ to the given number of bytes in each direction. (Default: 0) -**PerConnBWRate** __N__ **bytes**|**KB**|**MB**|**GB**:: +**PerConnBWRate** __N__ **bytes**|**KBytes**|**MBytes**|**GBytes**:: If set, do separate rate limiting for each connection from a non-relay. You should never need to change this value, since a network-wide value is published in the consensus and your relay will use that value. (Default: 0) -**PerConnBWBurst** __N__ **bytes**|**KB**|**MB**|**GB**:: +**PerConnBWBurst** __N__ **bytes**|**KBytes**|**MBytes**|**GBytes**:: If set, do separate rate limiting for each connection from a non-relay. You should never need to change this value, since a network-wide value is published in the consensus and your relay will use that value. (Default: 0) @@ -222,7 +222,7 @@ GENERAL OPTIONS the TCP stream and will reduce throughput in proportion to round trip time on long paths. (Default: 0) -**ConstrainedSockSize** __N__ **bytes**|**KB**:: +**ConstrainedSockSize** __N__ **bytes**|**KBytes**:: When **ConstrainedSockets** is enabled the receive and transmit buffers for all sockets will be set to this limit. Must be a value between 2048 and 262144, in 1024 byte increments. Default of 8192 is recommended. @@ -1159,7 +1159,9 @@ The following options are useful only for clients (that is, if **DNSPort** \['address':]__port__|**auto** [_isolation flags_]:: If non-zero, open this port to listen for UDP DNS requests, and resolve - them anonymously. Set the port to "auto" to have Tor pick a port for + them anonymously. This port only handles A, AAAA, and PTR requests---it + doesn't handle arbitrary DNS request types. Set the port to "auto" to + have Tor pick a port for you. This directive can be specified multiple times to bind to multiple addresses/ports. See SOCKSPort for an explanation of isolation flags. (Default: 0) @@ -1291,8 +1293,8 @@ The following options are useful only for clients (that is, if + By default, or if a negative value is provided for one of these options, Tor uses reasonable defaults from the networkstatus consensus document. - If no defaults are available there, these options default to 20, .90, - .70, and 100, respectively. + If no defaults are available there, these options default to 20, .80, + .60, and 100, respectively. **ClientUseIPv6** **0**|**1**:: If this option is set to 1, Tor might connect to entry nodes over @@ -1507,14 +1509,14 @@ is non-zero): server is still alive and doing useful things. Settings this to 0 will disable the heartbeat. (Default: 6 hours) -**AccountingMax** __N__ **bytes**|**KB**|**MB**|**GB**|**TB**:: +**AccountingMax** __N__ **bytes**|**KBytes**|**MBytes**|**GBytes**|**TBytes**:: Never send more than the specified number of bytes in a given accounting period, or receive more than that number in the period. For example, with - AccountingMax set to 1 GB, a server could send 900 MB and receive 800 MB - and continue running. It will only hibernate once one of the two reaches 1 - GB. When the number of bytes gets low, Tor will stop accepting new - connections and circuits. When the number of bytes - is exhausted, Tor will hibernate until some + AccountingMax set to 1 GByte, a server could send 900 MBytes and + receive 800 MBytes and continue running. It will only hibernate once + one of the two reaches 1 GByte. When the number of bytes gets low, + Tor will stop accepting new connections and circuits. When the + number of bytes is exhausted, Tor will hibernate until some time in the next accounting period. To prevent all servers from waking at the same time, Tor will also wait until a random point in each period before waking up. If you have bandwidth cost issues, enabling hibernation @@ -1537,7 +1539,8 @@ is non-zero): Prevent nodes that don't appear in the consensus from exiting using this relay. If the option is 1, we always block exit attempts from such nodes; if it's 0, we never do, and if the option is "auto", then we do - whatever the authorities suggest in the consensus. (Default: auto) + whatever the authorities suggest in the consensus (and block if the consensus + is quiet on the issue). (Default: auto) **ServerDNSResolvConfFile** __filename__:: Overrides the default DNS configuration with the configuration in @@ -1829,15 +1832,15 @@ DIRECTORY AUTHORITY SERVER OPTIONS Authoritative directories only. Like AuthDirMaxServersPerAddr, but applies to addresses shared with directory authorities. (Default: 5) -**AuthDirFastGuarantee** __N__ **bytes**|**KB**|**MB**|**GB**:: +**AuthDirFastGuarantee** __N__ **bytes**|**KBytes**|**MBytes**|**GBytes**:: Authoritative directories only. If non-zero, always vote the Fast flag for any relay advertising this amount of capacity or - more. (Default: 100 KB) + more. (Default: 100 KBytes) -**AuthDirGuardBWGuarantee** __N__ **bytes**|**KB**|**MB**|**GB**:: +**AuthDirGuardBWGuarantee** __N__ **bytes**|**KBytes**|**MBytes**|**GBytes**:: Authoritative directories only. If non-zero, this advertised capacity or more is always sufficient to satisfy the bandwidth requirement - for the Guard flag. (Default: 250 KB) + for the Guard flag. (Default: 250 KBytes) **BridgePassword** __Password__:: If set, contains an HTTP authenticator that tells a bridge authority to diff --git a/m4/ax_check_sign.m4 b/m4/ax_check_sign.m4 new file mode 100644 index 0000000000..104b17014c --- /dev/null +++ b/m4/ax_check_sign.m4 @@ -0,0 +1,54 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_check_sign.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_SIGN (TYPE, [ACTION-IF-SIGNED], [ACTION-IF-UNSIGNED], [INCLUDES]) +# +# DESCRIPTION +# +# Checks whether TYPE is signed or not. If no INCLUDES are specified, the +# default includes are used. If ACTION-IF-SIGNED is given, it is +# additional shell code to execute when the type is signed. If +# ACTION-IF-UNSIGNED is given, it is executed when the type is unsigned. +# +# This macro assumes that the type exists. Therefore the existence of the +# type should be checked before calling this macro. For example: +# +# AC_CHECK_HEADERS([wchar.h]) +# AC_CHECK_TYPE([wchar_t],,[ AC_MSG_ERROR([Type wchar_t not found.]) ]) +# AX_CHECK_SIGN([wchar_t], +# [ AC_DEFINE(WCHAR_T_SIGNED, 1, [Define if wchar_t is signed]) ], +# [ AC_DEFINE(WCHAR_T_UNSIGNED, 1, [Define if wchar_t is unsigned]) ], [ +# #ifdef HAVE_WCHAR_H +# #include <wchar.h> +# #endif +# ]) +# +# LICENSE +# +# Copyright (c) 2008 Ville Laurikari <vl@iki.fi> +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 6 + +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) @:>@ ], + [ 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"` + if eval "test \"\${ax_cv_decl_${typename}_signed}\" = \"yes\""; then + $2 + elif eval "test \"\${ax_cv_decl_${typename}_signed}\" = \"no\""; then + $3 + fi +])dnl diff --git a/src/common/compat.c b/src/common/compat.c index 3b15f8ad24..d7ce89479a 100644 --- a/src/common/compat.c +++ b/src/common/compat.c @@ -2059,30 +2059,6 @@ tor_lookup_hostname(const char *name, uint32_t *addr) return -1; } -/** Initialize the insecure libc RNG. */ -void -tor_init_weak_random(unsigned seed) -{ -#ifdef _WIN32 - srand(seed); -#else - srandom(seed); -#endif -} - -/** Return a randomly chosen value in the range 0..TOR_RAND_MAX. This - * entropy will not be cryptographically strong; do not rely on it - * for anything an adversary should not be able to predict. */ -long -tor_weak_random(void) -{ -#ifdef _WIN32 - return rand(); -#else - return random(); -#endif -} - /** Hold the result of our call to <b>uname</b>. */ static char uname_result[256]; /** True iff uname_result is set. */ diff --git a/src/common/compat.h b/src/common/compat.h index d2944e6f48..f9eb4ba0be 100644 --- a/src/common/compat.h +++ b/src/common/compat.h @@ -136,8 +136,7 @@ extern INLINE double U64_TO_DBL(uint64_t x) { #define DBL_TO_U64(x) ((uint64_t) (x)) #endif -#if defined(_MSC_VER) -/* XXXX024 we should instead have a more general check for "Is enum signed?"*/ +#ifdef ENUM_VALS_ARE_SIGNED #define ENUM_BF(t) unsigned #else /** Wrapper for having a bitfield of an enumerated type. Where possible, we @@ -582,11 +581,6 @@ typedef enum { SOCKS5_ADDRESS_TYPE_NOT_SUPPORTED = 0x08, } socks5_reply_status_t; -/* ===== Insecure rng */ -void tor_init_weak_random(unsigned seed); -long tor_weak_random(void); -#define TOR_RAND_MAX (RAND_MAX) - /* ===== OS compatibility */ const char *get_uname(void); diff --git a/src/common/crypto.c b/src/common/crypto.c index 70bd45299f..22d57c7c8a 100644 --- a/src/common/crypto.c +++ b/src/common/crypto.c @@ -2337,12 +2337,12 @@ crypto_dh_free(crypto_dh_t *dh) (OPENSSL_VERSION_NUMBER >= OPENSSL_V(0,9,8,'c')) /** Set the seed of the weak RNG to a random value. */ -static void -seed_weak_rng(void) +void +crypto_seed_weak_rng(tor_weak_rng_t *rng) { unsigned seed; crypto_rand((void*)&seed, sizeof(seed)); - tor_init_weak_random(seed); + tor_init_weak_random(rng, seed); } /** Try to get <b>out_len</b> bytes of the strongest entropy we can generate, @@ -2426,7 +2426,7 @@ crypto_seed_rng(int startup) } memwipe(buf, 0, sizeof(buf)); - seed_weak_rng(); + if (rand_poll_ok || load_entropy_ok) return 0; else diff --git a/src/common/crypto.h b/src/common/crypto.h index 08efc801d3..12fcfae27e 100644 --- a/src/common/crypto.h +++ b/src/common/crypto.h @@ -256,6 +256,8 @@ int crypto_strongest_rand(uint8_t *out, size_t out_len); int crypto_rand_int(unsigned int max); uint64_t crypto_rand_uint64(uint64_t max); double crypto_rand_double(void); +struct tor_weak_rng_t; +void crypto_seed_weak_rng(struct tor_weak_rng_t *rng); char *crypto_random_hostname(int min_rand_len, int max_rand_len, const char *prefix, const char *suffix); diff --git a/src/common/crypto_curve25519.c b/src/common/crypto_curve25519.c index 425a1a078c..3e4004db2e 100644 --- a/src/common/crypto_curve25519.c +++ b/src/common/crypto_curve25519.c @@ -33,13 +33,20 @@ int curve25519_impl(uint8_t *output, const uint8_t *secret, const uint8_t *basepoint) { + uint8_t bp[CURVE25519_PUBKEY_LEN]; + int r; + memcpy(bp, basepoint, CURVE25519_PUBKEY_LEN); + /* Clear the high bit, in case our backend foolishly looks at it. */ + bp[31] &= 0x7f; #ifdef USE_CURVE25519_DONNA - return curve25519_donna(output, secret, basepoint); + r = curve25519_donna(output, secret, bp); #elif defined(USE_CURVE25519_NACL) - return crypto_scalarmult_curve25519(output, secret, basepoint); + r = crypto_scalarmult_curve25519(output, secret, bp); #else #error "No implementation of curve25519 is available." #endif + memwipe(bp, 0, sizeof(bp)); + return r; } /* ============================== diff --git a/src/common/log.c b/src/common/log.c index e56fb257f9..e196a11287 100644 --- a/src/common/log.c +++ b/src/common/log.c @@ -140,11 +140,12 @@ static char *domain_to_string(log_domain_mask_t domain, char *buf, size_t buflen); static INLINE char *format_msg(char *buf, size_t buf_len, log_domain_mask_t domain, int severity, const char *funcname, + const char *suffix, const char *format, va_list ap, size_t *msg_len_out) - CHECK_PRINTF(6,0); + CHECK_PRINTF(7,0); static void logv(int severity, log_domain_mask_t domain, const char *funcname, - const char *format, va_list ap) - CHECK_PRINTF(4,0); + const char *suffix, const char *format, va_list ap) + CHECK_PRINTF(5,0); /** Name of the application: used to generate the message we write at the * start of each new log. */ @@ -251,6 +252,7 @@ log_tor_version(logfile_t *lf, int reset) static INLINE char * format_msg(char *buf, size_t buf_len, log_domain_mask_t domain, int severity, const char *funcname, + const char *suffix, const char *format, va_list ap, size_t *msg_len_out) { size_t n; @@ -312,6 +314,13 @@ format_msg(char *buf, size_t buf_len, n = buf_len; } else { n += r; + if (suffix) { + size_t suffix_len = strlen(suffix); + if (buf_len-n >= suffix_len) { + memcpy(buf+n, suffix, suffix_len); + n += suffix_len; + } + } } buf[n]='\n'; buf[n+1]='\0'; @@ -325,7 +334,7 @@ format_msg(char *buf, size_t buf_len, */ static void logv(int severity, log_domain_mask_t domain, const char *funcname, - const char *format, va_list ap) + const char *suffix, const char *format, va_list ap) { char buf[10024]; size_t msg_len = 0; @@ -361,8 +370,8 @@ logv(int severity, log_domain_mask_t domain, const char *funcname, if (!formatted) { end_of_prefix = - format_msg(buf, sizeof(buf), domain, severity, funcname, format, ap, - &msg_len); + format_msg(buf, sizeof(buf), domain, severity, funcname, suffix, + format, ap, &msg_len); formatted = 1; } @@ -426,7 +435,7 @@ tor_log(int severity, log_domain_mask_t domain, const char *format, ...) if (severity > log_global_min_severity_) return; va_start(ap,format); - logv(severity, domain, NULL, format, ap); + logv(severity, domain, NULL, NULL, format, ap); va_end(ap); } @@ -443,8 +452,24 @@ log_fn_(int severity, log_domain_mask_t domain, const char *fn, if (severity > log_global_min_severity_) return; va_start(ap,format); - logv(severity, domain, fn, format, ap); + logv(severity, domain, fn, NULL, format, ap); + va_end(ap); +} +void +log_fn_ratelim_(ratelim_t *ratelim, int severity, log_domain_mask_t domain, + const char *fn, const char *format, ...) +{ + va_list ap; + char *m; + if (severity > log_global_min_severity_) + return; + m = rate_limit_log(ratelim, approx_time()); + if (m == NULL) + return; + va_start(ap, format); + logv(severity, domain, fn, m, format, ap); va_end(ap); + tor_free(m); } #else /** @{ */ @@ -460,11 +485,27 @@ log_fn_(int severity, log_domain_mask_t domain, const char *format, ...) if (severity > log_global_min_severity_) return; va_start(ap,format); - logv(severity, domain, log_fn_function_name_, format, ap); + logv(severity, domain, log_fn_function_name_, NULL, format, ap); va_end(ap); log_fn_function_name_ = NULL; } void +log_fn_ratelim_(ratelim_t *ratelim, int severity, log_domain_mask_t domain, + const char *format, ...) +{ + va_list ap; + char *m; + if (severity > log_global_min_severity_) + return; + m = rate_limit_log(ratelim, approx_time()); + if (m == NULL) + return; + va_start(ap, format); + logv(severity, domain, log_fn_function_name_, m, format, ap); + va_end(ap); + tor_free(m); +} +void log_debug_(log_domain_mask_t domain, const char *format, ...) { va_list ap; @@ -472,7 +513,7 @@ log_debug_(log_domain_mask_t domain, const char *format, ...) if (PREDICT_LIKELY(LOG_DEBUG > log_global_min_severity_)) return; va_start(ap,format); - logv(LOG_DEBUG, domain, log_fn_function_name_, format, ap); + logv(LOG_DEBUG, domain, log_fn_function_name_, NULL, format, ap); va_end(ap); log_fn_function_name_ = NULL; } @@ -483,7 +524,7 @@ log_info_(log_domain_mask_t domain, const char *format, ...) if (LOG_INFO > log_global_min_severity_) return; va_start(ap,format); - logv(LOG_INFO, domain, log_fn_function_name_, format, ap); + logv(LOG_INFO, domain, log_fn_function_name_, NULL, format, ap); va_end(ap); log_fn_function_name_ = NULL; } @@ -494,7 +535,7 @@ log_notice_(log_domain_mask_t domain, const char *format, ...) if (LOG_NOTICE > log_global_min_severity_) return; va_start(ap,format); - logv(LOG_NOTICE, domain, log_fn_function_name_, format, ap); + logv(LOG_NOTICE, domain, log_fn_function_name_, NULL, format, ap); va_end(ap); log_fn_function_name_ = NULL; } @@ -505,7 +546,7 @@ log_warn_(log_domain_mask_t domain, const char *format, ...) if (LOG_WARN > log_global_min_severity_) return; va_start(ap,format); - logv(LOG_WARN, domain, log_fn_function_name_, format, ap); + logv(LOG_WARN, domain, log_fn_function_name_, NULL, format, ap); va_end(ap); log_fn_function_name_ = NULL; } @@ -516,7 +557,7 @@ log_err_(log_domain_mask_t domain, const char *format, ...) if (LOG_ERR > log_global_min_severity_) return; va_start(ap,format); - logv(LOG_ERR, domain, log_fn_function_name_, format, ap); + logv(LOG_ERR, domain, log_fn_function_name_, NULL, format, ap); va_end(ap); log_fn_function_name_ = NULL; } @@ -833,8 +874,10 @@ add_file_log(const log_severity_list_t *severity, const char *filename) fd = tor_open_cloexec(filename, O_WRONLY|O_CREAT|O_APPEND, 0644); if (fd<0) return -1; - if (tor_fd_seekend(fd)<0) + if (tor_fd_seekend(fd)<0) { + close(fd); return -1; + } LOCK_LOGS(); add_stream_log_impl(severity, filename, fd); diff --git a/src/common/torlog.h b/src/common/torlog.h index 23ee597a4e..8675d7b6e7 100644 --- a/src/common/torlog.h +++ b/src/common/torlog.h @@ -160,10 +160,20 @@ extern int log_global_min_severity_; void log_fn_(int severity, log_domain_mask_t domain, const char *funcname, const char *format, ...) CHECK_PRINTF(4,5); +struct ratelim_t; +void log_fn_ratelim_(struct ratelim_t *ratelim, int severity, + log_domain_mask_t domain, const char *funcname, + const char *format, ...) + CHECK_PRINTF(5,6); /** Log a message at level <b>severity</b>, using a pretty-printed version * of the current function name. */ #define log_fn(severity, domain, args...) \ log_fn_(severity, domain, __PRETTY_FUNCTION__, args) +/** As log_fn, but use <b>ratelim</b> (an instance of ratelim_t) to control + * the frequency at which messages can appear. + */ +#define log_fn_ratelim(ratelim, severity, domain, args...) \ + log_fn_ratelim_(ratelim, severity, domain, __PRETTY_FUNCTION__, args) #define log_debug(domain, args...) \ STMT_BEGIN \ if (PREDICT_UNLIKELY(log_global_min_severity_ == LOG_DEBUG)) \ @@ -181,6 +191,9 @@ void log_fn_(int severity, log_domain_mask_t domain, #else /* ! defined(__GNUC__) */ void log_fn_(int severity, log_domain_mask_t domain, const char *format, ...); +struct ratelim_t; +void log_fn_ratelim_(struct ratelim_t *ratelim, int severity, + log_domain_mask_t domain, const char *format, ...); void log_debug_(log_domain_mask_t domain, const char *format, ...); void log_info_(log_domain_mask_t domain, const char *format, ...); void log_notice_(log_domain_mask_t domain, const char *format, ...); @@ -190,6 +203,7 @@ void log_err_(log_domain_mask_t domain, const char *format, ...); #if defined(_MSC_VER) && _MSC_VER < 1300 /* MSVC 6 and earlier don't have __func__, or even __LINE__. */ #define log_fn log_fn_ +#define log_fn_ratelim log_fn_ratelim_ #define log_debug log_debug_ #define log_info log_info_ #define log_notice log_notice_ @@ -203,6 +217,7 @@ extern const char *log_fn_function_name_; * do {...} while (0) trick to wrap this macro, since the macro can't take * arguments. */ #define log_fn (log_fn_function_name_=__func__),log_fn_ +#define log_fn_ratelim (log_fn_function_name_=__func__),log_fn_ratelim_ #define log_debug (log_fn_function_name_=__func__),log_debug_ #define log_info (log_fn_function_name_=__func__),log_info_ #define log_notice (log_fn_function_name_=__func__),log_notice_ diff --git a/src/common/util.c b/src/common/util.c index 7d72a896f9..6a69635594 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -2374,8 +2374,10 @@ read_file_to_str(const char *filename, int flags, struct stat *stat_out) } #endif - if ((uint64_t)(statbuf.st_size)+1 >= SIZE_T_CEILING) + if ((uint64_t)(statbuf.st_size)+1 >= SIZE_T_CEILING) { + close(fd); return NULL; + } string = tor_malloc((size_t)(statbuf.st_size+1)); @@ -3832,12 +3834,13 @@ tor_spawn_background(const char *const filename, const char **argv, child_state = CHILD_STATE_MAXFD; #ifdef _SC_OPEN_MAX - if (-1 != max_fd) { + if (-1 == max_fd) { max_fd = (int) sysconf(_SC_OPEN_MAX); - if (max_fd == -1) + if (max_fd == -1) { max_fd = DEFAULT_MAX_FD; log_warn(LD_GENERAL, "Cannot find maximum file descriptor, assuming %d", max_fd); + } } #else max_fd = DEFAULT_MAX_FD; @@ -4994,3 +4997,45 @@ tor_check_port_forwarding(const char *filename, } } +/** Initialize the insecure RNG <b>rng</b> from a seed value <b>seed</b>. */ +void +tor_init_weak_random(tor_weak_rng_t *rng, unsigned seed) +{ + rng->state = (uint32_t)(seed & 0x7fffffff); +} + +/** Return a randomly chosen value in the range 0..TOR_WEAK_RANDOM_MAX based + * on the RNG state of <b>rng</b>. This entropy will not be cryptographically + * strong; do not rely on it for anything an adversary should not be able to + * predict. */ +int32_t +tor_weak_random(tor_weak_rng_t *rng) +{ + /* Here's a linear congruential generator. OpenBSD and glibc use these + * parameters; they aren't too bad, and should have maximal period over the + * range 0..INT32_MAX. We don't want to use the platform rand() or random(), + * since some platforms have bad weak RNGs that only return values in the + * range 0..INT16_MAX, which just isn't enough. */ + rng->state = (rng->state * 1103515245 + 12345) & 0x7fffffff; + return (int32_t) rng->state; +} + +/** Return a random number in the range [0 , <b>top</b>). {That is, the range + * of integers i such that 0 <= i < top.} Chooses uniformly. Requires that + * top is greater than 0. This randomness is not cryptographically strong; do + * not rely on it for anything an adversary should not be able to predict. */ +int32_t +tor_weak_random_range(tor_weak_rng_t *rng, int32_t top) +{ + /* We don't want to just do tor_weak_random() % top, since random() is often + * implemented with an LCG whose modulus is a power of 2, and those are + * cyclic in their low-order bits. */ + int divisor, result; + tor_assert(top > 0); + divisor = TOR_WEAK_RANDOM_MAX / top; + do { + result = (int32_t)(tor_weak_random(rng) / divisor); + } while (result >= top); + return result; +} + diff --git a/src/common/util.h b/src/common/util.h index 59c43a4441..ac88f1ca1c 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -284,6 +284,15 @@ void update_approx_time(time_t now); } } </pre> + + As a convenience wrapper for logging, you can replace the above with: + <pre> + if (possibly_very_frequent_event()) { + static ratelim_t warning_limit = RATELIM_INIT(300); + log_fn_ratelim(&warning_limit, LOG_WARN, LD_GENERAL, + "The event occurred!"); + } + </pre> */ typedef struct ratelim_t { int rate; @@ -485,6 +494,20 @@ int tor_terminate_process(process_handle_t *process_handle); void tor_process_handle_destroy(process_handle_t *process_handle, int also_terminate_process); +/* ===== Insecure rng */ +typedef struct tor_weak_rng_t { + uint32_t state; +} tor_weak_rng_t; + +#define TOR_WEAK_RNG_INIT {383745623} +#define TOR_WEAK_RANDOM_MAX (INT_MAX) +void tor_init_weak_random(tor_weak_rng_t *weak_rng, unsigned seed); +int32_t tor_weak_random(tor_weak_rng_t *weak_rng); +int32_t tor_weak_random_range(tor_weak_rng_t *rng, int32_t top); +/** Randomly return true according to <b>rng</b> with probability 1 in + * <b>n</b> */ +#define tor_weak_random_one_in_n(rng, n) (0==tor_weak_random_range((rng),(n))) + #ifdef UTIL_PRIVATE /* Prototypes for private functions only used by util.c (and unit tests) */ diff --git a/src/config/geoip b/src/config/geoip index df45034037..216f67b6b3 100644 --- a/src/config/geoip +++ b/src/config/geoip @@ -1,6 +1,3 @@ -# Last updated based on January 2 2013 Maxmind GeoLite Country -# Visit the following URL for details on the conversion: -# https://gitweb.torproject.org/tor.git/blob/HEAD:/src/config/README.geoip 16777216,16777471,AU 16777472,16778239,CN 16778240,16779263,AU @@ -171,7 +168,9 @@ 71667634,71667634,DE 71667635,71667656,US 71667657,71667657,NL -71667658,72348895,US +71667658,71670208,US +71670209,71670209,NL +71670210,72348895,US 72348896,72348927,CA 72348928,83886079,US 83886080,83951615,SY @@ -685,7 +684,9 @@ 93749248,93753343,IT 93753344,93755391,IE 93755392,93765631,GB -93765632,93782015,SE +93765632,93774847,SE +93774848,93775871,NO +93775872,93782015,SE 93782016,93847551,GB 93847552,93880319,GE 93880320,93888511,IT @@ -969,8 +970,7 @@ 203625392,203625399,PR 203625400,203658287,US 203658288,203658303,VI -203658304,203658367,PR -203658368,203658415,US +203658304,203658415,US 203658416,203658423,VI 203658424,203658463,US 203658464,203658471,VI @@ -999,7 +999,9 @@ 204047456,204047463,US 204047464,204047471,VI 204047472,204047487,US -204047488,204047535,VI +204047488,204047511,VI +204047512,204047519,US +204047520,204047535,VI 204047536,204047543,PR 204047544,204047551,US 204047552,204047559,VI @@ -1009,12 +1011,7 @@ 204048000,204048031,US 204048032,204048047,PR 204048048,204048055,VI -204048056,204048063,US -204048064,204048071,VI -204048072,204048079,US -204048080,204048087,VI -204048088,204048111,US -204048112,204048127,VI +204048056,204048127,US 204048128,204048383,PR 204048384,204152831,US 204152832,204153855,PR @@ -1024,9 +1021,7 @@ 205953312,205953319,PR 205953320,205953327,US 205953328,205953351,PR -205953352,208651559,US -208651560,208651567,PR -208651568,208651639,US +205953352,208651639,US 208651640,208651647,PR 208651648,209783247,US 209783248,209783255,CA @@ -1159,7 +1154,8 @@ 214698016,214698023,US 214698024,214698031,PR 214698032,214698087,VI -214698088,214698103,PR +214698088,214698095,US +214698096,214698103,PR 214698104,214698111,US 214698112,214698135,VI 214698136,214698143,PR @@ -1178,8 +1174,8 @@ 214698368,214698383,US 214698384,214698639,PR 214698640,214698655,VI -214698656,214698919,PR -214698920,214698927,US +214698656,214698911,PR +214698912,214698927,US 214698928,214699231,PR 214699232,214699271,US 214699272,214699279,VI @@ -1194,20 +1190,17 @@ 214699488,214699519,US 214699520,214699647,PR 214699648,214699775,VI -214699776,214699783,PR -214699784,214699799,US +214699776,214699799,US 214699800,214699807,PR 214699808,214699839,US 214699840,214699847,PR -214699848,214699855,US -214699856,214699871,PR -214699872,214699879,US +214699848,214699879,US 214699880,214699895,PR 214699896,214699911,US 214699912,214699919,VI -214699920,214699927,PR -214699928,214699951,US -214699952,214699975,PR +214699920,214699951,US +214699952,214699959,PR +214699960,214699975,US 214699976,214699991,VI 214699992,214700015,US 214700016,214700023,PR @@ -1238,7 +1231,17 @@ 234883072,234884095,JP 234884096,234885119,CN 234885120,234889215,VN -234889216,234913791,KR +234889216,234893311,JP +234893312,234895359,KR +234895360,234895615,TW +234895616,234895935,MY +234895936,234896127,TH +234896128,234896383,MN +234896384,234896639,SA +234896640,234896895,AE +234896896,234897151,KR +234897152,234897407,TW +234897408,234913791,KR 234913792,234946559,HK 234946560,234947583,CN 234947584,234950655,JP @@ -1447,7 +1450,7 @@ 387804672,387804927,TW 387804928,387825663,US 387825664,387833855,CA -387833856,390594559,US +387833856,391118847,US 402653184,405012479,US 405012480,405143551,CA 405143552,405180415,US @@ -1636,7 +1639,9 @@ 436207616,452984831,US 452984832,452985855,JP 452985856,452986879,MY -452986880,452987903,SG +452986880,452987391,SG +452987392,452987647,BD +452987648,452987903,SG 452987904,452988927,VN 452988928,452993023,US 452993024,452997119,JP @@ -2971,7 +2976,9 @@ 624574464,624590847,NL 624590848,624658479,FR 624658480,624658483,DE -624658484,624661955,FR +624658484,624661787,FR +624661788,624661788,RO +624661789,624661955,FR 624661956,624661959,PL 624661960,624665587,FR 624665588,624665591,DE @@ -3924,7 +3931,8 @@ 693082112,693083135,NG 693083136,693086207,ZA 693086208,693087231,KE -693087232,693088255,ZA +693087232,693087999,ZA +693088000,693088255,NZ 693088256,693089279,NG 693089280,693090303,ZA 693090304,693091327,TZ @@ -4168,7 +4176,9 @@ 701464576,701472767,MU 701472768,701480959,TG 701480960,701489151,CI -701489152,701513727,ZA +701489152,701493247,ZA +701493248,701495295,TZ +701495296,701513727,ZA 701513728,701530111,LY 701530112,701546495,SN 701546496,701562879,ZA @@ -4334,7 +4344,7 @@ 702504960,702505983,MR 702505984,702507007,AO 702507008,702508031,CD -702508032,702509055,KE +702508032,702510079,KE 702510080,702511103,ZM 702511104,702512127,ZA 702512128,702513151,MZ @@ -5522,7 +5532,9 @@ 787054592,787070975,IT 787070976,787087359,RU 787087360,787095551,TR -787095552,787103743,EU +787095552,787099391,EU +787099392,787099647,CH +787099648,787103743,EU 787103744,787111935,HR 787111936,787120127,CZ 787120128,787128319,ES @@ -5922,12 +5934,16 @@ 838995968,838999039,US 838999040,838999295,CA 838999296,839000159,US -839000160,839000191,EG -839000192,839002399,US +839000160,839000223,EG +839000224,839002399,US 839002400,839002431,ID 839002432,839002463,EE 839002464,839002495,HK -839002496,839003775,US +839002496,839002527,US +839002528,839002559,EG +839002560,839002943,US +839002944,839002975,EG +839002976,839003775,US 839003776,839003839,EG 839003840,839005215,US 839005216,839005280,CA @@ -6115,7 +6131,9 @@ 889192448,897238054,DE 897238055,897238055,EU 897238056,905969663,DE -905969664,921174015,US +905969664,920911871,US +920911872,920977407,IE +920977408,921174015,US 921174016,921239551,BR 921239552,922091519,US 922091520,922189311,IE @@ -6124,7 +6142,8 @@ 922222592,922353663,JP 922353664,922419199,US 922419200,922484735,SG -922484736,956301311,US +922484736,922550271,AU +922550272,956301311,US 956301312,959447039,EU 959447040,959512575,US 959512576,960629507,EU @@ -6503,7 +6522,11 @@ 1024363776,1024364031,AU 1024364032,1024365055,JP 1024365056,1024365311,AP -1024365312,1024370687,JP +1024365312,1024365727,JP +1024365728,1024365759,SG +1024365760,1024367423,JP +1024367424,1024367487,PH +1024367488,1024370687,JP 1024370688,1024371199,PH 1024371200,1024375295,JP 1024375296,1024375807,AU @@ -6550,8 +6573,7 @@ 1026420736,1026422783,JP 1026422784,1026423295,AU 1026423296,1026423551,AP -1026423552,1026423807,BD -1026423808,1026424831,AU +1026423552,1026424831,AU 1026424832,1026490367,JP 1026490368,1026523135,TH 1026523136,1026539519,CN @@ -6571,7 +6593,9 @@ 1029570560,1029636095,ID 1029636096,1029668863,AU 1029668864,1029701631,IN -1029701632,1030750207,KR +1029701632,1030674431,KR +1030674432,1030676223,JP +1030676224,1030750207,KR 1030750208,1030946303,JP 1030946304,1030946559,AP 1030946560,1031415039,JP @@ -7302,7 +7326,9 @@ 1050332443,1050340607,DE 1050340608,1050340639,US 1050340640,1050470911,DE -1050470912,1050471167,GB +1050470912,1050471031,GB +1050471032,1050471039,DE +1050471040,1050471167,GB 1050471168,1050627327,DE 1050627328,1050627583,EU 1050627584,1050673151,DE @@ -7860,7 +7886,9 @@ 1066771304,1066771319,ME 1066771320,1066828279,US 1066828280,1066828287,IN -1066828288,1066830119,US +1066828288,1066830079,US +1066830080,1066830111,SG +1066830112,1066830119,US 1066830120,1066830127,SG 1066830128,1066830287,US 1066830288,1066830303,ML @@ -7872,7 +7900,9 @@ 1066830992,1066831007,JP 1066831008,1066831071,US 1066831072,1066831087,JP -1066831088,1067237887,US +1066831088,1066831199,US +1066831200,1066831231,JP +1066831232,1067237887,US 1067237888,1067238399,JP 1067238400,1067473471,US 1067473472,1067473535,CA @@ -8268,9 +8298,13 @@ 1071599393,1071599415,PH 1071599416,1071599477,US 1071599478,1071599490,PH -1071599491,1071954279,US +1071599491,1071954175,US +1071954176,1071954183,GB +1071954184,1071954279,US 1071954280,1071954287,FR -1071954288,1071954375,US +1071954288,1071954303,US +1071954304,1071954319,GB +1071954320,1071954375,US 1071954376,1071954383,NE 1071954384,1071985631,US 1071985632,1071985663,ML @@ -8282,7 +8316,9 @@ 1072383544,1072383551,ME 1072383552,1072512951,US 1072512952,1072512959,CA -1072512960,1072707327,US +1072512960,1072571831,US +1072571832,1072571839,CA +1072571840,1072707327,US 1072707328,1072707583,IN 1072707584,1072710327,US 1072710328,1072710335,DE @@ -8338,8 +8374,8 @@ 1072928128,1072928255,US 1072928256,1072928263,CA 1072928264,1072928287,US -1072928288,1072928383,CA -1072928384,1072928447,US +1072928288,1072928319,CA +1072928320,1072928447,US 1072928448,1072928767,CA 1072928768,1072929023,US 1072929024,1072929535,CA @@ -8353,11 +8389,12 @@ 1072931840,1072932607,CA 1072932608,1072932863,NG 1072932864,1072933119,US -1072933120,1072934399,CA +1072933120,1072933151,FR +1072933152,1072934399,CA 1072934400,1072934719,US 1072934720,1072934751,CA 1072934752,1072934775,US -1072934776,1072934783,CA +1072934776,1072934783,FR 1072934784,1072934847,AU 1072934848,1072934879,CA 1072934880,1072934911,TW @@ -8379,8 +8416,8 @@ 1072938496,1072938751,CA 1072938752,1072939007,US 1072939008,1072939263,CA -1072939264,1072939311,US -1072939312,1072939519,CA +1072939264,1072939327,US +1072939328,1072939519,CA 1072939520,1072940031,US 1072940032,1072942079,CA 1072942080,1072942111,US @@ -8516,7 +8553,8 @@ 1073425560,1073425567,CA 1073425568,1073426559,US 1073426560,1073426623,AU -1073426624,1073434799,US +1073426624,1073434783,US +1073434784,1073434799,CA 1073434800,1073434807,GB 1073434808,1073435583,US 1073435584,1073435647,CA @@ -8663,7 +8701,9 @@ 1075479608,1075479615,US 1075479616,1075482655,CA 1075482656,1075482671,US -1075482672,1075494911,CA +1075482672,1075482967,CA +1075482968,1075482975,US +1075482976,1075494911,CA 1075494912,1075513151,US 1075513152,1075513183,KW 1075513184,1075532663,US @@ -8814,7 +8854,9 @@ 1075997824,1075997919,US 1075997920,1075997935,CA 1075997936,1075997951,US -1075997952,1075998351,CA +1075997952,1075998103,CA +1075998104,1075998207,US +1075998208,1075998351,CA 1075998352,1075998431,US 1075998432,1075999231,CA 1075999232,1075999999,US @@ -8824,7 +8866,9 @@ 1076002048,1076002823,US 1076002824,1076002831,CA 1076002832,1076002879,US -1076002880,1076002975,CA +1076002880,1076002911,CA +1076002912,1076002943,US +1076002944,1076002975,CA 1076002976,1076003023,US 1076003024,1076003031,CA 1076003032,1076003039,US @@ -9058,14 +9102,10 @@ 1076186368,1076186751,US 1076186752,1076186783,CA 1076186784,1076186815,TW -1076186816,1076187391,US -1076187392,1076187647,CA -1076187648,1076187743,US +1076186816,1076187743,US 1076187744,1076187775,CA 1076187776,1076187807,AU -1076187808,1076187903,US -1076187904,1076188159,CA -1076188160,1076189183,US +1076187808,1076189183,US 1076189184,1076189215,VE 1076189216,1076189279,CA 1076189280,1076189311,US @@ -9076,8 +9116,7 @@ 1076190080,1076190143,IN 1076190144,1076190175,US 1076190176,1076190207,IN -1076190208,1076190463,CA -1076190464,1076190783,US +1076190208,1076190783,US 1076190784,1076190815,CA 1076190816,1076190847,IN 1076190848,1076190913,US @@ -9236,10 +9275,16 @@ 1076756480,1076772863,CA 1076772864,1076850687,US 1076850688,1076850943,CA -1076850944,1076880383,US +1076850944,1076851035,US +1076851036,1076851039,CA +1076851040,1076851169,US +1076851170,1076851175,CA +1076851176,1076851351,US +1076851352,1076851359,CA +1076851360,1076880383,US 1076880384,1076880639,CH -1076880640,1076880895,GB -1076880896,1076985855,US +1076880640,1076881023,GB +1076881024,1076985855,US 1076985856,1076991487,A2 1076991488,1076991743,US 1076991744,1077002239,A2 @@ -9501,9 +9546,7 @@ 1077937181,1077937184,SA 1077937185,1077937196,US 1077937197,1077937200,LK -1077937201,1077937204,US -1077937205,1077937208,AT -1077937209,1077937212,US +1077937201,1077937212,US 1077937213,1077937214,CA 1077937215,1077937222,US 1077937223,1077937226,CA @@ -9553,8 +9596,7 @@ 1077937515,1077937531,US 1077937532,1077937535,IN 1077937536,1077937539,ES -1077937540,1077937547,AT -1077937548,1077937571,US +1077937540,1077937571,US 1077937572,1077937575,CY 1077937576,1077937577,GB 1077937578,1077937597,US @@ -9917,7 +9959,8 @@ 1077965856,1077965863,CA 1077965864,1077965903,US 1077965904,1077965911,BB -1077965912,1077968831,US +1077965912,1077965919,CO +1077965920,1077968831,US 1077968832,1077968839,CA 1077968840,1077968847,DK 1077968848,1077977087,US @@ -10039,9 +10082,7 @@ 1078287072,1078287103,US 1078287104,1078287183,CA 1078287184,1078287231,US -1078287232,1078287239,CA -1078287240,1078287247,US -1078287248,1078287279,CA +1078287232,1078287279,CA 1078287280,1078287311,US 1078287312,1078287327,CA 1078287328,1078287343,US @@ -10461,8 +10502,8 @@ 1079404320,1079404351,CA 1079404352,1079404383,US 1079404384,1079404543,CA -1079404544,1079405055,US -1079405056,1079405407,CA +1079404544,1079405119,US +1079405120,1079405407,CA 1079405408,1079405439,BD 1079405440,1079405567,US 1079405568,1079407103,CA @@ -10748,7 +10789,9 @@ 1081369184,1081369215,CO 1081369216,1081369599,US 1081369600,1081370111,CO -1081370112,1081377119,US +1081370112,1081377071,US +1081377072,1081377079,VE +1081377080,1081377119,US 1081377120,1081377135,VE 1081377136,1081377183,US 1081377184,1081377191,VE @@ -10977,9 +11020,7 @@ 1081608576,1081608583,CA 1081608584,1081609823,US 1081609824,1081609831,LK -1081609832,1081609887,US -1081609888,1081609919,IN -1081609920,1081611415,US +1081609832,1081611415,US 1081611416,1081611423,IN 1081611424,1081611511,US 1081611512,1081611519,IN @@ -11008,9 +11049,7 @@ 1081618080,1081618095,ZA 1081618096,1081618951,US 1081618952,1081618959,GB -1081618960,1081619775,US -1081619776,1081619791,CA -1081619792,1081625671,US +1081618960,1081625671,US 1081625672,1081625679,CA 1081625680,1081625775,US 1081625776,1081625783,CA @@ -11102,19 +11141,33 @@ 1082350912,1082350943,RU 1082350944,1082351361,US 1082351362,1082351362,SA -1082351363,1082419455,US +1082351363,1082351487,US +1082351488,1082351615,AU +1082351616,1082419455,US 1082419456,1082419711,A2 1082419712,1082679807,US 1082683392,1082687487,CA 1082687488,1082786591,US 1082786592,1082786623,HK -1082786624,1082788447,US +1082786624,1082787923,US +1082787924,1082787927,AU +1082787928,1082788447,US 1082788448,1082788455,SG 1082788456,1082788767,US 1082788768,1082788799,SG -1082788800,1082790143,US +1082788800,1082788963,US +1082788964,1082788967,HK +1082788968,1082788991,US +1082788992,1082789119,HK +1082789120,1082790143,US 1082790144,1082790399,IN -1082790400,1082819839,US +1082790400,1082790951,US +1082790952,1082790959,AU +1082790960,1082791167,US +1082791168,1082791423,IN +1082791424,1082819711,US +1082819712,1082819715,IN +1082819716,1082819839,US 1082819840,1082820351,IN 1082820352,1082885855,US 1082885856,1082885887,CA @@ -11231,7 +11284,25 @@ 1085915136,1085923327,PR 1085923328,1085926765,US 1085926766,1085926766,US -1085926767,1085997055,US +1085926767,1085931647,US +1085931648,1085931775,SG +1085931776,1085931903,US +1085931904,1085932031,SG +1085932032,1085933439,US +1085933440,1085933567,SG +1085933568,1085933695,US +1085933696,1085933823,SG +1085933824,1085933951,US +1085933952,1085934079,SG +1085934080,1085934719,US +1085934720,1085934847,SG +1085934848,1085934975,US +1085934976,1085935103,SG +1085935104,1085935231,US +1085935232,1085935359,SG +1085935360,1085935743,US +1085935744,1085935871,SG +1085935872,1085997055,US 1085997056,1086013439,CA 1086013440,1086022079,US 1086022080,1086022111,CA @@ -11249,7 +11320,9 @@ 1086028664,1086028671,BR 1086028672,1086028751,US 1086028752,1086028759,BR -1086028760,1086309887,US +1086028760,1086042111,US +1086042112,1086046207,CA +1086046208,1086309887,US 1086309888,1086310143,AU 1086310144,1086317823,US 1086317824,1086318079,CA @@ -11451,9 +11524,7 @@ 1089153536,1089153791,US 1089153792,1089154847,US 1089154848,1089154855,VE -1089154856,1089154915,US -1089154916,1089154932,AU -1089154933,1089154968,US +1089154856,1089154968,US 1089154969,1089154977,IN 1089154978,1089155011,US 1089155012,1089155031,TR @@ -11527,8 +11598,7 @@ 1089282096,1089282099,CA 1089282100,1089282687,US 1089282688,1089282703,US -1089282704,1089282711,CA -1089282712,1089285439,US +1089282704,1089285439,US 1089285440,1089285455,US 1089285456,1089306623,US 1089306624,1089339391,PR @@ -12112,7 +12182,7 @@ 1097731448,1097731455,GB 1097731456,1097736191,CA 1097736192,1097768959,US -1097768960,1097777151,CA +1097768960,1097785343,CA 1097785344,1097830399,US 1097830400,1097834495,CA 1097834496,1097837197,US @@ -12143,7 +12213,9 @@ 1098398976,1098399231,A2 1098399232,1098399487,US 1098399488,1098399743,A2 -1098399744,1098891575,US +1098399744,1098812343,US +1098812344,1098812351,CA +1098812352,1098891575,US 1098891576,1098891607,AU 1098891608,1098891623,US 1098891624,1098891631,AU @@ -12327,9 +12399,7 @@ 1102016256,1102016287,AR 1102016288,1102016351,US 1102016352,1102016383,MY -1102016384,1102017087,US -1102017088,1102017119,DM -1102017120,1102018431,US +1102016384,1102018431,US 1102018432,1102018495,TZ 1102018496,1102019583,US 1102019584,1102019711,IN @@ -12510,9 +12580,19 @@ 1107808843,1107808846,PE 1107808847,1107808877,US 1107808878,1107808881,PE -1107808882,1107809850,US +1107808882,1107809392,US +1107809393,1107809393,QA +1107809394,1107809394,US +1107809395,1107809396,QA +1107809397,1107809418,US +1107809419,1107809419,QA +1107809420,1107809850,US 1107809851,1107809851,CA -1107809852,1107820543,US +1107809852,1107810392,US +1107810393,1107810396,IN +1107810397,1107812031,US +1107812032,1107812095,CA +1107812096,1107820543,US 1107820544,1107853311,ZA 1107853312,1107895039,US 1107895040,1107895807,GB @@ -12542,7 +12622,9 @@ 1108025344,1108029439,CA 1108029440,1108033535,US 1108033536,1108041727,CA -1108041728,1108054015,US +1108041728,1108047295,US +1108047296,1108047327,MX +1108047328,1108054015,US 1108054016,1108054303,CA 1108054304,1108054311,US 1108054312,1108054527,CA @@ -12551,7 +12633,9 @@ 1108054688,1108054695,US 1108054696,1108054751,CA 1108054752,1108054767,US -1108054768,1108055263,CA +1108054768,1108055071,CA +1108055072,1108055103,US +1108055104,1108055263,CA 1108055264,1108055279,US 1108055280,1108055399,CA 1108055400,1108055407,US @@ -12584,7 +12668,9 @@ 1108056736,1108056783,CA 1108056784,1108056791,CR 1108056792,1108056799,GB -1108056800,1108057071,CA +1108056800,1108056935,CA +1108056936,1108056943,GB +1108056944,1108057071,CA 1108057072,1108057079,NL 1108057080,1108057087,US 1108057088,1108057135,CA @@ -12866,7 +12952,9 @@ 1110683432,1110683647,CA 1110683648,1110700031,US 1110700032,1110704127,CA -1110704128,1110855679,US +1110704128,1110852863,US +1110852864,1110853119,A2 +1110853120,1110855679,US 1110855680,1110856703,CN 1110856704,1110857727,IN 1110857728,1110858751,SG @@ -13047,8 +13135,8 @@ 1114681344,1114685439,CA 1114685440,1114730495,US 1114730496,1114734591,CA -1114734592,1114875391,US -1114875392,1114876159,CA +1114734592,1114875647,US +1114875648,1114876159,CA 1114876160,1114876447,US 1114876448,1114876463,CA 1114876464,1114876479,AD @@ -13057,7 +13145,7 @@ 1114876544,1114876575,GB 1114876576,1114876911,US 1114876912,1114876927,AD -1114876928,1114877183,CA +1114876928,1114877183,US 1114877184,1114877439,CY 1114877440,1114877695,US 1114877696,1114877759,SK @@ -13085,9 +13173,7 @@ 1114929072,1114929087,RU 1114929088,1114930175,US 1114930176,1114930303,GB -1114930304,1114966815,US -1114966816,1114966831,GB -1114966832,1114967311,US +1114930304,1114967311,US 1114967312,1114967327,GB 1114967328,1115104511,US 1115104512,1115104639,CA @@ -13434,9 +13520,7 @@ 1118793824,1118793839,CA 1118793840,1118793871,US 1118793872,1118793887,DO -1118793888,1118793935,US -1118793936,1118793951,ES -1118793952,1118793967,US +1118793888,1118793967,US 1118793968,1118793983,HT 1118793984,1118794127,US 1118794128,1118794143,NO @@ -13478,7 +13562,9 @@ 1118965992,1118966007,NG 1118966008,1118966015,A2 1118966016,1118966271,BR -1118966272,1118966351,SV +1118966272,1118966327,SV +1118966328,1118966335,SR +1118966336,1118966351,SV 1118966352,1118966367,A2 1118966368,1118966399,SV 1118966400,1118966407,A2 @@ -13693,7 +13779,9 @@ 1118978528,1118979071,A2 1118979072,1118979087,SA 1118979088,1118979199,A2 -1118979200,1118979295,SA +1118979200,1118979239,SA +1118979240,1118979263,A2 +1118979264,1118979295,SA 1118979296,1118979327,LB 1118979328,1118979343,SA 1118979344,1118979455,A2 @@ -14189,10 +14277,11 @@ 1120489344,1120489471,US 1120489472,1120489727,CA 1120489728,1120489983,US -1120489984,1120490751,CA +1120489984,1120490239,CA +1120490240,1120490751,US 1120490752,1120490783,GB -1120490784,1120491007,US -1120491008,1120491775,CA +1120490784,1120491263,US +1120491264,1120491775,CA 1120491776,1120492415,US 1120492416,1120492543,FR 1120492544,1120493055,CA @@ -14271,8 +14360,7 @@ 1120846432,1120846463,CA 1120846464,1120854015,US 1120854016,1120862207,CA -1120862208,1120870399,US -1120874496,1120875007,US +1120862208,1120875007,US 1120875008,1120875263,AS 1120875264,1120876287,US 1120876288,1120876543,A2 @@ -14500,7 +14588,9 @@ 1121714999,1121714999,KW 1121715000,1121715935,US 1121715936,1121715943,US -1121715944,1121878015,US +1121715944,1121716095,US +1121716096,1121716223,AI +1121716224,1121878015,US 1121878016,1121910783,CA 1121910784,1122074623,US 1122074624,1122087935,CA @@ -14604,7 +14694,52 @@ 1123589632,1123589887,DE 1123589888,1123590143,US 1123590144,1123598335,VI -1123598336,1123651583,US +1123598336,1123598495,CA +1123598496,1123598559,US +1123598560,1123598943,CA +1123598944,1123598975,US +1123598976,1123599551,CA +1123599552,1123599631,US +1123599632,1123599743,CA +1123599744,1123599775,US +1123599776,1123599983,CA +1123599984,1123599999,US +1123600000,1123600431,CA +1123600432,1123600447,US +1123600448,1123600479,CA +1123600480,1123600495,US +1123600496,1123601023,CA +1123601024,1123601087,US +1123601088,1123601343,CA +1123601344,1123601375,US +1123601376,1123602047,CA +1123602048,1123602079,US +1123602080,1123602303,CA +1123602304,1123602367,US +1123602368,1123602527,CA +1123602528,1123602559,US +1123602560,1123602751,CA +1123602752,1123602815,US +1123602816,1123603279,CA +1123603280,1123603295,US +1123603296,1123603375,CA +1123603376,1123603391,US +1123603392,1123603679,CA +1123603680,1123603711,US +1123603712,1123603967,CA +1123603968,1123604031,US +1123604032,1123604191,CA +1123604192,1123604223,US +1123604224,1123604639,CA +1123604640,1123604671,US +1123604672,1123604703,CA +1123604704,1123604799,US +1123604800,1123604863,CA +1123604864,1123604895,US +1123604896,1123605727,CA +1123605728,1123605759,US +1123605760,1123606527,CA +1123606528,1123651583,US 1123651584,1123651839,JM 1123651840,1123652095,BB 1123652096,1123652351,AI @@ -14883,9 +15018,7 @@ 1125474304,1125478399,CA 1125478400,1125481215,US 1125481216,1125481727,CA -1125481728,1125493127,US -1125493128,1125493135,CA -1125493136,1125498879,US +1125481728,1125498879,US 1125498880,1125508095,CA 1125508096,1125508351,PA 1125508352,1125514239,CA @@ -14944,9 +15077,13 @@ 1125542448,1125542463,US 1125542464,1125542503,CA 1125542504,1125542543,US -1125542544,1125543199,CA +1125542544,1125542607,CA +1125542608,1125542615,US +1125542616,1125543199,CA 1125543200,1125543215,US -1125543216,1125543687,CA +1125543216,1125543231,CA +1125543232,1125543247,US +1125543248,1125543687,CA 1125543688,1125543695,US 1125543696,1125543887,CA 1125543888,1125543903,US @@ -15134,12 +15271,14 @@ 1137278976,1137283071,CA 1137283072,1137287167,US 1137287168,1137295359,CA -1137295360,1137329663,US -1137329664,1137329919,CA -1137329920,1137341063,US +1137295360,1137340927,US +1137340928,1137340959,PL +1137340960,1137341063,US 1137341064,1137341064,GB 1137341065,1137369087,US -1137369088,1137369183,CA +1137369088,1137369167,CA +1137369168,1137369175,US +1137369176,1137369183,CA 1137369184,1137369223,US 1137369224,1137369359,CA 1137369360,1137369375,US @@ -15151,9 +15290,7 @@ 1137376336,1137376351,US 1137376352,1137376367,CA 1137376368,1137376383,US -1137376384,1137376463,CA -1137376464,1137376479,US -1137376480,1137376543,CA +1137376384,1137376543,CA 1137376544,1137376575,US 1137376576,1137376591,CA 1137376592,1137376623,US @@ -15347,15 +15484,15 @@ 1137724848,1137724863,CA 1137724864,1137724911,US 1137724912,1137724927,CA -1137724928,1137758207,US +1137724928,1137726015,US +1137726016,1137726023,CL +1137726024,1137758207,US 1137758208,1137758463,GB 1137758464,1137758495,US 1137758496,1137758527,AU 1137758528,1137758671,US 1137758672,1137758687,CH -1137758688,1137785855,US -1137785856,1137786111,HU -1137786112,1137795071,US +1137758688,1137795071,US 1137795072,1137799167,A2 1137799168,1137840127,US 1137840128,1137840383,CA @@ -15363,7 +15500,9 @@ 1137842432,1137842559,IN 1137842560,1137843711,US 1137843712,1137843775,NO -1137843776,1137868799,US +1137843776,1137843991,US +1137843992,1137843999,IN +1137844000,1137868799,US 1137868800,1137872895,CA 1137872896,1137876991,US 1137876992,1137881087,CA @@ -15372,7 +15511,9 @@ 1137893376,1137917951,US 1137917952,1137922047,CA 1137922048,1137926143,US -1137926144,1137927519,CA +1137926144,1137926655,CA +1137926656,1137926911,AW +1137926912,1137927519,CA 1137927520,1137927527,AG 1137927528,1137927679,CA 1137927680,1137927807,CR @@ -15410,7 +15551,11 @@ 1138049024,1138053631,CA 1138053632,1138053887,US 1138053888,1138061311,CA -1138061312,1138163711,US +1138061312,1138069503,US +1138069504,1138069567,JM +1138069568,1138070015,US +1138070016,1138073599,JM +1138073600,1138163711,US 1138163712,1138163967,CA 1138163968,1138163975,MA 1138163976,1138163991,CA @@ -15429,9 +15574,7 @@ 1138164256,1138164263,LB 1138164264,1138164271,FR 1138164272,1138164279,PH -1138164280,1138164327,CA -1138164328,1138164335,PA -1138164336,1138164367,CA +1138164280,1138164367,CA 1138164368,1138164375,PH 1138164376,1138164399,FR 1138164400,1138164511,CA @@ -15440,9 +15583,7 @@ 1138164584,1138164591,NZ 1138164592,1138164655,CA 1138164656,1138164663,MA -1138164664,1138164815,CA -1138164816,1138164823,US -1138164824,1138164831,CA +1138164664,1138164831,CA 1138164832,1138164839,PH 1138164840,1138164863,CA 1138164864,1138164991,US @@ -15450,9 +15591,7 @@ 1138165312,1138165319,US 1138165320,1138165431,CA 1138165432,1138165439,LB -1138165440,1138165487,CA -1138165488,1138165503,SK -1138165504,1138165807,CA +1138165440,1138165807,CA 1138165808,1138165815,FR 1138165816,1138165823,CH 1138165824,1138165895,CA @@ -15567,7 +15706,8 @@ 1138655590,1138655601,US 1138655602,1138655609,EG 1138655610,1138655617,MX -1138655618,1138655629,US +1138655618,1138655621,US +1138655622,1138655629,MX 1138655630,1138655637,EG 1138655638,1138655695,US 1138655696,1138655703,MX @@ -15602,7 +15742,9 @@ 1138656866,1138656873,LK 1138656874,1138656909,US 1138656910,1138656917,IN -1138656918,1138656997,US +1138656918,1138656981,US +1138656982,1138656989,EG +1138656990,1138656997,US 1138656998,1138657005,EG 1138657006,1138657051,US 1138657052,1138657059,EG @@ -15634,15 +15776,15 @@ 1138657606,1138657613,LK 1138657614,1138657662,US 1138657663,1138657670,EG -1138657671,1138657732,US -1138657733,1138657740,VE -1138657741,1138657748,US +1138657671,1138657748,US 1138657749,1138657780,GB 1138657781,1138658131,US 1138658132,1138658163,EG 1138658164,1138658171,US 1138658172,1138658179,EG -1138658180,1138658431,US +1138658180,1138658270,US +1138658271,1138658278,IN +1138658279,1138658431,US 1138658432,1138658496,PK 1138658497,1138659081,US 1138659082,1138659207,ES @@ -15664,7 +15806,7 @@ 1138659634,1138659642,US 1138659643,1138659650,ID 1138659651,1138659697,US -1138659698,1138659705,ID +1138659698,1138659705,LK 1138659706,1138659723,US 1138659724,1138659731,ID 1138659732,1138659753,US @@ -15689,9 +15831,7 @@ 1138660178,1138660185,ID 1138660186,1138660193,US 1138660194,1138660201,EG -1138660202,1138660217,US -1138660218,1138660225,IN -1138660226,1138660277,US +1138660202,1138660277,US 1138660278,1138660285,EG 1138660286,1138660311,US 1138660312,1138660333,GB @@ -15720,7 +15860,13 @@ 1138661056,1138661063,EG 1138661064,1138661129,US 1138661130,1138661137,AE -1138661138,1138661457,US +1138661138,1138661189,US +1138661190,1138661193,LK +1138661194,1138661195,US +1138661196,1138661197,LK +1138661198,1138661385,US +1138661386,1138661393,EG +1138661394,1138661457,US 1138661458,1138661465,LK 1138661466,1138661473,US 1138661474,1138661481,AE @@ -15736,7 +15882,9 @@ 1138661730,1138661737,ID 1138661738,1138661769,US 1138661770,1138661777,MA -1138661778,1138661821,US +1138661778,1138661785,US +1138661786,1138661801,EG +1138661802,1138661821,US 1138661822,1138661829,MA 1138661830,1138661969,US 1138661970,1138661977,EG @@ -15745,12 +15893,11 @@ 1138662018,1138662273,US 1138662274,1138662309,EG 1138662310,1138662333,US -1138662334,1138662353,GB -1138662354,1138662369,US +1138662334,1138662349,EG +1138662350,1138662369,US 1138662370,1138662395,GB 1138662396,1138662481,US -1138662482,1138662489,EG -1138662490,1138662497,US +1138662482,1138662497,EG 1138662498,1138662505,LK 1138662506,1138662537,US 1138662538,1138662545,EG @@ -15760,7 +15907,9 @@ 1138662624,1138662639,GB 1138662640,1138662640,US 1138662641,1138662648,EG -1138662649,1138663021,US +1138662649,1138662942,US +1138662943,1138663006,CN +1138663007,1138663021,US 1138663022,1138663166,GB 1138663167,1138712575,US 1138712576,1138714071,CA @@ -15810,7 +15959,9 @@ 1139265536,1139269631,CA 1139269632,1139274495,US 1139274496,1139274751,US -1139274752,1145089791,US +1139274752,1145054991,US +1145054992,1145055007,FI +1145055008,1145089791,US 1145089792,1145090047,JP 1145090048,1145188351,US 1145188352,1145192447,CA @@ -15853,9 +16004,7 @@ 1145334176,1145334223,CN 1145334224,1145334231,US 1145334232,1145334239,CN -1145334240,1145334527,US -1145334528,1145335039,US -1145335040,1145335103,US +1145334240,1145335103,US 1145335104,1145335135,NL 1145335136,1145335167,US 1145335168,1145335183,CN @@ -15906,11 +16055,13 @@ 1151890016,1151890079,CA 1151890080,1151890087,GB 1151890088,1151890095,CA -1151890096,1151890127,GB -1151890128,1151897599,CA -1151897600,1151914495,US -1151914496,1151914751,NL -1151914752,1151943680,US +1151890096,1151890111,GB +1151890112,1151890119,CA +1151890120,1151890127,GB +1151890128,1151890143,CA +1151890144,1151890151,SC +1151890152,1151897599,CA +1151897600,1151943680,US 1151943681,1151943808,GB 1151943809,1151943871,NL 1151943872,1151943935,CA @@ -16041,16 +16192,10 @@ 1158294720,1158294751,GB 1158294752,1158295807,US 1158295808,1158296063,GB -1158296064,1158297343,US -1158297344,1158297599,NL -1158297600,1158316031,US +1158296064,1158316031,US 1158316032,1158318847,CA 1158318848,1158319103,CA -1158319104,1158322671,CA -1158322672,1158322687,SY -1158322688,1158323535,CA -1158323536,1158323551,SY -1158323552,1158323695,CA +1158319104,1158323695,CA 1158323696,1158323711,SY 1158323712,1158324223,CA 1158324224,1158340607,US @@ -16167,7 +16312,9 @@ 1158736250,1158774783,US 1158774784,1158776947,CA 1158776948,1158776951,US -1158776952,1158784703,CA +1158776952,1158784367,CA +1158784368,1158784375,US +1158784376,1158784703,CA 1158784704,1158784767,US 1158784768,1158791167,CA 1158791168,1158794239,BM @@ -16358,9 +16505,7 @@ 1159694592,1159694847,CA 1159694848,1159700479,US 1159700480,1159725055,CA -1159725056,1159988735,US -1159988736,1159988991,MX -1159988992,1159995647,US +1159725056,1159995647,US 1159995648,1159995655,AU 1159995656,1159996063,US 1159996064,1159996079,GB @@ -16656,11 +16801,17 @@ 1160938880,1160938887,NL 1160938888,1160941463,US 1160941464,1160941471,RU -1160941472,1160941535,US +1160941472,1160941503,US +1160941504,1160941511,CA +1160941512,1160941535,US 1160941536,1160941567,CA 1160941568,1160945663,US 1160945664,1160953855,CA -1160953856,1161019391,US +1160953856,1160956431,US +1160956432,1160956440,BY +1160956441,1160957738,US +1160957739,1160957752,CA +1160957753,1161019391,US 1161019392,1161035775,CA 1161035776,1161052671,US 1161052672,1161052927,GB @@ -16743,8 +16894,8 @@ 1161430104,1161430111,MY 1161430112,1161430127,CA 1161430128,1161430135,US -1161430136,1161430143,CA -1161430144,1161430215,US +1161430136,1161430207,CA +1161430208,1161430215,US 1161430216,1161430231,CA 1161430232,1161430239,TR 1161430240,1161430255,CA @@ -16807,8 +16958,7 @@ 1161586688,1161586943,PA 1161586944,1161617407,US 1161617408,1161625599,CA -1161625600,1161627663,US -1161627664,1161627671,PL +1161625600,1161627671,US 1161627672,1161627679,BR 1161627680,1161627687,US 1161627688,1161627695,HR @@ -16825,8 +16975,9 @@ 1161627840,1161627847,AR 1161627848,1161627855,US 1161627856,1161627863,AR -1161627864,1161627871,CA -1161627872,1161628455,US +1161627864,1161627871,US +1161627872,1161627879,BG +1161627880,1161628455,US 1161628456,1161628463,GB 1161628464,1161628527,US 1161628528,1161628535,BR @@ -16846,8 +16997,7 @@ 1161629376,1161629383,CA 1161629384,1161629391,AR 1161629392,1161629399,GB -1161629400,1161629407,IL -1161629408,1161629431,US +1161629400,1161629431,US 1161629432,1161629439,MY 1161629440,1161629503,US 1161629504,1161629511,PL @@ -16878,7 +17028,7 @@ 1161629856,1161629863,AR 1161629864,1161629887,US 1161629888,1161629903,CY -1161629904,1161629911,PL +1161629904,1161629911,AR 1161629912,1161629919,US 1161629920,1161629935,GB 1161629936,1161629943,ES @@ -16974,12 +17124,9 @@ 1161633584,1161633591,HR 1161633592,1161633615,US 1161633616,1161633623,IL -1161633624,1161633631,US -1161633632,1161633639,CA -1161633640,1161634079,US +1161633624,1161634079,US 1161634080,1161634087,AF -1161634088,1161634127,US -1161634128,1161634135,AR +1161634088,1161634135,US 1161634136,1161634143,PH 1161634144,1161634175,AR 1161634176,1161634191,PL @@ -16998,16 +17145,13 @@ 1161634504,1161634519,US 1161634520,1161634527,BG 1161634528,1161634543,GB -1161634544,1161634551,PL -1161634552,1161634559,US +1161634544,1161634559,US 1161634560,1161634815,IN 1161634816,1161634911,US 1161634912,1161634927,GB 1161634928,1161635007,US 1161635008,1161635071,KW -1161635072,1161635847,US -1161635848,1161635855,PL -1161635856,1161635871,US +1161635072,1161635871,US 1161635872,1161635887,PL 1161635888,1161635903,AU 1161635904,1161635967,US @@ -17019,19 +17163,16 @@ 1161636224,1161636255,GB 1161636256,1161636287,US 1161636288,1161636311,PL -1161636312,1161636319,US -1161636320,1161636343,PL -1161636344,1161636351,US -1161636352,1161636359,PL -1161636360,1161636367,US -1161636368,1161636383,PL -1161636384,1161636415,US +1161636312,1161636335,US +1161636336,1161636343,PL +1161636344,1161636415,US 1161636416,1161636447,GB -1161636448,1161636479,US +1161636448,1161636455,US +1161636456,1161636463,PL +1161636464,1161636479,US 1161636480,1161636495,GB 1161636496,1161636503,CA -1161636504,1161636543,US -1161636544,1161636575,AU +1161636504,1161636575,US 1161636576,1161636583,PL 1161636584,1161636591,IN 1161636592,1161636607,US @@ -17042,7 +17183,8 @@ 1161637144,1161637159,US 1161637160,1161637167,NZ 1161637168,1161637175,GB -1161637176,1161637199,US +1161637176,1161637183,PL +1161637184,1161637199,US 1161637200,1161637207,GB 1161637208,1161637215,US 1161637216,1161637223,PL @@ -17204,7 +17346,8 @@ 1161658136,1161658143,AR 1161658144,1161658151,SI 1161658152,1161658159,AR -1161658160,1161658239,US +1161658160,1161658175,GB +1161658176,1161658239,US 1161658240,1161658271,AF 1161658272,1161764863,US 1161764864,1161773055,CA @@ -17249,9 +17392,13 @@ 1161830450,1161830450,HR 1161830451,1161830465,US 1161830466,1161830466,BR -1161830467,1161830479,US +1161830467,1161830471,US +1161830472,1161830472,GB +1161830473,1161830479,US 1161830480,1161830480,BY -1161830481,1161830497,US +1161830481,1161830493,US +1161830494,1161830494,PK +1161830495,1161830497,US 1161830498,1161830498,VN 1161830499,1161830554,US 1161830555,1161830555,BR @@ -17262,7 +17409,7 @@ 1161830615,1161830620,US 1161830621,1161830621,CA 1161830622,1161830639,US -1161830640,1161830640,UA +1161830640,1161830640,BR 1161830641,1161830662,US 1161830663,1161830664,BR 1161830665,1161830683,US @@ -17309,7 +17456,9 @@ 1161830853,1161830853,CO 1161830854,1161830866,US 1161830867,1161830867,VN -1161830868,1161830893,US +1161830868,1161830881,US +1161830882,1161830882,CA +1161830883,1161830893,US 1161830894,1161830894,BE 1161830895,1161830895,BR 1161830896,1161830928,US @@ -17326,7 +17475,9 @@ 1161831053,1161831053,MX 1161831054,1161831059,US 1161831060,1161831060,BR -1161831061,1161831128,US +1161831061,1161831123,US +1161831124,1161831124,BR +1161831125,1161831128,US 1161831129,1161831129,CN 1161831130,1161831136,US 1161831137,1161831139,PK @@ -17338,15 +17489,14 @@ 1161831188,1161831189,CA 1161831190,1161831190,US 1161831191,1161831191,CA -1161831192,1161831201,US -1161831202,1161831202,IR -1161831203,1161831204,US +1161831192,1161831204,US 1161831205,1161831205,BR 1161831206,1161831236,US 1161831237,1161831237,MX 1161831238,1161831241,US 1161831242,1161831247,CO -1161831248,1161831261,US +1161831248,1161831259,US +1161831260,1161831261,GE 1161831262,1161831262,MX 1161831263,1161831263,US 1161831264,1161831264,TH @@ -17361,12 +17511,16 @@ 1161831277,1161831277,IN 1161831278,1161831278,RU 1161831279,1161831281,DE -1161831282,1161831282,FR +1161831282,1161831282,GE 1161831283,1161831283,BR -1161831284,1161831286,US +1161831284,1161831285,US +1161831286,1161831286,DE 1161831287,1161831287,BR -1161831288,1161831300,US -1161831301,1161831302,CA +1161831288,1161831288,US +1161831289,1161831289,UY +1161831290,1161831290,BR +1161831291,1161831299,US +1161831300,1161831302,CA 1161831303,1161831303,US 1161831304,1161831304,CA 1161831305,1161831306,US @@ -17379,40 +17533,60 @@ 1161831327,1161831327,PK 1161831328,1161831328,DE 1161831329,1161831329,US -1161831330,1161831330,TR +1161831330,1161831330,CA 1161831331,1161831331,EC 1161831332,1161831334,US -1161831335,1161831335,IR +1161831335,1161831335,CA 1161831336,1161831338,US 1161831339,1161831340,MX 1161831341,1161831341,US 1161831342,1161831342,MX 1161831343,1161831343,BR -1161831344,1161831369,US -1161831370,1161831371,BR -1161831372,1161831384,US +1161831344,1161831346,US +1161831347,1161831347,CA +1161831348,1161831365,US +1161831366,1161831366,PK +1161831367,1161831368,US +1161831369,1161831369,PK +1161831370,1161831370,BR +1161831371,1161831371,HU +1161831372,1161831375,US +1161831376,1161831377,BR +1161831378,1161831378,BD +1161831379,1161831380,PK +1161831381,1161831382,US +1161831383,1161831384,CO 1161831385,1161831385,UA -1161831386,1161831392,US +1161831386,1161831389,US +1161831390,1161831390,CA +1161831391,1161831391,US +1161831392,1161831392,CA 1161831393,1161831395,CO 1161831396,1161831397,US 1161831398,1161831399,SG -1161831400,1161831402,ID +1161831400,1161831400,BR +1161831401,1161831401,ID +1161831402,1161831402,AE 1161831403,1161831404,US -1161831405,1161831406,DE +1161831405,1161831406,AE 1161831407,1161831410,US -1161831411,1161831411,IN +1161831411,1161831411,SI 1161831412,1161831412,US 1161831413,1161831413,CO 1161831414,1161831415,US 1161831416,1161831416,JP -1161831417,1161831464,US +1161831417,1161831458,US +1161831459,1161831459,CO +1161831460,1161831464,US 1161831465,1161831465,BR 1161831466,1161831478,US 1161831479,1161831480,BR 1161831481,1161831481,JP 1161831482,1161831486,US 1161831487,1161831487,DO -1161831488,1161831507,US +1161831488,1161831503,US +1161831504,1161831504,RU +1161831505,1161831507,US 1161831508,1161831508,BR 1161831509,1161831511,US 1161831512,1161831512,BR @@ -17420,7 +17594,13 @@ 1161831517,1161831517,CO 1161831518,1161831541,US 1161831542,1161831542,LV -1161831543,1161831632,US +1161831543,1161831545,US +1161831546,1161831546,BR +1161831547,1161831588,US +1161831589,1161831589,CA +1161831590,1161831595,US +1161831596,1161831596,UA +1161831597,1161831632,US 1161831633,1161831633,TH 1161831634,1161831634,CA 1161831635,1161831701,US @@ -17506,9 +17686,7 @@ 1161832509,1161832509,MX 1161832510,1161832510,MD 1161832511,1161832516,US -1161832517,1161832518,BR -1161832519,1161832524,CA -1161832525,1161832530,BR +1161832517,1161832530,BR 1161832531,1161832531,US 1161832532,1161832536,BR 1161832537,1161832537,US @@ -17525,7 +17703,7 @@ 1161832555,1161832555,US 1161832556,1161832556,BR 1161832557,1161832558,IN -1161832559,1161832559,CA +1161832559,1161832559,BR 1161832560,1161832562,US 1161832563,1161832563,BR 1161832564,1161832565,US @@ -17551,11 +17729,17 @@ 1161832623,1161832623,CA 1161832624,1161832625,US 1161832626,1161832632,CA -1161832633,1161832770,US +1161832633,1161832735,US +1161832736,1161832738,AR +1161832739,1161832739,US +1161832740,1161832767,AR +1161832768,1161832770,US 1161832771,1161832782,BR 1161832783,1161832799,US 1161832800,1161832831,BR -1161832832,1161832927,US +1161832832,1161832895,US +1161832896,1161832901,AR +1161832902,1161832927,IN 1161832928,1161832959,LT 1161832960,1161832969,US 1161832970,1161832970,TR @@ -17612,12 +17796,16 @@ 1161833965,1161833965,IL 1161833966,1161833967,US 1161833968,1161833975,DE -1161833976,1161835930,US +1161833976,1161835878,US +1161835879,1161835879,BR +1161835880,1161835930,US 1161835931,1161835931,BR 1161835932,1161835941,US 1161835942,1161835947,PK 1161835948,1161835952,US -1161835953,1161835956,PK +1161835953,1161835954,PK +1161835955,1161835955,US +1161835956,1161835956,PK 1161835957,1161835957,US 1161835958,1161835962,PK 1161835963,1161835969,US @@ -17658,15 +17846,11 @@ 1161837827,1161837854,US 1161837855,1161837856,BR 1161837857,1161837858,US -1161837859,1161837860,BR -1161837861,1161837876,CA -1161837877,1161837879,BR -1161837880,1161837889,CA +1161837859,1161837889,BR 1161837890,1161837890,US -1161837891,1161837894,CA +1161837891,1161837894,BR 1161837895,1161837895,US -1161837896,1161837898,CA -1161837899,1161837900,BR +1161837896,1161837900,BR 1161837901,1161837901,US 1161837902,1161837906,BR 1161837907,1161837907,US @@ -17687,8 +17871,8 @@ 1161837972,1161837974,US 1161837975,1161837975,CA 1161837976,1161837976,BR -1161837977,1161837994,US -1161837995,1161838000,BR +1161837977,1161837993,US +1161837994,1161838000,BR 1161838001,1161838001,NL 1161838002,1161838031,BR 1161838032,1161838038,US @@ -17705,7 +17889,7 @@ 1161838359,1161838359,AR 1161838360,1161838435,US 1161838436,1161838436,SG -1161838437,1161838437,IR +1161838437,1161838437,BR 1161838438,1161838441,US 1161838442,1161838442,BR 1161838443,1161838452,US @@ -17721,7 +17905,9 @@ 1161838477,1161838477,BR 1161838478,1161838480,US 1161838481,1161838481,CA -1161838482,1161838505,US +1161838482,1161838484,US +1161838485,1161838485,IN +1161838486,1161838505,US 1161838506,1161838506,CA 1161838507,1161838511,US 1161838512,1161838514,AU @@ -17806,7 +17992,9 @@ 1162204971,1162204972,US 1162204973,1162215423,US 1162215424,1162280959,CA -1162280960,1162296407,US +1162280960,1162295343,US +1162295344,1162295351,GB +1162295352,1162296407,US 1162296408,1162296415,CA 1162296416,1162297343,US 1162297344,1162305535,CA @@ -18067,8 +18255,8 @@ 1163540608,1163540735,US 1163540736,1163541503,CA 1163541504,1163542015,US -1163542016,1163542791,CA -1163542792,1163542855,US +1163542016,1163542799,CA +1163542800,1163542855,US 1163542856,1163542919,CA 1163542920,1163542927,US 1163542928,1163543687,CA @@ -18294,9 +18482,7 @@ 1167322696,1167322703,IN 1167322704,1167323543,US 1167323544,1167323551,CA -1167323552,1167323823,US -1167323824,1167323831,IN -1167323832,1167324287,US +1167323552,1167324287,US 1167324288,1167324295,GB 1167324296,1167324311,US 1167324312,1167324319,CA @@ -18306,23 +18492,11 @@ 1167325936,1167325951,CA 1167325952,1167326231,US 1167326232,1167326239,CA -1167326240,1167326271,IN -1167326272,1167326303,US -1167326304,1167326335,IN +1167326240,1167326335,US 1167326336,1167326367,SI -1167326368,1167326399,US -1167326400,1167326431,IN -1167326432,1167326439,US -1167326440,1167326447,IN -1167326448,1167326983,US -1167326984,1167326991,IN -1167326992,1167327031,US +1167326368,1167327031,US 1167327032,1167327039,GB -1167327040,1167327111,US -1167327112,1167327119,IN -1167327120,1167327207,US -1167327208,1167327215,IN -1167327216,1167693199,US +1167327040,1167693199,US 1167693200,1167693215,UA 1167693216,1167851519,US 1167851520,1168113663,CA @@ -18337,7 +18511,9 @@ 1168318976,1168321535,US 1168321536,1168321791,CA 1168321792,1168393215,US -1168393216,1168394495,CA +1168393216,1168393591,CA +1168393592,1168393599,US +1168393600,1168394495,CA 1168394496,1168394511,US 1168394512,1168394751,CA 1168394752,1168420863,US @@ -18790,7 +18966,9 @@ 1208122048,1208122063,CA 1208122064,1208301455,US 1208301456,1208301471,CA -1208301472,1208333567,US +1208301472,1208324991,US +1208324992,1208325119,CA +1208325120,1208333567,US 1208333568,1208333823,GB 1208333824,1208337919,US 1208337920,1208338175,A2 @@ -18827,7 +19005,9 @@ 1208587088,1208587095,LK 1208587096,1208587169,US 1208587170,1208587177,MX -1208587178,1208587321,US +1208587178,1208587221,US +1208587222,1208587229,LK +1208587230,1208587321,US 1208587322,1208587329,GB 1208587330,1208587333,US 1208587334,1208587341,CA @@ -18841,8 +19021,7 @@ 1208587435,1208587450,US 1208587451,1208587458,LK 1208587459,1208587479,US -1208587480,1208587487,LK -1208587488,1208587488,US +1208587480,1208587488,LK 1208587489,1208587504,GB 1208587505,1208587629,US 1208587630,1208587637,MA @@ -18853,7 +19032,7 @@ 1208587714,1208587728,US 1208587729,1208587736,CA 1208587737,1208587765,US -1208587766,1208587773,VE +1208587766,1208587773,LK 1208587774,1208588071,US 1208588072,1208588079,RU 1208588080,1208588185,US @@ -18883,7 +19062,7 @@ 1208589082,1208589111,US 1208589112,1208589119,VE 1208589120,1208589279,US -1208589280,1208589287,EG +1208589280,1208589287,LK 1208589288,1208589299,US 1208589300,1208589307,LK 1208589308,1208589341,US @@ -18907,7 +19086,9 @@ 1208589926,1208589959,US 1208589960,1208589967,IR 1208589968,1208589975,VE -1208589976,1208590031,US +1208589976,1208590007,US +1208590008,1208590015,EG +1208590016,1208590031,US 1208590032,1208590047,EG 1208590048,1208590091,US 1208590092,1208590108,GB @@ -18939,8 +19120,7 @@ 1208657416,1208657423,CH 1208657424,1208657519,CA 1208657520,1208657527,MA -1208657528,1208657531,PA -1208657532,1208657535,CA +1208657528,1208657535,CA 1208657536,1208657543,SE 1208657544,1208657551,CA 1208657552,1208657559,PH @@ -18949,7 +19129,8 @@ 1208657784,1208657855,CA 1208657856,1208657871,PA 1208657872,1208657919,CA -1208657920,1208657975,MA +1208657920,1208657927,HK +1208657928,1208657975,MA 1208657976,1208657983,CA 1208657984,1208657991,CN 1208657992,1208658015,MA @@ -19083,7 +19264,8 @@ 1209441280,1209442303,BB 1209442304,1209647103,US 1209647104,1209663487,CA -1209663488,1209719807,US +1209663488,1209718783,US +1209718784,1209719807,NL 1209719808,1209720831,SG 1209720832,1209729023,US 1209729024,1209786367,JM @@ -19093,13 +19275,17 @@ 1209819904,1209819967,CA 1209819968,1209820159,US 1209820160,1209820223,CA -1209820224,1209821463,US +1209820224,1209820399,US +1209820400,1209820403,NG +1209820404,1209821463,US 1209821464,1209821471,GB 1209821472,1209821703,US 1209821704,1209821711,CN 1209821712,1209821759,US 1209821760,1209821791,CN -1209821792,1209822799,US +1209821792,1209821983,US +1209821984,1209821999,MX +1209822000,1209822799,US 1209822800,1209822815,DE 1209822816,1209824287,US 1209824288,1209824319,IN @@ -19410,7 +19596,9 @@ 1224318208,1224318463,CA 1224318464,1224321279,US 1224321280,1224321535,CA -1224321536,1224474623,US +1224321536,1224470527,US +1224470528,1224473599,NL +1224473600,1224474623,US 1224474624,1224475647,GT 1224475648,1224475903,PR 1224475904,1224476671,US @@ -19523,12 +19711,14 @@ 1247482240,1247482255,GB 1247482256,1247482263,CN 1247482264,1247482271,US -1247482272,1247482319,CN -1247482320,1247482335,US -1247482336,1247482351,CN +1247482272,1247482303,CN +1247482304,1247482343,US +1247482344,1247482351,CN 1247482352,1247482367,US 1247482368,1247482383,GB -1247482384,1247482431,CN +1247482384,1247482391,CN +1247482392,1247482399,US +1247482400,1247482431,CN 1247482432,1247482495,US 1247482496,1247482511,CN 1247482512,1247482519,US @@ -19555,8 +19745,12 @@ 1247483120,1247483647,US 1247483648,1247483671,CN 1247483672,1247483679,US -1247483680,1247483903,CN -1247483904,1247485183,US +1247483680,1247483711,CN +1247483712,1247483743,US +1247483744,1247483823,CN +1247483824,1247483831,US +1247483832,1247483871,CN +1247483872,1247485183,US 1247485184,1247485191,CN 1247485192,1247485231,US 1247485232,1247485263,CN @@ -19573,7 +19767,9 @@ 1247485640,1247485647,US 1247485648,1247485671,CN 1247485672,1247485679,US -1247485680,1247485743,CN +1247485680,1247485727,CN +1247485728,1247485735,US +1247485736,1247485743,CN 1247485744,1247485751,US 1247485752,1247485951,CN 1247485952,1247490047,US @@ -19800,20 +19996,15 @@ 1249544192,1249550351,US 1249550352,1249550367,GB 1249550368,1249550375,HK -1249550376,1249550383,US -1249550384,1249550391,AU +1249550376,1249550391,US 1249550392,1249550399,TW 1249550400,1249550863,US 1249550864,1249550879,GB 1249550880,1249550903,US 1249550904,1249550911,GB -1249550912,1249550919,US -1249550920,1249550927,ID -1249550928,1249550935,US +1249550912,1249550935,US 1249550936,1249550943,BY -1249550944,1249550967,US -1249550968,1249550975,ID -1249550976,1249562623,US +1249550944,1249562623,US 1249562624,1249564671,CA 1249564672,1249567558,US 1249567559,1249567562,RU @@ -19833,9 +20024,7 @@ 1249598464,1249599487,CA 1249599488,1249637887,US 1249637888,1249638143,CA -1249638144,1249690677,US -1249690678,1249690686,GB -1249690687,1249690783,US +1249638144,1249690783,US 1249690784,1249690815,AU 1249690816,1249710143,US 1249710144,1249710207,CN @@ -20100,11 +20289,19 @@ 1258767360,1258767615,US 1258767616,1258958095,US 1258958096,1258958103,CA -1258958104,1263266815,US +1258958104,1263265535,US +1263265536,1263265599,CA +1263265600,1263266303,US +1263266304,1263266367,CA +1263266368,1263266495,US +1263266496,1263266559,CA +1263266560,1263266815,US 1263266816,1263266823,CN 1263266824,1263266855,US 1263266856,1263266863,CN -1263266864,1263268275,US +1263266864,1263267455,US +1263267456,1263267519,CA +1263267520,1263268275,US 1263268276,1263268340,CA 1263268341,1263268343,US 1263268344,1263268351,CA @@ -20711,7 +20908,15 @@ 1279969312,1279969343,CA 1279969344,1279969407,US 1279969408,1279969423,CA -1279969424,1279971583,US +1279969424,1279969471,US +1279969472,1279969535,CA +1279969536,1279969551,US +1279969552,1279969567,CA +1279969568,1279969919,US +1279969920,1279969935,CA +1279969936,1279970047,US +1279970048,1279970303,CA +1279970304,1279971583,US 1279971584,1279972095,CA 1279972096,1279973951,US 1279973952,1279973967,CA @@ -20961,7 +21166,9 @@ 1296105472,1296171007,PL 1296171008,1296203775,DK 1296203776,1296236543,RU -1296236544,1296244991,IE +1296236544,1296237439,IE +1296237440,1296237567,IT +1296237568,1296244991,IE 1296244992,1296245247,CH 1296245248,1296245759,IE 1296245760,1296246783,ES @@ -22927,9 +23134,7 @@ 1347862528,1347866623,CH 1347866624,1347870719,NO 1347870720,1347874815,AM -1347874816,1347874938,RU -1347874939,1347875450,SE -1347875451,1347878399,RU +1347874816,1347878399,RU 1347878400,1347878911,SK 1347878912,1347887103,GB 1347887104,1347891199,PL @@ -23076,7 +23281,8 @@ 1348861952,1348993023,ES 1348993024,1349124095,IT 1349124096,1349255167,GR -1349255168,1349517311,AT +1349255168,1349451775,AT +1349451776,1349517311,IE 1349517312,1349584543,NL 1349584544,1349584551,GB 1349584552,1349763071,NL @@ -23205,7 +23411,9 @@ 1357323520,1357323775,GB 1357323776,1357342975,EU 1357342976,1357343231,GB -1357343232,1357360127,EU +1357343232,1357343487,EU +1357343488,1357343503,GB +1357343504,1357360127,EU 1357360128,1357360271,GB 1357360272,1357360279,FR 1357360280,1357360383,GB @@ -23901,7 +24109,9 @@ 1365042048,1365042055,GB 1365042056,1365044900,LU 1365044901,1365044901,FR -1365044902,1365045247,LU +1365044902,1365044927,LU +1365044928,1365044935,GR +1365044936,1365045247,LU 1365045248,1365047295,AT 1365047296,1365047551,SK 1365047552,1365048319,AT @@ -25594,8 +25804,7 @@ 1425971968,1425972223,A2 1425972224,1425980415,IT 1425980416,1425980671,IQ -1425980672,1425981183,IT -1425981184,1425981439,US +1425980672,1425981439,A2 1425981440,1425997823,RU 1425997824,1426014207,MT 1426014208,1426030591,DK @@ -25604,7 +25813,7 @@ 1426063360,1426587647,CH 1426587648,1426604031,SE 1426604032,1426620415,DE -1426620416,1426653183,GB +1426636800,1426653183,GB 1426653184,1426669567,RO 1426669568,1426685951,IR 1426685952,1426702335,TJ @@ -26161,7 +26370,6 @@ 1442783232,1442787327,NO 1442787328,1442791423,LT 1442791424,1442795519,LV -1442795520,1442799615,DE 1442799616,1442803711,LT 1442803712,1442807807,RO 1442807808,1442811903,BG @@ -26228,7 +26436,9 @@ 1449590784,1449656319,DE 1449656320,1449841663,RO 1449841664,1449843711,MD -1449843712,1449850879,RO +1449843712,1449845503,RO +1449845504,1449845759,MD +1449845760,1449850879,RO 1449850880,1449852927,MD 1449852928,1449918463,RO 1449918464,1449951231,JO @@ -26848,7 +27058,9 @@ 1490452480,1490468863,PT 1490468864,1490478591,GB 1490478592,1490478847,RU -1490478848,1490501631,GB +1490478848,1490480127,GB +1490480128,1490480639,RU +1490480640,1490501631,GB 1490501632,1490518015,DE 1490518016,1490534399,RU 1490534400,1490550783,DE @@ -28131,7 +28343,6 @@ 1536065536,1536065791,DE 1536065792,1536066303,LU 1536066304,1536066815,NL -1536066816,1536067071,RU 1536067072,1536067327,GB 1536067328,1536067583,RU 1536067584,1536067839,DK @@ -28213,7 +28424,8 @@ 1537212416,1538260991,FR 1538260992,1538785279,BE 1538785280,1538793471,NL -1538793472,1538801663,DE +1538793472,1538797567,DE +1538797568,1538801663,NL 1538801664,1538809855,IR 1538809856,1538818047,GE 1538818048,1538826239,NO @@ -28397,7 +28609,6 @@ 1539402240,1539402751,FR 1539402752,1539403263,GB 1539403264,1539403775,RU -1539403776,1539404799,GR 1539404800,1539405823,EE 1539405824,1539406847,PL 1539406848,1539408895,UA @@ -29768,7 +29979,6 @@ 1540349952,1540350463,UA 1540350464,1540350975,NO 1540350976,1540351487,DK -1540351488,1540351999,RO 1540352000,1540352511,NL 1540352512,1540353023,RU 1540353024,1540353535,GR @@ -29911,7 +30121,7 @@ 1540392192,1540392447,PL 1540392448,1540392703,RU 1540392704,1540392959,PL -1540392960,1540393471,GB +1540392960,1540393215,GB 1540393472,1540393727,UA 1540393728,1540394239,IL 1540394240,1540394495,GB @@ -30549,7 +30759,6 @@ 1540677376,1540677631,PL 1540677632,1540677887,DK 1540677888,1540678143,GE -1540678144,1540678399,RU 1540678400,1540678655,RO 1540678656,1540678911,SE 1540678912,1540679167,GB @@ -30949,7 +31158,6 @@ 1540891648,1540891903,CH 1540891904,1540892159,GB 1540892160,1540892415,IT -1540892416,1540892671,UA 1540892672,1540892927,GB 1540892928,1540893183,BE 1540893184,1540893439,GB @@ -31447,7 +31655,6 @@ 1541150720,1541151231,GB 1541151232,1541151487,RO 1541151488,1541151743,FR -1541151744,1541151999,NL 1541152000,1541152255,HU 1541152256,1541152511,NL 1541152512,1541152767,RU @@ -31900,7 +32107,6 @@ 1541358336,1541358591,GB 1541358592,1541358847,PL 1541358848,1541359103,SK -1541359104,1541359359,LV 1541359360,1541359615,FR 1541359616,1541359871,PL 1541359872,1541360127,FR @@ -32577,7 +32783,6 @@ 1541743616,1541744639,SK 1541744640,1541745663,PL 1541745664,1541746175,TR -1541746176,1541746687,UA 1541746688,1541746943,RU 1541746944,1541747199,NL 1541747200,1541747711,RU @@ -32596,7 +32801,6 @@ 1541753856,1541754879,UA 1541754880,1541755391,IT 1541755392,1541757439,PL -1541757440,1541757951,RU 1541757952,1541758207,GB 1541758208,1541758463,HU 1541758464,1541758719,RU @@ -32788,8 +32992,6 @@ 1541857280,1541857535,RU 1541857536,1541857791,KW 1541857792,1541858303,RU -1541858304,1541858559,LV -1541858560,1541858815,RU 1541858816,1541859327,BG 1541859328,1541859583,RO 1541859584,1541859839,PL @@ -34382,7 +34584,9 @@ 1551021568,1551023103,MD 1551023104,1551024127,RO 1551024128,1551030271,MD -1551030272,1551034623,RO +1551030272,1551032063,RO +1551032064,1551032319,MD +1551032320,1551034623,RO 1551034624,1551034879,MD 1551034880,1551039999,RO 1551040000,1551040255,MD @@ -34768,7 +34972,9 @@ 1567890432,1567890687,MD 1567890688,1567891455,RO 1567891456,1567895551,MD -1567895552,1567913983,RO +1567895552,1567907839,RO +1567907840,1567911935,MD +1567911936,1567913983,RO 1567913984,1567916031,MD 1567916032,1567932415,RO 1567932416,1567940607,MD @@ -34896,10 +35102,12 @@ 1571442688,1571443199,UA 1571443200,1571443455,CZ 1571443456,1571443711,UA -1571443712,1571531263,CZ +1571443712,1571454975,CZ +1571454976,1571455999,RU +1571456000,1571531263,CZ 1571531264,1571531775,UA -1571531776,1571534335,CZ -1571534336,1571534847,RU +1571531776,1571534079,CZ +1571534080,1571534847,RU 1571534848,1571535103,LV 1571535104,1571551231,CZ 1571551232,1571552255,UA @@ -34936,7 +35144,12 @@ 1571741696,1571743743,RU 1571743744,1571745791,GB 1571745792,1571747839,RU -1571747840,1571749887,GB +1571747840,1571748095,GB +1571748096,1571748351,US +1571748352,1571748607,SG +1571748608,1571748863,GB +1571748864,1571749119,US +1571749120,1571749887,GB 1571749888,1571758079,RU 1571758080,1571766271,IL 1571766272,1571786751,PL @@ -35105,7 +35318,10 @@ 1572628480,1572630527,DE 1572630528,1572632575,IT 1572632576,1572634623,RU -1572634624,1572636671,US +1572634624,1572634879,GB +1572634880,1572635391,NL +1572635392,1572636415,US +1572636416,1572636671,NL 1572636672,1572638719,ES 1572638720,1572640767,FR 1572640768,1572642815,RU @@ -35818,7 +36034,6 @@ 1592317952,1592319999,PL 1592320000,1592322047,LT 1592322048,1592324095,RU -1592324096,1592326143,KZ 1592326144,1592328191,UA 1592328192,1592393727,RU 1592393728,1592459263,SE @@ -36479,12 +36694,9 @@ 1611166784,1611167647,US 1611167648,1611167679,CA 1611167680,1611167727,SE -1611167728,1611168511,US -1611168512,1611169535,IE -1611169536,1611169599,US +1611167728,1611169599,US 1611169600,1611169663,IE -1611169664,1611169791,GB -1611169792,1611227135,US +1611169664,1611227135,US 1611227136,1611235327,CA 1611235328,1611923455,US 1611923456,1612185599,CA @@ -37458,8 +37670,8 @@ 1728737280,1728738303,JP 1728738304,1728739327,IN 1728739328,1728740351,ID -1728740352,1728740863,HK -1728740864,1728741119,AU +1728740352,1728740607,SG +1728740608,1728741119,AU 1728741120,1728741375,IN 1728741376,1728742399,ID 1728742400,1728743423,IN @@ -37537,11 +37749,10 @@ 1728810496,1728810751,AU 1728810752,1728811007,SG 1728811008,1728812031,AU -1728812032,1728812543,ID 1728812544,1728813055,SG 1728813056,1728814079,IN 1728814080,1728815103,JP -1728815104,1728818175,AU +1728815104,1728817151,AU 1728818176,1728819199,VN 1728819200,1728819711,ID 1728819712,1728819967,NZ @@ -37858,6 +38069,30 @@ 1729099776,1729100543,IN 1729100544,1729100799,ID 1729100800,1729101823,PH +1729101824,1729102847,VN +1729102848,1729103871,IN +1729103872,1729104895,JP +1729104896,1729105663,IN +1729105664,1729105919,VU +1729105920,1729106943,SG +1729106944,1729107967,NZ +1729107968,1729108479,IN +1729108480,1729108991,HK +1729108992,1729111039,IN +1729111040,1729112063,JP +1729112064,1729113087,MY +1729113088,1729114111,IN +1729114112,1729114623,ID +1729114624,1729114879,IN +1729114880,1729115135,AU +1729115136,1729116159,CN +1729116160,1729117183,IN +1729117184,1729118207,KH +1729118208,1729119231,AU +1729119232,1729120255,IN +1729120256,1729121279,BD +1729121280,1729121535,IN +1729122304,1729126399,CN 1729363968,1729364991,PK 1729364992,1729367039,JP 1729367040,1729368063,CN @@ -38080,7 +38315,6 @@ 1729601536,1729603583,CN 1729603584,1729604607,BD 1729604608,1729605119,AU -1729605120,1729605375,PH 1729605376,1729605631,ID 1729605632,1729606655,CN 1729606656,1729607679,ID @@ -38259,7 +38493,6 @@ 1730044928,1730046975,HK 1730046976,1730047999,KR 1730048000,1730049023,ID -1730049024,1730050047,JP 1730050048,1730050303,AU 1730050304,1730050559,SG 1730050560,1730051071,ID @@ -38367,6 +38600,7 @@ 1744055296,1744056319,HK 1744056320,1744056575,IN 1744056576,1744056831,MY +1744056832,1744057087,NZ 1744057088,1744057343,ID 1744057344,1744058367,HK 1744058368,1744067583,CN @@ -38410,9 +38644,68 @@ 1744107008,1744107519,SG 1744107520,1744108543,KH 1744108544,1744109567,CN -1744109568,1744109823,IN +1744109568,1744110591,IN 1744110592,1744111615,JP 1744111616,1744113663,IN +1744113664,1744114687,JP +1744114688,1744115455,IN +1744115456,1744115711,CN +1744115712,1744116735,MY +1744116736,1744117759,HK +1744117760,1744118783,IN +1744118784,1744119807,SG +1744119808,1744120831,JP +1744120832,1744122879,IN +1744122880,1744123903,CN +1744123904,1744124927,JP +1744124928,1744125951,CN +1744125952,1744127999,IN +1744128000,1744128511,ID +1744128512,1744128767,IN +1744128768,1744129023,AU +1744129024,1744130047,KH +1744130048,1744131071,CN +1744131072,1744132095,AU +1744132096,1744133119,MY +1744133120,1744134143,SG +1744134144,1744135167,BD +1744135168,1744137215,IN +1744137216,1744138239,BD +1744138240,1744140287,IN +1744140288,1744140799,MY +1744140800,1744141311,ID +1744141312,1744143359,CN +1744143360,1744144383,PK +1744144384,1744145407,ID +1744145408,1744146431,BD +1744146432,1744146687,IN +1744146688,1744147199,AU +1744147200,1744147455,IN +1744147456,1744148479,VN +1744148480,1744149503,AU +1744149504,1744150527,IN +1744150528,1744151551,TO +1744151552,1744152575,LA +1744152576,1744153599,JP +1744153600,1744154623,NZ +1744154624,1744154879,IN +1744154880,1744155135,ID +1744155136,1744155647,BD +1744155648,1744156671,ID +1744156672,1744158207,IN +1744158208,1744158719,HK +1744158720,1744159743,PK +1744159744,1744161791,IN +1744161792,1744162815,BD +1744162816,1744163839,HK +1744163840,1744166655,AU +1744166656,1744166911,SG +1744166912,1744167167,JP +1744167168,1744167679,ID +1744167680,1744167935,AU +1744167936,1744171007,JP +1744171008,1744172031,BT +1744172032,1744175103,VN 1744175104,1744176127,ID 1744176128,1744177151,AU 1744177152,1744179199,CN @@ -38647,9 +38940,7 @@ 1795557216,1795557247,US 1795557248,1795557375,CA 1795557376,1795557631,IN -1795557632,1795558655,US -1795558656,1795558911,US -1795558912,1795559423,US +1795557632,1795559423,US 1795559424,1795559679,AR 1795559680,1795559743,US 1795559744,1795559807,AE @@ -38946,8 +39237,7 @@ 1823588352,1823588479,IN 1823588480,1823735807,US 1823735808,1823866879,CA -1823866880,1823997951,US -1824260096,1826955551,US +1823866880,1826955551,US 1826955552,1826955559,AD 1826955560,1828716543,US 1828716544,1830813695,FR @@ -39135,7 +39425,9 @@ 1833529344,1833533439,GB 1833533440,1833537535,RU 1833537536,1833541631,AT -1833541632,1833545727,GB +1833541632,1833545215,GB +1833545216,1833545471,NL +1833545472,1833545727,GB 1833545728,1833549823,IT 1833549824,1833553919,RU 1833553920,1833558015,CZ @@ -39813,7 +40105,8 @@ 1847735296,1847736319,AU 1847736320,1847738367,HK 1847738368,1847754751,KR -1847754752,1847787519,TH +1847754752,1847783423,TH +1847783424,1847787519,US 1847787520,1847803903,KR 1847803904,1847807999,VN 1847808000,1847810047,ID @@ -40942,7 +41235,9 @@ 1969793024,1969795071,CN 1969795072,1969797119,NZ 1969797120,1969798143,SG -1969798144,1969799167,HK +1969798144,1969798655,HK +1969798656,1969798911,KR +1969798912,1969799167,HK 1969799168,1969807359,ID 1969807360,1969809407,AF 1969809408,1969811455,IN @@ -41085,7 +41380,9 @@ 1991868416,1991901183,SG 1991901184,1992097791,CN 1992097792,1992163327,HK -1992163328,1993342975,CN +1992163328,1992818687,CN +1992818688,1992884223,SG +1992884224,1993342975,CN 1993342976,1993605119,AU 1993605120,1993736191,CN 1993736192,1993867263,SG @@ -41172,7 +41469,12 @@ 1998569472,1998577663,CN 1998577664,1998579711,AU 1998579712,1998581759,SG -1998581760,1998585855,KR +1998581760,1998583807,KR +1998583808,1998584063,AU +1998584064,1998585087,KR +1998585088,1998585343,SG +1998585344,1998585599,JP +1998585600,1998585855,IN 1998585856,1999130623,CN 1999130624,1999134719,BD 1999134720,1999136767,MN @@ -41620,7 +41922,9 @@ 2053534720,2053537791,IN 2053537792,2053636095,JP 2053636096,2054160383,AU -2054160384,2054422527,CN +2054160384,2054373375,CN +2054373376,2054377471,HK +2054377472,2054422527,CN 2054422528,2054619135,TW 2054619136,2054684671,CN 2054684672,2055208959,TW @@ -41989,7 +42293,9 @@ 2087462912,2087464959,CN 2087464960,2087467007,KH 2087467008,2087469055,JP -2087469056,2087485439,HK +2087469056,2087477247,HK +2087477248,2087478271,AU +2087478272,2087485439,HK 2087485440,2087501823,TW 2087501824,2087518207,JP 2087518208,2087519231,TH @@ -43116,7 +43422,9 @@ 2258601984,2258602431,AU 2258602432,2258602447,HK 2258602448,2258602879,AU -2258602880,2258603263,HK +2258602880,2258603089,HK +2258603090,2258603090,PG +2258603091,2258603263,HK 2258603264,2258604799,AU 2258604800,2258605055,AP 2258605056,2258606079,AU @@ -43821,7 +44129,11 @@ 2372501504,2372505599,UA 2372505600,2372507647,NL 2372507648,2372509695,IT -2372509696,2372511743,AE +2372509696,2372510719,AE +2372510720,2372510975,A2 +2372510976,2372511231,AE +2372511232,2372511487,A2 +2372511488,2372511743,AE 2372511744,2372513791,SI 2372513792,2372534271,GB 2372534272,2372665343,US @@ -43967,20 +44279,18 @@ 2382348288,2382364671,SI 2382364672,2382368767,US 2382368768,2382372863,CA -2382372864,2382397439,US +2382372864,2382382847,US +2382382848,2382383103,LU +2382383104,2382397439,US 2382397440,2382397791,CN 2382397792,2382397823,US 2382397824,2382397863,CN 2382397864,2382397871,US -2382397872,2382397951,CN -2382397952,2382397967,US -2382397968,2382398015,CN +2382397872,2382398015,CN 2382398016,2382398047,US 2382398048,2382398207,CN 2382398208,2382398215,US -2382398216,2382398231,CN -2382398232,2382398239,US -2382398240,2382398399,CN +2382398216,2382398399,CN 2382398400,2382398463,US 2382398464,2382398479,CN 2382398480,2382398487,US @@ -44035,73 +44345,84 @@ 2382652032,2382652095,US 2382652096,2382652223,CN 2382652224,2382652287,US -2382652288,2382652335,CN -2382652336,2382652351,US +2382652288,2382652343,CN +2382652344,2382652351,US 2382652352,2382652383,CN 2382652384,2382652415,US -2382652416,2382652575,CN -2382652576,2382652591,US +2382652416,2382652583,CN +2382652584,2382652591,US 2382652592,2382652743,CN 2382652744,2382652751,US 2382652752,2382652767,CN 2382652768,2382652783,US -2382652784,2382652807,CN -2382652808,2382652815,CA -2382652816,2382652847,CN -2382652848,2382652863,US -2382652864,2382653007,CN +2382652784,2382652847,CN +2382652848,2382652855,US +2382652856,2382653007,CN 2382653008,2382653023,US 2382653024,2382653031,CN 2382653032,2382653039,US 2382653040,2382653143,CN 2382653144,2382653151,US 2382653152,2382653631,CN -2382653632,2382653695,US -2382653696,2382653711,CN +2382653632,2382653663,US +2382653664,2382653711,CN 2382653712,2382653727,US 2382653728,2382653759,CN 2382653760,2382653823,CA -2382653824,2382653951,US -2382653952,2382653983,CN -2382653984,2382654175,US -2382654176,2382654207,CN -2382654208,2382654463,US -2382654464,2382654607,CN +2382653824,2382654007,CN +2382654008,2382654015,CA +2382654016,2382654031,US +2382654032,2382654039,CN +2382654040,2382654143,US +2382654144,2382654607,CN 2382654608,2382654615,US -2382654616,2382654719,CN -2382654720,2382654727,US -2382654728,2382654735,CN +2382654616,2382654735,CN 2382654736,2382654751,US 2382654752,2382654815,CN 2382654816,2382654823,US 2382654824,2382654847,CN -2382654848,2382654863,US +2382654848,2382654855,US +2382654856,2382654863,CA 2382654864,2382654983,CN 2382654984,2382654991,US 2382654992,2382655359,CN 2382655360,2382655423,CA 2382655424,2382655455,US -2382655456,2382655711,CN -2382655712,2382655743,US -2382655744,2382655807,CN -2382655808,2382655823,US -2382655824,2382655967,CN -2382655968,2382655999,US -2382656000,2382656031,CN +2382655456,2382655807,CN +2382655808,2382655815,US +2382655816,2382656031,CN 2382656032,2382656063,CA 2382656064,2382656167,CN 2382656168,2382656175,US -2382656176,2382656183,CN -2382656184,2382656255,US -2382656256,2382656447,CN -2382656448,2382656511,US -2382656512,2382656535,CN -2382656536,2382656543,US -2382656544,2382656559,CN -2382656560,2382656767,US -2382656768,2382656795,CN -2382656796,2382678527,US -2382678528,2382684159,CA +2382656176,2382656455,CN +2382656456,2382656463,US +2382656464,2382656487,CN +2382656488,2382656511,US +2382656512,2382656567,CN +2382656568,2382656575,US +2382656576,2382656687,CN +2382656688,2382656695,US +2382656696,2382656795,CN +2382656796,2382656799,US +2382656800,2382656831,CN +2382656832,2382656847,US +2382656848,2382656991,CN +2382656992,2382657023,US +2382657024,2382657535,CN +2382657536,2382657663,US +2382657664,2382658559,CN +2382658560,2382658815,CA +2382658816,2382659199,CN +2382659200,2382659247,US +2382659248,2382659295,CN +2382659296,2382659327,US +2382659328,2382659375,CN +2382659376,2382659455,US +2382659456,2382659583,CN +2382659584,2382678783,US +2382678784,2382679039,CA +2382679040,2382680063,US +2382680064,2382684159,CA 2382684160,2382692351,US 2382692352,2383085567,CA 2383085568,2383151103,US @@ -44156,7 +44477,7 @@ 2395340800,2397700095,CA 2397700096,2397765631,US 2397765632,2398748671,CA -2398748672,2398879743,US +2398748672,2398945279,US 2398945280,2399010815,CA 2399010816,2399109119,US 2399109120,2399141887,PR @@ -45280,8 +45601,7 @@ 2546039040,2547187711,US 2547187712,2547318783,GB 2547318784,2547515391,US -2547523584,2547531775,IT -2547580928,2547646463,DE +2547531776,2547548159,BE 2548039680,2548563967,GB 2548563968,2548826111,IR 2548826112,2548834303,AT @@ -45318,7 +45638,10 @@ 2549645312,2549678079,RO 2549678080,2549698559,GB 2549698560,2549700607,PL -2549700608,2549702655,EU +2549700608,2549701119,DE +2549701120,2549701375,EU +2549701376,2549701631,SE +2549701632,2549702655,EU 2549702656,2549704703,UA 2549704704,2549706751,CZ 2549706752,2549710847,NO @@ -46125,7 +46448,8 @@ 2678893568,2678893823,CL 2678893824,2678901759,US 2678901760,2678902015,NZ -2678902016,2678911231,US +2678902016,2678902271,SG +2678902272,2678911231,US 2678911232,2678911487,NL 2678911488,2678911743,AU 2678911744,2678915071,US @@ -46185,7 +46509,9 @@ 2683568128,2683633663,GB 2683633664,2683645951,EU 2683645952,2683646207,AP -2683646208,2683699199,EU +2683646208,2683650047,EU +2683650048,2683651071,US +2683651072,2683699199,EU 2683699200,2683830271,US 2683830272,2683895807,AU 2683895808,2684157951,US @@ -46490,7 +46816,8 @@ 2717450240,2717646847,US 2717646848,2717712383,KW 2717712384,2717843455,US -2717908992,2718629887,US +2717908992,2717974527,CA +2717974528,2718629887,US 2718629888,2718695423,GB 2718695424,2718760959,US 2718760960,2718826495,GB @@ -46943,7 +47270,9 @@ 2782789632,2782855167,CH 2782855168,2783020735,US 2783020736,2783020751,IN -2783020752,2783182847,US +2783020752,2783020863,US +2783020864,2783020879,GB +2783020880,2783182847,US 2783182848,2783248383,AU 2783248384,2783313919,KR 2783313920,2783379455,US @@ -47393,8 +47722,8 @@ 2853830656,2854617087,US 2854617088,2854682623,MY 2854748160,2855469055,US -2855469056,2855483391,PY -2855483392,2855485439,AR +2855469056,2855484415,PY +2855484416,2855485439,AR 2855485440,2855501823,UY 2855501824,2855534591,AR 2855534592,2855706623,US @@ -47656,11 +47985,15 @@ 2905376456,2905376463,PK 2905376464,2905376607,US 2905376608,2905376615,CA -2905376616,2905377503,US +2905376616,2905376855,US +2905376856,2905376863,CA +2905376864,2905377503,US 2905377504,2905377511,ID 2905377512,2905377519,MY 2905377520,2905378559,US -2905378560,2905378815,CA +2905378560,2905378607,CA +2905378608,2905378687,US +2905378688,2905378815,CA 2905378816,2905379071,US 2905379072,2905379327,CA 2905379328,2905380607,US @@ -47684,11 +48017,15 @@ 2905390904,2905390911,PK 2905390912,2905391327,US 2905391328,2905391335,CR -2905391336,2905391599,US +2905391336,2905391359,US +2905391360,2905391391,EG +2905391392,2905391599,US 2905391600,2905391615,GB 2905391616,2905394175,US 2905394176,2905394687,CA -2905394688,2905404703,US +2905394688,2905404503,US +2905404504,2905404511,MY +2905404512,2905404703,US 2905404704,2905404759,IN 2905404760,2905404767,MY 2905404768,2905404799,IN @@ -47700,9 +48037,11 @@ 2905405056,2905405063,CN 2905405064,2905405071,US 2905405072,2905405079,HK -2905405080,2905405167,US -2905405168,2905405199,MY -2905405200,2905405439,US +2905405080,2905405095,US +2905405096,2905405103,CN +2905405104,2905405167,US +2905405168,2905405231,MY +2905405232,2905405439,US 2905405440,2905405447,MY 2905405448,2905405679,US 2905405680,2905405687,CN @@ -47714,9 +48053,7 @@ 2905415680,2905415935,GB 2905415936,2905446655,US 2905446656,2905446911,DE -2905446912,2905449983,US -2905449984,2905450495,CA -2905450496,2905451487,US +2905446912,2905451487,US 2905451488,2905451503,CW 2905451504,2905451519,US 2905451520,2905451647,PA @@ -47785,11 +48122,7 @@ 2916368384,2916401151,CA 2916401152,2916434623,US 2916434624,2916434655,CA -2916434656,2916435167,US -2916435168,2916435199,EG -2916435200,2916435295,US -2916435296,2916435327,EG -2916435328,2916436487,US +2916434656,2916436487,US 2916436488,2916436495,CA 2916436496,2916436543,US 2916436544,2916436607,CA @@ -47834,32 +48167,31 @@ 2916594944,2916614143,PR 2916614144,2917167299,US 2917167300,2917167302,CA -2917167303,2917167311,US -2917167312,2917167312,CA -2917167313,2917167313,US -2917167314,2917167316,CA +2917167303,2917167303,AR +2917167304,2917167311,US +2917167312,2917167316,BR 2917167317,2917167317,US -2917167318,2917167322,CA +2917167318,2917167318,CA +2917167319,2917167322,BR 2917167323,2917167325,US -2917167326,2917167326,CA -2917167327,2917167327,BR -2917167328,2917167328,CA +2917167326,2917167328,BR 2917167329,2917167329,AT 2917167330,2917167332,US -2917167333,2917167335,CA +2917167333,2917167335,BR 2917167336,2917167339,US 2917167340,2917167340,BR 2917167341,2917167342,US -2917167343,2917167347,CA -2917167348,2917167350,BR -2917167351,2917167351,CA +2917167343,2917167351,BR 2917167352,2917167354,US -2917167355,2917167358,CA +2917167355,2917167358,BR 2917167359,2917167679,US 2917167680,2917167711,BR 2917167712,2917167714,US -2917167715,2917167743,BR -2917167744,2917167773,US +2917167715,2917167717,CA +2917167718,2917167718,BR +2917167719,2917167722,CA +2917167723,2917167744,BR +2917167745,2917167773,US 2917167774,2917167775,BR 2917167776,2917167807,LT 2917167808,2917167839,US @@ -47869,7 +48201,9 @@ 2917167936,2917167967,US 2917167968,2917167968,IN 2917167969,2917167999,US -2917168000,2917168031,UA +2917168000,2917168000,UA +2917168001,2917168006,US +2917168007,2917168031,UA 2917168032,2917168095,US 2917168096,2917168127,GB 2917168128,2917168223,US @@ -47879,16 +48213,13 @@ 2917168256,2917168319,US 2917168320,2917168351,AR 2917168352,2917168352,US -2917168353,2917168377,BR -2917168378,2917168383,CA -2917168384,2917168415,BR +2917168353,2917168415,BR 2917168416,2917168447,US 2917168448,2917168479,BR 2917168480,2917168607,US 2917168608,2917168608,AU -2917168609,2917168615,US -2917168616,2917168618,BR -2917168619,2917168632,US +2917168609,2917168627,BR +2917168628,2917168632,US 2917168633,2917168633,BR 2917168634,2917168959,US 2917168960,2917169023,DE @@ -47918,33 +48249,17 @@ 2917170048,2917170079,BR 2917170080,2917170111,US 2917170112,2917170143,TR -2917170144,2917170246,US -2917170247,2917170248,BR -2917170249,2917170255,US -2917170256,2917170256,BR -2917170257,2917170257,US -2917170258,2917170258,BR -2917170259,2917170264,US -2917170265,2917170265,BR -2917170266,2917170266,US -2917170267,2917170268,BR -2917170269,2917170272,US -2917170273,2917170276,BR -2917170277,2917170281,US -2917170282,2917170285,BR -2917170286,2917170286,US -2917170287,2917170287,BR -2917170288,2917170758,US -2917170759,2917170761,BR -2917170762,2917170764,CA +2917170144,2917170239,US +2917170240,2917170303,BR +2917170304,2917170758,US +2917170759,2917170764,BR 2917170765,2917170771,US -2917170772,2917170772,CA +2917170772,2917170772,BR 2917170773,2917170774,US -2917170775,2917170776,CA -2917170777,2917170777,BR -2917170778,2917170785,US -2917170786,2917170786,CA -2917170787,2917170800,BR +2917170775,2917170777,BR +2917170778,2917170783,US +2917170784,2917170785,AR +2917170786,2917170800,BR 2917170801,2917170801,US 2917170802,2917170806,BR 2917170807,2917170809,US @@ -47953,24 +48268,29 @@ 2917170820,2917170820,BR 2917170821,2917170821,US 2917170822,2917170822,BD -2917170823,2917170824,US +2917170823,2917170823,US +2917170824,2917170824,PH 2917170825,2917170825,BR -2917170826,2917170843,US -2917170844,2917170844,PH -2917170845,2917170845,US -2917170846,2917170846,PH +2917170826,2917170830,US +2917170831,2917170831,PH +2917170832,2917170839,US +2917170840,2917170840,BD +2917170841,2917170841,PH +2917170842,2917170843,US +2917170844,2917170844,EC +2917170845,2917170846,US 2917170847,2917170847,PK 2917170848,2917170848,PH 2917170849,2917170850,US 2917170851,2917170851,BR 2917170852,2917170852,US 2917170853,2917170853,BR -2917170854,2917170854,PH -2917170855,2917170860,US -2917170861,2917170861,PH +2917170854,2917170856,PH +2917170857,2917170859,US +2917170860,2917170861,PH 2917170862,2917170862,CA 2917170863,2917170863,US -2917170864,2917170864,MX +2917170864,2917170864,PH 2917170865,2917170869,US 2917170870,2917170870,BD 2917170871,2917170871,AU @@ -48016,7 +48336,9 @@ 2917171200,2917195775,US 2917195776,2917196031,A2 2917196032,2917196415,CA -2917196416,2917198847,A2 +2917196416,2917196543,A2 +2917196544,2917196799,CA +2917196800,2917198847,A2 2917198848,2917199103,CA 2917199104,2917199359,A2 2917199360,2917203967,CA @@ -48120,9 +48442,13 @@ 2917664416,2917664447,EG 2917664448,2917664815,US 2917664816,2917664831,CN -2917664832,2917667391,US +2917664832,2917665663,US +2917665664,2917665695,EG +2917665696,2917667391,US 2917667392,2917667423,EG -2917667424,2917672191,US +2917667424,2917667519,US +2917667520,2917667583,CA +2917667584,2917672191,US 2917672192,2917672223,CA 2917672224,2917672319,US 2917672320,2917672351,EG @@ -48147,7 +48473,9 @@ 2917700352,2917700959,US 2917700960,2917700967,CN 2917700968,2917700975,GB -2917700976,2917704191,US +2917700976,2917700991,US +2917700992,2917700999,MY +2917701000,2917704191,US 2917704192,2917704447,CA 2917704448,2917706239,US 2917706240,2917707007,CA @@ -48241,11 +48569,13 @@ 2917842176,2917842431,CA 2917842432,2917847063,US 2917847064,2917847071,CA -2917847072,2917851207,US +2917847072,2917847935,US +2917847936,2917847943,CN +2917847944,2917851207,US 2917851208,2917851215,CA 2917851216,2917853471,US -2917853472,2917853495,CA -2917853496,2917853519,US +2917853472,2917853487,CA +2917853488,2917853519,US 2917853520,2917853535,CA 2917853536,2917853567,US 2917853568,2917853575,CA @@ -48258,8 +48588,13 @@ 2917856640,2918014975,US 2918014976,2918023167,CA 2918023168,2918043647,US -2918043648,2918043815,CA -2918043816,2918043823,TH +2918043648,2918043711,CA +2918043712,2918043719,US +2918043720,2918043775,CA +2918043776,2918043783,US +2918043784,2918043799,CA +2918043800,2918043807,US +2918043808,2918043823,TH 2918043824,2918043831,US 2918043832,2918043839,PH 2918043840,2918043847,ID @@ -48286,7 +48621,9 @@ 2918051840,2918121471,CA 2918121472,2918154239,US 2918154240,2918170623,CA -2918170624,2918199679,US +2918170624,2918187775,US +2918187776,2918187839,CA +2918187840,2918199679,US 2918199680,2918199743,CA 2918199744,2918201551,US 2918201552,2918201567,CA @@ -48386,7 +48723,9 @@ 2918536184,2918536187,US 2918536188,2918536447,US 2918536448,2918536703,US -2918536704,2918580223,US +2918536704,2918570239,US +2918570240,2918570495,JP +2918570496,2918580223,US 2918580224,2918588415,CA 2918588416,2918596607,US 2918596608,2918604287,CA @@ -48755,7 +49094,9 @@ 2919071184,2919071199,CA 2919071200,2919071207,DK 2919071208,2919071215,MX -2919071216,2919159873,US +2919071216,2919153695,US +2919153696,2919153703,DE +2919153704,2919159873,US 2919159874,2919159877,US 2919159878,2919170351,US 2919170352,2919170359,PE @@ -48764,8 +49105,7 @@ 2919170408,2919170415,ES 2919170416,2919170431,US 2919170432,2919170439,JP -2919170440,2919170447,IN -2919170448,2919170487,US +2919170440,2919170487,US 2919170488,2919170495,NL 2919170496,2919170551,US 2919170552,2919170559,FR @@ -48835,15 +49175,9 @@ 2919218688,2919218943,US 2919218944,2919235583,US 2919235584,2919759871,CA -2919759872,2921496895,US -2921496896,2921496903,IN -2921496904,2921496967,US +2919759872,2921496967,US 2921496968,2921496975,LK -2921496976,2921497415,US -2921497416,2921497423,IN -2921497424,2921497471,US -2921497472,2921497599,IN -2921497600,2921497855,US +2921496976,2921497855,US 2921497856,2921497863,CA 2921497864,2921498031,US 2921498032,2921498039,CA @@ -48857,13 +49191,9 @@ 2921501168,2921501175,CA 2921501176,2921504431,US 2921504432,2921504439,GB -2921504440,2921505951,US -2921505952,2921505983,IN -2921505984,2921506343,US +2921504440,2921506343,US 2921506344,2921506351,CA -2921506352,2921506431,US -2921506432,2921506463,IN -2921506464,2921506879,US +2921506352,2921506879,US 2921506880,2921506887,CA 2921506888,2921506895,US 2921506896,2921506911,GB @@ -48880,7 +49210,26 @@ 2921511384,2921511391,CA 2921511392,2921512703,US 2921512704,2921512959,CA -2921512960,2921562111,US +2921512960,2921530367,US +2921530368,2921531391,DE +2921531392,2921541119,US +2921541120,2921541375,DE +2921541376,2921545727,US +2921545728,2921545983,NL +2921545984,2921546495,US +2921546496,2921546751,NL +2921546752,2921547519,US +2921547520,2921547775,DE +2921547776,2921548031,GB +2921548032,2921548799,US +2921548800,2921549055,FR +2921549056,2921550335,US +2921550336,2921550591,IT +2921550592,2921552895,US +2921552896,2921553151,CL +2921553152,2921553407,BR +2921553408,2921553663,CO +2921553664,2921562111,US 2921562112,2921589759,CA 2921589760,2921590015,US 2921590016,2921594879,CA @@ -48908,7 +49257,9 @@ 2928173224,2928173231,JP 2928173232,2928173343,US 2928173344,2928173351,NL -2928173352,2928173551,US +2928173352,2928173431,US +2928173432,2928173439,GB +2928173440,2928173551,US 2928173552,2928173559,CA 2928173560,2928173711,US 2928173712,2928173727,JP @@ -48952,7 +49303,9 @@ 2928176448,2928176455,GB 2928176456,2928176519,US 2928176520,2928176527,NL -2928176528,2928177151,US +2928176528,2928176935,US +2928176936,2928176943,AU +2928176944,2928177151,US 2928177152,2928181247,CA 2928181248,2928186591,US 2928186592,2928186623,CA @@ -49156,11 +49509,15 @@ 2928318720,2928318975,DO 2928318976,2928320519,US 2928320520,2928320527,BR -2928320528,2928320607,US +2928320528,2928320583,US +2928320584,2928320591,QA +2928320592,2928320607,US 2928320608,2928320615,PE 2928320616,2928320967,US 2928320968,2928320975,MV -2928320976,2928321063,US +2928320976,2928320999,US +2928321000,2928321007,QA +2928321008,2928321063,US 2928321064,2928321071,AU 2928321072,2928321311,US 2928321312,2928321327,GB @@ -49209,7 +49566,18 @@ 2937978880,2938109951,CN 2938109952,2938634239,AU 2938634240,2938699775,IN -2938699776,2938703871,KR +2938699776,2938700031,PH +2938700032,2938700287,ID +2938700288,2938700543,KR +2938700544,2938701055,SG +2938701056,2938701311,IQ +2938701312,2938701567,AU +2938701568,2938701823,KR +2938701824,2938702079,IN +2938702080,2938703103,HK +2938703104,2938703359,IL +2938703360,2938703615,ZA +2938703616,2938703871,KR 2938703872,2938707967,HK 2938707968,2938710015,JP 2938710016,2938712063,AU @@ -49294,7 +49662,9 @@ 2947598336,2947602431,AU 2947602432,2947603455,NZ 2947603456,2947604479,TH -2947604480,2947609855,HK +2947604480,2947609167,HK +2947609168,2947609175,AF +2947609176,2947609855,HK 2947609856,2947610111,US 2947610112,2947610367,HK 2947610368,2947610623,PH @@ -49904,7 +50274,7 @@ 2960835072,2960835583,CH 2960835584,2960836351,IT 2960836352,2960836607,PL -2960836608,2960839167,RU +2960836608,2960838655,RU 2960839168,2960839679,IR 2960839680,2960846847,PL 2960846848,2960847871,UA @@ -50297,7 +50667,9 @@ 2988556208,2988556211,DE 2988556212,2988558203,FR 2988558204,2988558207,DE -2988558208,2988572671,FR +2988558208,2988562847,FR +2988562848,2988562863,GB +2988562864,2988572671,FR 2988572672,2988703743,RU 2988703744,2988834815,PL 2988834816,2988965887,CH @@ -50923,7 +51295,9 @@ 3003115520,3003117567,RU 3003117568,3003119615,IT 3003119616,3003121663,RU -3017801728,3019898879,BR +3003252736,3003449343,CL +3003580416,3003645951,PE +3011510272,3019898879,BR 3019898880,3024093183,JP 3024093184,3024617471,KR 3024617472,3024879615,MY @@ -51190,8 +51564,7 @@ 3036610560,3036676095,SG 3036676096,3037790207,AR 3037790208,3037986815,VE -3037986816,3038248959,AR -3038511104,3038773247,AR +3037986816,3038773247,AR 3039035392,3039166463,DO 3039297536,3039363071,PY 3039363072,3039395839,BZ @@ -51207,10 +51580,10 @@ 3044163584,3044171775,BO 3044188160,3044196351,BO 3044196352,3044206591,AR +3044206592,3044208639,CL 3044208640,3044212735,BZ 3044212736,3044245503,HN -3044278272,3044343807,AR -3044409344,3044505599,AR +3044278272,3044505599,AR 3044505600,3044507647,US 3044507648,3044540415,AR 3044802560,3045064703,PY @@ -51219,6 +51592,10 @@ 3047424000,3047686143,AR 3047948288,3048079359,CL 3048210432,3048275967,PE +3048275968,3048292351,AR +3048292352,3048308735,BZ +3048329216,3048331263,AR +3048333312,3048341503,PE 3048341504,3048472575,PA 3048472576,3048996863,VE 3048996864,3049029631,TT @@ -51237,17 +51614,23 @@ 3050307584,3050340351,VE 3050373120,3050405887,AR 3050438656,3050504191,HN -3051356160,3051372543,CR +3051356160,3051380735,CR 3051380736,3051388927,AR 3051388928,3051397119,PA 3051405312,3051407359,CR 3051407360,3051408383,PE +3051408384,3051409407,DO 3051409408,3051411455,AR +3051411456,3051413503,CR 3051413504,3051421695,PE +3051429888,3051438079,VE +3051446272,3051450367,CO +3051450368,3051454463,CL 3051487232,3051552767,CL +3051552768,3051618303,BO 3051618304,3051749375,AR 3051880448,3051913215,CO -3051945984,3051962367,CR +3051945984,3051978751,CR 3051995136,3052011519,PE 3052142592,3052273663,CO 3052273664,3052404735,AR @@ -51518,7 +51901,9 @@ 3093242720,3093242751,CN 3093242752,3093243223,US 3093243224,3093243231,AU -3093243232,3093245575,US +3093243232,3093244831,US +3093244832,3093244847,BG +3093244848,3093245575,US 3093245576,3093245583,BR 3093245584,3093245719,US 3093245720,3093245727,AU @@ -51553,7 +51938,9 @@ 3093855488,3093908991,US 3093908992,3093909247,PR 3093909248,3094020095,US -3094020096,3094085631,CA +3094020096,3094032759,CA +3094032760,3094032767,GI +3094032768,3094085631,CA 3094085632,3096444927,US 3096444928,3096969215,CA 3096969216,3097130139,US @@ -51668,7 +52055,11 @@ 3098322696,3098322703,BD 3098322704,3098323679,US 3098323680,3098323711,EG -3098323712,3098326511,US +3098323712,3098323951,US +3098323952,3098323959,TR +3098323960,3098324735,US +3098324736,3098324743,IN +3098324744,3098326511,US 3098326512,3098326519,CN 3098326520,3098331151,US 3098331152,3098331159,HK @@ -51720,7 +52111,9 @@ 3098380528,3098380535,IN 3098380536,3098381455,US 3098381456,3098381471,LT -3098381472,3098385727,US +3098381472,3098382071,US +3098382072,3098382079,IN +3098382080,3098385727,US 3098385728,3098385791,SE 3098385792,3098387607,US 3098387608,3098387615,RO @@ -51736,7 +52129,9 @@ 3098395408,3098395415,BR 3098395416,3098400503,US 3098400504,3098400511,CA -3098400512,3098402799,US +3098400512,3098402559,US +3098402560,3098402575,AR +3098402576,3098402799,US 3098402800,3098402807,ES 3098402808,3098403151,US 3098403152,3098403159,PK @@ -51774,6 +52169,7 @@ 3103850752,3103851007,PS 3103851520,3103852543,PL 3103852544,3103852799,AE +3103852800,3103853055,PL 3103916032,3103917055,CH 3103917056,3103918079,IT 3103918080,3103919103,DE @@ -52041,6 +52437,7 @@ 3104200704,3104201727,IT 3104201728,3104202751,FR 3104202752,3104203775,DE +3104203776,3104204799,HU 3104204800,3104205823,BH 3104205824,3104206847,NL 3104206848,3104207871,PL @@ -52252,6 +52649,7 @@ 3104440320,3104441343,RU 3104441344,3104442367,IL 3104442368,3104443391,DK +3104443392,3104444415,GB 3104444416,3104445439,FR 3104445440,3104446463,MD 3104446464,3104447487,PL @@ -52523,12 +52921,222 @@ 3104733184,3104734207,FR 3104734208,3104735231,BA 3104735232,3104736255,FR +3104736256,3104737279,JO 3104737280,3104738303,GB 3104738304,3104739327,KW 3104739328,3104740351,GB 3104740352,3104741375,PL 3104741376,3104742399,GB 3104742400,3104743423,CH +3104743424,3104744447,IR +3104744448,3104745471,GB +3104745472,3104746495,NL +3104746496,3104747519,TR +3104747520,3104749567,FR +3104749568,3104750591,NL +3104750592,3104751615,CZ +3104751616,3104752639,UA +3104752640,3104753663,SA +3104753664,3104754687,GR +3104754688,3104755711,MK +3104755712,3104757759,GB +3104757760,3104758783,EE +3104758784,3104759807,GB +3104759808,3104760831,CZ +3104760832,3104761855,FR +3104761856,3104762879,CZ +3104762880,3104763903,IT +3104763904,3104764927,SE +3104764928,3104765951,FR +3104765952,3104766975,IQ +3104766976,3104767999,CZ +3104768000,3104769023,PL +3104769024,3104770047,UA +3104770048,3104771071,DE +3104771072,3104772095,NL +3104772096,3104773119,FR +3104773120,3104774143,PT +3104774144,3104775167,NL +3104775168,3104776191,HR +3104776192,3104777215,FR +3104777216,3104778239,DE +3104778240,3104779263,TR +3104779264,3104780287,PL +3104780288,3104782335,FR +3104782336,3104783359,EU +3104783360,3104784383,RU +3104784384,3104785407,BA +3104785408,3104786431,FR +3104786432,3104787455,DK +3104787456,3104788479,ES +3104788480,3104789503,PL +3104789504,3104791551,RU +3104791552,3104792575,DE +3104792576,3104793599,RU +3104793600,3104794623,ES +3104794624,3104795647,GB +3104795648,3104796671,CZ +3104796672,3104797695,GE +3104797696,3104798719,RU +3104798720,3104799743,SE +3104799744,3104800767,DK +3104800768,3104801791,FR +3104801792,3104802815,PL +3104802816,3104803839,AE +3104803840,3104804863,FR +3104804864,3104805887,CZ +3104805888,3104806911,ES +3104806912,3104807935,NO +3104807936,3104808959,BE +3104808960,3104809983,IT +3104809984,3104811007,NL +3104811008,3104812031,IT +3104812032,3104813055,RU +3104813056,3104814079,IT +3104814080,3104816127,DE +3104816128,3104817151,RU +3104817152,3104818175,DE +3104818176,3104819199,TR +3104819200,3104820223,CH +3104820224,3104821247,GB +3104821248,3104822271,RU +3104822272,3104823295,FI +3104823296,3104824319,NO +3104824320,3104825343,NL +3104825344,3104826367,GB +3104826368,3104827391,CH +3104827392,3104828415,PL +3104828416,3104829439,AT +3104829440,3104830463,DK +3104830464,3104831487,DE +3104831488,3104832511,NL +3104832512,3104833535,CZ +3104833536,3104834559,IM +3104834560,3104835583,KW +3104835584,3104836607,RU +3104836608,3104837631,BA +3104837632,3104838655,DK +3104838656,3104839679,NL +3104839680,3104840703,IQ +3104840704,3104841727,UA +3104841728,3104843775,PL +3104843776,3104844799,GB +3104844800,3104846847,FR +3104846848,3104847871,AT +3104847872,3104848895,RU +3104848896,3104849919,DE +3104849920,3104850943,RU +3104850944,3104851967,EU +3104851968,3104852991,DE +3104852992,3104854015,AT +3104854016,3104855039,GI +3104855040,3104856063,SE +3104856064,3104857087,IL +3104857088,3104858111,SE +3104858112,3104859135,FI +3104859136,3104861183,RU +3104861184,3104862207,DE +3104862208,3104863231,AT +3104863232,3104864255,RU +3104864256,3104865279,ES +3104865280,3104866303,UA +3104866304,3104867327,PL +3104867328,3104868351,IT +3104868352,3104869375,RU +3104869376,3104870399,DK +3104870400,3104871423,PL +3104871424,3104872447,CY +3104872448,3104873471,GB +3104873472,3104874495,DK +3104874496,3104875519,GB +3104875520,3104876543,GR +3104876544,3104877567,FI +3104877568,3104878591,CH +3104878592,3104879615,RU +3104879616,3104880639,CZ +3104880640,3104881663,DE +3104881664,3104882687,AT +3104882688,3104883711,MT +3104883712,3104884735,DE +3104884736,3104885759,SE +3104885760,3104886783,GB +3104886784,3104887807,ES +3104887808,3104888831,RU +3104888832,3104889855,EU +3104889856,3104890879,FR +3104890880,3104891903,GB +3104891904,3104892927,UA +3104892928,3104893951,IR +3104893952,3104894975,TR +3104894976,3104895999,BE +3104896000,3104897023,RU +3104897024,3104898047,ES +3104898048,3104899071,FR +3104899072,3104900095,RU +3104900096,3104901119,DE +3104901120,3104902143,RU +3104902144,3104903167,AT +3104903168,3104904191,RU +3104904192,3104905215,IT +3104905216,3104906239,GB +3104906240,3104907263,RU +3104907264,3104908287,DE +3104908288,3104909311,RU +3104909312,3104910335,PL +3104910336,3104911359,DK +3104911360,3104912383,IT +3104912384,3104913407,DK +3104913408,3104914431,FR +3104914432,3104915455,NL +3104915456,3104916479,CZ +3104916480,3104917503,CH +3104917504,3104918527,NL +3104918528,3104919551,RU +3104919552,3104920575,NL +3104920576,3104922623,RU +3104922624,3104923647,NO +3104923648,3104924671,NL +3104924672,3104925695,CZ +3104925696,3104926719,IT +3104926720,3104927743,FR +3104927744,3104928767,TR +3104928768,3104929791,CZ +3104929792,3104930815,RU +3104930816,3104931839,UA +3104931840,3104933887,RU +3104933888,3104934911,TR +3104934912,3104935935,RU +3104935936,3104936959,DE +3104936960,3104937983,GB +3104937984,3104939007,RU +3104939008,3104940031,IT +3104940032,3104941055,PL +3104941056,3104942079,GB +3104942080,3104943103,RU +3104943104,3104944127,GB +3104944128,3104945151,CH +3104945152,3104946175,GB +3104946176,3104947199,NL +3104947200,3104948223,RS +3104948224,3104949247,DK +3104949248,3104950271,GB +3104950272,3104951295,RU +3104952320,3104953343,CH +3104953344,3104954367,CZ +3104954368,3104955391,DK +3104955392,3104956415,VA +3104956416,3104957439,MD +3104957440,3104958463,PT +3104958464,3104959487,PS +3104959488,3104961535,FR +3104961536,3104962559,DE +3104962560,3104963583,FR +3104963584,3104964607,GB +3104964608,3104965631,DK +3104965632,3104966655,RU +3104966656,3104967679,BE +3104967680,3104968703,RS +3104968704,3104969727,ES 3120562176,3120594943,CO 3120594944,3120599039,AR 3120599040,3120601087,EC @@ -52559,7 +53167,7 @@ 3120840704,3120857087,AR 3120857088,3120922623,EC 3120922624,3120930815,PA -3120939008,3120949247,AR +3120934912,3120949247,AR 3120949248,3120951295,CL 3120951296,3120955391,AR 3120955392,3121086463,DO @@ -52587,11 +53195,17 @@ 3122716672,3122722815,HN 3122722816,3122724863,SV 3122724864,3122726911,US -3122726912,3122732031,AR +3122726912,3122728447,AR +3122728448,3122728959,US +3122728960,3122731007,AR +3122731008,3122731519,US +3122731520,3122732031,AR 3122732032,3122733055,US 3122733056,3122734079,AR 3122734080,3122734591,US -3122734592,3122737407,AR +3122734592,3122735103,AR +3122735104,3122735615,US +3122735616,3122737407,AR 3122737408,3122737663,US 3122737664,3122737919,AR 3122737920,3122738175,US @@ -52670,7 +53284,7 @@ 3130785792,3130851327,CL 3130851328,3130982399,AR 3130982400,3131006975,CO -3131006976,3131011071,CW +3131006976,3131011071,BQ 3131011072,3131012095,CO 3131012096,3131013119,PA 3131013120,3131015167,AR @@ -53301,7 +53915,9 @@ 3187732480,3187734527,CO 3187734528,3187736575,BO 3187736576,3187752959,AR -3187752960,3187761151,VE +3187752960,3187755007,VE +3187755008,3187755519,CO +3187755520,3187761151,VE 3187761152,3187769343,AR 3187769344,3187802111,CO 3187802112,3187818495,AR @@ -53330,8 +53946,10 @@ 3187946112,3187946239,HN 3187946240,3187947983,GT 3187947984,3187947987,HN -3187947988,3187949567,GT -3187949568,3187953663,CW +3187947988,3187948799,GT +3187948800,3187948927,HN +3187948928,3187949567,GT +3187949568,3187953663,BQ 3187953664,3187955711,CL 3187955712,3187957759,CR 3187957760,3187961855,CL @@ -53446,7 +54064,9 @@ 3191128064,3191132159,EC 3191132160,3191136255,AR 3191136256,3191144447,DO -3191144448,3191156735,SV +3191144448,3191152639,SV +3191152640,3191154687,NI +3191154688,3191156735,SV 3191156736,3191169023,HN 3191169024,3191193599,SV 3191193600,3191209983,HN @@ -53467,19 +54087,24 @@ 3191650560,3191650815,US 3191650816,3191651071,CO 3191651072,3191651327,US -3191651328,3191676927,CO +3191651328,3191670015,CO +3191670016,3191670271,AR +3191670272,3191676927,CO 3191676928,3191679487,AR 3191679488,3191679743,US -3191679744,3191684351,AR +3191679744,3191683327,AR +3191683328,3191683583,US +3191683584,3191684351,AR 3191684352,3191684607,US -3191684608,3191685119,AR -3191685120,3191685631,CO +3191684608,3191685631,AR 3191685632,3191685887,US -3191685888,3191688959,CO -3191688960,3191693311,US +3191685888,3191688703,AR +3191688704,3191693311,US 3191693312,3191697407,CO 3191697408,3191701503,US -3191701504,3191705599,CO +3191701504,3191704063,CO +3191704064,3191704575,US +3191704576,3191705599,CO 3191705600,3191705855,US 3191705856,3191721983,CO 3191721984,3191722495,AR @@ -53508,8 +54133,8 @@ 3193583104,3193606143,CO 3193606144,3193606399,EC 3193606400,3193622527,CO -3193622528,3193623039,EC -3193623040,3193634815,CO +3193622528,3193623295,EC +3193623296,3193634815,CO 3193634816,3193700351,CL 3193700352,3193724927,HN 3193724928,3193729023,AR @@ -53521,8 +54146,8 @@ 3193736448,3193737471,AR 3193737472,3193737727,US 3193737728,3193737983,AR -3193737984,3193738239,US -3193738240,3193738751,AR +3193737984,3193738495,US +3193738496,3193738751,AR 3193738752,3193739007,US 3193739008,3193739263,AR 3193739264,3193739519,US @@ -53542,9 +54167,11 @@ 3193749504,3193749759,US 3193749760,3193750015,AR 3193750016,3193750271,US -3193750272,3193751807,AR -3193751808,3193752063,US -3193752064,3193753215,AR +3193750272,3193750527,AR +3193750528,3193750783,US +3193750784,3193751807,AR +3193751808,3193752319,US +3193752320,3193753215,AR 3193753216,3193753343,US 3193753344,3193754623,AR 3193754624,3193754751,US @@ -53592,7 +54219,8 @@ 3194130432,3194134527,BR 3194134528,3194135551,AR 3194135552,3194136575,GT -3194136576,3194140671,AR +3194136576,3194137087,BR +3194137088,3194140671,AR 3194140672,3194142719,CR 3194142720,3194159103,CL 3194159104,3194165247,HN @@ -53664,7 +54292,9 @@ 3194659840,3194660095,US 3194660096,3194663167,AR 3194663168,3194663423,US -3194663424,3194665471,AR +3194663424,3194663679,AR +3194663680,3194663935,US +3194663936,3194665471,AR 3194665472,3194665727,US 3194665728,3194665983,AR 3194665984,3194666239,US @@ -53722,7 +54352,9 @@ 3194974208,3194976255,AR 3194976256,3194977279,VE 3194977280,3194978303,AR -3194978304,3194982911,PA +3194978304,3194978559,PA +3194978560,3194978687,CW +3194978688,3194982911,PA 3194982912,3194983039,US 3194983040,3194984191,PA 3194984192,3194984319,US @@ -53759,9 +54391,13 @@ 3195207680,3195211775,GT 3195215872,3195224063,AR 3195224064,3195232511,PA -3195232512,3195234559,CR +3195232512,3195232767,CR +3195232768,3195233023,PA +3195233024,3195234559,CR 3195234560,3195234815,PA -3195234816,3195236351,CR +3195234816,3195235327,CR +3195235328,3195235583,PA +3195235584,3195236351,CR 3195236352,3195240447,AR 3195240448,3195256831,HT 3195256832,3195265023,AR @@ -53785,6 +54421,7 @@ 3195641856,3195645951,PY 3195645952,3195650047,AR 3195650048,3195654143,GT +3195654144,3195658239,CW 3195658240,3195662335,VE 3195662336,3195666431,CW 3195666432,3195686911,AR @@ -53797,8 +54434,8 @@ 3195737088,3195738111,CW 3195738112,3195740159,HN 3195740160,3195741439,PA -3195741440,3195741695,US -3195741696,3195744255,PA +3195741440,3195741951,US +3195741952,3195744255,PA 3195744256,3195748351,EC 3195748352,3195752447,CL 3195756544,3195763711,AR @@ -53914,16 +54551,12 @@ 3201826816,3201859583,AR 3201859584,3201863679,CO 3201863680,3201865727,CL -3201865728,3201868287,AR -3201868288,3201868543,PE -3201868544,3201871871,AR +3201865728,3201867775,AR +3201867776,3201869823,PE +3201869824,3201871871,AR 3201871872,3201875967,PE 3201875968,3201880063,CO -3201880064,3201880071,AR -3201880072,3201880079,EC -3201880080,3201880831,AR -3201880832,3201881087,EC -3201881088,3201884159,AR +3201880064,3201884159,EC 3201884160,3201892351,VE 3201892352,3201925119,AR 3201925120,3201957887,CL @@ -54144,7 +54777,9 @@ 3223227904,3223228159,CA 3223229184,3223229695,US 3223229696,3223229951,CA -3223230464,3223243007,US +3223230464,3223236607,US +3223236608,3223237631,GB +3223237632,3223243007,US 3223243264,3223243519,CA 3223244288,3223248895,US 3223249408,3223249663,CA @@ -54629,8 +55264,11 @@ 3225091584,3225091839,US 3225092096,3225314303,US 3225314304,3225314559,GB -3225314560,3225421823,US -3225421824,3225423871,CA +3225314560,3225419775,US +3225420032,3225420287,US +3225420800,3225422079,CA +3225422080,3225422095,AE +3225422096,3225423871,CA 3225423872,3225426943,US 3225426944,3225427199,AT 3225427968,3225428991,US @@ -54644,16 +55282,16 @@ 3225446400,3225450495,US 3225450496,3225451519,AG 3225451776,3225452031,SE +3225452544,3225456639,CA 3225456640,3225459711,US 3225459968,3225460479,US 3225460480,3225462783,CA -3225462784,3225464831,US +3225462784,3225468927,US 3225468928,3225469951,CA 3225470464,3225470719,US 3225471488,3225471743,DE 3225471744,3225472511,US -3225477120,3225481215,US -3225485312,3225498111,US +3225473024,3225498111,US 3225498368,3225503487,NL 3225503488,3225506047,US 3225506304,3225508863,AU @@ -54798,20 +55436,20 @@ 3225747456,3225757695,US 3225757696,3225758719,CA 3225759232,3225759487,US +3225759744,3225763839,US 3225763840,3225764095,BE 3225764864,3225765887,CA 3225766400,3225766655,CA -3225766912,3225769983,US -3225772032,3225773055,US +3225766912,3225773055,US 3225773312,3225773567,CA -3225776128,3225776383,US +3225774080,3225776383,US 3225777152,3225777407,AU 3225777408,3225777663,US -3225780224,3225780479,US +3225778176,3225780479,US 3225781248,3225782271,CA 3225782272,3225785343,US 3225785344,3225788415,CA -3225794560,3225806847,US +3225788416,3225806847,US 3225807360,3225807615,DE 3225807872,3225812991,US 3225812992,3225843711,FR @@ -54870,14 +55508,76 @@ 3226067456,3226067711,BE 3226067712,3226068223,US 3226068224,3226068479,GB -3226068480,3226068991,US -3226075136,3226107903,US +3226068480,3226109951,US 3226110208,3226110719,US 3226110720,3226128639,AU -3226128640,3226140671,US +3226128640,3226132527,US +3226132528,3226132543,CN +3226132544,3226132575,US +3226132576,3226132607,CN +3226132608,3226132623,US +3226132624,3226132711,CN +3226132712,3226132735,US +3226132736,3226133183,CN +3226133184,3226133247,US +3226133248,3226133599,CN +3226133600,3226133759,US +3226133760,3226134271,CN +3226134272,3226134527,US +3226134528,3226134719,CN +3226134720,3226134783,US +3226134784,3226135231,CN +3226135232,3226135239,CA +3226135240,3226135263,CN +3226135264,3226135271,US +3226135272,3226135279,CN +3226135280,3226135295,US +3226135296,3226135367,CN +3226135368,3226135375,US +3226135376,3226135423,CN +3226135424,3226135551,US +3226135552,3226135615,CN +3226135616,3226135631,US +3226135632,3226135871,CN +3226135872,3226135935,US +3226135936,3226136207,CN +3226136208,3226136215,US +3226136216,3226136263,CN +3226136264,3226136271,US +3226136272,3226136287,CN +3226136288,3226136295,US +3226136296,3226136303,CN +3226136304,3226136319,US +3226136320,3226136479,CN +3226136480,3226136487,US +3226136488,3226136575,CN +3226136576,3226136607,US +3226136608,3226136807,CN +3226136808,3226136815,US +3226136816,3226136991,CN +3226136992,3226137023,US +3226137024,3226137215,CN +3226137216,3226137223,US +3226137224,3226137247,CN +3226137248,3226137343,US +3226137344,3226137599,CN +3226137600,3226138623,US +3226138624,3226138911,CN +3226138912,3226139007,US +3226139008,3226139167,CN +3226139168,3226139183,US +3226139184,3226139263,CN +3226139264,3226139647,US +3226139648,3226139663,CN +3226139664,3226139903,US +3226139904,3226140287,CN +3226140288,3226140415,US +3226140416,3226140671,CN 3226140672,3226157567,CA 3226157568,3226157823,US -3226157824,3226189823,CA +3226157824,3226177535,CA +3226177536,3226178559,US +3226178560,3226189823,CA 3226189824,3226191871,US 3226191872,3226201087,CA 3226201344,3226201855,CA @@ -54926,8 +55626,7 @@ 3226393600,3226393855,DE 3226393856,3226397695,US 3226397696,3226400255,DE -3226400256,3226468351,US -3226470400,3226473471,US +3226400256,3226473471,US 3226473472,3226473983,PT 3226473984,3226474495,US 3226474496,3226474751,CL @@ -54939,34 +55638,35 @@ 3226480384,3226481407,US 3226481408,3226481663,DE 3226481664,3226492927,US -3226501120,3226517503,US -3226519552,3226521855,US +3226501120,3226521855,US 3226521856,3226522111,BR -3226522112,3226533887,US -3226535936,3226536191,US -3226536960,3226537983,CA -3226546176,3226546431,US +3226522112,3226536191,US +3226536960,3226542079,CA +3226542080,3226546431,US 3226547200,3226548223,CA 3226548992,3226549247,BE 3226549248,3226550271,GB 3226550272,3226555391,US 3226555648,3226555903,CA -3226556416,3226560511,US +3226556416,3226561535,US 3226561792,3226562047,NO -3226563072,3226563327,US +3226562560,3226564607,US 3226564864,3226565119,DE 3226565376,3226565631,FI -3226569984,3226570239,US +3226565632,3226574847,US 3226574848,3226575103,FI 3226576384,3226576639,US +3226576896,3226578943,CA +3226578944,3226579967,US 3226580480,3226581247,EU 3226582528,3226582783,US 3226583040,3226583295,US 3226583552,3226583807,SE +3226584064,3226591231,US +3226591232,3226592255,CA 3226592768,3226593023,DE 3226593792,3226594047,GB -3226598400,3226598911,US -3226599424,3226626047,US +3226594304,3226626047,US 3226626048,3226626303,CA 3226626304,3226629375,US 3226629376,3226629631,CA @@ -54998,6 +55698,7 @@ 3226656512,3226661119,US 3226661120,3226661375,DE 3226661888,3226662143,US +3226662912,3226664959,US 3226664960,3226690815,FI 3226690816,3226691071,CA 3226691072,3226691327,GB @@ -55007,7 +55708,7 @@ 3226695680,3226695935,US 3226695936,3226696191,CA 3226696448,3226696703,AU -3226705408,3226705919,US +3226696704,3226705919,US 3226705920,3226706175,FR 3226706176,3226706943,US 3226707200,3226707455,PL @@ -55017,9 +55718,7 @@ 3226715904,3226716159,US 3226716160,3226716415,GB 3226716672,3226716927,GB -3226716928,3226717439,US -3226717696,3226717951,US -3226717952,3226720511,GB +3226716928,3226718207,US 3226720768,3226721279,JP 3226721280,3226721791,US 3226722048,3226722303,CH @@ -55046,8 +55745,7 @@ 3226738176,3226738431,NL 3226738432,3226738687,US 3226738688,3226739199,NO -3226740736,3226742783,US -3226744576,3226746367,US +3226739712,3226746367,US 3226746368,3226746623,PT 3226746624,3226748927,US 3226749440,3226749695,US @@ -55162,8 +55860,7 @@ 3227027456,3227035135,US 3227035136,3227035391,EU 3227035392,3227035647,AP -3227035648,3227038207,US -3227039744,3227040255,US +3227035648,3227040255,US 3227040512,3227040767,AU 3227040768,3227041279,US 3227041280,3227041535,NZ @@ -55237,12 +55934,11 @@ 3227290880,3227291135,AT 3227291136,3227294207,PT 3227294464,3227294975,GR -3227295232,3227305983,US -3227309824,3227310079,US +3227295232,3227310079,US 3227310080,3227310335,NO 3227310336,3227312127,US 3227312128,3227312383,DK -3227312384,3227315199,US +3227312384,3227320319,US 3227320320,3227362047,FR 3227362048,3227362303,US 3227362304,3227363071,GB @@ -55303,15 +55999,24 @@ 3227448064,3227448575,AU 3227448576,3227448831,US 3227448832,3227449087,ZA -3227449088,3227450367,US -3227451392,3227451423,US -3227451424,3227455487,CA +3227449088,3227451455,US +3227451456,3227455487,CA 3227455488,3227456255,US -3227456256,3227467775,CA -3227468032,3227468287,US +3227456256,3227457023,CA +3227457024,3227457279,US +3227457280,3227464447,CA +3227464448,3227464575,US +3227464576,3227467775,CA +3227467776,3227475967,US 3227484160,3227516927,CA -3227516928,3227568127,ZA -3227570176,3227574271,US +3227516928,3227533311,ZA +3227533312,3227534335,US +3227534336,3227557887,ZA +3227557888,3227558911,US +3227558912,3227559935,ZA +3227559936,3227561983,US +3227561984,3227568127,ZA +3227568128,3227574271,US 3227574272,3227582463,ZA 3227582464,3227638271,US 3227638272,3227638527,CA @@ -55491,8 +56196,7 @@ 3228061184,3228061695,US 3228061952,3228062207,US 3228062208,3228062463,GB -3228062464,3228073983,US -3228076032,3228077055,US +3228062464,3228077055,US 3228077056,3228077311,NL 3228077312,3228077567,US 3228077568,3228077823,NL @@ -55555,7 +56259,7 @@ 3228271360,3228271615,CA 3228271616,3228271871,DE 3228272128,3228272383,US -3228274688,3228280831,US +3228272640,3228280831,US 3228280832,3228281087,GB 3228281088,3228281599,US 3228281600,3228282111,NZ @@ -55609,8 +56313,8 @@ 3228406016,3228406271,US 3228406272,3228407039,FR 3228407040,3228413183,DE -3228413184,3228413439,SG -3228413440,3228430847,DE +3228413184,3228413695,SG +3228413696,3228430847,DE 3228430848,3228431103,ZA 3228431104,3228434431,DE 3228434432,3228456191,US @@ -55621,7 +56325,9 @@ 3228461568,3228461823,CA 3228461824,3228464127,US 3228464128,3228464383,CA -3228464384,3228496127,US +3228464384,3228477695,US +3228478464,3228479487,CA +3228479488,3228496127,US 3228496128,3228496383,GB 3228496384,3228508159,US 3228508160,3228508415,AU @@ -55634,8 +56340,7 @@ 3228512000,3228512255,DE 3228512256,3228512511,CH 3228512512,3228513791,US -3228516352,3228520447,US -3228521984,3228522495,US +3228514304,3228522495,US 3228522496,3228522751,GB 3228522752,3228525823,US 3228525824,3228526079,PT @@ -55685,9 +56390,28 @@ 3228696576,3228826371,IL 3228826372,3228826372,US 3228826373,3229024255,IL -3229024256,3229057023,US -3229058816,3229059071,US -3229061120,3229065215,CA +3229024256,3229059071,US +3229061120,3229061343,CA +3229061344,3229061359,US +3229061360,3229061375,CA +3229061376,3229061631,US +3229061632,3229062031,CA +3229062032,3229062047,US +3229062048,3229062143,CA +3229062144,3229062175,US +3229062176,3229062433,CA +3229062434,3229062450,US +3229062451,3229062527,CA +3229062528,3229062591,US +3229062592,3229062655,CA +3229062656,3229063295,US +3229063296,3229063423,CA +3229063424,3229063679,US +3229063680,3229063935,CA +3229063936,3229064191,US +3229064192,3229064951,CA +3229064952,3229064955,US +3229064956,3229065215,CA 3229073408,3229092095,US 3229092096,3229093887,AU 3229093888,3229104895,US @@ -55761,7 +56485,7 @@ 3229701888,3229702143,TR 3229702144,3229704703,US 3229704704,3229704959,DE -3229705216,3229712383,US +3229705216,3229745151,US 3229745152,3229810687,FI 3229810688,3229814015,US 3229814016,3229814271,AU @@ -55852,8 +56576,7 @@ 3229958144,3229958399,NO 3229958400,3229958655,US 3229958912,3229959167,SG -3229959168,3229961215,US -3229962240,3229968895,US +3229959168,3229968895,US 3229969408,3229969663,PT 3229969664,3229969919,AT 3229969920,3229970431,FI @@ -55878,6 +56601,7 @@ 3230085376,3230085631,US 3230085888,3230086143,DE 3230086144,3230086655,GB +3230087168,3230088191,US 3230088960,3230089215,AT 3230089216,3230089727,US 3230089728,3230089983,GB @@ -55907,7 +56631,7 @@ 3230117888,3230120191,US 3230120448,3230120703,US 3230120704,3230120959,PT -3230120960,3230124031,US +3230120960,3230125055,US 3230125312,3230125567,US 3230125824,3230126335,AU 3230126336,3230126591,US @@ -56023,7 +56747,8 @@ 3230266112,3230267135,US 3230267136,3230267903,CA 3230267904,3230269439,US -3230269440,3230273535,GB +3230269440,3230271743,GB +3230272512,3230273535,US 3230275584,3230291455,US 3230291456,3230291711,PT 3230291712,3230295039,US @@ -56160,7 +56885,8 @@ 3230948608,3230951167,US 3230951168,3230951423,PT 3230951424,3230953471,US -3230953472,3230967295,AU +3230953472,3230954495,CA +3230954496,3230967295,AU 3230967296,3230967551,RU 3230967552,3230967807,ES 3230967808,3230969087,US @@ -56212,7 +56938,7 @@ 3231004928,3231005183,GB 3231005440,3231005695,FR 3231005696,3231005951,GB -3231005952,3231007743,US +3231005952,3231008767,US 3231009280,3231009791,US 3231010048,3231010303,FR 3231010304,3231010815,NO @@ -56318,7 +57044,11 @@ 3231120896,3231121151,NO 3231121408,3231149311,US 3231149312,3231149567,CA -3231149568,3231162367,US +3231149568,3231154431,US +3231155200,3231156223,CA +3231158272,3231162367,US +3231170560,3231186687,US +3231186688,3231186943,CN 3231186944,3231188479,US 3231188480,3231188735,NO 3231188736,3231190527,US @@ -56441,13 +57171,14 @@ 3231309824,3231316735,US 3231316736,3231316991,NZ 3231316992,3231322111,US -3231322112,3231326207,SG -3231326208,3231351807,US +3231322112,3231324671,SG +3231325184,3231326207,CA +3231326208,3231352831,US 3231354880,3231358975,CA +3231367168,3231383551,US 3231383552,3231385599,NO 3231385600,3231408127,US -3231416320,3231424511,US -3231449088,3231475199,US +3231416320,3231475199,US 3231475200,3231475455,PL 3231475456,3231482879,US 3231482880,3231483135,BE @@ -56486,7 +57217,7 @@ 3231514624,3231515647,NO 3231515648,3231516159,US 3231516672,3231519231,SE -3231522560,3231524863,US +3231519744,3231524863,US 3231526912,3231531007,CA 3231531008,3231539199,US 3231547392,3231547647,US @@ -56519,7 +57250,7 @@ 3231562752,3231563007,US 3231563008,3231563263,CH 3231563264,3231563519,ZA -3231580160,3231583231,US +3231563776,3231583231,US 3231583232,3231584255,CA 3231584256,3231588863,US 3231588864,3231589119,GB @@ -56529,7 +57260,7 @@ 3231594240,3231594495,GB 3231594496,3231649791,US 3231649792,3231653887,SG -3231653888,3231662079,US +3231653888,3231663103,US 3231663616,3231663871,FI 3231663872,3231664127,CA 3231664128,3231664383,US @@ -56557,7 +57288,8 @@ 3231675904,3231676159,IE 3231676672,3231676927,FR 3231676928,3231677183,FI -3231678464,3231686655,US +3231677440,3231686655,US +3231694848,3231711231,CA 3231711232,3231713023,US 3231713024,3231713279,CA 3231713280,3231713791,US @@ -56639,9 +57371,11 @@ 3231776000,3231776511,US 3231776768,3231793151,US 3231793152,3231793663,BE +3231794176,3231795199,US 3231797248,3231800319,US 3231800320,3231801343,CN 3231809536,3231810047,NZ +3231810560,3231811583,US 3231813632,3231817727,US 3231842304,3231843327,RU 3231843328,3231844351,NO @@ -56742,13 +57476,15 @@ 3232169728,3232169983,PL 3232169984,3232235519,IT 3232301056,3232309247,US -3232309248,3232313343,SG -3232313344,3232325631,US -3232366592,3232432127,US +3232309248,3232311807,SG +3232312320,3232325631,US +3232333824,3232401407,US +3232403456,3232407039,US +3232407040,3232407551,SG 3232432128,3232433151,EU 3232433152,3232433407,FR 3232433408,3232433663,EU -3232433920,3232436735,US +3232433920,3232438271,US 3232448512,3232464895,US 3232464896,3232483327,GB 3232485376,3232489471,US @@ -56765,7 +57501,8 @@ 3232562688,3232562943,CA 3232563200,3232565247,GB 3232565248,3232567295,US -3232567296,3232571391,NZ +3232567296,3232569599,NZ +3232570368,3232571391,CA 3232571392,3232579583,US 3232595968,3232598015,GB 3232600064,3232604159,US @@ -56848,14 +57585,16 @@ 3232704000,3232704511,CH 3232704512,3232705535,GB 3232705536,3232706559,FI -3232706560,3232706815,US +3232706560,3232708607,US 3232710656,3232718847,US 3232727040,3232759807,US 3232759808,3232825343,SE 3232890880,3233286143,US 3233288192,3233292287,CA +3233316864,3233349631,US 3233480704,3233484799,US -3233484800,3233488895,ES +3233484800,3233487359,ES +3233487872,3233488895,CA 3233488896,3233505279,US 3233513472,3233548287,US 3233548800,3233549055,PT @@ -56935,6 +57674,7 @@ 3233619456,3233620479,US 3233620480,3233620735,NZ 3233620736,3233620991,US +3233620992,3233622015,CA 3233622272,3233622527,GB 3233622528,3233624831,US 3233624832,3233625087,AT @@ -56999,6 +57739,7 @@ 3233695232,3233696511,US 3233696512,3233696767,CA 3233696768,3233697791,US +3233699840,3233700863,US 3233701632,3233701887,NO 3233701888,3233704959,US 3233704960,3233705215,NZ @@ -57148,7 +57889,8 @@ 3234065408,3234065663,GB 3234065664,3234065919,BR 3234065920,3234070527,US -3234070528,3234136063,FR +3234070528,3234110463,FR +3234110464,3234111487,US 3234136064,3234172927,CA 3234172928,3234173951,US 3234173952,3234175999,CA @@ -57158,7 +57900,7 @@ 3234187520,3234192383,CA 3234192384,3234193663,US 3234193664,3234201599,CA -3234202624,3234203647,US +3234201600,3234203647,US 3234203648,3234205695,BR 3234205696,3234226175,US 3234234368,3234239231,US @@ -57170,7 +57912,8 @@ 3234240512,3234240607,US 3234240608,3234240611,IL 3234240612,3234250751,US -3234267136,3234271231,US +3234267136,3234269695,US +3234270208,3234271231,CA 3234271232,3234275327,PT 3234275328,3234279423,AU 3234279424,3234283519,CA @@ -57306,8 +58049,32 @@ 3234922496,3234988031,US 3234988032,3234992127,CA 3234992128,3235004415,US -3235004416,3235020799,CA -3235020800,3235184639,US +3235004416,3235021823,CA +3235021824,3235022079,US +3235022080,3235022143,AU +3235022144,3235022367,US +3235022368,3235022383,CA +3235022384,3235022399,US +3235022400,3235022423,CA +3235022424,3235024383,US +3235024384,3235024447,BG +3235024448,3235024511,US +3235024512,3235024639,BG +3235024640,3235025055,US +3235025056,3235025071,BD +3235025072,3235025079,CA +3235025080,3235025135,US +3235025136,3235025151,BD +3235025152,3235026943,US +3235026944,3235028991,CA +3235028992,3235045375,US +3235045376,3235046143,CA +3235046144,3235046271,US +3235046272,3235046335,GB +3235046336,3235046351,BD +3235046352,3235047839,US +3235047840,3235047871,GB +3235047872,3235184639,US 3235184640,3235184895,CA 3235184896,3235275007,US 3235278848,3235282943,BB @@ -57396,8 +58163,9 @@ 3235970816,3236044799,US 3236044800,3236052991,CA 3236052992,3236069375,US +3236069376,3236102143,CA 3236102144,3236106239,PH -3236106240,3236134911,US +3236106240,3236167679,US 3236167680,3236172543,CA 3236172544,3236172799,US 3236172800,3236175871,CA @@ -57518,19 +58286,17 @@ 3236958208,3236962303,AU 3236962304,3236978687,US 3236986880,3236995071,US -3237019648,3237022271,US -3237022272,3237022287,CA -3237022288,3237022291,US +3237019648,3237022291,US 3237022292,3237022335,CA 3237022336,3237022367,US 3237022368,3237022399,CA -3237022400,3237022431,US -3237022432,3237022719,CA +3237022400,3237022447,US +3237022448,3237022719,CA 3237022720,3237023231,US 3237023232,3237023263,CA 3237023264,3237023279,US -3237023280,3237023743,CA -3237023744,3237036031,US +3237023280,3237023487,CA +3237023488,3237036031,US 3237085184,3237154815,US 3237154816,3237155839,ES 3237155840,3237156863,AU @@ -57895,7 +58661,7 @@ 3239129088,3239130111,DE 3239130112,3239130367,RU 3239130368,3239130623,JO -3239130624,3239131135,PL +3239130624,3239130879,PL 3239131136,3239133183,DE 3239133184,3239133439,CH 3239133440,3239133695,GB @@ -57903,7 +58669,6 @@ 3239133952,3239134207,SE 3239134208,3239134463,IL 3239134464,3239134719,UA -3239134720,3239134975,RO 3239134976,3239135231,PL 3239135232,3239135487,SE 3239135488,3239135743,FR @@ -57961,7 +58726,6 @@ 3239173376,3239173631,DE 3239173632,3239173887,AT 3239173888,3239174143,PL -3239174144,3239174399,DE 3239174400,3239174655,RO 3239174656,3239174911,GB 3239174912,3239175167,SI @@ -58010,7 +58774,6 @@ 3239284736,3239285247,IR 3239285248,3239285503,SE 3239285504,3239285759,BG -3239285760,3239286783,KW 3239286784,3239287807,UA 3239287808,3239288831,GB 3239288832,3239289855,DE @@ -58324,7 +59087,6 @@ 3239782912,3239783167,GB 3239783168,3239783423,CH 3239783424,3239783679,DK -3239783680,3239783935,CH 3239783936,3239784191,DE 3239784192,3239784447,ES 3239784448,3239788543,DE @@ -58333,7 +59095,7 @@ 3239789568,3239790079,FR 3239790080,3239790591,RO 3239790592,3239791103,LV -3239791104,3239792127,CH +3239791104,3239791615,CH 3239792128,3239792639,FR 3239792640,3239793151,UA 3239793152,3239793663,PL @@ -58383,7 +59145,6 @@ 3239841024,3239841279,NL 3239841280,3239848447,DE 3239848448,3239848703,CH -3239848704,3239848959,SE 3239848960,3239849215,RU 3239849216,3239849471,GB 3239849472,3239849727,RU @@ -58466,7 +59227,6 @@ 3239902208,3239902463,PL 3239902464,3239902719,RU 3239902720,3239902975,EE -3239902976,3239903231,GB 3239903232,3239907327,DE 3239907328,3239907583,UA 3239907584,3239908095,DE @@ -58505,14 +59265,13 @@ 3239960576,3239968511,DE 3239968512,3239968767,PL 3239968768,3239969023,NO -3239969024,3239974911,DE +3239969280,3239974911,DE 3239974912,3239975935,GB 3239975936,3239976191,RO 3239976192,3239976447,DE 3239976448,3239976959,NL 3239976960,3239978751,DE 3239978752,3239979007,RU -3239979008,3239979263,UA 3239979264,3239979519,GB 3239979520,3239979775,DE 3239979776,3239980031,SI @@ -59013,7 +59772,6 @@ 3240736256,3240736767,BG 3240736768,3240737791,UA 3240737792,3240738815,BG -3240738816,3240739071,UA 3240739072,3240739327,CH 3240739328,3240739583,FR 3240739584,3240739839,LV @@ -59313,7 +60071,6 @@ 3241500672,3241501439,BE 3241501440,3241501951,EU 3241501952,3241502975,BE -3241502976,3241503231,GR 3241503232,3241503487,RS 3241503488,3241508095,BE 3241508096,3241508351,NL @@ -59361,7 +60118,6 @@ 3241866240,3241866751,DE 3241866752,3241867007,UA 3241867008,3241867263,FR -3241867264,3241867519,UA 3241867520,3241867775,PL 3241867776,3241868031,NO 3241868032,3241868287,RU @@ -59445,7 +60201,6 @@ 3243529984,3243530239,GB 3243530240,3243530495,RU 3243530496,3243530751,FR -3243530752,3243531007,UA 3243531008,3243531263,DE 3243531264,3243531775,CZ 3243531776,3243532031,AT @@ -59618,7 +60373,6 @@ 3244834816,3244835071,RU 3244835072,3244835327,AT 3244835328,3244835583,DE -3244835584,3244835839,UA 3244835840,3244836095,RS 3244836096,3244836607,RU 3244836608,3244836863,PL @@ -59930,7 +60684,6 @@ 3244921856,3244922111,BG 3244922112,3244922367,DK 3244922368,3244922623,GB -3244922624,3244922879,BG 3244922880,3244923135,UA 3244923136,3244923391,AT 3244923392,3244923647,EU @@ -59939,7 +60692,6 @@ 3244924160,3244924927,CZ 3244924928,3244925183,FI 3244925184,3244925439,CH -3244925440,3244925695,GB 3244925696,3244925951,RS 3244925952,3244926207,UA 3244926208,3244926463,NL @@ -60326,7 +61078,7 @@ 3245201408,3245201663,UA 3245201664,3245201919,NO 3245201920,3245202175,SA -3245202176,3245202687,GB +3245202432,3245202687,GB 3245202688,3245203455,DE 3245203456,3245203711,FR 3245203712,3245204223,PL @@ -60348,7 +61100,6 @@ 3245210112,3245210623,FR 3245210624,3245211135,HU 3245211136,3245211647,GB -3245211648,3245212159,RU 3245212160,3245212671,NG 3245212672,3245213183,GB 3245213184,3245213695,DE @@ -60952,8 +61703,7 @@ 3248576512,3248603135,NO 3248603136,3248603391,BG 3248603392,3248603647,RU -3248603648,3248619263,NO -3248619264,3248619519,UA +3248603648,3248619519,NO 3248619520,3248719871,DK 3248719872,3248720127,EU 3248720128,3248748543,DK @@ -61063,8 +61813,7 @@ 3249094656,3249095679,FR 3249095680,3249096191,NL 3249096192,3249096703,IL -3249096704,3249096959,DE -3249096960,3249097215,EU +3249096704,3249097215,DE 3249097216,3249097727,DK 3249097728,3249098239,DE 3249098240,3249098751,PL @@ -61158,7 +61907,7 @@ 3249551360,3249552639,GB 3249552640,3249574143,NL 3249574144,3249574399,RU -3249574400,3249574655,SE +3249574400,3249574655,GB 3249574656,3249574911,UA 3249574912,3249590527,NL 3249590528,3249590783,FR @@ -61518,7 +62267,7 @@ 3251112704,3251112959,SE 3251112960,3251113215,BG 3251113216,3251113471,VG -3251113472,3251114495,BG +3251113472,3251113983,BG 3251114496,3251114751,RU 3251114752,3251115007,RO 3251115008,3251115263,PL @@ -61706,7 +62455,7 @@ 3251184128,3251184383,PL 3251184384,3251184639,DK 3251184640,3251184895,PL -3251184896,3251185407,DE +3251184896,3251185151,DE 3251185408,3251185663,DK 3251185664,3251185919,IT 3251185920,3251186175,AT @@ -61772,7 +62521,6 @@ 3251213504,3251213567,NL 3251213568,3251213631,FR 3251213632,3251213695,PL -3251213696,3251213759,LV 3251213760,3251213823,CY 3251213824,3251213887,GB 3251213888,3251214015,CY @@ -61861,7 +62609,8 @@ 3251269120,3251269215,DK 3251269216,3251269270,NL 3251269271,3251269271,DK -3251269272,3251269887,NL +3251269272,3251269727,NL +3251269728,3251269887,DE 3251269888,3251270143,GB 3251270144,3251270399,PL 3251270400,3251270655,NO @@ -62498,7 +63247,6 @@ 3253972992,3253974783,GB 3253974784,3253974847,NO 3253974848,3253974911,SE -3253974912,3253974975,IL 3253974976,3253975039,SE 3253975040,3253977087,DE 3253977088,3253985279,TR @@ -62920,7 +63668,6 @@ 3255324160,3255324671,CH 3255324672,3255325695,RO 3255325696,3255326207,RU -3255326208,3255326719,DE 3255326720,3255327231,IL 3255327232,3255327743,DE 3255327744,3255328255,GB @@ -63010,7 +63757,6 @@ 3255422976,3255423999,RO 3255424000,3255425023,LV 3255426048,3255426559,IT -3255426560,3255426815,FR 3255426816,3255427071,PL 3255427072,3255431167,RU 3255431168,3255434464,GB @@ -63129,9 +63875,7 @@ 3256489472,3256489983,GR 3256489984,3256490239,BE 3256490240,3256490495,DE -3256490496,3256513023,NL -3256513024,3256513279,GB -3256513280,3256513791,NL +3256490496,3256513791,NL 3256513792,3256514047,GB 3256514048,3256524287,NL 3256524288,3256524799,DE @@ -63398,7 +64142,6 @@ 3257455360,3257455615,SI 3257455616,3257466879,CH 3257466880,3257467135,DE -3257467136,3257467391,GB 3257467392,3257467903,SE 3257467904,3257468927,IT 3257468928,3257469183,EU @@ -63548,7 +64291,6 @@ 3258067456,3258067967,GR 3258067968,3258068223,RO 3258068224,3258068479,CH -3258068480,3258068735,GB 3258068736,3258068991,DE 3258068992,3258069247,NL 3258069248,3258069503,PL @@ -63842,7 +64584,6 @@ 3259353856,3259354111,GB 3259354112,3259354367,NL 3259354368,3259354623,DE -3259354624,3259354879,TR 3259354880,3259355135,PL 3259355136,3259359231,NO 3259359232,3259367423,ES @@ -64120,7 +64861,6 @@ 3262006528,3262006783,FR 3262006784,3262007039,SE 3262007040,3262007295,IT -3262007296,3262007551,SA 3262007552,3262007807,GR 3262007808,3262008063,RO 3262008064,3262008319,GB @@ -64196,7 +64936,6 @@ 3262053120,3262053375,RU 3262053376,3262053631,UA 3262053632,3262053887,RU -3262053888,3262054143,UA 3262054144,3262054399,RU 3262054400,3262121727,FI 3262121728,3262121983,AX @@ -64533,7 +65272,6 @@ 3264016128,3264016383,UA 3264016384,3264016639,SE 3264016640,3264016895,PL -3264016896,3264017151,GB 3264017152,3264017663,SE 3264017664,3264017919,RO 3264017920,3264018175,NL @@ -64822,7 +65560,6 @@ 3264754944,3264755199,PL 3264755200,3264755711,DE 3264755712,3264756223,PL -3264756224,3264756735,FI 3264756736,3264757247,PL 3264757248,3264757759,RU 3264757760,3264765951,GB @@ -64961,7 +65698,7 @@ 3265601024,3265601535,RU 3265601536,3265601791,SE 3265601792,3265602047,CH -3265602048,3265602559,NL +3265602048,3265602303,NL 3265602560,3265602815,IT 3265602816,3265603071,IE 3265603072,3265603327,DK @@ -65279,14 +66016,12 @@ 3268742656,3268742911,BE 3268742912,3268743167,NL 3268743168,3268743423,RO -3268743424,3268743679,PL 3268743680,3268743935,GB 3268743936,3268744191,ES 3268744192,3268744447,DE 3268744448,3268744703,RU 3268744704,3268744959,PL 3268744960,3268745215,UA -3268745216,3268745471,KZ 3268745472,3268745727,RU 3268745728,3268745983,PL 3268745984,3268746239,DE @@ -65412,7 +66147,6 @@ 3270926592,3270926847,CH 3270926848,3270927103,PL 3270927104,3270927359,UA -3270927360,3270927615,CH 3270927616,3270927871,FR 3270927872,3270928127,HU 3270928128,3270928383,RO @@ -65596,7 +66330,6 @@ 3271929088,3271929343,LB 3271929344,3271929599,NO 3271929600,3271929855,GB -3271929856,3271930111,PL 3271930112,3271930367,HU 3271930368,3271930623,RU 3271930624,3271930879,GE @@ -66599,7 +67332,6 @@ 3275511296,3275511551,GB 3275511552,3275511679,NL 3275511680,3275511807,CY -3275511808,3275511935,CH 3275511936,3275512063,FR 3275512064,3275512191,CZ 3275512192,3275512319,IT @@ -66628,7 +67360,6 @@ 3275532288,3275532799,UA 3275532800,3275533823,GB 3275533824,3275534335,UA -3275534336,3275534847,IL 3275534848,3275535359,RO 3275535360,3275535871,DE 3275535872,3275536383,SE @@ -67425,7 +68156,6 @@ 3277691392,3277691903,UA 3277691904,3277692415,GB 3277692416,3277692927,DE -3277692928,3277693439,UA 3277693440,3277693951,PL 3277693952,3277694463,RU 3277694464,3277694975,DE @@ -67827,7 +68557,6 @@ 3280463872,3280466943,RU 3280466944,3280467967,UA 3280467968,3280468991,ES -3280468992,3280470015,CY 3280470016,3280535551,PL 3280535552,3280568319,GB 3280568320,3280576511,IT @@ -68415,7 +69144,7 @@ 3283632640,3283633151,GB 3283633152,3283633663,SE 3283633664,3283634175,UA -3283634176,3283635199,RU +3283634688,3283635199,RU 3283635200,3283635711,GB 3283635712,3283636223,RU 3283636224,3283636735,UA @@ -69014,7 +69743,11 @@ 3285934848,3285935103,GB 3285935104,3285935871,EU 3285935872,3285936127,GB -3285936128,3285939743,EU +3285936128,3285939135,EU +3285939136,3285939175,GB +3285939176,3285939183,EU +3285939184,3285939191,GB +3285939192,3285939743,EU 3285939744,3285939759,GB 3285939760,3285943551,EU 3285943552,3285943647,GB @@ -69245,7 +69978,6 @@ 3286913024,3286913535,DE 3286914048,3286915071,BG 3286915072,3286916095,FR -3286916096,3286917119,DE 3286917120,3286918143,RU 3286918144,3286919167,AT 3286919168,3286920191,DE @@ -69266,7 +69998,6 @@ 3286927616,3286927871,SI 3286927872,3286928127,BG 3286928128,3286928383,DE -3286928384,3286928639,ES 3286928640,3286928895,PL 3286928896,3286929151,FI 3286929152,3286929407,DE @@ -69485,7 +70216,6 @@ 3287474176,3287476223,DE 3287476224,3287477247,PL 3287477248,3287478271,GB -3287478272,3287479295,BG 3287479296,3287480319,RO 3287480320,3287481343,AT 3287481344,3287482367,PL @@ -69840,7 +70570,7 @@ 3288514560,3288522751,EG 3288530944,3288532991,JM 3288532992,3288534527,PR -3288534528,3288535039,MG +3288534528,3288535039,EG 3288535040,3288539135,CW 3288539136,3288543487,US 3288543488,3288543743,AP @@ -69891,7 +70621,9 @@ 3288661760,3288662015,LS 3288662016,3288727551,ZA 3288727552,3288727807,MU -3288727808,3289063423,ZA +3288727808,3288753919,ZA +3288753920,3288754175,NG +3288758272,3289063423,ZA 3289069568,3289070335,ZA 3289070336,3289070591,ZW 3289070592,3289070847,NA @@ -70179,14 +70911,13 @@ 3291435008,3291439103,A2 3291447296,3291463679,CI 3291480064,3291545599,SC -3291742208,3292266495,ZA +3291742208,3292004351,ZA +3292004352,3292266495,SC 3300917248,3300921343,MU 3300925440,3300929535,MG 3300933632,3300950015,MU 3300982784,3301179391,ZA -3301179392,3301244927,SC -3301244928,3301375999,ZA -3301376000,3301441535,SC +3301179392,3301441535,SC 3301441536,3301441567,ZA 3301441568,3301441575,NG 3301441576,3301441655,ZA @@ -70292,6 +71023,7 @@ 3301912576,3301916671,MU 3301949440,3301965823,SN 3301965824,3302490111,ZA +3302490112,3302490367,KE 3302490368,3302490623,US 3302490624,3302491135,MU 3302491136,3302492159,NG @@ -70388,7 +71120,10 @@ 3302956032,3302956287,CD 3302956544,3302957055,ZA 3302957056,3302957311,CG -3304062976,3305111551,ZA +3304062976,3304456191,SC +3304456192,3304521727,ZA +3304521728,3304587263,SC +3304587264,3305111551,ZA 3305111552,3307208703,TN 3307208704,3309305855,EG 3309305856,3312451583,ZA @@ -70486,13 +71221,16 @@ 3317694464,3318218751,EG 3318218752,3318743039,DZ 3318743040,3318874111,SD +3318939648,3318947839,KE 3318947840,3318956031,NG +3318972416,3318988799,ZA 3318988800,3319005183,ZW 3319005184,3319136255,ZM 3319136256,3319152639,NE 3319152640,3319156735,GQ 3319160832,3319164927,NG 3319164928,3319166975,ZA +3319169024,3319201791,CG 3319201792,3319234559,SL 3319267328,3319398399,AO 3319398400,3319529471,MZ @@ -70512,14 +71250,24 @@ 3319652352,3319660543,ZW 3319660544,3319791615,EG 3319791616,3320053759,MU +3320283136,3320285183,GM +3320285184,3320287231,GA +3320287232,3320289279,ZA +3320295424,3320297471,KE +3320297472,3320299519,MU +3320299520,3320300543,BW +3320300544,3320301567,ZA +3320301568,3320302591,SO 3320381440,3320446975,NA 3320479744,3320500223,ZA 3320500224,3320502271,BW +3320502272,3320504319,BJ 3320504320,3320505343,TZ 3320505344,3320506367,NG 3320506368,3320507391,ZA 3320507392,3320508415,KE 3320508416,3320509439,SC +3320509440,3320510463,RW 3320512512,3320578047,MZ 3320578048,3320643583,ZA 3320643584,3320709119,KE @@ -70563,7 +71311,10 @@ 3321790464,3321806847,LS 3321806848,3321823231,SD 3321823232,3321839615,NG -3321839616,3321855999,GH +3321839616,3321843711,GH +3321843712,3321853695,MU +3321853696,3321853951,GH +3321853952,3321855999,MU 3321856000,3321860095,CV 3321860096,3321864191,ZA 3321864192,3321868287,NG @@ -70592,19 +71343,35 @@ 3322254720,3322254783,CA 3322254784,3322339583,US 3322339584,3322339839,GB -3322339840,3322609663,US +3322339840,3322361856,US +3322361857,3322361864,AT +3322361865,3322361870,US +3322361871,3322361882,CY +3322361883,3322362047,US +3322362048,3322362063,CN +3322362064,3322362079,US +3322362080,3322362111,VG +3322362112,3322362367,US +3322362368,3322362431,DE +3322362432,3322363039,US +3322363040,3322363071,BR +3322363072,3322609663,US 3322609664,3322610687,SA 3322610688,3322642431,US 3322675200,3322683391,US 3322683392,3322691583,BR -3322691584,3322691791,US +3322691584,3322691647,US +3322691648,3322691655,KW +3322691656,3322691791,US 3322691792,3322691807,CA 3322691808,3322691823,GB 3322691824,3322691839,US 3322691840,3322692095,SE 3322692096,3322692223,US 3322692224,3322692351,CA -3322692352,3322692943,US +3322692352,3322692927,US +3322692928,3322692935,KW +3322692936,3322692943,US 3322692944,3322692959,CA 3322692960,3322692991,US 3322692992,3322693119,CA @@ -70620,7 +71387,9 @@ 3322695904,3322695919,GB 3322695920,3322706271,US 3322706272,3322706303,CA -3322706304,3322707151,US +3322706304,3322706959,US +3322706960,3322706975,CA +3322706976,3322707151,US 3322707152,3322707167,CA 3322707168,3322707327,US 3322707328,3322707343,GB @@ -70642,7 +71411,15 @@ 3322889600,3322889607,PE 3322889608,3322889839,US 3322889840,3322889855,PE -3322889856,3322892631,US +3322889856,3322890223,US +3322890224,3322890239,BG +3322890240,3322890423,US +3322890424,3322890431,QA +3322890432,3322890439,US +3322890440,3322890447,QA +3322890448,3322890719,US +3322890720,3322890727,QA +3322890728,3322892631,US 3322892632,3322892639,IN 3322892640,3322893063,US 3322893064,3322893071,BR @@ -70654,14 +71431,28 @@ 3322894336,3322894399,CN 3322894400,3322894703,US 3322894704,3322894719,IN -3322894720,3322898839,US +3322894720,3322897063,US +3322897064,3322897071,QA +3322897072,3322898839,US 3322898840,3322898847,BR 3322898848,3322899135,US 3322899136,3322899143,IN -3322899144,3322904575,US +3322899144,3322902831,US +3322902832,3322902847,IN +3322902848,3322903375,US +3322903376,3322903383,GB +3322903384,3322903423,US +3322903424,3322903455,GB +3322903456,3322903487,US +3322903488,3322903495,GB +3322903496,3322903519,US +3322903520,3322903535,GB +3322903536,3322904575,US 3322937344,3322940671,US 3322940672,3322940927,AP -3322940928,3322970111,US +3322940928,3322945535,US +3322945536,3322951679,CN +3322951680,3322970111,US 3323003136,3323003391,JP 3323003392,3323003647,US 3323003904,3323013631,US @@ -70723,15 +71514,70 @@ 3323432144,3323432151,GB 3323432152,3323432255,US 3323432256,3323432319,AU -3323432320,3323434239,US -3323434240,3323434303,BG -3323434304,3323462655,US +3323432320,3323432415,US +3323432416,3323432447,IL +3323432448,3323432703,US +3323432704,3323432959,SE +3323432960,3323432991,US +3323432992,3323433023,MA +3323433024,3323434239,US +3323434240,3323434367,BG +3323434368,3323434399,US +3323434400,3323434431,BG +3323434432,3323434463,US +3323434464,3323434485,BG +3323434486,3323434486,US +3323434487,3323434495,BG +3323434496,3323436031,US +3323436032,3323436047,ES +3323436048,3323436223,US +3323436224,3323436255,IL +3323436256,3323436559,US +3323436560,3323436575,KW +3323436576,3323436927,US +3323436928,3323436935,ID +3323436936,3323436991,US +3323436992,3323437055,ID +3323437056,3323437567,US +3323437568,3323438079,CA +3323438080,3323438111,AU +3323438112,3323460223,US +3323460224,3323460287,BG +3323460288,3323461375,US +3323461376,3323461503,CA +3323461504,3323462655,US 3323462656,3323463167,BR -3323463168,3323659263,US +3323463168,3323494895,US +3323494896,3323494911,GB +3323494912,3323495015,US +3323495016,3323495023,QA +3323495024,3323497519,US +3323497520,3323497527,QA +3323497528,3323659263,US 3323659264,3323660543,NZ 3323662336,3323674623,US -3323674624,3323681279,CA -3323681280,3323741439,US +3323674624,3323678015,CA +3323678016,3323678031,US +3323678032,3323678047,CA +3323678048,3323678111,US +3323678112,3323678127,CA +3323678128,3323678135,US +3323678136,3323678143,CA +3323678144,3323678147,US +3323678148,3323678151,CA +3323678152,3323678159,US +3323678160,3323678167,CA +3323678168,3323678171,US +3323678172,3323678207,CA +3323678208,3323678511,US +3323678512,3323678519,CA +3323678520,3323678527,US +3323678528,3323678607,CA +3323678608,3323678639,US +3323678640,3323678687,CA +3323678688,3323678695,US +3323678696,3323680255,CA +3323680256,3323741439,US 3323741440,3323741695,GB 3323741696,3323747327,US 3323747328,3323747583,GB @@ -70745,7 +71591,15 @@ 3324040192,3324040447,AU 3324040448,3324051455,US 3324051456,3324182527,CA -3324182528,3324255231,US +3324182528,3324195167,US +3324195168,3324195199,GB +3324195200,3324195775,US +3324195776,3324195807,CA +3324195808,3324196319,US +3324196320,3324196335,GB +3324196336,3324196639,US +3324196640,3324196671,DO +3324196672,3324255231,US 3324255232,3324256255,VI 3324256256,3324260095,SA 3324260096,3324266495,US @@ -70758,7 +71612,39 @@ 3324379136,3324380159,CA 3324380160,3324470271,US 3324470272,3324474367,GB -3324474368,3324579839,US +3324474368,3324522495,US +3324522496,3324522751,CN +3324522752,3324523007,US +3324523008,3324523431,CN +3324523432,3324523455,US +3324523456,3324523559,CN +3324523560,3324523567,US +3324523568,3324523575,CN +3324523576,3324523583,US +3324523584,3324524047,CN +3324524048,3324524055,US +3324524056,3324524255,CN +3324524256,3324524287,US +3324524288,3324524439,CN +3324524440,3324524447,US +3324524448,3324524543,CN +3324524544,3324524551,US +3324524552,3324524783,CN +3324524784,3324524791,US +3324524792,3324524991,CN +3324524992,3324525055,US +3324525056,3324525095,CN +3324525096,3324525103,US +3324525104,3324525111,CN +3324525112,3324525119,US +3324525120,3324525583,CN +3324525584,3324525631,US +3324525632,3324525695,CN +3324525696,3324525791,US +3324525792,3324526015,CN +3324526016,3324526335,US +3324526336,3324526591,CN +3324526592,3324579839,US 3324582912,3324583935,CA 3324583936,3324588031,CL 3324588032,3324642303,US @@ -70913,8 +71799,7 @@ 3325509632,3325591551,US 3325624320,3325640703,US 3325640704,3325644799,CA -3325644800,3325648895,US -3325657088,3325689855,US +3325644800,3325689855,US 3325689856,3325690367,JM 3325690368,3325691903,US 3325691904,3325693951,BR @@ -71040,8 +71925,7 @@ 3328475136,3328477183,CA 3328477184,3328479231,US 3328479232,3328481279,CA -3328481280,3328483327,US -3328491520,3328617983,US +3328481280,3328617983,US 3328617984,3328618239,CA 3328618240,3328629503,US 3328629504,3328629759,EU @@ -71056,6 +71940,7 @@ 3328788480,3328789503,FR 3328789504,3328790015,AP 3328790016,3328794623,US +3328794624,3328802815,CA 3328802816,3329230335,US 3329230336,3329230591,JP 3329230592,3329497343,US @@ -71257,7 +72142,7 @@ 3332461568,3332473855,CA 3332473856,3332477951,US 3332477952,3332483071,CA -3332483072,3332484095,US +3332483072,3332484095,A2 3332484096,3332503039,CA 3332503040,3332503551,US 3332503552,3332528127,CA @@ -71319,7 +72204,17 @@ 3333428224,3333429759,US 3333431296,3333480191,US 3333480192,3333481471,DE -3333481472,3333603327,US +3333481472,3333502975,US +3333502976,3333503135,CN +3333503136,3333503167,US +3333503168,3333503359,CN +3333503360,3333503391,US +3333503392,3333503783,CN +3333503784,3333503791,US +3333503792,3333504431,CN +3333504432,3333504447,US +3333504448,3333505023,CN +3333505024,3333603327,US 3333603328,3333603328,GB 3333603329,3333603329,EU 3333603330,3333603583,GB @@ -71370,14 +72265,17 @@ 3334187776,3334188031,BM 3334188032,3334932223,US 3334932224,3334932479,CA -3334932480,3334946815,US +3334932480,3334934015,US +3334934016,3334934527,CA +3334934528,3334946815,US 3334963200,3334995967,US 3334995968,3334998527,PH -3334999040,3335004159,US -3335028736,3335057407,US +3334998528,3335004159,US +3335028736,3335057919,US 3335057920,3335058175,CA -3335058176,3335251967,US -3335252224,3335252735,US +3335058176,3335160319,US +3335160320,3335160575,CA +3335160576,3335252735,US 3335252736,3335252991,CA 3335252992,3335276287,US 3335276288,3335276799,PR @@ -71456,9 +72354,24 @@ 3337653760,3337654783,CH 3337654784,3337655039,AU 3337655040,3337682943,CH -3337682944,3337892607,US +3337682944,3337891839,US +3337891840,3337892127,IN +3337892128,3337892159,US +3337892160,3337892255,IN +3337892256,3337892607,US 3337892608,3337892671,HK -3337892672,3337895935,US +3337892672,3337893119,US +3337893120,3337893631,CN +3337893632,3337894655,US +3337894656,3337894719,CN +3337894720,3337894783,US +3337894784,3337894911,CN +3337894912,3337895167,US +3337895168,3337895295,CN +3337895296,3337895423,US +3337895424,3337895615,CN +3337895616,3337895679,US +3337895680,3337895935,CN 3337912320,3337948671,US 3337948672,3337949183,CA 3337949184,3337957375,US @@ -71566,7 +72479,11 @@ 3338272256,3338350591,US 3338350592,3338354687,CA 3338371072,3338403839,CA -3338403840,3338551295,US +3338403840,3338420223,US +3338436608,3338455039,US +3338455040,3338455295,GB +3338455296,3338455551,US +3338456064,3338551295,US 3338567680,3338600447,CA 3338665984,3338686463,US 3338686464,3338688511,AW @@ -71624,9 +72541,9 @@ 3339179008,3339180031,US 3339180032,3339181055,CA 3339181056,3339184127,US -3339184128,3339184639,CA -3339184640,3339184895,US -3339184896,3339186175,CA +3339184128,3339185839,CA +3339185840,3339185843,US +3339185844,3339186175,CA 3339186176,3339327999,US 3339328512,3339329535,CA 3339329536,3339337727,US @@ -71658,16 +72575,20 @@ 3339753472,3339754495,CA 3339754496,3339760639,US 3339760640,3339761663,CA -3339761664,3339766047,US +3339761664,3339766023,US +3339766024,3339766031,UA +3339766032,3339766047,US 3339766048,3339766055,RO 3339766056,3339766079,US 3339766080,3339766087,AF -3339766088,3339766143,US -3339766144,3339766151,KR -3339766152,3339766183,US -3339766184,3339766191,HU +3339766088,3339766095,US +3339766096,3339766103,GB +3339766104,3339766151,US +3339766152,3339766159,RU +3339766160,3339766183,US +3339766184,3339766191,RO 3339766192,3339766231,US -3339766232,3339766239,GB +3339766232,3339766239,RO 3339766240,3339766247,OM 3339766248,3339766271,US 3339766272,3339766287,CA @@ -71703,20 +72624,42 @@ 3339766880,3339766887,IL 3339766888,3339766903,US 3339766904,3339766911,NZ -3339766912,3339766975,US +3339766912,3339766943,US +3339766944,3339766951,RU +3339766952,3339766975,US 3339766976,3339766983,DE 3339766984,3339767071,US 3339767072,3339767079,CA -3339767080,3339767135,US +3339767080,3339767103,US +3339767104,3339767111,CA +3339767112,3339767119,GB +3339767120,3339767127,RU +3339767128,3339767135,RO 3339767136,3339767143,GB -3339767144,3339767423,US +3339767144,3339767167,US +3339767168,3339767175,RU +3339767176,3339767199,US +3339767200,3339767207,IT +3339767208,3339767215,GB +3339767216,3339767231,US +3339767232,3339767239,RU +3339767240,3339767247,BR +3339767248,3339767255,DE +3339767256,3339767263,US +3339767264,3339767271,AR +3339767272,3339767423,US 3339767424,3339767431,GB -3339767432,3339767519,US +3339767432,3339767439,CN +3339767440,3339767455,US +3339767456,3339767463,IL +3339767464,3339767519,US 3339767520,3339767527,OM 3339767528,3339767535,US 3339767536,3339767543,GB -3339767544,3339767551,RO -3339767552,3339923455,US +3339767544,3339767551,DE +3339767552,3339767679,US +3339767680,3339767711,BR +3339767712,3339923455,US 3339923456,3339927551,CA 3339927552,3339934719,US 3339934720,3339935743,CA @@ -71804,9 +72747,7 @@ 3340857344,3340858015,CA 3340858016,3340858047,US 3340858048,3340858367,CA -3340858368,3340925063,US -3340925064,3340925071,BR -3340925072,3340925095,US +3340858368,3340925095,US 3340925096,3340925103,CA 3340925104,3340925159,US 3340925160,3340925167,FR @@ -71841,7 +72782,9 @@ 3340925736,3340925743,UA 3340925744,3340925759,US 3340925760,3340925767,FR -3340925768,3340925807,US +3340925768,3340925783,US +3340925784,3340925791,BR +3340925792,3340925807,US 3340925808,3340925815,RU 3340925816,3340925823,AU 3340925824,3340925887,GB @@ -71859,10 +72802,8 @@ 3340926016,3340926023,RU 3340926024,3340926063,US 3340926064,3340926071,CA -3340926072,3340926095,US -3340926096,3340926103,AU -3340926104,3340926143,US -3340926144,3340926151,BR +3340926072,3340926143,US +3340926144,3340926151,FR 3340926152,3340926159,CN 3340926160,3340926175,AR 3340926176,3340926191,US @@ -71895,14 +72836,13 @@ 3340926544,3340926559,GB 3340926560,3340926599,US 3340926600,3340926607,BR -3340926608,3340926615,US -3340926616,3340926623,NO -3340926624,3340926655,US +3340926608,3340926655,US 3340926656,3340926663,CA 3340926664,3340926671,BR 3340926672,3340926679,US 3340926680,3340926687,RO -3340926688,3340926815,US +3340926688,3340926807,US +3340926808,3340926815,IN 3340926816,3340926823,CA 3340926824,3340926887,US 3340926888,3340926895,BR @@ -71998,7 +72938,8 @@ 3341479936,3341480447,DE 3341480448,3341484287,US 3341484288,3341485055,CA -3341485056,3341488895,US +3341485056,3341488639,US +3341488640,3341488895,JP 3341488896,3341489151,AP 3341489152,3341511679,US 3341511680,3341517823,CA @@ -72047,9 +72988,15 @@ 3341778944,3341796863,US 3341796864,3341797375,JP 3341797376,3341807615,US -3341807616,3341807706,CA +3341807616,3341807652,CA +3341807653,3341807653,US +3341807654,3341807706,CA 3341807707,3341807815,US -3341807816,3341808192,CA +3341807816,3341807822,CA +3341807823,3341807844,US +3341807845,3341807855,CA +3341807856,3341807865,US +3341807866,3341808192,CA 3341808193,3341808206,ID 3341808207,3341808607,CA 3341808608,3341808638,US @@ -72078,20 +73025,25 @@ 3342488873,3342488882,BG 3342488883,3342488896,US 3342488897,3342488908,GB -3342488909,3342488959,US +3342488909,3342488909,US +3342488910,3342488925,GB +3342488926,3342488959,US 3342488960,3342489215,SC 3342489216,3342489279,GB 3342489280,3342489301,US 3342489302,3342489311,AR -3342489312,3342489450,US +3342489312,3342489376,US +3342489377,3342489391,HK +3342489392,3342489450,US 3342489451,3342489463,IL 3342489464,3342489474,US 3342489475,3342489482,GB -3342489483,3342489503,US +3342489483,3342489490,US +3342489491,3342489501,IL +3342489502,3342489503,US 3342489504,3342489567,GB -3342489568,3342489568,US -3342489569,3342489584,AR -3342489585,3342493759,US +3342489568,3342489599,AR +3342489600,3342493759,US 3342493760,3342493791,CA 3342493792,3342496767,US 3342496768,3342497791,CA @@ -72120,7 +73072,9 @@ 3342565376,3342567423,CA 3342567424,3342579711,US 3342579712,3342581759,CA -3342581760,3342595071,US +3342581760,3342585599,US +3342585600,3342585855,MU +3342585856,3342595071,US 3342595072,3342595583,CA 3342595584,3342596095,FR 3342596096,3342598143,US @@ -72340,9 +73294,7 @@ 3345310352,3345310367,BR 3345310368,3345310383,ID 3345310384,3345310399,BR -3345310400,3345310431,US -3345310432,3345310463,IN -3345310464,3345310559,US +3345310400,3345310559,US 3345310560,3345310575,IN 3345310576,3345310591,US 3345310592,3345310599,HK @@ -72359,7 +73311,9 @@ 3345311104,3345311119,BR 3345311120,3345311135,GB 3345311136,3345311167,RO -3345311168,3345311199,US +3345311168,3345311175,US +3345311176,3345311183,BR +3345311184,3345311199,US 3345311200,3345311207,BR 3345311208,3345311215,SK 3345311216,3345311223,BR @@ -72380,8 +73334,7 @@ 3345332328,3345332335,ID 3345332336,3345332375,US 3345332376,3345332383,MX -3345332384,3345332415,US -3345332416,3345332423,IN +3345332384,3345332423,US 3345332424,3345332431,MY 3345332432,3345333247,US 3345333248,3345334271,MF @@ -72562,27 +73515,66 @@ 3346201600,3346202623,CA 3346202624,3346219007,US 3346219008,3346221055,CA -3346221056,3346225151,US +3346221056,3346221583,US +3346221584,3346221591,IT +3346221592,3346221623,US +3346221624,3346221631,RU +3346221632,3346221655,US +3346221656,3346221663,IT +3346221664,3346221671,BE +3346221672,3346221679,US +3346221680,3346221687,NL +3346221688,3346221719,US +3346221720,3346221727,CA +3346221728,3346221871,US +3346221872,3346221887,SG +3346221888,3346221903,US +3346221904,3346221911,IT +3346221912,3346221999,US +3346222000,3346222007,BR +3346222008,3346222039,US +3346222040,3346222047,PL +3346222048,3346222095,US +3346222096,3346222103,IT +3346222104,3346222111,US +3346222112,3346222119,RU +3346222120,3346222335,US +3346222336,3346222351,IT +3346222352,3346222431,US +3346222432,3346222447,RU +3346222448,3346222463,UA +3346222464,3346222527,US +3346222528,3346222543,IN +3346222544,3346225151,US 3346225152,3346227199,CA 3346227200,3346231615,US 3346231616,3346231647,GB 3346231648,3346231743,US 3346231744,3346231807,SC -3346231808,3346231819,US -3346231820,3346231827,AR +3346231808,3346231810,US +3346231811,3346231827,AR 3346231828,3346231846,US 3346231847,3346231854,GB -3346231855,3346232383,US +3346231855,3346231916,US +3346231917,3346231924,GB +3346231925,3346232383,US 3346232384,3346232447,VG -3346232448,3346232703,US +3346232448,3346232608,US +3346232609,3346232617,AR +3346232618,3346232703,US 3346232704,3346232767,GB 3346232768,3346232831,US 3346232832,3346232895,GB -3346232896,3346232959,US +3346232896,3346232911,UA +3346232912,3346232959,US 3346232960,3346232991,GB 3346232992,3346233023,US 3346233024,3346233087,GB -3346233088,3346234367,US +3346233088,3346233256,US +3346233257,3346233268,AR +3346233269,3346233279,US +3346233280,3346233311,GB +3346233312,3346234367,US 3346234368,3346235391,CA 3346235392,3346241535,US 3346241536,3346243327,CA @@ -72761,7 +73753,9 @@ 3350488112,3350488127,CN 3350488128,3350488215,US 3350488216,3350488223,CN -3350488224,3350488359,US +3350488224,3350488271,US +3350488272,3350488279,CN +3350488280,3350488359,US 3350488360,3350488367,CN 3350488368,3350488455,US 3350488456,3350488463,CN @@ -72769,7 +73763,9 @@ 3350488472,3350488479,CN 3350488480,3350488495,US 3350488496,3350488511,CN -3350488512,3350488743,US +3350488512,3350488575,US +3350488576,3350488607,CN +3350488608,3350488743,US 3350488744,3350488751,CN 3350488752,3350488847,US 3350488848,3350488855,CN @@ -72815,7 +73811,9 @@ 3350643712,3350645759,US 3350645760,3350646783,CA 3350646784,3350648831,US -3350648832,3350650879,CA +3350648832,3350650623,CA +3350650624,3350650631,US +3350650632,3350650879,CA 3350650880,3350790399,US 3350790400,3350814975,CA 3350814976,3350815231,US @@ -72859,16 +73857,17 @@ 3351012592,3351012607,CA 3351012608,3351012735,US 3351012736,3351012767,GB -3351012768,3351013343,US +3351012768,3351013151,US +3351013152,3351013167,KW +3351013168,3351013183,ID +3351013184,3351013343,US 3351013344,3351013375,CA 3351013376,3351013383,US 3351013384,3351013391,CN 3351013392,3351013407,US 3351013408,3351013439,CN 3351013440,3351013447,US -3351013448,3351013455,CN -3351013456,3351013463,US -3351013464,3351013567,CN +3351013448,3351013567,CN 3351013568,3351013631,CA 3351013632,3351013679,CN 3351013680,3351013695,US @@ -72889,7 +73888,9 @@ 3351014784,3351014799,CN 3351014800,3351014807,CA 3351014808,3351014847,CN -3351014848,3351015039,US +3351014848,3351014911,US +3351014912,3351014943,CN +3351014944,3351015039,US 3351015040,3351015151,CN 3351015152,3351015159,US 3351015160,3351015167,CN @@ -72927,8 +73928,7 @@ 3351074690,3351074690,DE 3351074691,3351074692,US 3351074693,3351074693,UY -3351074694,3351074694,US -3351074695,3351074696,BE +3351074694,3351074696,US 3351074697,3351074697,BR 3351074698,3351074698,US 3351074699,3351074701,GB @@ -72954,10 +73954,14 @@ 3351074732,3351074732,BR 3351074733,3351074733,EG 3351074734,3351074735,US -3351074736,3351074738,PE -3351074739,3351074742,US +3351074736,3351074736,PE +3351074737,3351074738,CA +3351074739,3351074740,US +3351074741,3351074741,CA +3351074742,3351074742,US 3351074743,3351074746,AU -3351074747,3351074751,US +3351074747,3351074750,US +3351074751,3351074751,BR 3351074752,3351074783,DE 3351074784,3351074815,BR 3351074816,3351076863,CA @@ -72981,9 +73985,7 @@ 3351112704,3351113727,CA 3351113728,3351197735,US 3351197736,3351197739,CA -3351197740,3351197759,US -3351197760,3351197767,IN -3351197768,3351197811,US +3351197740,3351197811,US 3351197812,3351197815,GB 3351197816,3351197827,US 3351197828,3351197831,TR @@ -72999,9 +74001,7 @@ 3351198048,3351198063,GB 3351198064,3351198095,US 3351198096,3351198103,CA -3351198104,3351198111,US -3351198112,3351198119,IN -3351198120,3351198139,US +3351198104,3351198139,US 3351198140,3351198143,PK 3351198144,3351198147,CA 3351198148,3351198183,US @@ -73012,8 +74012,8 @@ 3351198304,3351198335,ID 3351198336,3351198351,US 3351198352,3351198359,CA -3351198360,3351198375,US -3351198376,3351198383,CA +3351198360,3351198371,US +3351198372,3351198383,CA 3351198384,3351198391,US 3351198392,3351198395,TH 3351198396,3351198399,BR @@ -73165,10 +74165,12 @@ 3351484416,3351485439,US 3351485440,3351485567,CA 3351485568,3351485575,US -3351485576,3351486335,CA -3351486336,3351486463,US +3351485576,3351485695,CA +3351485696,3351486463,US 3351486464,3351488511,CA -3351488512,3351497727,US +3351488512,3351494655,US +3351494656,3351496703,SG +3351496704,3351497727,US 3351497728,3351498751,CA 3351498752,3351501823,US 3351501824,3351502847,JM @@ -73293,15 +74295,78 @@ 3352916545,3352916552,BR 3352916553,3352916553,US 3352916554,3352916558,BR -3352916559,3352916668,US -3352916669,3352916718,BR +3352916559,3352916565,US +3352916566,3352916567,AT +3352916568,3352916568,BR +3352916569,3352916648,US +3352916649,3352916649,BR +3352916650,3352916657,US +3352916658,3352916668,BR +3352916669,3352916669,US +3352916670,3352916718,BR 3352916719,3352916728,US 3352916729,3352916735,BR 3352916736,3352918015,US 3352918016,3352919039,CA -3352919040,3353335349,US +3352919040,3353335303,US +3353335304,3353335309,NL +3353335310,3353335311,US +3353335312,3353335313,NL +3353335314,3353335315,US +3353335316,3353335323,NL +3353335324,3353335325,US +3353335326,3353335333,NL +3353335334,3353335335,US +3353335336,3353335339,NL +3353335340,3353335341,US +3353335342,3353335349,NL 3353335350,3353335353,IN -3353335354,3353652735,US +3353335354,3353335359,NL +3353335360,3353335361,US +3353335362,3353335363,NL +3353335364,3353335366,US +3353335367,3353335376,NL +3353335377,3353335378,US +3353335379,3353335380,NL +3353335381,3353335382,US +3353335383,3353335390,NL +3353335391,3353335392,US +3353335393,3353335406,NL +3353335407,3353335407,US +3353335408,3353335411,NL +3353335412,3353335412,US +3353335413,3353335420,NL +3353335421,3353335422,US +3353335423,3353335435,NL +3353335436,3353335437,US +3353335438,3353335457,NL +3353335458,3353335458,US +3353335459,3353335460,NL +3353335461,3353335462,US +3353335463,3353335468,NL +3353335469,3353335559,US +3353335560,3353335594,NL +3353335595,3353335596,US +3353335597,3353335598,NL +3353335599,3353335600,US +3353335601,3353335606,NL +3353335607,3353335608,US +3353335609,3353335616,NL +3353335617,3353335619,US +3353335620,3353335655,NL +3353335656,3353335658,US +3353335659,3353335664,NL +3353335665,3353335666,US +3353335667,3353335668,NL +3353335669,3353335690,US +3353335691,3353335706,NL +3353335707,3353335708,US +3353335709,3353335743,NL +3353335744,3353335767,US +3353335768,3353335791,NL +3353335792,3353335792,US +3353335793,3353335794,NL +3353335795,3353652735,US 3353652736,3353652863,DE 3353652864,3353653503,US 3353653504,3353653759,GB @@ -73313,14 +74378,14 @@ 3353730048,3353731071,CA 3353731072,3353731487,US 3353731488,3353731503,AU -3353731504,3353752581,US +3353731504,3353731775,US +3353731776,3353731823,IL +3353731824,3353752581,US 3353752582,3353752585,FR 3353752586,3353752589,BE 3353752590,3353752677,US 3353752678,3353752681,ES -3353752682,3353752716,US -3353752717,3353752720,IT -3353752721,3353752829,US +3353752682,3353752829,US 3353752830,3353752830,GB 3353752831,3353752916,US 3353752917,3353752917,GB @@ -73360,7 +74425,21 @@ 3353821728,3353821887,CN 3353821888,3353821983,US 3353821984,3353822111,CN -3353822112,3353828703,US +3353822112,3353822207,US +3353822208,3353822215,CN +3353822216,3353822223,US +3353822224,3353822231,CN +3353822232,3353822239,US +3353822240,3353822375,CN +3353822376,3353822383,US +3353822384,3353822687,CN +3353822688,3353822719,US +3353822720,3353822967,CN +3353822968,3353822975,US +3353822976,3353822983,CN +3353822984,3353822991,US +3353822992,3353823231,CN +3353823232,3353828703,US 3353828704,3353828735,RU 3353828736,3353836543,US 3353836544,3353837567,CA @@ -73381,11 +74460,15 @@ 3353995648,3353995711,GB 3353995712,3353995775,US 3353995776,3353995783,BR -3353995784,3354066943,US +3353995784,3353995815,US +3353995816,3353995823,BR +3353995824,3354066943,US 3354066944,3354132479,CA 3354132480,3354484911,US 3354484912,3354484927,GB -3354484928,3354492927,US +3354484928,3354485375,US +3354485376,3354485439,GB +3354485440,3354492927,US 3354492928,3354494975,CA 3354494976,3354501119,US 3354501120,3354503167,CA @@ -73405,9 +74488,7 @@ 3354507600,3354507607,BR 3354507608,3354507687,US 3354507688,3354507691,CA -3354507692,3354507711,US -3354507712,3354507719,IN -3354507720,3354507759,US +3354507692,3354507759,US 3354507760,3354507775,AU 3354507776,3354507803,US 3354507804,3354507807,CH @@ -73441,28 +74522,30 @@ 3354508240,3354508243,VN 3354508244,3354508295,US 3354508296,3354508303,CY -3354508304,3354508319,US -3354508320,3354508327,IN -3354508328,3354508367,US +3354508304,3354508367,US 3354508368,3354508375,GB 3354508376,3354508383,MY 3354508384,3354508391,CA 3354508392,3354508655,US 3354508656,3354508671,CY -3354508672,3354508735,US -3354508736,3354508767,IN -3354508768,3354508799,US -3354508800,3354508831,CN -3354508832,3354509119,US +3354508672,3354509119,US 3354509120,3354509183,TR 3354509184,3354509215,GB -3354509216,3354591231,US +3354509216,3354515711,US +3354515712,3354515775,CA +3354515776,3354515967,US +3354515968,3354516031,CA +3354516032,3354516223,US +3354516224,3354516287,CA +3354516288,3354591231,US 3354591232,3354656767,CA 3354656768,3354676223,US 3354676224,3354677247,CA 3354677248,3354687487,US 3354687488,3354688511,CA -3354688512,3354731007,US +3354688512,3354708207,US +3354708208,3354708223,CA +3354708224,3354731007,US 3354731008,3354731018,BE 3354731019,3354731019,EU 3354731020,3354731263,BE @@ -73470,12 +74553,11 @@ 3354731520,3354731775,AP 3354731776,3354737663,US 3354737664,3354737919,HK -3354737920,3354770687,US +3354737920,3354738175,CN +3354738176,3354770687,US 3354770688,3354770943,CA 3354770944,3354788095,US -3354788096,3354806399,CA -3354806400,3354806463,US -3354806464,3354806639,CA +3354788096,3354806639,CA 3354806640,3354806655,SE 3354806656,3354807551,CA 3354807552,3354810367,US @@ -73699,7 +74781,7 @@ 3355860992,3355869183,CL 3355869184,3355870719,BR 3355870720,3355871231,CR -3355873280,3355875327,CW +3355873280,3355875327,BQ 3355875328,3355877375,VE 3355877376,3355885567,CO 3355885568,3355901951,GT @@ -73955,8 +75037,8 @@ 3356337152,3356337663,HN 3356337664,3356337919,SV 3356337920,3356338175,HN -3356338176,3356340223,SV -3356340224,3356341247,HN +3356338176,3356339967,SV +3356339968,3356341247,HN 3356341248,3356341759,SV 3356341760,3356342015,HN 3356342016,3356343039,SV @@ -74116,7 +75198,8 @@ 3357455104,3357455359,SV 3357455360,3357458431,GT 3357458432,3357474815,CL -3357474816,3357475887,AR +3357474816,3357475071,US +3357475072,3357475887,AR 3357475888,3357475903,VE 3357475904,3357475999,AR 3357476000,3357476015,VE @@ -74184,17 +75267,15 @@ 3358131456,3358131839,AR 3358131840,3358131967,CO 3358131968,3358131983,AR -3358131984,3358131999,CO -3358132000,3358132087,AR +3358131984,3358132031,CO +3358132032,3358132087,AR 3358132088,3358132095,CO 3358132096,3358132607,AR 3358132608,3358132735,CO 3358132736,3358132991,AR 3358132992,3358133119,EC -3358133120,3358133439,AR -3358133440,3358133471,VE -3358133472,3358133631,AR -3358133632,3358133759,VE +3358133120,3358133247,AR +3358133248,3358133759,VE 3358133760,3358142975,AR 3358142976,3358143231,CO 3358143232,3358143487,AR @@ -74223,7 +75304,8 @@ 3358152560,3358152575,PE 3358152576,3358152703,AR 3358152704,3358152959,US -3358152960,3358153279,AR +3358152960,3358153087,EC +3358153088,3358153279,AR 3358153280,3358153311,US 3358153312,3358153471,AR 3358153472,3358153535,US @@ -74498,7 +75580,9 @@ 3360423936,3360686079,MX 3360686080,3360705791,AR 3360705792,3360706047,US -3360706048,3360708223,AR +3360706048,3360707071,AR +3360707072,3360707327,US +3360707328,3360708223,AR 3360708224,3360708351,US 3360708352,3360708991,AR 3360708992,3360709119,US @@ -74592,7 +75676,8 @@ 3362448384,3362448895,HN 3362448896,3362449151,SV 3362449152,3362449407,HN -3362449408,3362451455,SV +3362449408,3362451199,SV +3362451200,3362451455,HN 3362451456,3362452479,AR 3362452480,3362452991,BO 3362452992,3362453247,HN @@ -74651,7 +75736,9 @@ 3362836480,3362838527,CO 3362838528,3362840575,EC 3362840576,3362897919,CL -3362897920,3362914303,HT +3362897920,3362903807,HT +3362903808,3362904063,MX +3362904064,3362914303,HT 3362914304,3362930687,CO 3362934784,3362936831,AR 3362936832,3362938879,CL @@ -74691,9 +75778,7 @@ 3363504128,3363512319,PE 3363512320,3363554047,AR 3363554048,3363554175,US -3363554176,3363555327,AR -3363555328,3363555583,US -3363555584,3363556095,AR +3363554176,3363556095,AR 3363556096,3363556223,US 3363556224,3363557375,AR 3363557376,3363559423,BZ @@ -74721,10 +75806,13 @@ 3363682304,3363684351,VE 3363684352,3363708927,EC 3363708928,3363713023,CL +3363713024,3363713279,EC 3363717120,3363733503,CL 3363733504,3363831807,AR 3363831808,3378511871,BR -3378511872,3383754751,MX +3378511872,3380506879,MX +3380506880,3380507135,BR +3380507136,3383754751,MX 3383754752,3384147967,AR 3384147968,3384156159,US 3384156160,3384160255,PA @@ -74771,13 +75859,17 @@ 3386613760,3386621951,AR 3386621952,3386630143,CO 3386630144,3386632191,UY -3386638336,3386642175,CW +3386638336,3386640895,CW +3386640896,3386641151,US +3386641152,3386642175,CW 3386642176,3386642431,CA -3386642432,3386644479,AR +3386642432,3386646527,AR 3386646528,3386647551,CO 3386647552,3386647679,VE 3386647680,3386647743,CO -3386647744,3386650111,VE +3386647744,3386649599,VE +3386649600,3386649855,CO +3386649856,3386650111,VE 3386650112,3386650623,CO 3386650624,3386654719,VE 3386654720,3386662911,CO @@ -74812,14 +75904,8 @@ 3387293696,3387359231,PE 3387359232,3387424767,AR 3387424768,3387555839,CO -3387555840,3387568895,AR -3387568896,3387569023,PE -3387569024,3387569351,AR -3387569352,3387569355,PE -3387569356,3387569567,AR -3387569568,3387569583,PE -3387569584,3387572095,AR -3387572096,3387572223,PE +3387555840,3387568127,AR +3387568128,3387572223,PE 3387572224,3387573375,AR 3387573376,3387573631,CO 3387573632,3387574015,AR @@ -74838,11 +75924,8 @@ 3387608576,3387608831,EC 3387608832,3387609087,AR 3387609088,3387613183,EC -3387613184,3387614079,AR -3387614080,3387614207,VE -3387614208,3387614591,AR -3387614592,3387614719,VE -3387614720,3387617439,AR +3387613184,3387617279,VE +3387617280,3387617439,AR 3387617440,3387617447,CO 3387617448,3387618175,AR 3387618176,3387618303,CO @@ -75168,7 +76251,7 @@ 3389620224,3389640703,IN 3389640704,3389644799,JP 3389644800,3389661183,AU -3389661184,3389669375,IN +3389661184,3389669375,ID 3389669376,3389673471,CN 3389673472,3389677567,AU 3389677568,3389681663,JP @@ -75295,9 +76378,7 @@ 3389970432,3389971199,NZ 3389971200,3389971711,CN 3389971712,3389971967,AU -3389971968,3389972479,CN -3389972480,3389972735,IN -3389972736,3389973503,CN +3389971968,3389973503,CN 3389973504,3389973759,NZ 3389973760,3389974271,AU 3389974272,3389974527,CN @@ -75912,9 +76993,7 @@ 3393146880,3393147135,PK 3393147136,3393150975,CN 3393150976,3393159167,IN -3393159168,3393163007,HK -3393163008,3393164287,SG -3393164288,3393167359,HK +3393159168,3393167359,SG 3393167360,3393175551,CN 3393175552,3393183743,PK 3393183744,3393183999,ID @@ -76871,9 +77950,8 @@ 3399548928,3399557119,AU 3399557120,3399565311,SG 3399565312,3399581695,AU -3399581696,3399583743,HK -3399583744,3399583999,US -3399584000,3399589631,HK +3399581696,3399581951,HK +3399581952,3399589631,US 3399589632,3399589887,NP 3399589888,3399593983,HK 3399593984,3399598079,BD @@ -78313,7 +79391,7 @@ 3407748608,3407750655,AU 3407750656,3407751167,SG 3407751168,3407753215,AU -3407753216,3407753727,SG +3407753216,3407753727,HK 3407753728,3407757823,AU 3407757824,3407758079,CN 3407758080,3407761663,AU @@ -79318,7 +80396,8 @@ 3415179264,3415187455,SG 3415187456,3415191551,AU 3415191552,3415195647,IN -3415195648,3415220223,AU +3415195648,3415199743,NZ +3415199744,3415220223,AU 3415220224,3415224319,NZ 3415224320,3415228415,US 3415228416,3415236607,KH @@ -79590,7 +80669,9 @@ 3417374720,3417440255,PH 3417440256,3417664511,JP 3417664512,3417665279,US -3417665280,3417833471,JP +3417665280,3417706095,JP +3417706096,3417706099,HK +3417706100,3417833471,JP 3417833472,3417849855,NZ 3417849856,3417853951,AU 3417853952,3417858047,CN @@ -79656,8 +80737,7 @@ 3418236416,3418236927,HK 3418236928,3418241023,ID 3418241024,3418243071,JP -3418243072,3418247167,HK -3418247168,3418251263,PH +3418243072,3418251263,PH 3418251264,3418255359,CN 3418255360,3418257407,ID 3418257408,3418259199,HK @@ -79750,7 +80830,17 @@ 3418643456,3418644479,AU 3418644480,3418644735,JP 3418644736,3418644991,AU -3418644992,3418649343,JP +3418644992,3418645247,TW +3418645248,3418645503,SG +3418645504,3418645759,JP +3418645760,3418646271,NZ +3418646272,3418646527,HK +3418646528,3418646783,JP +3418646784,3418647039,TW +3418647040,3418648063,JP +3418648064,3418648575,SG +3418648576,3418648591,AU +3418648592,3418649343,JP 3418649344,3418649599,AP 3418649600,3418652671,JP 3418652672,3418750975,IN @@ -80373,7 +81463,9 @@ 3423584424,3423584431,US 3423584432,3423584447,CA 3423584448,3423584455,US -3423584456,3423584719,CA +3423584456,3423584527,CA +3423584528,3423584543,US +3423584544,3423584719,CA 3423584720,3423584735,US 3423584736,3423586303,CA 3423586304,3423589151,US @@ -80930,13 +82022,13 @@ 3428646080,3428646143,US 3428646144,3428646911,CA 3428646912,3428660735,US -3428660736,3428660991,CA -3428660992,3428661247,US -3428661248,3428661503,CA +3428660736,3428661503,CA 3428661504,3428671487,US 3428679680,3428689646,US 3428689647,3428689647,US -3428689648,3428743167,US +3428689648,3428701439,US +3428701440,3428701567,CA +3428701568,3428743167,US 3428743168,3428744191,CA 3428744192,3428752383,US 3428752384,3428753407,GH @@ -81504,7 +82596,9 @@ 3448380928,3448380959,SG 3448380960,3448380975,US 3448380976,3448380991,AU -3448380992,3448381183,US +3448380992,3448381023,US +3448381024,3448381055,SG +3448381056,3448381183,US 3448381184,3448381439,SG 3448381440,3448381695,GB 3448381696,3448382343,US @@ -81590,7 +82684,9 @@ 3448569056,3448569087,MX 3448569088,3448569735,US 3448569736,3448569743,GB -3448569744,3448838143,US +3448569744,3448717311,US +3448717312,3448717567,AU +3448717568,3448838143,US 3448838144,3448838399,CA 3448838400,3448983807,US 3448983808,3448983871,GB @@ -81803,11 +82899,7 @@ 3449994240,3449994495,MX 3449994496,3450078463,US 3450078464,3450079487,US -3450079488,3450085375,US -3450085376,3450085631,US -3450085632,3450085887,US -3450085888,3450086143,US -3450086144,3450213887,US +3450079488,3450213887,US 3450213888,3450214143,CA 3450214144,3450217215,US 3450217216,3450217471,LC @@ -82231,11 +83323,19 @@ 3453556928,3453556991,GB 3453556992,3453557255,US 3453557256,3453557263,GB -3453557264,3453583615,US -3453583616,3453583695,SG +3453557264,3453577855,US +3453577856,3453577983,IL +3453577984,3453583615,US +3453583616,3453583647,SG +3453583648,3453583655,CA +3453583656,3453583695,SG 3453583696,3453583743,US 3453583744,3453583775,SG -3453583776,3453584327,US +3453583776,3453583791,US +3453583792,3453583799,CA +3453583800,3453583807,US +3453583808,3453583839,CA +3453583840,3453584327,US 3453584328,3453584335,HK 3453584336,3453595527,US 3453595528,3453595551,CA @@ -82416,7 +83516,9 @@ 3455330816,3455331327,ES 3455331328,3455333887,US 3455333888,3455334399,NL -3455334400,3455359231,US +3455334400,3455357951,US +3455357952,3455358975,BB +3455358976,3455359231,US 3455359232,3455359487,ES 3455359488,3455418367,US 3455418368,3455418879,KY @@ -83307,7 +84409,8 @@ 3461286600,3461286623,GB 3461286624,3461286815,US 3461286816,3461286847,CA -3461286848,3461330943,US +3461286848,3461286879,GB +3461286880,3461330943,US 3461330944,3461331199,SG 3461331200,3461331247,US 3461331248,3461331263,SG @@ -83477,8 +84580,8 @@ 3463249664,3463502335,US 3463502336,3463502399,GB 3463502400,3463503423,US -3463503424,3463503487,GB -3463503488,3463518207,US +3463503424,3463503519,GB +3463503520,3463518207,US 3463518208,3463520255,NL 3463520256,3463536895,US 3463536896,3463537151,NG @@ -83508,7 +84611,9 @@ 3464173824,3464174591,CA 3464175104,3464175359,US 3464175360,3464180735,CA -3464180736,3464191911,US +3464180736,3464191791,US +3464191792,3464191799,ES +3464191800,3464191911,US 3464191912,3464191919,ES 3464191920,3464195943,US 3464195944,3464195951,AU @@ -83552,7 +84657,9 @@ 3464343160,3464343167,MQ 3464343168,3464343271,US 3464343272,3464343279,CA -3464343280,3464343423,US +3464343280,3464343391,US +3464343392,3464343399,GB +3464343400,3464343423,US 3464343424,3464343431,SG 3464343432,3464382463,US 3464384512,3464388607,CA @@ -83695,13 +84802,15 @@ 3465954960,3465954975,CA 3465954976,3465955007,US 3465955008,3465955199,CA -3465955200,3465956351,US +3465955200,3465955375,US +3465955376,3465955391,CA +3465955392,3465956351,US 3465956352,3465956367,CA 3465956368,3465961607,US 3465961608,3465961615,CA 3465961616,3465961631,US -3465961632,3465961663,CA -3465961664,3465961783,US +3465961632,3465961671,CA +3465961672,3465961783,US 3465961784,3465961791,CA 3465961792,3465961983,US 3465961984,3465962015,CA @@ -83733,7 +84842,13 @@ 3466068416,3466068423,CA 3466068424,3466068991,US 3466068992,3466069055,CA -3466069056,3466158079,US +3466069056,3466069071,US +3466069072,3466069119,CA +3466069120,3466069279,US +3466069280,3466069295,CA +3466069296,3466071039,US +3466071040,3466071103,CA +3466071104,3466158079,US 3466158080,3466166271,PA 3466166272,3466282111,US 3466282112,3466282119,GB @@ -83860,14 +84975,20 @@ 3466784784,3466846207,US 3466846208,3466854399,CA 3466854400,3466860799,US -3466860800,3466861055,FR -3466861056,3466901503,US +3466860800,3466861311,FR +3466861312,3466901503,US 3466901504,3466903551,DE 3466903552,3466907647,US 3466907648,3466909695,DE -3466909696,3466929407,US +3466909696,3466914303,US +3466914304,3466914559,FR +3466914560,3466929407,US 3466929408,3466929663,IT -3466929664,3466938444,US +3466929664,3466937667,US +3466937668,3466937669,DE +3466937670,3466937670,EU +3466937671,3466937731,DE +3466937732,3466938444,US 3466938445,3466938448,HK 3466938449,3466958079,US 3466958080,3466958335,CA @@ -84275,15 +85396,19 @@ 3470137344,3470139391,VG 3470139392,3470148095,US 3470148096,3470148351,CA -3470148352,3470148447,US -3470148448,3470148479,EG -3470148480,3470148607,US +3470148352,3470148543,US +3470148544,3470148575,EG +3470148576,3470148607,US 3470148608,3470148863,CA -3470148864,3470148927,US -3470148928,3470148959,EG -3470148960,3470149567,US -3470149568,3470149599,EG -3470149600,3470150079,US +3470148864,3470149055,US +3470149056,3470149087,EG +3470149088,3470149375,US +3470149376,3470149407,EG +3470149408,3470149887,US +3470149888,3470149919,BR +3470149920,3470150015,US +3470150016,3470150047,EG +3470150048,3470150079,US 3470150080,3470150111,EE 3470150112,3470150303,US 3470150304,3470150335,EG @@ -84292,7 +85417,13 @@ 3470151360,3470151679,US 3470151680,3470151935,CA 3470151936,3470152191,EG -3470152192,3470155743,US +3470152192,3470153087,US +3470153088,3470153119,EG +3470153120,3470154079,US +3470154080,3470154111,EG +3470154112,3470154687,US +3470154688,3470154719,HK +3470154720,3470155743,US 3470155744,3470155775,EE 3470155776,3470184476,US 3470184477,3470184480,CN @@ -84772,8 +85903,8 @@ 3470362160,3470362167,AF 3470362168,3470362263,US 3470362264,3470362271,NZ -3470362272,3470362543,US -3470362544,3470362591,SE +3470362272,3470362559,US +3470362560,3470362591,SE 3470362592,3470362623,US 3470362624,3470362687,SE 3470362688,3470362731,US @@ -84797,7 +85928,9 @@ 3470363904,3470363919,CA 3470363920,3470363967,US 3470363968,3470363983,CA -3470363984,3470364415,US +3470363984,3470364095,US +3470364096,3470364103,EG +3470364104,3470364415,US 3470364416,3470364479,SE 3470364480,3470364559,US 3470364560,3470364575,HN @@ -84828,8 +85961,7 @@ 3470645656,3470645663,RU 3470645664,3470645687,US 3470645688,3470645695,ES -3470645696,3470645703,NL -3470645704,3470645731,US +3470645696,3470645731,US 3470645732,3470645735,AU 3470645736,3470645739,CN 3470645740,3470645743,US @@ -84916,8 +86048,7 @@ 3470659184,3470659191,BE 3470659192,3470659471,US 3470659472,3470659487,ES -3470659488,3470659519,IL -3470659520,3470659567,US +3470659488,3470659567,US 3470659568,3470659575,BR 3470659576,3470659735,US 3470659736,3470659743,AU @@ -84929,12 +86060,12 @@ 3470660088,3470660103,US 3470660104,3470660111,HK 3470660112,3470660223,US -3470660224,3470660255,PH +3470660224,3470660239,PH +3470660240,3470660247,US +3470660248,3470660255,PH 3470660256,3470660647,US 3470660648,3470660655,IE -3470660656,3470661167,US -3470661168,3470661175,IE -3470661176,3470661191,US +3470660656,3470661191,US 3470661192,3470661199,CA 3470661200,3470661215,US 3470661216,3470661223,IN @@ -84942,9 +86073,7 @@ 3470661232,3470661239,ES 3470661240,3470661319,US 3470661320,3470661327,BD -3470661328,3470661727,US -3470661728,3470661735,AU -3470661736,3470662167,US +3470661328,3470662167,US 3470662168,3470662175,IL 3470662176,3470662183,CN 3470662184,3470662663,US @@ -85087,9 +86216,13 @@ 3475296462,3475296462,AE 3475296463,3475310847,US 3475310848,3475311103,DE -3475311104,3475384679,US +3475311104,3475384615,US +3475384616,3475384623,SV +3475384624,3475384679,US 3475384680,3475384687,CA -3475384688,3475589887,US +3475384688,3475405743,US +3475405744,3475405751,SV +3475405752,3475589887,US 3475589888,3475590143,EC 3475590144,3475670015,US 3475670016,3475670047,AG @@ -85153,8 +86286,8 @@ 3476265856,3476265919,EG 3476265920,3476348927,US 3476348928,3476349183,CA -3476349184,3476421631,US -3476421632,3476422655,AZ +3476349184,3476422143,US +3476422144,3476422655,AZ 3476422656,3476447231,US 3476447232,3476455423,CA 3476455424,3476718616,US @@ -85761,7 +86894,9 @@ 3485887748,3485887777,AU 3485887778,3485891519,US 3485891520,3485891583,DE -3485891584,3486023679,US +3485891584,3485959423,US +3485959424,3485960191,CA +3485960192,3486023679,US 3486023680,3486031871,CA 3486031872,3486269439,US 3486269440,3486285823,JM @@ -86569,9 +87704,7 @@ 3493981184,3493982207,US 3493982208,3493984255,CA 3493984256,3493986303,US -3493986304,3493986623,CA -3493986624,3493986687,US -3493986688,3493987327,CA +3493986304,3493987327,CA 3493987328,3493990399,US 3493990400,3493991423,CA 3493991424,3493998591,US @@ -86601,7 +87734,7 @@ 3494101386,3494101407,US 3494101408,3494101415,CO 3494101416,3494101429,US -3494101430,3494101437,GB +3494101430,3494101437,JM 3494101438,3494102481,US 3494102482,3494102489,CA 3494102490,3494102631,US @@ -86966,8 +88099,7 @@ 3495006208,3495007231,CA 3495007232,3495010303,US 3495010304,3495011327,KN -3495011328,3495012095,US -3495012096,3495012351,HK +3495011328,3495012351,US 3495012352,3495014399,PR 3495014400,3495023615,US 3495023616,3495024639,CA @@ -87171,9 +88303,7 @@ 3495781376,3495815167,US 3495815168,3495815407,CA 3495815408,3495815411,US -3495815412,3495815615,CA -3495815616,3495815619,US -3495815620,3495817215,CA +3495815412,3495817215,CA 3495817216,3495828479,US 3495828480,3495829503,CA 3495829504,3495837695,US @@ -87255,7 +88385,9 @@ 3496202304,3496205839,US 3496205840,3496205855,ID 3496205856,3496205871,CA -3496205872,3496221014,US +3496205872,3496217983,US +3496217984,3496218111,PL +3496218112,3496221014,US 3496221015,3496221016,GB 3496221017,3496296447,US 3496296448,3496312831,CA @@ -87518,7 +88650,9 @@ 3497273920,3497273927,CA 3497273928,3497274175,US 3497274176,3497274207,CA -3497274208,3497410559,US +3497274208,3497340671,US +3497340672,3497340799,PL +3497340800,3497410559,US 3497410560,3497431039,CA 3497431040,3497447423,US 3497447424,3497451519,CA @@ -87526,7 +88660,9 @@ 3497453120,3497453135,GB 3497453136,3497453695,US 3497453696,3497453711,GB -3497453712,3497713415,US +3497453712,3497664255,US +3497664256,3497664511,NL +3497664512,3497713415,US 3497713416,3497713423,EC 3497713424,3497717759,US 3497717760,3497719807,A2 @@ -87692,9 +88828,7 @@ 3501789696,3501789703,GB 3501789704,3501791751,US 3501791752,3501791759,TW -3501791760,3501809151,US -3501809152,3501809407,CA -3501809408,3501817983,US +3501791760,3501817983,US 3501817984,3501818015,HK 3501818016,3502439167,US 3502439168,3502439423,PK @@ -89599,7 +90733,11 @@ 3514040320,3514367999,US 3514368000,3514433535,CA 3514433536,3514580991,US -3514580992,3514583455,GB +3514580992,3514582271,GB +3514582272,3514582527,US +3514582528,3514582783,GB +3514582784,3514583295,US +3514583296,3514583455,GB 3514583456,3514583463,ZA 3514583464,3514583471,GB 3514583472,3514583479,ZA @@ -89672,7 +90810,9 @@ 3515456704,3515456767,JP 3515456768,3515596799,US 3515596800,3515613183,CA -3515613184,3515711487,US +3515613184,3515617495,US +3515617496,3515617503,IN +3515617504,3515711487,US 3515711488,3515731967,CA 3515731968,3515860351,US 3515860352,3515860431,IN @@ -89682,9 +90822,7 @@ 3515867392,3515867519,AU 3515867520,3515868463,US 3515868464,3515868479,IT -3515868480,3515882319,US -3515882320,3515882327,MX -3515882328,3515882375,US +3515868480,3515882375,US 3515882376,3515882383,AU 3515882384,3515913631,US 3515913632,3515913663,CA @@ -90157,13 +91295,23 @@ 3518911744,3518911999,GB 3518912000,3518912511,US 3518912512,3518912767,IN -3518912768,3518919423,US +3518912768,3518918143,US +3518918144,3518918399,IN +3518918400,3518919423,US 3518919424,3518919679,IN 3518919680,3518929535,US 3518929536,3518929599,CA 3518929600,3518995695,US 3518995696,3518995703,GB -3518995704,3519234047,US +3518995704,3519217671,US +3519217672,3519217679,BB +3519217680,3519220095,US +3519220096,3519220111,GA +3519220112,3519220119,US +3519220120,3519220127,GA +3519220128,3519220575,US +3519220576,3519220591,GA +3519220592,3519234047,US 3519234048,3519250431,CA 3519250432,3519320975,US 3519320976,3519320983,GR @@ -90243,7 +91391,9 @@ 3519417152,3519417183,CA 3519417184,3519423999,US 3519424000,3519424511,CA -3519424512,3519466895,US +3519424512,3519427839,US +3519427840,3519428095,CA +3519428096,3519466895,US 3519466896,3519466911,SZ 3519466912,3519467519,US 3519469568,3519475711,US @@ -90526,7 +91676,9 @@ 3520078928,3520078943,EC 3520078944,3520082151,US 3520082152,3520082167,CA -3520082168,3520086271,US +3520082168,3520083967,US +3520083968,3520084031,AE +3520084032,3520086271,US 3520086272,3520086527,CA 3520086528,3520086959,US 3520086960,3520086975,CA @@ -90583,7 +91735,9 @@ 3520691592,3520691807,CA 3520691808,3520691839,US 3520691840,3520692223,CA -3520692224,3520749871,US +3520692224,3520717015,US +3520717016,3520717023,IN +3520717024,3520749871,US 3520749872,3520749879,CA 3520749880,3520937983,US 3520937984,3520954367,CA @@ -90707,7 +91861,9 @@ 3521934510,3521934517,IN 3521934518,3521934735,US 3521934736,3521934743,EG -3521934744,3521935310,US +3521934744,3521935245,US +3521935246,3521935253,LK +3521935254,3521935310,US 3521935311,3521935318,EG 3521935319,3521965055,US 3521965056,3521966079,DE @@ -90748,7 +91904,9 @@ 3522130231,3522130231,TH 3522130232,3522130236,US 3522130237,3522130237,BR -3522130238,3522130252,US +3522130238,3522130238,US +3522130239,3522130240,BR +3522130241,3522130252,US 3522130253,3522130253,BR 3522130254,3522130254,UA 3522130255,3522130259,US @@ -90760,7 +91918,7 @@ 3522130271,3522130280,US 3522130281,3522130281,BR 3522130282,3522130282,DE -3522130283,3522130283,CA +3522130283,3522130283,BR 3522130284,3522130284,US 3522130285,3522130285,BR 3522130286,3522130289,US @@ -90774,7 +91932,8 @@ 3522130299,3522130299,CA 3522130300,3522130302,US 3522130303,3522130303,BR -3522130304,3522130307,US +3522130304,3522130306,US +3522130307,3522130307,NP 3522130308,3522130309,BR 3522130310,3522130312,CA 3522130313,3522130313,US @@ -90783,14 +91942,14 @@ 3522130326,3522130326,EE 3522130327,3522130330,US 3522130331,3522130331,BR -3522130332,3522130333,US +3522130332,3522130332,US +3522130333,3522130333,DE 3522130334,3522130336,IR 3522130337,3522130339,US 3522130340,3522130341,DO 3522130342,3522130342,PK 3522130343,3522130343,BR -3522130344,3522130344,TH -3522130345,3522130346,US +3522130344,3522130346,US 3522130347,3522130348,CA 3522130349,3522130349,US 3522130350,3522130350,GT @@ -90937,7 +92096,10 @@ 3522132164,3522132166,US 3522132167,3522132167,IN 3522132168,3522132175,BR -3522132176,3522132182,PK +3522132176,3522132176,IN +3522132177,3522132180,PK +3522132181,3522132181,IN +3522132182,3522132182,PK 3522132183,3522132184,BR 3522132185,3522132185,VN 3522132186,3522132188,NL @@ -90954,10 +92116,12 @@ 3522132203,3522132203,BR 3522132204,3522132204,AR 3522132205,3522132205,US -3522132206,3522132208,BR -3522132209,3522132210,US +3522132206,3522132206,BR +3522132207,3522132210,US 3522132211,3522132211,GB -3522132212,3522132219,US +3522132212,3522132212,US +3522132213,3522132213,BR +3522132214,3522132219,US 3522132220,3522132220,IN 3522132221,3522132221,JP 3522132222,3522132222,BD @@ -91004,7 +92168,8 @@ 3522132461,3522132461,BR 3522132462,3522132462,BD 3522132463,3522132463,IN -3522132464,3522132466,US +3522132464,3522132464,US +3522132465,3522132466,IN 3522132467,3522132468,ZA 3522132469,3522132472,US 3522132473,3522132473,BR @@ -91016,32 +92181,69 @@ 3522132640,3522132671,US 3522132672,3522132703,BR 3522132704,3522132735,LK -3522132736,3522132831,US +3522132736,3522132746,IN +3522132747,3522132747,BR +3522132748,3522132748,IN +3522132749,3522132749,BR +3522132750,3522132750,IN +3522132751,3522132752,BR +3522132753,3522132753,IN +3522132754,3522132767,BR +3522132768,3522132831,US 3522132832,3522132863,BR 3522132864,3522132895,US 3522132896,3522132927,CA 3522132928,3522132994,US 3522132995,3522132996,GB -3522132997,3522133005,US +3522132997,3522133002,US +3522133003,3522133003,MX +3522133004,3522133005,PK 3522133006,3522133006,BR 3522133007,3522133007,TR -3522133008,3522133013,US +3522133008,3522133008,PK +3522133009,3522133010,US +3522133011,3522133011,SK +3522133012,3522133013,US 3522133014,3522133014,CZ 3522133015,3522133016,IN 3522133017,3522133017,UA -3522133018,3522133018,HR +3522133018,3522133018,DE 3522133019,3522133023,US 3522133024,3522133055,BR 3522133056,3522133124,US 3522133125,3522133125,BR 3522133126,3522133134,US 3522133135,3522133135,GT -3522133136,3522133136,BR +3522133136,3522133136,UA 3522133137,3522133137,US 3522133138,3522133138,BD 3522133139,3522133139,US 3522133140,3522133142,BR -3522133143,3522133311,US +3522133143,3522133146,US +3522133147,3522133147,AR +3522133148,3522133148,US +3522133149,3522133149,BG +3522133150,3522133154,US +3522133155,3522133155,BR +3522133156,3522133158,VN +3522133159,3522133159,US +3522133160,3522133160,BR +3522133161,3522133161,US +3522133162,3522133162,PK +3522133163,3522133163,BR +3522133164,3522133164,US +3522133165,3522133165,PE +3522133166,3522133168,US +3522133169,3522133169,DE +3522133170,3522133171,US +3522133172,3522133172,PE +3522133173,3522133173,VN +3522133174,3522133175,US +3522133176,3522133176,AR +3522133177,3522133178,US +3522133179,3522133179,TR +3522133180,3522133180,BR +3522133181,3522133311,US 3522133312,3522133375,CH 3522133376,3522133535,US 3522133536,3522133567,TR @@ -91291,7 +92493,9 @@ 3541303296,3541565439,TW 3541565440,3541696511,MY 3541696512,3542089727,AU -3542089728,3544186879,KR +3542089728,3542847487,KR +3542847488,3542851583,US +3542851584,3544186879,KR 3544186880,3544711167,CN 3544711168,3545235455,TW 3545235456,3546808319,CN @@ -91709,8 +92913,7 @@ 3559882752,3559890943,AZ 3559890944,3559899135,CH 3559899136,3559902975,DE -3559902976,3559903231,EE -3559903232,3559907327,DE +3559902976,3559907327,EE 3559907328,3559915519,FR 3559915520,3559923711,IT 3559923712,3559931903,RU @@ -91841,8 +93044,8 @@ 3561095168,3561103359,DE 3561103360,3561111551,UA 3561111552,3561113855,LU -3561113856,3561114111,EU -3561114112,3561119743,LU +3561113856,3561113856,EU +3561113857,3561119743,LU 3561119744,3561127935,IT 3561127936,3561136127,DE 3561136128,3561144319,ES @@ -92259,7 +93462,9 @@ 3564544000,3564560383,DE 3564560384,3564560531,GB 3564560532,3564560532,EU -3564560533,3564576767,GB +3564560533,3564572427,GB +3564572428,3564572431,ES +3564572432,3564576767,GB 3564576768,3564584959,RU 3564584960,3564593151,SA 3564593152,3564601343,RU @@ -92969,7 +94174,7 @@ 3580719104,3580723199,NL 3580723200,3580727295,UA 3580727296,3580731391,RU -3580731392,3580739583,RO +3580735488,3580739583,RO 3580739584,3580743679,RU 3580743680,3580751871,UA 3580751872,3580755967,IR @@ -94045,9 +95250,7 @@ 3624380936,3624380943,SA 3624380944,3624381567,US 3624381568,3624381583,MY -3624381584,3624381631,US -3624381632,3624381647,GB -3624381648,3624381807,US +3624381584,3624381807,US 3624381808,3624381823,IN 3624381824,3624381903,US 3624381904,3624381919,CA @@ -94125,7 +95328,9 @@ 3624550144,3624587263,US 3624587264,3624591359,JM 3624591360,3624714239,US -3624714240,3624716223,SG +3624714240,3624714703,SG +3624714704,3624714711,MV +3624714712,3624716223,SG 3624716224,3624716255,AU 3624716256,3624717311,SG 3624717312,3624718335,US @@ -94169,9 +95374,9 @@ 3624898560,3624898831,US 3624898832,3624898847,TH 3624898848,3624899071,US -3624899072,3624899327,CA -3624899328,3624899583,US -3624899584,3624899839,AU +3624899072,3624899207,CA +3624899208,3624899583,US +3624899584,3624899839,CR 3624899840,3624900607,US 3624900608,3624900639,AU 3624900640,3624900671,BE @@ -94209,8 +95414,8 @@ 3624903584,3624903679,US 3624903680,3624903807,CA 3624903808,3624903935,US -3624903936,3624904463,CA -3624904464,3624904703,US +3624903936,3624904447,CA +3624904448,3624904703,US 3624904704,3624904767,IN 3624904768,3624904831,US 3624904832,3624904895,CA @@ -94288,7 +95493,11 @@ 3624911200,3624911231,BE 3624911232,3624911263,CA 3624911264,3624911327,US -3624911328,3624911615,CA +3624911328,3624911359,CA +3624911360,3624911391,US +3624911392,3624911399,TR +3624911400,3624911607,US +3624911608,3624911615,UA 3624911616,3624911647,US 3624911648,3624911651,RU 3624911652,3624911999,US @@ -94584,7 +95793,9 @@ 3626108896,3626108927,AU 3626108928,3626130415,US 3626130416,3626130431,CA -3626130432,3626140479,US +3626130432,3626132127,US +3626132128,3626132159,CA +3626132160,3626140479,US 3626140480,3626140671,AU 3626140672,3626142623,US 3626142624,3626142639,AU @@ -95247,9 +96458,7 @@ 3627759072,3627759103,GB 3627759104,3627759359,US 3627759360,3627759615,NL -3627759616,3627759871,US -3627759872,3627760127,NL -3627760128,3627760639,US +3627759616,3627760639,US 3627760640,3627760895,EU 3627760896,3627802623,US 3627802624,3627810815,CA @@ -95424,13 +96633,15 @@ 3628963040,3629187071,US 3629187072,3629195263,CA 3629195264,3629199359,US -3629199360,3629201463,CA +3629199360,3629201439,CA +3629201440,3629201447,US +3629201448,3629201463,CA 3629201464,3629201467,US -3629201468,3629201487,CA -3629201488,3629201515,US +3629201468,3629201471,CA +3629201472,3629201515,US 3629201516,3629201539,CA -3629201540,3629201543,US -3629201544,3629201551,CA +3629201540,3629201547,US +3629201548,3629201551,CA 3629201552,3629201559,US 3629201560,3629201563,CA 3629201564,3629201599,US @@ -95887,11 +97098,15 @@ 3630168192,3630169087,CA 3630169088,3630169343,US 3630169344,3630170111,CA -3630170112,3630301695,US -3630301696,3630301711,RU -3630301712,3630309375,US +3630170112,3630309375,US 3630309376,3630317567,CA -3630317568,3630375423,US +3630317568,3630328063,US +3630328064,3630328087,JP +3630328088,3630328191,US +3630328192,3630328319,JP +3630328320,3630328703,US +3630328704,3630328831,JP +3630328832,3630375423,US 3630375424,3630383103,CA 3630383104,3630391295,US 3630391296,3630395391,CA @@ -95907,7 +97122,18 @@ 3630780416,3630784511,CA 3630784512,3630850047,US 3630850048,3630854143,CA -3630854144,3630956543,US +3630854144,3630897407,US +3630897408,3630897919,CA +3630897920,3630923776,US +3630923777,3630923926,IN +3630923927,3630924027,DE +3630924028,3630924438,US +3630924439,3630924539,TH +3630924540,3630925824,US +3630925825,3630925974,DE +3630925975,3630927104,US +3630927105,3630927254,IN +3630927255,3630956543,US 3630956544,3631005695,CA 3631005696,3631014915,US 3631014916,3631015011,HU @@ -95965,11 +97191,7 @@ 3631153152,3631284223,US 3631284224,3631316991,CA 3631316992,3631333375,US -3631333376,3631333679,CA -3631333680,3631333695,US -3631333696,3631334847,CA -3631334848,3631334863,US -3631334864,3631341567,CA +3631333376,3631341567,CA 3631341568,3631435007,US 3631435008,3631435263,GB 3631435264,3631644671,US @@ -96052,7 +97274,9 @@ 3632222817,3632223074,US 3632223075,3632232447,US 3632232448,3632232703,A2 -3632232704,3632244223,US +3632232704,3632242943,US +3632242944,3632243007,GB +3632243008,3632244223,US 3632244224,3632244479,CA 3632244480,3632278527,US 3632278528,3632279551,SA @@ -96097,11 +97321,7 @@ 3632898336,3632898351,US 3632898352,3632902143,CA 3632902144,3632971775,US -3632971776,3632972031,CA -3632972032,3632972063,US -3632972064,3632973087,CA -3632973088,3632973119,US -3632973120,3632988159,CA +3632971776,3632988159,CA 3632988160,3632994047,US 3632994048,3632994303,US 3632994304,3633029119,US @@ -96244,9 +97464,7 @@ 3633757440,3633757695,IN 3633757696,3633776399,US 3633776400,3633776415,CN -3633776416,3633776463,US -3633776464,3633776479,CN -3633776480,3633782527,US +3633776416,3633782527,US 3633782528,3633782783,US 3633782784,3633815551,US 3633815552,3633815807,CA @@ -96355,17 +97573,13 @@ 3633822208,3633822335,US 3633822336,3633823487,US 3633823488,3633823743,US -3633823744,3633827839,US -3633827840,3633828095,GB -3633828096,3633828970,US +3633823744,3633828970,US 3633828971,3633828977,IN 3633828978,3633831306,US 3633831307,3633831338,IN 3633831339,3633831383,US 3633831384,3633831395,AU -3633831396,3633874431,US -3633874432,3633874687,GB -3633874688,3633881087,US +3633831396,3633881087,US 3633881088,3633885183,CW 3633885184,3633889279,US 3633889280,3633893375,CA @@ -96377,7 +97591,10 @@ 3633971200,3633974527,CA 3633974528,3633975039,US 3633975040,3634020351,CA -3634020352,3634053119,US +3634020352,3634037247,US +3634037248,3634037759,CA +3634037760,3634052863,US +3634052864,3634053119,CA 3634053120,3634061311,CL 3634061312,3634065311,US 3634065312,3634065343,SV @@ -96392,9 +97609,7 @@ 3634136104,3634136111,CA 3634136112,3634138127,US 3634138128,3634138143,CA -3634138144,3634189055,US -3634189056,3634189311,GB -3634189312,3634204255,US +3634138144,3634204255,US 3634204256,3634204263,AT 3634204264,3634204591,US 3634204592,3634204607,GB @@ -96442,13 +97657,7 @@ 3635159040,3635163135,CA 3635163136,3635171071,US 3635171072,3635171327,CA -3635171328,3635185407,US -3635185408,3635185663,US -3635185664,3635186175,US -3635186176,3635186431,US -3635186432,3635187199,US -3635187200,3635187455,US -3635187456,3635314687,US +3635171328,3635314687,US 3635314688,3635322879,CA 3635322880,3635425279,US 3635425280,3635429375,CA @@ -96471,7 +97680,8 @@ 3635647488,3635647743,US 3635647744,3635647999,CA 3635648000,3635648255,TW -3635648256,3635648767,US +3635648256,3635648511,ML +3635648512,3635648767,US 3635648768,3635649023,JP 3635649024,3635650559,US 3635650560,3635652607,HK @@ -96505,10 +97715,9 @@ 3635904512,3635912703,CA 3635912704,3635961855,US 3635961856,3635963903,SV -3635963904,3635964159,US -3635964160,3635964415,BO +3635963904,3635964415,US 3635964416,3635965951,SV -3635965952,3635966975,BO +3635965952,3635966975,US 3635966976,3635967999,PY 3635968000,3635970047,SV 3635970048,3636019199,US @@ -96668,19 +97877,21 @@ 3636206080,3636206335,AU 3636206336,3636266879,US 3636266880,3636266911,HK -3636266912,3636267263,US -3636267264,3636267519,CA -3636267520,3636267775,US -3636267776,3636268031,CA -3636268032,3636287487,US +3636266912,3636273663,US +3636273664,3636273919,CA +3636273920,3636274175,US +3636274176,3636274431,CA +3636274432,3636287487,US 3636287488,3636287743,CA 3636287744,3636291839,US 3636291840,3636292095,CA -3636292096,3636396031,US +3636292096,3636292863,US +3636292864,3636293119,CA +3636293120,3636294399,US +3636294400,3636294655,CA +3636294656,3636396031,US 3636396032,3636461567,CA -3636461568,3636577647,US -3636577648,3636577663,CA -3636577664,3636609023,US +3636461568,3636609023,US 3636609024,3636610559,CA 3636610560,3636610815,US 3636610816,3636621311,CA @@ -96800,7 +98011,8 @@ 3636908032,3636908543,US 3636908544,3636908799,IN 3636908800,3636908863,US -3636908864,3636908991,CA +3636908864,3636908927,CN +3636908928,3636908991,CA 3636908992,3636909055,US 3636909056,3636909311,CA 3636909312,3636909663,US @@ -96868,8 +98080,8 @@ 3636917368,3636917447,US 3636917448,3636917455,HK 3636917456,3636917503,US -3636917504,3636917775,CA -3636917776,3636918015,US +3636917504,3636917759,CA +3636917760,3636918015,US 3636918016,3636919039,CA 3636919040,3636919071,IN 3636919072,3636919103,US @@ -96918,15 +98130,11 @@ 3637073168,3637073183,AD 3637073184,3637073215,US 3637073216,3637073231,CY -3637073232,3637073727,US -3637073728,3637073791,CY -3637073792,3637073935,US +3637073232,3637073935,US 3637073936,3637073959,AD 3637073960,3637074239,US 3637074240,3637074303,PA -3637074304,3637074687,US -3637074688,3637074703,CA -3637074704,3637074943,US +3637074304,3637074943,US 3637074944,3637074959,CA 3637074960,3637075967,US 3637075968,3637080063,CA @@ -96954,9 +98162,7 @@ 3638198952,3638198959,BM 3638198960,3638198983,US 3638198984,3638198991,ES -3638198992,3638199711,US -3638199712,3638199743,DE -3638199744,3638200007,US +3638198992,3638200007,US 3638200008,3638200015,JP 3638200016,3638206407,US 3638206408,3638206415,LU @@ -96966,8 +98172,7 @@ 3638214168,3638214175,GB 3638214176,3638214399,US 3638214400,3638214655,GR -3638214656,3638214783,IT -3638214784,3638214871,US +3638214656,3638214871,US 3638214872,3638214879,CK 3638214880,3638215663,US 3638215664,3638215679,GB @@ -96977,30 +98182,18 @@ 3638215856,3638215863,AU 3638215864,3638216735,US 3638216736,3638216743,LU -3638216744,3638219087,US -3638219088,3638219103,IT -3638219104,3638219455,US +3638216744,3638219455,US 3638219456,3638219519,AU -3638219520,3638219775,US -3638219776,3638220031,IT -3638220032,3638220167,US +3638219520,3638220167,US 3638220168,3638220175,JP -3638220176,3638220191,US -3638220192,3638220223,QA -3638220224,3638220511,US +3638220176,3638220511,US 3638220512,3638220519,CN 3638220520,3638222087,US 3638222088,3638222095,DE -3638222096,3638222143,US -3638222144,3638222207,DE -3638222208,3638222463,US +3638222096,3638222463,US 3638222464,3638222591,AU -3638222592,3638222623,CA -3638222624,3638223559,US -3638223560,3638223567,PA -3638223568,3638224255,US -3638224256,3638224271,IT -3638224272,3638224639,US +3638222592,3638222655,CA +3638222656,3638224639,US 3638224640,3638224895,GR 3638224896,3638225983,US 3638225984,3638226015,IN @@ -97008,9 +98201,7 @@ 3638226688,3638226943,NL 3638226944,3638228023,US 3638228024,3638228031,GB -3638228032,3638229279,US -3638229280,3638229311,IT -3638229312,3638230815,US +3638228032,3638230815,US 3638230816,3638230847,ES 3638230848,3638230927,US 3638230928,3638230935,CA @@ -97020,12 +98211,12 @@ 3638247440,3638247455,GB 3638247456,3638247487,US 3638247488,3638247551,GB -3638247552,3638247615,DE +3638247552,3638247615,US 3638247616,3638247679,GB 3638247680,3638247855,US 3638247856,3638247871,DE -3638247872,3638247903,US -3638247904,3638248703,GB +3638247872,3638247919,US +3638247920,3638248703,GB 3638248704,3638249215,FR 3638249216,3638249471,GB 3638249472,3638249751,US @@ -97041,7 +98232,9 @@ 3638250624,3638250687,US 3638250688,3638250703,GB 3638250704,3638250719,US -3638250720,3638250815,GB +3638250720,3638250735,GB +3638250736,3638250743,US +3638250744,3638250815,GB 3638250816,3638250831,US 3638250832,3638250847,GB 3638250848,3638250863,US @@ -97335,9 +98528,7 @@ 3640028336,3640028343,CA 3640028344,3640028447,US 3640028448,3640028455,GB -3640028456,3640028495,US -3640028496,3640028503,MY -3640028504,3640028591,US +3640028456,3640028591,US 3640028592,3640028599,CA 3640028600,3640057855,US 3640057856,3640066047,CA @@ -99103,4 +100294,4 @@ 3758094336,3758095359,AU 3758095360,3758095871,CN 3758095872,3758096127,SG -3758096128,3758096383,AU +3758096128,3758096383,AU
\ No newline at end of file diff --git a/src/config/geoip-manual b/src/config/geoip-manual index 3811c75bfb..99c897ff42 100644 --- a/src/config/geoip-manual +++ b/src/config/geoip-manual @@ -5,7 +5,9 @@ # Remove MaxMind entry 0.116.0.0-0.119.255.255 which MaxMind says is AT, # but which is part of reserved range 0.0.0.0/8. -KL 2012-06-13 -"0.116.0.0","0.119.255.255","7602176","7864319","","" +# Disabled, because MaxMind apparently removed this range from their +# database. -KL 2013-02-08 +#"0.116.0.0","0.119.255.255","7602176","7864319","","" # NL, because previous MaxMind entry 31.171.128.0-31.171.133.255 is NL, # and RIR delegation files say 31.171.128.0-31.171.135.255 is NL. diff --git a/src/ext/curve25519_donna/curve25519-donna-c64.c b/src/ext/curve25519_donna/curve25519-donna-c64.c index 9ebd8a12d8..b68ff3695a 100644 --- a/src/ext/curve25519_donna/curve25519-donna-c64.c +++ b/src/ext/curve25519_donna/curve25519-donna-c64.c @@ -22,8 +22,10 @@ * from the sample implementation. */ +#include "orconfig.h" + #include <string.h> -#include <stdint.h> +#include "torint.h" typedef uint8_t u8; typedef uint64_t limb; diff --git a/src/ext/curve25519_donna/curve25519-donna.c b/src/ext/curve25519_donna/curve25519-donna.c index 80e4594eec..5c6821ccd8 100644 --- a/src/ext/curve25519_donna/curve25519-donna.c +++ b/src/ext/curve25519_donna/curve25519-donna.c @@ -46,8 +46,10 @@ * from the sample implementation. */ +#include "orconfig.h" + #include <string.h> -#include <stdint.h> +#include "torint.h" typedef uint8_t u8; typedef int32_t s32; diff --git a/src/or/buffers.c b/src/or/buffers.c index e5fac9172d..b54584fb4a 100644 --- a/src/or/buffers.c +++ b/src/or/buffers.c @@ -1045,28 +1045,34 @@ cell_command_is_var_length(uint8_t command, int linkproto) int fetch_var_cell_from_buf(buf_t *buf, var_cell_t **out, int linkproto) { - char hdr[VAR_CELL_HEADER_SIZE]; + char hdr[VAR_CELL_MAX_HEADER_SIZE]; var_cell_t *result; uint8_t command; uint16_t length; + const int wide_circ_ids = linkproto >= MIN_LINK_PROTO_FOR_WIDE_CIRC_IDS; + const int circ_id_len = get_circ_id_size(wide_circ_ids); + const unsigned header_len = get_var_cell_header_size(wide_circ_ids); check(); *out = NULL; - if (buf->datalen < VAR_CELL_HEADER_SIZE) + if (buf->datalen < header_len) return 0; - peek_from_buf(hdr, sizeof(hdr), buf); + peek_from_buf(hdr, header_len, buf); - command = get_uint8(hdr+2); + command = get_uint8(hdr + circ_id_len); if (!(cell_command_is_var_length(command, linkproto))) return 0; - length = ntohs(get_uint16(hdr+3)); - if (buf->datalen < (size_t)(VAR_CELL_HEADER_SIZE+length)) + length = ntohs(get_uint16(hdr + circ_id_len + 1)); + if (buf->datalen < (size_t)(header_len+length)) return 1; result = var_cell_new(length); result->command = command; - result->circ_id = ntohs(get_uint16(hdr)); + if (wide_circ_ids) + result->circ_id = ntohl(get_uint32(hdr)); + else + result->circ_id = ntohs(get_uint16(hdr)); - buf_remove_from_front(buf, VAR_CELL_HEADER_SIZE); + buf_remove_from_front(buf, header_len); peek_from_buf((char*) result->payload, length, buf); buf_remove_from_front(buf, length); check(); @@ -1125,30 +1131,36 @@ fetch_var_cell_from_evbuffer(struct evbuffer *buf, var_cell_t **out, uint16_t cell_length; var_cell_t *cell; int result = 0; + const int wide_circ_ids = linkproto >= MIN_LINK_PROTO_FOR_WIDE_CIRC_IDS; + const int circ_id_len = get_circ_id_size(wide_circ_ids); + const unsigned header_len = get_var_cell_header_size(wide_circ_ids); *out = NULL; buf_len = evbuffer_get_length(buf); - if (buf_len < VAR_CELL_HEADER_SIZE) + if (buf_len < header_len) return 0; - n = inspect_evbuffer(buf, &hdr, VAR_CELL_HEADER_SIZE, &free_hdr, NULL); - tor_assert(n >= VAR_CELL_HEADER_SIZE); + n = inspect_evbuffer(buf, &hdr, header_len, &free_hdr, NULL); + tor_assert(n >= header_len); - command = get_uint8(hdr+2); + command = get_uint8(hdr + circ_id_len); if (!(cell_command_is_var_length(command, linkproto))) { goto done; } - cell_length = ntohs(get_uint16(hdr+3)); - if (buf_len < (size_t)(VAR_CELL_HEADER_SIZE+cell_length)) { + cell_length = ntohs(get_uint16(hdr + circ_id_len + 1)); + if (buf_len < (size_t)(header_len+cell_length)) { result = 1; /* Not all here yet. */ goto done; } cell = var_cell_new(cell_length); cell->command = command; - cell->circ_id = ntohs(get_uint16(hdr)); - evbuffer_drain(buf, VAR_CELL_HEADER_SIZE); + if (wide_circ_ids) + cell->circ_id = ntohl(get_uint32(hdr)); + else + cell->circ_id = ntohs(get_uint16(hdr)); + evbuffer_drain(buf, header_len); evbuffer_remove(buf, cell->payload, cell_length); *out = cell; result = 1; @@ -1505,22 +1517,19 @@ log_unsafe_socks_warning(int socks_protocol, const char *address, static ratelim_t socks_ratelim = RATELIM_INIT(SOCKS_WARN_INTERVAL); const or_options_t *options = get_options(); - char *m = NULL; if (! options->WarnUnsafeSocks) return; - if (safe_socks || (m = rate_limit_log(&socks_ratelim, approx_time()))) { - log_warn(LD_APP, + if (safe_socks) { + log_fn_ratelim(&socks_ratelim, LOG_WARN, LD_APP, "Your application (using socks%d to port %d) is giving " "Tor only an IP address. Applications that do DNS resolves " "themselves may leak information. Consider using Socks4A " "(e.g. via privoxy or socat) instead. For more information, " "please see https://wiki.torproject.org/TheOnionRouter/" - "TorFAQ#SOCKSAndDNS.%s%s", + "TorFAQ#SOCKSAndDNS.%s", socks_protocol, (int)port, - safe_socks ? " Rejecting." : "", - m ? m : ""); - tor_free(m); + safe_socks ? " Rejecting." : ""); } control_event_client_status(LOG_WARN, "DANGEROUS_SOCKS PROTOCOL=SOCKS%d ADDRESS=%s:%d", diff --git a/src/or/channel.c b/src/or/channel.c index 104b018cf4..f8afc405e6 100644 --- a/src/or/channel.c +++ b/src/or/channel.c @@ -4068,9 +4068,10 @@ channel_num_circuits(channel_t *chan) * This is called when setting up a channel and replaces the old * connection_or_set_circid_type() */ - void -channel_set_circid_type(channel_t *chan, crypto_pk_t *identity_rcvd) +channel_set_circid_type(channel_t *chan, + crypto_pk_t *identity_rcvd, + int consider_identity) { int started_here; crypto_pk_t *our_identity; @@ -4078,6 +4079,15 @@ channel_set_circid_type(channel_t *chan, crypto_pk_t *identity_rcvd) tor_assert(chan); started_here = channel_is_outgoing(chan); + + if (! consider_identity) { + if (started_here) + chan->circ_id_type = CIRC_ID_TYPE_HIGHER; + else + chan->circ_id_type = CIRC_ID_TYPE_LOWER; + return; + } + our_identity = started_here ? get_tlsclient_identity_key() : get_server_identity_key(); diff --git a/src/or/channel.h b/src/or/channel.h index ec79888063..0933ec8d39 100644 --- a/src/or/channel.h +++ b/src/or/channel.h @@ -143,6 +143,8 @@ struct channel_s { * space should we use? */ ENUM_BF(circ_id_type_t) circ_id_type:2; + /** DOCDOC*/ + unsigned wide_circ_ids:1; /* * Which circ_id do we try to use next on this connection? This is * always in the range 0..1<<15-1. @@ -447,7 +449,8 @@ int channel_matches_extend_info(channel_t *chan, extend_info_t *extend_info); int channel_matches_target_addr_for_extend(channel_t *chan, const tor_addr_t *target); unsigned int channel_num_circuits(channel_t *chan); -void channel_set_circid_type(channel_t *chan, crypto_pk_t *identity_rcvd); +void channel_set_circid_type(channel_t *chan, crypto_pk_t *identity_rcvd, + int consider_identity); void channel_timestamp_client(channel_t *chan); const char * channel_listener_describe_transport(channel_listener_t *chan_l); diff --git a/src/or/channeltls.c b/src/or/channeltls.c index e3dfdcc25e..1035a14127 100644 --- a/src/or/channeltls.c +++ b/src/or/channeltls.c @@ -600,12 +600,13 @@ channel_tls_write_packed_cell_method(channel_t *chan, packed_cell_t *packed_cell) { channel_tls_t *tlschan = BASE_CHAN_TO_TLS(chan); + size_t cell_network_size = get_cell_network_size(chan->wide_circ_ids); tor_assert(tlschan); tor_assert(packed_cell); tor_assert(tlschan->conn); - connection_write_to_buf(packed_cell->body, CELL_NETWORK_SIZE, + connection_write_to_buf(packed_cell->body, cell_network_size, TO_CONN(tlschan->conn)); /* This is where the cell is finished; used to be done from relay.c */ @@ -893,7 +894,7 @@ channel_tls_handle_cell(cell_t *cell, or_connection_t *conn) } if (conn->base_.state == OR_CONN_STATE_OR_HANDSHAKING_V3) - or_handshake_state_record_cell(conn->handshake_state, cell, 1); + or_handshake_state_record_cell(conn, conn->handshake_state, cell, 1); switch (cell->command) { case CELL_PADDING: @@ -1034,7 +1035,8 @@ channel_tls_handle_var_cell(var_cell_t *var_cell, or_connection_t *conn) break; case OR_CONN_STATE_OR_HANDSHAKING_V3: if (var_cell->command != CELL_AUTHENTICATE) - or_handshake_state_record_var_cell(conn->handshake_state, var_cell, 1); + or_handshake_state_record_var_cell(conn, conn->handshake_state, + var_cell, 1); break; /* Everything is allowed */ case OR_CONN_STATE_OPEN: if (conn->link_proto < 3) { @@ -1154,7 +1156,8 @@ enter_v3_handshake_with_cell(var_cell_t *cell, channel_tls_t *chan) connection_or_close_for_error(chan->conn, 0); return -1; } - or_handshake_state_record_var_cell(chan->conn->handshake_state, cell, 1); + or_handshake_state_record_var_cell(chan->conn, + chan->conn->handshake_state, cell, 1); return 0; } @@ -1225,7 +1228,7 @@ channel_tls_process_versions_cell(var_cell_t *cell, channel_tls_t *chan) connection_or_close_for_error(chan->conn, 0); return; } else if (highest_supported_version < 3 && - chan->conn->base_.state == OR_CONN_STATE_OR_HANDSHAKING_V3) { + chan->conn->base_.state == OR_CONN_STATE_OR_HANDSHAKING_V3) { log_fn(LOG_PROTOCOL_WARN, LD_OR, "Negotiated link protocol 2 or lower after doing a v3 TLS " "handshake. Closing connection."); @@ -1294,6 +1297,13 @@ channel_tls_process_versions_cell(var_cell_t *cell, channel_tls_t *chan) return; } } + + /* We set this after sending the verions cell. */ + /*XXXXX symbolic const.*/ + chan->base_.wide_circ_ids = + chan->conn->link_proto >= MIN_LINK_PROTO_FOR_WIDE_CIRC_IDS; + chan->conn->wide_circ_ids = chan->base_.wide_circ_ids; + if (send_certs) { if (connection_or_send_certs_cell(chan->conn) < 0) { log_warn(LD_OR, "Couldn't send certs cell"); @@ -1375,7 +1385,8 @@ channel_tls_process_netinfo_cell(cell_t *cell, channel_tls_t *chan) tor_assert(tor_digest_is_zero( (const char*)(chan->conn->handshake_state-> authenticated_peer_id))); - channel_set_circid_type(TLS_CHAN_TO_BASE(chan), NULL); + channel_set_circid_type(TLS_CHAN_TO_BASE(chan), NULL, + chan->conn->link_proto < MIN_LINK_PROTO_FOR_WIDE_CIRC_IDS); connection_or_init_conn_from_address(chan->conn, &(chan->conn->base_.addr), @@ -1629,7 +1640,8 @@ channel_tls_process_certs_cell(var_cell_t *cell, channel_tls_t *chan) ERR("Internal error: Couldn't get RSA key from ID cert."); memcpy(chan->conn->handshake_state->authenticated_peer_id, id_digests->d[DIGEST_SHA1], DIGEST_LEN); - channel_set_circid_type(TLS_CHAN_TO_BASE(chan), identity_rcvd); + channel_set_circid_type(TLS_CHAN_TO_BASE(chan), identity_rcvd, + chan->conn->link_proto < MIN_LINK_PROTO_FOR_WIDE_CIRC_IDS); crypto_pk_free(identity_rcvd); } @@ -1913,7 +1925,8 @@ channel_tls_process_authenticate_cell(var_cell_t *cell, channel_tls_t *chan) memcpy(chan->conn->handshake_state->authenticated_peer_id, id_digests->d[DIGEST_SHA1], DIGEST_LEN); - channel_set_circid_type(TLS_CHAN_TO_BASE(chan), identity_rcvd); + channel_set_circid_type(TLS_CHAN_TO_BASE(chan), identity_rcvd, + chan->conn->link_proto < MIN_LINK_PROTO_FOR_WIDE_CIRC_IDS); crypto_pk_free(identity_rcvd); connection_or_init_conn_from_address(chan->conn, diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index 05f9d76e7c..40751e02b1 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -25,6 +25,7 @@ #include "directory.h" #include "entrynodes.h" #include "main.h" +#include "microdesc.h" #include "networkstatus.h" #include "nodelist.h" #include "onion.h" @@ -99,7 +100,7 @@ get_unique_circ_id_by_chan(channel_t *chan) { circid_t test_circ_id; circid_t attempts=0; - circid_t high_bit; + circid_t high_bit, max_range; tor_assert(chan); @@ -109,17 +110,17 @@ get_unique_circ_id_by_chan(channel_t *chan) "a client with no identity."); return 0; } - high_bit = - (chan->circ_id_type == CIRC_ID_TYPE_HIGHER) ? 1<<15 : 0; + max_range = (chan->wide_circ_ids) ? (1u<<31) : (1u<<15); + high_bit = (chan->circ_id_type == CIRC_ID_TYPE_HIGHER) ? max_range : 0; do { - /* Sequentially iterate over test_circ_id=1...1<<15-1 until we find a + /* Sequentially iterate over test_circ_id=1...max_range until we find a * circID such that (high_bit|test_circ_id) is not already used. */ test_circ_id = chan->next_circ_id++; - if (test_circ_id == 0 || test_circ_id >= 1<<15) { + if (test_circ_id == 0 || test_circ_id >= max_range) { test_circ_id = 1; chan->next_circ_id = 2; } - if (++attempts > 1<<15) { + if (++attempts > max_range) { /* Make sure we don't loop forever if all circ_id's are used. This * matters because it's an external DoS opportunity. */ @@ -1222,7 +1223,7 @@ pathbias_get_min_use(const or_options_t *options) static double pathbias_get_notice_use_rate(const or_options_t *options) { -#define DFLT_PATH_BIAS_NOTICE_USE_PCT 90 +#define DFLT_PATH_BIAS_NOTICE_USE_PCT 80 if (options->PathBiasNoticeUseRate >= 0.0) return options->PathBiasNoticeUseRate; else @@ -1238,7 +1239,7 @@ pathbias_get_notice_use_rate(const or_options_t *options) double pathbias_get_extreme_use_rate(const or_options_t *options) { -#define DFLT_PATH_BIAS_EXTREME_USE_PCT 70 +#define DFLT_PATH_BIAS_EXTREME_USE_PCT 60 if (options->PathBiasExtremeUseRate >= 0.0) return options->PathBiasExtremeUseRate; else @@ -1307,7 +1308,8 @@ pathbias_is_new_circ_attempt(origin_circuit_t *circ) /* cpath is a circular list. We want circs with more than one hop, * and the second hop must be waiting for keys still (it's just * about to get them). */ - return circ->cpath->next != circ->cpath && + return circ->cpath && + circ->cpath->next != circ->cpath && circ->cpath->next->state == CPATH_STATE_AWAITING_KEYS; #else /* If tagging attacks are no longer possible, we probably want to @@ -1315,7 +1317,8 @@ pathbias_is_new_circ_attempt(origin_circuit_t *circ) * timing-based tagging is still more useful than per-hop failure. * In which case, we'd never want to use this. */ - return circ->cpath->state == CPATH_STATE_AWAITING_KEYS; + return circ->cpath && + circ->cpath->state == CPATH_STATE_AWAITING_KEYS; #endif } @@ -2273,8 +2276,8 @@ pathbias_measure_use_rate(entry_guard_t *guard) entry_guards_changed(); return; } - } else if (!guard->path_bias_extreme) { - guard->path_bias_extreme = 1; + } else if (!guard->path_bias_use_extreme) { + guard->path_bias_use_extreme = 1; log_warn(LD_CIRC, "Your Guard %s=%s is failing to carry an extremely large " "amount of streams on its circuits. " @@ -2297,8 +2300,8 @@ pathbias_measure_use_rate(entry_guard_t *guard) } } else if (pathbias_get_use_success_count(guard)/guard->use_attempts < pathbias_get_notice_use_rate(options)) { - if (!guard->path_bias_noticed) { - guard->path_bias_noticed = 1; + if (!guard->path_bias_use_noticed) { + guard->path_bias_use_noticed = 1; log_notice(LD_CIRC, "Your Guard %s=%s is failing to carry more streams on its " "circuits than usual. " @@ -2336,7 +2339,10 @@ pathbias_measure_use_rate(entry_guard_t *guard) * pathbias_measure_use_rate(). It may be possible to combine them * eventually, especially if we can ever remove the need for 3 * levels of closure warns (if the overall circuit failure rate - * goes down with ntor). + * goes down with ntor). One way to do so would be to multiply + * the build rate with the use rate to get an idea of the total + * fraction of the total network paths the user is able to use. + * See ticket #8159. */ static void pathbias_measure_close_rate(entry_guard_t *guard) @@ -2457,7 +2463,7 @@ pathbias_measure_close_rate(entry_guard_t *guard) * * XXX: The attempt count transfer stuff here might be done * better by keeping separate pending counters that get - * transfered at circuit close. + * transfered at circuit close. See ticket #8160. */ static void pathbias_scale_close_rates(entry_guard_t *guard) @@ -2503,7 +2509,7 @@ pathbias_scale_close_rates(entry_guard_t *guard) * * XXX: The attempt count transfer stuff here might be done * better by keeping separate pending counters that get - * transfered at circuit close. + * transfered at circuit close. See ticket #8160. */ void pathbias_scale_use_rates(entry_guard_t *guard) diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c index 6987dc42fd..ef32680736 100644 --- a/src/or/circuitlist.c +++ b/src/or/circuitlist.c @@ -71,7 +71,7 @@ chan_circid_entries_eq_(chan_circid_circuit_map_t *a, static INLINE unsigned int chan_circid_entry_hash_(chan_circid_circuit_map_t *a) { - return (((unsigned)a->circ_id)<<8) ^ (unsigned)(uintptr_t)(a->chan); + return ((unsigned)a->circ_id) ^ (unsigned)(uintptr_t)(a->chan); } /** Map from [chan,circid] to circuit. */ diff --git a/src/or/circuituse.c b/src/or/circuituse.c index cfd41be792..c0612039be 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -540,17 +540,13 @@ circuit_expire_building(void) continue; } else { static ratelim_t relax_timeout_limit = RATELIM_INIT(3600); - char *m; - if ((m = rate_limit_log(&relax_timeout_limit, approx_time()))) { - log_notice(LD_CIRC, + log_fn_ratelim(&relax_timeout_limit, LOG_NOTICE, LD_CIRC, "No circuits are opened. Relaxed timeout for " "a circuit with channel state %s to %ldms. " "However, it appears the circuit has timed out anyway. " - "%d guards are live. %s", + "%d guards are live.", channel_state_to_string(victim->n_chan->state), - (long)circ_times.close_ms, num_live_entry_guards(0), m); - tor_free(m); - } + (long)circ_times.close_ms, num_live_entry_guards(0)); } } diff --git a/src/or/command.c b/src/or/command.c index 09313b48a2..dfe4f65916 100644 --- a/src/or/command.c +++ b/src/or/command.c @@ -231,7 +231,10 @@ command_process_create_cell(cell_t *cell, channel_t *chan) /* If the high bit of the circuit ID is not as expected, close the * circ. */ - id_is_high = cell->circ_id & (1<<15); + if (chan->wide_circ_ids) + id_is_high = cell->circ_id & (1u<<31); + else + id_is_high = cell->circ_id & (1u<<15); if ((id_is_high && chan->circ_id_type == CIRC_ID_TYPE_HIGHER) || (!id_is_high && diff --git a/src/or/config.c b/src/or/config.c index 31695baa73..f88842624c 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -606,9 +606,12 @@ set_options(or_options_t *new_val, char **msg) var_name, 1); if (line) { - for (; line; line = line->next) { + config_line_t *next; + for (; line; line = next) { + next = line->next; smartlist_add(elements, line->key); smartlist_add(elements, line->value); + tor_free(line); } } else { smartlist_add(elements, (char*)options_format.vars[i].name); @@ -1890,21 +1893,41 @@ list_torrc_options(void) /** Last value actually set by resolve_my_address. */ static uint32_t last_resolved_addr = 0; + +/** Accessor for last_resolved_addr from outside this file. */ +uint32_t +get_last_resolved_addr(void) +{ + return last_resolved_addr; +} + /** - * Based on <b>options-\>Address</b>, guess our public IP address and put it - * (in host order) into *<b>addr_out</b>. If <b>hostname_out</b> is provided, - * set *<b>hostname_out</b> to a new string holding the hostname we used to - * get the address. Return 0 if all is well, or -1 if we can't find a suitable + * Use <b>options-\>Address</b> to guess our public IP address. + * + * Return 0 if all is well, or -1 if we can't find a suitable * public IP address. + * + * If we are returning 0: + * - Put our public IP address (in host order) into *<b>addr_out</b>. + * - If <b>method_out</b> is non-NULL, set *<b>method_out</b> to a static + * string describing how we arrived at our answer. + * - If <b>hostname_out</b> is non-NULL, and we resolved a hostname to + * get our address, set *<b>hostname_out</b> to a newly allocated string + * holding that hostname. (If we didn't get our address by resolving a + * hostname, set *<b>hostname_out</b> to NULL.) + * * XXXX ipv6 */ int resolve_my_address(int warn_severity, const or_options_t *options, - uint32_t *addr_out, char **hostname_out) + uint32_t *addr_out, + const char **method_out, char **hostname_out) { struct in_addr in; uint32_t addr; /* host order */ char hostname[256]; + const char *method_used; + const char *hostname_used; int explicit_ip=1; int explicit_hostname=1; int from_interface=0; @@ -1915,6 +1938,10 @@ resolve_my_address(int warn_severity, const or_options_t *options, tor_assert(addr_out); + /* + * Step one: Fill in 'hostname' to be our best guess. + */ + if (address && *address) { strlcpy(hostname, address, sizeof(hostname)); } else { /* then we need to guess our address */ @@ -1925,10 +1952,14 @@ resolve_my_address(int warn_severity, const or_options_t *options, log_fn(warn_severity, LD_NET,"Error obtaining local hostname"); return -1; } - log_debug(LD_CONFIG,"Guessed local host name as '%s'",hostname); + log_debug(LD_CONFIG, "Guessed local host name as '%s'", hostname); } - /* now we know hostname. resolve it and keep only the IP address */ + /* + * Step two: Now that we know 'hostname', parse it or resolve it. If + * it doesn't parse or resolve, look at the interface address. Set 'addr' + * to be our (host-order) 32-bit answer. + */ if (tor_inet_aton(hostname, &in) == 0) { /* then we have to resolve it */ @@ -1985,6 +2016,11 @@ resolve_my_address(int warn_severity, const or_options_t *options, * illformed */ } + /* + * Step three: Check whether 'addr' is an internal IP address, and error + * out if it is and we don't want that. + */ + addr_string = tor_dup_ip(addr); if (is_internal_IP(addr, 0)) { /* make sure we're ok with publishing an internal IP */ @@ -2009,37 +2045,65 @@ resolve_my_address(int warn_severity, const or_options_t *options, } } - log_debug(LD_CONFIG, "Resolved Address to '%s'.", fmt_addr32(addr)); + /* + * Step four: We have a winner! 'addr' is our answer for sure, and + * 'addr_string' is its string form. Fill out the various fields to + * say how we decided it. + */ + + log_debug(LD_CONFIG, "Resolved Address to '%s'.", addr_string); + + if (explicit_ip) { + method_used = "CONFIGURED"; + hostname_used = NULL; + } else if (explicit_hostname) { + method_used = "RESOLVED"; + hostname_used = hostname; + } else if (from_interface) { + method_used = "INTERFACE"; + hostname_used = NULL; + } else { + method_used = "GETHOSTNAME"; + hostname_used = hostname; + } + *addr_out = addr; + if (method_out) + *method_out = method_used; + if (hostname_out) + *hostname_out = hostname_used ? tor_strdup(hostname_used) : NULL; + + /* + * Step five: Check if the answer has changed since last time (or if + * there was no last time), and if so call various functions to keep + * us up-to-date. + */ + if (last_resolved_addr && last_resolved_addr != *addr_out) { /* Leave this as a notice, regardless of the requested severity, * at least until dynamic IP address support becomes bulletproof. */ log_notice(LD_NET, - "Your IP address seems to have changed to %s. Updating.", - addr_string); + "Your IP address seems to have changed to %s " + "(METHOD=%s%s%s). Updating.", + addr_string, method_used, + hostname_used ? " HOSTNAME=" : "", + hostname_used ? hostname_used : ""); ip_address_changed(0); } + if (last_resolved_addr != *addr_out) { - const char *method; - const char *h = hostname; - if (explicit_ip) { - method = "CONFIGURED"; - h = NULL; - } else if (explicit_hostname) { - method = "RESOLVED"; - } else if (from_interface) { - method = "INTERFACE"; - h = NULL; - } else { - method = "GETHOSTNAME"; - } control_event_server_status(LOG_NOTICE, - "EXTERNAL_ADDRESS ADDRESS=%s METHOD=%s %s%s", - addr_string, method, h?"HOSTNAME=":"", h); + "EXTERNAL_ADDRESS ADDRESS=%s METHOD=%s%s%s", + addr_string, method_used, + hostname_used ? " HOSTNAME=" : "", + hostname_used ? hostname_used : ""); } last_resolved_addr = *addr_out; - if (hostname_out) - *hostname_out = tor_strdup(hostname); + + /* + * And finally, clean up and return success. + */ + tor_free(addr_string); return 0; } @@ -2287,7 +2351,7 @@ options_validate(or_options_t *old_options, or_options_t *options, if (authdir_mode(options)) { /* confirm that our address isn't broken, so we can complain now */ uint32_t tmp; - if (resolve_my_address(LOG_WARN, options, &tmp, NULL) < 0) + if (resolve_my_address(LOG_WARN, options, &tmp, NULL, NULL) < 0) REJECT("Failed to resolve/guess local address. See logs for details."); } diff --git a/src/or/config.h b/src/or/config.h index 8e34655805..ef4acac514 100644 --- a/src/or/config.h +++ b/src/or/config.h @@ -26,8 +26,10 @@ const char *get_short_version(void); setopt_err_t options_trial_assign(config_line_t *list, int use_defaults, int clear_first, char **msg); +uint32_t get_last_resolved_addr(void); int resolve_my_address(int warn_severity, const or_options_t *options, - uint32_t *addr, char **hostname_out); + uint32_t *addr_out, + const char **method_out, char **hostname_out); int is_local_addr(const tor_addr_t *addr); void options_init(or_options_t *options); char *options_dump(const or_options_t *options, int minimal); diff --git a/src/or/connection.c b/src/or/connection.c index 0d8242a54e..c659e65fe5 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -1058,6 +1058,7 @@ connection_listener_new(const struct sockaddr *listensockaddr, if (bind(s, listensockaddr, (socklen_t)sizeof(struct sockaddr_un)) == -1) { log_warn(LD_NET,"Bind to %s failed: %s.", address, tor_socket_strerror(tor_socket_errno(s))); + tor_close_socket(s); goto err; } #ifdef HAVE_PWD_H @@ -1066,9 +1067,12 @@ connection_listener_new(const struct sockaddr *listensockaddr, if (pw == NULL) { log_warn(LD_NET,"Unable to chown() %s socket: user %s not found.", address, options->User); + tor_close_socket(s); + goto err; } else if (chown(address, pw->pw_uid, pw->pw_gid) < 0) { log_warn(LD_NET,"Unable to chown() %s socket: %s.", address, strerror(errno)); + tor_close_socket(s); goto err; } } @@ -1441,12 +1445,9 @@ connection_connect(connection_t *conn, const char *address, /* We should never even try to connect anyplace if DisableNetwork is set. * Warn if we do, and refuse to make the connection. */ static ratelim_t disablenet_violated = RATELIM_INIT(30*60); - char *m; *socket_error = SOCK_ERRNO(ENETUNREACH); - if ((m = rate_limit_log(&disablenet_violated, approx_time()))) { - log_warn(LD_BUG, "Tried to open a socket with DisableNetwork set.%s", m); - tor_free(m); - } + log_fn_ratelim(&disablenet_violated, LOG_WARN, LD_BUG, + "Tried to open a socket with DisableNetwork set."); tor_fragile_assert(); return -1; } @@ -1707,6 +1708,7 @@ connection_read_https_proxy_response(connection_t *conn) tor_free(headers); return -1; } + tor_free(headers); if (!reason) reason = tor_strdup("[no reason given]"); if (status_code == 200) { @@ -2221,8 +2223,7 @@ connection_bucket_round_robin(int base, int priority, static ssize_t connection_bucket_read_limit(connection_t *conn, time_t now) { - int base = connection_speaks_cells(conn) ? - CELL_NETWORK_SIZE : RELAY_PAYLOAD_SIZE; + int base = RELAY_PAYLOAD_SIZE; int priority = conn->type != CONN_TYPE_DIR; int conn_bucket = -1; int global_bucket = global_read_bucket; @@ -2231,6 +2232,7 @@ connection_bucket_read_limit(connection_t *conn, time_t now) or_connection_t *or_conn = TO_OR_CONN(conn); if (conn->state == OR_CONN_STATE_OPEN) conn_bucket = or_conn->read_bucket; + base = get_cell_network_size(or_conn->wide_circ_ids); } if (!connection_is_rate_limited(conn)) { @@ -2250,8 +2252,7 @@ connection_bucket_read_limit(connection_t *conn, time_t now) ssize_t connection_bucket_write_limit(connection_t *conn, time_t now) { - int base = connection_speaks_cells(conn) ? - CELL_NETWORK_SIZE : RELAY_PAYLOAD_SIZE; + int base = RELAY_PAYLOAD_SIZE; int priority = conn->type != CONN_TYPE_DIR; int conn_bucket = (int)conn->outbuf_flushlen; int global_bucket = global_write_bucket; @@ -2269,6 +2270,7 @@ connection_bucket_write_limit(connection_t *conn, time_t now) if (or_conn->write_bucket < conn_bucket) conn_bucket = or_conn->write_bucket >= 0 ? or_conn->write_bucket : 0; + base = get_cell_network_size(or_conn->wide_circ_ids); } if (connection_counts_as_relayed_traffic(conn, now) && diff --git a/src/or/connection_or.c b/src/or/connection_or.c index 5ec32d6324..c4415c5f88 100644 --- a/src/or/connection_or.c +++ b/src/or/connection_or.c @@ -352,33 +352,56 @@ connection_or_get_num_circuits(or_connection_t *conn) * should set it or clear it as appropriate. */ void -cell_pack(packed_cell_t *dst, const cell_t *src) +cell_pack(packed_cell_t *dst, const cell_t *src, int wide_circ_ids) { char *dest = dst->body; - set_uint16(dest, htons(src->circ_id)); - set_uint8(dest+2, src->command); - memcpy(dest+3, src->payload, CELL_PAYLOAD_SIZE); + if (wide_circ_ids) { + set_uint32(dest, htonl(src->circ_id)); + dest += 4; + } else { + set_uint16(dest, htons(src->circ_id)); + dest += 2; + memset(dest+CELL_MAX_NETWORK_SIZE-2, 0, 2); /*make sure it's clear */ + } + set_uint8(dest, src->command); + memcpy(dest+1, src->payload, CELL_PAYLOAD_SIZE); } /** Unpack the network-order buffer <b>src</b> into a host-order * cell_t structure <b>dest</b>. */ static void -cell_unpack(cell_t *dest, const char *src) +cell_unpack(cell_t *dest, const char *src, int wide_circ_ids) { - dest->circ_id = ntohs(get_uint16(src)); - dest->command = get_uint8(src+2); - memcpy(dest->payload, src+3, CELL_PAYLOAD_SIZE); + if (wide_circ_ids) { + dest->circ_id = ntohl(get_uint32(src)); + src += 4; + } else { + dest->circ_id = ntohs(get_uint16(src)); + src += 2; + } + dest->command = get_uint8(src); + memcpy(dest->payload, src+1, CELL_PAYLOAD_SIZE); } -/** Write the header of <b>cell</b> into the first VAR_CELL_HEADER_SIZE - * bytes of <b>hdr_out</b>. */ -void -var_cell_pack_header(const var_cell_t *cell, char *hdr_out) +/** Write the header of <b>cell</b> into the first VAR_CELL_MAX_HEADER_SIZE + * bytes of <b>hdr_out</b>. Returns number of bytes used. */ +int +var_cell_pack_header(const var_cell_t *cell, char *hdr_out, int wide_circ_ids) { - set_uint16(hdr_out, htons(cell->circ_id)); - set_uint8(hdr_out+2, cell->command); - set_uint16(hdr_out+3, htons(cell->payload_len)); + int r; + if (wide_circ_ids) { + set_uint32(hdr_out, htonl(cell->circ_id)); + hdr_out += 4; + r = VAR_CELL_MAX_HEADER_SIZE; + } else { + set_uint16(hdr_out, htons(cell->circ_id)); + hdr_out += 2; + r = VAR_CELL_MAX_HEADER_SIZE - 2; + } + set_uint8(hdr_out, cell->command); + set_uint16(hdr_out+1, htons(cell->payload_len)); + return r; } /** Allocate and return a new var_cell_t with <b>payload_len</b> bytes of @@ -498,6 +521,7 @@ connection_or_flushed_some(or_connection_t *conn) { size_t datalen, temp; ssize_t n, flushed; + size_t cell_network_size = get_cell_network_size(conn->wide_circ_ids); /* If we're under the low water mark, add cells until we're just over the * high water mark. */ @@ -505,7 +529,7 @@ connection_or_flushed_some(or_connection_t *conn) if (datalen < OR_CONN_LOWWATER) { while ((conn->chan) && channel_tls_more_to_flush(conn->chan)) { /* Compute how many more cells we want at most */ - n = CEIL_DIV(OR_CONN_HIGHWATER - datalen, CELL_NETWORK_SIZE); + n = CEIL_DIV(OR_CONN_HIGHWATER - datalen, cell_network_size); /* Bail out if we don't want any more */ if (n <= 0) break; /* We're still here; try to flush some more cells */ @@ -1533,7 +1557,8 @@ connection_or_check_valid_tls_handshake(or_connection_t *conn, } tor_assert(conn->chan); - channel_set_circid_type(TLS_CHAN_TO_BASE(conn->chan), identity_rcvd); + channel_set_circid_type(TLS_CHAN_TO_BASE(conn->chan), identity_rcvd, 1); + crypto_pk_free(identity_rcvd); if (started_here) @@ -1739,10 +1764,12 @@ or_handshake_state_free(or_handshake_state_t *state) * authenticate cell.) */ void -or_handshake_state_record_cell(or_handshake_state_t *state, +or_handshake_state_record_cell(or_connection_t *conn, + or_handshake_state_t *state, const cell_t *cell, int incoming) { + size_t cell_network_size = get_cell_network_size(conn->wide_circ_ids); crypto_digest_t *d, **dptr; packed_cell_t packed; if (incoming) { @@ -1764,8 +1791,8 @@ or_handshake_state_record_cell(or_handshake_state_t *state, d = *dptr; /* Re-packing like this is a little inefficient, but we don't have to do this very often at all. */ - cell_pack(&packed, cell); - crypto_digest_add_bytes(d, packed.body, sizeof(packed.body)); + cell_pack(&packed, cell, conn->wide_circ_ids); + crypto_digest_add_bytes(d, packed.body, cell_network_size); memwipe(&packed, 0, sizeof(packed)); } @@ -1778,12 +1805,14 @@ or_handshake_state_record_cell(or_handshake_state_t *state, * authenticate cell.) */ void -or_handshake_state_record_var_cell(or_handshake_state_t *state, +or_handshake_state_record_var_cell(or_connection_t *conn, + or_handshake_state_t *state, const var_cell_t *cell, int incoming) { crypto_digest_t *d, **dptr; - char buf[VAR_CELL_HEADER_SIZE]; + int n; + char buf[VAR_CELL_MAX_HEADER_SIZE]; if (incoming) { if (!state->digest_received_data) return; @@ -1797,8 +1826,8 @@ or_handshake_state_record_var_cell(or_handshake_state_t *state, d = *dptr; - var_cell_pack_header(cell, buf); - crypto_digest_add_bytes(d, buf, sizeof(buf)); + n = var_cell_pack_header(cell, buf, conn->wide_circ_ids); + crypto_digest_add_bytes(d, buf, n); crypto_digest_add_bytes(d, (const char *)cell->payload, cell->payload_len); memwipe(buf, 0, sizeof(buf)); @@ -1832,20 +1861,21 @@ void connection_or_write_cell_to_buf(const cell_t *cell, or_connection_t *conn) { packed_cell_t networkcell; + size_t cell_network_size = get_cell_network_size(conn->wide_circ_ids); tor_assert(cell); tor_assert(conn); - cell_pack(&networkcell, cell); + cell_pack(&networkcell, cell, conn->wide_circ_ids); - connection_write_to_buf(networkcell.body, CELL_NETWORK_SIZE, TO_CONN(conn)); + connection_write_to_buf(networkcell.body, cell_network_size, TO_CONN(conn)); /* Touch the channel's active timestamp if there is one */ if (conn->chan) channel_timestamp_active(TLS_CHAN_TO_BASE(conn->chan)); if (conn->base_.state == OR_CONN_STATE_OR_HANDSHAKING_V3) - or_handshake_state_record_cell(conn->handshake_state, cell, 0); + or_handshake_state_record_cell(conn, conn->handshake_state, cell, 0); if (cell->command != CELL_PADDING) conn->timestamp_last_added_nonpadding = approx_time(); @@ -1859,15 +1889,16 @@ void connection_or_write_var_cell_to_buf(const var_cell_t *cell, or_connection_t *conn) { - char hdr[VAR_CELL_HEADER_SIZE]; + int n; + char hdr[VAR_CELL_MAX_HEADER_SIZE]; tor_assert(cell); tor_assert(conn); - var_cell_pack_header(cell, hdr); - connection_write_to_buf(hdr, sizeof(hdr), TO_CONN(conn)); + n = var_cell_pack_header(cell, hdr, conn->wide_circ_ids); + connection_write_to_buf(hdr, n, TO_CONN(conn)); connection_write_to_buf((char*)cell->payload, cell->payload_len, TO_CONN(conn)); if (conn->base_.state == OR_CONN_STATE_OR_HANDSHAKING_V3) - or_handshake_state_record_var_cell(conn->handshake_state, cell, 0); + or_handshake_state_record_var_cell(conn, conn->handshake_state, cell, 0); if (cell->command != CELL_PADDING) conn->timestamp_last_added_nonpadding = approx_time(); @@ -1920,10 +1951,12 @@ connection_or_process_cells_from_inbuf(or_connection_t *conn) channel_tls_handle_var_cell(var_cell, conn); var_cell_free(var_cell); } else { - char buf[CELL_NETWORK_SIZE]; + const int wide_circ_ids = conn->wide_circ_ids; + size_t cell_network_size = get_cell_network_size(conn->wide_circ_ids); + char buf[CELL_MAX_NETWORK_SIZE]; cell_t cell; if (connection_get_inbuf_len(TO_CONN(conn)) - < CELL_NETWORK_SIZE) /* whole response available? */ + < cell_network_size) /* whole response available? */ return 0; /* not yet */ /* Touch the channel's active timestamp if there is one */ @@ -1931,11 +1964,11 @@ connection_or_process_cells_from_inbuf(or_connection_t *conn) channel_timestamp_active(TLS_CHAN_TO_BASE(conn->chan)); circuit_build_times_network_is_live(&circ_times); - connection_fetch_from_buf(buf, CELL_NETWORK_SIZE, TO_CONN(conn)); + connection_fetch_from_buf(buf, cell_network_size, TO_CONN(conn)); /* retrieve cell info from buf (create the host-order struct from the * network-order string) */ - cell_unpack(&cell, buf); + cell_unpack(&cell, buf, wide_circ_ids); channel_tls_handle_cell(&cell, conn); } @@ -1943,7 +1976,7 @@ connection_or_process_cells_from_inbuf(or_connection_t *conn) } /** Array of recognized link protocol versions. */ -static const uint16_t or_protocol_versions[] = { 1, 2, 3 }; +static const uint16_t or_protocol_versions[] = { 1, 2, 3, 4 }; /** Number of versions in <b>or_protocol_versions</b>. */ static const int n_or_protocol_versions = (int)( sizeof(or_protocol_versions)/sizeof(uint16_t) ); diff --git a/src/or/connection_or.h b/src/or/connection_or.h index 21178774a3..85e68f1a33 100644 --- a/src/or/connection_or.h +++ b/src/or/connection_or.h @@ -60,10 +60,12 @@ int connection_or_client_learned_peer_id(or_connection_t *conn, time_t connection_or_client_used(or_connection_t *conn); int connection_or_get_num_circuits(or_connection_t *conn); void or_handshake_state_free(or_handshake_state_t *state); -void or_handshake_state_record_cell(or_handshake_state_t *state, +void or_handshake_state_record_cell(or_connection_t *conn, + or_handshake_state_t *state, const cell_t *cell, int incoming); -void or_handshake_state_record_var_cell(or_handshake_state_t *state, +void or_handshake_state_record_var_cell(or_connection_t *conn, + or_handshake_state_t *state, const var_cell_t *cell, int incoming); @@ -84,10 +86,14 @@ int connection_or_send_authenticate_cell(or_connection_t *conn, int type); int is_or_protocol_version_known(uint16_t version); -void cell_pack(packed_cell_t *dest, const cell_t *src); -void var_cell_pack_header(const var_cell_t *cell, char *hdr_out); +void cell_pack(packed_cell_t *dest, const cell_t *src, int wide_circ_ids); +int var_cell_pack_header(const var_cell_t *cell, char *hdr_out, + int wide_circ_ids); var_cell_t *var_cell_new(uint16_t payload_len); void var_cell_free(var_cell_t *cell); +/** DOCDOC */ +#define MIN_LINK_PROTO_FOR_WIDE_CIRC_IDS 4 + #endif diff --git a/src/or/control.c b/src/or/control.c index 9ab0dafb7b..03e5d79c8e 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -3143,6 +3143,8 @@ handle_control_authchallenge(control_connection_t *conn, uint32_t len, "SERVERNONCE=%s\r\n", server_hash_encoded, server_nonce_encoded); + + tor_free(client_nonce); return 0; } diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c index b5740f091d..af5f91a623 100644 --- a/src/or/cpuworker.c +++ b/src/or/cpuworker.c @@ -31,7 +31,7 @@ #define MIN_CPUWORKERS 1 /** The tag specifies which circuit this onionskin was from. */ -#define TAG_LEN 10 +#define TAG_LEN 12 /** How many cpuworkers we have running right now. */ static int num_cpuworkers=0; @@ -72,7 +72,7 @@ tag_pack(uint8_t *tag, uint64_t chan_id, circid_t circ_id) /*XXXX RETHINK THIS WHOLE MESS !!!! !NM NM NM NM*/ /*XXXX DOUBLEPLUSTHIS!!!! AS AS AS AS*/ set_uint64(tag, chan_id); - set_uint16(tag+8, circ_id); + set_uint32(tag+8, circ_id); } /** Unpack <b>tag</b> into addr, port, and circ_id. @@ -81,7 +81,7 @@ static void tag_unpack(const uint8_t *tag, uint64_t *chan_id, circid_t *circ_id) { *chan_id = get_uint64(tag); - *circ_id = get_uint16(tag+8); + *circ_id = get_uint32(tag+8); } /** Magic numbers to make sure our cpuworker_requests don't grow any @@ -196,8 +196,10 @@ static uint64_t onionskins_usec_roundtrip[MAX_ONION_HANDSHAKE_TYPE+1]; * time. (microseconds) */ #define MAX_BELIEVABLE_ONIONSKIN_DELAY (2*1000*1000) +static tor_weak_rng_t request_sample_rng = TOR_WEAK_RNG_INIT; + /** Return true iff we'd like to measure a handshake of type - * <b>onionskin_type</b>. */ + * <b>onionskin_type</b>. Call only from the main thread. */ static int should_time_request(uint16_t onionskin_type) { @@ -210,7 +212,7 @@ should_time_request(uint16_t onionskin_type) return 1; /** Otherwise, measure with P=1/128. We avoid doing this for every * handshake, since the measurement itself can take a little time. */ - return tor_weak_random() < (TOR_RAND_MAX/128); + return tor_weak_random_one_in_n(&request_sample_rng, 128); } /** Return an estimate of how many microseconds we will need for a single @@ -220,10 +222,10 @@ uint64_t estimated_usec_for_onionskins(uint32_t n_requests, uint16_t onionskin_type) { if (onionskin_type > MAX_ONION_HANDSHAKE_TYPE) /* should be impossible */ - return 1000 * n_requests; + return 1000 * (uint64_t)n_requests; if (PREDICT_UNLIKELY(onionskins_n_processed[onionskin_type] < 100)) { /* Until we have 100 data points, just asssume everything takes 1 msec. */ - return 1000 * n_requests; + return 1000 * (uint64_t)n_requests; } else { /* This can't overflow: we'll never have more than 500000 onionskins * measured in onionskin_usec_internal, and they won't take anything near @@ -560,6 +562,7 @@ static void spawn_enough_cpuworkers(void) { int num_cpuworkers_needed = get_num_cpus(get_options()); + int reseed = 0; if (num_cpuworkers_needed < MIN_CPUWORKERS) num_cpuworkers_needed = MIN_CPUWORKERS; @@ -572,7 +575,11 @@ spawn_enough_cpuworkers(void) return; } num_cpuworkers++; + reseed++; } + + if (reseed) + crypto_seed_weak_rng(&request_sample_rng); } /** Take a pending task from the queue and assign it to 'cpuworker'. */ diff --git a/src/or/directory.c b/src/or/directory.c index c101418446..6b61fc6a99 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -472,12 +472,13 @@ directory_get_from_dirserver(uint8_t dir_purpose, uint8_t router_purpose, if (options->UseBridges && type != BRIDGE_DIRINFO) { /* We want to ask a running bridge for which we have a descriptor. * - * Be careful here: we should only ask questions that we know our - * bridges can answer. So far we're solving that by backing off to - * the behavior supported by our oldest bridge; see for example - * any_bridges_dont_support_microdescriptors(). + * When we ask choose_random_entry() for a bridge, we specify what + * sort of dir fetch we'll be doing, so it won't return a bridge + * that can't answer our question. */ - const node_t *node = choose_random_entry(NULL); + /* XXX024 Not all bridges handle conditional consensus downloading, + * so, for now, never assume the server supports that. -PP */ + const node_t *node = choose_random_dirguard(type); if (node && node->ri) { /* every bridge has a routerinfo. */ tor_addr_t addr; diff --git a/src/or/dirserv.c b/src/or/dirserv.c index 42d44acf32..badacd683d 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -66,19 +66,6 @@ static cached_dir_t *the_directory = NULL; /** For authoritative directories: the current (v1) network status. */ static cached_dir_t the_runningrouters; -/** Array of start and end of consensus methods used for supported - microdescriptor formats. */ -static const struct consensus_method_range_t { - int low; - int high; -} microdesc_consensus_methods[] = { - {MIN_METHOD_FOR_MICRODESC, MIN_METHOD_FOR_A_LINES - 1}, - {MIN_METHOD_FOR_A_LINES, MIN_METHOD_FOR_P6_LINES - 1}, - {MIN_METHOD_FOR_P6_LINES, MIN_METHOD_FOR_NTOR_KEY - 1}, - {MIN_METHOD_FOR_NTOR_KEY, MAX_SUPPORTED_CONSENSUS_METHOD}, - {-1, -1} -}; - static void directory_remove_invalid(void); static cached_dir_t *dirserv_regenerate_directory(void); static char *format_versions_list(config_line_t *ln); @@ -2765,11 +2752,11 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t *private_key, tor_assert(private_key); tor_assert(cert); - if (resolve_my_address(LOG_WARN, options, &addr, &hostname)<0) { + if (resolve_my_address(LOG_WARN, options, &addr, NULL, &hostname)<0) { log_warn(LD_NET, "Couldn't resolve my hostname"); return NULL; } - if (!strchr(hostname, '.')) { + if (!hostname || !strchr(hostname, '.')) { tor_free(hostname); hostname = tor_dup_ip(addr); } @@ -2813,11 +2800,9 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t *private_key, microdescriptors = smartlist_new(); SMARTLIST_FOREACH_BEGIN(routers, routerinfo_t *, ri) { - const struct consensus_method_range_t *cmr = NULL; if (ri->cache_info.published_on >= cutoff) { routerstatus_t *rs; vote_routerstatus_t *vrs; - microdesc_t *md; node_t *node = node_get_mutable_by_id(ri->cache_info.identity_digest); if (!node) continue; @@ -2835,23 +2820,8 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t *private_key, rs->is_flagged_running = 0; vrs->version = version_from_platform(ri->platform); - for (cmr = microdesc_consensus_methods; - cmr->low != -1 && cmr->high != -1; - cmr++) { - md = dirvote_create_microdescriptor(ri, cmr->low); - if (md) { - char buf[128]; - vote_microdesc_hash_t *h; - dirvote_format_microdesc_vote_line(buf, sizeof(buf), md, - cmr->low, cmr->high); - h = tor_malloc_zero(sizeof(vote_microdesc_hash_t)); - h->microdesc_hash_line = tor_strdup(buf); - h->next = vrs->microdesc; - vrs->microdesc = h; - md->last_listed = now; - smartlist_add(microdescriptors, md); - } - } + vrs->microdesc = dirvote_format_all_microdesc_vote_lines(ri, now, + microdescriptors); smartlist_add(routerstatuses, vrs); } @@ -2992,10 +2962,12 @@ generate_v2_networkstatus_opinion(void) private_key = get_server_identity_key(); - if (resolve_my_address(LOG_WARN, options, &addr, &hostname)<0) { + if (resolve_my_address(LOG_WARN, options, &addr, NULL, &hostname)<0) { log_warn(LD_NET, "Couldn't resolve my hostname"); goto done; } + if (!hostname) + hostname = tor_dup_ip(addr); format_iso_time(published, now); diff --git a/src/or/dirvote.c b/src/or/dirvote.c index 0087909cf9..bcfe2b0698 100644 --- a/src/or/dirvote.c +++ b/src/or/dirvote.c @@ -2168,7 +2168,7 @@ networkstatus_compute_consensus(smartlist_t *votes, digest, digest_len, signing_key)) { log_warn(LD_BUG, "Couldn't sign consensus networkstatus."); - return NULL; /* This leaks, but it should never happen. */ + goto done; } smartlist_add(chunks, tor_strdup(sigbuf)); @@ -2191,7 +2191,7 @@ networkstatus_compute_consensus(smartlist_t *votes, digest, digest_len, legacy_signing_key)) { log_warn(LD_BUG, "Couldn't sign consensus networkstatus."); - return NULL; /* This leaks, but it should never happen. */ + goto done; } smartlist_add(chunks, tor_strdup(sigbuf)); } @@ -2199,13 +2199,6 @@ networkstatus_compute_consensus(smartlist_t *votes, result = smartlist_join_strings(chunks, "", 0, NULL); - tor_free(client_versions); - tor_free(server_versions); - SMARTLIST_FOREACH(flags, char *, cp, tor_free(cp)); - smartlist_free(flags); - SMARTLIST_FOREACH(chunks, char *, cp, tor_free(cp)); - smartlist_free(chunks); - { networkstatus_t *c; if (!(c = networkstatus_parse_vote_from_string(result, NULL, @@ -2213,7 +2206,7 @@ networkstatus_compute_consensus(smartlist_t *votes, log_err(LD_BUG, "Generated a networkstatus consensus we couldn't " "parse."); tor_free(result); - return NULL; + goto done; } // Verify balancing parameters if (consensus_method >= MIN_METHOD_FOR_BW_WEIGHTS && added_weights) { @@ -2222,6 +2215,15 @@ networkstatus_compute_consensus(smartlist_t *votes, networkstatus_vote_free(c); } + done: + + tor_free(client_versions); + tor_free(server_versions); + SMARTLIST_FOREACH(flags, char *, cp, tor_free(cp)); + smartlist_free(flags); + SMARTLIST_FOREACH(chunks, char *, cp, tor_free(cp)); + smartlist_free(chunks); + return result; } @@ -3696,6 +3698,87 @@ dirvote_format_microdesc_vote_line(char *out_buf, size_t out_buf_len, return ret; } +/** Array of start and end of consensus methods used for supported + microdescriptor formats. */ +static const struct consensus_method_range_t { + int low; + int high; +} microdesc_consensus_methods[] = { + {MIN_METHOD_FOR_MICRODESC, MIN_METHOD_FOR_A_LINES - 1}, + {MIN_METHOD_FOR_A_LINES, MIN_METHOD_FOR_P6_LINES - 1}, + {MIN_METHOD_FOR_P6_LINES, MIN_METHOD_FOR_NTOR_KEY - 1}, + {MIN_METHOD_FOR_NTOR_KEY, MAX_SUPPORTED_CONSENSUS_METHOD}, + {-1, -1} +}; + +/** Helper type used when generating the microdescriptor lines in a directory + * vote. */ +typedef struct microdesc_vote_line_t { + int low; + int high; + microdesc_t *md; + struct microdesc_vote_line_t *next; +} microdesc_vote_line_t; + +/** Generate and return a linked list of all the lines that should appear to + * describe a router's microdescriptor versions in a directory vote. + * Add the generated microdescriptors to <b>microdescriptors_out</b>. */ +vote_microdesc_hash_t * +dirvote_format_all_microdesc_vote_lines(const routerinfo_t *ri, time_t now, + smartlist_t *microdescriptors_out) +{ + const struct consensus_method_range_t *cmr; + microdesc_vote_line_t *entries = NULL, *ep; + vote_microdesc_hash_t *result = NULL; + + /* Generate the microdescriptors. */ + for (cmr = microdesc_consensus_methods; + cmr->low != -1 && cmr->high != -1; + cmr++) { + microdesc_t *md = dirvote_create_microdescriptor(ri, cmr->low); + if (md) { + microdesc_vote_line_t *e = + tor_malloc_zero(sizeof(microdesc_vote_line_t)); + e->md = md; + e->low = cmr->low; + e->high = cmr->high; + e->next = entries; + entries = e; + } + } + + /* Compress adjacent identical ones */ + for (ep = entries; ep; ep = ep->next) { + while (ep->next && + fast_memeq(ep->md->digest, ep->next->md->digest, DIGEST256_LEN) && + ep->low == ep->next->high + 1) { + microdesc_vote_line_t *next = ep->next; + ep->low = next->low; + microdesc_free(next->md); + ep->next = next->next; + tor_free(next); + } + } + + /* Format them into vote_microdesc_hash_t, and add to microdescriptors_out.*/ + while ((ep = entries)) { + char buf[128]; + vote_microdesc_hash_t *h; + dirvote_format_microdesc_vote_line(buf, sizeof(buf), ep->md, + ep->low, ep->high); + h = tor_malloc_zero(sizeof(vote_microdesc_hash_t)); + h->microdesc_hash_line = tor_strdup(buf); + h->next = result; + result = h; + ep->md->last_listed = now; + smartlist_add(microdescriptors_out, ep->md); + entries = ep->next; + tor_free(ep); + } + + return result; +} + /** If <b>vrs</b> has a hash made for the consensus method <b>method</b> with * the digest algorithm <b>alg</b>, decode it and copy it into * <b>digest256_out</b> and return 0. Otherwise return -1. */ diff --git a/src/or/dirvote.h b/src/or/dirvote.h index e39526596c..fbb61b652f 100644 --- a/src/or/dirvote.h +++ b/src/or/dirvote.h @@ -117,6 +117,11 @@ ssize_t dirvote_format_microdesc_vote_line(char *out, size_t out_len, const microdesc_t *md, int consensus_method_low, int consensus_method_high); +vote_microdesc_hash_t *dirvote_format_all_microdesc_vote_lines( + const routerinfo_t *ri, + time_t now, + smartlist_t *microdescriptors_out); + int vote_routerstatus_find_microdesc_hash(char *digest256_out, const vote_routerstatus_t *vrs, int method, diff --git a/src/or/entrynodes.c b/src/or/entrynodes.c index 4ca56cbacf..51c3a56742 100644 --- a/src/or/entrynodes.c +++ b/src/or/entrynodes.c @@ -23,6 +23,7 @@ #include "directory.h" #include "entrynodes.h" #include "main.h" +#include "microdesc.h" #include "nodelist.h" #include "policies.h" #include "router.h" @@ -829,11 +830,45 @@ entry_list_is_constrained(const or_options_t *options) return 0; } +/** Return true iff this node can answer directory questions about + * microdescriptors. */ +static int +node_understands_microdescriptors(const node_t *node) +{ + tor_assert(node); + if (node->rs && node->rs->version_supports_microdesc_cache) + return 1; + if (node->ri && tor_version_supports_microdescriptors(node->ri->platform)) + return 1; + return 0; +} + +/** Return true iff <b>node</b> is able to answer directory questions + * of type <b>dirinfo</b>. */ +static int +node_can_handle_dirinfo(const node_t *node, dirinfo_type_t dirinfo) +{ + /* Checking dirinfo for any type other than microdescriptors isn't required + yet, since we only choose directory guards that can support microdescs, + routerinfos, and networkstatuses, AND we don't use directory guards if + we're configured to do direct downloads of anything else. The only case + where we might have a guard that doesn't know about a type of directory + information is when we're retrieving directory information from a + bridge. */ + + if ((dirinfo & MICRODESC_DIRINFO) && + !node_understands_microdescriptors(node)) + return 0; + return 1; +} + /** Pick a live (up and listed) entry guard from entry_guards. If * <b>state</b> is non-NULL, this is for a specific circuit -- * make sure not to pick this circuit's exit or any node in the * exit's family. If <b>state</b> is NULL, we're looking for a random - * guard (likely a bridge). */ + * guard (likely a bridge). If <b>dirinfo</b> is not NO_DIRINFO, then + * only select from nodes that know how to answer directory questions + * of that type. */ const node_t * choose_random_entry(cpath_build_state_t *state) { @@ -866,12 +901,6 @@ choose_random_entry_impl(cpath_build_state_t *state, int for_directory, const int num_needed = for_directory ? options->NumDirectoryGuards : options->NumEntryGuards; - /* Checking dirinfo_type isn't required yet, since we only choose directory - guards that can support microdescs, routerinfos, and networkstatuses, AND - we don't use directory guards if we're configured to do direct downloads - of anything else. */ - (void) dirinfo_type; - if (chosen_exit) { nodelist_add_node_and_family(exit_family, chosen_exit); consider_exit_family = 1; @@ -903,6 +932,9 @@ choose_random_entry_impl(cpath_build_state_t *state, int for_directory, continue; /* don't pick the same node for entry and exit */ if (consider_exit_family && smartlist_contains(exit_family, node)) continue; /* avoid relays that are family members of our exit */ + if (dirinfo_type != NO_DIRINFO && + !node_can_handle_dirinfo(node, dirinfo_type)) + continue; /* this node won't be able to answer our dir questions */ #if 0 /* since EntryNodes is always strict now, this clause is moot */ if (options->EntryNodes && !routerset_contains_node(options->EntryNodes, node)) { @@ -1982,7 +2014,7 @@ int any_bridge_descriptors_known(void) { tor_assert(get_options()->UseBridges); - return choose_random_entry(NULL)!=NULL ? 1 : 0; + return choose_random_entry(NULL) != NULL; } /** Return 1 if there are any directory conns fetching bridge descriptors @@ -2064,29 +2096,24 @@ entries_retry_all(const or_options_t *options) entries_retry_helper(options, 1); } -/** Return true if we've ever had a bridge running a Tor version that can't - * provide microdescriptors to us. In that case fall back to asking for - * full descriptors. Eventually all bridges will support microdescriptors - * and we can take this check out; see bug 4013. */ +/** Return true if at least one of our bridges runs a Tor version that can + * provide microdescriptors to us. If not, we'll fall back to asking for + * full descriptors. */ int -any_bridges_dont_support_microdescriptors(void) +any_bridge_supports_microdescriptors(void) { const node_t *node; - static int ever_answered_yes = 0; if (!get_options()->UseBridges || !entry_guards) return 0; - if (ever_answered_yes) - return 1; /* if we ever answer 'yes', always answer 'yes' */ SMARTLIST_FOREACH_BEGIN(entry_guards, entry_guard_t *, e) { node = node_get_by_id(e->identity); - if (node && node->ri && + if (node && node->is_running && node_is_bridge(node) && node_is_a_configured_bridge(node) && - !tor_version_supports_microdescriptors(node->ri->platform)) { + node_understands_microdescriptors(node)) { /* This is one of our current bridges, and we know enough about - * it to know that it won't be able to answer our microdescriptor + * it to know that it will be able to answer our microdescriptor * questions. */ - ever_answered_yes = 1; - return 1; + return 1; } } SMARTLIST_FOREACH_END(e); return 0; diff --git a/src/or/entrynodes.h b/src/or/entrynodes.h index e6c973c95a..52b8dc00e4 100644 --- a/src/or/entrynodes.h +++ b/src/or/entrynodes.h @@ -39,6 +39,10 @@ typedef struct entry_guard_t { * bias for this node already? */ unsigned int path_bias_disabled : 1; /**< Have we disabled this node because * of path bias issues? */ + unsigned int path_bias_use_noticed : 1; /**< Did we alert the user about path + * use bias for this node already? */ + unsigned int path_bias_use_extreme : 1; /**< Did we alert the user about path + * use bias for this node already? */ unsigned int is_dir_cache : 1; /**< Is this node a directory cache? */ time_t bad_since; /**< 0 if this guard is currently usable, or the time at * which it was observed to become (according to the @@ -104,7 +108,7 @@ int any_pending_bridge_descriptor_fetches(void); int entries_known_but_down(const or_options_t *options); void entries_retry_all(const or_options_t *options); -int any_bridges_dont_support_microdescriptors(void); +int any_bridge_supports_microdescriptors(void); void entry_guards_free_all(void); diff --git a/src/or/geoip.c b/src/or/geoip.c index 9ba1e31b8b..e2e98e8ec4 100644 --- a/src/or/geoip.c +++ b/src/or/geoip.c @@ -1350,8 +1350,11 @@ load_bridge_stats(time_t now) fname = get_datadir_fname2("stats", "bridge-stats"); contents = read_file_to_str(fname, RFTS_IGNORE_MISSING, NULL); - if (contents && validate_bridge_stats(contents, now)) + if (contents && validate_bridge_stats(contents, now)) { bridge_stats_extrainfo = contents; + } else { + tor_free(contents); + } tor_free(fname); } diff --git a/src/or/main.c b/src/or/main.c index 79b0f25778..b5d1e2da34 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -1157,7 +1157,6 @@ run_scheduled_events(time_t now) static time_t time_to_check_v3_certificate = 0; static time_t time_to_check_listeners = 0; static time_t time_to_check_descriptor = 0; - static time_t time_to_check_ipaddress = 0; static time_t time_to_shrink_memory = 0; static time_t time_to_try_getting_descriptors = 0; static time_t time_to_reset_descriptor_failures = 0; @@ -1403,11 +1402,10 @@ run_scheduled_events(time_t now) /** 2. Periodically, we consider force-uploading our descriptor * (if we've passed our internal checks). */ -/** How often do we check whether part of our router info has changed in a way - * that would require an upload? */ +/** How often do we check whether part of our router info has changed in a + * way that would require an upload? That includes checking whether our IP + * address has changed. */ #define CHECK_DESCRIPTOR_INTERVAL (60) -/** How often do we (as a router) check whether our IP address has changed? */ -#define CHECK_IPADDRESS_INTERVAL (15*60) /* 2b. Once per minute, regenerate and upload the descriptor if the old * one is inaccurate. */ @@ -1415,10 +1413,7 @@ run_scheduled_events(time_t now) static int dirport_reachability_count = 0; time_to_check_descriptor = now + CHECK_DESCRIPTOR_INTERVAL; check_descriptor_bandwidth_changed(now); - if (time_to_check_ipaddress < now) { - time_to_check_ipaddress = now + CHECK_IPADDRESS_INTERVAL; - check_descriptor_ipaddress_changed(now); - } + check_descriptor_ipaddress_changed(now); mark_my_descriptor_dirty_if_too_old(now); consider_publishable_server(0); /* also, check religiously for reachability, if it's within the first @@ -2391,6 +2386,7 @@ tor_init(int argc, char *argv[]) log_err(LD_BUG, "Unable to initialize OpenSSL. Exiting."); return -1; } + stream_choice_seed_weak_rng(); return 0; } diff --git a/src/or/microdesc.c b/src/or/microdesc.c index e99b3ebe78..ac48930faf 100644 --- a/src/or/microdesc.c +++ b/src/or/microdesc.c @@ -730,9 +730,9 @@ we_use_microdescriptors_for_circuits(const or_options_t *options) int ret = options->UseMicrodescriptors; if (ret == -1) { /* UseMicrodescriptors is "auto"; we need to decide: */ - /* If we are configured to use bridges and one of our bridges doesn't + /* If we are configured to use bridges and none of our bridges * know what a microdescriptor is, the answer is no. */ - if (options->UseBridges && any_bridges_dont_support_microdescriptors()) + if (options->UseBridges && !any_bridge_supports_microdescriptors()) return 0; /* Otherwise, we decide that we'll use microdescriptors iff we are * not a server, and we're not autofetching everything. */ diff --git a/src/or/onion_fast.h b/src/or/onion_fast.h index 0c2a475376..8c078378d2 100644 --- a/src/or/onion_fast.h +++ b/src/or/onion_fast.h @@ -13,7 +13,7 @@ #define TOR_ONION_FAST_H #define CREATE_FAST_LEN DIGEST_LEN -#define CREATED_FAST_LEN DIGEST_LEN*2 +#define CREATED_FAST_LEN (DIGEST_LEN*2) typedef struct fast_handshake_state_t { uint8_t state[DIGEST_LEN]; diff --git a/src/or/or.h b/src/or/or.h index 620b0baf46..45eb4673ce 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -869,11 +869,29 @@ typedef enum { /** Number of bytes in a cell, minus cell header. */ #define CELL_PAYLOAD_SIZE 509 -/** Number of bytes in a cell transmitted over the network. */ -#define CELL_NETWORK_SIZE 512 +/** Number of bytes in a cell transmitted over the network, in the longest + * form */ +#define CELL_MAX_NETWORK_SIZE 514 -/** Length of a header on a variable-length cell. */ -#define VAR_CELL_HEADER_SIZE 5 +/** Maximum length of a header on a variable-length cell. */ +#define VAR_CELL_MAX_HEADER_SIZE 7 + +static int get_cell_network_size(int wide_circ_ids); +static INLINE int get_cell_network_size(int wide_circ_ids) +{ + return wide_circ_ids ? CELL_MAX_NETWORK_SIZE : CELL_MAX_NETWORK_SIZE - 2; +} +static int get_var_cell_header_size(int wide_circ_ids); +static INLINE int get_var_cell_header_size(int wide_circ_ids) +{ + return wide_circ_ids ? VAR_CELL_MAX_HEADER_SIZE : + VAR_CELL_MAX_HEADER_SIZE - 2; +} +static int get_circ_id_size(int wide_circ_ids); +static INLINE int get_circ_id_size(int wide_circ_ids) +{ + return wide_circ_ids ? 4 : 2; +} /** Number of bytes in a relay cell's header (not including general cell * header). */ @@ -882,7 +900,7 @@ typedef enum { #define RELAY_PAYLOAD_SIZE (CELL_PAYLOAD_SIZE-RELAY_HEADER_SIZE) /** Identifies a circuit on an or_connection */ -typedef uint16_t circid_t; +typedef uint32_t circid_t; /** Identifies a stream on a circuit */ typedef uint16_t streamid_t; @@ -1051,7 +1069,7 @@ typedef struct var_cell_t { /** A cell as packed for writing to the network. */ typedef struct packed_cell_t { struct packed_cell_t *next; /**< Next cell queued on this circuit. */ - char body[CELL_NETWORK_SIZE]; /**< Cell as packed for network. */ + char body[CELL_MAX_NETWORK_SIZE]; /**< Cell as packed for network. */ } packed_cell_t; /** Number of cells added to a circuit queue including their insertion @@ -1400,6 +1418,7 @@ typedef struct or_connection_t { /** True iff this is an outgoing connection. */ unsigned int is_outgoing:1; unsigned int proxy_type:2; /**< One of PROXY_NONE...PROXY_SOCKS5 */ + unsigned int wide_circ_ids:1; uint8_t link_proto; /**< What protocol version are we using? 0 for * "none negotiated yet." */ @@ -4590,12 +4609,12 @@ typedef struct rend_encoded_v2_service_descriptor_t { * sooner.) * * XXX023 Should this be configurable? */ -#define INTRO_POINT_LIFETIME_MIN_SECONDS 18*60*60 +#define INTRO_POINT_LIFETIME_MIN_SECONDS (18*60*60) /** The maximum number of seconds that an introduction point will last * before expiring due to old age. * * XXX023 Should this be configurable? */ -#define INTRO_POINT_LIFETIME_MAX_SECONDS 24*60*60 +#define INTRO_POINT_LIFETIME_MAX_SECONDS (24*60*60) /** Introduction point information. Used both in rend_service_t (on * the service side) and in rend_service_descriptor_t (on both the diff --git a/src/or/reasons.c b/src/or/reasons.c index 26ad12e8fd..637f8cdc7d 100644 --- a/src/or/reasons.c +++ b/src/or/reasons.c @@ -105,7 +105,12 @@ stream_end_reason_to_socks5_response(int reason) case END_STREAM_REASON_DESTROY: return SOCKS5_GENERAL_ERROR; case END_STREAM_REASON_DONE: - return SOCKS5_SUCCEEDED; + /* Note that 'DONE' usually indicates a successful close from the other + * side of the stream... but if we receive it before a connected cell -- + * that is, before we have sent a SOCKS reply -- that means that the + * other side of the circuit closed the connection before telling us it + * was complete. */ + return SOCKS5_CONNECTION_REFUSED; case END_STREAM_REASON_TIMEOUT: return SOCKS5_TTL_EXPIRED; case END_STREAM_REASON_NOROUTE: diff --git a/src/or/relay.c b/src/or/relay.c index 3ae5b47ba5..9ff9e1e1f4 100644 --- a/src/or/relay.c +++ b/src/or/relay.c @@ -70,6 +70,9 @@ uint64_t stats_n_relay_cells_relayed = 0; */ uint64_t stats_n_relay_cells_delivered = 0; +/** Used to tell which stream to read from first on a circuit. */ +static tor_weak_rng_t stream_choice_rng = TOR_WEAK_RNG_INIT; + /** Update digest from the payload of cell. Assign integrity part to * cell. */ @@ -710,7 +713,7 @@ connection_ap_process_end_not_open( struct in_addr in; node_t *exitrouter; int reason = *(cell->payload+RELAY_HEADER_SIZE); - int control_reason = reason | END_STREAM_REASON_FLAG_REMOTE; + int control_reason; edge_connection_t *edge_conn = ENTRY_TO_EDGE_CONN(conn); (void) layer_hint; /* unused */ @@ -734,7 +737,13 @@ connection_ap_process_end_not_open( } } - if (rh->length > 0 && edge_reason_is_retriable(reason) && + if (rh->length == 0) { + reason = END_STREAM_REASON_MISC; + } + + control_reason = reason | END_STREAM_REASON_FLAG_REMOTE; + + if (edge_reason_is_retriable(reason) && /* avoid retry if rend */ !connection_edge_is_rendezvous_stream(edge_conn)) { const char *chosen_exit_digest = @@ -1554,11 +1563,12 @@ connection_edge_package_raw_inbuf(edge_connection_t *conn, int package_partial, circuit_t *circ; const unsigned domain = conn->base_.type == CONN_TYPE_AP ? LD_APP : LD_EXIT; int sending_from_optimistic = 0; + entry_connection_t *entry_conn = + conn->base_.type == CONN_TYPE_AP ? EDGE_TO_ENTRY_CONN(conn) : NULL; const int sending_optimistically = + entry_conn && conn->base_.type == CONN_TYPE_AP && conn->base_.state != AP_CONN_STATE_OPEN; - entry_connection_t *entry_conn = - conn->base_.type == CONN_TYPE_AP ? EDGE_TO_ENTRY_CONN(conn) : NULL; crypt_path_t *cpath_layer = conn->cpath_layer; tor_assert(conn); @@ -1734,6 +1744,12 @@ circuit_resume_edge_reading(circuit_t *circ, crypt_path_t *layer_hint) circ, layer_hint); } +void +stream_choice_seed_weak_rng(void) +{ + crypto_seed_weak_rng(&stream_choice_rng); +} + /** A helper function for circuit_resume_edge_reading() above. * The arguments are the same, except that <b>conn</b> is the head * of a linked list of edge streams that should each be considered. @@ -1749,11 +1765,18 @@ circuit_resume_edge_reading_helper(edge_connection_t *first_conn, int cells_on_queue; int cells_per_conn; edge_connection_t *chosen_stream = NULL; + int max_to_package; + + if (first_conn == NULL) { + /* Don't bother to try to do the rest of this if there are no connections + * to resume. */ + return 0; + } /* How many cells do we have space for? It will be the minimum of * the number needed to exhaust the package window, and the minimum * needed to fill the cell queue. */ - int max_to_package = circ->package_window; + max_to_package = circ->package_window; if (CIRCUIT_IS_ORIGIN(circ)) { cells_on_queue = circ->n_chan_cells.n; } else { @@ -1778,10 +1801,19 @@ circuit_resume_edge_reading_helper(edge_connection_t *first_conn, int num_streams = 0; for (conn = first_conn; conn; conn = conn->next_stream) { num_streams++; - if ((tor_weak_random() % num_streams)==0) + if (tor_weak_random_one_in_n(&stream_choice_rng, num_streams)) { chosen_stream = conn; + } /* Invariant: chosen_stream has been chosen uniformly at random from - * among the first num_streams streams on first_conn. */ + * among the first num_streams streams on first_conn. + * + * (Note that we iterate over every stream on the circuit, so that after + * we've considered the first stream, we've chosen it with P=1; and + * after we consider the second stream, we've switched to it with P=1/2 + * and stayed with the first stream with P=1/2; and after we've + * considered the third stream, we've switched to it with P=1/3 and + * remained with one of the first two streams with P=(2/3), giving each + * one P=(1/2)(2/3) )=(1/3).) */ } } @@ -2032,10 +2064,10 @@ dump_cell_pool_usage(int severity) /** Allocate a new copy of packed <b>cell</b>. */ static INLINE packed_cell_t * -packed_cell_copy(const cell_t *cell) +packed_cell_copy(const cell_t *cell, int wide_circ_ids) { packed_cell_t *c = packed_cell_new(); - cell_pack(c, cell); + cell_pack(c, cell, wide_circ_ids); c->next = NULL; return c; } @@ -2057,9 +2089,10 @@ cell_queue_append(cell_queue_t *queue, packed_cell_t *cell) /** Append a newly allocated copy of <b>cell</b> to the end of <b>queue</b> */ void -cell_queue_append_packed_copy(cell_queue_t *queue, const cell_t *cell) +cell_queue_append_packed_copy(cell_queue_t *queue, const cell_t *cell, + int wide_circ_ids) { - packed_cell_t *copy = packed_cell_copy(cell); + packed_cell_t *copy = packed_cell_copy(cell, wide_circ_ids); /* Remember the time when this cell was put in the queue. */ if (get_options()->CellStatistics) { struct timeval now; @@ -2391,7 +2424,7 @@ append_cell_to_circuit_queue(circuit_t *circ, channel_t *chan, streams_blocked = circ->streams_blocked_on_p_chan; } - cell_queue_append_packed_copy(queue, cell); + cell_queue_append_packed_copy(queue, cell, chan->wide_circ_ids); /* If we have too many cells on the circuit, we should stop reading from * the edge streams for a while. */ diff --git a/src/or/relay.h b/src/or/relay.h index d8da9ea1bd..7e59838f95 100644 --- a/src/or/relay.h +++ b/src/or/relay.h @@ -46,7 +46,8 @@ void packed_cell_free(packed_cell_t *cell); void cell_queue_clear(cell_queue_t *queue); void cell_queue_append(cell_queue_t *queue, packed_cell_t *cell); -void cell_queue_append_packed_copy(cell_queue_t *queue, const cell_t *cell); +void cell_queue_append_packed_copy(cell_queue_t *queue, const cell_t *cell, + int wide_circ_ids); void append_cell_to_circuit_queue(circuit_t *circ, channel_t *chan, cell_t *cell, cell_direction_t direction, @@ -65,6 +66,8 @@ const uint8_t *decode_address_from_payload(tor_addr_t *addr_out, int payload_len); void circuit_clear_cell_queue(circuit_t *circ, channel_t *chan); +void stream_choice_seed_weak_rng(void); + #ifdef RELAY_PRIVATE int relay_crypt(circuit_t *circ, cell_t *cell, cell_direction_t cell_direction, crypt_path_t **layer_hint, char *recognized); diff --git a/src/or/rendservice.c b/src/or/rendservice.c index f85ac2c03b..a066e02024 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -88,7 +88,7 @@ typedef struct rend_service_port_config_t { /** How many seconds should we wait for new HS descriptors to reach * our clients before we close an expiring intro point? */ -#define INTRO_POINT_EXPIRATION_GRACE_PERIOD 5*60 +#define INTRO_POINT_EXPIRATION_GRACE_PERIOD (5*60) /** Represents a single hidden service running at this OP. */ typedef struct rend_service_t { @@ -1119,11 +1119,7 @@ rend_service_introduce(origin_circuit_t *circuit, const uint8_t *request, crypt_path_t *cpath = NULL; char hexcookie[9]; int circ_needs_uptime; - char intro_key_digest[DIGEST_LEN]; - size_t auth_len = 0; - char auth_data[REND_DESC_COOKIE_LEN]; time_t now = time(NULL); - char diffie_hellman_hash[DIGEST_LEN]; time_t elapsed; int replay; @@ -1296,8 +1292,9 @@ rend_service_introduce(origin_circuit_t *circuit, const uint8_t *request, /* If the service performs client authorization, check included auth data. */ if (service->clients) { - if (auth_len > 0) { - if (rend_check_authorization(service, auth_data)) { + if (parsed_req->version == 3 && parsed_req->u.v3.auth_len > 0) { + if (rend_check_authorization(service, + (const char*)parsed_req->u.v3.auth_data)) { log_info(LD_REND, "Authorization data in INTRODUCE2 cell are valid."); } else { log_info(LD_REND, "The authorization data that are contained in " @@ -1410,9 +1407,6 @@ rend_service_introduce(origin_circuit_t *circuit, const uint8_t *request, memwipe(buf, 0, sizeof(buf)); memwipe(serviceid, 0, sizeof(serviceid)); memwipe(hexcookie, 0, sizeof(hexcookie)); - memwipe(intro_key_digest, 0, sizeof(intro_key_digest)); - memwipe(auth_data, 0, sizeof(auth_data)); - memwipe(diffie_hellman_hash, 0, sizeof(diffie_hellman_hash)); /* Free the parsed cell */ if (parsed_req) { diff --git a/src/or/rephist.c b/src/or/rephist.c index 34caa4b518..55f321d5ff 100644 --- a/src/or/rephist.c +++ b/src/or/rephist.c @@ -310,9 +310,10 @@ rep_hist_note_router_reachable(const char *id, const tor_addr_t *at_addr, tor_assert(hist); tor_assert((!at_addr && !at_port) || (at_addr && at_port)); - addr_changed = at_addr && + addr_changed = at_addr && !tor_addr_is_null(&hist->last_reached_addr) && tor_addr_compare(at_addr, &hist->last_reached_addr, CMP_EXACT) != 0; - port_changed = at_port && at_port != hist->last_reached_port; + port_changed = at_port && hist->last_reached_port && + at_port != hist->last_reached_port; if (!started_tracking_stability) started_tracking_stability = time(NULL); @@ -1549,7 +1550,7 @@ rep_hist_get_bandwidth_lines(void) /* [dirreq-](read|write)-history yyyy-mm-dd HH:MM:SS (n s) n,n,n... */ /* The n,n,n part above. Largest representation of a uint64_t is 20 chars * long, plus the comma. */ -#define MAX_HIST_VALUE_LEN 21*NUM_TOTALS +#define MAX_HIST_VALUE_LEN (21*NUM_TOTALS) len = (67+MAX_HIST_VALUE_LEN)*4; buf = tor_malloc_zero(len); cp = buf; diff --git a/src/or/router.c b/src/or/router.c index db396f0d56..95aa70a9c4 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -1117,14 +1117,11 @@ consider_testing_reachability(int test_or, int test_dir) if (test_or || test_dir) { #define SELF_EXCLUDED_WARN_INTERVAL 3600 static ratelim_t warning_limit=RATELIM_INIT(SELF_EXCLUDED_WARN_INTERVAL); - char *msg; - if ((msg = rate_limit_log(&warning_limit, approx_time()))) { - log_warn(LD_CIRC, "Can't peform self-tests for this relay: we have " + log_fn_ratelim(&warning_limit, LOG_WARN, LD_CIRC, + "Can't peform self-tests for this relay: we have " "listed ourself in ExcludeNodes, and StrictNodes is set. " "We cannot learn whether we are usable, and will not " - "be able to advertise ourself.%s", msg); - tor_free(msg); - } + "be able to advertise ourself."); } return; } @@ -1195,7 +1192,8 @@ router_dirport_found_reachable(void) void router_perform_bandwidth_test(int num_circs, time_t now) { - int num_cells = (int)(get_options()->BandwidthRate * 10 / CELL_NETWORK_SIZE); + int num_cells = (int)(get_options()->BandwidthRate * 10 / + CELL_MAX_NETWORK_SIZE); int max_cells = num_cells < CIRCWINDOW_START ? num_cells : CIRCWINDOW_START; int cells_per_circuit = max_cells / num_circs; @@ -1715,7 +1713,9 @@ static int router_guess_address_from_dir_headers(uint32_t *guess); int router_pick_published_address(const or_options_t *options, uint32_t *addr) { - if (resolve_my_address(LOG_INFO, options, addr, NULL) < 0) { + *addr = get_last_resolved_addr(); + if (!*addr && + resolve_my_address(LOG_INFO, options, addr, NULL, NULL) < 0) { log_info(LD_CONFIG, "Could not determine our address locally. " "Checking if directory headers provide any hints."); if (router_guess_address_from_dir_headers(addr) < 0) { @@ -1945,9 +1945,13 @@ router_rebuild_descriptor(int force) anyway, since they don't have a DirPort, and always connect to the bridge authority anonymously. But just in case they somehow think of sending them on an unencrypted connection, don't allow them to try. */ - ri->cache_info.send_unencrypted = ei->cache_info.send_unencrypted = 0; + ri->cache_info.send_unencrypted = 0; + if (ei) + ei->cache_info.send_unencrypted = 0; } else { - ri->cache_info.send_unencrypted = ei->cache_info.send_unencrypted = 1; + ri->cache_info.send_unencrypted = 1; + if (ei) + ei->cache_info.send_unencrypted = 1; } router_get_router_hash(ri->cache_info.signed_descriptor_body, @@ -2092,6 +2096,9 @@ check_descriptor_ipaddress_changed(time_t now) { uint32_t prev, cur; const or_options_t *options = get_options(); + const char *method = NULL; + char *hostname = NULL; + (void) now; if (!desc_routerinfo) @@ -2099,18 +2106,29 @@ check_descriptor_ipaddress_changed(time_t now) /* XXXX ipv6 */ prev = desc_routerinfo->addr; - if (resolve_my_address(LOG_INFO, options, &cur, NULL) < 0) { + if (resolve_my_address(LOG_INFO, options, &cur, &method, &hostname) < 0) { log_info(LD_CONFIG,"options->Address didn't resolve into an IP."); return; } if (prev != cur) { + char *source; tor_addr_t tmp_prev, tmp_cur; + tor_addr_from_ipv4h(&tmp_prev, prev); tor_addr_from_ipv4h(&tmp_cur, cur); - log_addr_has_changed(LOG_NOTICE, &tmp_prev, &tmp_cur, "resolve"); + + tor_asprintf(&source, "METHOD=%s%s%s", method, + hostname ? " HOSTNAME=" : "", + hostname ? hostname : ""); + + log_addr_has_changed(LOG_NOTICE, &tmp_prev, &tmp_cur, source); + tor_free(source); + ip_address_changed(0); } + + tor_free(hostname); } /** The most recently guessed value of our IP address, based on directory @@ -2144,7 +2162,9 @@ router_new_address_suggestion(const char *suggestion, } /* XXXX ipv6 */ - if (resolve_my_address(LOG_INFO, options, &cur, NULL) >= 0) { + cur = get_last_resolved_addr(); + if (cur || + resolve_my_address(LOG_INFO, options, &cur, NULL, NULL) >= 0) { /* We're all set -- we already know our address. Great. */ tor_addr_from_ipv4h(&last_guessed_ip, cur); /* store it in case we need it later */ @@ -2399,6 +2419,7 @@ router_dump_router_to_string(char *s, size_t maxlen, routerinfo_t *router, "ipv6-policy %s\n", p6); if (result<0) { log_warn(LD_BUG,"Descriptor printf of policy ran out of room"); + tor_free(p6); return -1; } written += result; @@ -2694,7 +2715,9 @@ extrainfo_dump_to_string(char **s_out, extrainfo_t *extrainfo, return result; } -/** Return true iff <b>s</b> is a legally valid server nickname. */ +/** Return true iff <b>s</b> is a valid server nickname. (That is, a string + * containing between 1 and MAX_NICKNAME_LEN characters from + * LEGAL_NICKNAME_CHARACTERS.) */ int is_legal_nickname(const char *s) { @@ -2705,7 +2728,7 @@ is_legal_nickname(const char *s) strspn(s,LEGAL_NICKNAME_CHARACTERS) == len; } -/** Return true iff <b>s</b> is a legally valid server nickname or +/** Return true iff <b>s</b> is a valid server nickname or * hex-encoded identity-key digest. */ int is_legal_nickname_or_hexdigest(const char *s) @@ -2716,8 +2739,11 @@ is_legal_nickname_or_hexdigest(const char *s) return is_legal_hexdigest(s); } -/** Return true iff <b>s</b> is a legally valid hex-encoded identity-key - * digest. */ +/** Return true iff <b>s</b> is a valid hex-encoded identity-key + * digest. (That is, an optional $, followed by 40 hex characters, + * followed by either nothing, or = or ~ followed by a nickname, or + * a character other than =, ~, or a hex character.) + */ int is_legal_hexdigest(const char *s) { diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 8f19947600..2f08167f18 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -3951,12 +3951,15 @@ trusted_dir_server_new(const char *nickname, const char *address, dir_server_t *result; if (!address) { /* The address is us; we should guess. */ - if (resolve_my_address(LOG_WARN, get_options(), &a, &hostname) < 0) { + if (resolve_my_address(LOG_WARN, get_options(), + &a, NULL, &hostname) < 0) { log_warn(LD_CONFIG, "Couldn't find a suitable address when adding ourself as a " "trusted directory server."); return NULL; } + if (!hostname) + hostname = tor_dup_ip(a); } else { if (tor_lookup_hostname(address, &a)) { log_warn(LD_CONFIG, diff --git a/src/or/routerset.c b/src/or/routerset.c index e45516bb6c..1eca5b6f6f 100644 --- a/src/or/routerset.c +++ b/src/or/routerset.c @@ -255,7 +255,7 @@ routerset_add_unknown_ccs(routerset_t **setp, int only_if_some_cc_set) } if (add_a1) { smartlist_add(set->country_names, tor_strdup("a1")); - smartlist_add(set->country_names, tor_strdup("{a1}")); + smartlist_add(set->list, tor_strdup("{a1}")); } if (add_unknown || add_a1) { diff --git a/src/test/bench.c b/src/test/bench.c index d57aeb81aa..5a8d21d173 100644 --- a/src/test/bench.c +++ b/src/test/bench.c @@ -124,8 +124,10 @@ bench_onion_TAP(void) key = crypto_pk_new(); key2 = crypto_pk_new(); - crypto_pk_generate_key_with_bits(key, 1024); - crypto_pk_generate_key_with_bits(key2, 1024); + if (crypto_pk_generate_key_with_bits(key, 1024) < 0) + goto done; + if (crypto_pk_generate_key_with_bits(key2, 1024) < 0) + goto done; reset_perftime(); start = perftime(); @@ -164,13 +166,16 @@ bench_onion_TAP(void) int s; dh = crypto_dh_dup(dh_out); s = onion_skin_TAP_client_handshake(dh, or, key_out, sizeof(key_out)); + crypto_dh_free(dh); tor_assert(s == 0); } end = perftime(); printf("Client-side, part 2: %f usec.\n", NANOCOUNT(start, end, iters)/1e3); + done: crypto_pk_free(key); + crypto_pk_free(key2); } #ifdef CURVE25519_ENABLED @@ -203,6 +208,7 @@ bench_onion_ntor(void) end = perftime(); printf("Client-side, part 1: %f usec.\n", NANOCOUNT(start, end, iters)/1e3); + state = NULL; onion_skin_ntor_create(nodeid, &keypair1.pubkey, &state, os); start = perftime(); for (i = 0; i < iters; ++i) { diff --git a/src/test/test.c b/src/test/test.c index b838172d5a..6c64d35990 100644 --- a/src/test/test.c +++ b/src/test/test.c @@ -1678,6 +1678,7 @@ test_geoip(void) * the connecting clients added above. */ geoip_bridge_stats_init(now); s = geoip_format_bridge_stats(now + 86400); + test_assert(s); test_streq(bridge_stats_1, s); tor_free(s); @@ -1789,6 +1790,7 @@ test_geoip(void) done: tor_free(s); + tor_free(v); } /** Run unit tests for stats code. */ diff --git a/src/test/test_crypto.c b/src/test/test_crypto.c index 37843d1110..afb338a69c 100644 --- a/src/test/test_crypto.c +++ b/src/test/test_crypto.c @@ -941,6 +941,26 @@ test_crypto_curve25519_impl(void *arg) /* adapted from curve25519_donna, which adapted it from test-curve25519 version 20050915, by D. J. Bernstein, Public domain. */ + const int randomize_high_bit = (arg != NULL); + +#ifdef SLOW_CURVE25519_TEST + const int loop_max=10000; + const char e1_expected[] = "4faf81190869fd742a33691b0e0824d5" + "7e0329f4dd2819f5f32d130f1296b500"; + const char e2k_expected[] = "05aec13f92286f3a781ccae98995a3b9" + "e0544770bc7de853b38f9100489e3e79"; + const char e1e2k_expected[] = "cd6e8269104eb5aaee886bd2071fba88" + "bd13861475516bc2cd2b6e005e805064"; +#else + const int loop_max=200; + const char e1_expected[] = "bc7112cde03f97ef7008cad1bdc56be3" + "c6a1037d74cceb3712e9206871dcf654"; + const char e2k_expected[] = "dd8fa254fb60bdb5142fe05b1f5de44d" + "8e3ee1a63c7d14274ea5d4c67f065467"; + const char e1e2k_expected[] = "7ddb98bd89025d2347776b33901b3e7e" + "c0ee98cb2257a4545c0cfb2ca3e1812b"; +#endif + unsigned char e1k[32]; unsigned char e2k[32]; unsigned char e1e2k[32]; @@ -949,15 +969,22 @@ test_crypto_curve25519_impl(void *arg) unsigned char e2[32] = {5}; unsigned char k[32] = {9}; int loop, i; - const int loop_max=10000; - char *mem_op_hex_tmp = NULL; - (void)arg; + char *mem_op_hex_tmp = NULL; for (loop = 0; loop < loop_max; ++loop) { curve25519_impl(e1k,e1,k); curve25519_impl(e2e1k,e2,e1k); curve25519_impl(e2k,e2,k); + if (randomize_high_bit) { + /* We require that the high bit of the public key be ignored. So if + * we're doing this variant test, we randomize the high bit of e2k, and + * make sure that the handshake still works out the same as it would + * otherwise. */ + uint8_t byte; + crypto_rand((char*)&byte, 1); + e2k[31] |= (byte & 0x80); + } curve25519_impl(e1e2k,e1,e2k); test_memeq(e1e2k, e2e1k, 32); if (loop == loop_max-1) { @@ -968,15 +995,9 @@ test_crypto_curve25519_impl(void *arg) for (i = 0;i < 32;++i) k[i] ^= e1e2k[i]; } - test_memeq_hex(e1, - "4faf81190869fd742a33691b0e0824d5" - "7e0329f4dd2819f5f32d130f1296b500"); - test_memeq_hex(e2k, - "05aec13f92286f3a781ccae98995a3b9" - "e0544770bc7de853b38f9100489e3e79"); - test_memeq_hex(e1e2k, - "cd6e8269104eb5aaee886bd2071fba88" - "bd13861475516bc2cd2b6e005e805064"); + test_memeq_hex(e1, e1_expected); + test_memeq_hex(e2k, e2k_expected); + test_memeq_hex(e1e2k, e1e2k_expected); done: tor_free(mem_op_hex_tmp); @@ -1061,6 +1082,7 @@ test_crypto_curve25519_persist(void *arg) tt_int_op(0,==,curve25519_keypair_write_to_file(&keypair, fname, "testing")); tt_int_op(0,==,curve25519_keypair_read_from_file(&keypair2, &tag, fname)); tt_str_op(tag,==,"testing"); + tor_free(tag); test_memeq(keypair.pubkey.public_key, keypair2.pubkey.public_key, @@ -1088,6 +1110,7 @@ test_crypto_curve25519_persist(void *arg) fname = tor_strdup(get_fname("bogus_keypair")); tt_int_op(-1, ==, curve25519_keypair_read_from_file(&keypair2, &tag, fname)); + tor_free(tag); content[69] ^= 0xff; tt_int_op(0, ==, write_bytes_to_file(fname, content, st.st_size, 1)); @@ -1096,6 +1119,7 @@ test_crypto_curve25519_persist(void *arg) done: tor_free(fname); tor_free(content); + tor_free(tag); } #endif @@ -1135,6 +1159,7 @@ struct testcase_t crypto_tests[] = { { "hkdf_sha256", test_crypto_hkdf_sha256, 0, NULL, NULL }, #ifdef CURVE25519_ENABLED { "curve25519_impl", test_crypto_curve25519_impl, 0, NULL, NULL }, + { "curve25519_impl_hibit", test_crypto_curve25519_impl, 0, NULL, (void*)"y"}, { "curve25519_wrappers", test_crypto_curve25519_wrappers, 0, NULL, NULL }, { "curve25519_encode", test_crypto_curve25519_encode, 0, NULL, NULL }, { "curve25519_persist", test_crypto_curve25519_persist, 0, NULL, NULL }, diff --git a/src/test/test_ntor_cl.c b/src/test/test_ntor_cl.c index d16b088a5f..f2b7a72ad5 100644 --- a/src/test/test_ntor_cl.c +++ b/src/test/test_ntor_cl.c @@ -43,13 +43,11 @@ client1(int argc, char **argv) /* client1 nodeID B -> msg state */ curve25519_public_key_t B; uint8_t node_id[DIGEST_LEN]; - ntor_handshake_state_t *state; + ntor_handshake_state_t *state = NULL; uint8_t msg[NTOR_ONIONSKIN_LEN]; char buf[1024]; - memset(&state, 0, sizeof(state)); - N_ARGS(4); BASE16(2, node_id, DIGEST_LEN); BASE16(3, B.public_key, CURVE25519_PUBKEY_LEN); @@ -63,6 +61,7 @@ client1(int argc, char **argv) printf("%s\n", buf); base16_encode(buf, sizeof(buf), (void*)state, sizeof(*state)); printf("%s\n", buf); + ntor_handshake_state_free(state); return 0; } @@ -77,8 +76,9 @@ server1(int argc, char **argv) int keybytes; uint8_t msg_out[NTOR_REPLY_LEN]; - uint8_t *keys; - char *hexkeys; + uint8_t *keys = NULL; + char *hexkeys = NULL; + int result = 0; char buf[256]; @@ -98,7 +98,8 @@ server1(int argc, char **argv) msg_in, keymap, NULL, node_id, msg_out, keys, (size_t)keybytes)<0) { fprintf(stderr, "handshake failed"); - return 2; + result = 2; + goto done; } base16_encode(buf, sizeof(buf), (const char*)msg_out, sizeof(msg_out)); @@ -106,9 +107,10 @@ server1(int argc, char **argv) base16_encode(hexkeys, keybytes*2+1, (const char*)keys, keybytes); printf("%s\n", hexkeys); + done: tor_free(keys); tor_free(hexkeys); - return 0; + return result; } static int @@ -119,6 +121,7 @@ client2(int argc, char **argv) int keybytes; uint8_t *keys; char *hexkeys; + int result = 0; N_ARGS(5); BASE16(2, (&state), sizeof(state)); @@ -129,16 +132,17 @@ client2(int argc, char **argv) hexkeys = tor_malloc(keybytes*2+1); if (onion_skin_ntor_client_handshake(&state, msg, keys, keybytes)<0) { fprintf(stderr, "handshake failed"); - return 2; + result = 2; + goto done; } base16_encode(hexkeys, keybytes*2+1, (const char*)keys, keybytes); printf("%s\n", hexkeys); + done: tor_free(keys); tor_free(hexkeys); - - return 0; + return result; } int diff --git a/src/test/test_replay.c b/src/test/test_replay.c index be48df177e..de841ad594 100644 --- a/src/test/test_replay.c +++ b/src/test/test_replay.c @@ -24,7 +24,6 @@ test_replaycache_alloc(void) r = replaycache_new(600, 300); test_assert(r != NULL); - if (!r) goto done; done: if (r) replaycache_free(r); @@ -40,7 +39,6 @@ test_replaycache_miss(void) r = replaycache_new(600, 300); test_assert(r != NULL); - if (!r) goto done; result = replaycache_add_and_test_internal(1200, r, test_buffer, @@ -61,7 +59,6 @@ test_replaycache_hit(void) r = replaycache_new(600, 300); test_assert(r != NULL); - if (!r) goto done; result = replaycache_add_and_test_internal(1200, r, test_buffer, @@ -87,7 +84,6 @@ test_replaycache_age(void) r = replaycache_new(600, 300); test_assert(r != NULL); - if (!r) goto done; result = replaycache_add_and_test_internal(1200, r, test_buffer, @@ -119,7 +115,6 @@ test_replaycache_elapsed(void) r = replaycache_new(600, 300); test_assert(r != NULL); - if (!r) goto done; result = replaycache_add_and_test_internal(1200, r, test_buffer, @@ -146,7 +141,6 @@ test_replaycache_noexpire(void) r = replaycache_new(0, 0); test_assert(r != NULL); - if (!r) goto done; result = replaycache_add_and_test_internal(1200, r, test_buffer, diff --git a/src/test/test_util.c b/src/test/test_util.c index bed33fac25..c2cb4448e6 100644 --- a/src/test/test_util.c +++ b/src/test/test_util.c @@ -53,7 +53,6 @@ test_util_read_until_eof_impl(const char *fname, size_t file_len, fd = open(fifo_name, O_RDONLY|O_BINARY); tt_int_op(fd, >=, 0); str = read_file_to_str_until_eof(fd, read_limit, &sz); - close(fd); tt_assert(str != NULL); if (read_limit < file_len) @@ -69,6 +68,8 @@ test_util_read_until_eof_impl(const char *fname, size_t file_len, tor_free(fifo_name); tor_free(test_str); tor_free(str); + if (fd >= 0) + close(fd); } static void @@ -2712,7 +2713,7 @@ test_util_join_win_cmdline(void *ptr) }; int i; - char *joined_argv; + char *joined_argv = NULL; (void)ptr; @@ -2724,7 +2725,7 @@ test_util_join_win_cmdline(void *ptr) } done: - ; + tor_free(joined_argv); } #define MAX_SPLIT_LINE_COUNT 4 @@ -3242,6 +3243,34 @@ test_util_set_env_var_in_sl(void *ptr) } static void +test_util_weak_random(void *arg) +{ + int i, j, n[16]; + tor_weak_rng_t rng; + (void) arg; + + tor_init_weak_random(&rng, (unsigned)time(NULL)); + + for (i = 1; i <= 256; ++i) { + for (j=0;j<100;++j) { + int r = tor_weak_random_range(&rng, i); + tt_int_op(0, <=, r); + tt_int_op(r, <, i); + } + } + + memset(n,0,sizeof(n)); + for (j=0;j<8192;++j) { + n[tor_weak_random_range(&rng, 16)]++; + } + + for (i=0;i<16;++i) + tt_int_op(n[i], >, 0); + done: + ; +} + +static void test_util_mathlog(void *arg) { double d; @@ -3312,6 +3341,7 @@ struct testcase_t util_tests[] = { UTIL_TEST(read_file_eof_two_loops, 0), UTIL_TEST(read_file_eof_zero_bytes, 0), UTIL_TEST(mathlog, 0), + UTIL_TEST(weak_random, 0), END_OF_TESTCASES }; diff --git a/src/tools/tor-resolve.c b/src/tools/tor-resolve.c index 2e4b97eefd..306f6c66ab 100644 --- a/src/tools/tor-resolve.c +++ b/src/tools/tor-resolve.c @@ -4,7 +4,6 @@ /* See LICENSE for licensing information */ #include "orconfig.h" - #include "compat.h" #include "../common/util.h" #include "address.h" @@ -187,7 +186,7 @@ do_resolve(const char *hostname, uint32_t sockshost, uint16_t socksport, int reverse, int version, tor_addr_t *result_addr, char **result_hostname) { - int s; + int s = -1; struct sockaddr_in socksaddr; char *req = NULL; ssize_t len = 0; @@ -211,28 +210,28 @@ do_resolve(const char *hostname, uint32_t sockshost, uint16_t socksport, socksaddr.sin_addr.s_addr = htonl(sockshost); if (connect(s, (struct sockaddr*)&socksaddr, sizeof(socksaddr))) { log_sock_error("connecting to SOCKS host", s); - return -1; + goto err; } if (version == 5) { char method_buf[2]; if (write_all(s, "\x05\x01\x00", 3, 1) != 3) { log_err(LD_NET, "Error sending SOCKS5 method list."); - return -1; + goto err; } if (read_all(s, method_buf, 2, 1) != 2) { log_err(LD_NET, "Error reading SOCKS5 methods."); - return -1; + goto err; } if (method_buf[0] != '\x05') { log_err(LD_NET, "Unrecognized socks version: %u", (unsigned)method_buf[0]); - return -1; + goto err; } if (method_buf[1] != '\x00') { log_err(LD_NET, "Unrecognized socks authentication method: %u", (unsigned)method_buf[1]); - return -1; + goto err; } } @@ -240,12 +239,12 @@ do_resolve(const char *hostname, uint32_t sockshost, uint16_t socksport, version))<0) { log_err(LD_BUG,"Error generating SOCKS request"); tor_assert(!req); - return -1; + goto err; } if (write_all(s, req, len, 1) != len) { log_sock_error("sending SOCKS request", s); tor_free(req); - return -1; + goto err; } tor_free(req); @@ -253,22 +252,22 @@ do_resolve(const char *hostname, uint32_t sockshost, uint16_t socksport, char reply_buf[RESPONSE_LEN_4]; if (read_all(s, reply_buf, RESPONSE_LEN_4, 1) != RESPONSE_LEN_4) { log_err(LD_NET, "Error reading SOCKS4 response."); - return -1; + goto err; } if (parse_socks4a_resolve_response(hostname, reply_buf, RESPONSE_LEN_4, result_addr)<0) { - return -1; + goto err; } } else { char reply_buf[16]; if (read_all(s, reply_buf, 4, 1) != 4) { log_err(LD_NET, "Error reading SOCKS5 response."); - return -1; + goto err; } if (reply_buf[0] != 5) { log_err(LD_NET, "Bad SOCKS5 reply version."); - return -1; + goto err; } /* Give a user some useful feedback about SOCKS5 errors */ if (reply_buf[1] != 0) { @@ -282,20 +281,20 @@ do_resolve(const char *hostname, uint32_t sockshost, uint16_t socksport, "to Tor; we suggest an application that uses SOCKS 4a.", hostname); } - return -1; + goto err; } if (reply_buf[3] == 1) { /* IPv4 address */ if (read_all(s, reply_buf, 4, 1) != 4) { log_err(LD_NET, "Error reading address in socks5 response."); - return -1; + goto err; } tor_addr_from_ipv4n(result_addr, get_uint32(reply_buf)); } else if (reply_buf[3] == 4) { /* IPv6 address */ if (read_all(s, reply_buf, 16, 1) != 16) { log_err(LD_NET, "Error reading address in socks5 response."); - return -1; + goto err; } tor_addr_from_ipv6_bytes(result_addr, reply_buf); } else if (reply_buf[3] == 3) { @@ -303,19 +302,23 @@ do_resolve(const char *hostname, uint32_t sockshost, uint16_t socksport, size_t result_len; if (read_all(s, reply_buf, 1, 1) != 1) { log_err(LD_NET, "Error reading address_length in socks5 response."); - return -1; + goto err; } result_len = *(uint8_t*)(reply_buf); *result_hostname = tor_malloc(result_len+1); if (read_all(s, *result_hostname, result_len, 1) != (int) result_len) { log_err(LD_NET, "Error reading hostname in socks5 response."); - return -1; + goto err; } (*result_hostname)[result_len] = '\0'; } } + tor_close_socket(s); return 0; + err: + tor_close_socket(s); + return -1; } /** Print a usage message and exit. */ diff --git a/src/win32/orconfig.h b/src/win32/orconfig.h index 4312d9fbe5..f5d5cf4460 100644 --- a/src/win32/orconfig.h +++ b/src/win32/orconfig.h @@ -256,3 +256,4 @@ #define CURVE25519_ENABLED #define USE_CURVE25519_DONNA +#define ENUM_VALS_ARE_SIGNED 1 |